Visualisasi Sederhana Sistem Antrian A B Layanan Sistem Antrian Python

Panduan Lengkap Membuat Program Antrian dengan Python

Sistem antrian (queuing system) adalah salah satu struktur data fundamental dalam ilmu komputer, vital untuk mengelola tugas secara adil dan berurutan (First-In, First-Out atau FIFO). Menggunakan Python untuk mengimplementasikan sistem ini sangatlah mudah berkat sintaksnya yang bersih dan dukungan pustaka standar yang kuat.

Dalam konteks pengembangan aplikasi sederhana, seperti sistem kasir mini atau manajemen panggilan layanan, pemahaman mendalam tentang cara kerja antrian sangatlah krusial. Artikel ini akan memandu Anda membangun program antrian dasar menggunakan koleksi bawaan Python, khususnya modul collections.deque, yang menawarkan kinerja optimal untuk operasi penambahan (enqueue) dan penghapusan (dequeue) dari kedua ujung.

Mengapa Menggunakan collections.deque?

Secara teoritis, kita bisa menggunakan list bawaan Python untuk membuat antrian. Namun, ketika menggunakan list, operasi list.pop(0) (untuk mengeluarkan elemen pertama) memerlukan waktu O(n) karena semua elemen lain harus digeser. Ini menjadi lambat seiring bertambahnya ukuran antrian.

Di sinilah deque (double-ended queue) berperan. Dibuat untuk mendukung penambahan dan penghapusan cepat di kedua ujungnya dengan kompleksitas waktu O(1). Ini menjadikannya pilihan superior untuk membangun antrian yang efisien.

Langkah 1: Inisialisasi Struktur Data Antrian

Langkah pertama adalah mengimpor deque dan membuat instance antrian kosong.

from collections import deque

# Membuat antrian baru
antrian_layanan = deque()
print("Antrian berhasil dibuat.")

Langkah 2: Operasi Dasar Antrian (Enqueue dan Dequeue)

Operasi utama dalam antrian adalah:

  1. Enqueue (Memasukkan): Menambahkan elemen baru ke belakang antrian. Dalam deque, ini dilakukan menggunakan append().
  2. Dequeue (Mengeluarkan): Mengambil dan menghapus elemen dari depan antrian. Ini dilakukan menggunakan popleft().

Menambahkan Elemen (Enqueue)

Mari kita tambahkan beberapa nomor antrian:

antrian_layanan.append("Antrian-001")
antrian_layanan.append("Antrian-002")
antrian_layanan.append("Antrian-003")

print(f"Isi antrian saat ini: {list(antrian_layanan)}")
print(f"Ukuran antrian: {len(antrian_layanan)}")

Mengeluarkan Elemen (Dequeue)

Sekarang, kita memproses antrian yang paling depan:

if antrian_layanan:
    nomor_diproses = antrian_layanan.popleft()
    print(f"Memproses: {nomor_diproses}")
else:
    print("Antrian kosong.")

print(f"Antrian setelah diproses: {list(antrian_layanan)}")

Langkah 3: Membuat Fungsi Manajemen Antrian Lengkap

Untuk membuat program lebih fungsional, kita dapat membungkus logika di atas ke dalam serangkaian fungsi atau bahkan kelas sederhana. Berikut adalah contoh implementasi menggunakan fungsi dengan loop utama untuk simulasi:

from collections import deque

def tampilkan_menu():
    print("\n--- Sistem Antrian Python ---")
    print("1. Panggil Antrian Baru (Enqueue)")
    print("2. Layani Pelanggan (Dequeue)")
    print("3. Lihat Status Antrian")
    print("4. Keluar")

def main_antrian():
    antrian = deque()
    nomor_pelanggan = 100  # Mulai nomor antrian dari 100

    while True:
        tampilkan_menu()
        pilihan = input("Pilih menu (1/2/3/4): ")

        if pilihan == '1':
            nomor_pelanggan += 1
            id_baru = f"No-{nomor_pelanggan}"
            antrian.append(id_baru)
            print(f"-> Berhasil menambahkan {id_baru} ke antrian.")
        
        elif pilihan == '2':
            if antrian:
                dilayani = antrian.popleft()
                print(f"-> Pelayanan selesai untuk: {dilayani}")
            else:
                print("-> Antrian saat ini kosong. Tidak ada yang dilayani.")

        elif pilihan == '3':
            if antrian:
                print(f"-> Total antrian menunggu: {len(antrian)}")
                print(f"-> Antrian depan: {antrian[0]}")
            else:
                print("-> Antrian saat ini kosong.")

        elif pilihan == '4':
            print("Terima kasih telah menggunakan sistem antrian Python.")
            break
        
        else:
            print("Pilihan tidak valid. Silakan coba lagi.")

# main_antrian() # Uncomment baris ini untuk menjalankan simulasi

Memanfaatkan Struktur Antrian dalam Aplikasi Nyata

Program antrian ini adalah fondasi yang kuat. Dalam aplikasi yang lebih besar, Anda mungkin ingin:

Dengan menguasai penggunaan deque, Anda telah membangun dasar yang sangat efisien untuk menangani manajemen urutan di berbagai proyek Python Anda.