Asssalmu'alaikum...
Setelah memahami mengenai definisi struct dan case study pada
, kali ini akan dilanjutkan dengan case study yang kedua yaitu menggunakan struct untuk
Data Barang Dagang.
Berikut deskripsi dan gambar untuk case study struct part 2 :
Data barang dagang
|
Deskripsi :
Pertama akan ada login, dengan ketentuan apabila salah user_id/password sebanyak 3x maka program akan close. Setelah login lakukan input data barang seperti :
kode barang, nama barang, jumlah stock dan supplier.
Menu Utama akan menampilkan 3 menu yang dimana menu pertama akan menampilkan hasil input barang. Menu kedua pengambilan barang berdasarkan
kode barang
yang artinya bahwa ketika barang diambil maka
stock berkurang
. Menu terakhir yaitu close dari program.
Solusi :
Pertama,
user_id, password dan nama programmer yang sudah ditetapkan didalam program (tidak di input). Sehingga kita bisa buat sebuah struct programmer yang memiliki atribut nama,user_id dan password.
struct programmer {
string nama = "belajarbelajarrr.blogspot.com";
string
user_id = "belajar";
string
password = "belajarrr";
} pro;
Kedua,
pada input barang juga bisa kita buat menjadi struct seperti :
struct barang{
string kodeBarang;
string namaBarang;
int stock;
string supplier;
}barangdagang;
Ketiga,
melakukan pengurangan stock dapat dilakukan dengan menggunakan algoritma
searching
(pencarian).
Setelah melakukan analisis terhadap case study maka selanjutnya memuat program utuhnya seperti :
#include<iostream>
#include<iomanip>
using namespace std;
struct programmer{
string user_id="belajar";
string password="belajarrr";
string namaProgrammer="belajarbelajarrr.blogspot.com";
};
programmer pro;
struct barang{
string namaBarang;
string kodeBarang;
string supplier;
int jumlahStock;
};
int jumlahBarang;
void line(){
for(int i=0;i<50;i++){
cout<<"=";
}cout<<endl;
}
void menuUtama(){
cout<<"Menu Utama"<<endl;
line();
cout<<"[I] Tampil data inventory"<<endl;
cout<<"[P] Pengambilan barang"<<endl;
cout<<"[E] Exit"<<endl;
cout<<"Pilihan [I/P/E]?";
}
int main(){
string user_id;
string password;
char pilih;
string ambilKode;
int jumlahAmbil;
int j;
int coba=0;
do{
cout<<"Data Aktifitas"<<endl;
cout<<"PT 'supply'"<<endl;
cout<<"Programmer : "<<pro.namaProgrammer<<endl;
cout<<"Login "<<endl;
cout<<"User Id: ";cin>>user_id;
cout<<"Password: ";cin>>password;
if(user_id==pro.user_id && password==pro.password)
coba=100;
else
coba++;
if(coba ==3)
exit(0);
}while(coba<3);
cout<<"Input berapa barang?";
cin>>jumlahBarang;
barang barangDagang[jumlahBarang];
cout<<"Input Data"<<endl;
for (int i = 0; i < jumlahBarang; i++)
{
cout<<"Barang ke-"<<i+1<<endl;
cout<<"Kode Barang : ";cin>>barangDagang[i].kodeBarang;
cout<<"nama barang : ";cin.ignore();getline(cin, barangDagang[i].namaBarang);
cout<<"stock : ";cin>>barangDagang[i].jumlahStock;
cout<<"supplier : ";cin.ignore(); getline(cin, barangDagang[i].supplier);
}
do{
menuUtama();
cin>>pilih;
switch (pilih)
{
case 'I':
cout<<setiosflags(ios::left);
cout<<setw(5)<<"No"<<setw(12)<<"Kode Barang"<<setw(20)<<"Nama Barang"<<setw(10)<<"Stock"<<setw(20)
<<"Supplier"<<endl;
line();
for (int i = 0; i < jumlahBarang; i++)
{
cout<<setw(5)<<i+1<<setw(12)<<barangDagang[i].kodeBarang<<setw(20)<<barangDagang[i].namaBarang<<setw(10)<<barangDagang[i].jumlahStock<<setw(20)
<<barangDagang[i].supplier<<endl;
}
break;
case 'P':
line();
cout<<"Kode Barang : ";cin>>ambilKode;
cout<<"Jumlah Diambil : ";cin>>jumlahAmbil;
j=0;
for ( ; j < jumlahBarang; j++)
{
if(ambilKode==barangDagang[j].kodeBarang){
barangDagang[j].jumlahStock -= jumlahAmbil;
break;
}
}
cout<<"sisa Barang : "<<barangDagang[j].jumlahStock<<endl;
line();
break;
case 'E':
exit(0);
break;
default:
break;
}
cout<<"Kembali ke Menu utama?[Y/T]";cin>>pilih;
}while(pilih=='Y');
}
Hasil output program tersebut :
Ada banyak solusi yang bisa sobat pakai untuk menyelesaikan case study pada postingan kali ini ya :)
Semoga bermanfaat. Terimakasih
*sumber beberapa gambar dikirim dari pembaca blog