Queue (Antrian)
Queue (Antrian)
A. Pengertian Queue (Antrian)
Queue
(Antrian) adalah suatu kumpulan data yang mana penambahan data / elemen hanya
dapat dilakukan pada sisi belakang sedangkan penghapusan / pengeluaran elemen
dilakukan pada sisi depan.
Jenis
struktur data antrian sering digunakan untuk menstimulasikan keadaan dunia
nyata. Antrian banyak dijumpai dalam kehidupan sehari-hari. Misal : antrian
registrasi mahasiswa, tiket kereta api dan lain-lain.
Berbeda
dg stack, prinsip yg digunakan dalam antrian adalah FIFO ( First In First
Out ). Dengan kata lain, urutan
keluar elemen akan sama dengan urutan masuknya.
Dalam
antrian tidak semuanya dilakukan secara FIFO murni, contoh yg relevan dalam
bidang komputer adalah Time-sharing Computer System, dimana ada sejumlah
penakai ( user ) yg menggunakan sistem tsb secara serempak. Karena sistem ini
biasanya menggunakan processor, dan sebuah memory utama. Jika processor sedang
dipakai oleh seorang user, maka user yang lain harus antri sampai gilirannya.
Antrian
ini tidak akan dilayani secara FIFO murni tetapi biasanya didasarkan pada suatu
prioritas tertentu. Antrian yang memasukkan unsur prioritas dinamakan dengan
ANTRIAN PRIORITAS ( PRIORITY QUEUE )
Elemen yang pertama kali masuk ke antrian akan
keluar pertama kalinya. DEQUEUE
adalah mengeluarkan satu elemen dari suatu antrian. Terdapat satu buah pintu
masuk di suatu ujung dan satu buah pintu keluar di ujung satunya sehingga
membutuhkan variabel Head dan Tail
Deklarasi
Queue :
B. Operasi
dalam Queue
1.
Create ( )
a. Untuk menciptakan dan menginisialisasi Queue
b. Dengan cara membuat Head dan Tail = -1
2.
IsEmpty ( )
a. Untuk memeriksa apakah Antrian sudah penuh atau
belum
b. Dengan cara memeriksa nilai Tail, jika Tail = -1
maka empty
c. Kita tidak memeriksa Head, karena Head adalah tanda
untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan
berubah-ubah
d. Pergerakan pada Antrian terjadi dengan penambahan
elemen Antrian kebelakang, yaitu menggunakan nilai Tail
3.
IsFull
a. Untuk mengecek apakah Antrian sudah penuh atau belum
b. Dengan cara mengecek nilai Tail, jika Tail >=
MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh
4.
Enqueue (data)
a. Untuk menambahkan elemen ke dalam antrian,
penambahan elemen selalu ditambahkan di elemen paling belakang.
b. Penambahan elemen selalu menggerakan variabel Tail
dengan cara increment counter Tail
5.
Dequeue()
a. Digunakan untuk menghapus elemen terdepan/pertama
dari antrian
b. Dengan cara mengurangi counter Tail dan menggeser
semua elemen antrian kedepan.
c. Penggeseran dilakukan dengan menggunakan looping
6.
Clear()
a. Untuk
menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1
b. Penghapusan
elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset
indeks pengaksesan-nya
7.
Tampil
a. Untuk
menampilkan nilai-nilai elemen antrian
b. Menggunakan
looping dari head s/d tail