Anda di halaman 1dari 18

Queue

Struktur Data – Sekolah Vokasi IPB


2021
Arah antrian
Pengantar Queue
• Queue adalah antrian
• Struktur data dengan urutan operasi FIFO: First in First
Out
• Ada dua operasi transaksi yang utama
• enqueue: memasukan data baru ke dalam antrian
(menambah di belakang)
• Dequeue: mengeluarkan data dari antrian (data yang
keluar dari yang terdepan)
• Contoh pemanfaatan Queue seperti pada penjadwalan
antrian pada printer. Siapa yang mengantri lebih dahulu
maka akan juga dilayani lebih dulu (FIFO).
Perbandingan antar Stack vs Queue

LIFO FIFO
Ilustrasi operasi pada Queue

A B A

1. Queue masih kosong 2. Enqueue A 3. Enqueue B

C B A C B A

4. Enqueue C 5. Dequeue (akan keluar A)

D C B D C B

6. Enqueue D 7. Dequeue (B akan dikeluarkan)


Implementasi Queue pada python
A. Menggunakan list
B. Menggunakan dequeue
C. Membentuk kelas queue secara khusus
https://stackabuse.com/stacks-and-queues-in-python/
A. Implementasi Queue dengan list

orange mango grapes banana

3 2 1 0
Indeks list

orange mango

1 0
Indeks list
Penting untuk diingat, ketika list kita print Maka pencetakan dari kiri dari
indeks terkecil. Maka print fruits akan menghasilkan [‘mango’, ‘orange’]
https://stackabuse.com/stacks-and-queues-in-python/

B. Implementasi Queue dengan Deque


C. Membentuk kelas queue secara khusus
• Membuat kelas baru untuk dengan sifat struktur data Queue
• Mendefinisikan atribut queue
• Mendefinisikan method queue
• Sangat baik untuk berlatih abstraksi membentuk sebuah tipe data,
dan tujuan ini selaras dengan misi dari MK Struktur data ini 
C. Membentuk kelas queue secara khusus (ii)
• Atribut penting pada Queue • Method() pada Queue
• size: Kapasitas maksimum dari queue • __init__(): untuk inisialisasi di awal
• current_size: banyaknya isi data saat ini instansialasi objek queue, salah satunya
pada queue. Range nilainya antara 0 penentuan size.
sampai dengan ukuran size. • isempty(): mengecek status kekosongan
• data: atribut yang menyimpan queue. Bernilai True ketika current_size
informasi yang disimpan pada stack. bernilai 0, kondisi selainnya akan False.
Bentuk struktur data dari atribut data • Isfull(): mengecek status penuhnya
ini dapat berupa list ataupun linked list. queue. Bernilai True ketika current_size
bernilai sama dengan size, kondisi
selainnya akan false.
• enqueue(): memasukan data baru ke
dalam queue (tentunya pada posisi
belakang)
• dequeue(): mengeluarkan data terdepan
(top) dari queue
• print(): mencetak visualisasi queue
C. Membentuk kelas queue secara khusus (iii)
• methods konstruktor(__init__), isempty, dan isfull
C. Membentuk kelas queue secara khusus (iv)
• Methods enqueue() dan dequeue()
C. Membentuk kelas queue secara khusus (v)

• Terdepan adalah ‘BINTANG’


• posisi list dari kiri ke kanan, indeks terkecil adalah terkiri (itu posisi
depan)
C. Membentuk kelas queue secara khusus (vi)

• Terdepan adalah ‘BINTANG’


• Ketika di dequeue maka yang akan dikeluarkan adalah ‘BINTANG’
• Sehingga sisanya adalah [‘BULAN’,’MATAHARI’], terdepan yang baru adalah ‘BULAN’
C. Membentuk kelas queue secara khusus (vii)
• Menambahkan method untuk mencetak informasi umum Queue
C. Membentuk kelas queue secara khusus (viii)
• Pemanfaatan method printinfo()
C. Membentuk kelas queue secara khusus (ix)
• Menambahkan method untuk visualisasi Queue
C. Membentuk kelas queue secara khusus (x)
• Pemanfaatan method visualisasi()
• Sekian, dan terimakasih

Anda mungkin juga menyukai