5

Click here to load reader

Perbaikan Script Modul Terakhir (Program Kasir)

Embed Size (px)

DESCRIPTION

Perbaikan Script Modul Terakhir (Program Kasir) yakni dengan menambahkan validasi inputan angka pada Bahasa C++

Citation preview

Page 1: Perbaikan Script Modul Terakhir (Program Kasir)

Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013

1/ 5

Laporan Praktikum TMD04 Pemrograman Bahasa C++

Nama : Sukeipah Yuli Prihatin

email : [email protected]

Laporan : Script Perbaikan Progam Kasir

Program Kasir dengan Validasi Inputan

Source Code: /* Nama : Sukeipah Yuli Prihatin NIM : 4912068 Modul : Program Kasir Validasi Inputan (Jawaban Ujian Bahasa C++) */ #include <iostream> #include <string.h> #include <limits.h> using namespace std; char nama_edit[15]; int harga_edit, jumlah_edit, kode_edit; struct barang{ char nama_barang[15]; int harga_barang, jumlah_barang; }; barang listBarang[5]; int cekRuang(){ int kode_barang=0; bool bendera = false; for(int i=0; i<5; i++){ if(listBarang[i].harga_barang==0 && listBarang[i].jumlah_barang==0){ kode_barang = i; bendera = true; break; } } if(bendera==true){ return kode_barang; }else{ return 5; } } void isiPembelian(){ int nomor = cekRuang(); if(nomor>=0 && nomor<5){ cout<<"Masukkan Nama Barang :"; cin>>listBarang[nomor].nama_barang; bool error=0;

Page 2: Perbaikan Script Modul Terakhir (Program Kasir)

Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013

2/ 5

while(error==0){ cout<<"Masukkan Harga Barang :"; cin>>listBarang[nomor].harga_barang; if (cin.fail()){ cout << "Harap untuk memasukkan dengan angka!" << endl; cin.clear(); cin.ignore(80, '\n'); }else{ error = 1; } } error=0; while(error==0){ cout<<"Masukkan Jumlah Barang :"; cin>>listBarang[nomor].jumlah_barang; if (cin.fail()){ cout << "Harap untuk memasukkan dengan angka!" << endl; cin.clear(); cin.ignore(80, '\n'); }else{ error = 1; } } }else{ cout<<"Sudah Penuh"<<endl; } } void cetakStruk(){ int total=0; cout<<"No.\tKode\tNama\tHarga\tJumlah\tSubTotal"<<endl; for(int i=0;i<5;i++){ cout<<(i+1) <<"\t"<<i <<"\t"<<listBarang[i].nama_barang <<"\t"<<listBarang[i].harga_barang <<"\t"<<listBarang[i].jumlah_barang <<"\t"<<(listBarang[i].harga_barang*listBarang[i].jumlah_barang) <<endl; total += (listBarang[i].harga_barang*listBarang[i].jumlah_barang); } cout<<"Total : "<<total<<endl; } void cariPembelian(){ int kode; bool bendera = false; while(bendera==false){ cout<<"Masukkan kode :"; cin>>kode; if (cin.fail()){ cout << "Harap untuk memasukkan dengan angka!" << endl; cin.clear(); cin.ignore(80, '\n'); }else{ if(kode>=0 && kode<5){ cout<<"Barang yang dicari:"; cout<<"Nama : "<<listBarang[kode].nama_barang<<endl <<"Harga : "<<listBarang[kode].harga_barang<<endl <<"Jumlah : "<<listBarang[kode].jumlah_barang<<endl; kode_edit = kode; strcpy(nama_edit,listBarang[kode].nama_barang);

Page 3: Perbaikan Script Modul Terakhir (Program Kasir)

Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013

3/ 5

harga_edit = listBarang[kode].harga_barang; jumlah_edit = listBarang[kode].jumlah_barang; bendera = true; }else{ cout<<"Kode Invalid"<<endl; } } } //return bendera; } void editPembelian(){ cariPembelian(); //if(benderas==true){ bool bendera = false; int edit; while(bendera==false){ cout<<"Editing? (1) Nama (2) Harga (3) Jumlah (4) Simpan (0) Batal"; cin>>edit; if (cin.fail()){ cout << "Harap untuk memasukkan dengan angka!" << endl; cin.clear(); cin.ignore(80, '\n'); // discard rest of line with limit 80 }else{ bool b_harga=false,b_jumlah=false; switch(edit){ case 0: cout<<"Batal Edit"<<endl; bendera = true; break; case 1: cout<<"Masukkan Nama Baru :"; cin>>nama_edit; break; case 2: while(b_harga==false){ cout<<"Masukkan Harga Baru :"; cin>>harga_edit; if (cin.fail()){ cout << "Harap untuk memasukkan dengan angka!" << endl; cin.clear(); cin.ignore(80, '\n'); }else{ b_harga = true; } } break; case 3: while(b_jumlah==false){ cout<<"Masukkan Jumlah Baru :"; cin>>jumlah_edit; if (cin.fail()){ cout << "Harap untuk memasukkan dengan angka!" << endl; cin.clear(); cin.ignore(80, '\n'); }else{ b_jumlah = true; } } break; case 4: strcpy(listBarang[kode_edit].nama_barang, nama_edit); listBarang[kode_edit].harga_barang = harga_edit;

Page 4: Perbaikan Script Modul Terakhir (Program Kasir)

Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013

4/ 5

listBarang[kode_edit].jumlah_barang = jumlah_edit; cout<<"Editing Berhasil"<<endl; bendera=true; break; default: cout<<"Pilihan Invalid"<<endl; break; } } } } void hapusPembelian(){ cariPembelian(); bool bendera=false; int pilih; while(bendera==false){ cout<<"Anda Yakin Dihapus? (1) Ya; (2) Tidak; ?"; cin>>pilih; if (cin.fail()){ cout << "Harap untuk memasukkan dengan angka!" << endl; cin.clear(); cin.ignore(80, '\n'); // discard rest of line with limit 80 }else{ switch(pilih){ case 0: cout<<"Hapus Batal"<<endl; bendera=true; break; case 1: strcpy(listBarang[kode_edit].nama_barang,""); listBarang[kode_edit].harga_barang = 0; listBarang[kode_edit].jumlah_barang = 0; bendera = true; cout<<"Hapus Berhasil"<<endl; break; default: cout<<"Pilihan Invalid"<<endl; break; } } } } int main(){ bool bendera = false; int pilih; enum angka{}; while(bendera==false){ cout<<"==PROGRAM KASIR=="<<endl <<"1. Isi Pembelian"<<endl <<"2. Edit Pembelian"<<endl <<"3. Hapus Pembelian"<<endl <<"4. Cetak Struk"<<endl <<"0. Keluar"<<endl; cout<<"Pilih Menu?"; cin>>pilih; cin.ignore(numeric_limits<int>::max(), '\n'); if (cin.fail()){ cout << "Harap untuk memasukkan dengan angka!" << endl; cin.clear(); cin.ignore(80, '\n'); }else{

Page 5: Perbaikan Script Modul Terakhir (Program Kasir)

Program Alih Jenjang D3 ke D4 TMD Batch 6 2012-2013

5/ 5

switch(pilih){ case 0: cout<<"Terimakasih :)"<<endl; bendera = true; break; case 1: //isi Pembelian isiPembelian(); break; case 2: //edit Pembelian editPembelian(); break; case 3: //hapus Pembelian hapusPembelian(); break; case 4: //cetak Struk cetakStruk(); break; default: cout<<"Pilihan Invalid"<<endl; break; } } } system("pause"); return 0; }

Deskripsi singkat:

Validasi pada program diatas menggunakan salah satu fungsi pada library

limits.h. Pernyataan cin.ignore(numeric_limits<int>::max(), '\n');merupakan

pernyataan untuk pembatasan nilai numeric pada saat input data. Kondisi if

(cin.fail()){ merupakan kondisi yang menyatakan apabila inputan gagal, maka

akan mengeksekusi perintah cout << "Harap untuk memasukkan dengan angka!" <<

endl; sebagai pesan error inputan, sedangkan perintah cin.clear(); sebagai

perintah untuk menghapus isi buffer dan selanjutnya perintah cin.ignore(80,

'\n'); sebagai perintah diatas 80 karakter maka akan di buang hingga

menemukan baris baru karakter.