You are on page 1of 3

Hubungan Antar-Kelas pada Java

Sudah lebih dari 6 bulan sejak terakhir saya memposting “Manajemen State dengan Redux
Middleware”, dan mulai menjauh lagi dari Redux, berpindah ke backend programmer menggunakan
NodeJs, kemudian berpindah lagi. Alasan tersebut yang membuat saya akhirnya membahas hal yang
jauh berbeda dengan Redux maupun NodeJs. Alasan lain adalah belum mendapatkan hal yang menarik
yang spesifik dari Javascript untuk dibagikan pada medium saya.

Pada kesempatan kali ini saya akan membagikan penjelasan hubungan antar-kelas pada bahasa
pemrograman Java yang menerapkan konsep pemrograman berbasis objek. Untuk seorang
programmer, mungkin pengertian dan konsep ini tidak terlalu penting, namun akan sangat berguna
apabila bisa mengerti di luar kepala.

Hubungan antar-kelas pada Java ada empat termasuk sifat pewarisan kelas, yaitu Asosiasi, Agregasi,
Komposisi dan Pewarisan. Pada postingan kali ini hanya akan dibahas sampai hubungan komposisi.
Berikut penjelasan hubungan - hubungan tersebut:

Asosiasi

kelas diagram dengan hubungan asosiasi

Dapat dilihat pada gambar kelas diagram di atas, hubungan asosiasi digambarkan dengan satu garis
tidak putus - putus dan tidak memiliki anak panah pada kedua ujungnya. Kemudian juga dibubuhkan
kardinal pada garis tersebut.

Asosiasi adalah hubungan yang bisa saling menggunakan di dalam sebuah kelas, dan tidak saling
memiliki. Misal pada gambar di atas terdapat kelas Dosen dan kelas Mahasiswa, dilihat dari
kardinalitasnya, satu dosen bisa memiliki banyak mahasiswa. Apabila dosen dihilangkan, mahasiswa
masih bisa digunakan karena tidak saling memiliki.

Penjelasan tentang asosiasi ini bisa lebih jelas dengan melihat dua potongan kode dibawah

mahasiswa.java

dosen.java

Dari dua potongan kode di atas, dapat kita ketahui bahwa kelas Dosen menggunakan variable nim
mahasiswa yang terdapat pada kelas Mahasiswa. Kita dapat menghapus setiap kelas tanpa
mempengrahui kelas lain. Hubungan seperti di atas adalah hubungan asosiasi.

Agregasi

kelas diagram dengan hubungan agregasi


Hubungan agregasi digambarkan dengan diamond putih, yang ditempelkan pada kelas yang memiliki,
tidak dibubuhkan panah pada ujung yang tidak memiliki simbol diamond putih. Kemudian juga
dibubuhkan kardinalitas seperti pada hubungan asosiasi.

Jika hubungan asosiasi adalah saling menggunakan, di sini hubungan yang terjadi adalah memiliki.
Dilihat pada gambar kelas diagram di atas, bahwa kelas Jurusan memiliki kelas Mahasiswa sebagai
variable nya. Meskipun kelas Jurusan memiliki kelas Mahasiswa, namun kedua kelas tersebut dapat
dibuat secara independen.

Penjelasan dengan menggunakan potongan kode akan bisa lebih rinci di bagian menggunakan kelas lain.
Lihat potongan kode di bawah.

jurusan.java

Potongan kode di atas merupakan lanjutan dari potongan kode pada bagian asosisasi. Bisa dilihat bahwa
pada kelas Jurusan, menggunakan kelas Mahasiswa sebagai variable di dalamnya, sehingga bisa dibilang
bahwa kelas Jurusan memiliki kelas Mahasiswa. Apabila kelas Mahasiswa dihapus maka kelas Jurusan
tidak dapat berdiri, namun tidak terjadi sebaliknya, kelas Mahasiswa masih bisa berdiri tanpa terdapat
kelas Jurusan. Hubungan seperti ini disebut agregasi.

Komposisi

kelas diagram hubungan komposisi

Komposisi digambarkan menggunakan diamond hitam yang menyatakan memiliki bagian seperti pada
agregasi, tapi lebih spesial. Kemudian menggunakan garis tidak putus ke kelas yang dimiliki.

Pada paragraf di atas dikatakan “memiliki bagian seperti pada agregasi, namun lebih spesial”, apa yang
menjadikan hubungan komposisi lebih spesial adalah karena setiap kelas tidak dapat berdiri sendiri.
Seperti contoh kelas diagram di atas, bahwa kelas Komputer tidak akan terbentuk tanpa adanya kelas
Keyboard, Mouse dan CPU. Begitu pula sebaliknya, apabila tidak terdapat kelas Komputer, maka kelas
kelas yang lain tidak akan berfungsi.

Perhatikan potongan kode di bawah.

cpu.java

keyboard.java

mouse.java
komputer.java

mainKomputer.java

Dapat dilihat dari file mainKomputer.java bahwa komponen kelas Mouse, Keyboard, Cpu baru dibuat
setelah komputer dibuat. Apabila objek komputer dihapus maka semua komponen juga terhapus.
Begitulah ilustrasi dari hubungan komposisi.