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