Simbol Program Kasir Diagram sederhana yang menunjukkan alur input harga dan output total transaksi. TOTAL: Rp XXX Input

Membuat program kasir sederhana menggunakan C++ adalah proyek fundamental yang sangat baik untuk pemula. Proyek ini mengajarkan konsep dasar seperti input/output data, penggunaan variabel, perulangan (looping), serta logika kondisional. Dalam artikel ini, kita akan membahas langkah-langkah inti untuk merancang sistem kasir minimalis yang dapat menghitung total belanjaan.

Mengapa Menggunakan C++ untuk Kasir Sederhana?

Meskipun bahasa seperti Python atau Java sering digunakan untuk aplikasi GUI modern, C++ menawarkan kecepatan eksekusi yang superior dan pemahaman mendalam tentang manajemen memori. Untuk program kasir berbasis konsol yang hanya memerlukan perhitungan cepat dan struktur data sederhana, C++ adalah pilihan yang efisien.

Struktur Dasar Program Kasir

Program kasir yang baik harus mampu melakukan tiga hal utama:

  1. Mencatat item dan harganya (Input).
  2. Melakukan akumulasi total (Proses).
  3. Menampilkan struk akhir (Output).
Kita akan menggunakan struktur data dasar seperti array atau vektor untuk menyimpan daftar harga dan kuantitas.

Langkah 1: Persiapan dan Struktur Kode Awal

Kita akan memulai dengan menyertakan library standar I/O dan menggunakan namespace `std`.

#include <iostream>
#include <string>
#include <iomanip> // Untuk formatting output

using namespace std;

int main() {
    // Deklarasi variabel utama
    string namaBarang;
    double harga = 0.0;
    int kuantitas = 0;
    double totalKeseluruhan = 0.0;
    char lanjut = 'y';

    cout << "===== APLIKASI KASIR SEDERHANA C++ =====" << endl;

    // Logika utama akan diletakkan di dalam perulangan 'do-while'
    
    return 0;
}
            

Langkah 2: Implementasi Perulangan Transaksi

Kita memerlukan perulangan agar kasir bisa memasukkan banyak item sebelum menghitung total akhir. Perulangan do-while sangat cocok di sini karena transaksi setidaknya harus terjadi sekali.

Langkah 3: Input Data Item

Di dalam perulangan, kita meminta pengguna memasukkan nama, harga, dan kuantitas. Penting untuk menggunakan fixed dan setprecision(2) dari library <iomanip> agar output harga selalu rapi (dua angka di belakang koma).

    do {
        cout << "\n--- Item Baru ---" << endl;
        cout << "Masukkan Nama Barang: ";
        getline(cin, namaBarang); // Menggunakan getline untuk nama yang mungkin mengandung spasi

        cout << "Masukkan Harga Satuan: Rp ";
        cin >> harga;

        cout << "Masukkan Kuantitas: ";
        cin >> kuantitas;
        
        // Membersihkan buffer setelah cin
        cin.ignore(); 

        // Hitung Subtotal
        double subtotal = harga * kuantitas;
        totalKeseluruhan += subtotal;

        // Tampilkan Detail Item
        cout << fixed << setprecision(2);
        cout << "   > " << namaBarang << " (" << kuantitas << " x Rp " << harga << ") = Rp " << subtotal << endl;
        
        // Tanyakan apakah ingin menambah item lagi
        cout << "\nApakah ingin menambah item lain? (y/n): ";
        cin >> lanjut;
        cin.ignore(); // Membersihkan buffer lagi

    } while (tolower(lanjut) == 'y');
            

Langkah 4: Menampilkan Struk Akhir

Setelah perulangan berhenti, kita menampilkan total keseluruhan yang telah diakumulasikan.

    cout << "\n===================================" << endl;
    cout << "           STRUK PEMBAYARAN        " << endl;
    cout << "===================================" << endl;
    cout << fixed << setprecision(2);
    cout << "TOTAL BELANJA : Rp " << totalKeseluruhan << endl;
    cout << "===================================" << endl;
    cout << "Terima Kasih Sudah Berbelanja!" << endl;
            

Kesimpulan dan Pengembangan Lanjut

Kode di atas menyajikan inti dari program kasir sederhana berbasis konsol C++. Meskipun fungsional, program ini masih minim fitur. Untuk pengembangan lebih lanjut, Anda bisa menambahkan:

Dengan menguasai dasar-dasar ini, Anda telah membuka jalan untuk membangun aplikasi berbasis C++ yang lebih kompleks dan terstruktur. Selamat mencoba!