#2 Belajar Konsep OOP (Object Oriented Programming) : Inheritance dan Contoh Penerapannya dalam Bahasa Kotlin

Galang Aji Susanto
5 min readJul 18, 2020

--

Photo by supardi sinaga on Unsplash

Hello gaes.., artikel ini merupakan kelanjutan dari sekuel artikel yang saya tulis tentang konsep yang ada pada OOP (Object Oriented Programming). Ada beberapa konsep dari OOP yang harus anda pahami diantaranya ada Polymorphism, Inheretance, Encapsulation, Abstraction, Class dan Object. Pada bagian kedua ini saya akan membahas konsep Inheritance pada OOP yang nati juga akan saya sertakan contoh dalam bahasa pemrograman kotlin untuk menambah pemahaman kita mengenai konsep tersebut.

Konsep inheritance merupakan salah satu dari konsep terpenting di OOP, inilah kenapa kita diwajibkan untuk memahami konsep ini apabila ingin mengetahui OOP secara menyeluruh. Bahkan di beberapa interview kerja yang saya ikuti, konsep ini sangat sering ditanyakan oleh para interviewer. Jadi apa sebenarnya konsep Inheritance itu ?

Inheritance adalah mekanisme dimana memperbolehkan suatu class untuk mewarisi features (fields dan methods) dari kelas lain.

Beberapa terminologi atau istilah penting yang harus dipahami dalam konsep inheritance diantaranya adalah

Super Class: class yang mewariskan fields dan methods yang dimilikinya kepada kelas lainnya. Biasanya kelas ini disebut juga dengan base class atau parent class.

Sub Class : class yang diwarisi fields dan method dari kelas lainnya. Biasanya kelas ini disebut juga dengan derived class, extended class atau child class.

Reusebility: ini merupakan istilah dimana kita dapat menggunakan kembali kode yang telah kita tuliskan agar tidak mejadikan code yang redundant. Inheritance mendukung konsep ini dengan cara mewariskan fields dan metodhs yang dimiliki suatu class ke kelass lainya sehingga kita tidak perlu menuliskan fields dan methods secara berulang.

Sebenarnya pada artikel sebelumnya tentang polymorphism kita juga telah menggunakan konsep inheritance. Intinya disini bahwa inheritance dan polymorhism merupakan pilar di OOP yang saling melengkapi satu sama lainya. Tanpai inheritance kita tidak mungkin bisa menerapkan overriding pada polymorphism dan sebaliknya tanpa polymorphism kita tidak bisa memaksimalkan kemampuan inheritance secara menyeluruh. Anda dapat membaca artikel saya tentang konsep polymorphism disini.

Pada artikel sebelumnya diberikan sebuah contoh ada beberapa objek diantaranya mahasiswa, karyawan dan ayah, yang ketiganya sebenarnya mewarisi sifat yang sama sebagai manusia. Diantara sifat yang ada pada manusia yaitu dapat berjalan, oleh karena itu ketiganya juga mempunyai sifat yang sama yaitu dapat berjalan. Sehingga bisa dimodelkan dengan code seperti contoh dibawah ini.

Pada bahasa pemrograman kotlin kita membutuhkan kata kunci open agar suatu class dapat diturunkan kepada kelas lainnya. Hal ini dikarenakan secara default suatu class akan bersifat final di bahasa pemrograman kotlin sehingga tidak bisa diturunkan.

Beberapa jenis inheritance yang harus anda ketahui diantaranya adalah

  1. Single Inheritance: Satu parent class yang mewariskan fields dan methods nya hanya kepada satu child class.
https://www.guru99.com/images/java/single_inheritance.png

2. Multilevel Inheritance: Satu child class yang mewariskan field dan methods nya kepada satu child class lainya. Jadi disini ada child class menjadi base/parent dari class lainnya.

https://www.guru99.com/images/java/multilevel.png

3. Hirarcial Inheritance: Satu parent class yang mewariskan fields dan methods nya kepada lebih dari satu child class.

https://www.guru99.com/images/java/hierarchy.png

4. Multiple Inheritance: Satu child class yang mempunyai lebih dari satu parent class.

https://www.guru99.com/images/java/multiple.png

5. Hybrid Inheritance: Gabungan antara single inheritance dan multiple inheritance.

https://www.guru99.com/images/java/hybrid.jpeg

Pada bahasa pemrograman kotlin hanya support single parent class inheritance jadi setiap class di kotlin hanya bisa mewarisi sifat dari satu class base/parentnya.

Contoh kasus penerapan Inheritance dalam bahasa kotlin:

Misalkan ada 2 orang dimana orang pertama adalah seorang bisnisman dan orang kedua adalah seorang karyawan. Keduanya sama sama memiliki sifat sebagi manusia atau orang diantaranya mereka dapat makan, berfikir dan mempunya 2 buah kaki. Tetapi setiap bisnisman pasti mempunyai kekayaan 100 juta dan menaiki kendaraan pribadi untuk menarik para konsumennya. Sedangkan seorang karyawan hanya bisa naik kendaraan umum untuk pergi ke kantornya. Tampilkan apa saja yang bisa dilakukan kedua orang tersebut !

  1. Langkah pertama yang dilakukan adalah kita membuat parent class dari bisnisman dan karyawan yang mana sama mempunyai sifat sebagai orang / manusia,

2. Selanjutnya kita membuat kelas turunan / child dari Orang tersebut yaitu BisnisMan dan Karyawan. Disini kita bisa menuliskan fields dan fungsi yang dimilimasing masing objek. Seperti jumlah kekayaan dan naik kendaraan pribadi hanya terdapat pada objek BisnisMan sedangkan Karyawan hanya bisa naik kendaraan umum. Just info yaa, ini hanya sebuah contoh yaa jadi yang bekerja sebagai karyawan jangan pada baper :D karena saya sendiri juga bekerja sebagai karyawan suatu perusahaan dan banyak karyawan juga kaya raya :D

3. Kita buat instance dari class BisnisMan dan Karyawan pada fungsi main. Disini kita hanya mengimplementasikan sesuai kebutuhan sehingga kode yang dituliskan menjadi seperti ini.

Apabila kita jalankan kodenya maka hasil keluaran yang dihasilkan akan memunculkan apa saja sifat dan properti yang dimili oleh masing masing objek yaitu orang 1 sebagai bisnisman dan orang 2 sebagi karyawan.

Orang 1
Sedang makan !!!
Naik kendaraan Pribadi !!!
Jumlah kekayaan :100000000
Apakah dia berfikir:true
Jumlah kaki : 2
Orang 2
Sedang makan !!!
Naik Kendaraan Umum !!!
Jumlah kaki : 2
Apakah dia berfikir: true

Mungkin itu saja yang bisa saya bagikan pada artikel kali ini. Intinya adalah antar pilar dalam OO Psaling berkaitan dan melengkapi satu sama lain. Jadi terus belajar konsep konsep lain OOP secara menyeluruh. pada artikel berikutnya saya ingin membahas kosep dari OOP yaitu encapsulation. So, tungu artikel berikutnya yaa dan jangan malas untuk belajar dasar lagi ya. Semoga bermanfaat :)

Referensi:

  1. Website geeks for geeks inheritance pada java.
  2. Website guru 99 inheritance pada java.
  3. Youtube channel Smartherd inheritance pada java.
  4. Youtube channel edureka! inheritance pada java.

--

--

Galang Aji Susanto
Galang Aji Susanto

Written by Galang Aji Susanto

iOS Developer | Apple Developer Academy Graduate | Mobile Tech Enthusiast | Full Time Learner & Part Time Coder

No responses yet