Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 6.3 & 7.3 NESTED LOOP. 2 Circular QUEUE ( ANTRIAN melingkar )

Presentasi serupa


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

1 1 6.3 & 7.3 NESTED LOOP

2 2 Circular QUEUE ( ANTRIAN melingkar )

3 R F 2.1 PENDAHULUAN Q[ ] GHIJ n Perhatikan Linear Queue yang diilustrasikan sebagai berikut: Linear Queue PENUH Tak Bisa Diisi Lagi walaupun Q[0] - Q[5] tak ada isinya

4 R F GHIJ n Bila dijadikan Circular Queue Q[9] atau Q[n] dilanjutkan ke Q[0]

5 R F GHIJ n Bila dijadikan Circular Queue Q[9] atau Q[n] dilanjutkan ke Q[0]

6 R F KGHIJ n Bila dijadikan Circular Queue Q[9] atau Q[n] dilanjutkan ke Q[0]

7 R F KGHIJ n Bila dijadikan Circular Queue Q[9] atau Q[n] dilanjutkan ke Q[0]

8 R F KLGHIJ n Bila dijadikan Circular Queue Q[9] atau Q[n] dilanjutkan ke Q[0]

9 R F KLGHIJ n Bila dijadikan Circular Queue Q[9] atau Q[n] dilanjutkan ke Q[0]

10 R F KLMGHIJ n Bila dijadikan Circular Queue

11 Ilustrasi Q[ ] RF atau xxx n RF xxxxxxx 2.2. REPRESENTASI CIRCULAR QUEUE menggunakan array satu dimensi

12 n n-1 Ilustrasi dalam array satu dimensi

13 if(R == n) R = 0; else R = R + 1; atau R = R + 1; if(R == n+1) R = 0; Q[ ] RF xxx n Menggerakkan R atau F

14 atau dengan menggunakan Operator % atau Librari function fmod( ) R = (R+1) % n atau R = fmod(R+1, n bila n = MAXSIZE, maka : R = (R+1) % MAXSIZE Q[ ] RF xxx n Menggerakkan R atau F

15 MOD 2 = ? MOD --> MODULUS = SISA PEMBAGIAN BILANGAN INTEGER

16 MOD 2 = 1 MOD --> MODULUS = SISA PEMBAGIAN BILANGAN INTEGER

17 MOD 2 = 1 15 MOD 3 = ? MOD --> MODULUS = SISA PEMBAGIAN BILANGAN INTEGER

18 MOD 2 = 1 15 MOD 3 = 0 15 MOD 4 = 15 MOD 5 =

19 MOD 2 = 1 15 MOD 3 = 0 15 MOD 4 = 3 15 MOD 5 = 0 15 MOD 15 = 0 7 MOD 15 = ?

20 MOD 2 = 1 15 MOD 3 = 0 15 MOD 4 = 3 15 MOD 5 = 0 15 MOD 15 = 0 7 MOD 15 = 7

21 MOD 2 = 1 15 MOD 3 = 0 15 MOD 4 = 3 15 MOD 5 = 0 15 MOD 15 = 0 7 MOD 15 = 7 R MOD 15 = ?

22 MOD 2 = 1 15 MOD 3 = 0 15 MOD 4 = 3 15 MOD 5 = 0 15 MOD 15 = 0 7 MOD 15 = 7 R MOD 15 = tergantung nilai R

23 MOD 2 = 1 15 MOD 3 = 0 15 MOD 4 = 3 15 MOD 5 = 0 15 MOD 15 = 0 7 MOD 15 = 7 R MOD 15 = tergantung nilai R R MOD n = ?

24 MOD 2 = 1 15 MOD 3 = 0 15 MOD 4 = 3 15 MOD 5 = 0 15 MOD 15 = 0 7 MOD 15 = 7 R MOD 15 = tergantung nilai R R MOD n = tergantung nilai R dan nilai n

25 Bila R = (R+1) = (R+1) % (n) Untuk n = % 10 = 0 1 % 10 = 1 2 % 10 = % 10 = 9 10 % 10 = 0 R = (R+1) % n atau R = fmod(R+1, n)

26 Prinsip proses : FIFO (First In First Out) Proses. a. AWAL (Inisialisasi) b. INSERT (Sisip, Masuk, Simpan, Tulis) c. DELETE ( Hapus, Keluar, Ambil, Baca) Tidak ada RESET

27 Algoritma dasar untuk proses AWAL (Inisialisasi), void AWAL(void) { F = 0; R = -1; Counter = 0; } a. Ilustrasi hasil proses awal : Q[ ] n RF 00 FRCounter

28 Ilustrasi hasil proses awal : Q[ ] n RF 00 FRCounter R sekarang = -1 jadi R = (R+1) % n = (-1 + 1) % 10 = 0 % 10 = 0

29 Algoritma dasar untuk proses INSERT void INSERT(void) { R = (R+1) % n; Q[R] = X; Counter++; } Algoritma dasar untuk proses DELETE void DELETE(void) { X = Q[F]; F =(F+1) % n; Counter--; } b. c.

30 KONDISI ANTRIAN KOSONG PENUH BISA DIISI ADA ISINYA

31 R F n R F xxxxxx R F xxx R F R F xxxx R F xxxxxxx R F xxxxxxxxxx 7 KONDISI ANTRIAN KOSONG : PENUH : BISA DIISI : ADA ISINYA : Gambar no : ? 0 Counter n

32 R F n R F xxxxxx R F xxx R F R F xxxx R F xxxxxxx R F xxxxxxxxxx 7 KONDISI ANTRIAN KOSONG : 14 Ciri : ? 0 Counter n

33 R F n R F xxxxxx R F xxx R F R F xxxx R F xxxxxxx R F xxxxxxxxxx 7 KONDISI ANTRIAN KOSONG : PENUH : Gambar no : ? 14 Counter = 0 0 Counter n

34 R F n R F xxxxxx R F xxx R F R F xxxx R F xxxxxxx R F xxxxxxxxxx 7 KONDISI ANTRIAN KOSONG : PENUH : 14 Ciri : ? 7 0 Counter n Counter = 0

35 R F n R F xxxxxx R F xxx R F R F xxxx R F xxxxxxx R F xxxxxxxxxx 7 KONDISI ANTRIAN KOSONG : PENUH : Counter n Counter = 0 Counter = n Gambar no : ? BISA DIISI :

36 R F n R F xxxxxx R F xxx R F R F xxxx R F xxxxxxx R F xxxxxxxxxx 7 KONDISI ANTRIAN KOSONG : PENUH : Counter n Counter = 0 Counter = n BISA DIISI : Ciri : ?

37 R F n R F xxxxxx R F xxx R F R F xxxx R F xxxxxxx R F xxxxxxxxxx 7 KONDISI ANTRIAN KOSONG : PENUH : Counter n Counter = 0 Counter = n BISA DIISI : Ciri : Counter < n ADA ISINYA : Gambar no : ?

38 R F n R F xxxxxx R F xxx R F R F xxxx R F xxxxxxx R F xxxxxxxxxx 7 KONDISI ANTRIAN KOSONG : PENUH : Counter n Counter = 0 Counter = n BISA DIISI : Ciri : Counter < n ADA ISINYA : Ciri : ?

39 R F n R F xxxxxx R F xxx R F R F xxxx R F xxxxxxx R F xxxxxxxxxx 7 KONDISI ANTRIAN KOSONG : PENUH : Counter n Counter = 0 Counter = n BISA DIISI : Ciri : Counter < n ADA ISINYA : Ciri : Counter > 0

40 40 Algoritma yang lengkap untuk INSERT dan DELETE

41 Algoritma yang lengkap untuk proses INSERT void INSERT(void) {if ( Counter < n) { R = (R+1) % n; Q[R] = X; Counter++; } else printf(“Antrian Penuh”); } Algoritma yang lengkap untuk proses INSERT dengan ‘Logika Terbalik’ void INSERT(void) { if ( Counter == n) printf(“Antrian Penuh”) else { R = (R+1) % n; Q[R] = X; Counter++; } } a. if( BISA DIISI ) if ( PENUH )

42 Algoritma yang lengkap untuk proses DELETE void DELETE(void) { if ( Counter > 0) { X = Q[F]; F = (F+1) % n; Counter--; } else printf(“Antrian Kosong”); } Algoritma yang lengkap untuk proses DELETE dengan ‘Logika Terbalik’ void DELETE(void) { if ( Counter == 0) printf(“Antrian Kosong”) else { X = Q[F]; F = (F+1) % n; Counter--; } } b. if ( ADA ISINYA ) if ( KOSONG )

43 Gambar-bGambar-a SOAL UNTUK CIRCULAR QUEUE YANG DIILUSTRASIKAN PADA DIATAS. 1. Sebutkan ciri bahwa Antrian : a. b. c. d. e. f. Kosong Penuh Bisa diisi Ada isinya Hanya berisi 10 record Tempat yang kosong hanya ada 10 tempat. 2. Tulis algoritma dasar untuk: a. b. c. Inisialisasi. Insert sebuah record Delete sebuah record 3. Tulis algoritma yang lengkap untuk: b. c. Insert sebuah record Delete sebuah record 2.4. SOAL SOAL LATIHAN MANDIRI F xxx R F xxxxxxx 11 R 0 n-1

44 Tulis algoritma yang lengkap untuk mengisi antrian record per record sampai antrian penuh tak bisa diisi lagi. 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.


Download ppt "1 6.3 & 7.3 NESTED LOOP. 2 Circular QUEUE ( ANTRIAN melingkar )"

Presentasi serupa


Iklan oleh Google