Buatlah beberapa class yang mencirikan inheritance dan instance

Buatlah beberapa class yang mencirikan inheritance dan instance
Pewarisan (Inheritance) merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain. Sistem OOP memungkinkan kita untuk mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan dilakukan secara bertingkat-tingkat, sehingga semakin ke bawah maka kelas tersebut semakin spesifik.

pewarisan memberikan atau mewariskan sesuatu kepada keturunan berikutnya. misalnya, seorang anak pasti akan mewarisi beberapa sifat atau perilaku yang dimiliki oleh ibu/bapaknya. dalam konteks ini, suatu kelas dalam program dapat diturunkan menjadi kelas-kelas baru lainnya yang akan mewarisi beberapa sifat atau perilaku dari kelas induknya. sebagai contoh, apabila anda memiliki kelas A dalam program yang anda buat maka anda dapat membentuk kelas-kelas turunan dari kelas A tersebut(Misalnya, kelas B) yang mewarisi sifat-sifat yang terkandung dalam kelas A. dalam proses pembuatan kelas turunan tersebut, Anda dapat menambahkan sifat dan perilaku baru ke dalam kelas B, yang sebelumnya tidak dimiliki dalam kelas A. Dalam terminologi java, kelas induk dinamakan dengan superclass dankelas turunan dinamakan dengan subclass. untuk membuat kelas anak atau kelas turunan berdasarkan class yang ada, anda dapat menggunakan kata kunci extends.

keterangan : extends artinya diturunkan.

Buatlah beberapa class yang mencirikan inheritance dan instance

contoh program:

program induk kakek.java

public class kakek
{
    protected String namekakek;
    protected String address;
    public kakek()
    {
        System.out.println(“\n Program Demo Inheritance”);
        System.out.println(“============================”);
        System.out.println(”   Masukan construktor kakek  “);
        System.out.println(“–Dijalankan oleh class Bapak–“);
        namekakek=”Doni wijaya”;
        address=”Merauke”;
    }
    public kakek(String name,String address)
    {
        this.namekakek=namekakek;
        this.address=address;
    }    
    public String getName()
    {
        return namekakek;
    }
    public String getAddress()
    {
        return address;
    }
}

program anak/turunan:

program bapak.java

public class bapak extends kakek
{
    protected String namebapak;
    protected String addressbapak;
    public bapak()
    {
        System.out.println(“Nama Kakek :”+namekakek);
        System.out.println(“Address kakek :”+address);
        System.out.println(“\n”);
        System.out.println(” Masukan Construktor Bapak “);
        System.out.println(“—-dijalankan class cucu—-“);
        namebapak=”Ridho Saputra”;
        addressbapak=”Yogyakarta”;
        }
        public bapak(String namebapak,String addressbapak)
        {
            this.namebapak=namebapak;
            this.addressbapak=addressbapak;
        }
        public String getNama()
        {
            return namebapak;
        }
        public String getAddress()
        {
            return addressbapak;
        }
        public static void main(String []args)
        {
            bapak sari=new bapak();
        }
}

program cucu.java

public class cucu extends bapak
{
    public cucu()
    {
        System.out.println(“Nama Bapak  :”+namebapak);
        System.out.println(“Address Bapak :”+addressbapak);
    }
    public static void main(String []args)
    {
        String namacucu;
        cucu lagan=new cucu();
        System.out.println(“\nSaya adalah CUCU”);
        System.out.println(“Nama Saya : Samuel”);
        System.out.println(“”);
    }
}

jika ingin menjalankan program datas makan kita perlu mengkompile terlebih dahulu class kakek.java, jangan di run karena main programnya terdapat dalam class bapak.java dan cucu.java.

jika kita menjalankan class bapak maka akan seperti berikut tampilannya:

Buatlah beberapa class yang mencirikan inheritance dan instance

jika kita menjalankan program cucu maka akan seperti berikut tampilannya:

Buatlah beberapa class yang mencirikan inheritance dan instance

Buatlah beberapa class yang mencirikan inheritance dan instance

Dalam tutorial OOP Java kali ini kita akan membahas salah satu konsep terpenting dalam pemrograman object, yakni tentang inheritance atau pewarisan class.

Pengertian Inheritance (Pewarisan Class)

Inheritance adalah konsep OOP dimana sebuah class dapat menurunkan property dan method yang dimilikinya kepada class lain. Konsep inheritance dipakai untuk memanfaatkan fitur code reuse, yakni menghindari terjadinya duplikasi kode program.

Dalam bahasa Indonesia, inheritance ini disebut juga sebagai pewarisan atau penurunan.

Konsep inheritance membuat sebuah struktur atau hierarki class dalam kode program. Class yang akan diturunkan bisa disebut sebagai class induk (parent class), super class, atau base class.

Sedangkan class yang menerima penurunan bisa disebut sebagai class anak (child class), sub class, derived class atau heir class.

Dalam tutorial ini saya akan menggunakan istilah parent class dan child class, tapi seperti yang tertulis diatas, banyak istilah yang bisa dipakai.

Cara Menurunkan Class di Java

Untuk menurunkan sebuah class di bahasa pemrograman Java, tulis nama child class, lalu perintah extends dan baru tulis nama parent class. Berikut contoh kode program yang di maksud:

class Komputer { // kode untuk class Komputer }; class Laptop extends Komputer { // kode untuk class Laptop }; class BelajarJava { public static void main(String args[]){ Komputer komputerAndi = new Komputer(); Laptop laptopAndi = new Laptop(); } }

Dalam kode ini saya membuat dua buah class: Komputer dan Laptop. Perhatikan perintah di baris 5, itulah cara menurunkan class Komputer kepada class Laptop. Yakni dengan cara menulis perintah extends, diikuti nama parent class yang ingin diturunkan.

Setelah perintah tersebut, class Laptop adalah anak (child) dari class Komputer. Class Laptop nantinya bisa mengakses semua property dan juga method milik class Komputer.

Cara Mengakses Data Parent Class

Contoh sebelumnya masih sangat sederhana, dimana class Komputer dan class Laptop belum memiliki data apapun. Sekarang kita akan isi dengan beberapa property dan method:

class Komputer { String processor = "Intel Core i9"; String cekKomputer() { return "Ini berasal dari class Komputer"; } }; class Laptop extends Komputer { String merk = "Asus"; String cekLaptop() { return "Ini berasal dari class Laptop"; } }; class BelajarJava { public static void main(String args[]){ Laptop laptopAndi = new Laptop(); System.out.println(laptopAndi.processor); System.out.println(laptopAndi.merk); System.out.println(laptopAndi.cekKomputer()); System.out.println(laptopAndi.cekLaptop()); } }

Hasil kode program:

Intel Core i9 Lenovo Ini berasal dari class Komputer Ini berasal dari class Laptop

Dalam kode diatas, class Komputer memiliki satu property processor dan satu method cekKomputer(). Sedangkan class Laptop memiliki property merk dan method cekLaptop().

Karena class Laptop adalah turunan dari class Komputer, maka kita bisa mengakses semua isi class Komputer dari object class Laptop.

Di dalam class BelajarJava saya membuat object laptopAndi yang di instansiasi dari class Laptop. Object laptopAndi bisa mengakses semua isi class Komputer, yakni laptopAndi.processor dan laptopAndi.cekKomputer(). Seolah-olah data dan function ini di definisikan dari dalam class Laptop.

Mengisi Property Menggunakan Constructor

Untuk materi yang sedikit lebih kompleks, dalam kode program berikut saya mengisi ketiga property milik class Komputer dari constructor class Laptop. Silahkan pelajari sejenak alur kode program yang terjadi:

class Komputer { String processor; String merk; String memory; }; class Laptop extends Komputer { Laptop(String paramProcessor, String paramMerk, String paramMemory) { processor = paramProcessor; merk = paramMerk; memory = paramMemory; } String lihatSpec() { return "Merk: " + merk + ", processor: "+ processor + ", jumlah memory: " + memory; } }; class BelajarJava { public static void main(String args[]){ Laptop laptopAndi = new Laptop("Intel Core i7","HP","16 GB"); Laptop laptopRudi = new Laptop("Intel Core i3","Asus","4 GB"); System.out.println(laptopAndi.lihatSpec()); System.out.println(laptopRudi.lihatSpec()); } }

Hasil kode program:

Buatlah beberapa class yang mencirikan inheritance dan instance

Pendefinisian property processor, merk dan memory tetap dilakukan dari class Komputer. Hanya saja sekarang proses pengisian ketiga data dilakukan oleh constructor class Laptop seperti di baris 8-12.

Constructor class Laptop butuh 3 buah parameter, yakni paramProcessor, paramMerk dan paramMemory. Ketiga parameter ini harus diisi pada saat proses instansiasi class Laptop seperti di baris 22 dan 23.

Hasilnya, pada saat method lihatSpec() diakses dari object laptopAndi dan laptopRudi, akan tampil nilai yang berbeda-beda.

Inheritance atau proses pewarisan class memang menjadi topik yang cukup rumit tapi sangat penting. Untuk kode program yang kompleks, bisa saja ada sebuah class yang diturunkan kepada class lain, dan kemudian di turunkan lagi kepada class selanjutnya.

Inilah yang akan kita bahas dalam lanjutan tutorial OOP Java di Duniailkom, yakni Cara Membuat Multilevel Inheritance.