NIM : H071201074
Queue bisa disebut juga antrian pada struktur data. Pengertian queue adalah sekumpulan
data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung yang disebut
sisi belakang (rear), dan penghapusan (pengambilan elemen) dilakukan lewat ujung lain.
Contoh queue paling sederhana dapat dilihat pada antrian. Prinsip kerja dari queue adalah
prinsip “First In First Out” (FIFO) atau “masuk pertama keluar pertama”. Sedangkan
prinsip “masuk terakhir keluar pertama” atau “Last In First Out” (LIFO), digunakan pada
tumpukan atau stack. ada queue terdapat satu pintu masuk di salah satu ujung dan satu pintu
keluar di ujung lainnya. Maka ada penunjuk yang menunjukkan awal dan akhir.
Di dalam sebuah antrian (queue), terdapat sebuah operasi bernama add_priority. Dalam hal
ini, antrian tidak lagi menerapkan konsep antrian yang murni, namun berubah menjadi
antrian dengan prioritas. Dimana terdapat prioritas tertentu pada elemen, dan elemen yang
baru ditambah tidak mesti berada di akhir.
1. Operasi Enqueue
Digunakan untuk penambahan elemen ke dalam antrian, penambahan elemen
selalu ditambahkan di elemen paling belakang. Penambahan elemen selalu
menggerakan variabel Rear dengan cara increment counter Rear terlebih dahulu.
Pertama, setelah membuat class kita membuat method isFull untuk mengecek
apakah antrian tersebut penuh atau tidak.
Program :
Setelah itu, untuk elemen pertama, set nilai dari front ke 0, secara melingkar
meningkatkan indeks Rear sebesar 1 (yaitu jika bagian belakang mencapai akhir,
selanjutnya akan berada di awal antrian). tambahkan elemen baru di posisi yang
ditunjukkan oleh REAR.
Program :
Contoh antrian :
Antrian Kosong/ Empty Queue
Saat Antrian masih kosong front dan rearnya belum akan berpindah dan masih
akan terletak pada index pertama yaitu -1
Front/Rear Front/Rear
Index -1 0 1 2 3 4
Queue
Menambahkan antrian dengan elemen dengan antrian yang sudah terisi beberapa
element. Saat menambahkan elemen dimana antrian sudah memiliki beberapa
elemen elemen yang pertama akan tetap menjadi front dan element yang berada
pada index yang terisi dan paling belakang akan menjadi rear
2. Operasi Dequeue
Dipakai untuk menghapus elemen terdepan (front) dari queue dengan cara
menggeser semua elemen antrian ke bagian depan dan mengurangi rear dengan 1
penggeseran yang dilakukan dengan menggunakan pengulangan.
Pertama kita harus mengecek apakah antrian kosong atau tidak, dengan
menggunakan method isEmpty.
Ketika sebuah antrian kosong nilai akan kembali ke -1 dan kita tambahkan
keterangan “Queue is Empty”, jika tidak barulah kita menghapus sebuah nilai
dalam antrian dengan menghapus elemen terdepan yaitu front. kembalikan nilai
yang ditunjukkan oleh FRONT. meningkatkan indeks FRONT secara sirkuler
sebesar 1 atau elemen terakhir, setel ulang nilai FRONT dan REAR ke -1
Program :
Contoh antrian :
Front/rear front rear
index -1 0 1 2 3 4
queue 1 2 3 4 5
Di atas adalah sebuah antrian yang berisi 5 antrian saat kita melakun proses
dequeue antrian yang menjadi front yaitu pada index 0 akan terhapus dan yang
akan menjadi front adalah index 1 seperti dibawah ini.
Font/rear front rear
Index -1 0 1 2 3 4
queue 2 3 4 5
Priority Queue adalah jenis antrian khusus di mana setiap elemen dikaitkan dengan nilai
prioritas. Dan, elemen disajikan berdasarkan prioritasnya. Artinya, elemen prioritas yang
lebih tinggi dilayani terlebih dahulu. Namun, jika elemen dengan prioritas yang sama
terjadi, mereka dilayani sesuai dengan urutannya dalam antrian.
Umumnya, nilai elemen itu sendiri dipertimbangkan untuk menetapkan prioritas. Sebagai
contoh, Elemen dengan nilai tertinggi dianggap elemen prioritas tertinggi. Namun, dalam
kasus lain, kita dapat menganggap elemen dengan nilai terendah sebagai elemen prioritas
tertinggi.
Langkah pertama yang harus dilakukan saat pengkodingan adalah, buat method untuk meng-
heapify queue nantinya. Heapify adalah proses mengubah pohon biner menjadi struktur data
Heap. Heap adalah bagian dari memori yang terorganisasi untuk dapat melayani alokasi memori
secara dinamis
Setelah itu buat method untuk memasukan elemen ke queue, setelah elemen di masukan, maka
queue akan di heapify-kan.
Kemudian buat juga method untuk menghapus elemen dari queue, pada method ini diperlukan
juga method heapify.
Method di bawah berfungsi untuk menampilkan Queue
Kemudian pada main method, panggil method method diatas beserta elemennya
Outputnya adalah :
Max-Heap array:
95342
9532