๐ Daftar Isi
Buatlah sebuah program antrian untuk pasien di sebuah klinik. Menggunakan program tersebut, pasien dapat:
- Mengambil nomor antrian berobat
- Melihat antrian yang tersisa
- Melihat perkiraan waktu tunggu pasien pada saat mengantri untuk berobat (Perkiraan waktu periksa per pasien 15 menit)
- Keluar dari program
Source Code
#include <stdio.h>
#include <conio.h>
typedef struct
{
int data[1000000];
int depan;
int belakang;
}Queue;
Queue antrian;
int pilihan, data, i, j;
int qtime[1000000]; //waktu tunggu antrian
int stime = 0, ntime = 0; //startTime dan nowTime
int wtime() //waitingTime
{
int data = qtime[stime];
stime++;
ntime--;
return data;
getch();
}
int isEmpty()
{
if (antrian.belakang==-1)
return 1;
else
return 0;
}
int isFull()
{
if(antrian.belakang==100)
return 1;
else
return 0;
}
void Enqueue(int data)
{
if(isEmpty()==1)
{
antrian.depan=antrian.belakang=0;
antrian.data[antrian.belakang]=data;
printf("Data anda telah masuk. Silakan menunggu!");
}
else if(isFull()==0)
{
antrian.belakang++;
antrian.data[antrian.belakang]=data;
printf("Data anda telah masuk. Silakan menunggu!");
}
}
int Dequeue()
{
if(isEmpty()==0)
{
int i,e ;
e=antrian.data[antrian.depan];
for(i=antrian.depan;i<antrian.belakang;i++)
{
antrian.data[i]=antrian.data[i+1];
}
antrian.belakang--;
printf("Antrian Nomor = %i. Silakan Masuk!", e);
return e;
}
else
{
printf("Antrian saat ini kosong");
}
}
void buat()
{
antrian.depan=antrian.belakang=-1;
}
void main()
{
puts("Nama : Alfian Rizky Al Majid");
puts("Kelas : 2KS5");
puts("NIM : 222011647");
puts("No. Absen : 25");
int n, kira=15, waktu;
buat();
n=1;
do
{
puts("\n\n Program Antrian Pasien");
puts(" ======================");
puts(" MENU:");
puts("1. Ambil Antrian");
puts("2. Lihat Antrian");
puts("3. Panggil Antrian");
puts("4. Perkiraan Waktu Tunggu Antrian");
puts("5. Exit");
printf("Silakan masukkan pilihan (1-5): "); scanf("%i", &pilihan);
printf("\n");
switch(pilihan)
{
case 1:
printf("No. Antrian Anda = %i\n", n);
data=n;
Enqueue(data);
n++;
break;
case 2:
if(isEmpty()==1)
{
printf("Antrian saat ini kosong !");
break;
}
puts("No. Antrian saat ini");
for(i=antrian.depan;i<=antrian.belakang;i++)
{
printf(" %i ", antrian.data[i]);
}
break;
case 3:
Dequeue();
break;
case 4:
waktu=0;
for( int f=antrian.depan ; f<antrian.belakang ; f++ )
{
wtime();
waktu+=kira;
}
printf("Saat ini Anda berada di urutan %i \n", antrian.belakang+1);
printf("Waktu tunggu sekitar %d menit sampai giliran Anda", waktu);
break;
case 5:
printf("Silakan klik ENTER lagi untuk EXIT\n");
break;
default:
puts("Anda salah pilih tuh!");
break;
}
getch();
}
while(pilihan!=5);
}
Output
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Queue, daftar lengkapnya adalah sebagai berikut.