Pembuatan Algoritma Pengembalian Buku Pada Perpustakaan Untuk Mengetahui Denda Keterlambatan (Latihan Bab 1 No. 14)

25 September 2024 22:47:47 Dibaca : 21

Nama: Moh. Taufik WirajayaNim: 411423038Prodi/Kelas: Pendidikan Matematika/BMata Kuliah: Komputasi dan PemrogramanDosen Pengampu: Agusyarif Rezka Nuha, S.Pd. M.Pd

 

Pada Blog kali ini kita akan membuat sebuah algoritma untuk perpustakaan yang memungkinkan pustakawan menghitung denda berdasarkan keterlambatan pengembalian buku. Setiap peminjam diberikan batas waktu pengembalian 3 hari setelah jadwal pengembalian resmi. Jika mereka terlambat, denda Rp1.000 per hari akan dikenakan. Algoritma ini juga harus bisa menangani kesalahan input tanggal dari pengguna, seperti salah format penulisan tanggal.

Tahap Pembuatan:

1. Mengimpor Modul datetime: Program ini memerlukan manipulasi tanggal untuk menghitung selisih hari antara tanggal pengembalian dan jadwal pengembalian. Oleh karena itu, kita mengimpor modul datetime yang memiliki fungsi-fungsi khusus untuk menangani objek tanggal dan waktu.

 

2. Input Data dari Pengguna: Program meminta beberapa input dari pengguna, yaitu:

  • Nama peminjam (sebagai string)
  • Judul buku yang dipinjam (sebagai string)
  • Jadwal pengembalian buku (sebagai string yang akan diubah menjadi tanggal)
  • Tanggal pengembalian aktual (sebagai string yang akan diubah menjadi tanggal)

Input ini akan ditangani dalam blok try-except untuk memastikan bahwa format input sesuai harapan.

 

 

3. Mendefinisikan Format Tanggal: Untuk memproses input tanggal, kita harus mendefinisikan format tanggal yang diinginkan. Dalam kasus ini, format yang diharapkan adalah dd-mm-yyyy (tanggal-bulan-tahun).

 

 

4. Konversi Input String Menjadi Objek datetime: Agar program bisa menghitung selisih tanggal, string yang diinput pengguna (jadwal pengembalian dan tanggal pengembalian) perlu dikonversi menjadi objek datetime. Kita menggunakan fungsi strptime dari modul datetime untuk mengonversi string menjadi objek tanggal sesuai format yang telah didefinisikan sebelumnya.

 

 

5. Validasi Tanggal Pengembalian Lebih Awal dari Jadwal: Setelah konversi, dilakukan validasi apakah pengguna memasukkan tanggal pengembalian yang lebih awal dari jadwal pengembalian. Jika benar, program akan menampilkan pesan bahwa tanggal pengembalian tidak boleh lebih awal dari jadwal pengembalian.

 

 

6. Menghitung Selisih Hari dan Keterlambatan: Jika tanggal pengembalian valid, program menghitung selisih hari antara jadwal pengembalian dan tanggal pengembalian aktual. Karena perpustakaan memberikan toleransi 3 hari, maka selisih hari dikurangi 3 untuk menentukan apakah peminjam terlambat, tepat waktu, atau lebih cepat mengembalikan buku.

 

 

7. Mengecek Keterlambatan dan Denda: Setelah mengetahui jumlah hari keterlambatan (atau kecepatan pengembalian), program akan mengecek kondisi keterlambatan:

  • Jika keterlambatan positif (> 0), maka peminjam terlambat, dan dikenakan denda Rp1.000 per hari keterlambatan. Program akan menampilkan pesan jumlah keterlambatan dan total denda.
  • Jika keterlambatan negatif (< 0), peminjam mengembalikan lebih cepat dari batas waktu, dan ditampilkan berapa hari lebih cepat.
  • Jika tepat waktu (keterlambatan = 0), peminjam mengembalikan tepat waktu, dan program akan mengucapkan terima kasih.

 

 

8. Penanganan Error Input Format Tanggal: Jika pengguna tidak memasukkan tanggal dalam format yang benar (misalnya, salah format atau huruf alih-alih angka), program akan memunculkan pesan kesalahan yang menyarankan pengguna untuk mengulang input dengan format yang benar.

 

 

9. Informasi Tambahan: Terakhir, program menampilkan informasi tambahan kepada pengguna, seperti batas waktu pengembalian (3 hari) dan denda yang berlaku. Juga, disertakan nomor layanan pelanggan untuk menghubungi jika terjadi kesalahan.

 

 

Kesimpulan:

Algoritma ini memudahkan pustakawan dalam menghitung keterlambatan pengembalian buku dan denda yang berlaku dengan mempertimbangkan toleransi 3 hari. Selain itu, algoritma juga menangani validasi input tanggal serta kesalahan format input yang mungkin terjadi.

 

PS Note:

Blog ini ditujukan untuk menyelesaikan tugas Komputasi dan Pemograman, pembuat blog bukanlah ahli dalam membuat algoritma python, jika ada kesalahan dalam algoritma ataupun pada penjelesan, sangat diapresiasi untuk koreksinya. Saya harap Program ini dapat membantu

Kategori

  • Masih Kosong

Blogroll

  • Masih Kosong