Senin, 30 November 2015

TUGAS 6 (QUEUE)

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;
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”);
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);
}



Tidak ada komentar:

Posting Komentar