7 - Queue
7 - Queue
2
Pengertian Queue (Antrian)
• Queue disebut juga antrian dimana data masuk di satu sisi
dan keluar di sisi yang lain.
• Karena itu, queue bersifat FIFO (First In First Out).
Antrian (Queue) merupakan suatu kumpulan data yang
penambahan elemennya (masuk antrian) hanya bisa
dilakukan pada suatu ujung (disebut dengan sisi
belakang/rear) atau disebut juga enqueue yaitu apabila
seseorang masuk ke dalam sebuah antrian.
Jika seseorang keluar dari antrian/penghapusan
(pengambilan elemen) dilakukan lewat ujung yang lain
(disebut dengan sisi depan/front) atau disebut juga
dequeue yaitu apabila seseorang keluar dari antrian.
3
Pengertian Queue (Antrian)
Jadi, dalam antrian menggunakan prinsip
“masuk pertama keluar pertama” atau disebut
juga dengan prinsip FIFO (first in first out).
Dengan kata lain, urutan keluar akan sama
dengan urutan masuknya.
Contoh: antrian mobil saat membeli karcis di
pintu jalan tol, antrian di bioskop dan
sebagainya
4
Operasi Dasar pada Queue
QUEUE merupakan struktur data dinamis, ketika program
dijalankan, jumlah elemennya dapat berubah secara dinamis sesuai
keperluan. Berikut ini operasi-operasi standar pada queue:
A. Inisialisasi, merupakan prosedur untuk membuat queue pada
kondisi awal, yaitu queue yang masih kosong (belum mempunyai
elemen).
B. InQueue, Insert Queue merupakan prosedur untuk memasukkan
sebuah elemen baru pada queue. Jumlah elemen Queue akan
bertambah satu dan elemen tersebut merupakan elemen
belakang.
C. DeQueue, Delete Queue merupakan prosedur untuk
menghapus/mengambil sebuah elemen dari queue. Elemen yang
diambil adalah elemen depan dan jumlah elemen queue akan
berkurang satu.
5
Operasi Dasar pada Queue
Hal lain yang perlu diperhatikan dalam suatu struktur dinamis
adalah jumlah elemen struktur data tersebut. Operasi-operasi
yang berhubungan dengan jumlah elemen suatu queue adalah:
A. Size, yaitu operasi untuk mendapatkan banyaknya elemen queue.
B. Empty, yaitu prosedur untuk mengetahui apakah queue dalam
keadaan kosong atau tidak. Dengan status ini maka dapat dicegah
dilakukannya operasi Dequeue dari suatu queue yang kosong.
C. Full, merupakan prosedur untuk mengetahui apakah queue penuh
atau tidak. Prosedur ini hanya berlaku untuk queue yang
jumlahnya terbatas.
6
Implementasi Queue dengan
Array Linear
Karena antrian merupakan suatu kumpulan data, maka tipe data
yang sesuai untuk menyajikan antrian adalah menggunakan array
atau linked list (senarai berantai). Perhatikan gambar berikut ini :
Implementasi Queue dengan
Array Linear Gambar di samping menunjukkan contoh
ilustrasi antrian menggunakan array. Antrian
di atas berisi 6 elemen, yaitu A, B, C, D, E
dan F. Elemen A terletak di bagian depan
antrian dan elemen F terletak di bagian
belakang antrian. Jika ada elemen baru yang
akan masuk, maka elemen tersebut akan
diletakkan di sebelah kanan F. Dan jika ada
elemen yang akan dihapus, maka A akan
dihapus terlebih dahulu.
Elemen A terletak di bagian depan,
kemudian disusul elemen B dan elemen yang
paling akhir atau paling belakang adalah
elemen F. Misalkan ada elemen baru yang
akan masuk maka akan terletak di belakang
elemen F, sehingga elemen baru akan
menempati posisi yang paling belakang.
Implementasi Queue dengan
Array Linear
Gambar selanjutnya menunjukkan antrian di atas dengan
penambahan 2 elemen, yaitu G dan H, sehingga ilustrasi menjadi :
Array
Contoh Queue dengan Linked List
Untuk memanipulasi sebuah antrian bisa digunakan dua buah
variabel yang menyimpan posisi elemen paling depan dan elemen
paling belakang.
Apabila antrian diimplementasikan menggunakan linked list
maka cukup 2 pointer yang bisa dipakai yaitu elemen paling depan
(kepala) dan elemen paling belakang (ekor).
Untuk mengimplementasikan queue (antrian) dengan
menggunakan pointer, perhatikan algoritma berikut ini :
Contoh Queue dengan Linked List
1. Tentukan struktur untuk menampung node yang akan
dimasukkan pada antrian. Deklarasi struktur pada penggalan
program berikut ini :
Contoh Queue dengan Linked List
2. Deklarasikan penambahan elemen baru pada antrian, dimana
letaknya adalah paling belakang. Deklarasi penambahan elemen
baru tersebut dapat dilihat pada penggalan program berikut ini :
Contoh Queue dengan Linked List
3. Lakukan pengecekan terhadap antrian, apakah antrian dalam
kondisi kosong atau tidak. Kalau kondisi antrian kosong, maka
elemen bisa dihapus. Penggalan program berikut ini akan
menunjukkan kondisi tersebut:
Contoh Queue dan Stack dengan
Linked List
https://drive.google.com/file/d/1u9FGLyB68eEBpbPGhoaXSxRpWX
mVnfET/view?usp=sharing
Quiz
Jelaskan secara rinci proses antrian (queue) dari figure 4.1, 4.2, 4.3,
4.4, 4.5, 4.7, 4.8, dan 4.9 !
Quiz
Quiz
Soal
Tambahkanlah function untuk mencari suatu elemen
dalam queue & stack
Tambahkan function untuk mengedit suatu elemen dalam
queue & stack
Carilah nilai total, rata-rata, terbesar dan terkecil dari
elemen-elemen queue dalam function tersendiri
Materi Selanjutnya:
Pertemuan 8: UTS