INFORMATION HIDING,
INHERITANCE, ENCAPSULATION DAN POLYMORPHISM
Dalam bahasa
pemrograman berorentasi objek, program dibagi menjadi objek-objek yang saling
berinteraksi satu sama lain. Objek adalah
benda, baik benda yang berwujud nyata maupun benda yang tidak nyata (abstrak).
Konsep-konsep dasar yang mendasari pemrograman berorientasi objek adalah
inheritance (pewarisan), encapsulation (pengkapsulan) dan polymorphism.
A. INHERITANCE
Inheritance
adalah penurunan atribut dan method dari suatu kelas super/ kelas induk ke
sub kelas/ kelas anak. Pewarisan ini bersifat menyeluruh sehingga semua
attribute dan method yang dimiliki kelas super dapat diturunkan ke sub kelas.
Contohnya ; Jika kelas C merupakan turunan kelas B dan
kelas B merupakan turunan kelas A, maka otomatis attribute dan method kelas A
akan diwariskan pula ke kelas C.
Deklarasi : [modifier] class NamaSubKelas extends NamaKelasSuper {
Class body;
}
Keterangan ; Kata kunci extends
digunakan untuk menyatakan pewarisan.
B. ENCAPSULATION
Encapsulation
atau pengkapsulan adalah suatu kemampuan dalam pemrograman berorientasi
objek untuk menyembunyikan atribut dan method suatu objek dari objek lain.
Pengkapsulan dibuat agar orang lain tidak mengetahui bagaimana detil
implementasi (listing program) dari modul tersebut. Mereka hanya perlu
mengetahui variable-variabel apa saja yang menjadi input dan output, serta
bagaimana interaksi modul tersebut dengan variable, method, kelas, interface
atau package lain dengan modul tersebut. Dalam pemrograman, menyembunyikan
detail ini disebut dengan istilah information
hiding.
Pengkapsulan dilakukan dengan cara
memberikan modifier private pada suatu method dan pada variable. Method untuk
memberikan nilai pada suatu atribut private biasanya diawali dengan kata “set“, sedangkan method untuk mengambil
nilai dari suatu atribut private biasanya diawali dengan kata “get“.
C. POLYMORPHISM
Secara leksikal, polymorphism
(polimorfisme) bermakna satu kata yang memiliki banyak arti. Polimorfisme dapat
diilustrasikan dengan penggunaan kata “
mentah “ seperti kalimat berikut :
1.
Sayuran itu masi mentah.
2.
Pukulan petinju itu berhasil dimentahkan lawannya.
3.
Gagasan itu masih mentah sehingga perlu dibahas kembali.
Dalam pemrograman, istilah polimorfisme dapat diartikan sebagai modul yang memiliki nama yang
sama, namun memiliki tingkah laku yang berbeda sehingga implementasinya
berbeda.
LANGKAH-LANGKAH PRAKTIKUM
A.
Membuat program SuperClass.java
public class SuperClass{
public SuperClass() {
System.out.println("Ini Konstruktor milik
SuperClass");
}
public void methodSuperClass() {
System.out.println("Ini method milik
SuperClass");
}
}
B.
Membuat program SubClass.java
public class SubClass extends
SuperClass {
public SubClass() {
super();
}
public void methodSubClass() {
super.methodSuperClass() ;
}
}
C.
Membuat program DemoInheritance.java
public class DemoInheritance
{
public static void main(String[] args) {
SubClass sc = new SubClass();
sc.methodSubClass();
}
}
D.
Membuat program Persegi.java
public class Persegi {
private double panjang; //atribut
yang di sembunyikan
private double lebar; //atribut yang di sembunyikan
private
double tinggi; //atribut
yang di sembunyikan
public
Persegi () {
panjang = 0;
lebar = 0;
}
private double luas(double p,double l) {
return p*1;
}
public void setPanjang(double panjang1) {
this.panjang = panjang1;
}
public void setLebar(double lebar1) {
this.lebar = lebar1;
}
public double getPanjang() {
return panjang;
}
public double getLebar() {
return lebar;
}
public
double getLuas() {
return
luas(panjang, lebar);
}
}
E.
Membuat program MainPersegi.java
public class MainPersegi {
public static void main(String[] args) {
Persegi pg = new Persegi();
pg.setPanjang(10);
pg.setLebar(20);
System.out.println("Panjang :
"+pg.getPanjang());
System.out.println("Lebar :
"+pg.getLebar());
System.out.println("Luas :
"+pg.getLuas());
}
}
F.
Membuat program Karyawan.java
abstract class Karyawan {
int gaji;
Karyawan() {
gaji = 1000000;
}
int getGaji() {
return gaji;
}
abstract void naikGaji();
}
G. Membuat
program Manager.java
class Manager extends Karyawan
{
Manager() {
gaji += 2000000;
}
void naikGaji() { gaji+=3000000; }
}
H. Membuat
program Receptionist.java
class Receptionist extends
Karyawan {
Receptionist() {
gaji += 1000000;
}
void naikGaji() { gaji+=1000000; }
}
I.
Membuat program Polymorphisme.java
class
Polymorphisme {
public static void main(String[] args) {
Karyawan K[] = new
Karyawan[3];
K[0] = new Manager();
K[1] = new Receptionist();
K[2] = new Manager();
for (int i=0;i<3;i++)
System.out.println("Gaji
karyawan "+i+" adalah "+K[i].getGaji());
for (int i=0;i<3;i++)
K[i].naikGaji();
for (int i=0;i<3;i++)
System.out.println("Gaji
sekarang "+i+" adalah "+K[i].getGaji());
}
}