INFORMASI HIDING, INHERTANCE,ENCAPSULATION DAN POLYMORPHISM
- INHERITANCE
Inheritance adalah pewarisan. Pewarisan dalam pemrograman
berorientasi objek, inheritancememungkinkan suatu Class bisa mewariskan atribut
dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class
hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak.
Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi
menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh
anggota fungsi dari kelas.
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.
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
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.
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
Contoh Pogram
SuperClass.Java
- Superclass adalah class induk atau class orang
tua, class yang letaknya di atas class tertentu di dalam hierark
- Subclass adalah class anak. Semua property,
methode, ataupun konstruktor yang dimiliki oleh superclass jika
diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass
Keuntungan penggunaan
Inheritance dalam OOP : Reusability
Ketika
behavior(method) dideklarasikan dalam superclass, behavior tersebut otomatis
diwariskan ke seluruh subclass·
Jadi,
Anda dapat meng-enkode method hanya sekali dan method tersebut dapat digunakan
oleh seluruh subclass·
Sebuah
subclass hanya perlu mengimplementasikan perbedaan antara dirinya sendiri dan
parent-nya·
Inheritance adalah salah satu teknik pemrograman
berorientasi object yang digunakan agar suatu codingan dapat digunakan kembali
oleh programmer lain / reuseable. Hal tersebut dilakukan dengan cara membuat
turunan dari suatu class yang sudah ada, yaitu dengan membuat child class.
Contohnya adalah jika ada programmer yang membuat suatu class yaitu shape yang
memiliki atribut atribut luas, dan position kita tidak perlu membuat class baru
ketika kita ingin membuat suatu class rectangle yang notabennya juga termasuk
shape, jadi kita cuma perlu untuk menurunkan class shape tadi ke class
rectangle yang akan kita buat.
Dari gambar diatas dapat kita ketahui hierarki dari
penurunan class shape menjadi class class lainya yang notabennya masih termasuk
dalam class shape. Selain itu dalam iheritance ini kita juga mulai mengenal
yang dinamakan access modifier, yaitu keyword untuk merubah atribut dari suatu
field dalam suatu class, dimana dalam java access modifier tersebut ada 4,
yaitu: (none) -> Akses ke field tersebut hanya terbatas pada suatu package
Public -> Field tersebut dapat diakses dari semua tempat, asal masih dalam satu
scope Private -> Akses ke field tersebut hanya terbatas pada class dimana
field tersebut ada Protected -> Akses ke filed tersebut hanya terbatas pada
class dimana field tersebut ada, beserta class turunan dari class field
tersebut. Untuk contoh program dapat dilihat dibawah ini, yang merupakan
inheritance class person menjadi class student.
1. //class Person.java
2. public class Person {
3.
4. protected String name;
5. protected int age;
6.
7. public Person(String name, int age) {
8. this.name = name;
9. this.age = age;
10. }
11.
12. public String getName() {
13. return this.name;
14. }
15.
16. public int getAge() {
17. return this.age;
18. }
19. }
1. //class Student.java
2.
3. public class Student extends Person {
4.
5. private String schoolName;
6.
7. public Student(String name, int age, String schoolName) {
8. super(name, age);
9. this.schoolName = schoolName;
10. }
11.
12. public String getSchoolName() {
13. return this.schoolName;
14. }
15. }
1. //class Main.java
2.
3. public class Main {
4.
5. public static void main(String[] args) {
6. Person person = new Person("Yohanda", 19);
7. Student student = new Student("Mandala", 18, "SMAN 2");
8.
9. System.out.println("Informasi tentang object person : ");
10. System.out.println("Name : " + person.getName());
11. System.out.println("Age : " + person.getAge());
12. System.out.println();
13.
14. System.out.println("Informasi tentang object student : ");
15. System.out.println("Name : " + student.getName());
16. System.out.println("Age : " + student.getAge());
17. System.out.println("School Name : " + student.getSchoolName());
18. }
19. }
Maka setelah kita
compile dan kita eksekusi maka akan manghasilakan output seperti dibawah ini :
1. Informasi tentang object person :
2. Name : Yohanda
3. Age : 19
4.
5. Informasi tentang object student :
6. Name : Mandala
7. Age : 18
8. School Name : SMAN 2
Untuk melakukan inheritance di java, kita menggunakan
keyword extends. Dalam contoh program diatas class Studentlah yang mengiherit
class Person sehingga class Student yang melakakukan extends, dimana dalam
pendefinisian class nya menjadi class Student extends Person. Dalam proses
inheritance ini subclass bisa mengakses semua field dari super classnya, kecuali
yang beratribut private. Akan tetapi superclass tidak bisa mengakses field dari
subclass apapun atributnya. Dalam program diatas sudah dicontohkan bahwa method
getName dan getAge yang hanya terdapat pada class Person dapat dengan bebas
diakses oleh Class turunannya yaitu class Student. Mengenai constructornya
adalah sebagai berikut, dalam class person ia membutuhkan dua variable dalam
constructornya, yaitu String name, dan int age, dan dalam class student ia
membutuhkan 3 variable ketika membuat constructornya yaitu String name, int
age, dan String schoolName, dimana dapat kita lihat bahwa 2 dari 3 variabel
constructor dari class student sama dengan variable pada class person, maka
kita tidak perlu membuatnya lagi, akan tetapi hanya perlu menggunakan keyword
“super” untuk memanggil constructor dari superclass.
vENCAPSULATION
Encapsulation atau pengkapsulan adalah suatu kemamouan
dalam pemrograman berorientasi objek untuk menyembunyikan atribut dan
method suatu objek dari objek lain. Pengkapsulan membuat orang lain tidak
mengetahui bagamana detil implementasi(listing program) dari modul
tersebut, mereka hanya perlu menatasi variabrl-variabelapa saja
yang menjadi input dan output, serta bagaimana interaksi modul
tersebut dengan variabel method, kelas, intervace atau package lain dengan
modul tersebut.
Pengkapsulan dilakukan dengan caramemberikan modifier
private pada suatu method dan pada variabel. Method untuk memberikan nilai pada
suatu atribut privat biasanya diawali dengan kata “set”, sedangkan
method untuk mengambil nilai dari suatu atribut privat biasanya diawali
dengan kata”get”.
vPOLYMORPHISM
Polymorphism dapat disamakan dengan Method
Overloading, dimana di dalam sebuah class terdapat beberapa method dengan
nama sama. Sebuah Method bernama CetakData() yang
misalnya berfungsi menampilkan data String, tentu tidak bisa menangani masukan
berupa data numerik, boolean, ataupun karakter, demikian juga sebaliknya.
Solusi yang bisa dilakukan adalah dengan menyediakan beberapa Method CetakData() yang
akan menangani setiap tipe data, sehingga data apapun yang diberikan sebagai
parameter tetap bisa diproses.
Berikut adalah contoh program Polymorphism pada Java:
Berikut adalah contoh program Polymorphism pada Java:
1. Pakailah editor untuk menuliskan Source Code Java, seperti Notpad, JCreator, atau
Netbeans, Dan kitekkan Source Code Dibawah ini :
class CetakDataTipe {
// membuat method dengan nama sama tapi berbeda tipe data
public void CetakData(String Cetak) {
System.out.println(Cetak);
}
public void CetakData(int Cetak) {
System.out.println(Cetak);
}
public void CetakData(double Cetak) {
System.out.println(Cetak);
}
public void CetakData(char Cetak) {
System.out.println(Cetak);
}
}
public class Polymorphism {
public static void main(String[] args) {
CetakDataTipe data = new CetakDataTipe();
System.out.print("Cetak Data Tipe String : ");
data.CetakData("Sumatra");
System.out.print("Cetak Data Tipe Integer : ");
data.CetakData(1989);
System.out.print("Cetak Data Tipe Double : ");
data.CetakData(16.5 / 2);
System.out.print("Cetak Data Tipe Char : ");
data.CetakData('N');
}
}
2. Lalu Jalankan
Program dan Akan mendapatkan Output seperti dibawah ini :
Method CetakData() akan
bereaksi dengan satu dari 4 macam tipe data, tergantung dari data yang Passing ke
dalamnnya. Keragaman model Method ini disebut Polimorph atau
Banyak Bentuk.
Program SubClass.Java
keterangan:
public class extend SuperClass
{
extend = warisan
=Super( ) ;
Untuk memanggil konstruktor
kelas induk
=Super.methodSuperClass( );
untuk
memanggil superclass dari kelas induk
Program DemoInheritance
Keterangan :
SubClass sc = new
SubClass( ); =Digunakan untuk membuat objek baru dengan
nama sc
sc.methodSubcCass( );
=untuk
memanggil method subclass dari objek sc
Hasil Dari Program di
atas :
PROGRAM Persegi.java
Keterangan:
Panjang
Lebar
= adalah atribut
Tinggi
Hasil ProgramPersegi
PROGRAM
MainPersegi.Java
Keterangan:
Persegi pg =
new Persegi( ); = membuat objek baru pg dr class
Persegi
pg.setpanjang(10);
= untuk memanggil method panjang dari class persegi
pg.setLebar(20);
= untuk memanggil method lebar dari class persegi
HAsil Dari Program Di
atas:
PROGRAM Karyawan.Java
PROGRAM Manager.java
PROGRAM
Receptionis.Java.
PROGRAM
Polymorphisme.Java
Hasil dari
Program Molymorphisme
Tidak ada komentar:
Posting Komentar