Saturday, June 15, 2019

Membuat Program Toko Buku dengan Array,Struct,Fungsi || Bahasa C


Program Penjualan Buku 


·        Menampilkan Daftar pilihan
-Daftar Komik(1)
-Tampilkan Hasil Penjualan(2)
-Menu Keluar(3)

·         Pilih Menu(1)
-Nomor Buku
-Judul Buku
-Tahun Terbit
-Harga

·        Output Menu (1)
-Judul
-Tahun
-Harga
-Jumlah

Beli Lagi ( Y / T )

·        Output Menu (2)
-Judul
-Tahun
-Harga
-Jumlah
-Total Biaya
-Pembayaran
-Kembalian

·        Keluar



    macam - macam tipe data apa saja yang di pakai dalam program struk kasir beserta penjelasan dan fungsi dari tipe - tipe data tersebut :

v  Header 

1. Header <stdio.h>  digunakan sebagai inputan dan outputan dan berfungsi untuk menampilkan perintah:


Printf
Merupakan fungsi keluaran. Bentuk umum : printf (“tulisan”);
Scanf
Merupakan fungsi masukan . Bentuk umum : scanf (“%c”, karakter);



2.   Header <windows.h> Fungsinya adalah untuk memanggil perintah-perintah yang ada pada command prompt  seperti echo, color, attrib, dll

Fungsi gotoxy digunakan untuk menempatkan kursor ditempat yang tidak dapat di capai bila kita hanya menggunakan sekuensi program saja. Jika kita gunakan gotoxy, maka kita dapat meletakan kursor kita dimana saja sesuai dengan titik koorninatnya.

Fungsi gotoxy mempunyai dua parameter. Parameter tersebut adalah koordinat dimana kita ingin meletakan kursor. Titik pojok kiri atas mempunyai titik koordinat [0,0]. Jika ingin menggeser kekanan maka x ditambahkan sesuai dengan posisi yang kmu inginkan. Jika ingin menggeser ke bawah maka y ditambahkan.

·        Membuat Titik Kordinat

Fungsi gotoxy digunakan untuk menempatkan kursor ditempat yang tidak dapat di capai bila kita hanya menggunakan sekuensi program saja. Jika kita gunakan gotoxy, maka kita dapat meletakan kursor kita dimana saja sesuai dengan titik koorninatnya.
      COORD kordinat={0,0};
      void gotoxy(int x, int y)
     {
             kordinat.X=x;
             kordinat.Y=y;
             SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),kordinat);
      }


·        Membuat Array Of Struct
   Array Merupakan Deretan data yang tipenya sama, sedangkan Struct merupakan kelompok data yang bertipe berbeda. jika ingin membuat suatu deretan data yang tipenya berbeda maka digunakan gabungan antara array dan struct.


       struct datakomik
      {
             char *merek, *tipe;
             int harga, total;
             int jumlah;
      };
       struct datakomik data[20];

·        Deklarasi
     Digunakan untuk menginput/masukan tipe data :

     int i,n,no, bayar, kembali;
     int total_biaya=0;


·        Membuat Fungsi

Digunakan untuk mengerjakan suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya.

void jual()
{

    int no;
    i=1;
    char lagi;
    do{
    //int i=1;
    printf("\nInput no komik : "); scanf("%d",&no);
    if (no==1)
    {
        data[i].merek="Bahasa Indonesia";
        data[i].tipe="2016";
        data[i].harga=53000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : ");
                        scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;

    } else
    if (no==2)
    {
        data[i].merek="Bahasa Inggris";
        data[i].tipe="2016";
        data[i].harga=42000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;
    }else
    if (no==3)
    {
        data[i].merek="Matematika";
        data[i].tipe="2017";
        data[i].harga=38000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;
    }else
    if (no==4)
    {
        data[i].merek="IPA";
        data[i].tipe="2017";
        data[i].harga=45000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;
    }else
    if (no==5)
    {
        data[i].merek="IPS";
        data[i].tipe="2018";
        data[i].harga=39000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;
        }else
    if (no==6)
    {
        data[i].merek="Bahasa Jepang";
        data[i].tipe="2018";
        data[i].harga=36000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;

    }

    i++;

    //total_biaya=data[i].total;
    printf("\nBeli lagi (Y/T) : "); scanf("%s",&lagi); //fflush(stdin);
    }while (lagi!='T');
    getch();
}

void output()
{
    system("cls");
       printf("+==========================================================================+\n");
    printf("| No |    Judul   |    Tahun     |     Harga    | Jumlah |       Total      |\n");
    printf("|-------------------------------------------------------|------------------|\n");
    for(i=1;i<=n;i++)
    {
        printf("|    |            |             |              |        | Rp.              |\n");
        gotoxy(3, i+2); printf("%d\n",i);
        gotoxy(8, i+2); printf("%s\n", data[i].merek);
        gotoxy(20, i+2); printf("%s\n", data[i].tipe);
        gotoxy(35, i+2); printf("%d\n", data[i].harga);
        gotoxy(50, i+2); printf("%d\n", data[i].jumlah);
        gotoxy(62, i+2); printf("%d\n", data[i].total);
        //n=1;
    }
    printf("|-------------------------------------------------------|------------------|\n");
    printf("|                                           Total Biaya | Rp.              |\n");
    printf("|-------------------------------------------------------|------------------|\n");
    printf("|                                           Pembayaran  | Rp.              |\n");
    printf("|                                           Kembalian   | Rp.              |\n");
    printf("+==========================================================================+\n");
    gotoxy(62, i+3); printf("%d\n", total_biaya);
    gotoxy(62, i+5); scanf("%i", &bayar);
    if(bayar<total_biaya){
       gotoxy(62, i+6);printf("--------");
       gotoxy(30, i+8);printf("Maaf, uang anda tidak mencukupi");
    }
    else
    {
       kembali=bayar-total_biaya;fflush(stdin);
       gotoxy(62, i+6);  printf("%d", kembali);
    }

    getch();
}

void main()
{
    int pil;
    do{
        system("cls");
        printf("+================================+\n");
        printf("|         PENJUALAN BUKU         |\n");
        printf("|--------------------------------|\n");
        printf("| 1. Daftar BUKU                 |\n");
        printf("| 2. Tampilkan hasil penjualan   |\n");
        printf("| 0. Keluar                      |\n");
        printf("|--------------------------------|\n");
        printf("| Pilih menu :                   |\n");
        printf("+================================+\n");
        gotoxy(15,7); scanf("%d",&pil);
        switch(pil)
        {
            case 1 : {daftar(); break;}
            case 2 : {output(); break;}
            case 0 : break;
            default : gotoxy(1,9); printf("Pilihan salah"); getch();
        }
    }while (pil!=0);
}






·        Source Code

#include <stdio.h>
#include <windows.h>

COORD kordinat={0,0};
void gotoxy(int x, int y)
{
    kordinat.X=x;
    kordinat.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),kordinat);
}
struct datakomik
{
    char *merek, *tipe;
    int harga, total;
    int jumlah;
};
struct datakomik data[20];
                                    //array of record
int i,n,no, bayar, kembali;
int total_biaya=0;

void daftar()
{

    system("cls");
    printf("+===========================================================+\n");
    printf("| No |            Judul           |Tahun Terbit|    Harga   |\n");
    printf("|===========================================================|\n");
    printf("| 1  |       Bahasa Indonesia     |     2016   | Rp. 53000  |\n");
    printf("| 2  |       Bahasa Inggris       |     2016   | Rp. 42000  |\n");
    printf("| 3  |         Matematika         |     2017   | Rp. 38000  |\n");
    printf("| 4  |             IPA            |     2017   | Rp. 45000  |\n");
    printf("| 5  |             IPS            |     2018   | Rp. 39000  |\n");
    printf("| 6  |        Bahasa Jepang       |     2018   | Rp. 36000  |\n");
    printf("|----|----------------------------|------------|------------|\n");
    printf("+===========================================================+\n");
    jual();
    getch();
}

void jual()
{

    int no;
    i=1;
    char lagi;
    do{
    //int i=1;
    printf("\nInput no komik : "); scanf("%d",&no);
    if (no==1)
    {
        data[i].merek="Bahasa Indonesia";
        data[i].tipe="2016";
        data[i].harga=53000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : ");
                        scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;

    } else
    if (no==2)
    {
        data[i].merek="Bahasa Inggris";
        data[i].tipe="2016";
        data[i].harga=42000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;
    }else
    if (no==3)
    {
        data[i].merek="Matematika";
        data[i].tipe="2017";
        data[i].harga=38000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;
    }else
    if (no==4)
    {
        data[i].merek="IPA";
        data[i].tipe="2017";
        data[i].harga=45000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;
    }else
    if (no==5)
    {
        data[i].merek="IPS";
        data[i].tipe="2018";
        data[i].harga=39000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;
        }else
    if (no==6)
    {
        data[i].merek="Bahasa Jepang";
        data[i].tipe="2018";
        data[i].harga=36000;
        printf("Judul  : %s\n",data[i].merek);
        printf("Tahun  : %s\n",data[i].tipe);
        printf("Harga  : %d\n",data[i].harga);
        printf("Jumlah : "); scanf("%d",&data[i].jumlah); fflush(stdin);
        data[i].total=data[i].harga*data[i].jumlah;
        total_biaya=data[i].total+total_biaya;
        n=n+1;

    }

    i++;

    //total_biaya=data[i].total;
    printf("\nBeli lagi (Y/T) : "); scanf("%s",&lagi); //fflush(stdin);
    }while (lagi!='T');
    getch();
}

void output()
{
    system("cls");
       printf("+==========================================================================+\n");
    printf("| No |    Judul   |    Tahun     |     Harga    | Jumlah |       Total      |\n");
    printf("|-------------------------------------------------------|------------------|\n");
    for(i=1;i<=n;i++)
    {
        printf("|    |            |             |              |        | Rp.              |\n");
        gotoxy(3, i+2); printf("%d\n",i);
        gotoxy(8, i+2); printf("%s\n", data[i].merek);
        gotoxy(20, i+2); printf("%s\n", data[i].tipe);
        gotoxy(35, i+2); printf("%d\n", data[i].harga);
        gotoxy(50, i+2); printf("%d\n", data[i].jumlah);
        gotoxy(62, i+2); printf("%d\n", data[i].total);
        //n=1;
    }
    printf("|-------------------------------------------------------|------------------|\n");
    printf("|                                           Total Biaya | Rp.              |\n");
    printf("|-------------------------------------------------------|------------------|\n");
    printf("|                                           Pembayaran  | Rp.              |\n");
    printf("|                                           Kembalian   | Rp.              |\n");
    printf("+==========================================================================+\n");
    gotoxy(62, i+3); printf("%d\n", total_biaya);
    gotoxy(62, i+5); scanf("%i", &bayar);
    if(bayar<total_biaya){
       gotoxy(62, i+6);printf("--------");
       gotoxy(30, i+8);printf("Maaf, uang anda tidak mencukupi");
    }
    else
    {
       kembali=bayar-total_biaya;fflush(stdin);
       gotoxy(62, i+6);  printf("%d", kembali);
    }

    getch();
}

void main()
{
    int pil;
    do{
        system("cls");
        printf("+================================+\n");
        printf("|         PENJUALAN BUKU         |\n");
        printf("|--------------------------------|\n");
        printf("| 1. Daftar BUKU                 |\n");
        printf("| 2. Tampilkan hasil penjualan   |\n");
        printf("| 0. Keluar                      |\n");
        printf("|--------------------------------|\n");
        printf("| Pilih menu :                   |\n");
        printf("+================================+\n");
        gotoxy(15,7); scanf("%d",&pil);
        switch(pil)
        {
            case 1 : {daftar(); break;}
            case 2 : {output(); break;}
            case 0 : break;
            default : gotoxy(1,9); printf("Pilihan salah"); getch();
        }
    }while (pil!=0);
}


contoh

Wahana Jaya WAHANA JAYA ...