Diagram Alir Sederhana Program Kasir
Meskipun bahasa pemrograman seperti Java, Python, atau PHP sering digunakan untuk aplikasi berbasis web atau GUI modern, C++ tetap menjadi pilihan yang kuat untuk sistem yang memerlukan performa tinggi dan kontrol memori yang ketat, seperti sistem POS (Point of Sale) embedded atau aplikasi desktop yang cepat. Contoh program kasir sederhana yang dibuat menggunakan C++ di lingkungan konsol (terminal) ini bertujuan untuk memahami dasar-dasar logika perhitungan, manajemen array atau vektor untuk daftar barang, serta input/output data.
Program kasir dasar harus mampu melakukan tiga fungsi utama: mencatat item yang dibeli, menghitung total harga, dan menampilkan struk pembayaran akhir. Dalam konteks C++, kita akan memanfaatkan struktur data dasar dan perulangan (loop) untuk mencapai tujuan ini.
Untuk membuat sistem kasir yang fungsional, kita perlu mendefinisikan struktur data yang akan menyimpan informasi barang (nama, harga satuan, dan kuantitas). Dalam contoh ini, kita menggunakan `std::vector` dan `struct` untuk mengorganisir data barang.
Berikut adalah contoh implementasi sederhana yang fokus pada fungsionalitas inti tanpa antarmuka grafis yang rumit.
#include <iostream>
#include <vector>
#include <iomanip>
#include <string>
using namespace std;
// Struktur untuk merepresentasikan barang
struct Barang {
string nama;
double hargaSatuan;
int kuantitas;
double subtotal;
};
void tampilkanHeaderStruk() {
cout << "\n====================================\n";
cout << " TOKO SERBA ADA - STRUK\n";
cout << "====================================\n";
cout << left << setw(20) << "Nama Barang"
<< right << setw(8) << "Harga"
<< setw(8) << "Qty"
<< setw(10) << "Subtotal" << endl;
cout << "------------------------------------\n";
}
int main() {
vector<Barang> keranjang;
double totalKeseluruhan = 0.0;
int pilihan = 1;
cout << "--- SISTEM KASIR SEDERHANA C++ ---\n";
while (pilihan != 0) {
Barang itemBaru;
cout << "\nMasukkan detail barang (Ketik 0 untuk selesai): ";
// Meminta nama barang
cout << "\nNama Barang: ";
getline(cin, itemBaru.nama);
if (itemBaru.nama == "0") {
pilihan = 0;
break;
}
// Meminta harga dan kuantitas
cout << "Harga Satuan (Rp): ";
cin >> itemBaru.hargaSatuan;
cout << "Kuantitas: ";
cin >> itemBaru.kuantitas;
// Menghitung subtotal
itemBaru.subtotal = itemBaru.hargaSatuan * itemBaru.kuantitas;
totalKeseluruhan += itemBaru.subtotal;
keranjang.push_back(itemBaru);
// Membersihkan buffer input
cin.ignore();
}
// Menampilkan Struk
tampilkanHeaderStruk();
for (const auto& item : keranjang) {
cout << left << setw(20) << item.nama
<< right << setw(8) << fixed << setprecision(0) << item.hargaSatuan
<< setw(8) << item.kuantitas
<< setw(10) << fixed << setprecision(0) << item.subtotal << endl;
}
cout << "------------------------------------\n";
cout << right << setw(30) << "TOTAL BELANJA: " << fixed << setprecision(0) << totalKeseluruhan << endl;
cout << "====================================\n";
cout << "Terima Kasih Telah Berbelanja!\n";
return 0;
}
Contoh program kasir C++ di atas adalah fondasi. Dalam aplikasi nyata, Anda akan memerlukan beberapa fitur tambahan yang sangat penting, yang biasanya melibatkan penggunaan file I/O atau database:
Penggunaan C++ memungkinkan implementasi fitur-fitur tersebut dengan kecepatan eksekusi yang sangat baik, yang krusial di lingkungan ritel yang sibuk.