Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <list>
- #include <cstring>
- #include <iomanip>
- #include <cstdlib>
- #include "Buku.h"
- using namespace std;
- void clearbuffer();
- void menu();
- void tampil(list <Buku> &, list <Buku>::iterator &);
- void tambahBuku(list <Buku> &, int *);
- void hapusBuku(list <Buku> &, int *);
- int main() {
- list <Buku> bukuSaya;
- list <Buku>::iterator it;
- int pilihanMenu, banyakData = 0;
- do{
- system("clear");
- menu();
- cout << "\n\nmasukkan menu [1-4] : ";
- cin >> pilihanMenu; clearbuffer();
- if (pilihanMenu == 1)
- if (banyakData < 10) {
- tambahBuku(bukuSaya, &banyakData);
- }else {
- cout << "data sudah penuh...";
- clearbuffer();
- }
- if (pilihanMenu == 2) tampil(bukuSaya, it);
- if (pilihanMenu == 3) hapusBuku(bukuSaya, &banyakData);
- } while (pilihanMenu != 4);
- return 0;
- }
- void clearbuffer(){
- cin.clear();
- cin.ignore(1024, '\n');
- }
- void menu(){
- cout << "selamat datang di perpustakaan\n";
- cout << "==============================\n\n";
- cout << "1. Pinjam Buku\n";
- cout << "2. lihat semua buku yang dipinjam\n";
- cout << "3. hapus semua buku";
- cout << "4. keluar";
- }
- void tambahBuku(list <Buku> &bukuSaya, int *banyakData){ //pass by reference
- string judulBuku;
- int jumlah, harga, subtotal;
- do{
- cout << "masukkan judul [5-20 karakter] : ";
- getline(cin, judulBuku);
- } while (judulBuku.length() < 5 or judulBuku.length() > 20);
- do{
- cout << "masukkan harga [Rp. 5000 - Rp. 10.000] : ";
- cin >> harga; clearbuffer();
- } while (harga < 5000 or harga > 10000);
- do{
- cout << "masukkan jumlah [1-20] : ";
- cin >> jumlah; clearbuffer();
- } while (jumlah < 1 or jumlah > 20);
- subtotal = jumlah * harga;
- Buku *buku = new Buku(judulBuku, jumlah, harga, subtotal); //inisialisasi objek buku
- bukuSaya.push_back(*buku); //masukkan objek buku kedalam list buku saya
- delete buku; //hapus objek buku supaya tidak memenuhi ruang heap memory
- *banyakData += 1;
- cout << "sukses menambahkan buku...";
- clearbuffer();
- }
- void tampil(list <Buku> &bukuSaya, list <Buku>::iterator &it){ //pass by reference
- int total = 0;
- int i = 1;
- system("clear");
- cout << "daftar buku yang diorder\n";
- cout << "========================\n\n";
- cout << "----------------------------------------------------------\n";
- cout << "| No. | Judul | Jumlah | Harga | Subtotal |\n";
- cout << "----------------------------------------------------------\n";
- if (bukuSaya.empty()){ //cek apakah didalam list tidak ada data, jika iya maka return true
- cout << "| tidak ada data |\n";
- } else {
- for (it = bukuSaya.begin(); it != bukuSaya.end(); ++it) {
- cout << "| " << left << setw(3) << i++
- << left << " | " << setw(20) << left << it->getJudul()
- << left << " | " << setw(6) << left << it->getJumlah()
- << left << " | " << setw(5) << left << it->getHarga()
- << left << " | " << setw(7) << left << it->getSubTotal()
- << " |\n";
- total = total + it->getSubTotal();
- }
- }
- cout << "----------------------------------------------------------\n\n";
- cout << "total harga : " << total << endl;
- cout << "tekan ENTER untuk melanjutkan...";
- clearbuffer();
- }
- void hapusBuku(list <Buku> &bukuSaya, int *banyakData){
- if (bukuSaya.empty()){
- cout << "tidak ada data, terima kasih telah menggunakan aplikasi ini...";
- } else {
- bukuSaya.clear(); //hapus semua data yang ada di list
- cout << "semua buku telah dihapus, terima kasih telah menggunakan aplikasi ini...";
- }
- *banyakData = 0;
- clearbuffer();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement