Apa itu Struktur Data Queue ?
Queue secara bahasa artinya adalah antrian/giliran.Queue mengacu pada konsep antrian yang sebenarnya pada dunia nyata.Kalau anda mengerti sistem antrian di dunia nyata,insya allah anda bisa dengan mudah memahami tipe data Queue ini
Kita ambil contoh dunia nyata saja supaya mudah dipahami.Misalnya anda antri untuk membayar di sebuah toko.Nah,kalau anda datang pertama kali maka anda juga yang akan keluar pertama kali setelah dilayani begitu juga sebaliknya kalau anda datang paling akhir maka anda juga yang akan keluar paling akhir
Tidak seperti stack yang hanya memiliki satu titik akhir (bagian paling atas/ belakang),Queue ini memiliki dua titik akhir,satu untuk memasukkan elemen (bagian paling atas/belakang) dan satu lagi untuk menghapus/mengambil elemen (bagian paling bawah/depan).Queue mengacu pada metodologi FIFO (First In First Out) yang masuk lebih dulu juga akan keluar lebih dulu
Operasi Pada Queue
Ada beberapa operasi dasar pada queue yaitu :
- enqueue(),memasukkan data ke dalam Queue
- dequeue(),mengeluarkan data dari dalam Queue
- peek(),mengetahui elemen paling depan dari Queue tanpa menghapusnya
- isEmpty(),mengecek Queue kosong atau tidak
Implementasi Queue dan Operasinya
Kita memakai Python lagi saja yang lebih simple
class Queue(object):Kita coba mengetes implementasi queue yang kita buat menggunakan kode di atas
def __init__(self):
self.items = []
def isEmpty(self):
return len(self)==0
def __len__(self):
return len(self.items)
def enqueue(self,data):
self.items.append(data)
return self.items
def dequeue(self):
assert not self.isEmpty(),"Antrian sedang kosong."
return self.items.pop(0)
Lihat sendiri kan kalau data yang dimasukkan lebih dulu juga akan dikeluarkan terlebih dahulu
PriorityQueue
PriorityQueue merupakan tipe data yang lebih spesifik dari pada Queue yang umum.PriorityQueue menambahkan adanya "prioritas" di sini.
Kalau implementasi dunia nyata sih kerap kali kita mengizinkan orang lain untuk mendahului antrian kita karena kita tahu kalau dia lebih membutuhkan kaya orang tua, anak-anak, orang yang berkepentingan dll
Elemen dengan angka prioritas kecil maka dia akan berada di depan sedanhkan elemen dengan angka prioritas besar akan berada di belakang
Untuk urusan masuk atau keluarnya juga tergantung dari prioritas ini.Yang memiliki prioritas kecil akan masuk dan keluar terlebih dahulu begitu juga sebaliknya.
Kalau ada elemen yang memiliki prioritas sama,maka baru urutan masuk yang diperhitungkan
Langsung saja ke implementasinya biar gak bingung
Implementasi PriorityQueue
class PriorityQueue():Kita tes implementasi PriorityQueue yang kita buat dengan kode di atas
def __init__(self):
self.qlist = []
def __len__(self):
return len(self.qlist)
def is_empty(self):
return len(self) == 0
def enqueue(self, data, priority):
entry = _PriorityQEntry(data, priority)
self.qlist.append(entry)
def dequeue(self):
A = []
for i in self.qlist:
A.append(i)
s = 0
for i in range(1, len(self.qlist)):
if A[i].priority < A[s].priority:
s = i
hasil = self.qlist.pop(s)
return hasil.item
class _PriorityQEntry():
def __init__(self, data, priority):
self.item = data
self.priority = priority
Lihat dari dequeue kita mengeluarkan data berdasarkan prioritas nya.data yang prioritasnya kecil dikeluarkan dahulu
Mungkin itu saja mengenai tipe data Queue semoga bisa bermanfaat amiin..
Post a Comment for "Apa itu Struktur Data Queue ?"
Jangan spam atau promosi di sini jgn juga taruh link aktif kalau mau dapat backlink bisa taruh di profil saja (Name/URL)