Hubungan Antar-Kelas pada Java

Indra Bayu
SkyshiDigital
Published in
3 min readJan 25, 2018
https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2016/11/Untitled-1-6-1024x576.png

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.

Banyak referensi yang bisa dicari untuk membedakan antara ketiga hubungan antara kelas tersebut, untuk saya bisa dilihat di sini, dan juga masih ditambah modul praktikum PBO Universitas Telkom Fakultas Informatika 2014/2015. Semoga membantu teman - teman pembaca.

--

--