QUEUE TIPE DATA DALAM PEMROGRAMAN KOMPTER
Apasih Queue?
Di dalam dunia komputer, Queue merujuk pada struktur data yang sangat penting. Dengan menggunakan queue, kita dapat mengatur urutan operasi yang dieksekusi secara efisien. Pada ringkasan ini, saya akan membahas pengertian queue, operasi dasar pada queue, implementasi dalam bahasa pemrograman, serta keuntungan dan kekurangannya.
Pengertian Queue
Queue (antrian) adalah struktur data yang mengatur elemen-elemen dalam urutan tertentu. Elemen yang masuk terlebih dahulu akan keluar terlebih dahulu (FIFO). Queue dapat ditemukan dalam berbagai aspek kehidupan kita, mulai dari penjualan tiket hingga antrian pesan masuk pada ponsel kita.
Operasi Dasar pada Queue
Operasi dasar pada antrian meliputi operasi enqueue (menambahkan elemen ke antrian), dequeue (mengeluarkan elemen dari antrian), dan peek (melihat elemen teratas pada antrian tanpa mengeluarkannya). untuk lebih jelasnya sebagai berikut.
1. Enqueue
"Enqueue" adalah operasi yang digunakan dalam struktur data queue untuk menambahkan elemen baru ke dalam antrian pada ujung belakang atau ujung terakhir. Dengan operasi ini, elemen baru yang dimasukkan menjadi elemen terakhir dalam antrian, sehingga mengikuti prinsip "First In, First Out" (FIFO). Artinya, elemen yang pertama kali dimasukkan ke dalam antrian adalah yang pertama pula akan dikeluarkan. Secara sederhana, "enqueue" adalah seperti menambahkan objek atau data baru ke dalam antrian yang sudah ada, sehingga data tersebut akan menunggu giliran untuk diproses atau diambil dari ujung depan antrian ketika tiba waktunya.
2. Dequeue
"Dequeue" adalah operasi yang digunakan dalam struktur data queue untuk menghapus atau mengambil elemen pertama dari antrian, yang berada di ujung depan antrian. Ini mengikuti prinsip "First In, First Out" (FIFO), yang berarti elemen yang pertama kali dimasukkan ke dalam antrian adalah yang pertama pula akan dikeluarkan. "dequeue" mirip dengan mengambil atau menghapus barang yang paling depan dari antrian. Ini seperti ketika orang pertama dalam antrian di toko mengambil pesanannya dari kasir.
3. Peek
"Peek" adalah operasi yang digunakan untuk melihat atau mengakses elemen pertama dalam antrian atau tumpukan tanpa menghapusnya. Ini berguna untuk memeriksa elemen yang berada di depan struktur data tanpa mengubah urutan atau isi sebenarnya. Dan "peek" bisa dibandingkan dengan sekilas melihat isi buku tanpa membacanya sepenuhnya, atau memeriksa isi laci tanpa mengeluarkan semua isinya. Anda hanya melihat apa yang ada di puncak atau di depan tanpa melakukan perubahan pada struktur data itu sendiri.
Implementasi Queue dalam Bahasa Pemrograman
Queue dapat diimplementasikan dalam bahasa pemrograman menggunakan struktur data seperti array atau linked list. Dalam implementasinya, kita membutuhkan suatu variabel yang menyimpan indeks elemen teratas dan elemen terbawah pada antrian. Hal ini memungkinkan kita untuk melakukan operasi enqueue dan dequeue dengan efektif
Contoh Implementasi Queue dalam Bahasa Java Menggunakan Array
public class QueueUsingArray {
private int maxSize;
private int[] queueArray;
private int front; // Pointer untuk elemen depan antrian
private int rear; // Pointer untuk elemen belakang antrian
private int currentSize; // Jumlah elemen saat ini dalam antrian
public QueueUsingArray(int size) {
maxSize = size;
queueArray = new int[maxSize];
front = 0;
rear = -1;
currentSize = 0;
}
// Menambahkan elemen ke ujung belakang antrian
public void enqueue(int item) {
if (isFull()) {
System.out.println("Antrian penuh. Tidak bisa menambahkan " + item);
} else {
rear = (rear + 1) % maxSize;
queueArray[rear] = item;
currentSize++;
}
}
// Menghapus dan mengembalikan elemen dari depan antrian
public int dequeue() {
if (isEmpty()) {
System.out.println("Antrian kosong.");
return -1; // Nilai default jika antrian kosong
} else {
int item = queueArray[front];
front = (front + 1) % maxSize;
currentSize--;
return item;
}
}
// Melihat elemen di depan antrian tanpa menghapusnya
public int peek() {
if (isEmpty()) {
System.out.println("Antrian kosong.");
return -1; // Nilai default jika antrian kosong
} else {
return queueArray[front];
}
}
// Memeriksa apakah antrian kosong
public boolean isEmpty() {
return currentSize == 0;
}
// Memeriksa apakah antrian penuh
public boolean isFull() {
return currentSize == maxSize;
}
public static void main(String[] args) {
QueueUsingArray queue = new QueueUsingArray(5);
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
System.out.println("Elemen di depan antrian: " + queue.peek());
System.out.println("Elemen yang diambil dari antrian: " + queue.dequeue());
System.out.println("Elemen yang diambil dari antrian: " + queue.dequeue());
queue.enqueue(40);
queue.enqueue(50);
System.out.println("Antrian kosong? " + queue.isEmpty());
System.out.println("Antrian penuh? " + queue.isFull());
}
}
Dalam Contoh ini, saya mengimplementasikan queue menggunakan array dengan batasan ukuran, dan saya menggunakan operasi enqueue, dequeue, peek, isEmpty, dan isFull untuk mengelola antrian.
Contoh Penggunaan Queue dalam Bahasa Java Menggunakan Lingked List
import java.util.LinkedList;
import java.util.Queue;
public class QueueUsingLinkedList {
public static void main(String[] args) {
// Membuat objek queue menggunakan LinkedList
Queue<Integer> queue = new LinkedList<>();
// Menambahkan elemen ke dalam antrian
queue.offer(10);
queue.offer(20);
queue.offer(30);
// Melihat elemen di depan antrian tanpa menghapusnya
System.out.println("Elemen di depan antrian: " + queue.peek());
// Menghapus dan mengambil elemen dari depan antrian
System.out.println("Elemen yang diambil dari antrian: " + queue.poll());
System.out.println("Elemen yang diambil dari antrian: " + queue.poll());
// Menambahkan lebih banyak elemen ke dalam antrian
queue.offer(40);
queue.offer(50);
// Memeriksa apakah antrian kosong
System.out.println("Antrian kosong? " + queue.isEmpty());
// Melakukan iterasi untuk mengambil dan mencetak semua elemen dari antrian
while (!queue.isEmpty()) {
System.out.println("Elemen yang diambil dari antrian: " + queue.poll());
}
}
}
Dalam contoh ini, saya menggunakan kelas linked list untuk mengimplementasikan queue. saya menggunakan operasi offer untuk menambahkan elemen ke antrian, peek untuk melihat elemen di depan antrian tanpa harus menghapusnya, dan poll untuk menghapus dan mengambil elemen dari depan antrian. Dengan linked list, antran dapat dinamis memperluas ukurannya atanpa batas kuran yang tetap.
Contoh Penggunaan Antrian dalam Kehidupan Sehari-hari
- Pengantri di sebuah restoran cepat saji
- Proses penjemputan oleh taksi online
- Sistem pemesanan tiket bioskop secara online
- Antrian panggilan pada pusat layanan pelanggan
Perbedaan Queue FIFO dan Queue Prioritas
Antrian FIFO (First-In, First-Out) adalah jenis antrian di mana elemen yang pertama kali masuk akan keluar terlebih dahulu. Sedangkan antrian prioritas adalah jenis antrian di mana elemen memiliki tingkatan prioritas tertentu, sehingga elemen dengan prioritas lebih tinggi akan keluar terlebih dahulu meskipun masuk belakangan.
Penerapan Queue dalam Sistem Komputer
Contoh Penerapan | Kegunaan |
Antrian CPU pada sistem operasi | Mengatur urutan eksekusi tugas pada CPU |
Buffer pada komunikasi data | Menyimpan data sementara sebelum dikirim atau diterima |




Comments
Post a Comment