#include <iostream>
#include <stdio.h>
using namespace std;
void garis() {
printf("-------------------------------------------------\n");
}
//deklarasi fungsi
// return value tanpa parameter
float getPPN();
// return value dengan parameter
float hitungSubtotal(int harga, int jumlah);
// tidak return value tanpa parameter
void tampilKetentuan();
// tidak return value dengan parameter
void tampilOutput(string judul, int harga, int jumlah,
float subtotal, float diskon, float ppn, float total, string bonus);
int main() {
int kode, jumlah, harga = 0;
string judul, bonus = "-";
tampilKetentuan();
garis();
cout << "Masukan kode buku [1/2/3]: \n";
scanf("%d", &kode);
cout << "Jumlah pembelian buku : \n";
scanf("%d", &jumlah);
// Switch case
switch (kode) {
case 1:
judul = "1000 Mindset Berpikir Positif ";
harga = 50000;
break;
case 2:
judul = "berani tidak disukai ";
harga = 35000;
break;
case 3:
judul = "indistractable ";
harga = 45000;
break;
default:
puts("Kode buku tidak valid!");
return 0;
}
float subtotal = hitungSubtotal(harga, jumlah);
// IF
float diskon = 0;
if (jumlah > 5) {
diskon = subtotal * 0.10; // diskon 10%
bonus = "Kotak Pensil";
}
float ppn = getPPN() * subtotal; // PPN 10%
float total = subtotal - diskon + ppn;
tampilOutput(judul, harga, jumlah, subtotal, diskon, ppn, total, bonus);
return 0;
}
// implementasi fungsi
// Tidak return value & tanpa parameter
void tampilKetentuan() {
garis();
puts("Literasi Bookshop");
puts("Bekasi, Jawa barat");
garis();
puts("KETENTUAN");
garis();
puts("| Kode | Judul | Harga |");
garis();
puts("| 1 | 1000 Mindset Berpikir Positif | 50000 |");
puts("| 2 | berani tidak disukai | 35000 |");
puts("| 3 | indistractable | 45000 |");
garis();
puts("Subtotal = Harga x Jumlah Beli");
puts("PPN = 10% x Subtotal");
puts("Jika jumlah beli lebih dari 5 maka mendapat discount 10% dan bonus kotak pensil.");
garis();
puts("Harus Terdapat Fungsi:");
puts("cout, cin, printf, scanf, puts");
puts("Struktur IF dan Switch Case");
puts("Function Return Value (Without Parameter)");
puts("Function Return Value (With Parameter)");
puts("Function NOT Return Value (Without Parameter)");
puts("Function NOT Return Value (With Parameter)");
garis();
}
// Return value tanpa parameter
float getPPN() {
return 0.10;
}
// Return value dengan parameter
float hitungSubtotal(int harga, int jumlah) {
return harga * jumlah;
}
// Tidak return value & dengan parameter
void tampilOutput(string judul, int harga, int jumlah,
float subtotal, float diskon, float ppn, float total, string bonus) {
garis();
cout << "Nama Buku : " << judul << endl;
cout << "Harga : " << harga << endl;
cout << "Bonus : " << bonus << endl;
printf("Subtotal : Rp %.2f\n", subtotal);
printf("Potongan : Rp %.2f\n", diskon);
printf("PPN : Rp %.2f\n", ppn);
printf("Total : Rp %.2f\n", total);
garis();
puts("\t\t Terima Kasih");
garis();
puts("Nama : la ode ian");
puts("Email : laodeian21@gmail.com");
}