Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 6.3 & 7.3 NESTED LOOP. 2 Double Ended QUEUE ( ANTRIAN dengan Ujung Ganda )

Presentasi serupa


Presentasi berjudul: "1 6.3 & 7.3 NESTED LOOP. 2 Double Ended QUEUE ( ANTRIAN dengan Ujung Ganda )"— Transcript presentasi:

1 1 6.3 & 7.3 NESTED LOOP

2 2 Double Ended QUEUE ( ANTRIAN dengan Ujung Ganda )

3 PENDAHULUAN A deque (Double-ended queue) is a linear list in which insertion and deletions are made to or from either end of the structure Jean-Paul Tremblay; “An Introduction To Data Structures with Applications”; McGraw-Hill, 1985 INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN Tabung

4 PENDAHULUAN A deque (Double-ended queue) is a linear list in which insertion and deletions are made to or from either end of the structure Jean-Paul Tremblay; “An Introduction To Data Structures with Applications”; McGraw-Hill, 1985 Kalung manik

5 REPRESENTASI DOUBLE ENDED QUEUE dalam array satu dimensi Ilustrasi LR Q[ ] INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN xxx n

6 LR Q[ ] INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n Proses INSERT dan DELETE 1. INSERT KANAN, Masuk dari kanan 2. INSERT KIRI, Masuk dari kiri 3. DELETE KANAN, keluar dari kanan 4. DELETE KIRI, keluar dari kiri

7 Kalau ada perintah masuk dari kanan, maka akan masuk di elemen nomor : ? dan indeks R akan menunjuk elemen nomor : ? 10 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X

8 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X R maju satu langkah : R = R + 1;

9 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X Isi ditempat yang ditunjuk oleh R : Q[R] = X;

10 Sehingga : Kalau ada perintah masuk dari kanan, maka akan masuk di elemen nomor : 6 dan indeks R akan menunjuk elemen nomor : 6 10 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X Algoritma : R = R + 1; Q[R] = X;

11 Kalau ada perintah masuk dari kiri, maka akan masuk di elemen nomor : ? dan indeks L akan menunjuk elemen nomor : ? 10 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X

12 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X L maju satu langkah : L = L - 1;

13 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X Isi ditempat yang ditunjuk oleh L : Q[L] = X;

14 Sehingga : Kalau ada perintah masuk dari kiri, maka akan masuk di elemen nomor : 2 dan indeks L akan menunjuk elemen nomor : 2 10 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X Algoritma : L = L - 1; Q[L] = X;

15 Kalau ada perintah keluar dari kanan, maka yang akan keluar adalah isi elemen nomor : ? dan indeks R akan menunjuk elemen nomor : ? L INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X R

16 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X Ambil isi yang ditunjuk oleh R : X = Q[R];

17 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X R mundur satu langkah : R = R - 1;

18 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN 257 n X isi elemen nomor 5 dihapus untuk keperluan ilustrasi

19 Sehingga : Kalau ada perintah keluar dari kanan, maka yang akan keluar adalah isi elemen nomor : 5 dan indeks R akan menunjuk elemen nomor : 4 12 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X

20 Kalau ada perintah keluar dari kanan, maka yang akan keluar adalah isi elemen nomor : 5 dan indeks R akan menunjuk elemen nomor : 4 12 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN 257 n X Algoritma : X = Q[R]; R = R - 1; isi elemen nomor 5 dihapus untuk keperluan ilustrasi

21 Kalau ada perintah keluar dari kiri, maka yang akan keluar adalah isi elemen nomor : ? dan indeks L akan menunjuk elemen nomor : ? LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X

22 R INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X Ambil isi yang ditunjuk oleh L : X = Q[L]; L

23 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X L mundur satu langkah : L = L + 1;

24 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN 712 n X isi elemen nomor 3 dihapus untuk keperluan ilustrasi

25 Sehingga : Kalau ada perintah keluar dari kiri, maka yang akan keluar adalah isi elemen nomor : 3 dan indeks L akan menunjuk elemen nomor : 4 25 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN n X Algoritma : X = Q[L]; L = L + 1;

26 Kalau ada perintah keluar dari kiri, maka yang akan keluar adalah isi elemen nomor : 3 dan indeks L akan menunjuk elemen nomor : 4 25 LR INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN 712 n X isi elemen nomor 3 dihapus untuk keperluan ilustrasi

27 Prinsip Proses : bukan FIFO bukan juga LIFO tapi keluar masuk dari kedua ujungnya sesuai dengan kesempatan yang ada Proses. a. AWAL (Inisialisasi) b. INSERT (Sisip, Masuk, Simpan, Tulis) c. DELETE ( Hapus, Keluar, Ambil, Baca)

28 Algoritma dasar untuk proses AWAL (Inisialisasi), void AWAL(void) { L = 0; R = -1; } a. LR LRX 0 Q[ ] Ilustrasi hasil proses awal : n

29 LR Q[ ] Kondisi awal : n Pada saat ini, proses apa yang bisa dilakukan ? a. Insert Kanan b. Insert Kiri c. Delete Kanan d. Delete Kiri ?

30 LR Q[ ] Kondisi awal : n Pada saat ini, proses apa yang bisa dilakukan ? Jawab : Hanya Insert Kanan R = R + 1; Q[R] = X;

31 Q[ ] Insert Kanan : n X LR

32 LR Q[ ] Insert Kanan : n X R maju satu langkah R = R + 1;

33 LR Q[ ] Insert Kanan : 25 n X Isi ditempat yang ditunjuk oleh R Q[R] = X;

34 LR Q[ ] Bagaimana kalau : Insert Kiri ? n X

35 L R Q[ ] Bagaimana kalau : Insert Kiri ? n X L maju satu langkah L = L - 1; Tidak Error

36 L R Q[ ] Bagaimana kalau : Insert Kiri ? n X Error Isi ditempat yang ditunjuk oleh L Q[L] = X;

37 Algoritma dasar untuk proses INSERT void INSERT_KIRI(void) { L = L - 1; Q[L] = X; } b.1. Insert Kiri void INSERT_KANAN(void) { R = R + 1; Q[R] = X; } b.2. Insert Kanan b. LR Q[ ] INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN xxx n

38 Algoritma dasar untuk proses DELETE void DELETE_KIRI(void) { X = Q[L]; L = L + 1; } c.1. Delete Kiri void DELETE_KANAN(void) { X = Q[R]; R = R - 1; } c.2. Delete Kanan c. LR Q[ ] INSERT KIRI DELETE KIRI INSERT KANAN DELETE KANAN xxx n

39 Kondisi Antrian A. KOSONG Tak ada yang bisa diambil B. PENUH b1. Penuh Kanan, Tak bisa diisi dari kanan b2. Penuh Kiri, Tak bisa diisi dari kiri C. BISA DIISI c1. Bisa diisi dari Kanan c2. Bisa diisi dari Kiri D. ADA ISINYA Bisa keluar baik dari kanan maupun dari kiri

40 Q[ ] Ilustrasi Proses : n X LR - Kondisi awal - Hanya bisa Insert Kanan - Misal nilai X = 25 INSERT KANAN

41 Q[ ] Ilustrasi Proses : n X L R INSERT KANAN R maju satu langkah R = R + 1;

42 Q[ ] Ilustrasi Proses : n X L R Ilustrasi R & L

43 Q[ ] Ilustrasi Proses : 25 n X L R Isi ditempat yang ditunjuk oleh R R == L antrian hanya berisi satu elemen

44 Q[ ] Ilustrasi Proses : 25 n X L R INSERT KANAN R maju satu langkah R = R + 1;

45 Q[ ] Ilustrasi Proses : 1225 n X L R Isi ditempat yang ditunjuk oleh R R - L == 1 antrian berisi 2 elemen

46 Q[ ] Ilustrasi Proses : 1225 n X L R Misal disi terus

47 Q[ ] Ilustrasi Proses : n X L R Isi ditempat yang ditunjuk oleh R R - L == 1 antrian berisi 2 elemen

48 Q[ ] Ilustrasi Proses : n X L R Dan seterusnya sampai kondisi seperti ini

49 Q[ ] Ilustrasi Proses : n X L R Misal satu persatu didelete dari kiri Ambil yang ditunjuk oleh L X = Q[L]; DELETE KIRI

50 Q[ ] Ilustrasi Proses : n X L R DELETE KIRI Kemudian : L mundur satu langkah L = L + 1;

51 Q[ ] Ilustrasi Proses : n X L R Dan seterusnya didelete kiri

52 Q[ ] Ilustrasi Proses : n X L R Dan seterusnya didelete kiri

53 Q[ ] Ilustrasi Proses : n X L R Dan seterusnya didelete kiri

54 Q[ ] Ilustrasi Proses : n X L R Sampai kondisi seperti ini

55 Q[ ] Ilustrasi Proses : XXX n L R Ini yang dijadikan ilustrasi

56 Q[ ] Ilustrasi Proses : n X L R Ambil lagi satu persatu (delete kiri) sampai habis

57 Q[ ] Ilustrasi Proses : 158 n X L R Ambil lagi satu persatu (delete kiri) sampai habis

58 Q[ ] Ilustrasi Proses : 158 n X L R Ambil lagi satu persatu (delete kiri) sampai habis

59 Q[ ] Ilustrasi Proses : 8 n X L R Ambil lagi satu persatu (delete kiri) sampai habis

60 Q[ ] Ilustrasi Proses : 8 n X LR L == R Antrian hanya berisi 1 elemen

61 Q[ ] Ilustrasi Proses : 8 n X LR Ambil lagi satu persatu (delete kiri) sampai habis

62 Q[ ] Ilustrasi Proses : n X LR L == R + 1, atau R == L - 1 Antrian kosong

63 Q[ ] Ilustrasi Proses : 8 n X LR Misal bukan Delete Kiri, Tapi Delete Kanan

64 Q[ ] Ilustrasi Proses : 8 n X LR Ambil yang ditunjuk oleh R X = Q[R];

65 Q[ ] Ilustrasi Proses : 8 n X LR R mundur satu langkah R = R -1;

66 Q[ ] Ilustrasi Proses : n X LR L == R + 1, atau R == L - 1 Antrian kosong

67 KONDISI ANTRIAN a. Kosong b. Penuh c. Bisa Diisi d. Ada Isinya

68 68 FR n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR 8 KONDISI ANTRIAN : A. KOSONG : Gambar no : ? CIRI : ?

69 69 FR KONDISI ANTRIAN : A. KOSONG : Gambar no : CIRI : 157 L == R + 1 atau R == L - 1 n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR 8

70 70 FR KONDISI ANTRIAN : B. PENUH b1. Penuh Kanan : Gambar no : ? CIRI : ? b2. Penuh Kiri : Gambar no : ? CIRI : ? n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR 8

71 71 FR KONDISI ANTRIAN : B. PENUH b1. Penuh Kanan : Gambar no : CIRI : b2. Penuh Kiri : Gambar no : ? CIRI : ? 67 R == n-1 n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR 8 8

72 72 FR KONDISI ANTRIAN : B. PENUH b1. Penuh Kanan : Gambar no : CIRI : b2. Penuh Kiri : Gambar no : CIRI : 67 R == n-1 n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR 8 28 L == 0 1 8

73 73 FR KONDISI ANTRIAN : B. PENUH b3. Penuh Kanan & Kiri : Gambar no : CIRI : 8 R == n-1 && L == 0 n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR 8

74 74 FR KONDISI ANTRIAN : C. BISA DIISI c1. Bisa Diisi dari Kanan: Gambar no : ? CIRI : ? b2. Bisa Diisi dari Kiri: Gambar no : ? CIRI : ? n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR 8

75 75 FR KONDISI ANTRIAN : C. BISA DIISI c1. Bisa Diisi dari Kanan: Gambar no : CIRI : b2. Bisa Diisi dari Kiri: Gambar no : ? CIRI : ? n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR R < n-1

76 KONDISI ANTRIAN : C. BISA DIISI c1. Bisa Diisi dari Kanan: Gambar no : CIRI : b2. Bisa Diisi dari Kiri: Gambar no : CIRI : n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR R < n L > 0

77 n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR 8 KONDISI ANTRIAN : D. ADA ISInya: Gambar no : ? CIRI : ?

78 n LR X X XXXX X XXX X X X X X LR LR LR LR LR LR X X XXXX X X X X LR 8 KONDISI ANTRIAN : D. ADA ISInya: Gambar no : CIRI : L < R+1 atau L <= R atau R > L-1 atau R >= L

79 KONDISI ANTRIAN : A. KOSONG B. PENUH : b1. Penuh Kanan b2. Penuh Kiri b3. Penuh Kanan & Kiri C. BISA DIISI: c1. dari Kanan c2. dari Kiri D. ADA ISINYA : : : : : : : R == n-1 R < n-1 L == R+1 L < R+1 L == 0 L > 0 L==0 && R==n-1

80 Algoritma yang lengkap untuk INSERT dan DELETE ?

81 void INSERT_KIRI(void) { if ( L > 0) { L = L - 1; Q[L] = X; } else printf(“Antrian Penuh Kiri”) } a.1. Insert Kiri void INSERT_KANAN(void) { if (R < n-1) { R = R + 1; Q[R] = X; } else printf(“Antrian Penuh Kanan”); } a.2. Insert Kanan Algoritma yang lengkap untuk proses INSERTa.

82 82 Algoritma yang lengkap untuk proses DELETE void DELETE_KIRI(void) { if(L < R+1) { X = Q[L]; } L = L + 1; else printf(“Antrian Kosong”); } b1. Delete Kiri void DELETE_KANAN(void) { if(L < R+1) { X = Q[R]; R = R - 1; } else printf(“Antrian Kosong”); } b2. Delete Kanan b

83 83 SOAL UNTUK DOUBLE ENDED QUEUE YANG DIILUSTRASIKAN PADA GAMBAR DIATAS. 1. Sebutkan ciri bahwa Queue : a. b. c. d. e. f. g. h. Kosong tak ada isinya PenuhKanan, tak bisa diisi diisi dari kanan Penuh Kiri, Tak bisa diisi dari kiri Penuh Total, Tak bisa diisi baik dari kanan maupun dari kiri. e1. Bisa diisi dari kanan e2. Bisa diisi dari kiri e3. Bisa diisi baik dari kri maupun dari kanan. Hanya bisa diisi dari kanan, dari kiri tak bisa diisi Hanya bisa diisi dari kiri, dari kanan tak bisa diisi Ada isinya SOAL SOAL LATIHAN MANDIRI Q[ ] XXX n L R

84 84 2. Tulis algoritma dasar untuk: a. b. c. d. e. Inisialisasi. Insert sebuah record dari kanan Insert sebuah record dari kiri Delete sebuah record dari kiri Delete sebuah record dari kanan. 3. Tulis algoritma yang lengkap untuk : a. b, c. d. Insert sebuah record dari kanan Insert sebuah record dari kiri Delete sebuah record dari kanan Delete sebuah record dari kiri i. j. k. l. Hanya berisi 10 pengantri Paling banyak bisa masuk dari kiri, hanya 10 pengantri Paling banyak bisa masuk dari kanan, hanya 10 pengantri Jumlah sisa tempat yang masih bisa diisi dari kanan dan dari kiri hanya ada 10 tempat (elemen)

85 A. Tulis algoritma yang lengkap untuk mengisi antrian dari kanan record per record sampai antrian penuh kanan, atau tak bisa diisi lagi dari kanan. B. Tulis algoritma yang lengkap untuk mengisi antrian dari kiri record per record sampai antrian penuh kiri, atau tak bisa lagi diisi dari kiri. A. Tulis algoritma yang lengkap untuk mendelete isi antrian dari kanan record per record sampai antrian kosong B. Tulis algoritma yang lengkap untuk mendelete isi antrian dari kiri record per record sampai antrian kosong. A. Tulis algoritma yang lengkap untuk mengisi antrian dari kanan record per record sebanyak 10 record selama antrian belum penuh kanan.. Apabila antrian sudah penuh kanan, walaupun belum mengisi 10 record, proses pengisian dihentikan. B. Tulis algoritma yang lengkap untuk mengisi antrian dari kiri record per record sebanyak 10 record selama amtrian belum penuh kiri. Apabila antrian sudah penuh kiri, walaupun belum mengisi 10 record, maka proses pengisian harus dihentikan


Download ppt "1 6.3 & 7.3 NESTED LOOP. 2 Double Ended QUEUE ( ANTRIAN dengan Ujung Ganda )"

Presentasi serupa


Iklan oleh Google