"Cetak Biru (Blueprint) Perangkat Lunak"
Object-Oriented Programming (OOP) PHP
Pertemuan 14 - Bagian 2
Jika Anda meminta tukang bangunan untuk membuat rumah tingkat 3 tanpa memberikan gambar denah, rumah itu mungkin akan rubuh karena fondasinya asal-asalan.
Sama halnya dengan membuat aplikasi. UML adalah denah arsitektur untuk programmer.
Sebelum kita mengetik class, extends, atau __construct(), kita harus memetakan siapa saja entitas yang terlibat dan bagaimana mereka saling mengobrol.
UML menjadi bahasa standar global. Programmer dari Indonesia, Amerika, atau Jepang bisa saling memahami arsitektur aplikasi walau hanya dengan melihat diagram panah UML.
UML memiliki banyak jenis diagram, namun dalam OOP, ada dua yang paling wajib Anda kuasai:
Mari kita bedah terlebih dahulu mengenai Use Case Diagram sebelum masuk ke hal teknis Class Diagram.
Use Case Diagram berfungsi memetakan fungsi sistem. Ada 3 komponen utama yang wajib digambar:
Customer, Admin, Sistem Bank.Login, Tambah Produk, Checkout Pesanan.Menghubungkan antar use case menggunakan garis panah putus-putus bertuliskan stereotip khusus:
Checkout Pesanan, maka sistem secara otomatis harus memanggil Use Case Login Akun terlebih dahulu.
Bayar Tagihan, pembeli *bisa memilih* untuk menjalankan Use Case Klaim Voucher Diskon (jika punya voucher). Jika tidak punya, use case utama tetap berjalan lancar.
Klik komponen di bawah ini untuk melihat gambaran visual dan alur logika sebuah Use Case Diagram pada sistem E-Commerce.
Setelah alur hak akses dipetakan di Use Case, kita breakdown strukturnya di Class Diagram. Satu Class divisualisasikan sebagai kotak yang dibagi menjadi 3 baris beserta simbol Visibility:
Mengingat kembali materi pertemuan 12, relasi antar class digambarkan dengan jenis panah yang berbeda-beda:
| Simbol Panah | Nama Relasi | Arti / Keyword PHP |
|---|---|---|
| ───▷ | Inheritance (Generalization) |
Garis lurus dengan panah segitiga kosong. Anak mewarisi Induk. Keyword: extends |
| - - - ▷ | Realization | Garis putus-putus dengan panah segitiga kosong. Mengimplementasikan kontrak. Keyword: implements |
| - - - > | Dependency | Garis putus-putus dengan panah biasa. Menggunakan sementara (misal sbg parameter fungsi). |
Ini adalah relasi "Has-A" atau kepemilikan struktur di dalam objek.
| Simbol Panah | Nama Relasi | Arti di PHP |
|---|---|---|
| ───── | Association | Garis lurus biasa. Berdiri sejajar. Dosen berelasi dengan Mahasiswa. |
| ◇──── | Aggregation (Has-A Lemah) |
Belah ketupat KOSONG di sisi induk. Objek di-inject dari luar. Jika induk musnah, anak tetap hidup. (Contoh: Keranjang belanja & Produk). |
| ◆──── | Composition (Has-A Kuat) |
Belah ketupat HITAM di sisi induk. Objek dibuat di dalam __construct induk. Jika induk mati, anak PASTI ikut mati. (Contoh: Mobil & Mesin). |
Pilih jenis panah UML di bawah ini untuk melihat bagaimana panah tersebut diterjemahkan secara nyata ke dalam kode PHP.
UML (Unified Modeling Language) adalah jembatan emas antara ide manusia dan kode mesin.