Membuat Aplikasi Kasir Restoran dengan C++

Kali ini saya tidak membahas tentang Android, tetapi kali ini saya akan bahas tentang C++. Saya akan membahas cara Membuat Aplikasi Kasir Restoran dengan C++. Disini saya menggunakan Aplikasi MinGW Developer Studio. Langsung saja kita bahas sama-sama ^_^

Peratama kalian buat project dengan cara klik File => New.. Lalu pilih Win32 Console Application pada tab Projects. Dan isi pada bagian Project name: dengan nama Project yang ingin dibuat, misalnya KasirRestoran. Dibagian Location: kalian biarkan default saja. Kemudian pilih OK.


Setelah selesai membuat project.. Pada bagian FileView yang ada pada sisi kiri Window, kalian buat Source Files baru. Dengan cara klik Source Files nya lalu kalian klik File => New.. Lalu pilih C/C++ Source File pada tab Files. Dan isi pada bagian File Name: dengan nama File C++ yang ingin dibuat, misalnya main. Dibagian Location: kalian biarkan default saja. Dan ceklis pada box Add to project. Kemudian pilih OK.


Jika sudah semua nya, maka akan terlihat seperti ini.


Sekarang mulai kebagian coding nya.. Disetiap baris kode sudah saya berikan komentar tentang penjelasan kode tersebut.

#include <iostream.h>
/* Header file yang digunakan untuk menggunakan perintah
   cin, cout, strlen, endl. */


void tengah(int lebar, char* teks) {
/* Fungsi untuk membuat tulisan berada di tengah aplikasi console.
   Terdapat dua parameter, yaitu lebar dan teks. */
 int i;
 /* Deklarasi variable i, yang akan digunakan untuk perulangan. */
 int panjang = strlen(teks);
 /* Deklarasi variable panjang, dengan nilai strlen(s).
    strlen adalah fungsi untuk menghitung
    panjang dari sebuah character.
    Dengan isi teks, mengambil dari parameter teks
    yang ada pada fungsi tengah. */
 int posisi = (int)((lebar-panjang)/2);
 /* Deklarasi variable posisi, dengan nilai diambil
    dari lebar dikurang panjang teks lalu dibagi dua.*/
 for(i=0;i<posisi;i++){
 /* Statement perulangan untuk membuat teks sebanyak yang dibutuhkan.
    - Arti i=0 adalah nilai awal dari i adalah 0.
    - Arti i<posisi adalah maksimal pengulangan yang dilakukan
      sebanyak nilai yang telah didapatkan pada variable posisi.
    - Arti i++ adalah menambahkan nilai setiap
      pengulangan yang sudah di eksekusi. */
  cout<<" ";
  /* Menampilkan spasi sebanyak nilai yang
     didapatkan pada perulangan diatas. */
 }
 cout<<teks;
 /* Menampilkan teks yang diambil dari parameter
    teks yang ada pada fungsi tengah. */
}


void garis(int nilai){
/* Fungsi perulangan untuk membuat tulisan sebanyak yang dibutuhkan.
   Terdapat sebuah parameter, yaitu nilai. */
 int i;
 /* Deklarasi variable i, yang akan digunakan untuk perulangan. */
 for(i=0;i<nilai;i++){
 /* Statement perulangan untuk membuat teks sebanyak yang dibutuhkan.
    - Arti i=0 adalah nilai awal dari i adalah 0.
    - Arti i<nilai adalah maksimal pengulangan yang dilakukan
      sebanyak nilai yang telah didapatkan pada parameter nilai.
    - Arti i++ adalah menambahkan nilai setiap
      pengulangan yang sudah di eksekusi. */
  cout<<"=";
  /* Menampilkan = sebanyak nilai yang
     didapatkan pada perulangan diatas. */
 }
}


int main(){
/* Fungsi utama atau main program yang akan dibuat. */
 kasir:
 /* Label yang digunakan untuk melompat dari baris yang diinginkan. */
 tengah(80, "Menu Restoran Tegal\n");
 /* Menampilkan teks ditengah dengan fungsi tengah yang telah dibuat.
    - Arti 80 adalah lebar yang dipakai untuk menentukan lebar
      dari console. Default console biasanya adalah 80.
    - "Menu Restoran Tegal\n" adalah teks yang akan ditampilkan.
    - Arti \n adalah untuk membuat baris baru. */
 cout<<endl;
 /* Membuat baris baru. */
 garis(80);
 /* Menampilkan teks dengan fungsi perulangan yang telah dibuat.
    - Arti 80 adalah sebagai nilai perulangan
      yang akan menampilkan teks sebanyak 80 kali. */
 cout<<endl;
 /* Membuat baris baru. */
 const char* makanan [16] = {
  "Sate Wedus",
  "Nasi Lengko",
  "Soto Tauco",
  "Tahu Aci",
  "Tahu Pletok",
  "Nasi Bogana",
  "Ayam Goreng",
  "Ayam Kalasan",
  "Pecak Cucut",
  "Sate Ayam",
  "Nasi Campur",
  "Nasi Kuning",
  "Nasi Langgi",
  "Nasi Rames",
  "Nasi Opor",
  "Nasi Bakmoy"
 };
 /* Deklarasi variable array makanan.
       - Arti const char* adalah tipe data yang disimpan di array dalam
      bentuk karakter tapi dalam bentuk banyak (lebih dari satu).
    - Arti [16] adalah untuk menginisialisasi array atau jumlah
      data yang disimpan di dalam array. */
 const char* harga_makanan [16] = {
  "Rp.45000",
  "Rp.17000",
  "Rp.18000",
  "Rp.17500",
  "Rp.20000",
  "Rp.22000",
  "Rp.16000",
  "Rp.16000",
  "Rp.13000",
  "Rp.27000",
  "Rp.22000",
  "Rp.22000",
  "Rp.22000",
  "Rp.22000",
  "Rp.22000",
  "Rp.19000"
 };
 /* Deklarasi variable array harga_makanan.
       - Arti const char* adalah tipe data yang disimpan di array dalam
      bentuk karakter tapi dalam bentuk banyak (lebih dari satu).
    - Arti [16] adalah untuk menginisialisasi array atau jumlah
      data yang disimpan di dalam array. */
 const char* minuman [16] = {
  "ES Teh Tawar",
  "ES Teh Manis",
  "Teh Tawar",
  "Teh Manis",
  "ES Jeruk",
  "JUS Jambu",
  "JUS Jeruk",
  "JUS Tomat",
  "JUS Sirsak",
  "JUS Melon",
  "JUS Alpukat",
  "JUS Tape",
  "JUS Mangga",
  "JUS Veggie",
  "JUS Apel",
  "Teh Botol"
 };
 /* Deklarasi variable array minuman.
       - Arti const char* adalah tipe data yang disimpan di array dalam
      bentuk karakter tapi dalam bentuk banyak (lebih dari satu).
    - Arti [16] adalah untuk menginisialisasi array atau jumlah
      data yang disimpan di dalam array. */
 const char* harga_minuman [16] = {
  "Rp.3500",
  "Rp.4000",
  "Rp.2500",
  "Rp.3500",
  "Rp.10000",
  "Rp.10000",
  "Rp.10000",
  "Rp.11000",
  "Rp.12000",
  "Rp.10000",
  "Rp.12000",
  "Rp.10000",
  "Rp.12000",
  "Rp.12000",
  "Rp.15000",
  "Rp.5000"
 };
 /* Deklarasi variable array harga_minuman.
       - Arti const char* adalah tipe data yang disimpan di array dalam
      bentuk karakter tapi dalam bentuk banyak (lebih dari satu).
    - Arti [16] adalah untuk menginisialisasi array atau jumlah
      data yang disimpan di dalam array. */
 cout<<"Makanan :\t\t\t\t"<<"Minuman :\n"<<endl;
 /* Untuk menampilkan tulisan Makanan : dan Minuman :
    - Arti \t adalah untuk membuat Tabulasi Horizontal.
    - Arti \n adalah untuk membuat Baris Baru. */
 for(int menu=0;menu<16;menu++){
 /* Fungsi perulangan untuk membuat daftar Makanan dan Minuman
    berdasarkan data pada Array yang telah dibuat. 
    - Arti menu=0 adalah nilai awal dari i adalah 0.
    - Arti menu<16 adalah maksimal pengulangan yang dilakukan
      sebanyak 16 kali.
    - Arti menu++ adalah menambahkan nilai setiap
      pengulangan yang sudah di eksekusi. */
  cout<<menu+1<<". "<<makanan[menu]<<"\t\t"<<harga_makanan[menu]<<"\t"<<menu+1<<". "<<minuman[menu]<<"\t\t"<<harga_minuman[menu]<<endl;
  /* - Arti menu+1 adalah untuk membuat nomer. Ditambah satu
             karena menu dimulai dari 0, bukan dari satu.
     - Arti makanan[menu] adalah untuk menampilkan data yang diambil
       dari array makanan.
           - Arti harga_makanan[menu] adalah untuk menampilkan data yang diambil
       dari array harga_makanan.
     - Arti minuman[menu] adalah untuk menampilkan data yang diambil
       dari array minuman.
     - Arti harga_minuman[menu] adalah untuk menampilkan data yang diambil
       dari array harga_minuman.*/
 }
 cout<<endl;
 /* Membuat baris baru. */
 garis(80);
 /* Menampilkan teks dengan fungsi perulangan yang telah dibuat.
    - Arti 80 adalah sebagai nilai perulangan
      yang akan menampilkan teks sebanyak 80 kali. */
 int a,b,c,d,e = 0,f = 0,g,h,i,j,k = 0,l = 0,m,n = 0,o;
 /* Deklarasi variable :
    - a untuk membuat perulangan makanan yang dibeli.
       - b untuk menyimpan jumlah makanan yang dibeli.
    - c untuk menyimpan harga makanan yang dibeli.
    - d untuk menyimpan jumlah yang dipesan per makanan.
       - e untuk menyimpan hasil perkalian dari harga dan jumlah pesanan makanan.
    - f untuk menyimpan hasil penjumlahan semua harga makanan.
    - g untuk membuat perulangan minuman yang dibeli.
       - h untuk menyimpan jumlah minuman yang dibeli.
    - i untuk menyimpan harga minuman yang dibeli.
    - j untuk menyimpan jumlah yang dipesan per minuman.
       - k untuk menyimpan hasil perkalian dari harga dan jumlah pesanan minuman.
    - l untuk menyimpan hasil penjumlahan semua harga minuman.
    - m untuk menyimpan hasil penjumlahan total harga makanan dan minuman.
    - n untuk menyimpan harga pembayaran.
    - o untuk menyimpan hasil pengurangan dari harga pembayaran dengan total harga.*/
 cout<<"Masukkan jumlah makanan yang dibeli : ";
 /* Menampilkan tulisan Masukkan jumlah makanan yang dibeli : */
 cin>>b;
 /* Meminta inputan user untuk variable b. */
 cout<<endl;
 /* Membuat baris baru. */
 if(!(cin.fail())){
 /* Melakukan pengecekan jika inputan yang diberi tidak sesuai perintah. */
  for(a=1;a<=b;a++){
  /* Membuat perulangan meminta harga dan jumlah makanan yang dipesan. */
   cout<<"Harga makanan ke-"<<a<<"\t : ";
   /* Menampilkan tulisan Harga makanan ke-(Berdasarkan urutan makanan) : */
   cin>>c;
   /* Meminta inputan user untuk variable c. */
   cout<<endl;
   /* Membuat baris baru. */
   if(cin.fail()){
   /* Melakukan pengecekan jika inputan yang diberi tidak sesuai perintah. */
    cout<<"Tolong masukan dalam bentuk angka!!\n"<<endl;
    /* Menampilkan pesan karena tidak memasukan sesuai perintah. */
    cin.clear();
    /* Menghapus kembali hasil inputan. */
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    /* Untuk melakukan ignore terhadap newline \n agar tidak masuk kedalam input berikut nya. */
    system("PAUSE");
    /* Menunggu user untuk melanjutkan proses berikutnya. */
    goto kasir;
    /* Melompat ke baris di statement dengan label kasir. */
   }
   cout<<"Jumlah yang dipesan \t : ";
   /* Menampilkan tulisan Jumlah yang dipesan : */
   cin>>d;
   /* Meminta inputan user untuk variable d. */
   cout<<endl;
   /* Membuat baris baru. */
   if(cin.fail()){
   /* Melakukan pengecekan jika inputan yang diberi tidak sesuai perintah. */
    cout<<"Tolong masukan dalam bentuk angka!!\n"<<endl;
    /* Menampilkan pesan karena tidak memasukan sesuai perintah. */
    cin.clear();
    /* Menghapus kembali hasil inputan. */
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    /* Untuk melakukan ignore terhadap newline \n agar tidak masuk kedalam input berikut nya. */
    system("PAUSE");
    /* Menunggu user untuk melanjutkan proses berikutnya. */
    goto kasir;
    /* Melompat ke baris di statement dengan label kasir. */
   }
   e=c*d;
   /* Mengalikan hasil dari inputan Harga dan Jumlah makanan yang dipesan. */
   f+=e;
   /* Menjumlahkan semua hasil harga makanan. */
  }
  garis(40);
  /* Menampilkan teks dengan fungsi perulangan yang telah dibuat.
        - Arti 40 adalah sebagai nilai perulangan
          yang akan menampilkan teks sebanyak 40 kali. */
  cout<<endl;
  /* Membuat baris baru */
  cout<<"Total Harga Makanan \t : Rp."<<f<<endl;
  /* Menampilkan tulisan Total Harga Makanan : Rp.(Berdasarkan hasil harga makanan) */
  cout<<endl;
  /* Membuat baris baru */
 } else {
  cout<<"Tolong masukan dalam bentuk angka!!\n"<<endl;
  /* Menampilkan pesan karena tidak memasukan sesuai perintah. */
  cin.clear();
  /* Menghapus kembali hasil inputan. */
        cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  /* Untuk melakukan ignore terhadap newline \n agar tidak masuk kedalam input berikut nya. */
  system("PAUSE");
  /* Menunggu user untuk melanjutkan proses berikutnya. */
  goto kasir;
  /* Melompat ke baris di statement dengan label kasir. */
 }
 cout<<"Masukkan jumlah minuman yang dibeli : ";
 /* Menampilkan tulisan Masukkan jumlah minuman yang dibeli : */
 cin>>h;
 /* Meminta inputan user untuk variable h. */
 cout<<endl;
 /* Membuat baris baru */
 if(!(cin.fail())){
 /* Melakukan pengecekan jika inputan yang diberi tidak sesuai perintah. */
  for(g=1;g<=h;g++){
  /* Membuat perulangan meminta harga dan jumlah minuman yang dipesan. */
   cout<<"Harga minuman ke-"<<g<<"\t : ";
   /* Menampilkan tulisan Harga minuman ke-(Berdasarkan urutan minuman) : */
   cin>>i;
   /* Meminta inputan user untuk variable i. */
   cout<<endl;
   /* Membuat baris baru */
   if(cin.fail()){
   /* Melakukan pengecekan jika inputan yang diberi tidak sesuai perintah. */
    cout<<"Tolong masukan dalam bentuk angka!!\n"<<endl;
    /* Menampilkan pesan karena tidak memasukan sesuai perintah. */
    cin.clear();
    /* Menghapus kembali hasil inputan. */
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    /* Untuk melakukan ignore terhadap newline \n agar tidak masuk kedalam input berikut nya. */
    system("PAUSE");
    /* Menunggu user untuk melanjutkan proses berikutnya. */
    goto kasir;
    /* Melompat ke baris di statement dengan label kasir. */
   }
   cout<<"Jumlah yang dipesan \t : ";
   /* Menampilkan tulisan Jumlah yang dipesan : */
   cin>>j;
   /* Meminta inputan user untuk variable j. */
   cout<<endl;
   /* Membuat baris baru */
   if(cin.fail()){
   /* Melakukan pengecekan jika inputan yang diberi tidak sesuai perintah. */
    cout<<"Tolong masukan dalam bentuk angka!!\n"<<endl;
    /* Menampilkan pesan karena tidak memasukan sesuai perintah. */
    cin.clear();
    /* Menghapus kembali hasil inputan. */
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    /* Untuk melakukan ignore terhadap newline \n agar tidak masuk kedalam input berikut nya. */
    system("PAUSE");
    /* Menunggu user untuk melanjutkan proses berikutnya. */
    goto kasir;
    /* Melompat ke baris di statement dengan label kasir. */
   }
   k=i*j;
   /* Mengalikan hasil dari inputan Harga dan Jumlah minuman yang dipesan. */
   l+=k;
   /* Menjumlahkan semua hasil harga makanan. */
  }
  garis(40);
  /* Menampilkan teks dengan fungsi perulangan yang telah dibuat.
        - Arti 40 adalah sebagai nilai perulangan
          yang akan menampilkan teks sebanyak 40 kali. */
  cout<<endl;
  /* Membuat baris baru */
  cout<<"Total Harga Minuman \t : Rp."<<l<<endl;
  /* Menampilkan tulisan Total Harga Minuman : Rp.(Berdasarkan hasil harga minuman) */
  cout<<endl;
  /* Membuat baris baru */
 } else {
  cout<<"Tolong masukan dalam bentuk angka!!\n"<<endl;
  /* Menampilkan pesan karena tidak memasukan sesuai perintah. */
  cin.clear();
  /* Menghapus kembali hasil inputan. */
        cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  /* Untuk melakukan ignore terhadap newline \n agar tidak masuk kedalam input berikut nya. */
  system("PAUSE");
  /* Menunggu user untuk melanjutkan proses berikutnya. */
  goto kasir;
  /* Melompat ke baris di statement dengan label kasir. */
 }
 m=f+l;
 /* Menjumlahkan hasil dari total harga Makanan dan Minuman. */
 cout<<"Harga Total \t\t : Rp."<<m<<endl;
 /* Menampilkan tulisan Harga Total : Rp.(Berdasarkan harga total yang didapat) */
 cout<<"Membayar sejumlah \t : Rp.";
 /* Menampilkan tulisan Membayar sejumlah : Rp. */
 cin>>n;
 /* Meminta inputan user untuk variable n. */
 cout<<endl;
 /* Membuat baris baru */
 o=n-m;
 /* Mengurangkan harga pembayaran dengan total harga. */
 garis(40);
 /* Menampilkan teks dengan fungsi perulangan yang telah dibuat.
  - Arti 40 adalah sebagai nilai perulangan
    yang akan menampilkan teks sebanyak 40 kali. */
 cout<<endl;
 /* Membuat baris baru */
 if(o>0){
 /* Melakukan pengecekan jika nilai dari o lebih dari 0 */
  cout<<"Kembaliannya \t\t : Rp."<<o;
  /* Maka akan menampilkan tulisan Kembaliannya : Rp.(Berdasarkan dari pengurangan pembayaran dengan total harga). */
 } else if(o==0){
   /* Melakukan pengecekan jika nilai dari o sama dengan 0 */
  cout<<"Uangnya Pas";
  /* Maka akan menampilkan tulisan Uangnya Pas. */
 } else {
   /* Jika kondisi tidak atau bukan seperti yang lebih dari 0 atau sama dengan 0 */
  o=-o;
  /* Merubah nilai dari negative menjadi positive */
  cout<<"Uang Kurang \t\t : Rp."<<o;
  /* Maka akan menampilkan tulisan Uang Kurang : Rp.(Berdasarkan dari pengurangan pembayaran dengan total harga). */
 }
 cout<<endl<<endl;
 /* Membuat baris baru */
 tengah(80, "Terimakasih Telah Membeli\n");
 /* Menampilkan teks ditengah dengan fungsi tengah yang telah dibuat.
    - Arti 80 adalah lebar yang dipakai untuk menentukan lebar
      dari console. Default console biasanya adalah 80.
    - "Terimakasih Telah Membeli\n" adalah teks yang akan ditampilkan.
    - Arti \n adalah untuk membuat baris baru. */
 tengah(80, "^__^\n");
 /* Menampilkan teks ditengah dengan fungsi tengah yang telah dibuat.
    - Arti 80 adalah lebar yang dipakai untuk menentukan lebar
      dari console. Default console biasanya adalah 80.
    - "^__^\n" adalah teks yang akan ditampilkan.
    - Arti \n adalah untuk membuat baris baru. */
 system("PAUSE");
 /* Menunggu user untuk melanjutkan proses berikutnya. */
 goto kasir;
 /* Melompat ke baris di statement dengan label kasir. */
 return 0;
 /* Mengembalikan nilai 0 ke OS supaya tahu bahwa program(EXIT_SUCCES). */
}

Jika sudah selesai kalian dapat menjalankan programnya dengan cara menekan tombol Ctrl+F5 atau meng klik icon (!) Execute Program yang ada pada menu Toolbar MinGW Developer Studio.

Maka hasil program nya akan seperti berikut:


Terimakasih..