Academia.eduAcademia.edu

Laporan Tugas Akhir - DPK - Sistem Perpustakaan Sekolah

2023

PELAYANAN PERPUSTAKAAN SEKOLAH MENGGUNAKAN BAHASA PEMROGRAMAN C++ Disusun untuk Memenuhi Tugas Akhir Matakuliah Praktikum Dasar Pemrograman Komputer yang Dibimbing oleh Bapak Wahyu Sakti Gunawan Irianto Oleh: MOHAMMAD ZAINUL ABIDIN 230533605016 S1 PTI’23 OFF B UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK DEPARTEMEN TEKNIK ELEKTRO DAN INFORMATIKA PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA DESEMBER 2023 PELAYANAN PERPUSTAKAAN SEKOLAH MENGGUNAKAN BAHASA PEMROGRAMAN C++ 1. Pendahuluan 1.1 Latar Belakang Perpustakaan adalah suatu ruangan yang dikelola oleh lembaga pendidikan yang digunakan untuk sarana tempat belajar yang menyediakan berbagai macam koleksi buku. Sekolah merupakan bangunan atau lembaga untuk sarana dan prasarana belajar dan mengajar serta tempat bagi murid-murid untuk menerima dan memberi pelajaran. Untuk mewujudkan perpustakaan yang terorganisasi secara baik dan sistematis. Maka dari itu, perpustakaan harus mempunyai aplikasi perpustakaan sekolah, yang dapat memberikan kemudahan bagi proses peminjaman atau pendataan pengunjung di perpustakaan sekolah. Aplikasi perpustakaan ini dibuat sebagai solusi untuk sekolahsekolah yang tidak memiliki kecukupan finansial. Aplikasi perpustakaan dapat mempermudah tugas pustakawan diantaranya adalah pendataan pengunjung, menginputkan buku, pendataan peminjaman dan pengembalian buku yang lebih terdata. (Fahmi, dkk., 2016). Penggunaan teknologi sistem informasi memudahkan manusia untuk memperoleh, mengelola informasi dan data, dan menyimpan data dan informasi. Sistem Informasi Perpustakaan di sekolah masih banyak yang menggunakan sistem manual, mulai dari pencatatan data anggota yang meminjam buku hingga pencatatan data buku. Pada era globalisasi saat ini, teknologi informasi dan komunikasi semakin cangih dan cepat. Oleh karena itu, perpustakaan harus dapat memanfaatkan teknologi informasi dan komunikasi dengan akurat, relevan dan tepat waktu. (Wulandari, dkk., 2019). 1.2 Tujuan 1.2.1 Sebagai media untuk mempermudah tugas pustakawan 1.2.2 Mengganti sistem manual di perpustakaan menjadi sistem digital 1.2.3 Mempermudah untuk pendataan pengunjung maupun peminjaman buku perpustakaan 1.3 Batasan Masalah 1.3.1 Saat memasukkan tanggal, masih bisa menginputkan selain angka. 1.3.2 Bisa memasukkan tanggal sesukanya, misal bisa memasukkan bulan 15. 1.3.3 Pada menu kunjungan, NIM bisa diinputkan selain angka. 1.3.4 Akan terjadi error saat memasukkan selain angka pada nomer buku yang ingin dipinjam. 2. Kode Program #include <iostream> #include <string> #include <sstream> using namespace std; void garis(){ //fungsi untuk garis cout<<"============================================"<<endl; } //memanggil "by referance" void menu_utama(string &tanggal); void daftar_buku(string &tanggal); void back(string &tanggal); string tanggal; string hari, bulan, tahun; const int max_tanggal = 1; string tanggal_baru[max_tanggal]; int jumlah_tanggal = 0; string hari_baru, bulan_baru, tahun_baru; string *ptrPoin_tanggal_baru = tanggal_baru;//penggunaan pointer void perbarui_tanggal(string &tanggal){ //fungsi perbarui tanggal string tanggal_baru_input; garis(); cout<<" cout<<" PERBARUI TANGGAL PERPUSTAKAAN"<<endl; SKENSA "<<endl; garis(); cout<<"(Ketik 0 jika ingin membatalkan) "<<endl; garis(); do{ if (jumlah_tanggal < max_tanggal){ //agar tanggal baru yang dimasukkan lebih besar dari variabel tanggal cout<<"Masukkan Tanggal Baru :"<<endl; cout<<"Masukkan Tanggal : "; cin>>hari_baru; hari_baru = hari_baru.substr(0,2); if (hari_baru == "0"){ system("cls"); menu_utama(tanggal); } cout<<"Masukkan Bulan : "; cin>>bulan_baru; bulan_baru = bulan_baru.substr(0,2); cout<<"Masukkan Tahun : "; cin>>tahun_baru; tahun_baru = tahun_baru.substr(0,2); //mengecek tanggal baru harus lebih besar dari tanggal if (tahun_baru > tahun || (tahun_baru == tahun && bulan_baru > bulan) || (tahun_baru == tahun && bulan_baru == bulan && hari_baru > hari)){ stringstream ss; ss<<hari_baru<<bulan_baru<<tahun_baru; ptrPoin_tanggal_baru[jumlah_tanggal] = ss.str(); //pointer if (tanggal_baru[jumlah_tanggal].length() == 6){ //jika tanggal sesuai jumlah_tanggal++; garis(); cout<<"Tanggal Berhasil Diperbarui"<<endl; garis(); system("cls"); menu_utama(tanggal); }else{ system("cls"); garis(); cout<<" PERBARUI TANGGAL PERPUSTAKAAN"<<endl; cout<<" SKENSA "<<endl; garis(); cout<<"Masukkan Tanggal Sesuai Format"<<endl; garis(); } }else{ //jika tanggal lebih kecil system("cls"); garis(); cout<<" cout<<" PERBARUI TANGGAL PERPUSTAKAAN"<<endl; SKENSA "<<endl; garis(); cout<<"Masukkan Tanggal Yang Lebih Besar"<<endl; garis(); } }else{ cout<<"TANGGAL PENUH"<<endl; garis(); back(tanggal); } }while(true); system("cls"); menu_utama(tanggal); } //pada fungsi daftar buku, dibuat seperti menu kunjungan (guna array) const int max_buku = 10; string judul_buku[max_buku]; bool status[max_buku]; //bool digunakan untuk status string peminjam[max_buku]; string tanggal_pinjam[max_buku]; string tanggal_kembali[max_buku]; int jumlah_buku = 0; void tambah_buku(string &tanggal){ if (jumlah_buku == 0){ //daftar buku untuk buku yang tanpa ditambahkan judul_buku[jumlah_buku] = "Buku Kamus Bahasa Indonesia"; status[jumlah_buku] = false; jumlah_buku++; judul_buku[jumlah_buku] = "Buku Kamus Bahasa Ingris"; status[jumlah_buku] = false; // Buku A belum dipinjam jumlah_buku++; judul_buku[jumlah_buku] = "Buku Sastra Ronggeng Dukuh Paruk"; status[jumlah_buku] = false; jumlah_buku++; judul_buku[jumlah_buku] = "Buku Sastra Tetralogi Buru"; status[jumlah_buku] = false; jumlah_buku++; judul_buku[jumlah_buku] = "Buku Ensiklopedia Alam Semesta"; status[jumlah_buku] = false; jumlah_buku++; } garis(); cout<<"\t TAMBAH BUKU PERPUSTAKAAN"<<endl; cout<<"\t\t SKENSA"<<endl; garis(); cout<<"(Ketik 0 jika ingin membatalkan) "<<endl; garis(); if (jumlah_buku < max_buku){ cout<<"Masukkan Judul Buku : "; cin.ignore(); getline(cin, judul_buku[jumlah_buku]); if (judul_buku[jumlah_buku] == "0"){ //untuk membatalkan system("cls"); menu_utama(tanggal); } judul_buku[jumlah_buku] = judul_buku[jumlah_buku]; status[jumlah_buku] = false; // Awalnya buku belum dipinjam jumlah_buku++; cout<<"Buku berhasil ditambahkan ke daftar."<<endl; }else{ cout<<"Maaf, daftar buku penuh."<<endl; } garis(); back(tanggal); } void daftar_buku(string &tanggal){ //fungsi daftar buku dan pinjam buku if (jumlah_buku == 0){ //daftar buku untuk buku yang tanpa ditambahkan judul_buku[jumlah_buku] = "Buku Kamus Bahasa Indonesia"; status[jumlah_buku] = false; jumlah_buku++; judul_buku[jumlah_buku] = "Buku Kamus Bahasa Ingris"; status[jumlah_buku] = false; // Buku A belum dipinjam jumlah_buku++; judul_buku[jumlah_buku] = "Buku Sastra Ronggeng Dukuh Paruk"; status[jumlah_buku] = false; jumlah_buku++; judul_buku[jumlah_buku] = "Buku Sastra Tetralogi Buru"; status[jumlah_buku] = false; jumlah_buku++; judul_buku[jumlah_buku] = "Buku Ensiklopedia Alam Semesta"; status[jumlah_buku] = false; jumlah_buku++; } int pilihan; string nama_pinjam; garis(); cout<<"\t DAFTAR BUKU PERPUSTAKAAN"<<endl; cout<<"\t\t SKENSA"<<endl; garis(); cout<<"No. Judul Buku Status"<<endl; garis(); for(int i = 0; i<jumlah_buku; i++){ //perintah memunculkan buku cout<<" "<<i+1<<". "<<judul_buku[i]; if(status[i]){ cout<<" Dipinjam"<<endl; cout<<" Tersedia"<<endl; }else{ } } //peminjaman buku pada tanggal awal if (tahun_baru < tahun || (tahun_baru == tahun && bulan_baru < bulan) || (tahun_baru == tahun && bulan_baru == bulan && hari_baru < hari)){ do{ garis(); cout<<"(ketik 0 jika tidak ingin pinjam) "<<endl; garis(); cout<<"Masukkan nomer buku yang ingin dipinjam : "; cin>>pilihan; if(pilihan == 0){ system("cls"); menu_utama(tanggal); } cout<<"Masukkan Nama Anda : "; cin.ignore(); getline(cin, nama_pinjam); //perintah untuk meminjam buku dan merubah status buku if(pilihan >= 1 && pilihan <= jumlah_buku){ if(!status[pilihan - 1]){ //kenapa ada pilihan - 1? //karena daftar buku kan pilihannya dari 1, sedangkan dalam coding itu dari 0 peminjam[pilihan - 1] = nama_pinjam; status[pilihan - 1] = true; tanggal_pinjam[pilihan - 1] = tanggal; garis(); cout<<"Anda telah berhasil meminjam buku"<<endl; garis(); cout<<"Berikut Rincian Peminjaman : "<<endl; cout<<"--------------------------------------------"<<endl; cout<<"Nama : "<<peminjam[pilihan - "<<judul_buku[pilihan - 1]<<endl; cout<<"Buku : 1]<<endl; cout<<"Tanggal : "<<tanggal<<endl; garis(); break; }else{ garis(); cout<<"Maaf, "<<judul_buku[pilihan Sedang dipinjam"<<endl; } }else if (pilihan == 0){ system("cls"); menu_utama(tanggal); - 1]<<" }else{ garis(); cout<<"Masukkan Nomer Buku Yang Tersedia"<<endl; } }while(true); back(tanggal); //peminjaman buku tanggal baru [0] }else if (tahun_baru > tahun || (tahun_baru == tahun && bulan_baru > bulan) || (tahun_baru == tahun && bulan_baru == bulan && hari_baru > hari)){ do{ garis(); cout<<"(ketik 0 jika tidak ingin pinjam) "<<endl; garis(); cout<<"Masukkan nomer buku yang ingin dipinjam : "; cin>>pilihan; if(pilihan == 0){ system("cls"); menu_utama(tanggal); } cout<<"Masukkan Nama Anda : "; cin.ignore(); getline(cin, nama_pinjam); //perintah untuk meminjam buku dan merubah status buku if(pilihan >= 1 && pilihan <= jumlah_buku){ if(!status[pilihan - 1]){ peminjam[pilihan - 1] = nama_pinjam; status[pilihan - 1] = true; tanggal_pinjam[pilihan - 1] = tanggal_baru[0]; garis(); cout<<"Anda buku"<<endl; garis(); telah berhasil meminjam cout<<"Berikut Rincian Peminjaman : "<<endl; cout<<"--------------------------------------------"<<endl; cout<<"Nama : "<<peminjam[pilihan - "<<judul_buku[pilihan - 1]<<endl; cout<<"Buku : 1]<<endl; cout<<"Tanggal : "<<tanggal_baru[0]<<endl; garis(); break; }else{ garis(); cout<<"Maaf, "<<judul_buku[pilihan - 1]<<" Sedang dipinjam"<<endl; } }else if (pilihan == 0){ system("cls"); menu_utama(tanggal); }else{ garis(); cout<<"Masukkan Nomer Buku Yang Tersedia"<<endl; } }while(true); back(tanggal); } } void pengembalian_buku(string &tanggal){ //fungsi untuk mengembalikan buku garis(); cout<<"\tPENGEMBALIAN BUKU PERPUSTAKAAN"<<endl; cout<<"\t\t SKENSA" <<endl; garis(); int pilihan; cout<<"No. Judul Buku Status"<<endl; garis(); for (int i = 0; i < jumlah_buku; i++){ //perintah memunculkan buku cout<<" "<<i + 1<<". " <<judul_buku[i]; if (status[i]){ cout<<" Dipinjam"<<endl; }else{ cout<<" Tersedia"<<endl; } } //pengembalian buku pada tanggal awal if (tahun_baru < tahun || (tahun_baru == tahun && bulan_baru < bulan) || (tahun_baru == tahun && bulan_baru == bulan && hari_baru < hari)){ do{ garis(); cout<< "(ketik 0 jika tidak ingin kembali) "<<endl; garis(); cout<<"Masukkan nomor buku yang ingin dikembalikan : "; cin>>pilihan; if (pilihan == 0){ system("cls"); menu_utama(tanggal); } //rincian pengembalian buku tanggal awal if (pilihan >= 1 && pilihan <= jumlah_buku){ if (status[pilihan - 1]){ status[pilihan - 1] = false; //diubah ke false, false artinya sudah tersedia tanggal_kembali[pilihan - 1] = tanggal; garis(); cout <<"Anda telah berhasil mengembalikan buku"<<endl; garis(); cout<<"Berikut Rincian Peminjaman : "<<endl; cout<<"---------------------------------------------"<<endl; cout<<"Nama : " << peminjam[pilihan - 1]<<endl; cout<<"Buku : " << judul_buku[pilihan - 1]<<endl; cout<<"Tanggal 1]<<endl; Pinjam : " << tanggal_pinjam[pilihan - cout<<"Tanggal Kembali: " << tanggal_kembali[pilihan - 1]<<endl; cout<<"---------------------------------------------"<<endl; cout<<" TERIMA KASIH"<<endl; garis(); back(tanggal); }else{ garis(); cout<<"Maaf, "<<judul_buku[pilihan - 1]<<" Tidak sedang dipinjam"<<endl; } }else{ garis(); cout<<"Masukkan Nomor Buku Yang Tersedia"<<endl; } }while(true); //pengembalian buku pada tanggal baru [0] }else if (tahun_baru > tahun || (tahun_baru == tahun && bulan_baru > bulan) || (tahun_baru == tahun && bulan_baru == bulan && hari_baru > hari)){ do { garis(); cout<<"(ketik 0 jika tidak ingin kembali) "<<endl; garis(); cout<<"Masukkan nomor buku yang ingin dikembalikan : "; cin>>pilihan; if (pilihan == 0){ system("cls"); menu_utama(tanggal); } //rincian pengembalian buku tanggal baru [0] if (pilihan >= 1 && pilihan <= jumlah_buku){ if (status[pilihan - 1]){ status[pilihan - 1] = false; //diubah ke false, false artinya sudah tersedia tanggal_kembali[pilihan - 1] = tanggal_baru[0]; garis(); cout <<"Anda telah berhasil mengembalikan buku"<<endl; garis(); cout<<"Berikut Rincian Peminjaman : "<<endl; cout<<"---------------------------------------------"<<endl; cout<<"Nama : "<<peminjam[pilihan - 1]<<endl; cout<<"Buku : "<<judul_buku[pilihan - 1]<<endl; cout<<"Tanggal Pinjam : "<<tanggal_pinjam[pilihan - 1]<<endl; cout<<"Tanggal Kembali: "<<tanggal_kembali[pilihan - 1] << endl; cout<<"---------------------------------------------" << endl; cout<<" TERIMA KASIH"<<endl; garis(); back(tanggal); }else{ garis(); cout<<"Maaf, "<<judul_buku[pilihan - 1]<<" Tidak dipinjam"<<endl; } }else{ garis(); cout<<"Masukkan Nomor Buku Yang Tersedia"<<endl; } }while(true); } } void back(string &tanggal){ //fungsi kembali to menu utama string menu; do{ cout<<"Apakah anda ingin kembali ke menu utama (y/n): "; cin>>menu; if (menu == "y" || menu == "Y"){ sedang system("cls"); menu_utama(tanggal); }else if(menu == "n" || menu == "N"){ exit(0); }else{ cout<<"Harap masukkan pilihan yang benar!"<<endl; } }while(true); } const int max_kunjungan0 = 10; //deklarasi nilai maskimal pengunjung string nama0[max_kunjungan0], nim0[max_kunjungan0]; int daftar_kunjungan0 = 0; //menyimpan semua pengunjung const int max_kunjungan = 10; //deklarasi nilai maskimal pengunjung string nama[max_kunjungan], nim[max_kunjungan]; int daftar_kunjungan = 0; //menyimpan semua pengunjung void kunjungan_tanggal(string &tanggal){ //fungsi menu 1. kunjungan if (tahun_baru < tahun || (tahun_baru == tahun && bulan_baru < bulan) || (tahun_baru == tahun && bulan_baru == bulan && hari_baru < hari)){ if(daftar_kunjungan < max_kunjungan){ garis(); cout<<"\t\t KUNJUNGAN"<<endl; garis(); cout<<"\tSelamat datang di Menu Kunjungan"<<endl; cout<<"\t Perpustakaan SKENSA"<<endl; garis(); cout<<"(Ketik 0 jika ingin membatalkan) "<<endl; garis(); cout<<"Harap Masukkan Identitas Anda :"<<endl; cout<<"Nama : "; cin.ignore(); //agar bisa input nama dengan karakter huruf+spasi getline(cin, nama[daftar_kunjungan]); //penggunaan array if (nama[daftar_kunjungan] == "0"){ //untuk membatalkan system("cls"); menu_utama(tanggal); } nama[daftar_kunjungan] = nama[daftar_kunjungan].substr(0, 15); //dibatasi 15 karakter cout<<"NIM : "; cin>>nim[daftar_kunjungan]; if (nim[daftar_kunjungan] == "0"){ system("cls"); menu_utama(tanggal); } daftar_kunjungan++; //untuk menambah jumlah pengunjung garis(); cout<<"Terima Kasih Atas Kunjungan Anda:)"<<endl; garis(); back(tanggal); } }else if (tahun_baru > tahun || (tahun_baru == tahun && bulan_baru > bulan) || (tahun_baru == tahun && bulan_baru == bulan && hari_baru > hari)){ if (daftar_kunjungan0 < max_kunjungan0){ garis(); cout<<"\t\t KUNJUNGAN"<<endl; garis(); cout<<"\tSelamat datang di Menu Kunjungan"<<endl; cout<<"\t Perpustakaan SKENSA"<<endl; garis(); cout<<"(Ketik 0 jika ingin membatalkan) "<<endl; garis(); cout<<"Harap Masukkan Identitas Anda :"<<endl; cout<<"Nama : "; cin.ignore(); huruf+spasi //agar bisa input nama dengan karakter getline(cin, nama0[daftar_kunjungan0]); //penggunaan array nama0[daftar_kunjungan0] = nama0[daftar_kunjungan0].substr(0, 15); //dibatasi 15 karakter cout<<"NIM : "; cin>>nim0[daftar_kunjungan0]; daftar_kunjungan0++; //untuk menambah jumlah pengunjung garis(); cout<<"Terima Kasih Atas Kunjungan Anda:)"<<endl; garis(); back(tanggal); } if (nama0[daftar_kunjungan0] == "0"){ //untuk membatalkan system("cls"); menu_utama(tanggal); } } } void riwayat(string &tanggal){ // fungsi riwayat garis(); cout<<"\tMENU RIWAYAT PERPUSTAKAAN"<<endl; cout<<"\t\t SKENSA"<<endl; garis(); cout<<"Riwayat pengunjung Perpustakaan SKENSA"<<endl; garis(); cout<<"Tanggal\t Nama\t\t NIM"<<endl; cout<<"---------------------------------------------"<<endl; // Menampilkan pengunjung pada tanggal awal if (tahun_baru < tahun || (tahun_baru == tahun && bulan_baru < bulan) || (tahun_baru == tahun && bulan_baru == bulan && hari_baru < hari)){ for (int a = 0; a < daftar_kunjungan; a++){ // untuk menampilkan array pengunjung cout<<tanggal<<"\t } } "<<nama[a]<<"\t "<<nim[a]<<endl; // Menampilkan pengunjung pada tanggal baru [0] if (tahun_baru > tahun || (tahun_baru == tahun && bulan_baru > bulan) || (tahun_baru == tahun && bulan_baru == bulan && hari_baru > hari)){ for (int b = 0; b < daftar_kunjungan0; b++){ // untuk menampilkan array pengunjung cout<<tanggal_baru[0]<<"\t "<<nama0[b]<<"\t "<<nim0[b]<<endl; } } garis(); back(tanggal); } //fungsi menu utama void menu_utama(string &tanggal){ int pilihan_menu; garis(); cout<<"\t LAYANAN PERPUSTAKAAN"<<endl; cout<<"\t\t SKENSA"<<endl; garis(); //untuk menampilkan tanggal yang paling besar if (jumlah_tanggal > 0){ cout<<"Tanggal : "<<tanggal_baru[jumlah_tanggal - 1]<<endl; }else{ cout<<"Tanggal : "<<tanggal<<endl; } garis(); cout<<"\tSilahkan Pilih Menu : "<<endl; cout<<"\t1. Kunjungan"<<endl; cout<<"\t2. Tambah Buku"<<endl; cout<<"\t3. Daftar dan Pinjam Buku"<<endl; cout<<"\t4. Pengembalian Buku"<<endl; cout<<"\t5. Riwayat"<<endl; cout<<"\t6. Perbarui Tanggal"<<endl; cout<<"\t7. Keluar"<<endl; garis(); do{ //agar langsung dicorect saat pilihan salah cout<<"Masukkan Pilihan Anda : "; cin>>pilihan_menu; switch(pilihan_menu){ case 1: system("cls"); kunjungan_tanggal(tanggal); //pemanggilan fungsi break; case 2: system("cls"); tambah_buku(tanggal); break; case 3: system("cls"); daftar_buku(tanggal); break; case 4: system("cls"); pengembalian_buku(tanggal); break; case 5: system("cls"); riwayat(tanggal); break; case 6: system("cls"); perbarui_tanggal(tanggal); break; case 7: exit(0); break; default: cout<<"Masukkan sesuai menu yang tersedia!"<<endl; } }while(pilihan_menu <= 1 || pilihan_menu >= 7); } int main() { system("color F0"); //warna cmd putih string tanggal; garis(); cout<<"\t LAYANAN PERPUSTAKAAN"<<endl; cout<<"\t\t SKENSA"<<endl; garis(); do{ //perulangan agar tanggal hanya 6 karakter cout<<"Masukkan Tanggal (DDMMYY): "<<endl; cout<<"Masukkan Tangal : "; cin>>hari; hari = hari.substr(0,2); cout<<"Masukkan Bulan : "; cin>>bulan; bulan = bulan.substr(0,2); cout<<"Masukkan Tahun : "; cin>>tahun; tahun = tahun.substr (0,2); //untuk menggabungkan tanggal menjadi satu stringstream ss; ss<<hari<<bulan<<tahun; tanggal = ss.str(); cout<<tanggal; //membatasi karakter tanggal hanya 6 if (tanggal.length() != 6){ system("cls"); garis(); cout<<"\t LAYANAN PERPUSTAKAAN"<<endl; cout<<"\t\t SKENSA"<<endl; garis(); cout<<"Masukkan Tanggal Sesuai Format"<<endl; }else{ break; } }while(true); system("cls"); //menghapus kodingan menu_utama(tanggal); } 3. Lampiran Gambar 1. Tampilan awal program Tampilan awal porgram saat baru dijalankan, diminta untuk memasukkan tanggal, bulan dan tahun sesuai dengan format yang diminta. Gambar 2. Tampilan menu utama Tampilan menu utama layanan perpustakaan Skensa, diminta memasukkan pilihan nomer menu untuk memilih salah satu menu. Gambar 3. Tampilan menu kunjungan Tampilan pada menu 1. Kunjungan. Berguna untuk mengisi data para pengunjung dengan memasukkan nama dan nim. Gambar 4. Tampilan menu tambah buku Tampilan pada menu ke 2. Tambah Buku. Anda diminta untuk memasukkan judul buku yang ingin ditambahkan. Gambar 5. Tampilan menu daftar buku Tampilan pada menu 3. Daftar Buku. Terdapat beberapa buku yang sudah tersedia di awal dan buku yang baru ditambahkan, anda diminta untuk memilih nomer buku yang ingin dipinjam, jika tidak ingin pinjam maka pilih 0. Gambar 6. Tampilan jika berhasil meminjam Tampilan pada saat berhasil meminjam buku, sebelumnya anda diminta untuk memasukkan nama terlebih dahulu. Gambar 7. Tampilan jika buku tidak tersedia Tampilan jika nomer buku yang ingin dipinjam tidak tersedia karena nomer buku yang dimasukkan tidak ada dalam daftar buku. Gambar 8. Tampilan jika buku sedang dipinjam Tampilan jika memasukkan nomer buku yang statusnya masih dipinjam. Gambar 9. Tampilan menu pengembalian buku Tampilan awal pada menu 4. Pengembalian Buku, diminta untuk memasukkan nomer buku yang dipinjam. Gambar 10. Tampilan berhasil mengembalikan Tampilan jika berhasil mengembalikan buku dengan memasukkan nomer buku yang sedang dipinjam. Gambar 11. Tampilan menu riwayat Tampilan pada menu 5. Riwayat, terlihat daftar pengunjung pada hari itu. Gambar 12. Tampilan menu perbarui tanggal Tampilan pada menu 6. Perbarui Tanggal. Diminta memasukkan tanggal baru yang lebih besar dari pada tanggal awal. Gambar 13. Tampilan salah memasukkan tanggal Tampilan jika salah memasukkan tanggal dikarenakan tanggal yang dimasukkan lebih kecil dari pada tanggal awal. Gambar 14. Tampilan saat tanggal penuh Tampilan menu perbarui tanggal jika sudah memperbarui tanggal. Gambar 15. Saat salah memasukkan pilihan Tampilan jika pilihan yang kuta masukkan tidak sesuai karena pilihan tidak tersedia. 4. Kesimpulan Praktikum ini mencapai tujuan utamanya dalam mengembangkan dan menerapkan program sederhana perpustakaan sekolah. Program tersebut berhasil mengintegrasikan fungsi dasar perpustakaan, termasuk penambahan buku, peminjaman, pengembalian, dan pendataan pengunjung. Selain itu, program ini membawa manfaat dalam hal efisiensi operasional. Pemberitahuan tanggal peminjaman saat pengembalian buku juga sangat membantu pustakawan jika mungkin pustakawan tersebut lupa tanggal peminjamannya. Penerapan riwayat pengunjung dalam satu hari juga berfungsi untuk membantu atau memberi informasi adaa berapa banyak pengunjung perpustakaan pada hari itu. Meskipun demikian, dalam program perpsustakaan sekolah ini terdapat beberapa kekurangan atau batasan. Seperti batasan dalam peminjaman buku dan pengembalian buku yang tidak terdapat ketentuan denda saat buku melebihi batas waktu peminjaman. Namun secara keseluruhan, praktikum ini berhasil menciptakan solusi dalam efisiensi yang dapat membantu tugas pustakawan dan dapat menngganti dari sistem manual atau menggunakan kertas menjadi sistem digital DAFTAR RUJUKAN Tim Asisten Dosen. 2016. Modul 1 Pengenalan Bahasa C++, Algoritma Pemrograman , Ide Visual C++, Dan Dasar-Dasar Bahasa C++. Malang: Universitas Negeri Malang. Tim Asisten Dosen. 2017. Modul 2 Pemrograman Dasar C++, Operator. Malang: Universitas Negeri Malang. Tim Asisten Dosen. 2017. Modul 3 Pemrograman Dasar C++, Operasi Kondisi. Malang: Universitas Negeri Malang. Tim Asisten Dosen. 2017. Modul 4 Pemrograman Dasar C++, Perulangan. Malang: Universitas Negeri Malang. Tim Asisten Dosen. 2017. Modul 5 Pemrograman Dasar C++, Array (Larik). Malang: Universitas Negeri Malang. Tim Asisten Dosen. 2017. Modul 6 Pemrograman Dasar C++, Function (Fungsi). Malang: Universitas Negeri Malang. Tim Asisten Dosen. 2017. Modul 7 Pemrograman Dasar C++, Pointer. Malang: Universitas Negeri Malang. Khairul Fahmi, dkk. 2016. Perancangan Dan Implementasi Aplikasi Perpustakaan Berbasis Multitalent. E- Journals Unmul 11(1). Dewi Ayu Wulandari, dkk. 2019. Rancang Bangun Aplikasi Pepustakaan Sekolah Berbasis Website. E-Journals Nusamandiri 4(2). Rahmi Revalina. 2015. Perpustakaan Elektronik Pustekkom: Memfalitasi Peningkatan Kompetensi Profesional Dan Teknologi Guru. Jurnal Teknodik Kemdikbud 19(3).