Sistem kasir (Point of Sale/POS) adalah tulang punggung bagi banyak bisnis ritel. Fungsi utamanya adalah mencatat transaksi penjualan, menghitung total biaya, dan seringkali mengelola diskon. Dalam konteks pemrograman, membuat program kasir sederhana menggunakan bahasa seperti C++ adalah cara yang bagus untuk memahami logika dasar aritmatika dan input/output data.
Contoh program kasir diskon ini akan mengintegrasikan fitur dasar: memasukkan harga barang, menghitung subtotal, menerapkan diskon berdasarkan kriteria tertentu (misalnya, diskon persentase jika total melebihi ambang batas), dan menampilkan struk akhir. Ini memberikan dasar yang kuat sebelum beralih ke antarmuka grafis atau koneksi database yang lebih kompleks.
Program di bawah ini mengimplementasikan logika diskon sederhana: jika total belanja melebihi Rp 100.000, pelanggan otomatis mendapatkan diskon 10%.
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
// Fungsi untuk menghitung total dan menerapkan diskon
void hitung_transaksi(double total_belanja) {
const double AMBANG_BATAS_DISKON = 100000.0;
const double PERSENTASE_DISKON = 0.10; // 10%
double diskon = 0.0;
double total_setelah_diskon = total_belanja;
cout << fixed << setprecision(2);
if (total_belanja >= AMBANG_BATAS_DISKON) {
diskon = total_belanja * PERSENTASE_DISKON;
total_setelah_diskon = total_belanja - diskon;
cout << "\n*** SELAMAT! Anda mendapatkan diskon 10% karena total belanja di atas Rp 100.000. ***" << endl;
}
cout << "\n--------------------------------------" << endl;
cout << "Rincian Pembayaran:" << endl;
cout << "--------------------------------------" << endl;
cout << "Subtotal Belanja : Rp " << total_belanja << endl;
cout << "Diskon Diterapkan : Rp " << diskon << endl;
cout << "--------------------------------------" << endl;
cout << "TOTAL AKHIR : Rp " << total_setelah_diskon << endl;
cout << "--------------------------------------" << endl;
}
int main() {
cout << "========================================" << endl;
cout << " SISTEM KASIR SEDERHANA C++ " << endl;
cout << "========================================" << endl;
int jumlah_item;
double harga_item, total_belanja = 0.0;
string nama_item;
cout << "Masukkan jumlah jenis barang yang dibeli: ";
cin >> jumlah_item;
for (int i = 1; i <= jumlah_item; ++i) {
cout << "\n--- Item ke-" << i << " ---" << endl;
// Membersihkan buffer input sebelum getline
cin.ignore();
cout << "Nama Barang: ";
getline(cin, nama_item);
cout << "Harga Satuan (Rp): ";
cin >> harga_item;
// Dalam contoh ini, kita asumsikan hanya 1 kuantitas per input untuk penyederhanaan
total_belanja += harga_item;
cout << nama_item << " ditambahkan ke keranjang." << endl;
}
// Panggil fungsi perhitungan
hitung_transaksi(total_belanja);
return 0;
}
Kita menggunakan <iostream> untuk input/output dasar, <iomanip> untuk memformat output mata uang agar memiliki dua digit desimal (menggunakan fixed dan setprecision(2)), dan <string> untuk menyimpan nama barang.
Program meminta pengguna memasukkan jumlah jenis barang terlebih dahulu. Kemudian, sebuah for loop digunakan untuk mengiterasi setiap barang, meminta nama dan harganya. Setiap harga yang dimasukkan akan langsung ditambahkan ke variabel total_belanja.
hitung_transaksi:
Fungsi ini adalah inti dari perhitungan diskon. Di dalamnya, didefinisikan ambang batas diskon (Rp 100.000) dan persentase diskon (10%).
Kondisi if (total_belanja >= AMBANG_BATAS_DISKON) memastikan diskon hanya diterapkan jika total kotor telah mencapai syarat. Jika syarat terpenuhi, variabel diskon dihitung, dan total_setelah_diskon diperbarui. Jika tidak, diskon tetap bernilai 0.
Penggunaan iomanip memastikan bahwa output terlihat profesional seperti struk nyata. Baris-baris pemisah (menggunakan - atau =) sangat penting untuk memisahkan bagian subtotal, diskon, dan total akhir, meningkatkan keterbacaan struk bagi pengguna atau kasir.
Contoh program kasir diskon ini bersifat dasar. Untuk aplikasi kasir yang lebih fungsional di dunia nyata, beberapa peningkatan dapat dilakukan:
struct atau class di C++ untuk merepresentasikan objek 'Barang' secara lebih terstruktur.
Meskipun sederhana, implementasi logika diskon adalah langkah krusial dalam memahami bagaimana kalkulasi bisnis diterjemahkan ke dalam kode pemrograman. Struktur yang jelas dan penggunaan tipe data yang tepat (seperti double untuk mata uang) sangat ditekankan dalam contoh ini.