Senin, April 15, 2019

Asosiasi, komposisi, dan agregasi pada Java

Asosiasi adalah hubungan antara dua class terpisah yang terbentuk melalui objeknya. Asosiasi bisa berupa one-to-one, one-to-many, many-to-one, many-to-many. Pada pemrograman berorientasi objek, objek berkomunikasi dengan objek lainnya menggunakan fungsi dan services yang disediakan oleh objek. Komposisi dan agregasi adalah dua bentuk dari asosiasi seperti diperlihatkan pada gambar 1.


komposisi dan agregasi dan kedudukannya terhadap asosiasi pada bahasa pemrograman Java
Gambar 1 komposisi dan agregasi
sumber : geeksforgeeks.org

Output:
Neha is employee of Axis

Pada contoh sebelumnya dua class terpisah Bank dan Employee adalah asosiasi melalui objeknya. Bank dapat memiliki banyak Employee, jadi asosiasinya adalah one-to-many seperti diperlihatkan pada gambar 2.

asosiasi one to many pada bahasa pemrograman Java
Gambar 2 asosiasi one-to-many 
sumber : geeksforgeeks.org

Agregasi
Agregasi adalah form khusus dari asosiasi dimana:
satu, Agregasi merepresentasikan Has-A relasi.
dua, Agregasi adalah unidirectional asosiasi atau relasi satu arah. Contoh, department dapat memiliki siswa tetapi tidak sebaliknya.
tiga, Pada agregasi, kedua entries dapat berdiri sendiri, yang artinya mengakhiri satu entitas tidak akan memengaruhi entitas lainnya.

Output:
Total students in institute: 4

Pada contoh sebelumnya, terdapat institute yang tidak memiliki no. dari department seperti CSE, EE. setiap department memiliki no. dari student. Jadi, diciptakan institute class yang memiliki referensi terhadap object atau no. dari object (list of object) dari Department class. Artinya Institute class berasosiasi dengan Department class melalui objeknya. Department class juga memiliki referensi dari objek atau beberapa objek (list of object) dari Student class atau dengan kata lain berasosiasi dengan Student class melalui objeknya. Gambar 3 memperlihatkan Has-A relasi.

asosiasi institute, department, dan student pada bahasa pemrograman Java
Gambar 3 asosiasi institute, department, dan studentsumber : geeksforgeeks.org

Kapan menggunakan agregasi?
Penggunaan ulang kode program adalah cara terbaik dari penggunaan agregasi.

Komposisi
Komposisi membatasi form dari agregasi dimana dua entitas berdiri sendiri terhadap entitas lainnya.
satu, Komposisi merepresentasikan part-of relasi.
dua, Dalam komposisi, kedua entitas bersifat dependent terhadap entitas lainnya.
tiga, Ketika terdapat komposisi antara dua entitas, maka komposisi objek tidak bisa exist tanpa entitas lainnya.

Perhatikan contoh berikut ini.

Output:
Title : EffectiveJ Java and  Author : Joshua Bloch
Title : Thinking in Java and  Author : Bruce Eckel
Title : Java: The Complete Reference and  Author : Herbert Schildt

Pada contoh sebelumnya library dapat memiliki no. dari book pada subjek yang sama ataupun berbeda. Jadi, jika Library dihancurkan (free memory) maka semua book dalam library tertentu akan ikut hancur atau dengan kata lain book tidak bisa exist tanpa library.

Aggregasi dan Komposisi
satu, Dependency: Agregasi menyiratkan hubungan dimana child dapat exist mandiri dari parent. Contoh, Bank dan Employee, jika Bank dihapus maka Employee akan tetap exist. Komposisi menyiratkan hubungan dimana child tidak bisa exist secara mandiri tanpa parent. Contoh: Manusia dan jantung, jantung tidak bisa exist jika terpisah dari manusia.
dua, Tipe dari relasi: Aggregasi relasi adalah "has-a" dan komposisi "part-of" relasi.
tiga, Tipe dari asosiasi: Komposisi adalah asosiasi yang bersifat kuat (strong) dan agregasi adalah asosiasi yang bersifat lemah (weak).

Output:
Engine of car has been started 
Car is moving 

Dalam hal agregasi, Car juga menjalankan fungsinya melalui Engine. tetapi Engine tidak selalu merupakan bagian internal dari Car. Mesin dapat ditukar keluar atau bahkan dapat dilepas dari kesatuan komponen Car. Itu sebabnya bidang tipe Engine tidak dibuat final.





Related Posts

Asosiasi, komposisi, dan agregasi pada Java
Oleh

"semoga yang memberikan komentar diberikan berkah kebaikan dari Allah, dijauhkan dari kejahatan, dan diberikan pahala ilmu dan amal jariyah dari sepenggal kata yang ia tinggalkan amiin :) "