Senin, 26 Maret 2012

Inheritance, Polymorphisme, dan Enkapsulasi


INHERITANCE
Salah satu konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance, berikut ini sedikit gambaran tentang inheritance. Pada dasarnya, kita melakukan inheritance (pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass. Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Contoh implementasi inheritance :

public class Pegawai {
public String nama;
public double gaji;
}

public class Manajer extends Pegawai {
public String departemen;
}

Pada saat class Manajer menurunkan atau memperluas (extend) class Pegawai, maka ia mewarisi data member yang dipunyai oleh class Pegawai. Dengan demikian, class Manajer mempunyai data member yang diwarisi oleh Pegawai (nama, gaji), ditambah dengan data member yang ia punyai (departemen).
Beberapa aturan tentang pewarisan (inheritance) yang perlu diperhatikan:
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisanakan dapat diamati dengan mudah.
2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
3.  Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).

Polymorphisme
Polymorphism, suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek. Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
Overloading Merupakan Suatu Function yang memiliki parameter , dan function tersebut dapat memiliki nama function yang sama dengan yang lainnya dengan syarat jumlah parameter mesti berbeda atau bisa kita bilang Situasi di mana beberapa rutin dalam sebuah program dapat mempunyai nama sama tetapi berbeda jenis parameter dan/utau jenis return value.
lebih Jelasnya Overloading secara singkat :
·         Nama Method Boleh Sama , Tapi Jumlah Parameter Mesti berbeda
·         Nilai Yang Di Return Harus memiliki Tipe yang sama
Aturan penggunaan Overloading
·         Method yang overload harus merubah argument list.
·         Method yang overload boleh merubah return type
·         Method yang overload boleh merubah acces modifier
·         Method yang overload boleh melempar check exception yang lebih luas / baru sama sekali dari method yang dioverload
·         Suatu method dapat dioverload diclass tersebut atau di subclassnya
Overriding Merupakan Suatu Keadaan Dimana kelas anak dapat mengubah atau bisa kita bilang memodifikasi atau memperluas data dan method pada kelas induk keuntungan Overriding  dapat menambahkan sifat / atribut pada kelas induknya .
·         Dengan overriding, kita dapat memiliki pengenal method yang sama persis dengan dengan   pengenal method yang ada di super class, tapi berbeda behavior.
·         Constructor tidak dapat dioverriding. Sebab constructor tidak diturunkan ke subclassnya.
Enkapsulasi
Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Contoh pemanfaatan Enkapsulasi
Belajar.Java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}}


Pemanfaatan kata kunci super pada encapsulasi
            Penggunaan kata kunci super berhubungan dengan pewarisan. Super digunakan untuk meminta contrultor superclass.  Super juga dapat digunakan seperti kata kunci this untuk menunjuk anggota  dari supeclass.
Contoh program kata kunci kelas untuk memenggil  construktor superclass.
Class Person{
            String firstName;
            String lastName;
            Person(String fname, String iname){
            firstName=fname;
            lastName=iname;
}}
Class Student extends Person{
            String studNum;
            Student(String fname, String iname, String sNum){
            Super(fname,iname);
            studNum-sNum;
}}

Tidak ada komentar:

Posting Komentar