Program Cetak Struk BBM
Lorem ipsum dolor sit amet consectetur adipisicing.
Masalah
Pembelian BBM di SPBU sering dilakukan secara manual, baik dalam mencatat jenis BBM yang dibeli, harga, hingga pembayaran. Proses ini rentan terhadap kesalahan, seperti perhitungan yang salah atau kesalahan dalam memberikan struk. Dengan banyaknya jenis BBM yang tersedia dan variasi harga, sering kali pembeli merasa bingung atau tidak puas karena kurangnya transparansi. Oleh karena itu, dibutuhkan sebuah sistem otomatis yang dapat menghitung total biaya dengan tepat, memproses pembayaran dengan cepat, dan mencetak struk yang jelas serta akurat
Solusi
Program komputer berbasis C++:
- Program Otomatis: Memudahkan pengguna memilih jenis BBM dan menghitung total biaya serta jumlah liter yang dibeli.
- Validasi Pembayaran: Memastikan pembayaran mencukupi dan jika tidak, meminta pengguna membayar lebih.
- Struk Pembelian: Mencetak struk lengkap dengan rincian pembelian, harga, pembayaran, dan kembalian
Video Penjelasan
Kode Program
Berikut adalah contoh kode program dalam C++ untuk cetak struk BBM:
// Judul : Cetak Struk BBM
// 13 November 2024 & 30 Desember 2024
// Kelompok 2 Daspro A11.4104
// Kukuh Ramadhan Prastiyo (A11.2024.15680)
// Daffa Wira Hadyan Kusuma (A11.2024.15682)
// Muhammad Iqbal (A11.2024.15747)
#include
#include
using namespace std;
// Kamus :
struct BBM
{
string jenis;
int harga;
string pompa;
string penjaga;
};
// Fungsi menampilkan daftar BBM
void tampilkanDaftarBBM()
{
cout << "============================================" << endl;
cout << " Daftar Harga BBM Pertamina " << endl;
cout << "Kode Jenis BBM Harga/Liter " << endl;
cout << "--------------------------------------------" << endl;
cout << " 1 Pertalite Rp 10,000" << endl;
cout << " 2 Pertamax Rp 12,100" << endl;
cout << " 3 Dexlite Rp 13,050" << endl;
cout << " 4 Pertamax Turbo Rp 13,500" << endl;
cout << " 5 Bio Solar Rp 6,800" << endl;
cout << "============================================" << endl;
}
// Fungsi mendapatkan data BBM berdasarkan pilihan
BBM pilihBBM(int kode)
{
BBM bbm;
switch (kode)
{
case 1:
bbm = {"Pertalite", 10000, "1", "Kukuh"};
break;
case 2:
bbm = {"Pertamax", 12100, "2", "Kukuh"};
break;
case 3:
bbm = {"Dexlite", 13050, "3", "Iqbal"};
break;
case 4:
bbm = {"Pertamax Turbo", 13500, "4", "Iqbal"};
break;
case 5:
bbm = {"Bio Solar", 6800, "5", "Daffa"};
break;
default:
cout << "Pilihan tidak valid." << endl;
break;
}
return bbm;
}
// Fungsi hitung kembalian
int hitungKembalian(int bayar, float total)
{
return bayar - total;
}
// Fungsi cetak struk
void cetakStruk(BBM bbm, float uang, float liter, int bayar, int kembalian)
{
cout << "\n================== STRUK ==================" << endl;
cout << " -PERTAMINA-" << endl;
cout << " -SPBU A11.4104-" << endl;
cout << " -Jl. Imam Bonjol-" << endl;
cout << " -Telp 0281 23456-" << endl;
cout << "--------------------------------------------" << endl;
cout << "Nomor Pompa : " << bbm.pompa << endl;
cout << "Jenis BBM : " << bbm.jenis << endl;
cout << "Jumlah Liter : " << fixed << setprecision(0) << liter << " L" << endl;
cout << "Harga/Liter : Rp " << bbm.harga << endl;
cout << "Total Harga : Rp " << uang << endl;
cout << "Jumlah Bayar : Rp " << bayar << endl;
cout << "Kembalian : Rp " << kembalian << endl;
cout << "Operator : " << bbm.penjaga << endl;
cout << "--------------------------------------------" << endl;
cout << " TERIMAKASIH DAN SELAMAT JALAN" << endl;
cout << " SEMOGA SELAMAT SAMPAI TUJUAN" << endl;
cout << "============================================" << endl << endl;
}
int pilihan, bayar, kembalian;
float uang, liter;
char lanjut;
// Deskripsi :
int main()
{
do
{
cout << "============================================" << endl;
cout << " SELAMAT DATANG di SPBU A11.4104" << endl;
cout << " Jl. Imam Bonjol" << endl;
cout << "============================================" << endl;
tampilkanDaftarBBM();
// Pilih BBM
cout << "Pilih Kode BBM (1-5) : ";
cin >> pilihan;
while (pilihan < 1 || pilihan > 5)
{
cout << "Kode salah, silakan pilih (1-5): ";
cin >> pilihan;
}
BBM bbm = pilihBBM(pilihan);
cout << "Jenis BBM : " << bbm.jenis << endl;
// Input jumlah pembelian
cout << "Jumlah Pembelian (Rp) : ";
cin >> uang;
while (uang <= 0)
{
cout << "Jumlah pembelian harus lebih dari 0." << endl;
cout << "Silahkan input lagi : ";
cin >> uang;
}
// Input pembayaran
cout << "Jumlah Bayar (Rp) : ";
cin >> bayar;
while (bayar < uang)
{
cout << "\n[ERROR] Pembayaran tidak mencukupi." << endl;
cout << "Total Harga : Rp " << uang << endl;
cout << "Uang Anda Kurang : Rp " << uang - bayar << endl;
cout << "Silakan bayar (Rp) : ";
cin >> bayar;
}
// Hitung liter dan kembalian
liter = uang / bbm.harga;
kembalian = hitungKembalian(bayar, uang);
// Cetak struk
cetakStruk(bbm, uang, liter, bayar, kembalian);
// Apakah ingin membeli lagi
cout << "Apakah Anda ingin membeli BBM lagi? (Y/T): ";
cin >> lanjut;
} while (lanjut == 'Y' || lanjut == 'y');
cout << "- Program selesai -" << endl;
return 0;
}