Anda di halaman 1dari 3

// PROGRAM INI SUDAH DIREVISI NAMUN KEMUNGKINAN MASIH ADA BUG.

PROGRAM JUGA
DITAMBAHKAN CATATAN DISETIAP INTI BARISAN KODE

#include<stdio.h>

main()
{
printf("\t=================================================================\n");
printf("\t -=PROGRAM MENU PEMBAYARAN/KASIR MENGGUNAKAN IF-ELSE=-\n");
printf("\t=================================================================\n");
printf("\t Oleh Kelompok 4:\n"); // "\t"= tab "\n"= baris baru/enter
printf("\t - (2107112722) Muhammad Hasbie Rida \n");
printf("\t - (2107112724) Muhammad Iqbal Saleh \n");
printf("\t - (2107112729) Tabah Penantian Adami \n");
printf("\t - (2107112725) Ahmad Al-Alif \n");
printf("\t - (2107112726) Muhammad Thoriq Athallah \n");

char pesanlagi, kartumember, jenis, typo; //inisial karakter/huruf


float sapi, kambing, domba, jml, harga, byk, uang, kembalian, kurang;
//perhitungan kecil
double total, disc; //angka lebih akurat, double = dapat menghitung dibelakang
koma
int sp=140000, kb=120000, db=130000; //harga barang, int = angka

/Daftar menu/
printf("\t=================================================================\n");
printf("\t(1) Sapi/kg = Rp 140.000,-\n"); //"\t"= tab "\n"= baris baru/enter
printf("\t(2) Kambing/kg = Rp 120.000,-\n");
printf("\t(3) Domba/kg = Rp 130.000,-\n");

transaksi: //label utk destinasi goto


printf("\n\tInput nomor barang (1..3) : "); //memasukkan menu pilihan
scanf("%s", &jenis); //memunculkan input data "jenis" dalam bentuk
string/karakter
if(jenis == '1') //jika jenis = 1 (1 = menu sapi)
{ harga = sp; //harga = harga sapi
goto lanjut; } //lompat ke label "lanjut" (bawah)
else
if(jenis == '2') //jika jenis = 2 (2 = menu kambing)
{ harga = kb; //harga = harga kambing
goto lanjut; } //lompat ke label "lanjut" (bawah)
else
if(jenis == '3') //jika jenis = 3 (3 = menu domba)
{ harga = db; //harga = harga domba
goto lanjut; } //lompat ke label "lanjut" (bawah)
else
{ printf("\tMaaf, barang tersebut tidak ada dalam menu\n"); //jika pilihan
menyimpang
goto transaksi; } //lompat ke label "transaksi" (atas)

lanjut: //label utk destinasi goto


byk=0; //mereset banyak kuantitas menu (byk) menjadi 0
printf("\tBanyak barang : "); //mengetahui banyak byk
scanf("%f", &byk); //memunculkan input data "byk" dalam bentuk angka
pecahan
if(byk >= 1) //jika byk=angka yang masuk akal dalam pesanan
(minimal 1)
jml = byk*harga; //jumlah_harga = banyak_barang * harga
else
{
typo = getchar();

/* pada dasarnya typo = getchar() digunakan untuk membaca data tipe char,
namun sebenarnya digunakan untuk menghindari loop akibat goto.
Terjadi jika banyak barang dimasukkan dengan input selain angka/pilihan
menyimpang */

printf("\tJumlah barang tidak valid\n\n");


goto lanjut; //lompat ke label "lanjut" (atas)
}
printf("\n\tHarga Pembelian = Rp.%8.2f", jml); //menampilkan data
jumlah_harga
printf("\n\t======================================");

menu:
printf("\n\n\tApakah anda ingin memesan menu lainnya? (y/n)\n\t");
scanf("%c", &pesanlagi); //memunculkan input data "pesanlagi" dalam
bentuk char
pesanlagi=getchar(); //membaca data tipe char dari "pesanlagi"
if(pesanlagi == 'Y'||pesanlagi == 'y')
{ total = total + jml; //total_harga_(baru) = total_harga_(lama) +
jumlah_harga
goto transaksi; } //lompat ke label "transaksi" (atas)
if(pesanlagi == 'N'||pesanlagi == 'n')
{ total = total + jml; //total_harga_(baru) = total_harga_(lama) +
jumlah_harga
printf("\t======================================");
printf("\n\tTotal Pembelian = Rp.%8.2f", total); } //menampilkan data
total_harga_(baru)
else
printf("\tPilihan tidak valid\n"); //jika pilihan menyimpang
goto menu; //lompat ke label "menu" (atas)

kartu: //label utk destinasi goto


if (total>300000) //jika total_harga_(baru) > Rp 300.000
{
printf("\n\n\tApakah anda memiliki kartu member? (y/n)\n\t");
scanf("%c", &kartumember); //memunculkan input data "kartumember" dalam
bentuk char
kartumember=getchar(); //membaca data tipe char dari "kartumember"
if(kartumember=='Y'||kartumember=='y')
disc = 0.1*total; //ada kartu member = diskon 10%
else
if(kartumember=='N'||kartumember=='n')
disc = 0; //tidak ada kartu member = tidak ada diskon
else
printf("\tPilihan tidak valid\n"); //jika pilihan menyimpang
goto kartu; //lompat ke label "kartu" (atas)
}

total=total-disc; //total_harga_(akhir) = total_harga_(baru) -


diskon
printf("\n\n\tMasukkan jumlah uang anda : ");
scanf("%f", &uang); //memunculkan input data "uang" dalam bentuk
angka pecahan
kembalian=uang-total; //uang_kembalian = uang_pembayaran -
total_harga_(akhir)
if(uang>=total) //jika uang_pembayaran > total_harga_(akhir)
{ printf("\n\tDiscount = Rp.%8.2f", disc);
printf("\n\tTotal Harga = Rp.%8.2f", total); //total harga pesanan
printf("\n\tUang anda = Rp.%8.2f", uang); //uang yang dibayarkan
printf("\n\tKembalian = Rp.%8.2f", kembalian); //uang lebih, ada
kembalian
printf("\n\t=======================================");
printf("\n\t Terima kasih atas kunjungan Anda ! ");
printf("\n\t======================================="); }
else //jika uang_pembayaran < total_harga_(akhir)
{ kurang=-1*kembalian; //uang kembalian dijadikan positif jadi jumlah
uang kurang
printf("\nDiscount = Rp.%8.2f", disc);
printf("\nTotal Harga = Rp.%8.2f", total); //total harga pesanan
printf("\nUang anda = Rp.%8.2f", uang); //uang yang dibayarkan
printf("\nKekurangan = Rp.%8.2f", kurang); //uang kurang, muncul kurangnya
berapa
printf("\n=======================================");
printf("\n Maaf, uang anda belum cukup ");
printf("\n======================================="); }

return 0; //menghindari warning ... tidak ada hubungannya dengan kode program

Anda mungkin juga menyukai