Anda di halaman 1dari 1

Asosiasi

Hubungan antara class yang ada. Asosiasi memungkinkan sebuah class


mengetahui Property dan Method class lain yang saling berelasi.
Syaratnya Property dan Method harus memiliki access modifier/visibility
public.
Contoh Teacher dan Student. Banyak Student dapat berasosiasi dengan satu Teacher dan satu
Student dapat berasosiasi dengan banyak Teacher

Agregasi
Agregasi adalah bentuk hubungan yang lebih khusus dari Assosiasi dimana sebuah object memiliki lifecycle
nya sendiri tapi dengan kepemilikan dan class child tidak dapat memiliki class parentnya. Relasinya biasa
di sebut relasi “has-a”.

Sebagai contoh, Department dan Teacher. Satu Teacher tidak dapat memiliki banyak Department, tapi jika
kita menghapus object Department, object Teacher tidak akan ikut terhapus

Generalisasi
Relasi pewarisan antara dua class. Class induk disebut super class
sedangkan class turunan disebut sub class. Superclass mewarisi seluruh
property dan method ke subclass, namun tidak berlaku sebaliknya.
Subclass bisa jadi memiliki property dan method spesifik yang tidak
dimiliki oleh superclassnya Generalisasi dalam OOP disebut juga
Inheritance. Dengan menggunakan Inheritance class yang kita buat akan
menjadi lebih simple karena tidak harus menuliskan semua property dan
method pada class anak, cukup “diturunkan” dari class induk

Depedency
Relasi yang menunjukkan sebuah class mengacu ke class lainnya.
Depedency adalah sebuah relasi yang bersifat tighty-coupled. Perubahan
pada class yang diacu bisa jadi menyebabkan perubahan di class
pengguna

Realisasi
Relasi antara interface dengan class yang menjadi implemetasi dari
interface tersebut. “Programming to interface not to implemantation”,
begitu kata para developer berpengalaman. Programming to interface
merupakan best practice yang patut diikuti dalam menulis
program. Interface memisahkan apa(what) dengan bagaimana(how)
nantinya hal tersebut implementasikan. Dengan menggunakan inteface,
struktur kode kita menjadi loosely-coupled, karena memungkinkan secara
dinamis mengganti implementasi.

Anda mungkin juga menyukai