Anda di halaman 1dari 11

INHERITANCE (PEWARISAN)

Konsep inheritance atau pewarisan ini mengadopsi dunia nyata dimana sebuah objek dapat mewariskan
sifat pada turunannya. Dalam kehidupan manusia pasti memiliki karakter yang hampir sama dengan
orang tua. Selain bentuk fisik yang memiliki keseragaman yang hampir sama, tentunya juga memiliki
beberapa karakter/sifat yang hampir sama dengan kedua orang tua.

Misalnya ayah nobita adalah orang penyabar, sedangkan nobita juga penyabar, tapi dibalik
semua itu, nobita juga mempunyai sifat lain yang tidak dimiliki oleh ayahnya, yaitu pemalas.
Itulah kenapa setiap turunan dikatakan ‘hampir‘ sama dengan induknya.

Pengertian Inheritance

Inheritance (pewarisan) adalah proses pewarisan data dan method satu kelas induk kepada kelas turnannya.
Komponen class pada pewarisan yaitu:

• Super Class: kelas induk atau kelas yang mewariskan

• SubClass: anak kelas atau kelas yang mendapat warisan

Inheritance Pada Java

Di dalam bahasa pemrograman java, untuk mendeklarasikan suatu class sebagai subclass
dilakukan dengan cara menambahkankata kunci extends setelah deklarasi nama classnya, kemudian
diikuti dengan nama parent class-nya atau super classnya. Kata kunci extends tersebut memberitahu
kompiler java bahwa kita ingin melakukan perluasan class.

Cara penulisan subclassnya adalah sebagai berikut:

Contoh kasus:

Terdapat beberapa software di komputer. Software tersebut beraneka ragam: software game, software
edukasi, dan lain-lain. Biarpun berbeda jenisnya, software
tersebut pasti memiliki kesamaan dengan software sejenisnya. Dengan kata lain, apabila dilihat dari
segi pemrograman, maka class Software adalah superclass, sedangkan class Game adalah
subclassnya. Jadi penulisan code java-nya adalah sebagai berikut:
Manfaat Inheritance

Berikut in adalah beberapa manfaat apabila menggunakan konsep inheritance:

1. Bersifat reusable

Pada class yang memiliki sifat mirip denga class lain, tidak perlu membuat variabel dan method yang
sama dalam penerapannya. Sehingga 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 induk class.
2. Efisiensi dalam manajemen data dan method

Ketika membutuhkan perubahan pada data dan method pada induk class, tidak perlu mengubah semua
class anak, sehingga hanya perlu melakukan perubahan pada class induknya saja.

Keyword “super“

Keyword super digunakan oleh subclass untuk memanggil constructor atau method yang ada pada
superclassnya. Berikut cara penulisan keyword super pada subclass untuk memanggil constructor pada
superclass.

Sedangkan cara penulisan “super“ pada subclass untuk memanggil method pada superclass adalah
sebagai berikut:

Kontrol akses

Suatu parent class dapat tidak mewariskan sebagian data dan methodnya kepada subclassnya.
Sejauh mana suatu data dan method tersebut dapat diwariskan ke kelas lain sangat berhubungan
dengan access control. Gambaran akses kontrol digambarkan pada tabel berikut:

Contoh Program Penggunaan Keyword Super Pada Java :


Class Parent.java

?
1 public class Parent {
2 public int x =5;
3 }

Class Child.java

?
1
public class Child extends Parent {
2 public int x = 10;
3 public void info(int x){
4 System.out.println("Nilai x Sebagai Parameter = "+x);
5 System.out.println("Data member x di class Child = "+ this.x);
6 System.out.println("Data member x di class Parent = "+ super.x);
}
7 }
8
Class Main.java

?
1 public class Main {
2 public static void main(String[] args) {
3 Child anak = new Child();
4 anak.info(20);
5 }
}
6
Hasil ketika di Run :

Soal Java :

Buatlah 3 buah class yang terdiri dari class Software, class Game, class Main yang berada pada package
Software.
Aturan class Software:

• Atribut berisi kode, nama, dan lisensi

• Terdapat 2 buah constructor Software:


o Constructor pertama tidak memiliki parameter dan tidak ada isinya

o Constructor kedua memiliki parameter untuk mengeset nilai kode, nama, dan lisensi (freeware/
shareware/ komersil)

• Terdapat method setter dan getter untuk mengeset dan mengambil nilai dari

kode, nama, dan lisensi.

Aturan class Game:

• Meng-extends class Software

• Atribut berisi jenis dan tipe

• Terdapat 2 buah constructor Game

o Constructor pertama memiliki parameter untuk mengeset nilai kode, nama, dan lisensi diambil dari
constructor kedua pada class Software (gunakan keyword super)

o Constructor kedua memiliki parameter untuk mengeset nilai kode, nama, lisensi (freeware/ shareware/
komersil), jenis (offline/online), dan tipe (action/ adventure/ sport/ puzzle). Data kode, nama, dan lisensi
diambil dari setter pada class Software (gunakan keyword super)

• Terdapat method getter untuk mengambil nilai dari variabel kode, nama, dan

lisensi pada class Software serta mengambil nilai dari variabel jenis dan tipe.

Setelah class-class tersebut dibuat, buatlah class Main yang berisi method main. Kemudian
implementasikan pada main method tersebut berdasarkan inputan user (menggunakan Scanner atau
BufferedReader).

Jawaban Soal diatas :

Contoh Program Penggunaan Inheritance Pada Java

Buat Class software.java :

?
1 public class software {
2 // coding by denny-id.blogspot.co.id
3
4 protected String code, namagame, lisensi;
////// default
5
6
7 ///////////////////////////Constructor Pertama
8 public software (){
9
10 }
11 /////////////////////////////////////////////
12
13
14 ///////////////////////////Constructor Kedua
15 public software (String kode, String game, String lisen){
16
this.code = kode;
17 this.namagame = game;
18 this.lisensi = lisen;
19 }
20 /////////////////////////////////////////////////////////
21
22
23 ///////////////////////////////////Method setter & getter
public void setCode(String kode){
24 this.code = kode;
25 }
26
27 public String getCode(){
28 return code;
29 }
//////////////////////////////////////////////////////////
30
31
32 ////////////////////////////////////Method setter & getter
33 public void setNamagame(String game){
34 this.namagame = game;
35 }
36
37 public String getNamagame(){
return namagame;
38 }
39 //////////////////////////////////////////////////////////
40
41
42 ////////////////////////////////////Method setter & getter
43 public void setlisensi (String lisen){
44 this.lisensi = lisen;
}
45
46 public String getlisensi(){
47 return lisensi;
48 }
49 /////////////////////////////////////////////////////////
}
50
51
52
53
54
55
56
Buat Class game.java

?
public class game extends software{
1
2
////Atribut
3 protected String jenis;
4 protected String type;
5 //////////////////////////////////////////////
6
7
8 ////////////////////////////Constructor pertama
public game (String kode, String name, String lisen){
9
super(kode, name, lisen);
10 }
11 //////////////////////////////////////////////
12
13
14 /////////////////////////////Constructor kedua
15 public game(String jns, String tipe){
this.jenis = jns;
16 this.type = tipe;
17 super.setCode(code);
18 super.setNamagame(namagame);
19 super.setlisensi(lisensi);
20 }
//////////////////////////////////////////////
21
22
23 //////////////////////////////////Method getter
24 public String getCod(){
25 return super.getCode();
26 }
27 ///////////////////////////////////////////////
28
29
//////////////////////////////////Method getter
30 public String getNama(){
31 return super.getNamagame();
32 }
33 ///////////////////////////////////////////////
34
35
36 //////////////////////////////////Method getter
public String getlis (){
37 return super.getlisensi();
38 }
39 ///////////////////////////////////////////////
40
41
42 //////////////////////////////////Method getter
43 public String getJenis(){
return jenis;
44 }
45 ///////////////////////////////////////////////
46
47
48 //////////////////////////////////Method getter
49 public String getType(){
return type;
50 }
51 ///////////////////////////////////////////////
52 // coding by denny-id.blogspot.co.id //
53 }
54
55
56
57
58
59
60
61
Buat Class main_2.java

?
1 ///////////////////////////////////////
import java.io.BufferedReader;
2 import java.io.IOException;
3 import java.io.InputStreamReader;
4 ///////////////////////////////////////
5
6 public class main_2 {
7 public static void main(String[] args) throws IOException{
8
BufferedReader input = new BufferedReader (new InputStreamReader(System.in));
9 String code;
10 String nama;
11 String jenis;
12 String tipe;
13 String lisen;
int pilihan;
14
15 /////////////////////////////////////////
16
17 game print = new game ("","");
18 game $print = new game ("", "", "");
19
20 System.out.println("+++++Game Pertama+++++");
21 System.out.println("----------------------");
22
System.out.println("Kode Game:");
23 print.code = code = input.readLine();
24 System.out.println("Nama :");
25 print.namagame = nama = input.readLine();
26 System.out.println("Jenis :");
print.jenis = jenis = input.readLine();
27 System.out.println("Type :");
28 print.type = tipe = input.readLine();
29 System.out.println("Lisensi :");
30 print.lisensi = lisen = input.readLine();
31 System.out.println("");
32
33
System.out.println("*****Game Kedua*****");
34 System.out.println("--------------------");
35 System.out.println("Kode Game:");
36 $print.code = code = input.readLine();
37 System.out.println("Nama :");
38 $print.namagame = nama = input.readLine();
System.out.println("Jenis :");
39 $print.jenis = jenis = input.readLine();
40 System.out.println("Type :");
41 $print.type = tipe = input.readLine();
42 System.out.println("Lisensi :");
$print.lisensi = lisen = input.readLine();
43 System.out.println("");
44
45 ////////////////////////////////////////////
46
47 System.out.println("Lihat Data");
48 System.out.println("1. Data Pertama\n"
49 + "2. Data Kedua\n"
+ "0.Exit");
50 System.out.println("Masukan Pilihan : ");
51
52 pilihan = Integer.parseInt(input.readLine());
53
54 /////////////////////////////////////////////
55 // coding by denny-id.blogspot.co.id //
56 while (pilihan != 0) {
switch (pilihan) {
57 case 1:
58 System.out.println("Rincian Game" + print.getNama());
59 System.out.println("==============================");
60 System.out.println("Kode Game :" + print.getCod());
System.out.println("-------------------------------");
61
System.out.println("Nama Game :" + print.getNama());
62 System.out.println("-------------------------------");
63 System.out.println("Jenis Game :" + print.getJenis());
64 System.out.println("-------------------------------");
65 System.out.println("Type Game :" + print.getType());
System.out.println("-------------------------------");
66 System.out.println("Lisensi Game :" + print.getlis());
67 System.out.println("-------------------------------");
68 break;
69
70 case 2:
71 System.out.println("Rincian Game" + $print.getNama());
72 System.out.println("==============================");
System.out.println("Kode Game : " + $print.getCod());
73 System.out.println("-------------------------------");
74 System.out.println("Nama Game : " + $print.getNama());
75 System.out.println("-------------------------------");
System.out.println("Jenis Game : " + $print.getJenis());
76 System.out.println("-------------------------------");
77 System.out.println("Type Game : " + $print.getType());
System.out.println("-------------------------------");
78 System.out.println("Lisensi Game : " + $print.getlis());
79 System.out.println("-------------------------------");
80 break;
81 default:
}
82 ////////////////////////////////////////////////////////////////////
83 System.out.println("Lihat Data");
84 System.out.println("1. Data Pertama\n"
85 + "2. Data Kedua\n"
86 + "0.Exit");
System.out.println("Masukan Pilihan : ");
87 pilihan = Integer.parseInt(input.readLine());
88 }
89 }
90 }
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Lalu Run main_2.java dan berikut hasilnya :
Keyword :
 contoh program penggunaan inheritance pada java
 contoh program mencetak game dan software pada inheritance java
 program java inheritance java
 cara membuat program menggunakan inheritance pada java

Anda mungkin juga menyukai