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