Skip to main content

Program C++: Perhitungan Denda Peminjaman Buku dengan Class dan Array

Berikut adalah program C++ sederhana untuk mengelola peminjaman buku di perpustakaan. Program ini menggunakan class dan array untuk menyimpan data buku, serta menghitung denda apabila peminjaman melebihi 7 hari.

Fitur Program:

  • Input data peminjam dan buku
  • Validasi kode buku
  • Hitung denda secara otomatis
  • Tampilan laporan dengan format tabel

Kode Program:


#include <iostream>
#include <cstring>
#include <conio.h>
#include <stdio.h>
#include <windows.h>

using namespace std;

// Fungsi gotoxy
void gotoxy(int x, int y) {
    COORD coord = { (SHORT)x, (SHORT)y };
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

// Class Buku
class Buku {
public:
    char kdbk[4];
    char* judul;
    char* pengarang;
    float jml;
    float denda;
} buku[10];

int main() {
    char bln[9], np[20], lg;
    float total = 0;
    int i, j;

ulang:
    system("cls");
    cout << "\t\tKONOHA LIBRARY" << endl;
    cout << "Jl. Kalibata Timur No.37 Telp (021) 7901074" << endl;
    cout << "===========================================" << endl;

    cout << "Masukkan Bulan          = ";
    cin.getline(bln, 9);
    cout << "Masukkan Nama Peminjam  = ";
    cin.getline(np, 20);
    cout << "Jumlah Data             = ";
    cin >> j;

    for (i = 1; i <= j; i++) {
        cout << "\nData ke-" << i << endl;
        cout << "Kode Buku = ";
        cin >> buku[i].kdbk;

        if (strcmp(buku[i].kdbk, "AAC") == 0 || strcmp(buku[i].kdbk, "aac") == 0) {
            buku[i].judul = (char*)"Ayat-Ayat Cinta";
            buku[i].pengarang = (char*)"Habbiburahman El-Shirazy";
        } else if (strcmp(buku[i].kdbk, "EIL") == 0 || strcmp(buku[i].kdbk, "eil") == 0) {
            buku[i].judul = (char*)"Effiel I'm in Love";
            buku[i].pengarang = (char*)"Nia Dinata";
        } else if (strcmp(buku[i].kdbk, "LKP") == 0 || strcmp(buku[i].kdbk, "lkp") == 0) {
            buku[i].judul = (char*)"Laskar Pelangi";
            buku[i].pengarang = (char*)"Andreas H";
        } else {
            cout << "Anda Salah Memasukkan Kode!!!" << endl;
            cout << "Mau Input Data Lagi [Y/T] : ";
            cin >> lg;
            cin.ignore();
            if (lg == 'Y' || lg == 'y') goto ulang;
            else goto akhir;
        }

        cout << "Judul        = " << buku[i].judul << endl;
        cout << "Pengarang    = " << buku[i].pengarang << endl;
        cout << "Lama Pinjam  = ";
        cin >> buku[i].jml;

        if (buku[i].jml > 7)
            buku[i].denda = (buku[i].jml - 7) * 1000;
        else
            buku[i].denda = 0;

        total += buku[i].denda;
    }

    system("cls");
    cout << "\t\t\tKONOHA LIBRARY" << endl;
    cout << "\tJl. Kalibata Timur No.37 Telp (021) 7901074" << endl;
    cout << "======================================================================" << endl;
    cout << "Bulan : " << bln << "\t\tNama Peminjam : " << np << endl;
    cout << "======================================================================" << endl;
    cout << "No.  Kode  Judul                Pengarang             Lama  Denda" << endl;
    cout << "======================================================================" << endl;

    for (i = 1; i <= j; i++) {
        gotoxy(1, 9 + i);  cout << i;
        gotoxy(5, 9 + i);  cout << buku[i].kdbk;
        gotoxy(10, 9 + i); cout << buku[i].judul;
        gotoxy(30, 9 + i); cout << buku[i].pengarang;
        gotoxy(56, 9 + i); cout << buku[i].jml;
        gotoxy(69, 9 + i); printf("Rp.%.2f", buku[i].denda);
    }

    cout << "\n======================================================================" << endl;
    printf("\t\t\t\t\tTotal Bayar : Rp.%.2f\n", total);
    cout << "\n\t\t\tTerima Kasih Atas Kedatangannya" << endl;
    cout << "\nMau Input Data Lagi [Y/T] : ";
    cin >> lg;
    cin.ignore();

    if (lg == 'Y' || lg == 'y')
        goto ulang;
    else
        goto akhir;

akhir:
    getch();
    return 0;
}

Catatan: Program ini dapat dijalankan menggunakan compiler C++ di Windows seperti Dev-C++, Code::Blocks, atau Visual Studio dengan dukungan library <windows.h> untuk fungsi gotoxy.

Comments

Popular posts from this blog

🛠 Menambahkan Ekstensi ke VSCode untuk Pengembangan Aplikasi Berbasis .NET (C#) yang Lebih Optimal

🛠 Menambahkan Ekstensi ke VSCode untuk Pengembangan Aplikasi Berbasis .NET (C#) yang Lebih Optimal Kali ini, kita akan melihat bagaimana menambahkan beberapa ekstensi ke VSCode agar fungsinya lebih mirip dengan Integrated Developer Environment (IDE) seperti Visual Studio versi lengkap. Dengan menambahkan ekstensi, kita dapat meningkatkan kemampuan VSCode agar lebih nyaman digunakan dalam pengembangan. 💡 Kenapa Menggunakan VSCode? Gratis – Tidak perlu biaya untuk menggunakannya. Cross-Platform – Bisa digunakan di Windows, Mac, dan Linux dengan pengalaman yang sama. Populer – Lebih dari 70% pengembang menggunakan VSCode secara teratur. Karena itu, VSCode adalah pilihan yang baik untuk digunakan dalam pengembangan. ⚙️ Mengaktifkan Auto Save Untuk memastikan perubahan kode langsung tersimpan, saya sarankan untuk mengaktifkan fitur Auto Save . 📌 Caranya: Klik "File" di menu utama. Pilih "Auto Save" untuk me...

🛡️ Memahami CORS dan CSRF dalam Pengembangan Web

Dalam dunia pengembangan web modern, keamanan adalah hal yang sangat penting. Dua konsep yang sering muncul ketika membahas keamanan komunikasi antara browser dan server adalah CORS (Cross-Origin Resource Sharing) dan CSRF (Cross-Site Request Forgery) . Walaupun keduanya terdengar mirip, mereka memiliki fungsi dan konteks yang berbeda. Mari kita bahas satu per satu. 🌐 Apa itu CORS? CORS (Cross-Origin Resource Sharing) adalah mekanisme keamanan yang diterapkan oleh browser untuk mengatur permintaan antar domain . Secara default, browser akan membatasi permintaan HTTP dari satu origin (domain) ke origin lain untuk mencegah akses ilegal. 📌 Contoh Kasus: Aplikasi frontend kamu berjalan di http://localhost:3000 API backend kamu berjalan di http://localhost:5000 Ketika frontend mencoba memanggil API backend, browser akan memblokir permintaan tersebut kecuali backend memberikan izin melalui header CORS. ✅ Cara Mengizinkan CORS: Server backend perlu mengembali...

Memulai Proyek .NET SDK dengan menggunakan CLI (Command Line Interface)

Memulai Proyek .NET SDK dengan menggunakan CLI (Command Line Interface) Ketika kita membangun proyek menggunakan .NET SDK . Pastikan Anda telah menginstal SDK ini sebagai bagian dari pengaturan pengembang. Memeriksa Instalasi .NET SDK Untuk memastikan bahwa .NET SDK sudah terinstal dan tersedia, jalankan perintah berikut di terminal atau command prompt: dotnet --info Perintah ini akan menampilkan informasi tentang versi .NET SDK dan runtime yang telah terinstal. Menggunakan .NET SDK untuk Membuat Proyek .NET SDK menyediakan sejumlah template untuk membantu kita memulai proyek. Untuk melihat daftar template yang tersedia, gunakan perintah: dotnet new list Dalam kursus ini, kita akan membuat Web API , sehingga perintah yang digunakan adalah: dotnet new webapi Membuat Struktur Proyek Pastikan Anda bekerja di dalam folder pengguna , bukan folder sistem seperti System32 , agar proyek memiliki izin yang benar. ...