Sistem Manajemen Perpustakaan yang mengimplementasikan 7 design patterns fundamental
untuk mengelola operasi perpustakaan seperti peminjaman buku, pengembalian, manajemen
anggota, dan notifikasi.
Fitur Utama:
- Manajemen buku
- Manajemen user
- Transaksi peminjaman/pengembalian
- Sistem notifikasi
- Label buku dinamis
- Laporan
Design Pattern:
No Pattern Kategori Package Deskripsi
1 Singleton Creational Singleton/ Single instance untuk
LibrarySystem &
NotificationSystem
2 Factory Creational Factory/ Pembuatan User &
Book objects
3 Prototype Creational Prototype/ & Cloning buku dengan
Core_Classes/ BookPrototype
interface
4 Facade Structural Facade/ Simplifikasi operasi
kompleks
5 Decorator Structural Decorator/ Label dinamis untuk
buku
6 Observer Behavorial Observer/ Sistem notifikasi
event-driven
7 State Behavorial State/ Management status
buku
1. Singleton
Fungsi : untuk memastikan sebuah class hanya memiliki 1 instance dan menyediakan
akses global ke instance tersebut dimana jika kita tidak menggunakan singleton maka setiap class
akan menciptakan objek baru dan tidak konsisten karena state yang dibuat di setiap objek dapat
berbeda – beda. Dalam penerapan system management perpustakaan, singleton digunakan agar
semua modul memiliki akses data yang sama.
Implementasi:
2. Factory
Fungsi : Menyediakan interface untuk membuat objek tapi membiarkan subclass
menentukan class mana yang akan di instance. Sehingga dalam penerapan Sistem
Manajemen Perpustakaan, kita menggunakannya agar ketika ingin menambahkan user baru
cukup memanggil [Link] sehingga tidak perlu melakukan if else di berbagai
tempat dan jika ingin menambahkan tipe user cukup di userFactory saja tidak perlu di
berbagai tempat.
Implementasi:
3. Prototype
Fungsi : Membuat objek baru dengan meng-copy objek yang sudah ada. Sehingga dalam
penerapan system manajemen Perpustakaan kita menggunakannya agar semisal
perpustakaan membeli 50 copy buku yang sama untuk berbagai cabang maka dengan
prototype cukup input 1 buku dan mengcopy 49x dengan ISBN yang berbeda
Implementasi:
4. Facade
Fungsi : Menyediakan interface yang disederhanakan untuk subsistem yang kompleks.
Sehingga dalam penerapan system manajemen perpustakaan, agar dengan facade kitab
isa melakukan pinjam buku, mengembalikan buku dll dengan mudah dengan memanggil
[Link]
Implementasi:
5. Fungsi : untuk menambahkan responsibility baru ke objek secara dinamis tanpa
mengubah struktur class nya. Dimana perpustakaan pasti mempunyai sesuatu yang
berbeda – beda seperti buku langka memiliki informasi sendiri, buku baru dapat diskon
dll, maka dengan Decorator kita tidak perlu membuat subclass untuk setiap kombinasi
Implementasi:
6. Observer
Fungsi : Agar ketika 1 objek berubah state, semua dependent dinotifikasi otomatis.
Dalam system manajemen perpustakaan, system akan melakukan broadcast ke semua
account secara otomatis
Implementasi:
7. State
Fungsi : memungkinkan objek mengubah perilakunya ketika internal state berubah.
Dalam penerapan system manajemen system, state digunakan agar setiap status dapat
dihandle sendiri
Implementasi: