Contoh Program C++ Menghitung Total Pembayaran dan Diskon Sederhana

| | | C dan C++
Contoh Program C++ Menghitung Total Pembayaran dan Diskon Sederhana

Program menghitung total pembayaran dan diskon adalah salah satu latihan dasar yang wajib dikuasai saat belajar C++. Program ini mengajarkan konsep dasar seperti input/output, variabel, operator aritmatika, dan percabangan if.

1. Konsep Dasar Program

Program ini akan meminta pengguna memasukkan:

  • Harga barang per unit
  • Jumlah barang yang dibeli

Kemudian program menghitung total, dan jika total melebihi batas tertentu, program akan memberikan diskon.

2. Program Dasar: Menghitung Total Pembayaran

Mari mulai dengan versi sederhana: menghitung total tanpa diskon.

#include <iostream>
using namespace std;

int main()
{
    float harga, jumlah, total;

    cout << "Masukkan harga barang: ";
    cin >> harga;

    cout << "Masukkan jumlah barang: ";
    cin >> jumlah;

    total = harga * jumlah;

    cout << "Total pembayaran: Rp" << total << endl;

    return 0;
}

Penjelasan:

  • float digunakan agar bisa menerima harga desimal (misal Rp1.500,50)
  • cin membaca input dari keyboard
  • Operator * mengalikan harga dengan jumlah
  • cout menampilkan hasil ke layar

3. Menambahkan Fitur Diskon

Sekarang kita tambahkan logika diskon: diskon 10% jika total belanja lebih dari Rp1.000.000.

#include <iostream>
using namespace std;

int main()
{
    float harga, jumlah, total, diskon;

    cout << "Masukkan harga barang: ";
    cin >> harga;

    cout << "Masukkan jumlah barang: ";
    cin >> jumlah;

    total = harga * jumlah;

    if (total > 1000000) {
        diskon = total * 0.1;
        total = total - diskon;
        cout << "Diskon 10%: Rp" << diskon << endl;
    }

    cout << "Total pembayaran: Rp" << total << endl;

    return 0;
}

4. Program Lengkap dengan Multi-Tingkat Diskon

Pada versi ini, diskon diberikan bertingkat berdasarkan total belanja:

#include <iostream>
using namespace std;

int main()
{
    float harga, jumlah, total, diskon = 0, totalBayar;

    cout << "=== Program Kasir Sederhana ===\n";
    cout << "Masukkan harga barang: Rp";
    cin >> harga;

    cout << "Masukkan jumlah barang: ";
    cin >> jumlah;

    total = harga * jumlah;
    cout << "\nTotal belanja: Rp" << total << endl;

    // Logika diskon bertingkat
    if (total >= 2000000) {
        diskon = total * 0.2;
        cout << "Diskon 20% (belanja >= Rp2.000.000)" << endl;
    } else if (total >= 1000000) {
        diskon = total * 0.1;
        cout << "Diskon 10% (belanja >= Rp1.000.000)" << endl;
    } else if (total >= 500000) {
        diskon = total * 0.05;
        cout << "Diskon 5% (belanja >= Rp500.000)" << endl;
    } else {
        cout << "Tidak ada diskon (belanja < Rp500.000)" << endl;
    }

    totalBayar = total - diskon;

    cout << "Diskon: Rp" << diskon << endl;
    cout << "Total bayar: Rp" << totalBayar << endl;

    return 0;
}

Contoh Output

=== Program Kasir Sederhana ===
Masukkan harga barang: Rp250000
Masukkan jumlah barang: 5

Total belanja: Rp1250000
Diskon 10% (belanja >= Rp1.000.000)
Diskon: Rp125000
Total bayar: Rp1125000

5. Studi Kasus: Program Kasir dengan Menu dan PPN

Program yang lebih kompleks dengan pajak dan pilihan item:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    int pilihan, jumlah;
    float harga, total = 0, diskon = 0, ppn, grandTotal;

    cout << "=== Program Kasir Minimarket ===\n";
    cout << "1. Mie Instan - Rp3.500\n";
    cout << "2. Susu Kotak - Rp6.000\n";
    cout << "3. Roti Tawar - Rp12.000\n";
    cout << "4. Selesai\n\n";

    while (true) {
        cout << "Pilih item (1-4): ";
        cin >> pilihan;

        if (pilihan == 4) break;

        cout << "Jumlah: ";
        cin >> jumlah;

        switch(pilihan) {
            case 1: total += 3500 * jumlah; break;
            case 2: total += 6000 * jumlah; break;
            case 3: total += 12000 * jumlah; break;
            default: cout << "Item tidak valid!\n";
        }
    }

    // Diskon jika total > 100rb
    if (total > 100000) diskon = total * 0.1;

    // PPN 11%
    ppn = (total - diskon) * 0.11;
    grandTotal = total - diskon + ppn;

    cout << fixed << setprecision(0);
    cout << "\n=== Struk Belanja ===\n";
    cout << "Total: Rp" << total << endl;
    cout << "Diskon: Rp" << diskon << endl;
    cout << "PPN 11%%: Rp" << ppn << endl;
    cout << "Grand Total: Rp" << grandTotal << endl;

    return 0;
}

6. Latihan Mandiri

Coba kembangkan program di atas dengan menambahkan fitur:

  1. Simpan data transaksi ke dalam array
  2. Hitung rata-rata belanja per item
  3. Tampilkan jumlah item yang dibeli
  4. Tambahkan validasi input (jangan sampai pengguna memasukkan angka negatif)

Kesalahan Umum yang Sering Terjadi

Saat belajar C++, beberapa kesalahan umum yang perlu dihindari:

  1. Lupa titik koma — Setiap statement di C++ harus diakhiri dengan ;.
  2. Out of bounds array — Index array dimulai dari 0, pastikan tidak mengakses index di luar deklarasi.
  3. Mengabaikan return type — Fungsi main() harus bertipe int dan mengembalikan nilai.
  4. Tidak menggunakan namespace — Gunakan using namespace std; atau qualify dengan std:: untuk menghindari ambigu.
  5. Lupa menginisialisasi variabel — Variabel lokal tidak otomatis bernilai 0; selalu inisialisasi sebelum dipakai.

Memahami kesalahan umum ini akan menghemat waktu debugging Anda.

Kesimpulan

Program menghitung total pembayaran dan diskon adalah latihan yang mengajarkan konsep fundamental C++: input/output, variabel, operator, percabangan, dan switch-case. Dengan memahami contoh di atas, Anda bisa mengembangkannya menjadi program kasir yang lebih lengkap untuk studi kasus nyata.

Sigit N avatar
Tentang Sigit N
Full-stack developer & technical writer. Berpengalaman di PHP, Laravel, NodeJS, MySQL, dan Python. Aktif menulis tutorial pemrograman dan maintaining open-source projects di PemburuKode sejak 2021.