Pernahkah Anda mendengar istilah queue? Dalam bahasa Indonesia, queue adalah antrean, baik dalam kehidupan sehari-hari maupun dunia teknologi. Konsep ini mengacu pada sistem di mana elemen pertama yang masuk akan menjadi elemen pertama yang keluar, atau dikenal dengan prinsip FIFO (First In, First Out). Bayangkan antrean di kasir supermarket: pelanggan yang datang lebih dulu akan dilayani lebih dulu.
Konsep antrean ini ternyata tidak hanya ada di dunia nyata, lho. Dalam dunia digital dan teknologi, khususnya dalam ilmu komputer, queue memegang peranan yang sangat penting. Ia menjadi salah satu struktur data fundamental yang membantu mengatur aliran informasi dan tugas secara teratur dan efisien. Jadi, mari kita selami lebih dalam apa itu queue, bagaimana ia bekerja, dan di mana saja kita bisa menemukannya.
Apa Itu Queue?
Secara mendasar, queue adalah sebuah struktur data linear yang mengikuti prinsip FIFO, singkatan dari “First-In, First-Out”. Bayangkan saja seperti antrean orang di loket: siapa yang datang pertama, dialah yang akan dilayani pertama kali. Elemen atau data yang pertama kali dimasukkan ke dalam queue akan menjadi elemen pertama yang dikeluarkan atau diproses. Ini berbeda dengan struktur data lain seperti stack (tumpukan) yang menggunakan prinsip LIFO (Last-In, First-Out), di mana data yang terakhir masuk justru yang pertama keluar, seperti tumpukan piring.
Istilah Kunci dalam Queue

Dalam membahas queue, ada beberapa istilah penting yang perlu kita ketahui:
- Enqueue: Ini adalah operasi untuk menambahkan elemen baru ke bagian belakang (ujung akhir) dari queue. Sama seperti saat ada orang baru datang dan bergabung di barisan paling belakang.
- Dequeue: Ini adalah operasi untuk menghapus atau mengambil elemen dari bagian depan (ujung awal) queue. Mirip seperti orang paling depan dalam antrean yang selesai dilayani dan meninggalkan antrean.
- Front (atau Head): Ini merujuk pada elemen yang berada di posisi paling depan queue, yaitu elemen yang akan pertama kali di-dequeue.
- Rear (atau Back/Tail): Ini merujuk pada elemen yang berada di posisi paling belakang queue, yaitu elemen yang baru saja ditambahkan melalui operasi enqueue.
- Peek (atau Front): Operasi untuk melihat elemen di bagian depan queue tanpa menghapusnya.
- isEmpty: Operasi untuk memeriksa apakah queue sedang kosong atau tidak.
- isFull: Operasi untuk memeriksa apakah queue sudah penuh (terutama jika implementasinya menggunakan array dengan ukuran tetap).
- Size: Operasi untuk mengetahui jumlah elemen yang ada dalam queue.
Contoh Queue dalam Kehidupan Sehari-hari
Tanpa kita sadari, konsep queue sangat melekat dalam aktivitas kita sehari-hari. Berikut adalah beberapa contoh queue dalam kehidupan sehari-hari:
- Antrean di Kasir Supermarket: Ini adalah contoh paling klasik. Pelanggan yang datang lebih dulu akan dilayani terlebih dahulu oleh kasir .
- Antrean Pembelian Tiket: Baik itu tiket bioskop, kereta api, konser, atau wahana bermain, semua menerapkan sistem antrean. Siapa cepat dia dapat!
- Layanan Pelanggan: Ketika Anda menelepon call center atau menunggu giliran di bank atau rumah sakit, Anda masuk dalam sebuah antrean layanan.
- Antrean Kendaraan: Mobil yang menunggu di lampu merah, gerbang tol, atau bahkan di tempat cuci mobil membentuk sebuah queue. Kendaraan yang tiba lebih awal akan bergerak lebih dulu ketika kesempatan datang.
- Antrean Makanan Cepat Saji: Saat memesan makanan di restoran cepat saji, pesanan biasanya diproses berdasarkan urutan kedatangan.
- Proses Naik Pesawat (Boarding): Penumpang biasanya dipanggil untuk naik ke pesawat berdasarkan zona atau urutan tertentu yang pada dasarnya adalah bentuk pengelolaan antrean.
Contoh-contoh ini menunjukkan betapa alaminya prinsip FIFO dalam mengatur berbagai aktivitas agar berjalan lebih teratur dan adil.
Queue dalam Informatika
Dalam dunia ilmu komputer dan pemrograman, queue dalam informatika adalah sebuah struktur data linear yang sangat penting. Ia digunakan untuk menyimpan dan mengelola sekumpulan data di mana elemen ditambahkan di satu ujung (rear) dan dihapus dari ujung lainnya (front). Prinsip FIFO memastikan bahwa data diproses sesuai urutan kedatangannya, yang krusial untuk banyak aplikasi.
Aplikasi dalam Sistem Komputer
Berikut adalah beberapa contoh penerapan queue dalam sistem komputer dan teknologi:
- Penjadwalan CPU (CPU Scheduling): Sistem operasi menggunakan queue untuk mengelola proses-proses yang siap dieksekusi oleh CPU. Proses yang masuk ke ready queue lebih dulu akan mendapatkan giliran untuk dieksekusi lebih awal (misalnya dalam algoritma FCFS – First Come First Served).
- Print Spooling (Antrean Pencetakan): Ketika Anda mengirim beberapa dokumen untuk dicetak, pekerjaan cetak tersebut akan dimasukkan ke dalam sebuah queue. Printer kemudian akan mencetak dokumen satu per satu sesuai urutan dalam antrean tersebut.
- Buffer Data: Queue sering digunakan sebagai buffer dalam transmisi data, terutama dalam jaringan komputer. Paket data yang diterima oleh router, misalnya, akan disimpan sementara dalam queue sebelum diteruskan ke tujuan. Ini membantu menangani lonjakan lalu lintas dan memastikan paket diproses secara berurutan.
- Manajemen Lalu Lintas Web: Server web menggunakan queue untuk menangani permintaan HTTP yang masuk dari banyak klien secara bersamaan. Permintaan akan diantrekan dan diproses satu per satu untuk mencegah server overload.
- Algoritma Breadth-First Search (BFS): Dalam teori graf, algoritma BFS menggunakan queue untuk melacak simpul (node) yang akan dikunjungi. Algoritma ini menjelajahi graf level demi level.
- Sistem Antrean Pesan (Message Queues): Dalam arsitektur perangkat lunak modern, message queues (seperti RabbitMQ atau Kafka) digunakan untuk komunikasi asinkron antar layanan (microservices). Pesan dari satu layanan akan dimasukkan ke queue dan akan diambil oleh layanan lain ketika siap untuk diproses. Ini meningkatkan skalabilitas dan ketahanan sistem.
- Manajemen Sumber Daya: Ketika beberapa proses atau pengguna memerlukan akses ke sumber daya yang terbatas (seperti database atau perangkat keras), queue dapat digunakan untuk mengatur giliran akses.
- Simulasi Sistem: Queue digunakan untuk memodelkan dan mensimulasikan berbagai sistem dunia nyata yang melibatkan antrean, seperti antrean di bank, pusat panggilan, atau alur kerja manufaktur, untuk menganalisis kinerja dan waktu tunggu.
- Sistem Operasi untuk Interupsi: Sistem operasi menggunakan queue untuk menangani interupsi dari perangkat keras atau perangkat lunak. Interupsi akan diantrekan dan dilayani berdasarkan prioritas atau urutan kedatangan.
- Sequence Ketikan pada Keyboard: Apa yang Anda ketik di keyboard akan masuk ke dalam buffer (yang bisa diimplementasikan sebagai queue) sebelum ditampilkan di layar atau diproses oleh aplikasi.
Jenis-jenis Queue
Struktur data queue tidak hanya satu macam. Ada beberapa jenis queue yang dikembangkan untuk kebutuhan spesifik:
1. Simple Queue (Antrean Sederhana)
Ini adalah bentuk paling dasar dari queue yang menerapkan prinsip FIFO secara ketat. Elemen ditambahkan di belakang (rear) dan dihapus dari depan (front). Cocok untuk skenario di mana tugas diproses secara sekuensial murni.
2. Circular Queue (Antrean Melingkar)
Dalam circular queue, posisi terakhir terhubung kembali ke posisi pertama, membentuk lingkaran . Ini memungkinkan penggunaan ruang penyimpanan (biasanya array) secara lebih efisien karena slot yang kosong di bagian depan (setelah dequeue) dapat digunakan kembali oleh elemen baru yang di-enqueue. Sering digunakan dalam manajemen buffer dan penjadwalan round-robin di sistem operasi.
3. Priority Queue (Antrean Prioritas)
Berbeda dengan simple queue, dalam priority queue, setiap elemen memiliki tingkat prioritas tertentu. Elemen dengan prioritas lebih tinggi akan di-dequeue lebih dulu, meskipun ia tidak masuk pertama . Jika ada dua elemen dengan prioritas sama, maka prinsip FIFO akan berlaku di antara keduanya. Contoh penggunaannya adalah dalam penjadwalan tugas di sistem operasi (proses penting didahulukan) dan algoritma seperti Huffman coding untuk kompresi data.
4. Double-ended Queue (Deque)
Sering disebut juga deque (diucapkan “deck”), jenis queue ini memperbolehkan operasi penambahan (enqueue) dan penghapusan (dequeue) elemen dilakukan dari kedua ujung, baik depan (front) maupun belakang (rear). Ini memberikan fleksibilitas lebih. Aplikasi deque termasuk dalam pengecekan palindrom (kata atau frasa yang dibaca sama dari depan maupun belakang) dan beberapa jenis algoritma penjadwalan.
Kelebihan dan Keterbatasan Queue
Seperti halnya struktur data lainnya, queue memiliki kelebihan dan juga beberapa keterbatasan yang perlu dipertimbangkan.
Kelebihan Queue:
- Pengelolaan Data Efisien: Queue mampu mengelola data dalam jumlah besar secara efisien karena aksesnya terstruktur dan terurut sesuai prinsip FIFO, sehingga tidak ada elemen yang terlewat saat diproses.
- Proses Penyisipan dan Penghapusan Mudah: Operasi enqueue (menambah) dan dequeue (menghapus) relatif sederhana dan mengikuti aturan FIFO yang intuitif.
- Penanganan Tugas Berdasarkan Urutan Kedatangan: Sangat efisien untuk situasi di mana tugas atau data harus diproses berdasarkan urutan kedatangannya, memastikan keadilan.
- Mencegah Starvation: Dalam sistem penjadwalan, prinsip FIFO pada queue membantu mencegah starvation (kondisi di mana sebuah proses tidak pernah mendapat giliran dieksekusi) karena semua proses akan dilayani pada gilirannya.
- Implementasi Relatif Sederhana: Konsep dasar queue cukup mudah dipahami dan dapat diimplementasikan menggunakan array atau linked list.
- Cocok untuk Sistem Real-time: Sangat berguna dalam sistem real-time di mana tugas-tugas perlu diproses secara sekuensial dan tepat waktu.
Keterbatasan Queue:
- Tidak Efisien untuk Pencarian: Jika Anda perlu mencari elemen tertentu di tengah-tengah queue, ini akan tidak efisien karena Anda harus mengakses elemen satu per satu dari depan . Queue tidak dirancang untuk operasi pencarian acak.
- Alokasi Memori: Jika diimplementasikan dengan array berukuran tetap, queue bisa penuh dan tidak bisa menampung elemen baru. Jika menggunakan implementasi dinamis seperti linked list, mungkin memerlukan lebih banyak memori untuk pointer.
- Akses Terbatas: Hanya elemen di bagian depan (dan kadang belakang pada deque) yang bisa diakses secara langsung. Elemen di tengah tidak bisa diakses tanpa melalui proses dequeue elemen-elemen sebelumnya.
Memahami queue artinya lebih dari sekadar tahu bahwa itu adalah antrean. Ini adalah tentang memahami sebuah mekanisme fundamental yang menjaga keteraturan dan efisiensi, baik dalam antrean bus yang kita naiki setiap pagi maupun dalam triliunan operasi yang terjadi di dalam perangkat canggih yang kita gunakan setiap hari.


















