Contoh Program Penggunaan Inheritance Pada Java

Matakuliah Pemrograman Berorientasi Objek (OOP)

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

public class Parent {
    public int x =5;
}

Class Child.java

public class Child extends Parent {
    public int x = 10;
    public void info(int x){
        System.out.println("Nilai x Sebagai Parameter     =  "+x);
        System.out.println("Data member x di class Child  =  "+ this.x);
        System.out.println("Data member x di class Parent =  "+ super.x);
    }
}

Class Main.java

public class Main {
    public static void main(String[] args) {
        Child anak = new Child();
        anak.info(20);
    }
}

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 :


public class software {
    // coding by denny-id.blogspot.co.id
    
    protected String code, namagame, lisensi;
    ////// default
    
    
    ///////////////////////////Constructor Pertama
    public software (){
        
    }
    /////////////////////////////////////////////
    
    
    ///////////////////////////Constructor Kedua
    public software (String kode, String game, String lisen){
        
        this.code = kode;
        this.namagame = game;
        this.lisensi = lisen;        
    }
    /////////////////////////////////////////////////////////
    
    
    ///////////////////////////////////Method setter & getter
        public void setCode(String kode){
        this.code = kode;        
    }
    
    public String getCode(){
        return code;        
    }
    //////////////////////////////////////////////////////////
    
    
    ////////////////////////////////////Method setter & getter
        public void setNamagame(String game){
        this.namagame = game;        
    }
    
    public String getNamagame(){
      return namagame;        
    }
    //////////////////////////////////////////////////////////
    
    
    ////////////////////////////////////Method setter & getter
        public void setlisensi (String lisen){
        this.lisensi = lisen;
    }
    
    public String getlisensi(){
        return lisensi;
    }
    /////////////////////////////////////////////////////////
}

Buat Class game.java

public class game extends software{
   
    ////Atribut
    protected String jenis;
    protected String type;
    //////////////////////////////////////////////
    
    
    ////////////////////////////Constructor pertama
    public game (String kode, String name, String lisen){
        super(kode, name, lisen);
    }
    //////////////////////////////////////////////
    
    
    /////////////////////////////Constructor kedua
    public game(String jns, String tipe){
        this.jenis = jns;
        this.type = tipe;
        super.setCode(code);
        super.setNamagame(namagame);
        super.setlisensi(lisensi);        
    }
    //////////////////////////////////////////////
    
    
    //////////////////////////////////Method getter 
    public String getCod(){
        return super.getCode();        
    }
    ///////////////////////////////////////////////
    
    
    //////////////////////////////////Method getter 
    public String getNama(){
        return super.getNamagame();
    }
    ///////////////////////////////////////////////
    
    
    //////////////////////////////////Method getter 
    public String getlis (){
        return super.getlisensi();
    }
    ///////////////////////////////////////////////
    
    
    //////////////////////////////////Method getter 
    public String getJenis(){
        return jenis;
    }
    ///////////////////////////////////////////////
    
    
    //////////////////////////////////Method getter 
    public String getType(){
        return type;
    }
    ///////////////////////////////////////////////
    // coding by denny-id.blogspot.co.id //
}

Buat Class main_2.java

///////////////////////////////////////
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
///////////////////////////////////////

public class main_2 {
    public static void main(String[] args) throws IOException{
     
    BufferedReader input = new BufferedReader (new InputStreamReader(System.in));
    String code;
    String nama;
    String jenis;
    String tipe;
    String lisen;
    int pilihan;
    
    /////////////////////////////////////////
    
    game print = new game ("","");
    game $print = new game ("", "", "");
    
    System.out.println("+++++Game Pertama+++++");
    System.out.println("----------------------");
    
        System.out.println("Kode Game:");
        print.code = code = input.readLine();
        System.out.println("Nama  :");
        print.namagame = nama = input.readLine();
        System.out.println("Jenis :");
        print.jenis = jenis = input.readLine();
        System.out.println("Type :");
        print.type = tipe = input.readLine();
        System.out.println("Lisensi :");
        print.lisensi = lisen = input.readLine();
        System.out.println("");
        
        
        System.out.println("*****Game Kedua*****");
        System.out.println("--------------------");
        System.out.println("Kode Game:");
        $print.code = code = input.readLine();
        System.out.println("Nama  :");
        $print.namagame = nama = input.readLine();
        System.out.println("Jenis :");
        $print.jenis = jenis = input.readLine();
        System.out.println("Type :");
        $print.type = tipe = input.readLine();
        System.out.println("Lisensi :");
        $print.lisensi = lisen = input.readLine();
        System.out.println("");
        
        ////////////////////////////////////////////
        
        System.out.println("Lihat Data");
        System.out.println("1. Data Pertama\n"
                + "2. Data Kedua\n"
                + "0.Exit");
        System.out.println("Masukan Pilihan : ");
        
        pilihan = Integer.parseInt(input.readLine());
        
        /////////////////////////////////////////////
        // coding by denny-id.blogspot.co.id //
        while (pilihan != 0) {
            switch (pilihan) {
                case 1: 
                    System.out.println("Rincian Game" + print.getNama());
                    System.out.println("==============================");
                    System.out.println("Kode Game    :" + print.getCod());
                    System.out.println("-------------------------------");
                    System.out.println("Nama Game    :" + print.getNama());
                    System.out.println("-------------------------------");
                    System.out.println("Jenis Game   :" + print.getJenis());
                    System.out.println("-------------------------------");
                    System.out.println("Type Game    :" + print.getType());
                    System.out.println("-------------------------------");
                    System.out.println("Lisensi Game :" + print.getlis());
                    System.out.println("-------------------------------");
                    break;
                    
                 case 2: 
                    System.out.println("Rincian Game"    + $print.getNama());
                    System.out.println("==============================");
                    System.out.println("Kode Game    : " + $print.getCod());
                    System.out.println("-------------------------------");
                    System.out.println("Nama Game    : " + $print.getNama());
                    System.out.println("-------------------------------");
                    System.out.println("Jenis Game   : " + $print.getJenis());
                    System.out.println("-------------------------------");
                    System.out.println("Type Game    : " + $print.getType());
                    System.out.println("-------------------------------");
                    System.out.println("Lisensi Game : " + $print.getlis());
                    System.out.println("-------------------------------");
                    break;    
                 default:                        
            }
            ////////////////////////////////////////////////////////////////////
            System.out.println("Lihat Data");
        System.out.println("1. Data Pertama\n"
                + "2. Data Kedua\n"
                + "0.Exit");
        System.out.println("Masukan Pilihan : ");        
        pilihan = Integer.parseInt(input.readLine());
        }        
    }    
}

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

0 Response to "Contoh Program Penggunaan Inheritance Pada Java"

Posting Komentar