- fork dan clone repositori ASD_Task_2
- buka dan modifikasi isi project task2_2017 dari code::block
- tuliskan kode kalian pada bagian yang telah disediakan
Buatlah aplikasi sederhana untuk menympan data tanggal lahir buku
- buatlah ADT tanggal sebagai berikut
TYPE tanggal :
<
dd : integer,
mm : integer,
yy : integer;
>- implementasikan fungsi primitif tanggal
fungsi create_tanggal(dd,mm,yy : integer):tanggal
/** fungsi mengeset tanggal tgl dengan hari, bulan, dan tahun dan mengembalikan hasilnya **/
fungsi cek_tanggal(tgl : tanggal) : boolean
/**
* fungsi mengecek tanggal
* fungsi mengembalikan nilai true jika isi tanggal sesuai dengan bulannya
* fungsi mengembalikan nilai false jika isi tanggal atau bulan atau tahun salah
**/
prosedur tampil_tanggal(tgl : tanggal)
/**
* fungsi menampilkan tanggal bulan tahun dengan format menampilkan nama bulan
* contoh : 1 Januari 1980
**/
fungsi selisih_hari(tgl1, tgl2 : tanggal) : integer
/**
* fungsi menghitung selisih hari dari variable tgl1 dan tgl2
* fungsi selalu mengembalikan selisih dalam nilai positif
* syarat tahun tgl1 dan tgl2 harus sama
* jika tahun pada tgl1 berbeda dengan tgl2, maka fungsi mengembalikan nilai -1
* asumsi selisih hari bulan semuanya sama = 30
**/- buatlah ADT Buku sebagai berikut
TYPE buku :
<
judul : string
pengarang : string
terakhir_dipinjam : tanggal
status_dipinjam : boolean
>- implementasikan fungsi primitif buku
fungsi create_buku(judul, pengarang : string, tgl,bln,thn : integer) return buku
/**
* fungsi mengeset buku b dengan judul, pengarang, dan mengeset status=false
* dan mengembalikan hasilnya
**/
prosedur pinjam_buku(i/o b : buku; tgl,bln,thn:integer) return integer
/**
* fungsi mengeset tanggal pinjam dari buku b dengan tgl, bln, thn,
* dan mengeset status pinjam menjadi true
* fungsi memanggil fungsi create_tanggal untuk membuat tanggal pinjam
**/
fungsi kembalikan_buku(i/o b : buku; tgl,bln,thn:integer)
/**
* fungsi mengeset status pinjam menjadi false
* fungsi memanggil fungsi create_tanggal untuk membuat tanggal kembali
* fungsi mengembalikan selisih hari dari tanggal pinjam ke tanggal kembali
* dengan menggunakan fungsi selisih_hari
**/
prosedur tampil_buku(b : buku)
/**
* fungsi menampilkan judul, pengarang, dan status dipinjam dari buku b
* contoh output:
Judul Buku : XXXXXXX,
Pengarang : AAAA AAAAAAA,
Status : dipinjam
**/- jalankan main.cpp
- tambahkan proses mengecek validitas tanggal setiap membuat tanggal pada fungsi pinjam dan kembali
- ubahlah kode di dalam aplikasi.cpp sehingga terdapat proses untuk meminta input di setiap menu
- percantik tampilan output sehingga menyerupai contoh
example task2_2017.exe
- tambahkan sebuah menu atau edit menu pada aplikasi, sehingga memberikan suatu fungsionalitas baru, contohnya (pilih salah satu):
- fungsi mengoutputkan harga/denda pinjam
- fungsi tidak bisa meminjam buku yang sedang dipinjam
- fungsi menghitung jumlah buku yang sedang dipinjam
- mengecek id buku yang dipilih tersedia
- dll