QUEUE (ANTRIAN)
   A.   
Definisi
Queue (Antrian)
Queuenama   lainnya  
adalah   antrean.   Merupakan  
sekumpulan   data yang   mengalami penambahan  data (elemen) 
melalui  satu  sisi, 
yaitu  depan  (head)  dan 
penghapusan  data(elemen) melalui
sisi belakang (tail). Sifat tersebut
biasa disebut dengan FIFO (First In First
Out), yaitu data yang pertama masuk akan keluar terlebih dahulu. Dan data
yang terakhir masuk akan keluar paling akhir. Elemen  yang 
pertama  kali  masuk  ke queue
disebut  dengan  elemen 
depan  (front/head  of queue),  sedangkan 
elemen  yang  terakhir 
kali  masuk  ke queue disebut  dengan 
elemen belakang (rear/tail of
queue). Perhatikan pada ilustrasi gambar 1.
   B.    
Perbedaaan
Stack dan Queue
Perbedaan  antara stack
dan queue terdapat  pada 
aturan  penambahan  dan  penghapusan
elemen. Pada stack, operasi
penambahan dan penghapusan elemen dilakukan di satu tempat atau satu ujung. Sementara
pada queue operasi penambahan dapat dilakukan di tempat yang berbeda. Penambahan
elemen dilakukan di salah satu ujung, biasa disebut dengan elemen depan, dan
ujung lainnya, yang biasa disebut dengan ujung belakang digunakan untuk penghapusan
data. Sifat yang demikian biasa dikenal dengan FIFO. Ilustrasi operasi queue seperti
pada Gambar 2.
   C.   
Pengoperasian
Queue
Operasi standard pada queue antara lain:
1.      Membuat queue atau inisialisasi;
2.      Mengecek
apakah queue penuh/full;
3.      Mengecek
apakah queue kosong/empty
4.      Memasukkan
elemen ke dalam queue dan InQueue(Insert Queue);
5.      Menghapus
elemen dari queue atau DeQueue (Delete Queue).
Operasi pada queue atau antrean:
1.      Fungsi init()
Digunakan
untuk menciptakan queue yang baru atau kosong, yaitu dengan memberi nilai awal (head) dan nilai akhir (tail) dengan -1.;
2.      Fungsi full()
Berguna  untuk 
mengecek  apakah  antrean 
sudah  penuh  atau  belum.  Dilakukan 
dengan  cara mengecek nilai
nilai  akhir (tail) apakah sudah sama dengan nilai maksimal dari queue. Jika nilai tail sama dengan nilai
maksimal, maka fungsi akan mengembalikan 
nilai true dan jika tidak,
maka fungsi akan mengembalikan nilai false.
3.      Fungsi empty()
Fungsi ini
berguna untuk mengecek apakah queue masih kosong atau sudah terisi data. Proses
pengecekan dilakukan dengan memeriksa nilai akhir (tail) apakah bernilai nol atau tidak. Jika tail=-1, makanilai  yang dikembalikan  adalah true,  dan 
sebaliknya. Head (kepala  antrean)tidak 
perlu  diperiksa  lagi 
karena tidak  akan  berubah.  Hal 
ini  disebabkan  karena 
pergerakan pada queue terjadi
di elemen tail.
4.      Fungsi inQueue()
Digunakan
untuk memasukkan elemen ke dalam queue.
Penambahan queue terjadi di elemen paling
akhir. Jika queue belum penuh, maka
nilai akhir (tail) akan ditambah 1(increment).
5.      Fungsi deQueue()
Berguna untuk
mengambil elemen dari queue, dengan
cara memindahkan semua elemen satu langkah ke posisi di depannya. Sehingga
elemen yang paling depan akan tertimpa. Pergeseran dilakukan dengan menggunakan
perulangan.
6.      Fungsi clear()
Berguna
untuk menghapus elemen-elemen queue dengan cara membuat Tail dan Head = -1. Penghapusan  elemen queuesebenarnya  tidak 
menghapus  array-nya, tetapi hanya  mengeset indeks pengaksesan-nya ke nilai -1
sehingga elemen-elemen antrean tidak lagi terbaca.
   D.    Contoh program Queue (Antrian)
         1.      Program Queue
         2.      Hasil Listing Queue
Referensi :
https://docplayer.info/69810138-Materi-9-queue-antrean-dosen.html diakses pada tanggal 12 maret 2019 pukul 09.13 wita
 
 
Tidak ada komentar:
Posting Komentar