Blog information

  • Category: Kuliah

  • Posted By: AglaBridgeMedia

  • Post date: 13 Mar 2021

  • Keywords: inheritance, pewarisan sifat, inheritance pemrograman java, inheritance pemrograman berorientasi objek, pewarisan sifat pbo

  • Views: 625

Pewarisan Sifat atau Inheritance Pemrograman Berorientasi Objek

Telah kita bahas salah satu sifat dalam pemrograman berorientasi objek, yaitu enkapsulasi yang bisa disimak di sini. Pada artikel kali ini kita akan bahas sifat yang lain dari pemrograman berorientasi objek, yaitu Inheritance atau pewarisan sifat. Apa itu inheritance? Inheritance merupakan fitur yang ada dalam pemrograman berorientasi objek di mana sifat-sifat yang ada pada Class induk dapat diwariskan atau diturunkan ke Class anak. Bisa dibayangkan seperti hubungan orang tua dan anak. Orang tua akan mewariskan sifat kepada anak-anaknya, dalam pemrograman berorientasi objek, hal ini terkait dengan atribut dan method dari Class induk yang akan diwariskan ke Class anak. Lalu mengapa kita perlu memakai teknik inheritance ini?

Baik, dalam pemrograman berorientasi objek, misalkan kita mempunyai beberapa class jenis kendaraan, yaitu sepeda, motor, mobil dan truk. Jenis kendaraan ini mempunyai atribut dan method yang berbeda-beda, misalkan sepeda tidak bermesin, sedangkan yang lainnya bermesin, sepeda bisa dikayuh, yang lain tidak bisa dikayuh, semuanya sama-sama punya nama, dan sebagainya. Perhatikan gambar class diagram berikut.

Bisa kita lihat dari beberapa class kendaraan di atas, mempunyai persamaan dan perbedaan. Pada atribut, semua jenis kendaraan mempunyai atribut yang sama, dan pada methodnya, terdapat perbedaan dan persamaan. Jika kita menuliskannya ke dalam kode program, akan menyebabkan ketidakefektifan karena kita akan mengulangi seluruh atribut dan method yang sama sebanyak 4 buah class. Padahal seharusnya kita bisa mempersingkat hanya menuliskan sekali saja. Nah itulah fungsi dari inheritance, dengan kita membuat satu buah class lagi yang bisa menampung atribut dan method yang sama sebagai induk class, kemudian kita turunkan ke class anak. Sehingga dalam mengkoding akan semakin efektif dan tidak membuang banyak tenaga. Walaupun jika ingin menuliskan semua atribut dan method ke setiap class juga tidak salah, hanya saja tidak menerapkan konsep pemrograman berorientasi objek saja. Nah jika kita menggunakan konsep inheritance akan menghasilkan class diagram seperti berikut.


Buat class induk, dalam contoh kali ini adalah class Kendaraan dengan atribut dan method yang dimiliki oleh semua jenis kendaraan. Kemudian class Sepeda, Motor, Mobil dan Truk akan menginduk ke class Kendaraan. Pada class diagram konsep inheritance digambarkan dengan Generalization, yaitu simbol panah dari class anak ke class induk seperti gambar di atas. Sehingga jika dituliskan dalam bentuk program, kita akan membuat 5 buah class atau 5 buah file ditambah 1 buah Main Class. Perhatikan contoh berikut

public class Kendaraan{
    String nama, jenis;
    int jumlah_roda, tenaga_hp;
    boolean mesin;
    
    public void jalan(){
        System.out.println("Jalan");
    }
    
    public void berhenti(){
        System.out.println("Berhenti");
    }
    
    public void ngebut(){
        System.out.println("Ngebut");
    }
}

Kode di atas untuk membuat class kendaraan. Kemudian perhatikan kode berikutnya berturut-turut class jenis kendaraan yang ada pada contoh class diagram di atas.

public class Sepeda extends Kendaraan{
    public void kayuh(){
        System.out.println("Dikayuh");
    }
}
public class Motor extends Kendaraan{
    public void standar(){
        System.out.println("Distandar tengah");
    }
}
public class Mobil extends Kendaraan{
    public void setir(){
        System.out.println("Disetir");
    }
}
public class Truk extends Kendaraan{
    public void angkut(){
        System.out.println("Mengangkut barang berat");
    }
}

Perhatikan kode untuk class anak jenis kendaraan di atas. Ada perintah extends yang merupakan penggunaan dari inheritance atau pewarisan sifat ini. Arti dari extends ini adalah class yang dibuat akan menginduk pada class yang ditunjuk sebagai class induk, dalam ini class Kendaraan. Sehingga untuk semua jenis kendaraan akan dapat mengakses atribut dan method yang ada pada class Kendaraan sebagai induknya. Lalu kita coba buat objek dari jenis kendaraan tersebut dan kita jalankan. Sebelumnya perhatikan kode program Main Class berikut ini.

public class Main
{
	public static void main(String[] args) {
// 		buat objek
		Kendaraan kendaraan = new Kendaraan();
		Sepeda sepeda = new Sepeda();
		Motor motor = new Motor();
		Mobil mobil = new Mobil();
		Truk truk = new Truk();
// 		isi atribut kendaraan dan munculkan di masing-masing jenis kendaraan
        sepeda.nama = "Polygon";
        sepeda.jenis = "Sepeda";
        sepeda.jumlah_roda = 2;
        sepeda.tenaga_hp = 0;
        sepeda.mesin = false;
        System.out.println("Nama Kendaraan: "+sepeda.nama+", Jenis: "+sepeda.jenis+", Jumlah roda: "+sepeda.jumlah_roda+", Tenaga HP: "+sepeda.tenaga_hp+", Bermesin: "+(sepeda.mesin == true ? "Ya" : "Tidak"));
        sepeda.kayuh();
        motor.nama = "Vario";
        motor.jenis = "Motor";
        motor.jumlah_roda = 2;
        motor.tenaga_hp = 10;
        motor.mesin = true;
        System.out.println("Nama Kendaraan: "+motor.nama+", Jenis: "+motor.jenis+", Jumlah roda: "+motor.jumlah_roda+", Tenaga HP: "+motor.tenaga_hp+", Bermesin: "+(motor.mesin == true ? "Ya" : "Tidak"));
        motor.standar();
        mobil.nama = "Mobilio";
        mobil.jenis = "Mobil";
        mobil.jumlah_roda = 4;
        mobil.tenaga_hp = 120;
        mobil.mesin = true;
        System.out.println("Nama Kendaraan: "+mobil.nama+", Jenis: "+mobil.jenis+", Jumlah roda: "+mobil.jumlah_roda+", Tenaga HP: "+mobil.tenaga_hp+", Bermesin: "+(mobil.mesin == true ? "Ya" : "Tidak"));
        mobil.setir();
        truk.nama = "Truk Fuso";
        truk.jenis = "truk";
        truk.jumlah_roda = 6;
        truk.tenaga_hp = 1000;
        truk.mesin = true;
        System.out.println("Nama Kendaraan: "+truk.nama+", Jenis: "+truk.jenis+", Jumlah roda: "+truk.jumlah_roda+", Tenaga HP: "+truk.tenaga_hp+", Bermesin: "+(truk.mesin == true ? "Ya" : "Tidak"));
        truk.angkut();
	}
}

Seperti biasa kita buat objek dari masing-masing kelas terlebih dahulu untuk dapat mengakses atribut dan methodnya. Dan jika kita coba jalankan, maka akan memberikan output seperti berikut.

Nah mudah bukan? Begitulah konsep dari Inheritance atau pewarisan sifat ini, yang mempunyai manfaat di antaranya memberikan efektifitas dalam mengkoding agar tidak mengulang-ulang kode yang sama berkali-kali. Nah silakan kalian mencoba dengan studi kasus yang lain agar semakin memahaminya, dan jangan lupa selalu mencoba menuliskan kode programnya agar terbiasa dan terlatih. Sekian artikel dari saya, semoga bermanfaat.






blog comments powered by Disqus