Loading Blog

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;
                            }
                        

I'd love to hear your perspective if you're interested and find a way to move forward together

Web Development

Contact