Implementasi Logika Diskon Harga Menggunakan C++

Ikon Perhitungan Diskon %

Dalam dunia pengembangan perangkat lunak, terutama untuk aplikasi kasir atau e-commerce, perhitungan diskon harga adalah salah satu fungsi fundamental yang harus diimplementasikan dengan akurat. Bahasa pemrograman C++ sering digunakan dalam sistem yang membutuhkan performa tinggi, dan menerapkan logika diskon di dalamnya memerlukan pemahaman yang baik tentang tipe data dan operasi matematika dasar.

Artikel ini akan menyajikan sebuah contoh coding C++ sederhana namun komprehensif mengenai cara menghitung diskon harga. Kita akan membuat sebuah program yang menerima harga asli, persentase diskon, dan kemudian menampilkan harga akhir setelah diskon diterapkan, termasuk jumlah uang yang dihemat.

Struktur Dasar Program C++ Diskon

Untuk memudahkan perhitungan, kita akan menggunakan tipe data double untuk menangani nilai mata uang dan persentase yang mungkin mengandung desimal. Program akan berinteraksi dengan pengguna melalui konsol untuk memasukkan data yang diperlukan.

Kode Program C++


#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    // Deklarasi variabel
    double hargaAsli;
    double persentaseDiskon;
    double jumlahDiskon;
    double hargaAkhir;

    // Mengatur output agar menampilkan dua angka di belakang koma (format mata uang)
    cout << fixed << setprecision(2);

    cout << "=========================================" << endl;
    cout << "KALKULATOR DISKON HARGA C++" << endl;
    cout << "=========================================" << endl;

    // Input Harga Asli
    cout << "Masukkan harga barang (Rp): ";
    if (!(cin >> hargaAsli) || hargaAsli < 0) {
        cerr << "Error: Masukkan harga yang valid." << endl;
        return 1;
    }

    // Input Persentase Diskon
    cout << "Masukkan persentase diskon (Contoh: 15 untuk 15%): ";
    if (!(cin >> persentaseDiskon) || persentaseDiskon < 0 || persentaseDiskon > 100) {
        cerr << "Error: Persentase diskon harus antara 0 dan 100." << endl;
        return 1;
    }

    // 1. Menghitung Jumlah Diskon (Uang yang Dihemat)
    // Konversi persentase ke desimal (misal 15% menjadi 0.15)
    jumlahDiskon = hargaAsli * (persentaseDiskon / 100.0);

    // 2. Menghitung Harga Akhir
    hargaAkhir = hargaAsli - jumlahDiskon;

    // Menampilkan Hasil
    cout << "\n--- Detail Perhitungan ---" << endl;
    cout << "Harga Awal          : Rp " << hargaAsli << endl;
    cout << "Diskon Diterapkan   : " << persentaseDiskon << " %" << endl;
    cout << "Potongan Harga      : Rp " << jumlahDiskon << endl;
    cout << "-----------------------------------------" << endl;
    cout << "TOTAL HARGA AKHIR   : Rp " << hargaAkhir << endl;
    cout << "=========================================" << endl;

    return 0;
}

        

Analisis Logika Coding

Fokus utama dari contoh coding di atas terletak pada dua baris perhitungan inti:

  1. Konversi dan Perhitungan Potongan: jumlahDiskon = hargaAsli * (persentaseDiskon / 100.0); Ini adalah langkah krusial. Untuk menggunakan persentase dalam perhitungan matematis, kita harus mengubahnya menjadi bentuk desimal (membaginya dengan 100). Pembagian dengan 100.0 (menggunakan desimal) memastikan bahwa operasi pembagian menghasilkan nilai double, menjaga presisi perhitungan.
  2. Penentuan Harga Jual: hargaAkhir = hargaAsli - jumlahDiskon; Setelah mengetahui berapa banyak uang yang dipotong (jumlahDiskon), kita cukup menguranginya dari harga awal.

Pentingnya Input Validation

Dalam kode di atas, kita juga menyertakan validasi input dasar menggunakan if (!(cin >> variable) || variable < 0). Validasi ini sangat penting dalam pengembangan sistem nyata.

Penggunaan library <iomanip> dengan fungsi setprecision(2) memastikan bahwa output harga selalu diformat dengan dua digit desimal, yang merupakan standar umum untuk representasi mata uang. Bahkan jika perhitungan menghasilkan angka bulat (misalnya, Rp 500.000), format ini akan tetap diterapkan, menghasilkan tampilan yang profesional dan rapi, sangat cocok untuk tampilan web mobile yang mengutamakan keterbacaan visual.

Pengembangan Lebih Lanjut

Logika diskon harga ini dapat diperluas. Misalnya, Anda bisa menambahkan logika kondisional (menggunakan if-else atau switch-case) untuk menerapkan diskon berbeda berdasarkan tingkatan harga (misalnya, diskon 10% untuk pembelian di bawah Rp 100.000, dan diskon 20% untuk pembelian di atasnya). Atau, Anda bisa mengimplementasikan diskon bertingkat (diskon pada diskon), meskipun untuk kasus umum, pendekatan linier seperti yang ditunjukkan di atas sudah memadai untuk memahami konsep dasarnya dalam C++.

Dengan contoh coding C++ ini, Anda memiliki fondasi yang kuat untuk mengintegrasikan fitur kalkulasi diskon harga dalam aplikasi berbasis performa tinggi Anda.