saindras

pbo-pertemuan-2

Aug 29th, 2025
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.32 KB | None | 0 0
  1. # Definisi kelas untuk Buku
  2. class Buku:
  3.     def __init__(self, judul, pengarang, ISBN):
  4.         self.judul = judul
  5.         self.pengarang = pengarang
  6.         self.ISBN = ISBN
  7.         self.status_ketersediaan = True  # Atribut status_ketersediaan, defaultnya True
  8.  
  9.     def pinjam(self):
  10.         if self.status_ketersediaan:
  11.             self.status_ketersediaan = False
  12.             return True
  13.         return False
  14.  
  15.     def kembalikan(self):
  16.         self.status_ketersediaan = True
  17.  
  18. # Definisi kelas untuk Anggota
  19. class Anggota:
  20.     def __init__(self, nama, ID_anggota):
  21.         self.nama = nama
  22.         self.ID_anggota = ID_anggota
  23.         self.daftar_buku_dipinjam = []
  24.  
  25.     def pinjam_buku(self, buku):
  26.         if buku.pinjam():
  27.             self.daftar_buku_dipinjam.append(buku)
  28.             print(f"{self.nama} berhasil meminjam buku '{buku.judul}'.")
  29.             return True
  30.         else:
  31.             print(f"Buku '{buku.judul}' tidak tersedia untuk dipinjam.")
  32.             return False
  33.  
  34.     def kembalikan_buku(self, buku):
  35.         if buku in self.daftar_buku_dipinjam:
  36.             buku.kembalikan()
  37.             self.daftar_buku_dipinjam.remove(buku)
  38.             print(f"{self.nama} berhasil mengembalikan buku '{buku.judul}'.")
  39.         else:
  40.             print(f"Buku '{buku.judul}' tidak ada dalam daftar pinjaman {self.nama}.")
  41.  
  42. # ---
  43. ### Penggunaan
  44. # Membuat objek (instance) dari kelas Buku
  45. buku1 = Buku("The Lord of the Rings", "J.R.R. Tolkien", "978-0-618-05326-7")
  46. buku2 = Buku("Pride and Prejudice", "Jane Austen", "978-0-141-43951-8")
  47.  
  48. # Membuat objek (instance) dari kelas Anggota
  49. anggota1 = Anggota("Arifin", "A-001")
  50. anggota2 = Anggota("Bella", "B-002")
  51.  
  52. print("---Skenario 1: Anggota meminjam buku---")
  53. anggota1.pinjam_buku(buku1)  # Arifin meminjam The Lord of the Rings
  54. print(f"Status ketersediaan buku '{buku1.judul}': {buku1.status_ketersediaan}")
  55. print(f"Buku yang dipinjam oleh {anggota1.nama}: {[buku.judul for buku in anggota1.daftar_buku_dipinjam]}")
  56.  
  57. print("\n---Skenario 2: Anggota lain mencoba meminjam buku yang sama---")
  58. anggota2.pinjam_buku(buku1)  # Bella mencoba meminjam The Lord of the Rings yang sudah dipinjam
  59.  
  60. print("\n---Skenario 3: Anggota mengembalikan buku---")
  61. anggota1.kembalikan_buku(buku1) # Arifin mengembalikan buku
  62. print(f"Status ketersediaan buku '{buku1.judul}': {buku1.status_ketersediaan}")
  63. print(f"Buku yang dipinjam oleh {anggota1.nama}: {[buku.judul for buku in anggota1.daftar_buku_dipinjam]}")
  64.  
  65. print("\n---Skenario 4: Anggota lain mencoba meminjam buku yang tadi dikembalikan---")
  66. anggota2.pinjam_buku(buku1)  # Bella mencoba meminjam The Lord of the Rings yang sudah dikembalikan
  67. print(f"Status ketersediaan buku '{buku1.judul}': {buku1.status_ketersediaan}")
  68. print(f"Buku yang dipinjam oleh {anggota2.nama}: {[buku.judul for buku in anggota2.daftar_buku_dipinjam]}")
  69.  
  70. print("\n---Skenario 5: Anggota lain mencoba meminjam buku lain---")
  71. anggota2.pinjam_buku(buku2)  # Bella mencoba meminjam Pride and Prejudice
  72. print(f"Status ketersediaan buku '{buku2.judul}': {buku2.status_ketersediaan}")
  73. print(f"Buku yang dipinjam oleh {anggota2.nama}: {[buku.judul for buku in anggota2.daftar_buku_dipinjam]}")
  74.  
  75. print("\n---Skenario 6: Anggota mencoba meminjam buku lain---")
  76. anggota1.pinjam_buku(buku1)  # Arifin mencoba meminjam The Lord of the Rings yang sudah dipinjam
Advertisement
Add Comment
Please, Sign In to add comment