E. STRUKTUR DATA : QUEUE

  • PENGERTIAN QUEUE

Queue, atau antrean dalam bahasa Indonesia, adalah struktur data yang menyusun elemen data dalam urutan linier. Prinsip dasar struktur data ini adalah "First In, First Out" (FIFO), yang berarti elemen data yang pertama dimasukkan ke dalam antrean akan juga yang pertama dikeluarkan.

  • PRINSIP FIFO PADA QUEUE




Caranya bekerja adalah seperti jejeran orang yang sedang menunggu antrean di supermarket di mana orang pertama yang datang adalah yang pertama dilayani (First In, First Out). Pada struktur data ini, urutan pertama (data yang akan dikeluarkan) disebut Front atau Head. Sebaliknya, data pada urutan terakhir (data yang baru saja ditambahkan) disebut BackRear, atau Tail. Proses untuk menambahkan data pada antrean disebut dengan Enqueue, sedangkan proses untuk menghapus data dari antrean disebut dengan Dequeue

  • FUNGSI QUEUE

Queue sangat penting untuk banyak aplikasi dan algoritma. Mengatur dan mengelola rangkaian tugas atau operasi secara efisien adalah salah satu tugas utamanya. Ia digunakan dalam sistem komputasi untuk mengelola tugas-tugas seperti penjadwalan proses, antrean pesan, dan manajemen sumber daya.

  • KEUNTUNGAN DAN KETERBATASAN

1. Keuntungan: a. Data berjumlah besar dapat dikelola dengan mudah dan efisien.
                            b. Proses insert dan delete data dapat dilakukan dengan mudah karena mengikuti aturan first in first out (FIFO).
                            c. Memiliki titik berbeda untuk penyisipan (belakang) dan pelepasan (depan) sehingga pengoperasian menjadi efisien.

2. Keterbatasan: a.Tidak efisien untuk pencarian elemen tertentu dalam antrean.
                              b. Memerlukan alokasi memori yang cukup untuk menyimpan antrean.

  • IMPLEMENTASI PENGGUNAAN QUEUE

Berikut adalah contoh implementasi antrean pelanggan menggunakan struktur data queue dalam bahasa Phyton.

class Queue:
   def __init__(self):
       self.items = []
 
   def is_empty(self):
       return len(self.items) == 0
 
   def enqueue(self, item):
       self.items.append(item)
 
   def dequeue(self):
       if not self.is_empty():
           return self.items.pop(0)
       else:
           return "Queue is empty"
 
   def size(self):
       return len(self.items)
 
# Contoh penggunaan
antrian = Queue()
 
# Menambahkan elemen ke dalam antrian
antrian.enqueue("Pelanggan 1")
antrian.enqueue("Pelanggan 2")
antrian.enqueue("Pelanggan 3")
 
# Melihat ukuran antrian
print("Ukuran antrian:", antrian.size())
 
# Mengambil elemen dari antrian
print("Panggilan ke kasir:", antrian.dequeue())
 
# Melihat ukuran antrian setelah panggilan pertama
print("Ukuran antrian setelah panggilan pertama:", antrian.size())


Pada contoh di atas, kita membuat class Queue dengan setiap method-nya seperti enqueue (menambahkan elemen ke dalam antrean), dequeue (mengambil elemen dari antrean), is_empty (memeriksa apakah antrean kosong), dan size (mendapatkan ukuran antrean). Penggunaan class tersebut kemudian diilustrasikan dengan membuat objek antrean, menambahkan beberapa elemen ke dalamnya, serta melakukan operasi enqueue dan dequeue. Implementasi ini mencerminkan konsep dasar dari struktur data queue.

Komentar

Postingan Populer