Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Definisi kelas untuk Buku
- class Buku:
- def __init__(self, judul, pengarang, ISBN):
- self.judul = judul
- self.pengarang = pengarang
- self.ISBN = ISBN
- self.status_ketersediaan = True # Atribut status_ketersediaan, defaultnya True
- def pinjam(self):
- if self.status_ketersediaan:
- self.status_ketersediaan = False
- return True
- return False
- def kembalikan(self):
- self.status_ketersediaan = True
- # Definisi kelas untuk Anggota
- class Anggota:
- def __init__(self, nama, ID_anggota):
- self.nama = nama
- self.ID_anggota = ID_anggota
- self.daftar_buku_dipinjam = []
- def pinjam_buku(self, buku):
- if buku.pinjam():
- self.daftar_buku_dipinjam.append(buku)
- print(f"{self.nama} berhasil meminjam buku '{buku.judul}'.")
- return True
- else:
- print(f"Buku '{buku.judul}' tidak tersedia untuk dipinjam.")
- return False
- def kembalikan_buku(self, buku):
- if buku in self.daftar_buku_dipinjam:
- buku.kembalikan()
- self.daftar_buku_dipinjam.remove(buku)
- print(f"{self.nama} berhasil mengembalikan buku '{buku.judul}'.")
- else:
- print(f"Buku '{buku.judul}' tidak ada dalam daftar pinjaman {self.nama}.")
- # ---
- ### Penggunaan
- # Membuat objek (instance) dari kelas Buku
- buku1 = Buku("The Lord of the Rings", "J.R.R. Tolkien", "978-0-618-05326-7")
- buku2 = Buku("Pride and Prejudice", "Jane Austen", "978-0-141-43951-8")
- # Membuat objek (instance) dari kelas Anggota
- anggota1 = Anggota("Arifin", "A-001")
- anggota2 = Anggota("Bella", "B-002")
- print("---Skenario 1: Anggota meminjam buku---")
- anggota1.pinjam_buku(buku1) # Arifin meminjam The Lord of the Rings
- print(f"Status ketersediaan buku '{buku1.judul}': {buku1.status_ketersediaan}")
- print(f"Buku yang dipinjam oleh {anggota1.nama}: {[buku.judul for buku in anggota1.daftar_buku_dipinjam]}")
- print("\n---Skenario 2: Anggota lain mencoba meminjam buku yang sama---")
- anggota2.pinjam_buku(buku1) # Bella mencoba meminjam The Lord of the Rings yang sudah dipinjam
- print("\n---Skenario 3: Anggota mengembalikan buku---")
- anggota1.kembalikan_buku(buku1) # Arifin mengembalikan buku
- print(f"Status ketersediaan buku '{buku1.judul}': {buku1.status_ketersediaan}")
- print(f"Buku yang dipinjam oleh {anggota1.nama}: {[buku.judul for buku in anggota1.daftar_buku_dipinjam]}")
- print("\n---Skenario 4: Anggota lain mencoba meminjam buku yang tadi dikembalikan---")
- anggota2.pinjam_buku(buku1) # Bella mencoba meminjam The Lord of the Rings yang sudah dikembalikan
- print(f"Status ketersediaan buku '{buku1.judul}': {buku1.status_ketersediaan}")
- print(f"Buku yang dipinjam oleh {anggota2.nama}: {[buku.judul for buku in anggota2.daftar_buku_dipinjam]}")
- print("\n---Skenario 5: Anggota lain mencoba meminjam buku lain---")
- anggota2.pinjam_buku(buku2) # Bella mencoba meminjam Pride and Prejudice
- print(f"Status ketersediaan buku '{buku2.judul}': {buku2.status_ketersediaan}")
- print(f"Buku yang dipinjam oleh {anggota2.nama}: {[buku.judul for buku in anggota2.daftar_buku_dipinjam]}")
- print("\n---Skenario 6: Anggota mencoba meminjam buku lain---")
- anggota1.pinjam_buku(buku1) # Arifin mencoba meminjam The Lord of the Rings yang sudah dipinjam
Advertisement
Add Comment
Please, Sign In to add comment