Sistem antrian loket bank bekerja dengan aturan yang tegas: nasabah yang datang lebih awal dilayani lebih dulu, dan nasabah baru selalu masuk dari ujung belakang antrian. Struktur data dengan aturan serupa dinamakan Queue (antrean). Queue menerapkan prinsip FIFO — First In, First Out — sehingga urutan pelayanan mengikuti urutan kedatangan.

Empat Operasi Inti Queue #

Queue menyediakan operasi yang mencerminkan perilaku antrian nyata: Enqueue menambahkan item di ujung belakang, Dequeue mengambil dan melepas item di ujung depan, Peek melihat item depan tanpa melepaskannya, dan Count melaporkan panjang antrian. Runtime memakai array melingkar di dalamnya, sehingga kedua ujung antrean dapat dikelola dengan efisien.

csharp
Queue<string> antrianLoket = new Queue<string>();

antrianLoket.Enqueue("Nasabah 001");
antrianLoket.Enqueue("Nasabah 002");
antrianLoket.Enqueue("Nasabah 003");

Console.WriteLine($"Panjang antrian: {antrianLoket.Count}");
Console.WriteLine($"Depan antrian: {antrianLoket.Peek()}");

Console.WriteLine($"Melayani: {antrianLoket.Dequeue()}");
Console.WriteLine($"Melayani: {antrianLoket.Dequeue()}");

antrianLoket.Enqueue("Nasabah 004");
Console.WriteLine($"Panjang antrian sekarang: {antrianLoket.Count}");
Console.WriteLine($"Depan antrian sekarang: {antrianLoket.Peek()}");

Output yang Dihasilkan:

text
Panjang antrian: 3
Depan antrian: Nasabah 001
Melayani: Nasabah 001
Melayani: Nasabah 002
Panjang antrian sekarang: 2
Depan antrian sekarang: Nasabah 003

Mari kita telaah baris demi baris:

  1. Baris 3-5 (antrianLoket.Enqueue(...)): Tiga nasabah masuk berurutan; posisi "Nasabah 001" paling depan karena masuk paling awal.
  2. Baris 7-8: Count melaporkan 3, dan Peek mengembalikan "Nasabah 001" tanpa melepaskannya — antrian masih berisi 3 item.
  3. Baris 10-11 (antrianLoket.Dequeue()): Dua pemanggilan Dequeue melepas "Nasabah 001" lalu "Nasabah 002"; urutan pelayanan persis mengikuti urutan masuk.
  4. Baris 13-15: "Nasabah 004" masuk dari belakang, sehingga panjang antrian kembali menjadi 2 dan depan antrian kini "Nasabah 003".

Kegunaan Queue di Dunia Nyata #

Selain antrian loket, Queue muncul di banyak tempat: antrean cetakan dokumen, antrean pesanan pada aplikasi penjualan, dan antrean tugas yang dikerjakan satu per satu secara berurutan. Ciri umumnya satu: urutan harus dijaga dan item terlama harus dikerjakan lebih dulu.

Queue juga mendukung iterasi biasa. Foreach atas Queue mengunjungi item dari depan ke belakang — urutan yang sama dengan urutan pelayanan — tanpa melepas satu pun item dari antrean. Kombinasi ini berguna untuk menampilkan isi antrean di layar tanpa mengganggu proses yang sedang berjalan.