Chapter 3 p2
Source Code/Sintaks Program "PROJECT APLIKASI MANAGEMEN TOKO BARANG ELEKTRONIK"
Setelah membaca materi pada Chapter 3 p1 sekarang kalian bisa mencoba menjalankan program "Project Aplikasi Managemen Toko Barang Elektronik" sendiri, kalian dapat membuka program ini menggunakan aplikasi DevC++, Visual Studio Code, atau melalui web www.programiz.com untuk kalian pengguna pc/laptop, dan untuk pengguna Android kalian bisa membukanya dengan aplikasi "Coding C++" yang tersedia di Play Store. Langsung saja salin Sintaks dibawah ini👇
#include <iostream>#include <queue>#include <string>
using namespace std;
const int MAX_BARANG = 100;
struct Barang { string kode; string nama; int harga; int stok;};
struct Transaksi { string kodeBarang; int jumlah; int totalHarga;};
// Fungsi untuk menambah barangint tambahBarang(Barang barang[], int& jumlahBarang) { if (jumlahBarang >= MAX_BARANG) { cout << "Stok barang sudah penuh!" << endl; return jumlahBarang; }
Barang b; cout << endl; cout << "<== Tambah Barang ==>"<< endl; cout << "Masukkan kode barang : "; cin >> b.kode; cin.ignore(); // Mengabaikan newline setelah cin cout << "Masukkan nama barang : "; getline(cin, b.nama); cout << "Masukkan harga barang : "; cin >> b.harga; cout << "Masukkan stok barang : "; cin >> b.stok; cout << "Barang Berhasil Ditambahkan!!!" << endl;
barang[jumlahBarang++] = b; // Menambahkan barang ke array return jumlahBarang;}
// Fungsi untuk menghapus barangint hapusBarang(Barang barang[], int& jumlahBarang, const string& kode) { for (int i = 0; i < jumlahBarang; ++i) { if (barang[i].kode == kode) { // Menggeser barang setelah yang dihapus ke depan for (int j = i; j < jumlahBarang - 1; ++j) { barang[j] = barang[j + 1]; } --jumlahBarang; cout << "Barang dengan kode " << kode << " telah dihapus!!!" << endl; return jumlahBarang; } } cout << "Barang dengan kode " << kode << " tidak ditemukan!!!" << endl; return jumlahBarang;}
// Fungsi untuk memperbarui informasi barangint perbaruiBarang(Barang barang[], int jumlahBarang, const string& kode) { for (int i = 0; i < jumlahBarang; ++i) { if (barang[i].kode == kode) { cout << "Masukkan harga baru : "; cin >> barang[i].harga; cout << "Masukkan stok baru : "; cin >> barang[i].stok; cout << "Informasi barang telah diperbarui." << endl; return jumlahBarang; } } cout << "Barang dengan kode " << kode << " tidak ditemukan!!!" << endl; return jumlahBarang;}
// Fungsi untuk menampilkan daftar barangvoid tampilkanDaftarBarang(const Barang barang[], int jumlahBarang) { cout << "Daftar Barang:" << endl; for (int i = 0; i < jumlahBarang; ++i) { cout << "Kode: " << barang[i].kode << "| Nama: " << barang[i].nama << "| Harga: " << barang[i].harga << "| Stok: " << barang[i].stok << endl; }}void cariBarang(const Barang barang[], int jumlahBarang) { string keyword; cout << endl; cout << "<== Cari Barang ==>" << endl; cout << "Masukkan kode atau nama barang yang ingin dicari: "; cin.ignore(); getline(cin, keyword);
bool ditemukan = false; for (int i = 0; i < jumlahBarang; ++i) { if (barang[i].kode.find(keyword) != string::npos || barang[i].nama.find(keyword) != string::npos) { cout << "Ditemukan : " << endl; cout << "Kode : " << barang[i].kode << "| Nama : " << barang[i].nama << "| Harga : " << barang[i].harga << "| Stok : " << barang[i].stok << endl; ditemukan = true; } } if (!ditemukan) { cout << "Barang dengan kata kunci '" << keyword << "' tidak ditemukan!!!" << endl; }}
// Fungsi untuk memproses transaksiqueue<Transaksi> prosesTransaksi(Barang barang[], int& jumlahBarang, queue<Transaksi>& transaksi) { string kode; int jumlah; cout << endl; cout << "<== Transaksi ==>" << endl; cout << "Masukkan kode barang : "; cin >> kode; cout << "Masukkan jumlah : "; cin >> jumlah;
for (int i = 0; i < jumlahBarang; ++i) { if (barang[i].kode == kode) { if (barang[i].stok >= jumlah) { Transaksi t; t.kodeBarang = kode; t.jumlah = jumlah; t.totalHarga = barang[i].harga * jumlah; transaksi.push(t); barang[i].stok -= jumlah; cout << "Transaksi berhasil!" << endl; } else { cout << "Stok tidak mencukupi!" << endl; } return transaksi; } } cout << "Barang dengan kode " << kode << " tidak ditemukan!" << endl; return transaksi;}
// Fungsi untuk menampilkan laporan penjualanvoid tampilkanLaporan(queue<Transaksi> transaksi) { cout << "Laporan Penjualan:" << endl; while (!transaksi.empty()) { Transaksi t = transaksi.front(); transaksi.pop(); cout << "<== Laporan Penjualan ==>" << endl; cout << "Kode Barang: " << t.kodeBarang << "| Jumlah: " << t.jumlah << "| Total Harga: " << t.totalHarga << endl; }}void cekStokMinim(const Barang barang[], int jumlahBarang, int batasStok) { cout << "Barang dengan stok di bawah " << batasStok << ":" << endl; bool adaStokMinim = false; for (int i = 0; i < jumlahBarang; ++i) { if (barang[i].stok < batasStok) { cout << "Kode : " << barang[i].kode << "| Nama : " << barang[i].nama << "| Stok : " << barang[i].stok << endl; adaStokMinim = true; } } if (!adaStokMinim) { cout << "Semua barang memiliki stok cukup." << endl; }}
int main() { Barang barang[MAX_BARANG]; // Array untuk menyimpan barang int jumlahBarang = 0; // Jumlah barang yang ada queue<Transaksi> transaksi; // Antrian untuk transaksi
while (true) { cout << endl; cout << "____________________________________" << endl; cout << "||========== Menu Utama ==========||" << endl; cout << "||1. Tambah Barang ||" << endl; cout << "||2. Hapus Barang ||" << endl; cout << "||3. Perbarui Informasi Barang ||" << endl; cout << "||4. Tampilkan Daftar Barang ||" << endl; cout << "||5. Cari Barang ||" << endl; cout << "||6. Proses Transaksi Penjualan ||" << endl; cout << "||7. Tampilkan Laporan Penjualan ||" << endl; cout << "||8. Cek Stok Minim ||" << endl; cout << "||9. Keluar ||" << endl; cout << "||________________________________||" << endl; cout << endl; int pilihan; cin >> pilihan;
switch (pilihan) { case 1: jumlahBarang = tambahBarang(barang, jumlahBarang); break; case 2: { string kode; cout << "Masukkan kode barang: "; cin >> kode; jumlahBarang = hapusBarang(barang, jumlahBarang, kode); break; } case 3: { string kode; cout << "Masukkan kode barang: "; cin >> kode; jumlahBarang = perbaruiBarang(barang, jumlahBarang, kode); break; } case 4: tampilkanDaftarBarang(barang, jumlahBarang); break; case 5: cariBarang(barang, jumlahBarang); // Panggil fungsi cari barang break; case 6: transaksi = prosesTransaksi(barang, jumlahBarang, transaksi); break; case 7: tampilkanLaporan(transaksi); break; case 8: int batasStok; cout << "Masukkan batas stok minim: "; cin >> batasStok; cekStokMinim(barang, jumlahBarang, batasStok); // Panggil fungsi cek stok minim break; case 9: cout << "Terima Kasih Sudah Menggunakan Program Ini." << endl; return 0; default: cout << "Pilihan salah!" << endl; } } return 0;}
#include <iostream>
#include <queue>
#include <string>
using namespace std;
const int MAX_BARANG = 100;
struct Barang {
string kode;
string nama;
int harga;
int stok;
};
struct Transaksi {
string kodeBarang;
int jumlah;
int totalHarga;
};
// Fungsi untuk menambah barang
int tambahBarang(Barang barang[], int& jumlahBarang) {
if (jumlahBarang >= MAX_BARANG) {
cout << "Stok barang sudah penuh!" << endl;
return jumlahBarang;
}
Barang b;
cout << endl;
cout << "<== Tambah Barang ==>"<< endl;
cout << "Masukkan kode barang : ";
cin >> b.kode;
cin.ignore(); // Mengabaikan newline setelah cin
cout << "Masukkan nama barang : ";
getline(cin, b.nama);
cout << "Masukkan harga barang : ";
cin >> b.harga;
cout << "Masukkan stok barang : ";
cin >> b.stok;
cout << "Barang Berhasil Ditambahkan!!!" << endl;
barang[jumlahBarang++] = b; // Menambahkan barang ke array
return jumlahBarang;
}
// Fungsi untuk menghapus barang
int hapusBarang(Barang barang[], int& jumlahBarang, const string& kode) {
for (int i = 0; i < jumlahBarang; ++i) {
if (barang[i].kode == kode) {
// Menggeser barang setelah yang dihapus ke depan
for (int j = i; j < jumlahBarang - 1; ++j) {
barang[j] = barang[j + 1];
}
--jumlahBarang;
cout << "Barang dengan kode " << kode << " telah dihapus!!!" << endl;
return jumlahBarang;
}
}
cout << "Barang dengan kode " << kode << " tidak ditemukan!!!" << endl;
return jumlahBarang;
}
// Fungsi untuk memperbarui informasi barang
int perbaruiBarang(Barang barang[], int jumlahBarang, const string& kode) {
for (int i = 0; i < jumlahBarang; ++i) {
if (barang[i].kode == kode) {
cout << "Masukkan harga baru : ";
cin >> barang[i].harga;
cout << "Masukkan stok baru : ";
cin >> barang[i].stok;
cout << "Informasi barang telah diperbarui." << endl;
return jumlahBarang;
}
}
cout << "Barang dengan kode " << kode << " tidak ditemukan!!!" << endl;
return jumlahBarang;
}
// Fungsi untuk menampilkan daftar barang
void tampilkanDaftarBarang(const Barang barang[], int jumlahBarang) {
cout << "Daftar Barang:" << endl;
for (int i = 0; i < jumlahBarang; ++i) {
cout << "Kode: " << barang[i].kode << "| Nama: " << barang[i].nama << "| Harga: " << barang[i].harga << "| Stok: " << barang[i].stok << endl;
}
}
void cariBarang(const Barang barang[], int jumlahBarang) {
string keyword;
cout << endl;
cout << "<== Cari Barang ==>" << endl;
cout << "Masukkan kode atau nama barang yang ingin dicari: ";
cin.ignore();
getline(cin, keyword);
bool ditemukan = false;
for (int i = 0; i < jumlahBarang; ++i) {
if (barang[i].kode.find(keyword) != string::npos || barang[i].nama.find(keyword) != string::npos) {
cout << "Ditemukan : " << endl;
cout << "Kode : " << barang[i].kode << "| Nama : " << barang[i].nama
<< "| Harga : " << barang[i].harga << "| Stok : " << barang[i].stok << endl;
ditemukan = true;
}
}
if (!ditemukan) {
cout << "Barang dengan kata kunci '" << keyword << "' tidak ditemukan!!!" << endl;
}
}
// Fungsi untuk memproses transaksi
queue<Transaksi> prosesTransaksi(Barang barang[], int& jumlahBarang, queue<Transaksi>& transaksi) {
string kode;
int jumlah;
cout << endl;
cout << "<== Transaksi ==>" << endl;
cout << "Masukkan kode barang : ";
cin >> kode;
cout << "Masukkan jumlah : ";
cin >> jumlah;
for (int i = 0; i < jumlahBarang; ++i) {
if (barang[i].kode == kode) {
if (barang[i].stok >= jumlah) {
Transaksi t;
t.kodeBarang = kode;
t.jumlah = jumlah;
t.totalHarga = barang[i].harga * jumlah;
transaksi.push(t);
barang[i].stok -= jumlah;
cout << "Transaksi berhasil!" << endl;
} else {
cout << "Stok tidak mencukupi!" << endl;
}
return transaksi;
}
}
cout << "Barang dengan kode " << kode << " tidak ditemukan!" << endl;
return transaksi;
}
// Fungsi untuk menampilkan laporan penjualan
void tampilkanLaporan(queue<Transaksi> transaksi) {
cout << "Laporan Penjualan:" << endl;
while (!transaksi.empty()) {
Transaksi t = transaksi.front();
transaksi.pop();
cout << "<== Laporan Penjualan ==>" << endl;
cout << "Kode Barang: " << t.kodeBarang << "| Jumlah: " << t.jumlah << "| Total Harga: " << t.totalHarga << endl;
}
}
void cekStokMinim(const Barang barang[], int jumlahBarang, int batasStok) {
cout << "Barang dengan stok di bawah " << batasStok << ":" << endl;
bool adaStokMinim = false;
for (int i = 0; i < jumlahBarang; ++i) {
if (barang[i].stok < batasStok) {
cout << "Kode : " << barang[i].kode << "| Nama : " << barang[i].nama
<< "| Stok : " << barang[i].stok << endl;
adaStokMinim = true;
}
}
if (!adaStokMinim) {
cout << "Semua barang memiliki stok cukup." << endl;
}
}
int main() {
Barang barang[MAX_BARANG]; // Array untuk menyimpan barang
int jumlahBarang = 0; // Jumlah barang yang ada
queue<Transaksi> transaksi; // Antrian untuk transaksi
while (true) {
cout << endl;
cout << "____________________________________" << endl;
cout << "||========== Menu Utama ==========||" << endl;
cout << "||1. Tambah Barang ||" << endl;
cout << "||2. Hapus Barang ||" << endl;
cout << "||3. Perbarui Informasi Barang ||" << endl;
cout << "||4. Tampilkan Daftar Barang ||" << endl;
cout << "||5. Cari Barang ||" << endl;
cout << "||6. Proses Transaksi Penjualan ||" << endl;
cout << "||7. Tampilkan Laporan Penjualan ||" << endl;
cout << "||8. Cek Stok Minim ||" << endl;
cout << "||9. Keluar ||" << endl;
cout << "||________________________________||" << endl;
cout << endl;
int pilihan;
cin >> pilihan;
switch (pilihan) {
case 1:
jumlahBarang = tambahBarang(barang, jumlahBarang);
break;
case 2:
{
string kode;
cout << "Masukkan kode barang: ";
cin >> kode;
jumlahBarang = hapusBarang(barang, jumlahBarang, kode);
break;
}
case 3:
{
string kode;
cout << "Masukkan kode barang: ";
cin >> kode;
jumlahBarang = perbaruiBarang(barang, jumlahBarang, kode);
break;
}
case 4:
tampilkanDaftarBarang(barang, jumlahBarang);
break;
case 5:
cariBarang(barang, jumlahBarang); // Panggil fungsi cari barang
break;
case 6:
transaksi = prosesTransaksi(barang, jumlahBarang, transaksi);
break;
case 7:
tampilkanLaporan(transaksi);
break;
case 8:
int batasStok;
cout << "Masukkan batas stok minim: ";
cin >> batasStok;
cekStokMinim(barang, jumlahBarang, batasStok); // Panggil fungsi cek stok minim
break;
case 9:
cout << "Terima Kasih Sudah Menggunakan Program Ini." << endl;
return 0;
default:
cout << "Pilihan salah!" << endl;
}
}
return 0;
}


Komentar
Posting Komentar