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
Post a Comment