Quick actions

cmd+k|ctrl+k

Navigation

Languages

Tugas Algoritma 11.1

Snippet info

Language

Cpp

Visibility

public

Author

laodeiyan21

Created

2025-12-20T05:21:32.86309Z

Updated

2026-01-05T02:19:35.667336Z

#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 : [email protected]");
}
INFO