Bagian 4 : Pewarisan (Inheritance)

Arya Rezza
3 min readJul 13, 2023

--

Photo by Thomas Kelley on Unsplash

Pewarisan (Inheritance) merupakan salah satu konsep dasar OOP yang sangat penting dalam pengembangan perangkat lunak. Konsep pewarisan ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Pewarisan memungkinkan kita untuk membuat kelas baru yang mengadopsi sifat dan perilaku kelas yang sudah ada. Kita dapat memiliki kelas yang disebut “kelas anak” yang mewarisi properti dan metode dari “kelas induk” atau “kelas super”. Konsep ini sangat berguna untuk memanfaatkan kode yang sudah ada, menerapkan pola desain seperti polimorfisme, dan memperluas fungsionalitas kelas.

Manfaat dari pewarisan adalah

  • Menghindari duplikasi kode program, karena class turunan dapat menggunakan kembali properti dan metode dari class induknya.
  • Membuat struktur atau hierarki class yang jelas dan logis, karena hubungan antara class induk dan class turunan biasanya memiliki makna “is-a” atau “adalah sebuah”. Misalnya, Laptop adalah sebuah Komputer, Kucing adalah sebuah Binatang, Mobil adalah sebuah Kendaraan, dan seterusnya.
  • Memudahkan pengembangan dan pemeliharaan kode program, karena perubahan pada class induk akan berdampak pada semua class turunan2.

Dalam Kotlin, kita dapat menerapkan pewarisan dengan menggunakan kata kunci open dan class. Dengan menggunakan pewarisan, kita dapat menghemat waktu dalam pengembangan, memanfaatkan kembali kode yang sudah ada, dan mengorganisir kode kita dalam struktur yang terstruktur dan mudah dipelihara.

Contoh Detail

Untuk mendefinisikan kelas induk, kita dapat menggunakan kata kunci open sebelum kata kunci class. Ini menandakan bahwa kelas tersebut dapat diwarisi oleh kelas lain.

open class Hewan {
// Properti dan metode kelas Hewan
}

Untuk membuat kelas anak yang mewarisi sifat dan perilaku dari kelas induk, kita dapat menggunakan kata kunci class dan menyertakan nama kelas anak diikuti oleh tanda titik dua (:) dan nama kelas induk.

class Anjing : Hewan() {
// Properti dan metode kelas Anjing
}

Override Properti dan Metode

Dalam kelas anak, kita dapat melakukan override terhadap properti dan metode kelas induk menggunakan kata kunci override. Hal ini memungkinkan kita untuk mengubah perilaku atau implementasi properti dan metode sesuai kebutuhan kelas anak. Kurang lebih seperti dibawah ini:

open class Hewan {
open fun bersuara() {
println("Suara hewan")
}
}

class Anjing : Hewan() {
override fun bersuara() {
println("Guk-guk!")
}
}

Studi Kasus Lain

// Class induk
class Komputer {
// Properti
var processor: String = "Intel Core i9"
var ram: Int = 16

// Metode
fun boot() {
println("Komputer sedang booting")
}

fun shutdown() {
println("Komputer sedang shutdown")
}
}

// Class turunan
class Laptop : Komputer() {
// Properti tambahan
var baterai: Int = 100

// Metode tambahan
fun charge() {
println("Laptop sedang di-charge")
}
}

Dalam contoh di atas, kita membuat class Komputer sebagai class induk yang memiliki properti processor dan ram, serta metode boot dan shutdown. Kemudian kita membuat class Laptop sebagai class turunan yang mewarisi properti dan metode dari class Komputer, serta menambahkan properti baterai dan metode charge.

Dengan demikian, kita dapat membuat objek dari class Laptop yang memiliki semua properti dan metode dari class Komputer, ditambah dengan properti dan metode tambahannya sendiri.

Contoh dari Studi Kasus lain

fun main() {
// Membuat objek laptop
val laptop = Laptop()

// Mengakses properti dan metode dari class Komputer
println("Processor: ${laptop.processor}")
println("RAM: ${laptop.ram} GB")
laptop.boot()
laptop.shutdown()

// Mengakses properti dan metode dari class Laptop
println("Baterai: ${laptop.baterai} %")
laptop.charge()
}

Output:

Processor: Intel Core i9
RAM: 16 GB
Komputer sedang booting
Komputer sedang shutdown
Baterai: 100 %
Laptop sedang di-charge

Dari output di atas, kita dapat melihat bahwa objek laptop dapat mengakses semua properti dan metode dari class Komputer, serta properti dan metode tambahannya sendiri.

Demikianlah penjelasan singkat tentang konsep pewarisan dalam OOP dengan Kotlin. Dengan menggunakan konsep ini, kita dapat membuat kode program yang lebih terstruktur, efisien, dan mudah dipelihara.

Epilog

Pewarisan adalah konsep penting dalam pemrograman berorientasi objek yang memungkinkan kita untuk membuat hierarki kelas dan mewarisi sifat dan perilaku dari kelas yang sudah ada. Dalam Kotlin, kita dapat menerapkan pewarisan dengan menggunakan kata kunci open dan class. Dengan menggunakan pewarisan, kita dapat menghemat waktu dalam pengembangan, memanfaatkan kembali kode yang sudah ada, dan mengorganisir kode kita dalam struktur yang terstruktur dan mudah dipelihara.

--

--

Arya Rezza

Android Developer & Content Writer • Banchelor of Computer Science • Reading with Coffee ☕