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 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

Postingan populer dari blog ini

Chapter 2

Chapter 1

Chapter 3 p1

CHAPTER 4 p1