Program Kasir Restoran Menggunakan Array Bahasa C

Halo teman-teman, disini saya membuat sebuah program kasir dan ditampilkan dalam bentuk struk. Semoga dapat membantu teman-teman sekalian:) Cheers Programmers! 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <windows.h>

void panggilMenu(void);
void Penghitungan();
void struk(void);


    struct macammenu
    {
        int menumakan,menuminuman;
    };
   
    struct subtotal
    {
        int jmlbeli1,jmlbeli2,jmlbeli3,jmlbeli4,jmlbeli5,jmlbeli6,jmlbeli7,jmlbeli8,jmlbeli9,jmlbeli10;
        int totalharga, bayar, kembalian;
    };
   
    struct makan
    {
        int soto, bakso , pecel, mie_ayam,gado2;

    };
   
    struct minum
    {
        int esteh, esjeruk, essirup,sogem, esklamud;

    };
   
    struct makan menu_mak;
    struct minum menu_min;
    struct macammenu menu;
    struct subtotal sub;


    time_t ambil_waktu;

int main()
{
    panggilMenu();
    return 0;
}

void panggilMenu (void){
 
    makan:
   
    printf("\n\t\t    Selamat datang di Z Resto.\n");
    printf("\t\tSilakan pilih menu yang Anda sukai:\n\n");
    printf("====================================================================\n");
    printf ("|No.| Makanan \t| Harga    |\t\t|No.| Minuman\t | Harga   |\n");
    printf("|-------------------------------------------------------------------\n");
    printf("| 1 | Soto\t|  Rp.3500 |\t\t");
    printf("| 6.| Es Teh\t | Rp.1500 | \n");
    printf("| 2 | Bakso\t|  Rp.7500 |\t\t");
    printf("| 7.| Es Jeruk\t | Rp.2500 |\n");
    printf("| 3 | Pecel\t|  Rp.4000 |\t\t");
    printf("| 8.| Es Sirup\t | Rp.2000 |\n");
    printf("| 4 | Mie Ayam\t|  Rp.6500 |\t\t");
    printf("| 9.| Es Sogem\t | Rp.5000 |\n");
    printf("| 5 | Gado-Gado\t|  Rp.4500 |\t\t");
    printf("| 10| Es Klpa Md | Rp.3500 |\n");
    printf("\n====================================================================");
    printf("\n ");
    printf("\n99. Struk Pembayaran\n55. Reset pilihan\n00.  Keluar\n");
    printf("===============================================\n");
 //End menampilkan menu yang dapat dipilih user
 //perulangan untuk user memilih menu sesuai nomor menu
 for (menu.menumakan!=0;menu.menumakan!=99;){

 printf("\nInput pilihan yang Anda inginkan: "); scanf("%d",&menu.menumakan);

    switch(menu.menumakan) {
    case 1:
            printf("\n [1] Pemesanan Soto\n");
            printf("jumlah pesan =  ");scanf("%d",&menu_mak.soto);
            printf("\n===============================================\n");
            sub.jmlbeli1=menu_mak.soto*3500;
            break;
    case 2:
            printf("\n [2]Pemesanan Bakso\n");
            printf("jumlah pesan =  ");scanf("%d",&menu_mak.bakso);
            printf("\n===============================================\n");
            sub.jmlbeli2=menu_mak.bakso*7500;
    break;
    case 3:
            printf("\n [3] Pemesanan Pecel\n");
            printf("jumlah pesan =  ");scanf("%d",&menu_mak.pecel);
            printf("\n===============================================\n");
            sub.jmlbeli3=menu_mak.pecel*4000;
    break;
    case 4:
            printf("\n [4] Pemesanan Mie Ayam\n");
            printf("jumlah pesan =  ");scanf("%d",&menu_mak.mie_ayam);
            printf("\n===============================================\n");
            sub.jmlbeli4=menu_mak.mie_ayam*6500;
    break;
    case 5:
            printf("\n [5] Pemesanan Gado-Gado\n ");
            printf("jumlah pesan =  ");scanf("%d",&menu_mak.gado2);
            printf("\n===============================================\n");
            sub.jmlbeli5=menu_mak.gado2*4500;
    break;
    case 6:
            printf("\n [6] Pemesanan Es Teh\n ");
            printf("jumlah pesan =  ");scanf("%d",&menu_min.esteh);
            printf("\n===============================================\n");
            sub.jmlbeli6=menu_min.esteh*1500;
    break;
    case 7:
            printf("\n [7] Es Jeruk\n");
            printf("jumlah pesan =  ");scanf("%d",&menu_min.esjeruk);
            printf("\n===============================================\n");
            sub.jmlbeli7=menu_min.esjeruk*2500;
    break;
    case 8:
            printf("\n [8] Es Sirup\n");
            printf("jumlah pesan =  ");scanf("%d",&menu_min.essirup);
            printf("\n===============================================\n");
            sub.jmlbeli8=menu_min.essirup*2000;
    break;
    case 9:
            printf("\n [9] Sogem\n");
            printf("jumlah pesan =  ");scanf("%d",&menu_min.sogem);
            printf("\n===============================================\n");
            sub.jmlbeli9=menu_min.sogem*5000;
    break;
    case 10:
            printf("\n [10] Es Klamud\n");
            printf("jumlah pesan =  ");scanf("%d",&menu_min.esklamud);
            printf("\n===============================================\n");
            sub.jmlbeli10=menu_min.esklamud*2000;
    break;
    case 99:
            Penghitungan();  //memanggil fungsi penghitungan
    break;
    case 55:
            system("cls");  //cls untuk membuat layar menjadi kosong
            panggilMenu();  //me-reset pilihan user
    break;
    case 00:
            exit(EXIT_SUCCESS);
    break;
   
    default: ///
        printf("Kesalahan inputan, menu no.%d tidak ada dalam daftar\n",menu.menumakan);
        printf("- Silakan input kembali\n");
    break;

    }

}
}


void Penghitungan(void)
{
            printf("\nPesanan Makanan \n");
            printf("\tJumlah | Nama Minuman  | Total Harga\n\t====================================\n");
            printf("\t   %d   : Soto         : Rp. %d \n",menu_mak.soto, sub.jmlbeli1);
            printf("\t   %d   : Bakso        : Rp. %d \n",menu_mak.bakso, sub.jmlbeli2);
            printf("\t   %d   : Pecel        : Rp. %d \n",menu_mak.pecel, sub.jmlbeli3);
            printf("\t   %d   : Mie Ayam     : Rp. %d \n",menu_mak.mie_ayam, sub.jmlbeli4);
            printf("\t   %d   : Gado - Gado  : Rp. %d \n",menu_mak.gado2, sub.jmlbeli5);
            printf("\t------------------------------------\n\n");

            printf("Pesanan Minuman \n");
            printf("\tJumlah | Nama Minuman  | Total Harga\n\t====================================\n");
            printf("\t   %d   : Es Teh        : Rp. %d \n",menu_min.esteh, sub.jmlbeli6);
            printf("\t   %d   : Es Jeruk      : Rp. %d \n",menu_min.esjeruk, sub.jmlbeli7);
            printf("\t   %d   : Es Sirup      : Rp. %d \n",menu_min.essirup, sub.jmlbeli8);
            printf("\t   %d   : Soda Gembira  : Rp. %d \n",menu_min.sogem, sub.jmlbeli9);
            printf("\t   %d   : Kelapa Muda   : Rp. %d \n",menu_min.esklamud, sub.jmlbeli10);
            printf("\t------------------------------------\n");
 
            sub.totalharga=sub.jmlbeli1+sub.jmlbeli2+sub.jmlbeli3+sub.jmlbeli4+sub.jmlbeli5+sub.jmlbeli6+sub.jmlbeli7+sub.jmlbeli8+sub.jmlbeli9+sub.jmlbeli10;
            printf("\n===============================\nTotal Harga adalah = Rp.%d,-\n===============================\n",sub.totalharga);
         
   bayar:
            printf("\nMasukkan uang bayar = ");scanf("%d",&sub.bayar);
 
            if (sub.bayar>=sub.totalharga)
            {
            sub.kembalian=sub.bayar-sub.totalharga;
            printf("\nKembalian = %d", sub.kembalian);
            }
            else
            {
                printf("Uang Anda tidak cukup! Silakan input ulang\n");

                goto bayar;
            }
         
   printf("\nTekan apa saja untuk melihat struk pembayaran\n");
            system("Pause");
            system("cls");
            struk();
}
//End Fungsi untuk melakukan perhitungan harga dan jumlah pesanan

//Fungsi untuk menampilkan struk hasil pembelian
void struk(void)
    {
        time(&ambil_waktu); //mengambil waktu saat ini
        printf("=================================================================\n");
        printf("| \t\t\tZ Resto                    \t\t|\n");
        printf("| \t\tJl.Kaliurang km.2, Sleman\t\t\t|\n| \t\t\tDI Yogya\t\t\t\t|\n");
        printf("| \t     Telp : (0274)520712 / 085727346495                 |\n");
        printf("|_______________________________________________________________|\n");
        printf("| Nama Pesanan  | Harga Satuan  | Jumlah  | \t    Total  \t|\n");
        printf("|===============|===============|=========|=====================|\n");
        if (sub.jmlbeli1>0)
        {
        printf("|    Soto\t|     3500\t|    %d\t  |  Rp.%d\t\t|",menu_mak.soto,sub.jmlbeli1);
        }
                if (sub.jmlbeli2>0)
        {
        printf("\n|    Bakso\t|     7500\t|    %d\t  |  Rp.%d\t\t|",menu_mak.bakso,sub.jmlbeli2);
        }
                if (sub.jmlbeli3>0)
        {
        printf("\n|    Pecel\t|     4000\t|    %d\t  |  Rp.%d\t\t|",menu_mak.pecel,sub.jmlbeli3);
        }
                if (sub.jmlbeli4>0)
        {
        printf("\n|    Mie Ayam\t|     6500\t|    %d\t  |  Rp.%d\t\t|",menu_mak.mie_ayam,sub.jmlbeli4);
        }
                if (sub.jmlbeli5>0)
        {
        printf("\n|    Gado2\t|     4500\t|    %d\t  |  Rp.%d\t\t|",menu_mak.gado2,sub.jmlbeli5);
        }
                if (sub.jmlbeli6>0)
        {
        printf("\n|    Es Teh\t|     1500\t|    %d\t  |  Rp.%d\t\t|",menu_min.esteh,sub.jmlbeli6);
        }
                if (sub.jmlbeli7>0)
        {
        printf("\n|    Es Jeruk\t|     2500\t|    %d\t  |  Rp.%d\t\t|",menu_min.esjeruk,sub.jmlbeli7);
        }
                if (sub.jmlbeli8>0)
        {
        printf("\n|    Es Sirup\t|     2000\t|    %d\t  |  Rp.%d\t\t|",menu_min.essirup,sub.jmlbeli8);
        }
                if (sub.jmlbeli9>0)
        {
        printf("\n|    Sogem\t|     5000\t|    %d\t  |  Rp.%d\t\t|",menu_min.sogem,sub.jmlbeli9);
        }
                if (sub.jmlbeli10>0)
        {
        printf("\n|    Es Klp Md\t|     3500\t|    %d\t  |  Rp.%d\t\t|",menu_min.esklamud,sub.jmlbeli10);
        }
        printf("\n|_______________________________________________________________|");
        printf("\n| Total Keseluruhan = %d\t\t\t\t\t|", sub.totalharga);
        printf("\n| Uang bayar        = %d\t\t\t\t\t|", sub.bayar);
        printf("\n| Kembalian         = %d\t\t\t\t\t|", sub.kembalian);
        printf("\n|                                                               |");
        printf("\n|                                                               |");
        printf("\n| Waktu/Hari : %s|", ctime (&ambil_waktu));
        printf("| Perhatian : Barang yang dibeli tidak bisa dikembalikan!\t|");
        printf("\n|                                                               |\n");
        printf("-----------------------------------------------------------------\n");


    }

Komentar

Postingan populer dari blog ini

Program Dengan Menggunakan Fungsi Operasi String