2. BAB I
Pendahuluan
Antrian(Queue)adalahdaftarperintahdenganpenyisipan di satuujung, sedangpenghapusan di
ujung lain. Ujung penyisipanbiasadisebut rear/tail, sedangujungpenghapusandisebut front/head.
Fenomena
yang
munculadalahelemen
yang
lebihduludisisipkanakanjugalebihduludiambil.
Antrianberdisiplin FIFO (First In, First Out).
KarakteristikAntrianmemangterbatas,
tetapiAntrianmerupakankelasdasarpenyelesaianmasalah-masalahbesar,
sepertisimulasifenomenaantrian
di
dunianyata,
sertafenomenaantrian
di
pengolahan
data.Beberapafenomenadunianyataberupaantriandiantaranyaantrianpembeliantiket
di
depanloketuntukbis, keretaapi, bioskop, antrianmobil di depangerbangjalantol, antriankendaraan di
jalananumum, dll.
BAB II
Rangkuman
A. KarakteristikPenting
Hal-hal/karakteristik yang penting dalam pengelolaan Antrian(Queue) adalah :
1. Elemenantrian :
Item-item data yang terdapat/diorganisasikanpadaantrian
2. Front
Elementerdepandariantrian
3. Tail
Elementerakhirdariantrian
4. PanjangAntrian
Yaitu banyaknya (jumlah) elemen pada antrian, ada dua jenis panjang :
panjang aktual : merepresentasikan banyak item data pada antrian pada suatu saat.
Kapasitas antrian : panjang maksimum yang diizinkan pada antrian
5. Status
Merepresentasikan kondisi antrian pada satu saat, terdapat 3 jenis status pada antrian, yaitu :
Kosong(Perlu di perhatikan)
3. Bila tidak ada elemen pada antrian, pada kondisi ini tidak mungkin dilakukan operasi
DeQueue
terhadap antrian. DeQueuepadaantrian/queue kosongmenyebabkankondisikeselahan
Underflow
Isi tapitidakpenuh
Bila paling sedikit terdapat satu elemen pada antrian dan paling banyak (n-1) elemen,
dimana n adalah kapasitas antrian.
Penuh(Perlu di perhatikan)
Bila jumlah elemen pada antrian mencapai kapasitas antrian. Pada kondisi ini tidak mungkin
dilakukan operasi EnQueue terhadap antrian. Penambahan elemen baru (EnQueue)
menyebabkan kondidi overflow.
Keterangan :
1. Enqueue : proses penambahanelemen di posisibelakang
2. Dequeue : proses pengambilanelemen di posisidepan
B. Operasi Dasar
a. Operasi-operasipokokantriansebagaiberikut :
1. createQueue (Q), atau constructor menciptakanantriankosong Q.
2. addQueue (Q, X) memasukkanelemen X sebagaielemenakhir di Q.
3. removeQueue (Q, X)ataumengambilelemendepan di antrian Q keelemenX.
b. Operasi-operasipengaksesantambahan yang dapatdilakukanadalah :
1. headQueue (Q), atau Front (Q, X) mengirimelementerdepantanpamenghapus.
2. tailQueue (Q), mengirimelementanpamenghapusnya.
c. Operasi-operasi Query tambahan yang dapatdilakukanadalah :
1. isEmptyQueue (Q), mengirimapakahantrian Q adalahkosong.
2. isFullQueue (Q), mengirimapakahantrian Q adalahpenuhbilakapasitasantrian Q didefinisikan.
3. isOverflowQueue (Q), mengirimapakahantrian Q telahmengalami overflow.
4. isUnderflowQueue (Q), mengirimapakahantrian Q mengalami underflow.
d. Operasi-operasiterhadapseluruhantrian Q antara lain adalah :
1. sizeQueue (Q), mengetahuijumlahelemen di antrian Q.
2. isEqualQueue (Q1, Q2), mengirimapakahantrian Q1 dan Q2 samaisinya.
4. C. RepresentasiStatik LinearQueue dengan Array
Representasti
Queue
Stack.Padarepresentasi
secara
linear,
linear
(sequens)
lebihrumitdibandingkan
array
yang
digunakanseakan-
akanmerupakansebuahloronglurusdengansatumasukdansatupintukeluar.Didalamlorongelemen data
bergerakselangkah demi selangkahsesuaidenganoperasiDeQueue yang dilakukanpadapintukeluar.
masuk
keluar
Setiap ada elemen yang keluar antrian,
maka elemen yang dibelakangnya harus
maju satu langkah (posisi), sehingga
elemen ke-2 menempati posisi pertama
dst.
Berikutiniadalahcontohdeklarasi data untuksuatuQueue :
Const
MaxQueue = 10
Type
TipeData = integer;
Var
Queue : array [ 1 .. MaxQueue ] of TipeData
Front, Tail, j : integer
Konvensi :
1. Front selalumenunjukposisi Queue [ 1 ]
2. Tail menujukelementerakhirpada Queue, sehingga Tail
MaxQueue
3. Queue adalahkosongjika Tail lebihkecildari Front
Operasi-operasi pada Queue dengan Linear Array
1. Create
Procedure Create bergunauntukmenciptakan Queue barudanKosong. Padaimplementasi Queue
dengan Linear Array, padadasarnyasudahdilakukanalokasi memory ketikastruktur data Queue
dideklarasikan (deklarasi type danvariabel).Sehingga pengertiaan penciptaan Queue baru adalah
melakukan inisialisasi variabel Front dengan 1 dan Tail dengan 0.
5. Procedure Create;
Begin
Front := 1;
Tail := 0;
End;
Tail =0
Front=1
Queue [ 1 ]
maxQueue
Queue [ 2 ]
Queue [ 3 ]
Queue [ 4 ]
Queue [ n ]
2. CekStatus
Operasi CekStatus berguna untuk memeriksa apakah Queue :
Kosong / empty, jika Tail = 0,
Penuh / Full, jika Tail = MaxQueue
Function Empty
Function Full
Function Empty : Boolean ;
Begin
If Tail = 0
then Empty := true
else Empty := false
end;
Function Full : Boolean ;
Begin
If Tail =MaxQueue
then Full := true
else Full := false
end;
3. EnQueue
Operasi EnQueue berguna untuk memasukkan sebuah elemen baru ke antrian. Operasiinihanya legal
jika Queue tidak Full.
Front=1
23
Tail =3
15
14
maxQueue
6. Queue [ 1 ]
Queue [ 2 ]
Queue [ 3 ]
Queue [ n ]
EnQueue( 59 ) :
Front=1
Tail =3
Tail =4
23
15
14
Queue [ 2 ]
Queue [ 3 ]
Queue [ 4 ]
maxQueue
59
Queue [ 1 ]
59
Queue [ n ]
Procedure EnQueue( Databaru:TipeData )
Begin
If not Full then
begin
Tail := Tail + 1
Queue [ Tail ] := DataBaru
End;
End;
4. DeQueue
Operasi DeQueue berguna untuk mengambil sebuah elemen dari antrian. Dilakukan terhadap
elemen terdepan (front). Instruksi pengambilan harus diikuti dengan instruksi pengeseran elemenelemen dibelakangnya 1 langkah. Operasiini legal jika Queue tidak Empty.
Front=1
Tail =4
23
15
14
59
Queue [ 1 ]
Queue [ 2 ]
Queue [ 3 ]
maxQueue
Queue [ 4 ]
Front=1
23
Tail =3
Queue [ n ]
Tail =4
15
14
59
59
Queue [ 1 ]
Queue [ 2 ]
Queue [ 3 ]
Queue [ 4 ]
maxQueue
Queue [ n ]
7. Procedure DeQueue( DataServe :TipeData )
Begin
If not Empty then
begin
DataServe := Queue [ Front ]
For i := 1 to Tail - 1
Do
Queue [ i ] := Queue [ i + 1 ]
Tail := Tail – 1
End;
End;
5. Clear
Mengosongkan antrian (Queue) pada implementasi dengan linear array adalah menginisialisasi ulang
variabel Tail dengan 0.
Procedure Clear ;
Begin
Tail := 0;
End;
6. PanjangAntrian
Panjang antrian (Queue) pada linear array sama dengan selisih Tail terhadap Front ditambah 1.
Pada kasus Front statis ( = 1), maka panjang antrian sama dengan Tail.
PanjangQueue= Tail – Front + 1
Padakasus Front statis =>Front = 1
sehingga :
PanjangQueue = Tail
8. BAB III
Kesimpulan
Prinsiputamadari queue sebenarnyasangatsederhanadangampangdimengerti, yaitu First In
First Out. Atausecaragarisbesar data yang paling awalmasukadalah data yang paling dulukeluar,
sehingga
data-data
lain
yang
tersebutharusmengantrijikainginkeluar.
adadiatasnya
yang
masuksetelah
data