Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Circular QUEUE 6.3 & 7.3 NESTED LOOP.

Presentasi serupa


Presentasi berjudul: "Circular QUEUE 6.3 & 7.3 NESTED LOOP."— Transcript presentasi:

1 Circular QUEUE 6.3 & 7.3 NESTED LOOP

2 Circular QUEUE ( ANTRIAN melingkar )

3 Q[ ] G H I J Linear Queue PENUH Tak Bisa Diisi Lagi
2. 11 2.1 PENDAHULUAN Perhatikan Linear Queue yang diilustrasikan sebagai berikut: n-1 Q[ ] G H I J R F Linear Queue PENUH Tak Bisa Diisi Lagi walaupun Q[0] - Q[5] tak ada isinya

4 Bila dijadikan Circular Queue
2. 12 n-1 G H I J R F Q[9] atau Q[n] dilanjutkan ke Q[0]

5 Bila dijadikan Circular Queue
2. 12 n-1 G H I J R F Q[9] atau Q[n] dilanjutkan ke Q[0]

6 Bila dijadikan Circular Queue
2. 12 n-1 K G H I J R F Q[9] atau Q[n] dilanjutkan ke Q[0]

7 Bila dijadikan Circular Queue
2. 12 n-1 K G H I J R F Q[9] atau Q[n] dilanjutkan ke Q[0]

8 Bila dijadikan Circular Queue
2. 12 n-1 K L G H I J R F Q[9] atau Q[n] dilanjutkan ke Q[0]

9 Bila dijadikan Circular Queue
2. 12 n-1 K L G H I J R F Q[9] atau Q[n] dilanjutkan ke Q[0]

10 Bila dijadikan Circular Queue
2. 12 n-1 K L M G H I J R F

11 2.2. REPRESENTASI CIRCULAR QUEUE menggunakan array satu dimensi
2. 12 2.2. REPRESENTASI CIRCULAR QUEUE menggunakan array satu dimensi Ilustrasi n-1 Q[ ] x x x atau F R Q[ ] x x x x x x x R F

12 Ilustrasi dalam array satu dimensi
2. 12 n-1 6 7 Ilustrasi dalam array satu dimensi n-1

13 Menggerakkan R atau F R = R + 1; if(R == n+1) R = 0; Q[ ] x x x F R
2. 13 n Q[ ] x x x F R if(R == n) R = 0; else R = R + 1; atau R = R + 1; if(R == n+1) R = 0;

14 Menggerakkan R atau F Q[ ] x x x F R
2. 13 n-1 Q[ ] x x x F R 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

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

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

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

18 2. 13 15 MOD = 1 15 MOD = 0 15 MOD = 15 MOD =

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

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

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

22 R MOD 15 = tergantung nilai R
2. 13 15 MOD = 1 15 MOD = 0 15 MOD = 3 15 MOD = 0 15 MOD = 0 7 MOD = 7 R MOD = tergantung nilai R

23 R MOD 15 = tergantung nilai R R MOD n = ?
2. 13 15 MOD = 1 15 MOD = 0 15 MOD = 3 15 MOD = 0 15 MOD = 0 7 MOD = 7 R MOD = tergantung nilai R R MOD n = ?

24 R MOD 15 = tergantung nilai R R MOD n = tergantung nilai R
2. 13 15 MOD = 1 15 MOD = 0 15 MOD = 3 15 MOD = 0 15 MOD = 0 7 MOD = 7 R MOD = tergantung nilai R R MOD n = tergantung nilai R dan nilai n

25 R = (R+1) % n atau R = fmod(R+1, n) Untuk n = 10 Bila R = (R+1) =
2. 13 R = (R+1) % n atau R = fmod(R+1, n) Untuk n = 10 Bila R = (R+1) = (R+1) % (n) -1 1 2 3 - 8 9 1 2 3 4 - 9 10 0 % 10 = 0 1 % 10 = 1 2 % 10 = 2 - 9 % 10 = 9 10 % 10 = 0

26 b. INSERT (Sisip, Masuk, Simpan, Tulis)
2. 14 Prinsip proses : FIFO (First In First Out) 2.2.3 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),
2. 14 void AWAL(void) { F = 0; R = -1; Counter = 0; } Ilustrasi hasil proses awal : n-1 Q[ ] -1 R F F R Counter

28 Ilustrasi hasil proses awal :
2. 14 Ilustrasi hasil proses awal : n Q[ ] -1 R F F R Counter R sekarang = -1 jadi R = (R+1) % n = (-1 + 1) % 10 = 0 % 10 = 0

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

30 2. 16 KONDISI ANTRIAN KOSONG PENUH BISA DIISI ADA ISINYA

31 KONDISI ANTRIAN Gambar no : ? KOSONG : PENUH : BISA DIISI :
KONDISI ANTRIAN 2. 16 1 Counter KOSONG : Gambar no : ? R F 2 x x x x x x 6 F R PENUH : 3 3 x x x F R 4 BISA DIISI : R F 5 x x x x 4 F R 6 ADA ISINYA : x x x x x x x 7 R F 7 n x x x x x x x x x x R F

32 KONDISI ANTRIAN KOSONG : Ciri : ? 2. 16 x x x x x x 6 3 x x x x x x x
KONDISI ANTRIAN 2. 16 1 Counter KOSONG : 1 4 R F Ciri : ? 2 x x x x x x 6 F R 3 3 x x x F R 4 R F 5 x x x x 4 F R 6 x x x x x x x 7 R F 7 n x x x x x x x x x x R F

33 KONDISI ANTRIAN KOSONG : Gambar no : ? PENUH : Counter = 0 2. 16 x x x
KONDISI ANTRIAN 2. 16 1 Counter KOSONG : 1 4 R F 2 Counter = 0 x x x x x x 6 F R Gambar no : ? PENUH : 3 3 x x x F R 4 R F 5 x x x x 4 F R 6 x x x x x x x 7 R F 7 n x x x x x x x x x x R F

34 KONDISI ANTRIAN KOSONG : PENUH : Ciri : ? Counter = 0 2. 16 x x x x x
KONDISI ANTRIAN 2. 16 1 Counter KOSONG : 1 4 R F 2 Counter = 0 x x x x x x 6 F R PENUH : 3 7 3 x x x Ciri : ? F R 4 R F 5 x x x x 4 F R 6 x x x x x x x 7 R F 7 n x x x x x x x x x x R F

35 KONDISI ANTRIAN KOSONG : PENUH : Gambar no : ? BISA DIISI :
KONDISI ANTRIAN 2. 16 1 Counter KOSONG : 1 4 R F 2 Counter = 0 x x x x x x 6 F R PENUH : 3 7 3 x x x Counter = n F R 4 Gambar no : ? BISA DIISI : R F 5 x x x x 4 F R 6 x x x x x x x 7 R F 7 n x x x x x x x x x x R F

36 KONDISI ANTRIAN KOSONG : PENUH : BISA DIISI : Ciri : ? Counter = 0
KONDISI ANTRIAN 2. 16 1 Counter KOSONG : 1 4 R F 2 Counter = 0 x x x x x x 6 F R PENUH : 3 7 3 x x x Counter = n F R 4 BISA DIISI : 1 2 3 4 R F 5 6 Ciri : ? 5 x x x x 4 F R 6 x x x x x x x 7 R F 7 n x x x x x x x x x x R F

37 KONDISI ANTRIAN KOSONG : PENUH : BISA DIISI : Ciri : Gambar no : ?
KONDISI ANTRIAN 2. 16 1 Counter KOSONG : 1 4 R F 2 Counter = 0 x x x x x x 6 F R PENUH : 3 7 3 x x x Counter = n F R 4 BISA DIISI : 1 2 3 4 R F 5 6 5 x x x x 4 Ciri : Counter < n F R Gambar no : ? 6 ADA ISINYA : x x x x x x x 7 R F 7 n x x x x x x x x x x R F

38 KONDISI ANTRIAN KOSONG : PENUH : BISA DIISI : Ciri : ADA ISINYA :
KONDISI ANTRIAN 2. 16 1 Counter KOSONG : 1 4 R F 2 Counter = 0 x x x x x x 6 F R PENUH : 3 7 3 x x x Counter = n F R 4 BISA DIISI : 1 2 3 4 R F 5 6 5 x x x x 4 Ciri : Counter < n F R 6 ADA ISINYA : x x x x x x x 7 2 3 5 6 R F 7 Ciri : ? 7 n x x x x x x x x x x R F

39 KONDISI ANTRIAN KOSONG : PENUH : BISA DIISI : Ciri : ADA ISINYA :
KONDISI ANTRIAN 2. 16 1 Counter KOSONG : 1 4 R F 2 Counter = 0 x x x x x x 6 F R PENUH : 3 7 3 x x x Counter = n F R 4 BISA DIISI : 1 2 3 4 R F 5 6 5 x x x x 4 Ciri : Counter < n F R 6 ADA ISINYA : x x x x x x x 7 2 3 5 6 R F 7 Ciri : Counter > 0 7 n x x x x x x x x x x R F

40 Algoritma yang lengkap
untuk INSERT dan DELETE

41 Algoritma yang lengkap untuk proses INSERT
2. 19 void INSERT(void) {if ( Counter < n) { R = (R+1) % n; Q[R] = X; Counter++; } else printf(“Antrian Penuh”); if( BISA DIISI ) 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++; } } if ( PENUH )

42 Algoritma yang lengkap untuk proses DELETE
b. Algoritma yang lengkap untuk proses DELETE 2. 20 void DELETE(void) { if ( Counter > 0) { X = Q[F]; F = (F+1) % n; Counter--; } else printf(“Antrian Kosong”); if ( ADA ISINYA ) 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--; } } if ( KOSONG )

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

44 2. 22 4. 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 5. 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. 7. 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 "Circular QUEUE 6.3 & 7.3 NESTED LOOP."

Presentasi serupa


Iklan oleh Google