@startuml ' --- Pengaturan Awal Diagram --- left to right direction skinparam packageStyle rectangle ' --- Aktor --- actor "Pustakawan" as pk actor "Member" as mmbr ' --- Batas Sistem (System Boundary) --- rectangle Perpustakaan { ' --- Use Case Utama --- usecase "Mendaftarkan Anggota" as UC0 usecase "Menambahkan Buku" as UC1 usecase "Meminjamkan Buku" as UC2 usecase "Mengembalikan Buku" as UC3 usecase "Memperpanjang Peminjaman" as UC4 ' --- Use Case untuk Relasi --- usecase "Memvalidasi Status Anggota" as UC_Val usecase "Menghitung Denda" as UC_Denda } ' --- Asosiasi Aktor ke Use Case --- pk --> UC0 pk --> UC1 pk --> UC2 mmbr --> UC3 pk --> UC4 ' --- Relasi Antar Use Case --- ' <> : Fungsionalitas yang WAJIB dijalankan ' Meminjamkan buku dan memperpanjang peminjaman sama-sama WAJIB memvalidasi status anggota. UC2 ..> UC_Val : <> UC4 ..> UC_Val : <> ' <> : Fungsionalitas OPSIONAL yang hanya berjalan pada kondisi tertentu ' Menghitung denda hanya terjadi JIKA buku yang dikembalikan terlambat. UC_Denda ..> UC3 : <> @enduml