CCCPaste

pbo-pertemuan-5

@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