Inheritance

Inheritance dalam pemrograman adalah suatu mekanisme di mana suatu class dapat mewarisi sifat, metode, dan atribut dari class lain.

Software Engineering

Mau Belajar

Software Engineering

GRATIS?

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!

IKUT KURSUS GRATIS

Mau Belajar

Software Engineering

GRATIS?

Pengertian Inheritance dalam Pemrograman

inheritance adalah konsep dalam object-oriented programming (OOP)

Inheritance dalam pemrograman, khususnya dalam object-oriented programming (OOP), adalah suatu mekanisme di mana suatu class dapat mewarisi sifat, metode, dan atribut dari class lain.

Inheritance memungkinkan pembentukan class baru yang dikenal sebagai kelas turunan (subclass) atau kelas anak (child class), untuk mengadopsi atribut dan perilaku class yang sudah ada, disebut kelas induk (parent class) atau kelas dasar (base class).

Proses ini menciptakan hierarki class yang efisien, di mana class turunan dapat menggunakan kembali (reuse) kode yang telah ditulis dalam class induk, mengurangi kebutuhan untuk duplikasi kode.

Inheritance juga memfasilitasi polymorphism dan encapsulation, memungkinkan class turunan untuk mengganti atau memperluas fungsionalitas class induk. Proses ini tidak hanya meningkatkan efisiensi pengembangan dengan mengurangi kode yang berulang, tetapi juga memudahkan pemeliharaan dan pembaruan kode, karena perubahan pada class induk secara otomatis diterapkan pada class turunan.

Keunggulan Inheritance

Dirangkum dari berbagai sumber, berikut beberapa keunggulan inheritance dalam pemrograman:

  • Mengelola kode secara terpusat: dengan inheritance, perubahan pada class induk secara otomatis berlaku untuk semua class turunan. Hal ini memudahkan dalam pemeliharaan dan modifikasi kode, terutama dalam program skala besar.
  • Konsistensi: inheritance memastikan semua class turunan memiliki set properti dan metode standar dari class induk, menjadikan sistem lebih seragam.
  • Optimasi penggunaan sumber daya: dengan menggunakan kembali kode yang ada, inheritance membantu pengoptimalan penggunaan sumber daya, seperti penggunaan memori.
  • Skalabilitas: inheritance menyediakan skalabilitas dengan memungkinkan penambahan class baru ke dalam hierarki class yang ada. Class turunan baru dapat mewarisi properti dan metode dari class dasar dan mengintegrasikan fungsionalitas baru atau unik sesuai kebutuhan.
  • Menghindari duplikasi dan redundansi data: inheritance membantu menghindari duplikasi dan redundansi data, di mana hal ini penting untuk menjaga integritas dan keefisienan kode.
  • Membuat objek yang lebih dominan: inheritance digunakan untuk menciptakan objek yang lebih dominan dengan menggabungkan dan memperluas fungsionalitas dari class yang ada.

Contoh Penggunaan Inheritance

Berdasarkan StudySmarter, berikut contoh penggunaan inheritance:

Penggunaan dalam GUI (Graphical User Interface)

Dalam pengembangan GUI, inheritance sering dimanfaatkan untuk membuat class widget yang memiliki fungsionalitas dasar sama, tetapi dengan perilaku atau tampilan berbeda.

Misalnya, programmer memiliki class dasar Widget yang menyediakan properti dan metode dasar, seperti ukuran, posisi, dan tampilan. Dari class Widget ini, programmer mewariskan class turunan seperti Button, TextBox, dan Label.

Penggunaan dalam pengembangan game

Dalam pengembangan game, inheritance digunakan untuk mendefinisikan object class pada game yang memiliki sifat dasar sama, tetapi dengan perilaku berbeda.

Misalnya, game developer memiliki class dasar GameObject yang mendefinisikan properti dasar seperti posisi, ukuran, dan metode untuk update. Dari class GameObject, ia membuat class turunan seperti Player, Enemy, dan Obstacle.

Penggunaan dalam CMS (Content Management System)

Dalam CMS, inheritance berfungsi untuk mendefinisikan class konten yang berbeda namun basis sama.

Misalnya, developer memiliki class dasar ContentItem yang menyediakan properti dan metode dasar seperti judul, deskripsi, dan tanggal publikasi. Dari class ContentItem, ia membuat class turunan seperti Article, Video, dan Image.

FAQ (Frequently Asked Question)

Apa saja jenis-jenis inheritance?

EDUCBA dan Codecademy menjelaskan jenis-jenis inheritance dalam object-oriented programming:

#1 Single inheritance

Single inheritance terjadi ketika sebuah class turunan hanya mewarisi dari satu class induk. Ini adalah bentuk pewarisan yang paling sederhana, di mana class turunan mendapatkan semua metode dan properti dari satu class induk saja.

#2 Multiple inheritance

Multiple inheritance memungkinkan sebuah class turunan untuk mewarisi dari lebih dari satu class induk. Artinya, class turunan dapat menggabungkan fungsionalitas dari beberapa class induk.

Multiple inheritance lebih kompleks dan harus ditangani dengan hati-hati untuk menghindari masalah seperti diamond problem, di mana class turunan mewarisi dari dua class induk yang memiliki class dasar sama.

#3 Multilevel inheritance

Dalam multilevel inheritance, sebuah class turunan mewarisi dari class turunan lain, sementara class yang sendiri mewarisi dari class induk. 

Jenis ini menciptakan "rantai" pewarisan. Misalnya, class C mewarisi dari class B, dan class B mewarisi dari class A.

#4 Hierarchical inheritance

Hierarchical inheritance terjadi saat beberapa class turunan mewarisi dari satu class induk yang sama. Jenis ini sering digunakan untuk mengelompokkan fungsionalitas yang serupa ke dalam satu class induk, sementara memungkinkan variasi dalam class turunan.

#5 Hybrid inheritance

Hybrid inheritance adalah kombinasi dari dua atau lebih jenis inheritance yang sebelumnya sudah disebutkan di atas. Kondisi ini sering terjadi dalam sistem yang lebih kompleks, di mana berbagai bentuk inheritance dipakai bersama-sama untuk mencapai fleksibilitas dan efisiensi yang diinginkan.

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:

Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:
Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:

Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Kata kunci lainnya

Mulai karirmu dalam

Software Engineering

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!
ikut kursus gratis
Menu