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).