Queue (Antrian)
Queue pada Struktur Data atau antrian adalah sekumpulan data yang mana penambahan elemen
hanya bisa dilakukan pada suatu ujung disebut dengan sisibelakang(rear), dan
penghapusan(pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi
depan atau front).
Pada Stack atau tumpukan menggunakan prinsip“Masuk terakhir keluar
pertama”atau LIFO (Last In First Out), Maka pada Queue atau antrian prinsip yang digunakan
adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out).
Queue atau antrian banyak kita jumpai dalam kehidupan sehari-hari, ex:
antrian Mobil diloket Tol, Antrian mahasiswa Mendaftar, dll.
Contoh lain dalam bidang komputer adalah pemakaian sistem
komputer berbagi waktu(time-sharing computer system) dimana ada sejumlah pemakai
yang akan menggunakan sistem tersebut secara serempak.
Pada Queue atau antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah
pintu keluar di ujung satunya dimana membutuhkan variabel Head dan Tail ( depan/front,
belakang/rear).
Karakteristik Queue atau antrian :
1. elemen antrian
2. front (elemen terdepan antrian)
3. tail (elemen terakhir)
4. jumlah elemen pada antrian
5. status antrian
Operasi pada Queue atau antrian
1. tambah(menambah item pada belakang antrian)
2. hapus (menghapus elemen depan dari antrian)
3. kosong( mendeteksi apakah pada antrian mengandung elemen
atau tidak)
Operasi-operasi Queue :
1. Create()
Untuk menciptakan
dan menginisialisasi Queue
Dengan cara
membuat Head dan Tail = -1
2. IsEmpty()
Untuk memeriksa
apakah Antrian sudah penuh atau belum
Dengan cara
memeriksa nilai Tail, jika Tail = -1 maka empty
Kita tidak
memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama
dalam antrian) yang tidak akan berubah-ubah
Pergerakan pada
Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan
nilai Tail.
3. IsFull
Untuk mengecek
apakah Antrian sudah penuh atau belum
Dengan cara
mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen
array pada C) berarti sudah penuh
4. Enqueue
Untuk menambahkan
elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang
Penambahan elemen
selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih
dahulu
5. Dequeue()
Digunakan untuk
menghapus elemen terdepan/pertama (head) dari Antrian
Dengan cara
menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1
Penggeseran
dilakukan dengan menggunakan looping.
6. Clear()
Untuk menghapus
elemen-elemen Antrian dengan cara membuat Tail dan Head = -1
Penghapusan
elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset
indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi
terbaca
7. Tampil()
Untuk menampilkan
nilai-nilai elemen Antrian
Menggunakan
looping dari head s/d tail