Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1#33 6.3 & 7.3 NESTED LOOP. 2#33 QUEUE ( ANTRIAN )

Presentasi serupa


Presentasi berjudul: "1#33 6.3 & 7.3 NESTED LOOP. 2#33 QUEUE ( ANTRIAN )"— Transcript presentasi:

1 1# & 7.3 NESTED LOOP

2 2#33 QUEUE ( ANTRIAN )

3 3# A Queue is an ordered collection of items into which new items may be inserted at one end (called the rear of the queue) and from which items may be deleted at one end (called the front of the queue). ( Yedidyah L, Moshe J. A., and Aaron M. Tenenbaum; Data Structures Using C and C++) InsertDelete REAR FRONT

4 4# Ada 3 macam struktur QUEUE (Antrian) yang menggunakan Array Satu Dimensi yang akan dibahas: I. II. III. LINEAR QUEUE CIRCULAR QUEUE DOUBLE ENDED QUEUE (DEQUE)

5 5# LINEAR QUEUE (Antrian Lurus). F = Front R = Rear 2. CIRCULAR QUEUE (Antrian Melingkar). 3. DOUBLE ENDED QUEUE (Antrian Dengan Ujung Ganda ). n F R XXXX L = LEFT R = RIGHT n F R XXXX n F R XXXXXX n L R XXXX ILUSTRASI

6 6# Front = depan Rear = Belakang front Rear KELUARMASUK

7 7# Front = depan Rear = Belakang front Rear KELUARMASUK ABCD

8 8# Ilustrasi Linear Queue menggunakan array Satu dimensi A BCD ABCD n FR FRONTREAR

9 9# Ilustrasi Linear Queue menggunakan array Satu dimensi ABCD n LOKET FR

10 10# Ilustrasi Linear Queue menggunakan array Satu dimensi BCD n LOKET FR A keluar

11 11# Ilustrasi Linear Queue menggunakan array Satu dimensi BCD n LOKET FR Geser B

12 12# Ilustrasi Linear Queue menggunakan array Satu dimensi BCD n LOKET FR Geser C

13 13# Ilustrasi Linear Queue menggunakan array Satu dimensi BCD n LOKET FR Geser D

14 14# Algoritma Penggeseran isi antrian ABCD n BCDD n Dari : Menjadi : FR FR Algoritma : for(I=F; I<=R-1; I++) { Q[I] = Q[I+1]; } R--;

15 15# Algoritma Penggeseran isi antrian ABCD n BCDD n Dari : Menjadi : FR FR Algoritma : for(I=F; I<=R-1; I++) { Q[I] = Q[I+1]; } R--; Penggeseran BUTUH WAKTU !

16 16# Loket yang digeser ABCD n LOKET FR perhatikan posisi F terhadap Loket

17 17# Loket yang digeser BCD n LOKET FR

18 18# Loket yang digeser BCD n LOKET FR

19 19# Loket yang digeser CD n LOKET FR

20 20# Loket yang digeser CD n LOKET FR

21 21# Loket yang digeser D n LOKET FR

22 22# Loket yang digeser D n LOKET FR

23 23# Loket yang digeser n LOKET FR

24 24# Loket yang digeser n LOKET FR F > R atau F = R + 1 berarti : ANTRIAN KOSONG

25 25# Loket yang digeser E n LOKET FR

26 26# Loket yang digeser EF n LOKET FR

27 27# Loket yang digeser EFG n LOKET FR

28 28# Loket yang digeser EFGH n LOKET FR

29 29# Loket yang digeser EFGHI n LOKET FR

30 30# Loket yang digeser EFGHIJ n LOKET FR

31 31# Loket yang digeser FGHIJ n LOKET FR

32 32# Loket yang digeser EFGHIJ n LOKET FR

33 33# Loket yang digeser FGHIJ n LOKET FR

34 34# Loket yang digeser J n LOKET FR

35 35# Loket yang digeser n LOKET FR

36 36# Semua antrian sudah keluar (dilayani) n LOKET FR Bila semua antrian sudah dilayani maka keadaan perlu dikembalikan ke keadaan semula (perlu diRESET)

37 37# Kembali ke keadaan awal n LOKET FR

38 38# ILUSTRASI ANTRIAN LURUS. F = Front (depan) R = Rear (Belakang) n F R XXXX 36 FRX Representasi Linear Queue dalam array satu dimensi #define n 10 - int Q[n]; int F, R, X; misal dibuat dengan : Q[ ]

39 39# PRINSIP / KONSEP PROSES : FIFO (First In First Out) atau FIFS (First In First Serve) 1.2.

40 40# PROSES. a. AWAL (Inisialisasi) b. INSERT (Isi, Sisip, Masuk, Simpan, Tulis) c. DELETE ( Hapus, Keluar, Ambil atau Dilayani, Baca) d. RESET (Kembali ke keadaan awal) 1.3.

41 41# Algoritma dasar untuk proses AWAL (Inisialisasi), ditulis dalam bahasa C. Ilustrasi hasil proses awal : a. void AWAL(void) { F = 0; R = -1; } n F R Q[ ] 0 FRX F > R atau F = R + 1 Antrian KOSONG

42 42# Ilustrasi hasil proses awal : n F R Q[ ] 0 FRX Hanya bisa Insert F > R atau F = R + 1 Antrian KOSONG

43 43# Dalam struktur LINEAR QUEUE, digunakan istilah : - INSERT untuk : Simpan, atau Masuk, atau Isi atau Tulis. - DELETE untuk : Ambil, atau Keluar, atau Baca, atau Hapus Prinsip atau Konsep prosesnya : F I F O ( First In First Out )

44 44# F = Front (depan) R = Rear (Belakang) n F R XXXX 36 FRX DELETE INSERT Ilustrasi Linear Queue Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah INSERT ( Isi, Masuk, Simpan) maka akan diisi di elemen nomor : ? dan R akan menunjuk elemen nomor : ? F akan menunjuk elemen nomor : ?

45 45# n F R XXXX 36 FRX DELETE INSERT Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah INSERT ( Isi, Masuk, Simpan) maka akan diisi di elemen nomor : 7 dan R akan menunjuk elemen nomor : 7 F akan menunjuk elemen nomor : tetap di 3

46 46# n F R XXXX 36 FRX DELETE INSERT Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah DELETE ( Ambil, Keluar, Hapus) maka yang akan diambil adalah isi di elemen nomor : ? Setelah itu akan terlihat : R menunjuk elemen nomor : ? dan F menunjuk elemen nomor : ?

47 47# n F R XXXX 36 FRX DELETE INSERT Pertanyaan : dalam keadaan seperti sekarang Kalau ada perintah DELETE ( Ambil, Keluar, Hapus) maka yang akan diambil adalah isi di elemen nomor : 3 Setelah itu akan terlihat : R menunjuk elemen nomor : Tetap menunjuk 6 dan F menunjuk elemen nomor : 4

48 48#33 Algoritma dasar untuk INSERT

49 49#33 n F R Q[ ] 0 FR AWAL X Mau Insert F > R atau F = R + 1 Antrian KOSONG ANTRIAN KOSONG

50 50#33 n F R Q[ ] 00 FR R maju satu langkah---> ( R=R+1); X F

51 51#33 n F R a Q[ ] 00 FR Isi ditempat yang ditunjuk oleh R---> Q[R] = X; a X F

52 52#33 n F R a Q[ ] 01 FR a X

53 53#33 n F R ab Q[ ] 01 FR b X

54 54#33 n F R ab Q[ ] 02 FR b X

55 55#33 n F R abc Q[ ] 02 FR c X

56 56#33 n F R abc Q[ ] 03 FR c X

57 57#33 n F R abcd Q[ ] 03 FR d X

58 58#33 n F R abcd Q[ ] 04 FR d X

59 59#33 n F R abcd e Q[ ] 04 FR e X

60 60#33 n F R abcd e Q[ ] 05 FR e X

61 61#33 n F R abcd e f Q[ ] 05 FR f X

62 62#33 n F R abcd e f Q[ ] 06 FR f X

63 63#33 n F R abcd e f g Q[ ] 06 FR g X

64 64# n F R XXXX 36 FRX Algoritma dasar untuk INSERT pada antrian Q[ ] Pilih satu yang benar a. R = R + 1; Q[R] = X; b. Q[R] = X; R = R + 1; d. X = Q[R]; R = R + 1; c. R = R + 1; X = Q[R]; ?

65 65# n F R XXXX 36 FRX Algoritma dasar untuk INSERT pada antrian Q[ ] Algoritma Insert yang benar a. R = R + 1; Q[R] = X; b. Q[R] = X; R = R + 1; d. X = Q[R]; R = R + 1; c. R = R + 1; X = Q[R];

66 66# Algoritma dasar untuk INSERT pada antrian Q[ ] R = R + 1; Q[R] = X; R+=1; Q[R] = X; R++; Q[R] = X; Q[++R] = X;

67 67#33 n F R abcd e f g Q[ ] 06 FR Dalam Keadaan seperti ini Akan di DELETE g X Isi elemen no : ?

68 68#33 n F R bcd e f g Q[ ] 06 FR Ambil isi yang ditunjuk oleh F ---> X = Q[F]; a X

69 69#33 n F R bcd e f g Q[ ] 16 FR Kemudian F maju satu langkah ---> F = F + 1; a X

70 70#33 n F R cd e f g Q[ ] 16 FR b X

71 71#33 n F R cd e f g Q[ ] 26 FR b X

72 72#33 n F R d e f g Q[ ] 26 FR c X

73 73#33 n F R d e f g Q[ ] 36 FR c X

74 74#33 n F R X X X X Q[ ] 36 FR Ini yang digunakan untuk : ILUSTRASI LINEAR QUEUE X

75 75#33 n F R d e f g Q[ ] 36 FR DELETE LAGI SAMPAI KOSONG c X

76 76#33 n F R e f g Q[ ] 36 FR d X

77 77#33 n F R e f g Q[ ] 46 FR d X

78 78#33 n F R f g Q[ ] 46 FR e X

79 79#33 n F R f g Q[ ] 56 FR e X

80 80#33 n F R g Q[ ] 56 FR f X

81 81#33 n F R g Q[ ] 66 FR f X F = R Isi antrian tinggal Satu elemen

82 82#33 n F R Q[ ] 66 FR g X

83 83#33 n F R Q[ ] 76 FR g X F > R atau F = R + 1 Antrian Kosong ANTRIAN KOSONG

84 84#33 n F R Q[ ] 76 FR g X ANTRIAN KOSONGSEKARANG MAU DIISI LAGI Disi di kolom : ?

85 85#33 n F R Q[ ] 77 FR g X Misal akan diisi sampai penuh R maju satu langkah

86 86#33 n F R h Q[ ] 77 FR h X Isi ditempat yang ditunjuk oleh R

87 87#33 n F R h Q[ ] 77 FR h X

88 88#33 n F R h i Q[ ] 78 FR i X

89 89#33 n F R h i Q[ ] 79 FR i X

90 90#33 n F R h i j Q[ ] 79 FR j X R = n Antrian PENUH ANTRIAN PENUH

91 91#33 n F R h i j Q[ ] 79 FR j X ANTRIAN PENUH Sekarang mau di DELETE Delete kolom berapa : ?

92 92#33 n F R h i j Q[ ] 76 FR j X Misal mau diDELETE sampai kosong(habis)

93 93#33 n F R i j Q[ ] 76 FR h X

94 94#33 n F R i j Q[ ] 89 FR h X

95 95#33 n F R j Q[ ] 89 FR i X

96 96#33 n F R j Q[ ] 99 FR i X F = R Isi antrian Tinggal satu elemen

97 97#33 n F R Q[ ] 99 FR j X

98 98#33 n F R Q[ ] 109 FR j X F = R+1 Antrian KOSONG tak ada isnya Antrian KOSONG F=n+1

99 99#33 n F R Q[ ] 109 FR j X F = R+1 Antrian KOSONG R = n, antrian PENUH dalam arti antrian Tak Bisa Diisi Antrian Kosong, juga Penuh, Antrian perlu diRESET

100 100#33 n F R Q[ ] 0 FRX Antrian sudah diRESET F = 0, R = -1

101 101# n F R XXXX 36 FRX Algoritma dasar untuk DELETE pada antrian Q[ ] Pilih satu yang benar a. F = F + 1; Q[F] = X; b. Q[F] = X; F = F + 1; d. X = Q[F]; F = F + 1; c. F = F + 1; X = Q[F]; ?

102 102# n F R XXXX 36 FRX Algoritma dasar untuk DELETE pada antrian Q[ ] Pilih satu yang benar a. F = F + 1; Q[F] = X; b. Q[F] = X; F = F + 1; d. X = Q[F]; F = F + 1; c. F = F + 1; X = Q[F]; ?

103 103# Algoritma Delete pada LINEAR QUEUE X = Q[F]; F = F + 1; X = Q[F]; F+=1; X = Q[F]; F++; X = Q[F++]; atau :

104 104# KONDISI ANTRIAN n FR FR X X XXXX X XXX X X X X X FR FR FR FR FR FR KOSONG : PENUH : BISA DIISI : ADA ISINYA : Gambar no : ?

105 105# KONDISI ANTRIAN n FR FR X X XXXX X XXX X X X X X FR FR FR FR FR FR KOSONG : PENUH : BISA DIISI : ADA ISINYA : 175 Ciri : ?

106 106# KONDISI ANTRIAN n FR FR X X XXXX X XXX X X X X X FR FR FR FR FR FR KOSONG : PENUH : BISA DIISI : ADA ISINYA : F = R + 1 Gambar no : ? 175

107 107# KONDISI ANTRIAN n FR FR X X XXXX X XXX X X X X X FR FR FR FR FR FR KOSONG : PENUH : BISA DIISI : ADA ISINYA : F = R + 1 Gambar no : ? Ciri : ?

108 108# KONDISI ANTRIAN n FR FR X X XXXX X XXX X X X X X FR FR FR FR FR FR KOSONG : PENUH : BISA DIISI : ADA ISINYA : F = R + 1 R = n-1 Gambar no : ?

109 109# KONDISI ANTRIAN n FR FR X X XXXX X XXX X X X X X FR FR FR FR FR FR KOSONG : PENUH : BISA DIISI : ADA ISINYA : F = R + 1 R = n-1 Ciri : ?

110 110# KONDISI ANTRIAN n FR FR X X XXXX X XXX X X X X X FR FR FR FR FR FR KOSONG : PENUH : BISA DIISI : ADA ISINYA : F = R + 1 R = n-1 R < n-1 Gambar no : ?

111 111# KONDISI ANTRIAN n FR FR X X XXXX X XXX X X X X X FR FR FR FR FR FR KOSONG : PENUH : BISA DIISI : ADA ISINYA : F = R + 1 R = n-1 R < n-1 Ciri : ?

112 112# KONDISI ANTRIAN n FR FR X X XXXX X XXX X X X X X FR FR FR FR FR FR KOSONG : PENUH : BISA DIISI : ADA ISINYA : F = R + 1 R = n-1 R < n-1 F < R+1

113 113# Algoritma yang lengkap untuk INSERT & DELETE

114 114# Algoritma yang lengkap untuk proses INSERT void INSERT(void) { if ( R < n-1 ) { R = R + 1; Q[R] = X; } else printf( “Antrian Penuh”); } Algoritma yang lengkap untuk proses INSERTdengan ‘logika terbalik’ void INSERT(void) { if ( R == n-1 ) printf(“Antrian Penuh’); else { R = R + 1; Q[R] = X; } a.

115 115#33 Algoritma yang lengkap untuk proses DELETE void DELETE(void) { if ( F < R+1 ) { X = Q[F] ; F = F + 1; if ( F == n ) { F = 0; R = -1; } } else printf( “Antrian Kosong”); } Algoritma yang lengkap untuk proses DELETE dengan ‘logika terbalik’ void DELETE(void) { if ( F == R+1 ) printf(“Antrian Kosong’); else { X = Q[R]; F = F + 1; if ( F == n ) { F = 0; R = 0; } } } b.

116 116# CONTOH PROGRAM LINEAR QUEUE. #include #define n 10 char Q[n]; int F,R; void Insert(char X); void Delete(void); void Awal(void); void Reset(void); int main() { int I; char X, Y; clrscr(); Awal(); - scanf(“%i”, &X); Insert(X); - Delete(); - } void Awal(void) { F = 0; R = -1; } void Insert( char X) { if (R < n-1) { R++; Q[R] = X; } else printf(“\nAntrian Penuh “); } void Delete( void) { char X; if( F < R+1 ) { X = Q[F]; printf(“%c”, X); F++; if(F == n) Reset( ); else printf(“Antrian Kosong”); } void Reset(void) { F = 0; R = -1; }

117 117# SOAL SOAL LATIHAN MANDIRI 1. Sebutkan ciri bahwa Queue : a. b. c. d. e. f. g. h. Kosong tak ada isinya Penuh, tak bisa diisi Bisa diisi Ada isinya Antrian tak bisa diisi lagi, tapi belum ada isi antrian yang sudah keluar atau sudah dilayani. Antrian perlu diReset. Hanya berisi 10 pengantri (yang belum keluar/dilayani) Sisa tempat yang masih bisa diisi hanya ada 10 tempat (elemen) Soal untuk Linear Queue seperti yang diilustrasikan pada gambar diatas n F R XXXX

118 118# SOAL SOAL LATIHAN MANDIRI 2. Tulis algoritma dasar untuk: 4.Tulis algoritma yang lengkap untuk mengisi antrian record per record sampai antrian penuh tak bisa diisi lagi. a. b. c. d. Inisialisasi. Insert sebuah record Delete sebuah record Reset. 3. Tulis algoritma yang lengkap untuk : a. b, Insert sebuah record Delete sebuah record Soal untuk Linear Queue seperti yang diilustrasikan pada gambar diatas n F R XXXX

119 119# SOAL SOAL LATIHAN MANDIRI 5.Tulis algoritma yang lengkap untuk mendelete isi antrian record per record sampai antrian kosong 7. 6.Tulis algoritma yang lengkap untuk mengisi antrian record per record sebanyak 10 recordselama antrian beleum penuh. Apabila antrian penuh, walaupun belum mengisi 10 record, proses pengisian dihentikan. Tulis algoritma yang lengkap untuk mendelete isi antrian record per record sebanyak 10 record selama antrian masih ada isinya. Bila antrian sudah kosong, walaupun belum mendelete sebanyak 10 record, maka proses delete dihentikan. 8. Tulis algoritma untuk menghitung dan mencetak jumlah tempat (elemen) yang ada isinya. 9. Tulis algoritma untuk menghitung dan mencetak jumlah tempat yang masih bisa diisi.

120 120# & 7.3 NESTED LOOP bersambung ke Circular Queue


Download ppt "1#33 6.3 & 7.3 NESTED LOOP. 2#33 QUEUE ( ANTRIAN )"

Presentasi serupa


Iklan oleh Google