2. Konsep Pewarisan (Inheritance)
Inheritance (pewarisan) dapat didefinisikan sebagai proses satu class
mengakuisisi properti (method dan fields) yang lain.
Pewarisan digunakan untuk menciptakan class baru (kelas turunan)
sebagai perluasan atau spesialisasi dari class lain yang telah ada (kelas
induk).
Sebuah class bisa mewariskan attribute, property dan method-nya ke class
yang lain.
Class yang mewarisi disebut superclass (kelas induk), class yang diberi
warisan disebut subclass (kelas turunan).
Kelas turunan akan memiliki property dan method yang sama dengan
kelas induk.
3. Kelas turunan bisa menambahkan property atau method-method baru dan
melakukan definisi ulang terhadap method-method yang sudah ada di
kelas induknya (overriding).
Konsep inheritance ini mengadopsi dunia riil, yaitu entitas/ object dapat
memiliki kelas turunan.
Suatu class yang propertinya diturunkan dikenal sebagai parent class (kelas
induk).
Adapun kelas turunan sering disebut subclass (kelas turunan/ kelas anak).
Misalnya, dalam hierarki class jika class C merupakan turunan class B, dan
class B merupakan turunan class A, otomatis attribute dan method class A
juga diwariskan kelas C.
4. Suatu subclass dapat mewarisi apa saja yang dipunyai oleh parent class-
nya.
Jadi, member dari suatu subclass terdiri atas apa saja yang ia miliki dan apa
saja yang ia warisi dari class parent-nya.
Intinya, boleh dikatakan bahwa suatu subclass hanya memperluas
(extends) parent classnya.
Di dalam java, untuk mendeklarasikan suatu class sebagai subclass
dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi
nama class kemudian diikuti dengan nama parent classnya.
Kata kunci extends tersebut memberitahu kompiler java ingin melakukan
perluasan class.
5. Konsep Inheritance dalam Program
Aplikasi Berbasis PBO
Pewarisan identik dengan proses penciptaan class baru dengan mewarisi
karakteristik dari kelas yang telah ada, ditambah dengan karakteristik unik
dari class baru tersebut.
Setiap subclass akan mewarisi state (variable) dan behaviour (method) dari
superclassnya.
Subclass kemudian dapat menambahkan state dan behaviour baru yang
spesifik dan dapat pula memodifikasi (override) state dan behaviour yang
diturunkan oleh superclassnya.
Beberapa istilah dalam inheritance yang perlu diperhatikan adalah sebagai
berikut:
6. Istilah dalam Inheritance
No Istilah keterangan
1 Extends Keyword ini harus ditambahkan pada definisi class yang
menjadi subclass.
2 Superclass Superclass (induk) digunakan untuk menunjukkan hierarki
class yang berarti class dasar dari subclass/ kelas anak atau
turunan.
3 Subclass Subclass (anak) adalah kelas anak atau turunan secara hierarki
dari superclass.
8. Video Penjelasan
Ikuti link berikut untuk menyimak penjelasan Contoh Inheritance di atas:
https://youtu.be/01ydqeeqqkA
Dari contoh di atas, class Lingkaran sebagai kelas induknya, class Tabung
sebagai kelas anaknya, yakni class Tabung mendapatkan sifat dari class
Lingkaran.
Adapun class Utama (main) adalah class untuk mengkompile program,
karena tanpa class main, program tidak dapat dijalankan.
9. Prosedur Inheritance dalam Program
Aplikasi Berbasis PBO
Secara umum, java hanya memperkenankan adanya single inheritance,
yakni hanya memperbolehkan suatu subclass memiliki satu parent class.
Hal ini berarti bahwa class tidak dapat memperluas (extends) lebih dari
satu class. Misal, public extends A,B{ }.
Adapun suatu parent class dapat tidak mewariskan sebagian membernya
kepada subclassnya.
Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu
member dapat diakses dari class lain, sangat berhubungan dengan access
control (kontrol pengaksesan).
10. a. Keyword Super
Keyword super digunakan oleh subclass untuk memanggil constructor
atau methode yang ada pada superclassnya.
Cara penulisan keyword super pada subclass untuk memanggil constructor
pada superclass adalah sebagai berikut:
super() atau super(parameter)
Adapun cara penulisan “super” pada subclass untuk memanggil method
pada superclass adalah sebagai berikut:
super.namaMethod() atau super.namaMethod(parameter)
11. b. Kontrol Akses
Suatu parent class dapat tidak mewariskan sebagian data dan method-nya
kepada subclass-nya.
Sejauh mana suatu data dan method tersebut dapat diwariskan ke class
lain sangat berhubungan dengan access control.
12. Prosedur Rancangan Program
Aplikasi Berbasis PBO dengan
Penerapan Inheritance
Untuk lebih memahami program java inheritance, amati dua class (yaitu
Hitung1 dan Hitung2) pada contoh berikut.
Menggunakan kata kunci extends, Hitung2 mewarisi method
penjumlahan dan pengurangan dari class Hitung1.
13. Contoh 2 Inheritance
Untuk mengetahui hasilnya, silahkan praktekkan masing-masing. Support
aplikasi Dcoder.
14. Keunggulan Inheritance dalam
Program Aplikasi Berbasis PBO
Dasar utama diperlukannya suatu inheritance dalam pemrograman java
adalah untuk menghindari duplikasi objek pada komponen field.
Variable maupun method sebenarnya bisa diturunkan dari sebuah class
Dengan demikian, inheritance bukan sebuah class yang diwariskan oleh
sebuah literial, tetapi lebih menunjukkan ke hubungan antar objek itu
sendiri.
Beberapa manfaat menggunakan konsep inheritance adalah sebagai
berikut:
15. a. Bersifat Reusable
Pada class yang memilki sifat mirip dengan class lain, tidak perlu membuat
variable dan method yang sama dalam penerapannya.
Jadi, hanya perlu membuat satu class sebagai induk dan beberapa class
sebagai anak yang mewarisi method dan data dari class induk.
Ketika membutuhkan data dan method tambahan pada class anak, hanya
perlu menambahkan data tambahan tersebut tanpa perlu mendeklarasikan
data dan method yang sudah dimiliki oleh class induk.
16. b. Efisiensi dalam Manajemen Data
dan Method
Ketika membutuhkan perubahan pada data dan method pada class induk,
tidak perlu mengubah semua class anak.
Jadi, hanya perlu melakukan perubahan pada class induknya saja.
Tingkat pewarisan tidak hanya terbatas pada dua tingkatan, tetapi bisa
terus memperpanjang tingkat pewarisan ini sepanjang dibutuhkan.
Programmer java dapat mendefinisikan superclass khusus yang bersifat
generik, biasa disebut abstract class untuk mendefinisikan class dengan
behaviour dan state secara umum.
Subclass menyediakan state/ behaviour spesifik yang membedakan nya
dengan superclass.
17. Hal tersebut membuat programmer java menggunakan ulang source code
dari superclass yang telah ada.
Di samping itu, subclass dapat menambahkan state dan behaviour baru
yang spesifik dan dapat pula memodifikasi (override) state dan behaviour
yang diturunkan oleh superclassnya.
Kemudahan dalam mengatur class yang memiliki data dan method yang
sama untuk memodifikasi suatu data atau method untuk semua subclass,
tidak perlu melakukan perubahan di masing-masing kelas anak, tetapi
hanya pada kelas induk saja.
18. Sekian dan Terima Kasih
Jika ada materi yang belum/ kurang dipahami, silahkan bertanya.