Skip to content Skip to sidebar Skip to footer

Belajar Mengenal Relasi IS-A dan HAS-A di Program Java

Saat kita mempelajari bahasa pemrograman Java , kalian mungkin pernah atau sering mendengar adanya relasi IS-A dan HAS-A. Keduanya merupakan sama-sama bagian dari suatu konsep pemrograman beriorientasi objek atau disebut juga (Konsep OOP), namun berbeda saat diimplementasikan ke dalam baris code. Jika relasi ISA-A  membicarakan kepada turunan, beda halnya  dengan relasi HAS-A yang membicarakan kepada kegunaan. Pada artikel belajar java kali , ini kita akan belajar mengenal contoh penggunaan relasi IS-A dan HAS-A di bahasa pemrograman Java. Berikut selengkapnya mari kita simak lebih lanjut :

Belajar Mengenal Perbedaan Pengenalan Pengertian Relasi IS-A dan HAS-A di Program Java




1. Pertama buka IntelliJ IDEA ,atau Software IDE lain yang kalian gunakan , di Komputer atau Laptop kalian.



2.  Kalian bisa perhatikan Contoh code ,beserta penjelasanya di bawah:

  • Relasi IS-A (Pewarisan)


Contoh Code :

Parent.java


Parent.java Relasi IS-A
Parent.java

Child.java

Child.java Relasi IS-A
Child.java

Main.java

Main.java Relasi IS-A
Main.java



Penjelasan :


Pada contoh code program diatas , kita menggunakan konsep  Inheritance (Pewarisan) ,dengan menggunakan keyword extends , untuk mewariskan atribut atau method yang berada di class Parent , untuk digunakan kembali (reusable) di dalam class Child, seperti pada method tampilNama().

Ini termasuk ke dalam relasi IS-A , karena apapun baik atribut atau method yang didefinisikan di dalam class Super , dapat diturunkan dan digunakan kembali ke dalam class Sub Class. Selama kita menggunakan keyword extends di dalam Sub Class. 

Sedangkan , apapun baik itu  atribut atau method yang di definisikan di dalam class Sub,  tidak dapat digunakan kembali  oleh class Super.

Contoh lain di dunia nyata , jika kita mengacu pada penyebutanya. Seperti tipe object Ayam termasuk ke dalam tipe object (IS-A) Binatang.  BMW termasuk ke dalam tipe object (IS-A) Mobil. Begitu contoh lain yang bisa kalian bayangkan. Jadi IS-A adalah keterkaitan antar suatu object dengan object yang lainya.


  • Relasi HAS-A (Asosiasi)

Berbeda halnya jika relasi HAS-A ,yang mengacu pada kegunaan. Dimana instansi dari satu class (HAS-A) referensi pada instansi class lain , atau instansi dari class yang sama. Sebagai  contoh kalian bisa perhatikan code berikut :


Contoh Code :

Proccessor.java dan Komputer.java Relasi HAS-A
Proccessor.java dan Komputer.java


Penjelasan :

Pada contoh code program diatas ,kita menggunakan class Processor dan Komputer.  Di dalam class Processor ,terdapat method kalkulasiData() ,yang telah didefinisikan beserta nilainya.

Selanjutnya , pada class Komputer kita menginstasi objek intel ,yang termasuk referensi dari class Processor. Untuk digunakan methodnya , di dalam class Komputer. Jadi Komputer (HAS-A) Procsessor. Jika kita terjemahkan ke dalam bahasa inggris , HAS A =  mempunyai sebuah.


Aggregation  dan Composition :


Agregasi dan Komposisi ,  termasuk penyebutan lain dari relasi (HAS-A) . Keduanya memiliki kegunaan atau fungsi yang berbeda. 


Contohnya,  jika  Komputer tiba-tiba mati dan tidak bisa dihidupkan, disebabkan overheat pada Processor atau chipset pada Motherboard. Kita bisa menggunakan Processor atau Motherboard lain , agar Komputer dapat dihidupkan kembali. Ini termasuk kedalam Agregasi. 

Jadi dalam Agregasi , yang termasuk class container (Komputer) , dan class referensi (Processor) , dapat berjalan secara independen.


Nah ,pada Komposisi kita dapat bagi menjadi 2 class ,seperti contoh code berikut :


Rumah.java dan Dapur.java Relasi HAS-A Komposisi Composition
Rumah.java dan Dapur.java



Seperti pada contoh code diatas ,jika Rumah roboh atau hancur ,disebabkan banyak kemungkinan , maka Dapur juga ikutan hancur bersamaan dengan Rumah tersebut. Ini termasuk Komposisi.

Jadi dalam Komposisi , yang termasuk  class referensi (Dapur) , tidak dapat digunakan , jika class container (Rumah) hancur.

Post a Comment for "Belajar Mengenal Relasi IS-A dan HAS-A di Program Java"