Anda di halaman 1dari 20

QUEUE

Pertemuan Ke-9
Dwi Marlina, M. Kom
Antrian/Queue
❑ Struktur Data Antrean (Queue) adalah suatu bentuk khusus
dari List Linier dengan operasi penyisipan (Insertion) hanya
diperbolehkan pada salah satu sisi, yang disebut sisi
Belakang (Rear) dan operasi penghapusan (Deletion) hanya
diperbolehkan pada sisi lainnya yang disebut sisi Depan
(Front) dari List.

❑ Antrian menggunakan prinsip Pertama Masuk Pertama


Keluar (First In – First Out)

❑ Antrean Q = [Q1, Q2, ... , QN]


➢ Front(Q) = Q1 bagian depan antrean
➢ Rear(Q) = QN bagian belakang antrean
➢ Noel(Q) = N jumlah elemen dalam antrean
Karakteristik Antrian
1. Elemen antrian yaitu item-item data yang terdapat di elemen antrian
2. Front (elemen terdepan dari antrian)
3. Rear (elemen terakhir dari antrian)
4. Jumlah elemen pada antrian (noel)
5. Status antrian
❑ Penuh
❑ Kosong

Penuh : Bila elemen pada antrian mencapai kapasitas maksimum antrian.


Pada kondisi ini, tidak mungkin dilakukan penambahan ke antrian.
Penambahan elemen menyebabkan kondisi kesalahan Overflow

Kosong : Bila tidak ada elemen pada antrian. Pada kondisi ini, tidak mngkin
dilakukan pengambilan elemen dari antrian. Pengambilan elemen
menyebabkan kondisi
kesalahan Overflow.
Implementasi Antrian pada Array

Antrian diatas berisi 6 elemen, yaitu A, B, C, D, E dan F. Elemen A terletak dibagian


depan antrian elemen F terletak di bagian belakang antrian. Dengan demikian, jika
ada elemen baru yang akan masuk maka akan diletakkan disebelah kanan F. Jika
ada elemen yang akan dihapus, maka A akan dihapus lebih dahulu.
Operasi Antrian

Operasi Antrean : FIFO (First In First Out)


Elemen yang pertama masuk merupakan elemen yang
pertama keluar.

Operator :
Penyisipan : Insert
Penghapusan : Remove

Empat operasi dasar antrean, yaitu :


1. CREATE
2. ISEMPTY
3. INSERT
4. REMOVE
Operasi Dasar Antrian
CREATE(Q):
Operator yang menunjukkan suatu antrean hampa Q.
1 Noel (Q) = 0
Front (Q) & Rear (Q) = tidak terdefinisi

ISEMPTY(Q)
Operator yang menunjukkan apakah antrean Q hampa.
2 Operand : tipe data antrean
Hasil : tipe data boolean
ISEMPTY (CREATE (Q)) = True
Operasi Dasar Antrian
INSERT (E, Q)
Operator yang menginsert elemen E ke dalam antrean Q.
3 E ditempatkan di bagian belakang antrean.
Hasil : antrean yang lebih besar.
REAR (INSERT (E, Q)) = E
ISEMPTY (INSERT (E, Q)) = False

Langkah : memastikan bahwa antrian


belum penuh
1. Menggeser Rear maju 1 Langkah
2. Mengcopy data ke elemen antiran Q
yang ditunjuk oleh Rear
Operasi Dasar Antrian
REMOVE (Q)
4 Operator yang menghapus elemen bagian depan dari antrean Q.
Hasil : antrean yang lebih pendek.
Pada setiap operasi, Noel (Q) berkurang 1 dan elemen ke-2
menjadi elemen terdepan.
Jika Noel (Q) = 0 maka Q = hampa
Remove (Q) = kondisi error (underflow condition)
Remove (Create (Q)) = kondisi error (underflow condition)

Langkah: memastikan bahwa antrian ada isinya.


1. Menggeser Front maju 1 Langkah
2. Mengcopy isi elemen yang ditunjuk Front ke variabel data
Tambahkan operasi RESET
Langkah: Kembalikan R dan F
keposisi awal
Penyajian Antrian
ANTREAN LINEAR
Menggunakan 2 pointer (indikator) :
- Front (F) untuk awal antrean
- Rear (R) untuk akhir antrean

Untuk pengambilan data menggunakan pointer Front (F),


sedangkan pemasukan data menggunakan pointer Rear (R).
Syarat : Front (selalu) <= Rear

Deklarasi Array 1 dimensi untuk Queue :


Var Q : Array[1..N] of Type Data;

Beberapa keadaan pada Antrean Linear.


Beberapa keadaan pada Antrean Linear
Beberapa keadaan pada Antrean Linear
Beberapa keadaan pada Antrean Linear
Ilustrasi Queue pada Array
Antrean dalam array queue dengan 5 lokasi memori
Ilustrasi Queue pada Array
Array Sikular
Array Sirkular
Array Sirkular
Algoritma

Anda mungkin juga menyukai