1.
Sebutkan pengertian Queue!
Jawab
:
Suatu
kumpulan data yang mana penambahan data atau elemen hanya dapat dilakukan pada
sisi belakang sedangkan penghapusan atau pengeluaran elemen dilakukan pada sisi
depan. Jenis dan struktur data antrian sering digunakan untuk menstimulasikan
keadaan dunia nyata. Antrian banyak dijumpai dalam kehidupan sehari-hari. Misal
antrian registrasi mahasiswa, tiket kreta api dan lain-lain.
2.
Sebutkan dan jelaskan karakteristik penting pada Queue (antrian)!
Jawab
:
·
Elemen antrian yaitu item data yang
terdapat di elemen antrian.
·
Head / front ( elemen terdepan dari
antrian )
·
Tail/rear (elemen terakhir dari
antrian)
·
Jumlah elemen pada antrian (count)
·
Status / kondisi antrian.
3.
Sebutkan perbedaan Queue dengan
Stack!
Jawab
:
í Stack
(tumpukan) => LIFO (Last In First Out yang terakhir masuk yang duluan
keluar).
Contoh
: kamu punya buku A,B,C. Yang disimpan pertama buku A, kemudian kamu tumpuk
buku B diatasnya, kemudian buku C. Nah, ketika kamu mau ngambil buku pasti dari
yang teratas dulu yaitu buku C. Jadi buku C keluar duluan.
í Queue
(barisan) => FIFO (First In First Out yang pertama masuk yang duluan
keluar).
Contoh
: kamu mengantri ketika beli tiket bioskop. Kamu pertama datang, kemudian ada
orang yang datang, dia pasti berdiri di belakang kamu, begitu seterusnya. Nah,
yang duluan selesai kamu kan? Jadi
kamu
duluan yang keluar dari barisan itu.
4.
Sebutkan Operasi-operasi pada Queue!
Jawab
:
¨ Create
() => untuk menciptakan dan menganalisasi queue
¨ IsEmpty
() => untuk memeriksa apakah antrian sudah penuh atau belum.
¨ IsFull
() => Untuk mengecek apakah antrian sudah penuh atau belum.
¨ 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.
¨ Dequeue
() => digunakan untuk menghapus elemen terdepan / pertama (head) dari
antrian. Dengan cara menggeser semua elemen antrian kedepan dan mengurangi
Tail. Dengan 1 penggeseran dilakukan dengan menggunakan looping.
¨ Clear
() => Untuk menghapus elemen-elemen antrian dengan cara membuat tail dan
head = -1
¨ Tampil
() => untuk menampilkan nilai-nilai elemen antrian menggunakan loopingdari
head s/d tail.
5.
Buatlah program tentang Queue!
Jawab :
#include “stdio.h”
void main()
{ int queue[5];
int depan = -1;
int belakang = -1;
int pilihan, data, i;
void main()
{ int queue[5];
int depan = -1;
int belakang = -1;
int pilihan, data, i;
do{
printf(“MENU\n”);
printf(“1. ENQUEUE\n2. DEQUEUE\n3. VIEW\n4. EXIT\n”);
printf(“Pilihan = “); scanf(“%d”, &pilihan);
switch (pilihan)
{
case 1: //enqueue
//apakah queue belum penuh?
if (belakang < 4 )
{ printf(“Data Masuk = “); scanf(“%d”, &data);
queue[belakang+1] = data;
belakang++;
if (belakang == 0)
depan = 0;
}
else
printf(“Queue penuh!\n”);
printf(“MENU\n”);
printf(“1. ENQUEUE\n2. DEQUEUE\n3. VIEW\n4. EXIT\n”);
printf(“Pilihan = “); scanf(“%d”, &pilihan);
switch (pilihan)
{
case 1: //enqueue
//apakah queue belum penuh?
if (belakang < 4 )
{ printf(“Data Masuk = “); scanf(“%d”, &data);
queue[belakang+1] = data;
belakang++;
if (belakang == 0)
depan = 0;
}
else
printf(“Queue penuh!\n”);
break;
case 2: //dequeue
//apakah queue belum kosong?
if (depan <= belakang)
{ printf(“Data keluar = %d\n”, queue[depan]);
depan++;
}
else
printf(“Queue kosong!\n”);
break;
case 3:
for(i=depan; i<=belakang; i++)
printf(“%d “, queue[i]);
printf(“\n”);
break;
}
}while (pilihan != 4);
}
case 2: //dequeue
//apakah queue belum kosong?
if (depan <= belakang)
{ printf(“Data keluar = %d\n”, queue[depan]);
depan++;
}
else
printf(“Queue kosong!\n”);
break;
case 3:
for(i=depan; i<=belakang; i++)
printf(“%d “, queue[i]);
printf(“\n”);
break;
}
}while (pilihan != 4);
}

