Queue
NIM/Nama : 4312011026 / Ikhwan Ash Shafa Arrafi
Setelah mengikuti praktikum ini, mahasiswa diharapkan dapat:
Menggambarkan konsep queue pada memory
Membuat struktur data queue dalam bahasa C
Melakukan operasi pada queue
Mengaplikasikan queue pada program
1. Buatlah deklarasi queue dalam bahasa C yang bisa menyimpan nama pasien ke dalam
antrian! Salin dan jelaskan kode program di sini.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 5
Queue Q;
void create(Queue *Q){
(*Q).count= 0;
(*Q).front= 0;
(*Q).rear= -1;
}
~1~
else{
(*Q).rear=((*Q).rear+1) %MAX;
(*Q).data[(*Q).rear]= malloc(strlen(nama)+1);
strcpy((*Q).data[(*Q).rear],nama);
(*Q).count++;
}
}
void dequeue(Queue*Q){
if(isEmpty(*Q)){
printf("Antrian kosong, dequeue gagal");
}
else {
free((*Q).data[(*Q).front]);
(*Q).front=((*Q).front+1) %MAX;
(*Q).count--;
}
}
int main(){
create(&Q);
printf("Antrian Pasien:\n");
enqueue(&Q, "Pasien B");
enqueue(&Q, "Pasien C");
enqueue(&Q, "Pasien D");
dequeue(&Q);
enqueue(&Q, "Pasien E");
Tampil(Q);
}
Perubahan di prosedur mana saja yang berkaitan dengan perubahan data dalam deklarasi
queue? Jelaskan.
Pada Prosedur enqueue dan dequeue
~2~
}
}
void dequeue(Queue*Q){
if(isEmpty(*Q)){
printf("Antrian kosong, dequeue gagal");
}
else {
free((*Q).data[(*Q).front]);
(*Q).front=((*Q).front+1) %MAX;
(*Q).count--;
}
}
Buatlah prosedur dalam bahasa C untuk mencetak nama-nama pasien yang ada dalam
antrian. Salin dan jelaskan kode program di sini.
void Tampil(Queue Q){
int i;
for (i=0;i<Q.count;i++){
printf("Antrian ke[%d]=%s\n",i,Q.data[(Q.front+i)%MAX]);
}
}
do{
printf("\nMasukkan Pilihan : "); scanf("%d", &input);
if(input == 1){
printf("Masukkan nama : "), scanf("%s", &data);
enqueue(&Q, data);
~3~
}else if(input == 2){
dequeue(&Q);
}else if(input == 3){
Tampil(Q);
}else if(input == 4){
goto end;
}else{
printf("Pilihan Salah!");
}
}while(input != 5);
end:
return 0;
}
Tampilkan hasil running program dan penjelasannya di sini.
1. Program akan meminta input berupa pilihan pada menu program sesuai dengan
kebtuhan
2. Pilihan “Panggil pasien” akan melakukan dequeue
3. Pilihan program akan terus diminta hingga mengetik pilihan 4 (keluar)
Kesimpulan
Setelah mengikuti praktikum ini, apa saja yang telah Anda pelajari?
Dapat Memahami cara kerja Queue dan diimplementasikan dalam bahasa C
~4~