Minggu, 23 Januari 2011

program antrian rs/klinik dengan C

haha... yang pertama gw bakalan kasih lo semua contoh progam queue dengan bahasa C. ni langsung sedot ja gan...!

#include <stdio.h>
#include <conio.h>

typedef struct
{
            int data[100];
            char data1[100][20];
            char data2[100][30];
            char data3[100][15];
            int depan;
            int belakang;
}Queue;
Queue antrian;
Queue no;
Queue nama;
Queue poli;

int pilihan, data, i, j;
char data1[20], data2[30], data3[15];

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, char data1[20], char data2[30], char data3[15])
{
            if(isEmpty()==1)
            {
                        antrian.depan=antrian.belakang=0;
                        nama.depan=nama.belakang=0;
                        poli.depan=poli.belakang=0;
                        no.depan=no.belakang=0;
                        antrian.data[antrian.belakang]=data;
                        for(i=0;i<20;i++)
                        {nama.data1[nama.belakang][i]=data1[i];}
                        for(i=0;i<30;i++)
                        {poli.data2[poli.belakang][i]=data2[i];}
                        for(i=0;i<15;i++)
                        {no.data3[no.belakang][i]=data3[i];}
                        printf("data anda telah masuk. silahkan menunggu panggilan");
            }
            else if(isFull()==0)
            {
                        antrian.belakang++;
                        nama.belakang++;
                        poli.belakang++;
                        no.belakang++;
                        antrian.data[antrian.belakang]=data;
                        for(i=0;i<20;i++)
                        {nama.data1[nama.belakang][i]=data1[i];}
                        for(i=0;i<30;i++)
                        {poli.data2[poli.belakang][i]=data2[i];}
                        for(i=0;i<15;i++)
                        {no.data3[no.belakang][i]=data3[i];}
                        printf("data anda telah masuk. silahkan menunggu panggilan");
            }
}

int Dequeue()
{
            if(isEmpty()==0)
            {
            int i,e ;
            char a[20], b[30];
            e=antrian.data[antrian.depan];
            for(i=0;i<20;i++)
            {
                        a[i]=nama.data1[nama.depan][i];
            }
            for(i=0;i<30;i++)
            {
                        b[i]=poli.data2[poli.depan][i];
            }
            for(i=antrian.depan;i<antrian.belakang;i++)
            {
                        antrian.data[i]=antrian.data[i+1];
                        for(j=0;j<20;j++)
                        {nama.data1[i][j]=nama.data1[i+1][j];}
                        for(j=0;j<30;j++)
                        {poli.data2[i][j]=poli.data2[i+1][j];}
                        for(j=0;j<15;j++)
                        {no.data3[i][j]=no.data3[i+1][j];}
            }
            antrian.belakang--;
            nama.belakang--;
            poli.belakang--;
            no.belakang--;
            printf("antrian no %i dengan nama %s silahkan memasuki poli %s !", e, a, b);
            return e;
            return a[20];
            return b[30];
            }
            else
            {
                        printf("antrian kosong");
            }
}

void buat()
{
            antrian.depan=antrian.belakang=-1;
            nama.depan=nama.belakang=-1;
            poli.depan=poli.belakang=-1;
            no.depan=no.belakang=-1;
}

void main()
{
            int n;
            buat();
            n=1;
            do
            {
                        clrscr();
                        puts("               aplikasi antrian rumah sakit");
                        puts("               ============================\n");
                        puts(" menu :");
                        puts("1. masukkan antrian");
                        puts("2. panggil antrian");
                        puts("3. lihat antrian");
                        puts("4. exit");
                        printf("silahkan masukkan pilihan (1-4) : "); scanf("%i", &pilihan);
                        switch(pilihan)
                        {
                                    case 1 :
                                                printf("no antrian anda adalah %i\n", n);
                                                data=n;
                                                printf("masukkan no. rekam medis anda :"); scanf("%s",&data3);
                                                printf("masukkan nama lengkap anda(gunakan tanda (_) untuk spasi) :"); scanf("%s",&data1);
                                                printf("masukkan poli berobat anda (gunakan tanda (_) untuk spasi):"); scanf("%s",&data2);
                                                Enqueue(data, data1, data2, data3);
                                                n++;
                                    break;

                                    case 2 :
                                                Dequeue();
                                    break;

                                    case 3 :
                                                if(isEmpty()==1)
                                                {
                                                            printf("antrian kosong !");
                                                            break;
                                                }
                                                puts("no antrian           no.reka medis              nama lengkap              poli berobat");
                                                for(i=antrian.depan;i<=antrian.belakang;i++)
                                                {
                                                            printf("%i                    %s                   %s                   %s\n", antrian.data[i], no.data3[i], nama.data1[i], poli.data2[i]);
                                                }

                                    break;
                                    case 4 :
                                                printf("terimakasih atas partisipasinya !!!");
                                    break;
                                    default :
                                                puts("salah tuh pilihannya !!!");
                                    break;
                        }
                        getch();
            }while(pilihan!=4);

}

tuh... mamam tuh... ni pogram bisa di jalanin pake program trubo C++.. klo yang blom punya donload aja dulu!!! hehehe... copy paste kodingan d atas k turbo C++nya..... tus d run!!!
klo blom paham ma kodingan di atas ntar sesi selanjutnya mukin bisa di bahas.....!!!!!!!

3 komentar:

  1. sipt gan, makasih ya, programnya saya pelajari..:)

    BalasHapus
  2. tank's abang gantengg ... lanjutkan ya sama penjelasan nya ya bang biar yang baca bisa paham 85% dari isi permasalahan nya :D

    BalasHapus