Think Different Materi ASD 2014 pertemuan_14

Queue

Queue (Antrian)
• Contoh antrian :
• Antrian printer
• Antrian tiket bioskop

Pengertian
• Queue (antrian) adalah struktur data
dimana proses pengambilan dan
penambahan element dilakukan pada
ujung yang berbeda.
• Queue mengikuti konsep FIFO.
• FIFO (First In First Out) : elemen yang
pertama masuk akan menjadi elemen
yang pertama kali keluar.

Enqueue dan Dequeue
1. Enqueue
proses penambahan element pada queue.
2. Dequeue

proses pengambilan element pada queue.
Penambahan dilakukan pada bagian belakang.
Sedangkan pengambilan dilakukan pada bagian depan
(element yang pertama masuk).

enqueue

Queue

dequeue

Front dan Rear
• Front : pointer bantu yang digunakan
untuk menunjuk element yang paling
depan.
• Rear : pointer bantu yang digunakan
untuk menunjuk element yang paling
belakang.

Enqueue

Rear

Queue

Dequeue
Front

• Queue berguna untuk menyimpan
pekerjaan yang tertunda.

Gambaran Proses Queue
(Antrian)

Operasi pada Queue
1.
2.
3.
4.
5.
6.

7.

Deklarasi
Inisialisasi
Cek kosong
Cek penuh
Penambahan
Pengambilan
Pengaksesan

(1) Deklarasi
• Proses yang harus dilakukan pertama kali
adalah deklarasi/menyiapkan tempat.
• Langkah yang harus dilakukan adalah :
– Deklarasi class
– Deklarasi struktur data (menggunakan array atau
linked list)
– Deklarasi pointer front dan rear
– Deklarasi variabel size untuk menyimpan besar
array.

– Deklarasi variabel jumlah untuk mengetahui
banyak item yang disimpan pada queue.

Deklarasi Queue dengan Array
1. Pembuatan class
contoh :
2. Pembuatan variabel front dan rear:
int front, rear;
3. Pembuatan variabel size :
int array_size;
(mendeklarasikan variabel bernama array_size dengan tipe integer)

4. Pembuatan variabel Array :
int antrian[];(deklarasi variabel array bernama antrian)
5. Pembuatan variabel jumlah:
int jumlah_item;

Program Deklarasi Queue
(Array)


(2) Inisialisasi
• Merupakan proses pemberian nilai awal.
• Pada Array :
1. Pembentukan obyek array beserta
ukurannya.
antrian= new int[10];
(pembentukan obyek array yang memiliki 10 element, dan
alamat obyek akan disimpan pada variabel bernama antrian)

2. Pemberian nilai awal pada variabel front=0
dan belakang=-1.
front = 0;

rear=-1;

Program Inisialisasi Queue
(Array)

(3) Cek Kosong
• Operasi yang digunakan untuk mengecek

kondisi queue dalam keadaan kosong.
• Pada array : menggunakan pengecekan
pada variabel jumlah_item. Jika nilainya = 0
berarti queue dalam kondisi kosong.
• Operasi ini harus dapat mengembalikan nilai
true jika queu kosong dan false jika
sebaliknya.

Program “isEmpty” Queue
(Array)

(4) Cek Penuh
• Operasi yang hanya dapat diterapkan pada
queue yang menggunakan array.
• Operasi ini digunakan untuk mengecek
kondisi queue dalam keadaan penuh.
• Caranya : melihat nilai pada variabel jumlah
item. Jika nilainya = size-1 (dimana size
adalah ukuran array) maka dapat
diindikasikan queue dalam kondisi penuh.

• Operasi ini harus dapat mengembalikan nilai
true jika queue penuh dan false jika
sebaliknya.

Program “isFull” (Array)

(5) Operasi Dequeue
• Dequeue adalah proses pengambilan data
pada queue.
• Ketika dequeue terjadi, element pada queue
akan berkurang, yaitu element yang pertama
kali ditambahkan.
• Pada Array : akan terjadi pergeseran data
dari belakang ke depan. Rear berkurang 1.

(5) Operasi POP...........
(lanjutan)
• Langkah-langkah :
1. Pengecekan queue dalam kondisi
kosong dengan memanggil method

isEmpty().
2. Data dari element yang diambil akan
menjadi return value (nilai yang
dikembalikan)
3. Perubahan nilai pada variabel front dan
rear

Program Dequeue (Array)

(6) Operasi Enqueue
• Enqueue adalah proses penambahan
element pada queue.
• Ketika enqueue terjadi, element pada queue
akan bertambah 1.
• Posisi pointer rear akan bergeser menunjuk
pada element baru yang ditambahkan.
– Pada array : rear akan di-increment.

(6) Operasi Enqueue...........
(lanjutan)

• Langkah-langkah :
1. Penambahan element baru pada bagian
belakang queue.
2. Perubahan posisi rear.
• Khusus untuk array, terlebih dahulu harus
dicek kondisi queue penuh dengan
memanggil method isFull(). Jika nilai yang
dikembalikan true maka bisa ditampilkan
pesan kesalahan atau dilakukan resizing
array.

Program Enqueue (Array)

Program Rezising()

(7) Operasi peek
• Peek pada queue adalah proses
pengaksesan element yang ditunjuk
oleh front (yaitu element yang pertama
kali ditambahkan).

• Operasi ini berbeda dengan enqueue
karena tidak disertai dengan
penghapusan data yang ada hanya
pengaksesan (pengembalian data
saja).

Program Peek (Array)

Contoh Penerapan Queue
• mailbox dalam komunikasi antar
proses
• simulasi dan modeling (misalnya
simulasi sistem pengendali lalu lintas
udara) dalam memprediksi performansi
• Waiting Line pada Sistem Operasi