Bab 4 (Queue)

Download Report

Transcript Bab 4 (Queue)

QUEUE (ANTRIAN)
QUEUE






DEFINISI
adalah suatu linier list dimana operasi delete terjadi
pada sisi depan (front) dan operasi insert terjadi
pada sisi belakang (rear)
Antrean Q=[Q1, Q2, ….., QN]
Front (Q)=Q1 -> bagian depan antrian
Rear (Q)=QN -> bagian belakang antrean
Noel (Q)=N -> jumlah elemen dalam antrian


Operasi Antrean: FIFO (First In First Out)
Elemen yang pertama masuk merupakan elemen
yang pertama keluar





OPERASI DASAR PADA QUEUE
CREATE adalah suatu operasi untuk menghasilkan
suatu queue kosong
bentuk umum : create (queue)
ISEMPTY adalah suatu operasi untuk memeriksa
apakah queue merupakan queue kosong atau tidak
bentuk umum : isempty (queue)




INSERT adalah suatu operasi untuk memasukkan
elemen ke dalam queue
bentuk umum : insert (elemen, queue)
REMOVE adalah suatu operasi untuk mengeluarkan
elemen dari dalam queue
bentuk umum : remove (elemen,queue)







DEKLARASI QUEUE DALAM BAHASA PEMROGRAMAN
Dalam bahasa Pascal
type strukqueue = record
Q : array [1..100] of integer;
front, rear : integer;
end;
var Q : strukqueue;





Dalam bahasa Cobol
01 strukqueue.
02 Q occurs 100 times pic 9(5).
03 front pic 9(3).
04 rear pic 9(3).





Contoh:
Antrean dalam array queue dengan 5 lokasi memori
1. Pada awal antrean hampa
F=0
R=0
Queue
1
2
3
4
5






2. A, B dan C dimasukkan
F=1
R=3
Queue
A
B
1
2
C
3
3. Hapus 1 elemen: A dihapus
F=2
R=3
5
Queue
B
1
4
2
C
3
4
5






4. D dan E dimasukkan
F=2
R=5
Queue
B
1
5. Hapus 1 elemen: B dihapus
F=3
R=5
1
2
C
D
E
3
4
5
C
D
E
3
4
5
Queue
2

Akibatnya, setelah pemasukan elemen ke-5 maka
lokasi Queue (5) telah diduduki mungkin saja tidak
sebanyak 5 elemen ada dalam antrean, karena
sudah dilakukan beberapa penghapusan.

Untuk pemasukan elemen berikutnya, yakni
memasukkan elemen ITEM, gunakan lokasi QUEUE
(1), dan seterusnya. Array Sirkular yaitu elemen
Queue (1) datang sesudah Queue (N) di dalam array,
maka Rear =1. Jika Front=N, dilakukan penghapusan
maka Front=1, bukan N+1







Contoh: Array Sirkular dengan 5 lokasi memori
1. Pada awal antrean hampa
F=0
Queue
R=0
2. A, B dan C dimasukkan
F=1
R=3
1
2
3
Queue
A
B
C
1
2
3
4
5
4
5






3. Hapus 1 elemen: A dihapus
F=2
R=3
4. D dan E dimaukkan
F=2
R=5
Queue
B
1
2
C
3
4
5
Queue
1
B
C
D
E
2
3
4
5






5. Hapus 1 elemen: B dihapus
F=3
R=5
6. G dimasukkan
F=3
R=1
Queue
1
2
C
D
E
3
4
5
C
D
E
3
4
5
Queue
G
1
2





DEQUE
adalah suatu bentuk queue dimana operasi insert
dan remove dapat dilakukan pada kedua sisi queue
tapi tidak ditengah queue
Ada 2 model deque : deque input terbatas dan
deque output terbatas.
Deque input terbatas membatasi insert elemen
hanya pada satu sisi list tetapi remove dapat
dilakukan di dua sisi list.
Deque output terbatas membatasi remove elemen
hanya pada satu sisi list tetapi insert dapat
dilakukan pada dua sisi list



QUEUE BERPRIORITAS
setiap elemen diberikan prioritas dan diproses
berdasarkan aturan : elemen yang berprioritas tinggi
diproses lebih dahulu dan jika ada dua elemen
dengan prioritas sama maka elemen tersebut akan
diproses sesuai dengan urutan sewaktu dimasukkan
dalam queue
Contoh queue berprioritas adalah sistem time
sharing