Queue pada Bahasa Pemrograman C#

Queue pada Bahasa Pemrograman C#
Photo by Bradyn Trollip / Unsplash

Dalam pemrograman, ada banyak kasus di mana kita perlu mengelola data secara berurutan, misalnya sistem antrean pelanggan, pemrosesan tugas (task queue), atau buffering data dalam jaringan. Nah, di sinilah Queue dalam C# sangat berguna!

Queue adalah struktur data yang mengikuti prinsip FIFO (First In, First Out), artinya elemen pertama yang masuk adalah yang pertama keluar. Bayangkan seperti antrian di kasir, di mana orang yang pertama datang akan dilayani lebih dulu.

Yuk, kita bahas apa itu Queue dalam C#, cara penggunaannya, dan contoh implementasinya!

1. Apa Itu Queue dalam C#?

Queue<T> adalah koleksi generik dalam C# yang digunakan untuk menyimpan sekumpulan data dengan konsep FIFO (First In, First Out).

Ciri-Ciri Queue

Menggunakan prinsip FIFO, elemen pertama yang masuk akan keluar lebih dulu.
Mudah menambahkan (Enqueue) dan mengambil (Dequeue) elemen.
Cocok untuk implementasi sistem antrian, pemrosesan batch, atau scheduling task.
Lebih cepat dalam operasi penambahan dan penghapusan dibanding List<T>.

2. Cara Menggunakan Queue

Untuk menggunakan Queue<T>, kita perlu menambahkan namespace System.Collections.Generic.

Contoh Queue Sederhana

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        Queue<string> antrian = new Queue<string>();
        antrian.Enqueue("Pelanggan 1");
        antrian.Enqueue("Pelanggan 2");
        antrian.Enqueue("Pelanggan 3");
        
        Console.WriteLine("Pelanggan yang dipanggil: " + antrian.Dequeue());
        Console.WriteLine("Pelanggan berikutnya: " + antrian.Peek());
    }
}

Output:

Pelanggan yang dipanggil: Pelanggan 1
Pelanggan berikutnya: Pelanggan 2

Penjelasan:

  • Enqueue() digunakan untuk menambahkan elemen ke dalam antrian.
  • Dequeue() mengambil elemen pertama dan menghapusnya dari Queue.
  • Peek() digunakan untuk melihat elemen pertama tanpa menghapusnya.

3. Operasi Dasar dalam Queue

Menambahkan Elemen ke Queue (Enqueue)

Queue<int> angka = new Queue<int>();
angka.Enqueue(10);
angka.Enqueue(20);
angka.Enqueue(30);

Mengambil Elemen dari Queue (Dequeue)

int elemenPertama = angka.Dequeue(); // Menghapus dan mengembalikan elemen pertama

Melihat Elemen Pertama tanpa Menghapus (Peek)

Console.WriteLine("Elemen pertama: " + angka.Peek());

Mengecek Apakah Queue Kosong (Count)

if (angka.Count == 0) {
    Console.WriteLine("Queue kosong!");
}

Menghapus Semua Elemen dari Queue (Clear)

angka.Clear();

4. Looping pada Queue

Kita bisa mengakses semua elemen dalam Queue menggunakan foreach.

foreach (var item in angka) {
    Console.WriteLine("Elemen dalam Queue: " + item);
}

5. Kapan Harus Menggunakan Queue?

Gunakan Queue jika:

  • Data harus diproses dengan prinsip FIFO (First In, First Out).
  • Ingin mengelola antrian pelanggan, task processing, atau buffering data.
  • Perlu operasi tambah dan hapus yang cepat di elemen pertama.

Jangan gunakan Queue jika:

  • Perlu mengakses elemen secara acak (gunakan List<T> atau Dictionary<T>).
  • Butuh urutan LIFO (gunakan Stack<T>).

6. Kesimpulan

  • Queue adalah koleksi generik yang mengikuti prinsip FIFO.
  • Mendukung operasi Enqueue, Dequeue, dan Peek untuk mengelola elemen dalam antrian.
  • Cocok digunakan untuk implementasi sistem antrean, pemrosesan batch, dan buffering data.
  • Lebih cepat dalam operasi penambahan dan penghapusan dibanding List<T>.

Dengan memahami Queue dalam C#, kamu bisa mengelola data dengan lebih efisien dan sesuai dengan kebutuhan struktur antrian!

Read more