PERTEMUAN XIII
QUEUE
TUGAS PENDAHULUAN
1.
Apa yang
dimaksud dengan queue!
2.
Tuliskan
deklarasi sintaks queue!
3.
Sebutkan dan
jelaskan operasi-operasi pada queue!
4.
Jelaskan
aplikasi-aplikasi queue dalam dunia nyata!
Jawaban
1. 1. Queue atau Antrian merupakan kumpulan elemen dengan
penyisipan dan penghapusan elemen yang dilakukan dari sisi/gerbang yang
berbeda.
2. 2. a. Deklarasi Awal Queue.
#define max 7
int data[max];
int head=-1, tail=-1;
b. IsEmpty.
bool IsEmpty(){
if(head == -1 && tail == -1)
return true;
else
return false;
}
c. IsFull.
</pre>
<pre style="text-align:
justify;">bool IsFull(){
if(tail == max-1)
return true;
else
return false;
}
d. Enqueue.
void Enqueue(){
if(IsFull()) {
cout<<"Antrian
sudah penuh, mohon tunggu beberapa saat lagi ";
getch();
} else {
if (IsEmpty()){
head=tail=0;
cout<<"Masukkan
data : ";cin>>data[tail];
}
else {
tail++;
cout<<"Masukkan
data : ";cin>>data[tail];
}
}
}
e. Dequeue.
void Dequeue(){
if(IsEmpty()){
cout<<"Antrian
kosong ! ";
getch();
} else {
cout<<"Data
yang diambil : "<<data[head];
for(a=head;a<=tail-1;a++)
data[a]=data[a+1];
tail--;
if(tail == -1)
head = -1;
}
}
f. Clear.
void Clear(){
head=tail=-1;
cout<<"Antrian
sudah dikosongkan ! ";getch();
}
g. View.
void View(){
if(IsEmpty()){
cout<<"Antrian
kosong ! ";
getch();
} else {
for(a=head;a<=tail;a++)
cout<<"Data
pada antrian ke "<<a<<" =
"<<data[a]<<endl;
getch();
}
}
Fungsi – fungsi yang ada sudah ditranslate kedalam
bahasa C++. Sekarang kita tinggal membuat fungsi main nya.
main(){
int jawab;
do{
clrscr();
cout<<"--------- Program Queue by
adeethunix ------------"<<endl;
cout<<"1. Enqueue "<<endl;
cout<<"2. Dequeue "<<endl;
cout<<"3. Clear "<<endl;
cout<<"4. View "<<endl;
cout<<"5. Exit "<<endl;
cout<<"Masukkan pilihan Anda : ";
cin>>jawab;
switch(jawab){
case 1:
Enqueue();break;
case 2:
Dequeue();break;
case 3:
Clear();break;
case 4:
View();break;
}
}while (jawab != 5);
}
3. 3. Operasi-operasi pada Queue:
1. Create()
Untuk menciptakan dan
menginisialisasi Queue
Dengan cara membuat Head dan
Tail = -1.
2. IsEmpty()
Untuk memeriksa apakah Antrian sudah penuh atau belum
Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty
Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian
(elemen pertama dalam antrian) yang tidak akan berubah-ubah
Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian
kebelakang, yaitu menggunakan nilai Tail.
3. IsFull
Untuk mengecek apakah Antrian sudah penuh atau belum
Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah
batas elemen array pada C) berarti sudah penuh.
4. Enqueue
Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu
ditambahkan di elemen paling belakang
Penambahan elemen selalu menggerakan variabel Tail dengan cara increment
counter Tail terlebih dahulu.
5. Dequeue()
Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian
Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn
1
Penggeseran dilakukan dengan menggunakan looping.
6. Clear()
Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head =
-1.
Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya,
namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen
Antrian tidak lagi terbaca.
7. Tampil()
Untuk menampilkan nilai-nilai elemen Antrian
Menggunakan looping dari head s/d tail.
4.
Queue dalam
kehidupan sehari-hari seperti :
Antrian pada penjualan
tiket kereta api, dimana orang yang pertama datang adalah orang yang pertama
kali dilayani untuk membeli tiket. Jika ada orang baru yang datang akan membeli
tiket, maka posisinya berada pada urutan paling belakang dalam antrian
tersebut.
Orang yang berada pada
posisi terakhir dalam antrian adalah yang terakhir kali dapat dilayani dan
memperoleh tiket kereta api (kalau kurang beruntung, maka akan kehabisan
tiket). Contoh lain adalah nasabah yang antri di teller bank, paket data yang
menunggu untuk di transmisikan lewat internet, antrian printer dimana terdapat
antrian print job yang menunggu giliran untuk menggunakan printer dan
sebagainya.
Contoh aplikasi Queue
dalam dunia nyata :
1.
Aplikasi antrian
di jalan Tol.
2.
Aplikasi antrian
saat mengantri di loket.
3.
Aplikasi
antraian reservasi tiket kereta api, dll.
Semua itu menggunakan
aturan FIFO (First In, First Out).
0 komentar:
Posting Komentar