Home » Ilmu Komputer » Struktur Data Queue: Pengertian, Jenis dan Contoh

Struktur Data Queue: Pengertian, Jenis dan Contoh

by Yolanda Natanael
by Yolanda Natanael

Apa itu Struktur Data Queue

Struktur data queue merupakan sebuah struktur data linier dengan prinsip operasi yang mewajibkan elemen data masuk pertama untuk keluar lebih dulu. Prinsip ini juga sering dikenal dengan sebutan FIFO atau First In First Out.

Struktur data queue sangat berbeda dengan struktur data stack yang melakukan penyimpanan data secara bertumpung dengan satu ujung terbuka untuk operasi data. Data pada struktur data queue disusun secara horizontal dan terbuka di kedua ujungnya, dimana ujung pertama untuk menghapus data dan ujung lainnya untuk menyisipkan data.

Walaupun demikian, struktur data queue memiliki kesamaan dengan struktur data stack. Persamaan tersebut terletak pada impelementasi keduanya pada struktur data linked list atau array.

Untuk mempermudah penggambaran struktur data queue, anda dapat mengilustrasikannya pada barisan orang yang membeli tiket di bioskop. Orang yang baru datang akan masuk dalam barisan di paling belakang, sedangkan orang yang berdiri di depan akan mendapatkan tiket terlebih dahulu.

Struktur data queue dapat anda implementasikan pada bahasa pemrograman apapun, misalnya C, C++, Java, Python atau C#, dengan spesifikasi yang hampir sama. Struktur data inipun umum digunakan untuk mengelola thread dalam multithreading dan menerapkan sistem antrian prioritas di program komputer.

Jenis Struktur Data Queue

  • Simple Queue
simple queue
Simple queue

Simple queue merupakan struktur data queue paling dasar, dimana penambahan item dilakukan pada simpul belakang (rear/tail) dan penghapusan terjadi pada simpul depan (front/head).

  • Circular Queue
Circular Queue
Circular Queue

Circular queue adalah struktru data queue yang membuat simpul terakhir terhubung ke simpul pertama. Jenis queue ini juga disebut sebagai ring buffer karena kedua ujungnya saling terhubung. Penyisipan akan terjadi di akhir antrian dan penghapusan tetap terjadi di depan antrian.

  • Priority Queue
Priority Queue
Priority Queue

Priority queue merupakan struktur data queue dengan prioritas tertentu pada setiap simpulnya. Simpul dengan prioritas terbesar akan menjadi yang pertama untuk dihapus dari antrian.

Penyisipan tetap akan dilakukan sesuai dengan urutan kedatangan. Jenis queue ini sering digunakan pada algoritma jalur terpendek Dijkstra, algoritma prim, dan teknik kompresi data, misalnya kode Huffman.

  • Double-Ended Queue (Dequeue)
Double Ended Queue
Double Ended Queue

Double Ended Queue merupakan jenis struktur data queue yang melakukan operasi penyisipan dan penghapusan pada kedua ujungnyam baik ujung depan maupun ujung belakang.

Operasi Dasar Struktur Data Queue

Secara umum, struktur data queue memiliki 2 operasi utama, yaitu enqueue dan dequeue. Namun, ada beberapa struktur data abstrak lainnya yang dapat terjadi pada operasi tersebut, diantaranya adalah :

  • Enqueue, untuk menambahkan elemen ke akhir antrian
  • Dequeue, untuk menghapus elemen dari depan antrian
  • IsEmpty, untuk memeriksa ada tidaknya antrian kosong
  • IsFull, untuk memeriksa kepenuhan antrian
  • Peek, untuk mendaptkan nilai bagian depan antrian tanpa menghapusnya
  • Initialize, untuk membuat antrian baru tanpa elemen data

Fungsi Struktur Data Queue

Beberapa fungsi umum dari struktur data queue adalah sebagai berikut, yaitu :

  • Untuk menangani lalu lintas di situs website
  • Untuk mempertahankan playlist pada aplikasi media player
  • Untuk menangani interupsi pada sistem operasi
  • Untuk melayani banyak permintaan pada satu sumber daya bersama, misalnya printer dan penjadwalan tugas CPU
  • Untuk mentransfer data asinkronus, misalnya pipeline, IO file, dan socket

Karakteristik Struktur Data Queue

Beberapa karakteristik dari struktur data queue adalah :

  • Memiliki struktur first in first out atau disebut juga FIFO
  • Semua elemen yang masuk sebelum elemen tertentu harus sudah dihapus terlebih dahulu sebelum elemen tersebut yang terhapus
  • Setiap elemen berada pada daftar berurutan dengan tipe data serupa

Kelebihan Struktur Data Queue

Beberapa kelebihan dari struktur data queue yang bisa anda rasakan adalah :

  • Dapat mengelola data dalam jumlah besar secara efisien
  • Dapat melakukan operasi penyisipan dan penghapusan dengan mudah karena mengikuti aturan masuk pertama keluar pertama
  • Dapat membantu layanan tertentu bila digunakan oleh banyak konsumen
  • Dapat mempercepat komunikasi atau proses setiap data
  • Dapat digunakan dalam implementasi struktur data lainnya

Kekurangan Struktur Data Queue

Walaupun memiliki banyak kelebihan, struktur data queue juga memiliki beberapa kekurangan, diantaranya adalah :

  • Operasi penyisipan dan penghapusan elemen dari tengah dapat memakan banyak waktu
  • Elemen baru hanya dapat dimasukan saat elemen yang ada sudah dihapus dari antrian pada queue konvensional
  • Membutuhkan time complexity O(N) saat mencari elemen data pada struktur queue
  • Harus menentukan ukuran maksimum antrian sebelum membuat struktur secara lengkap

Contoh Struktur Data Queue

Struktur data queue dapat anda lihat terapannya pada kehidupan sehari-hari, misalnya saat melakukan pembelian tiket kereta api, tiket bioskop, tiket kapal laut, pembayaran listrik, pembayaran air, dan sebagainya. Misalnya saja dalam pembelian tiket di bioskop, dimana :

  • Enqueue diibaratkan seperti seseorang yang ingin membeli tiket bioskop di loket tiket
  • Dequeue diibaratkan seperti seseorang yang sudah membeli tiket bioskop dan menuju studio filmnya untuk dilakukan pemeriksaan tiket
  • Clear diibaratkan seperti petugas yang menghapus tiket dari antrian karena sudah melewati waktu menonton atau waktu pembayaran administrasi
  • IsEmpty diibaratkan seperti petugas yang melihat keadaan sekitar bahwa sudah tidak ada lagi pengunjung yang ingin membeli tiket
  • IsFull diibaratkan seperti petugas melihat masih ada pembeli yang ingin mendapatkan tiket bioskop

You may also like