Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1. 2 3 4 5 6 6.3 & 7.3 NESTED LOOP 7 8 A stack is an ordered collection of items into which new items may be inserted and from which items may be.

Presentasi serupa


Presentasi berjudul: "1. 2 3 4 5 6 6.3 & 7.3 NESTED LOOP 7 8 A stack is an ordered collection of items into which new items may be inserted and from which items may be."— Transcript presentasi:

1 1

2 2

3 3

4 4

5 5

6 6 6.3 & 7.3 NESTED LOOP

7 7

8 8 A stack is an ordered collection of items into which new items may be inserted and from which items may be deleted at one end, called the top of the stack. ( Yedidyah L, Moshe J. A., and Aaron M. Tenenbaum; Data Structures Using C and C++) insert delete

9 9 Buku-4 Buku-3 Buku-2 Buku Top Meja Nomor Urut Masuk (PUSH) Nomor Urut Keluar (POP) 1. Single Stack. Stack Tunggal, satu stack dalam satu collection 1.1 Ilustrasi Single Stack.

10 10 Dalam struktur STACK, digunakan istilah : - PUSH untuk : Simpan, atau Masuk, atau Insert, atau Tulis. - POP untuk : Ambil, atau Keluar, atau Delete, atau Baca, atau Hapus Prinsip atau Konsep prosesnya disebut : L I F O ( Last In First Out )

11 Representasi Single Stack menggunakan Array Satu Dimensi misal n = 10 n- 1 Top X S[ ] Ilustrasi Single Stack menggunakan Array Satu Dimensi #define n 10 - int S[n]; int Top, X; misal dibuat dengan : 1.2.1

12 12 Top X S[ ] Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah PUSH ( Isi, Masuk, Simpan) maka akan diisi di elemen nomor : ? dan Top akan menunjuk elemen nomor : ? PUSH POP n- 1

13 n- 1 Top X S[ ] Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah POP ( Keluar, Ambil) maka akan diambil isi elemen nomor : ? dan Top akan menunjuk elemen nomor : ? PUSH POP

14 14 Ilustrasi Stack. Top S[ ] Top XXXX S[ ] Top X 3 Diilustrasikan sebagai berikut : n n- 1

15 15 LIFO (Last In First Out) a. AWAL (Inisialisasi) b. PUSH (Insert, Masuk, Simpan, Tulis) c. POP (Delete, Keluar, Ambil, Baca / Hapus) Prinsip / Konsep Proses pada Stack Macam Proses pada Stack

16 16 void AWAL( ) { Top = -1; } a) Proses AWAL Catatan : Untuk memudahkan pembuatan program, maka array untuk Stack dan beberapa variabel yang terkait dibuat bersifat Global Top X S[ ] n- 1

17 17 Algoritma dasar untuk PUSH

18 18 Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah PUSH (Isi, Masuk, Simpan) maka akan diisi di elemen nomor : ? dan Top akan menunjuk elemen nomor : ? Top X S[ ] n- 1

19 19 Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah PUSH (Isi, Masuk, Simpan) maka akan diisi di elemen nomor : 4 dan Top akan menunjuk elemen nomor : 4 Top X S[ ] n- 1

20 20 Pilih algoritma yang benar untuk PUSH a.Top = Top + 1; S[Top] = X; b.S[Top] = X; Top = Top + 1; c.Top = Top + 1; X = S[Top]; d.X = S[Top]; Top = Top + 1; ? Top X 315 Top S[ ] Top X 415 Top S[ ] Setelah nilai X diPUSH Ke Stack Sebelum nilai X diPUSH Ke Stack n n- 1

21 21 A = B; Yang diisi, variabel A atau variabel B ? 25 A 17 B A = B; AB Sebelum : Sesudah : ?

22 22 A = B; Yang diisi adalah : variabel A 25 A 17 B A = B; 17 A B Sebelum : Sesudah :

23 23 17 A Untuk mengisi elemen A[3] Pilih instruksi yang benar : a. b. A[3] = X; X X = A[3];

24 24 Pilih algoritma yang benar untuk PUSH a.Top = Top + 1; S[Top] = X; b.S[Top] = X; Top = Top + 1; c.Top = Top + 1; X = S[Top]; d.X = S[Top]; Top = Top + 1; ? Top X 315 Top S[ ] Top X 415 Top S[ ] Setelah nilai X diPUSH Ke Stack Sebelum nilai X diPUSH Ke Stack n n- 1

25 25 Pilih algoritma yang benar untuk PUSH a.Top = Top + 1; S[Top] = X; b.S[Top] = X; Top = Top + 1; c.Top = Top + 1; X = S[Top]; d.X = S[Top]; Top = Top + 1; Top X 315 Top S[ ] Top X 415 Top S[ ] Setelah nilai X diPUSH Ke Stack Sebelum nilai X diPUSH Ke Stack n n- 1

26 26 Untuk PUSH Algoritma yang benar Top = Top + 1; S[Top] = X; Top X 315 Top S[ ] Top X 415 Top S[ ] n- 1 Setelah nilai X diPUSH Ke Stack Sebelum nilai X diPUSH Ke Stack n- 1

27 27 Top X 315 Top S[ ] Top X 415 Top S[ ] Top S[ ] Top X 415 Dengan : Top = Top + 1; Dengan : S[Top] = X; Algoritma PUSH yang benar : Top = Top + 1; S[Top] = X; Sebelum : Sesudah : n n n- 1

28 28 Algoritma PUSH yang SALAH : S[Top] = X; Top = Top + 1; Top X 315 Top S[ ] Top X 415 Top S[ ] Top S[ ] Top X 315 Dengan : Top = Top + 1; Dengan : S[Top] = X; Sebelum : Sesudah : n n n- 1

29 29 Algoritma dasar untuk PUSH Top = Top + 1; S[Top] = X; Top+= 1; S[Top] = X; Top++; S[Top] = X; S[++Top] = X; atau :

30 30 Algoritma dasar untuk POP

31 31 Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah POP ( Keluar, Ambil) maka akan diambil isi elemen nomor : ? dan setelah itu Top akan menunjuk elemen nomor : ? Top X S[ ] n- 1

32 32 Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah POP ( Keluar, Ambil) maka akan diambil isi elemen nomor : 3 dan setelah itu Top akan menunjuk elemen nomor : 2 Top X S[ ] n- 1

33 33 Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah POP ( Keluar, Ambil) maka akan diambil isi elemen nomor : 3 dan setelah itu Top akan menunjuk elemen nomor : 2 Top X S[ ] n- 1

34 34 Untuk POP, Pilih algoritma yang benar a. Top = Top - 1; S[Top] = X; b. S[Top] = X; Top = Top - 1; c. Top = Top - 1; X = S[Top]; d. X = S[Top]; Top = Top - 1; ? Top X S[ ] Top X 210 Top S[ ] n n- 1 Setelah POP Sebelum POP

35 35 Untuk POP, Pilih algoritma yang benar a. Top = Top - 1; S[Top] = X; b. S[Top] = X; Top = Top - 1; c. Top = Top - 1; X = S[Top]; d. X = S[Top]; Top = Top - 1; Top X S[ ] Top X 210 Top S[ ] n- 1 Setelah POP Sebelum POP n- 1

36 36 Untuk POP Algoritma yang benar X = S[Top]; Top = Top - 1; Top X S[ ] Top X 210 Top S[ ] Setelah POP Sebelum POP n n- 1

37 37 Pertanyaan : Setelah 10 disimpan di X apakah nilai 10 masih ada dalam S[3] ? Pertanyaan : Setelah Top dipindahkan menunjuk S[2] apakah nilai 10 masih ada dalam S[3] ? Jawab : Top X 210 Top S[ ] Setelah POP Top X S[ ] Sebelum POP 310 Top S[ ] Isi X Top X n n n- 1

38 38 Pertanyaan : Setelah 10 disimpan di X apakah nilai 10 masih ada dalam S[3] ? Pertanyaan : Setelah Top dipindahkan menunjuk S[2] apakah nilai 10 masih ada dalam S[3] ? Jawab : masih ada tapi untuk keperluan ilustrasi, nilainya dihapus Top X 210 Top S[ ] Setelah POP Top X S[ ] Sebelum POP 310 Top S[ ] Isi X Top X n n n- 1

39 39 Algoritma POP yang benar : X = S[Top]; Top = Top - 1; Kita Ulangi Top S[ ] Sebelum POP Top X n- 1

40 40 Dengan : X=S[Top]; Top X 3 Algoritma POP yang benar : X = S[Top]; Top = Top - 1; Top S[ ] Sebelum POP Top S[ ] Top X n n- 1

41 41 Dengan : X=S[Top]; Top X 3 Algoritma POP yang benar : X = S[Top]; Top = Top - 1; Top S[ ] Sebelum POP Top S[ ] Top X 310 Dengan : Top = Top -1; Top S[ ] Top X n n n- 1

42 42 Algoritma dasar untuk POP X = S[Top]; Top = Top - 1; atau : X = S[Top]; Top-=1; X = S[Top]; Top--; X = S[Top--];

43 43 Algoritma POP yang SALAH : Top = Top - 1; X = S[Top]; Dengan : Top = Top -1; Top X S[ ] Sebelum POP Top S[ ] Top X 2 Dengan : X = S[Top]; Top S[ ] Top X n n n- 1

44 44 void PUSH( void) { Top = Top + 1; S[Top] = X; } void POP(void) { X = S[Top]; Top = Top - 1; } b) Proses PUSH c) Proses POP Catatan : Semua variabel dibuat bersifat GLOBAL

45 45 #include void AWAL (void); void PUSH(void); void POP(void); define n 10 int S[n]; int Top, X; void main( ) { AWAL( ); - scanf(“%i”, &X); PUSH(); - POP( ); printf(“%i”, X); - } void AWAL(void) { Top = -1; } void PUSH (void) { Top = Top + 1; S[top] = X; } void POP (void) { X = S[top]; Top = Top - 1; } Semua variabel bersifat GLOBAL

46 46 Ilustrasi Stack. Diilustrasikan sebagai berikut : Top X S[ ] Top XXXX S[ ] n n- 1

47 Kondisi Stack. a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA

48 48 Kondisi Stack. a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA lawannya

49 49 Kondisi Stack. Kondisi Stack : a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA Top XXXX XXXX X X X X X X n n n- 1

50 50 Kondisi Stack. Kondis Stack : a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA Gambar : ? Top XXXX XXXX X X X X X X n n n- 1

51 51 Kondisi Stack. Kondis Stack : a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA Gambar : Gambar : ? 1 Top XXXX XXXX X X X X X X n n n- 1

52 52 Kondisi Stack. Kondis Stack : a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA Gambar : Gambar : ? 1 3 Top XXXX XXXX X X X X X X n n n- 1

53 53 Kondisi Stack. Kondis Stack : a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA Gambar : Gambar : ? Top XXXX XXXX X X X X X X n n n- 1

54 54 Kondisi Stack. Kondis Stack : a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA Gambar : Top XXXX XXXX X X X X X X n n n- 1

55 55 Kondisi Stack. Kondis Stack : a. KOSONG : ? b. PENUH : ? c. BISA DIISI : ? d. ADA ISINYA : ? cirinya Top XXXX XXXX X X X X X X n n n- 1

56 56 Kondisi Stack. Kondis Stack : a. KOSONG : Top = -1 b. PENUH : ? c. BISA DIISI : ? d. ADA ISINYA : ? cirinya Top XXXX XXXX X X X X X X n n n- 1

57 57 Kondisi Stack. Kondis Stack : a. KOSONG : Top = -1 b. PENUH : Top = n-1 c. BISA DIISI : ? d. ADA ISINYA : ? cirinya Top XXXX XXXX X X X X X X n n n- 1

58 58 Kondisi Stack. Kondis Stack : a. KOSONG : Top = -1 b. PENUH : Top = n-1 c. BISA DIISI : Top < n-1 d. ADA ISINYA : ? cirinya Top XXXX XXXX X X X X X X n n n- 1

59 59 Kondisi Stack. Kondis Stack : a. KOSONG : Top = -1 b. PENUH : Top = n-1 c. BISA DIISI : Top < n-1 d. ADA ISINYA : Top > cirinya Top XXXX XXXX X X X X X X n n n- 1

60 60 Kondisi Stack. Top XXXX Kondis Stack : a. KOSONG b. PENUH c. BISA DIISI d. ADA ISINYA cirinya Top = -1 Top = n-1 Top < n-1 Top > n- 1

61 61 Kondisi Stack c i r i (posisi Top) Ilustrasi gambar a. b. c. d. KOSONG tak ada isinya PENUH tak bisa diisi lagi BISA DIISI (kebalikan dari PENUH) ADA ISINYA (kebalikan dari KOSONG) Top = -1 Top = n-1 Top < n-1 Top > -1 Gambar 1 Gambar 3 Gambar 1 dan 2 Gambar 2 dan Kondisi Stack. Top XXXX XXXX X X X X X X n n n- 1

62 Algoritma PUSH dan POP yang lengkap.

63 63 a. Algoritma yang lengkap untuk proses PUSH Bila ada instruksi PUSH maka akan d isi di elemen nomor : ? Top XXXX n- 1

64 64 a. Algoritma yang lengkap untuk proses PUSH Bila ada instruksi PUSH maka akan d isi di elemen nomor : ? Bila ada instruksi PUSH maka akan d isi di elemen nomor : 4 Top XXXX XXXX n n- 1

65 65 a. Algoritma yang lengkap untuk proses PUSH Bila ada instruksi PUSH maka akan diisi di elemen nomor : 4 Dalam kondisi PENUH Bolehkah melakukan PUSH ? Jawab : ? Top XXXX XXXX X X X X X X n n- 1

66 66 a. Algoritma yang lengkap untuk proses PUSH Bila ada instruksi PUSH maka akan d isi di elemen nomor : 4 Dalam kondisi PENUH Bolehkah melakukan PUSH ? Jawab : TIDAK BOLEH n-1 Top XXXX XXXX X X X X X X n-1

67 67 a. Algoritma yang lengkap untuk proses PUSH Ilustrasi Stack Bila Stack PENUH, maka Tidak Boleh melakukan PUSH sehingga, sebelum PUSH, perlu dioeriksa apakah Stack dalam keadaan : a. apakah KOSONG b. apakah PENUH c. apakah BISA DIISI d. apakah ADA ISINYA ? n-1 Top XXXX

68 68 a. Algoritma yang lengkap untuk proses PUSH Bila BISA DIISI silahkan PUSH sebaliknya (else) Bila PENUHjangan PUSH sebaliknya (else) silahkan PUSH jangan PUSH Ilustrasi Stack n-1 Top XXXX

69 69 a. Algoritma yang lengkap untuk proses PUSH void PUSH(void) { if ( BISA DIISI ) { Top = Top + 1; S[Top] = X; } else printf( “Stack Penuh”); }

70 70 a. Algoritma yang lengkap untuk proses PUSH void PUSH(void) { if ( Top < n-1 ) { Top = Top + 1; S[Top] = X; } else printf( “Stack Penuh”); } void PUSH(void) { if ( Top == n-1 ) printf( “Stack Penuh”); else { Top = Top + 1; S[Top] = X; } atau Bila BISA DIISI lakukan PUSH Bila PENUH jangan PUSH else lakukan PUSH

71 71 b. Algoritma yang lengkap untuk proses POP void POP(void) { if (Top > -1 ) { X = S[Top]; Top = Top-1; } else printf(“Stack Kosong”); } Algoritma yang lengkap untuk proses POP dengan ‘logika terbalik’ void POP(void) { if ( Top == -1 ) printf(“Stack Kosong”); else { X = S[Top]; Top = Top - 1; } atau : Bila ADA ISINYA lakukan POP Bila KOSONG jangan POP else lakukan POP

72 Contoh Soal PUSH dan POP. Baca sendiri di buku

73 Aplikasi Stack. Memeriksa kelengkapan pasangan kurung buka dan kurung tutup suatu arithmetic statement A + B * ( C - D) / ( E + F ) BENAR A + B * ( C - D / ( E + F ) SALAH Merobah (konversi) bentuk INFIX menjadi bentuk POSTFIX A + B + C * D A + (B + C) * D A B + C D * + A B C + D * + INFIX POSTFIX Mencatat Return Address oleh Operating System sewaktu menjalankan sebuah program pada pelaksanaan call suatu function

74 Pointer sebagai penunjuk Stack. a. Menyiapkan Stack dan Pointer : define n 11 - int S[n], *Top, *BatasAtas, *Dasar - Dasar = &S[-1]; Top = &S[-1]; BatasAtas = &S[n-1]; n BatasAtasTop Dasar

75 75 n BatasAtas Top Dasar a. Algoritma untuk PUSH if(Top < BatasAtas) Top++; *Top = X; else printf(“Stack Penuh); b. Algoritma untuk POP if(Top > Dasar) X = *Top; Top--; else printf(“Stack Penuh);

76 Representasi Stack menggunakan structure. Perhatikan contoh berikut ini : a.Menyiapkan Stack. #define MAXSTACK 10 typedef char ItemType; typedef struct StackTag { int Top; ItemType S[MAXSTACK]; } StackType; dibuat 10 elemen S[0] sampai dengan S[9] tipe : char b.Initialisasi. void Intitialize(StackType *P ) { P->Top = -1; }

77 Representasi Stack menggunakan structure. Perhatikan contoh berikut ini : c.Proses PUSH. void PUSH(ItemType item, StackType *P) { if(P->Top >= MAXSTACK-1) printf(“Stack Penuh”); else P->entry[++P->Top] = item; d.Proses POP. void POP(ItemType *Q, StackType *P) { if(P->Top <= -1) printf(“Stack Kosong”); else *Q = P->S[P->Top--]; }

78 78 XXXX n-1 Top Soal-I. Untuk Stack yang diilustrasikan pada Gambar diatas : a. Kosong b. Penuh c. Bisa diisi d. Ada isinya Sebutkan ciri bahwa Stack : 2. Tulis algoritma dasar untuk: a. PUSH b. POP Tulis algoritma yang lengkap untuk: a. PUSH b. POP 5. Tulis program (penggalan program) untuk mengeluarkan (POP) isi Stack satu per satu dan mencetaknya, sampai Stack menjadi kosong. 4.Tulis program (penggalan program) untuk menginput data melalui keyboard satu persatu dan mem Push data tersebut ke Stack sampai Stack penuh tak bisa diisi lagi Buku : halaman 56

79 Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar Dianggap tempat yang tersedia masih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebu ke Stack Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan dipush sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh.

80 80 9. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak hanya 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong.

81 81

82 82 6.Dianggap tempat yang tersedia masih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebut ke Stack. 1 menit membaca soal 1 menit menyelesaikan jawaban soal

83 83 6.Dianggap tempat yang tersedia mesih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebut ke Stack.

84 84 Top XXXX X 3 6.Dianggap tempat yang tersedia mesih lebih dari 10 tempat. Tulis program (penggalan program) untuk menginput sebanyak 10 buah data melalui keyboard satu persatu dan mem Push data tersebut ke Stack. INPUT n-1 Top XXXX xxxxxxxxxx X n-1 Menginput dan mengisi 10 elemen stack

85 85 7. Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar 1 menit membaca soal 1 menit menyelesaikan jawaban soal

86 86 7. Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar

87 n-1 Top XXXXXXXXXXXXXXX X Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar

88 n-1 Top XXXXXXXXXXXXXXX X Dipastikan stack terisi lebih dari 10 elemen. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack sebanyak 10 elemen, satu per satu dan mencetaknya ke layar n-1 Top XXXXX X 4 Mengeluarkan (POP) 10 elemen stack

89 89

90 90 9. Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak hanya 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong. 8. Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan dipush sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh.

91 91 8.Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan di push sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh.

92 92 8.Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan di push sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh.

93 n-1 Top XXXXXXXXXXXXXXX X 14 8.Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan di push sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh n-1 Top XXXXXXXXXXXXXXX xxxxxx X n-1 Diisi sampai penuh Masih tersedia kurang dari 10 lokasi Mengisi stack sebanyak sisa yang tersedia (sampai penuh) karena sisa elemen yang tersedia kurang dari 10 elemen

94 94 Top XXXXXXXXX X 8 8.Tulis program (penggalan program) untuk menginput melalui keyboard satu persatu dan mem Push data tersebut ke Stack. Bila tempat yang tersedia masih cukup untuk menampung 10 data baru, maka data yang diinput dan di push sebanyak 10 buah data. Tapi bila tempat yang tersedia kurang dari 10 tempat, maka cukup menginput dan mem Push sebanyak tempat yang tersedia, sampai stack penuh n-1 Top XXXXXXXXXxxxxxx xxxx X 18 Diisi sampai penuh Masih tersedia >= 10 lokasi Mengisi stack sebanyak 10 lokasi karena sisa elemen yang tersedia masih cukup untuk 10 lokasi n-1

95 95 9.Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong.

96 96 9.Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong.

97 n-1 Top XXXXXXXX X 7 9.Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong n-1 Top X Mengeluarkan seluruh isi stack, karena isinya kurang dari 10 elemen

98 n-1 Top xxxxxxxxxxxxxxx X 14 9.Tulis program (penggalan program) untuk mengeluarkan (POP) isi stack satu persatu dan mencetaknya ke layar. Bila stack berisi 10 elemen atau lebih dari 10 elemen, maka keluarkan dan cetak sebanyak 10 elemen. Tapi bila isi stack kurang dari 10 elemen, maka keluarkan semua isi stack, sampai stack menjadi kosong n-1 Top xxxxx X 4 Mengeluarkan 10 elemen stack karena jumlah elemen yang ada isinya >= 10 elemen

99 99

100 100 Sudah ada sebuah stack yang dibuat dengan int S[n], dengan variabel Top bertipe int sebagai penunjuk posisi isi stack yang ‘paling atas’. Tidak diketahui apakah stack tersebut dalam keadaan kosong, penuh, bisa diisi, atau ada isinya. Tulis program (penggalan program) untuk menginput data melalui keyboard satu persatu dan mem Push data tersebut ke Stack (bila stack tersebut bisa diisi) sampai Stack penuh tak bisa diisi lagi. 1 1 menit membaca soal 1 menit menyelesaikan jawaban soal

101 101 Sudah ada sebuah stack yang dibuat dengan int S[n], dengan variabel Top bertipe int sebagai penunjuk posisi isi stack yang ‘paling atas’. Tidak diketahui apakah stack tersebut dalam keadaan kosong, penuh, bisa diisi, atau ada isinya. Tulis program (penggalan program) untuk mengeluarkan isi stack tersebut (bila ada isinya), dan mencetaknya ke layar monitor, satu persatu sampai stack tersebut kosong. 2 1 menit membaca soal 1 menit menyelesaikan jawaban soal

102 102

103 103 Soal- II. 1. Sudah ada 2 buah Stack yaitu A dan B, yang dibuat dengan int A[50] dan int B[50], masing-masing dengan penunjuk posisi paling atas dengan nama : TopA, dan TopB. Stack A sudah ada isinya nilai-nilai ujian mahasiswa. Stack B belum ada isinya, dengan ilustrasi pada Gambar-2.11a A B Gambar-2.11a TopB TopA

104 104 Susun program ( penggalan program ) untuk memindahkan isi Stack A ke Stack B sedemikian rupa sehingga Stack A menjadi kosong, dan isi Stack B urut terbalik dibandingkan isi Stack A semula, seperti yang diilustrasikan pada Gambar-2.11b. A B Gambar-2.11b TopB TopA A B Gambar-2.11a TopB TopA

105 Sudah ada 3 buah Stack yaitu A, B dan C, yang dibuat dengan int A[50], int B[50], dan int C[50], masing-masing dengan penunjuk posisi paling atas dengan nama : TopA, TopB, dan TopC. Stack A sudah ada isinya nilai-nilai ujian mahasiswa. Stack B dan Stack C belum ada isinya, dengan ilustrasi pada Gambar-2.12a Gambar-2.12a A B TopB TopA C TopC

106 106 Susun program ( penggalan program ) untuk memindahkan isi Stack A ke Stack B sedemikian rupa sehingga Stack A menjadi kosong, dan isi Stack B urutannya sama dengan isi Stack A semula, seperti yang diilustrasikan pada Gambar-2.12b. Stack C dapat digunakan bila diperlukan. Catatan :Semua proses, harus mengikuti prinsip proses stack PUSH dan POP Gambar-2.12a A B TopB TopA C TopC Gambar-2.12b B A TopA TopB C TopC

107 Sudah ada 3 buah Stack yaitu A, B dan C, yang dibuat dengan int A[50], int B[50], dan int C[50], masing-masing dengan penunjuk posisi paling atas dengan nama : TopA, TopB, dan TopC. Stack A sudah ada isinya nilai-nilai ujian mahasiswa. Stack B dan Stack C belum ada isinya, dengan ilustrasi pada Gambar-2.13a Gambar-2.13 a A B TopB TopA C TopC

108 108 Gambar-2.13a A B TopB TopA C TopC Gambar-2.13b B A TopA TopB C TopC Susun program ( penggalan program ) untuk memindahkan isi Stack A ke Stack B sedemikian rupa sehingga yang dipindahkan ke Stack B hanyalah yang nilainya dibawah 70, sedangkan yang nilainya 70 keatas, tetap berada di Stack A ( atau dikembalikan lagi ke Stack A) sehingga ilustrasi hasil prosesnya seperti yang diperlihatlkan pada Gambar-2.13b.

109 109 Sudah ada dua buah stack SA dan SB yang dibuat dengan int SA[20] dan SB[20], belum ada isinya. Penunjuk data paling ‘atas’ : TopA untuk SA, dan TopB untuk SB. Sudah ada 10 buah data integer dalam lembar dokumen sebagai berikut : 12, 17, 5, 10, 15, 7, 25, 11, 22, Gambar TopB SA SB TopA Catatan : Semua proses menggunakan operasi stack PUSH dan POP Susun program untuk menginput data diatas satu per satu sesuai urutan data ( pertama 12, kedua 17, dan seterusnya ) dan menyimpannya ke dalam stack SA sedemikian rupa sehingga isi stack SA urut nilai menaik seperti yang diilustrasikan pada Gambar Stack SB dapat digunakan bila diperlukan.

110 Sudah ada 3 buah Stack yaitu A, B dan C, yang dibuat dengan int A[50], int B[50], dan int C[50], masing-masing dengan penunjuk posisi paling atas dengan nama : TopA, TopB, dan TopC. Stack A sudah ada isinya nilai-nilai ujian mahasiswa. Stack B dan Stack C belum ada isinya, dengan ilustrasi pada Gambar-2.16a. Gambar-2.16a A B C TopC TopB TopA

111 111 Susun program ( penggalan program ) untuk memindahkan isi Stack A ke Stack B sedemikian rupa sehingga Stack A menjadi kosong, dan isi Stack B nilainya urut menaik, dari nilai terkecil sampai dengan nilai terbesar seperti yang diilustrasikan pada Gambar-2.16b. Stack C dapat digunakan bila diperlukan. Catatan :Semua proses, harus mengikuti prinsip proses stack PUSH dan POP Gambar-2.16a AB C TopC TopB TopA Gambar-2.16a C TopC A TopA B TopB


Download ppt "1. 2 3 4 5 6 6.3 & 7.3 NESTED LOOP 7 8 A stack is an ordered collection of items into which new items may be inserted and from which items may be."

Presentasi serupa


Iklan oleh Google