Bab 3: INFORMATION HIDING, INHERITANCE, ENCAPSULATION DAN POLYMORPHISM
Tujuan
Agar mahasiswa memahami dan mempratekan pembuatan aplikasi yang mengimplemensiakn sifat-sifat dari bahasa pemprograman berorientasi objek.
Dasar Teori
Dalam bahsa pemrograman berorientasi obyek, program dibagi menjadi objek-objek yang saling berinteraksi satu sama lain. Obyek adalah benda, baik benda yang berwujud nyata maupun benda yang tidak nyata (abstrak).konsep-konsep dasar yang mendasari pemprograman berorientasi obyek adalah inheritance (pewarisan), encapsulation (pengkapsulan) dan polymorphism.
A. INHERITANCE
Inheritance adalah penurunan atribut dan method dari suatu kelas super/kelas induk ke sun kelas/kelas anak. Pewarisan ini bersifat menyeluruh sehingga semua attribute dan method yang dimiliki kelas super dapat diturukan ke sub kelas controlnya jika kelas c merupakan turunan kelas b merupakan turunan kelas a, maka otomatis attribute dan method kelas a akan diwarisan pula ke kelas c. Dengan demikian jika seseorang programmer ingin memodifikasi suatu arribute atau method yang digunakan sub kelas, maka hanya dilakukan pada kelas super yang memilikinya.
Deklarasi:
[modifier] class BanaSubKelas extends NamaKelasSuper {
Class body;
}
Keteranagan : kata kunci extends digunakan untuk menyatakna pewarisan.
B. ENCAPSULATION
Encapsulation atau pengkapsulan adalah suatu kemampuan dalam pemprograman berorientasi objek untuk menyembunyikan atribut dan method suatu objek dari objek lain. Pengkapsulan membuat 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 dikenal istilah information hiding.
Pengkapsulan dilakukan dengan cara memberi modifier private pada suatu method dan pada variable. Method untuk memberikap nilai pada suatu atribut privat biasanya diawali deangan kata “set”, sedangkan method untuk mengambil nilai dari sauatu atribut privat biasanya diawali dengan “get”.
Secara leksikal, polymorphism (polimorfisme) bermakna satu kata yang memiliki banyak arti. Polimortisme dapat dilustrasikan sebagai berikut. Perhatikan pengunaan kata “mentah” dalam beberapa kalimat berikut:
1. “Sayuran itu masih mentah”.
2. “Pukulan petinjuk itu berhasil dimentahkan lawannya”.
3. “Gagasan itu masih mentah sehingga perlu dibahas kembali”.
langkah-langkah pratikum
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");
}
}
|
OUTPUTNYA:
belom fungsi utama
B. Membuat Program SubClass.java
public class SubClass extends SuperClass {
public SubClass() {
super();
}
public void methodSubClass() {
super.methodSuperClass();
}
}
|
OUTPUTNYA:
belom fungsi utama
C. Membuat Program DomoInheritance.java
public class DemoInheritance {
public static void main(String[] args) {
SubClass sc = new SubClass ();
sc.methodSubClass();
}
}
|
Ini konstruktor milik SuperClass
Ini method milik SuperClass
|
D. Membuat Program Persegi.java
public class persegi {
private double panjang; //atribut yang disembunyikan
private double lebar; //atribut yang disembunyikan
private double tinggi; //atribut ysng disembunyikan
public persegi() {
panjang = 0;
lebar = 0;
}
private double luas(double p,double l) {
return p*l;
}
public void setPanjang(double panjangl) {
this.panjang = panjangl;
}
public void setLebar(double lebarl) {
this.lebar = lebarl;
}
public double getPanjang() {
return panjang;
}
public double getLebar() {
return lebar;
}
public double getLuas() {
return luas(panjang, lebar);
}
}
|
belom fungsi utama
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());
}
}
|
Panjang : 10.0
Lebar : 20.0
Luas 200.0
|
F. Membuat Progarm Karyawan.java
abstract class Karyawan {
int gaji;
Karyawan() {
gaji = 1000000;
}
int getGaji() {
return gaji;
}
abstract void naikGaji();
}
|
belom fungsi utama
G. Membuat Program Manager.java
class Manager extends Karyawan {
Manager() {
gaji += 2000000;
}
void naikGaji() { gaji+=3000000; }
}
|
belom fungsi utama
H. Membuat Program Receptionist.java
class Receptionist extends Karyawan {
Receptionist () {
gaji += 1000000;
}
void naikGaji() { gaji+=1000000; }
}
|
belom fungsi utama
J. 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());
}
}
|
Gaji karyawan 0 adalah 3000000
Gaji karyawan 1 adalah 2000000
Gaji karyawan 2 adalah 3000000
Gaji sekarang 0 adalah 6000000
Gaji sekarang 1 adalah 3000000
Gaji sekarang 2 adalah 6000000
|
Komentar
Posting Komentar