1
Pewarisan (inhertance) merupakan salah satu kelebihan pemrograman berbahasa Java, di mana tujuannya adalah untuk mengurangi pengodean (reducing code). Dengan menggunakan konsep inhertance, sebuah objek bisa mendapatkan properti dari objek lainnya. Teknik inhertance ini dilakukan dengan menurunkan sifat atau method yang ada pada superclass ke subclass-Nya.
Sebagai ilustrasi perhatikan gambar hewan berikut ini.


Pada gambar di atas tampak bahwa semakin ke bawah,semakin spesifik class-Nya. Class mamalia mempunyai semua sifat yang dimiliki class hewan. Semikian juga dengan class kambing dan class kucing yang mmemiliki seluruh sifat yang diturunka dari class mamalia. Dengan konsep ini karakteristik yang dimiliki class hewan cukup didefinisikan dalam class hewan saja. Class mamalia tidak perlu otomatis class mamalia akan mendapatkan karakteristik dari class hewan. Dengan memanfaatkan konsep inhertance, kita dapat menghindari penilisan kode secra berulang ulang. Kita cukup menulisakan karakteristik yang lebih umum pada class induknya, kemudian perinciannya dapat dilakukan pada class turunannya.
Berikut ini adalah contoh dari inhertance.

    class person
    {
        protected String nama;
        protected String alamat;
        public person (String namaku, String alamatku)
        {
            super();
            nama=namaku;
            alamat=alamatku;
        }
        protected void hello()
        {
            System.out.println("Saya asli Indonesia");
        }
    }
   
    class mahasiswa extends person
    {
        private String nim;
        public mahasiswa(String namaku, String alamatku)
        {
            super(namaku, alamatku);
        }
        void setnim(String nimku)
        {
            nim=nimku;
        }
        void datadiri()
        {
            System.out.println("nama :"+nama);
            System.out.println("alamat :"+alamat);
            System.out.println("NIM :"+nim);
        }
    }
    class dosen extends person
    {
        private String Nip;
        public dosen (String namaku, String alamatku)
        {
            super(namaku, alamatku);
        }
        void setNip(String nipku)
        {
            Nip=nipku;
        }
        void datadosen()
        {
            System.out.println("nama :"+nama);
            System.out.println("alamat :"+alamat);
            System.out.println("NIP :"+Nip);
        }
    }

Sebagai langka awal akan dibuat tiga class, yaitu class person, class mahasiswa, dan class dosen di mana class dosen dijadikan sebagai class induk (superclass), sedangkan sisanya dijadikan class turunan (subclass). Selnjutnya akan dibahas kode program di atas satu per satu.

1.      Class person, class ini dibuat untuk dijadikan sebagai superclass yang berisikan variabel String nama,  String alamat. Alasannya dibuat variabel nama dan alamat adalah karena variabel ini sangatlah umum sehingga bisa di pakai oleh class lain seperti class mahasiswa dan class dosen (dosen dan mahasiswa pasti mempunyai nama dan alamat). Di dalam class person terdapat method void hello dan constructor public person.

a.       void hello, method tanpa nilai pengembalian yang dideklarasikan dengan visibility protected agar method ini dapat di pakai oleh subclass-Nya. Namun jika method tersebut dideklarasikan dengan visibility private, subclass tidak akan bisa menggunakannya.

b.      public person, merupakan constuctor, yaitu method yang namanya sama dengan nama class. Pada constuctor person terdapat dua variabel input String namaku, String alamatku. Tujuan di butnya constuctor ini adalah untuk menerima input dari objek pada asaat instansiasi dilakukan. Di dalam constuctor person terdapat kata super() yang merupakan kata kunci agar variabeel pada superclass dapat diakses oleh subclass.

2.      Class mahasiswa, dalam kasus ini class mmahasiswa dijadikan sebagai subclass darri class person. Dalam class mahasiswa terdapat variabel String nim. Variabel String memiliki  visibility private agar bisa diakses oleh class  yang bersangkutan saja.

a.       Void setnim, method ber-visibility default yang memiliki parameter input String nim. Method ini digunakan untuk menerima input NIM.
b.      Void datadiri, method yang dibuat untuk menampilkan data mahasiswa yang disimpan pada variabel.
c.       Public mahasiswa, constuctor dari class mahasiswa yang mempunyai dua variabel input bertipe string. Meskipun tidak memiliki variabel String nama, String mahasiswa, class mahasiswa inhertance variabel nama dan mahasiswa karena merupakan subclass dari class person. Perhatikan kata super (nama, alamat). Dengan kata super, variabel nama dan alamat ada di superclass dengan diakses.
3.      Class dosen, sama halnya dengan class mahasiswa, class dosen dalam kasus ini dijadikan sebagai subclass dari class person terdapat variabel String nip, yang ber-visibility private agat tidak bisa diakses oleh class lain.
a.       Void setNip, method ber-visibility default yang memiliki parameter input setnip. Method ini digunakan untuk menerima input berupa NIP dosen bertipe string.
b.      Void datadosen, method yang dibuat untuk menampilkan data dosen yang disimpan pada variabel.
c.       Public dosen, constructor dari class dosen yang mempunyai dua variabel input bertipr string. Sama halnya dengan class mahasiswa, meskipun tidak bervariabel string nama, string mahasiswa, class dosen dapat inhertance kedua variabel tersebut karena merupakan subclass dari class person.

Setelah membuat class induk dan turunan, kita perlu menginstansiasi objek dan class tersebut agar bisa diakses. Instansiasi objek harus dibuat pada class main (class utama).
Berikut ini kode untuk mengakses class mahasiswa dan class dosen.

package inheritance;
public class Inheritance {
    public static void main(String[] args) {
        mahasiswa a=new mahasiswa("Rizka", "Jl. Agung");
        a.setnim("F1B003012");
        a.hello();
        a.datadiri();
        System.out.println("");
        dosen b=new dosen ("Nadila", "Jl. Suka Karya");
        b.setNip("A98789287");
        b.hello();
        b.datadiri();
    }
}

Hasil saat dijalankan

Objek dapat dibuat dengan mendeklarasikan nama class dan nama i=obje dengan kata kunci new “mahasiswa a=new mahasiswa (“Dila”,”Dompu”);”. Ketika menginstansiasi class mahasiswa, secara otomatis interpreter Java akan memanggil constructor yang dibuat sebelumnya dan menampilkan parameter, yang digunakan untuk memasukkan data.

1.      a.setnim (“F1B003012”) kode ini digunakan untuk memanggil method setnim() agar bisa dimasukan string berisi (“F1B003012”.
2.      a.datadiri(), dengan memanggil method datadiri(), kita bisa menampilkan nilai dari variabel yang sudah dimasukkan sebelumnya (baik nama, alamat, maupun NIM).

3.      a.hello(), Method hello() adalah method yang dimiliki oleh class induk (class person), namun karena class mahasiswa merupakan turunan dari class person, method hello() dapat dipakai. Hal ini sama juga berlaku pada class dosen, baik instansiasi class maupun pemanggilan method-Nya.

Post a Comment

This comment has been removed by the author.

Tolong berikan saran atau kritik kepada kami, dan jangan lupa bertanya apabila ada yang tidak pahami dalam tutorial artikel ini. Gunakanlah kata-kata yang sopan??