fbpx

Struktur Data :ย Contoh Progamย Queue dalam Bahasa C

๐Ÿ“‹ Daftar Isi

Buatlah sebuah program antrian untuk pasien di sebuah klinik. Menggunakan program tersebut, pasien dapat:

  1. Mengambil nomor antrian berobat
  2. Melihat antrian yang tersisa
  3. Melihat perkiraan waktu tunggu pasien pada saat mengantri untuk berobat (Perkiraan waktu periksa per pasien 15 menit)
  4. 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.


Tonton juga video pilihan dari kami berikut ini

Bagikan ke teman-teman Anda

Contact Us

How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. 1 Click on the AdBlock Plus icon on the top right corner of your browser
  2. 2 Click on "Enabled on this site" from the AdBlock Plus option
  3. 3 Refresh the page and start browsing the site
error: Content is protected !!