Antri Yuk! Belajar Queue dalam Pemrograman dengan Gaya Santai


Queue adalah struktur data yang mengikuti prinsip FIFO (First In, First Out). Dalam antrian ini, elemen yang pertama kali dimasukkan akan menjadi elemen pertama yang keluar. Prinsip ini mirip dengan antrian di kehidupan nyata, seperti antrian di kasir supermarket atau antrian kendaraan ketika isi bensin hanya saja orang diganti menjadi data/elemen dan elemen tersebut akan berada di bagian belakang antrian Jika ada elemen yang harus dihapus atau keluar dari antrian, maka elemen yang keluar adalah elemen yang berada di sisi depan antrian.

Karateristik queue

1. Elemen antrian
Item item data yang terdapat di elemen antrian.

2. Rear
Elemen terakhir dari antrian.

3. Front
Elemen terdepan antrian.

4. Count dan status antrian
Count yaitu jumlah elemen pada antrian.

Operasi dalam 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.

3. IsFull ( )
- Untuk mengecek apakah antrian sudah penuh belum.
- Dengan cara mengecek nilai tail, jika tail == MAX-1 (karena MAX-1 adalah batas elemen array) berarti sudah penuh.

4. Enqueue
- Untuk menambahkan elemen ke dalam antrian, penambahan elemen selalu di elemen paling belakang.
- Penambahan elemen selalu menggerakkan variabel tail dengan cara menaikkan nilai counter tail.

5. Dequeue ( )
- Digunakan untuk menghapus elemen terdepan/pertama dari antrian.
- Dengan cara mengurangi counter tail dan menggeser semua antrian ke depan.
- Penggeseran dilakukan dengan menggunakan looping.

6. Clear ( )
- Fungsi ini digunakan untuk mengosongkan seluruh elemen dalam queue.
- Setelah pemanggilan fungsi ini, queue akan dianggap kosong dengan mengatur kembali indeks head dan tail ke -1.

7. Tampil ( )
- Fungsi ini digunakan untuk menampilkan semua elemen yang ada dalam queue.
- Jika queue kosong, akan menampilkan pesan bahwa queue kosong.
- Jika tidak kosong, akan mencetak semua elemen dari indeks head sampai tail.

Priority queue

Di dalam sebuah antrian, terdapat sebuah operasi bernama add_priority digunakan dalam konteks antrian berprioritas, di mana setiap elemen memiliki tingkat prioritas yang menentukan urutan masuknya ke dalam antrian. Berbeda dengan antrian konvensional yang mengikuti aturan FIFO (First-In-First-Out), antrian berprioritas memastikan bahwa elemen-elemen dengan prioritas lebih tinggi akan diambil atau dilayani lebih dulu daripada yang memiliki prioritas lebih rendah.

Dalam kehidupan sehari-hari, analogi ini bisa dilihat dalam berbagai situasi, seperti pelayanan kesehatan di mana pasien dengan kondisi darurat atau kritis diberi prioritas untuk segera mendapatkan perawatan, atau dalam sistem layanan pelanggan di mana pelanggan dengan status premium atau masalah mendesak mungkin akan didahulukan untuk dilayani lebih cepat.

Jadi, operasi add_priority tidak hanya menyederhanakan proses antrian tetapi juga memastikan efisiensi dalam menangani situasi-situasi di mana prioritas yang berbeda-beda perlu dipertimbangkan.

Queue dalam C++