Sistem Manajemen Inventori Sederhana dengan C++

Sistem Manajemen Inventori Sederhana dengan C++

Berikut adalah contoh program Sistem Manajemen Inventori Sederhana dengan C++. Program ini memungkinkan pengguna untuk:

  1. Menambahkan item ke inventori.
  2. Menampilkan semua item di inventori.
  3. Menghapus item berdasarkan ID.
  4. Mencari item berdasarkan nama.
  5. Memperbarui jumlah item.

Kode Lengkap

#include <iostream>
#include <vector>
#include <string>
using namespace std;

// Struktur untuk menyimpan data item
struct Item {
    int id;
    string nama;
    int jumlah;
    double harga;
};

// Vektor untuk menyimpan daftar item
vector<Item> inventori;
int nextId = 1; // ID unik untuk setiap item

// Fungsi untuk menambahkan item ke inventori
void tambahItem() {
    Item item;
    item.id = nextId++;
    cout << "\nMasukkan nama item: ";
    cin.ignore();
    getline(cin, item.nama);
    cout << "Masukkan jumlah item: ";
    cin >> item.jumlah;
    cout << "Masukkan harga item: ";
    cin >> item.harga;

    inventori.push_back(item);
    cout << "Item berhasil ditambahkan ke inventori!\n";
}

// Fungsi untuk menampilkan semua item di inventori
void tampilkanInventori() {
    if (inventori.empty()) {
        cout << "\nInventori kosong.\n";
        return;
    }

    cout << "\nDaftar Inventori:\n";
    cout << "ID\tNama\t\tJumlah\tHarga\n";
    for (const auto& item : inventori) {
        cout << item.id << "\t" << item.nama << "\t\t" << item.jumlah << "\t" << item.harga << "\n";
    }
}

// Fungsi untuk menghapus item berdasarkan ID
void hapusItem() {
    int id;
    cout << "\nMasukkan ID item yang ingin dihapus: ";
    cin >> id;

    for (auto it = inventori.begin(); it != inventori.end(); ++it) {
        if (it->id == id) {
            inventori.erase(it);
            cout << "Item dengan ID " << id << " berhasil dihapus dari inventori.\n";
            return;
        }
    }
    cout << "Item dengan ID " << id << " tidak ditemukan.\n";
}

// Fungsi untuk mencari item berdasarkan nama
void cariItem() {
    string nama;
    cout << "\nMasukkan nama item yang ingin dicari: ";
    cin.ignore();
    getline(cin, nama);

    bool ditemukan = false;
    cout << "\nHasil Pencarian:\n";
    cout << "ID\tNama\t\tJumlah\tHarga\n";
    for (const auto& item : inventori) {
        if (item.nama.find(nama) != string::npos) { // Pencarian sebagian
            cout << item.id << "\t" << item.nama << "\t\t" << item.jumlah << "\t" << item.harga << "\n";
            ditemukan = true;
        }
    }

    if (!ditemukan) {
        cout << "Item dengan nama \"" << nama << "\" tidak ditemukan.\n";
    }
}

// Fungsi untuk memperbarui jumlah item
void perbaruiJumlah() {
    int id, jumlahBaru;
    cout << "\nMasukkan ID item yang ingin diperbarui: ";
    cin >> id;

    for (auto& item : inventori) {
        if (item.id == id) {
            cout << "Masukkan jumlah baru untuk item \"" << item.nama << "\": ";
            cin >> jumlahBaru;
            item.jumlah = jumlahBaru;
            cout << "Jumlah item berhasil diperbarui.\n";
            return;
        }
    }
    cout << "Item dengan ID " << id << " tidak ditemukan.\n";
}

// Menu utama
void menuUtama() {
    int pilihan;

    do {
        cout << "\n=== Sistem Manajemen Inventori ===\n";
        cout << "1. Tambah Item\n";
        cout << "2. Tampilkan Inventori\n";
        cout << "3. Hapus Item\n";
        cout << "4. Cari Item\n";
        cout << "5. Perbarui Jumlah Item\n";
        cout << "6. Keluar\n";
        cout << "Pilih opsi: ";
        cin >> pilihan;

        switch (pilihan) {
            case 1:
                tambahItem();
                break;
            case 2:
                tampilkanInventori();
                break;
            case 3:
                hapusItem();
                break;
            case 4:
                cariItem();
                break;
            case 5:
                perbaruiJumlah();
                break;
            case 6:
                cout << "Terima kasih telah menggunakan sistem manajemen inventori!\n";
                break;
            default:
                cout << "Pilihan tidak valid. Silakan coba lagi.\n";
        }
    } while (pilihan != 6);
}

// Program utama
int main() {
    menuUtama();
    return 0;
}

Penjelasan Kode

  1. Struktur Data Item
    • struct Item: Menyimpan informasi item, termasuk ID, nama, jumlah, dan harga.
  2. Vektor inventori
    • Digunakan untuk menyimpan daftar semua item yang dimasukkan ke dalam sistem.
  3. Fungsi Utama
    • tambahItem(): Menambahkan item baru ke inventori.
    • tampilkanInventori(): Menampilkan semua item di inventori dalam format tabel.
    • hapusItem(): Menghapus item berdasarkan ID dengan menggunakan iterator.
    • cariItem(): Mencari item berdasarkan nama (mendukung pencarian sebagian).
    • perbaruiJumlah(): Memperbarui jumlah item berdasarkan ID.
  4. Menu Utama
    • Menyediakan antarmuka untuk pengguna mengakses fungsi-fungsi manajemen inventori.

Contoh Output

=== Sistem Manajemen Inventori ===
1. Tambah Item
2. Tampilkan Inventori
3. Hapus Item
4. Cari Item
5. Perbarui Jumlah Item
6. Keluar
Pilih opsi: 1

Masukkan nama item: Laptop
Masukkan jumlah item: 10
Masukkan harga item: 15000000
Item berhasil ditambahkan ke inventori!

=== Sistem Manajemen Inventori ===
1. Tambah Item
2. Tampilkan Inventori
3. Hapus Item
4. Cari Item
5. Perbarui Jumlah Item
6. Keluar
Pilih opsi: 2

Daftar Inventori:
ID      Nama            Jumlah  Harga
1       Laptop          10      15000000

Fitur Tambahan

  • Simpan dan Muat dari File: Gunakan pustaka fstream untuk menyimpan inventori ke file dan membacanya saat program dimulai.
  • Sortir Item: Tambahkan opsi untuk menyortir inventori berdasarkan nama, jumlah, atau harga.
  • Validasi Input: Tambahkan validasi agar jumlah dan harga tidak boleh negatif.

Jika Anda ingin menambahkan fitur lain atau mengembangkan lebih lanjut, beri tahu saya! 😊

Leave a Reply

Your email address will not be published. Required fields are marked *