Information Hiding,
Inheritance, Encapsulation dan Polymorphism
Tujuan dari
program ini agar kita dapat memahami dan mempraktekkan pembuatan aplikasi yang
mengimplementasikan sifat-sifat dari bahasa pemograman berorientasi objek.
Dalam bahasa
pemograman berorientasi objek, program dibagi menjadi objek-objek yang saling
berhubungan. Konsep-konsep dasar yang mendasari pemograman berorientasi objek
adalah inheritance (pewarisan), encapsulation (pengkapsulan) dan polymorphism
(satu kata memiliki banyak arti).
1.
Contoh program Inheritance
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");
}
}
Output
: tidak ada karena program ini tidak memiliki fungsi utama.
b. Membuat
Program SubClass.java
public class SubClass extends SuperClass {
public
SubClass(){
super();
}
public
void methodSubClass(){
super.methodSuperClass();
}
}
Output
: tidak ada karena program ini juga tidak memiliki fungsi utama.
Dari
kedua program di atas hanya menunjukkan Inheritance yaitu penurunan atribut dan
method dari suatu kelas super(kelas induk) ke sub kelas (kelas anak).
Penjelasan:
·
public SuperClass() {
System.out.println("Ini
Konstruktor milik SuperClass");
}
Kode program ini
merupakan kode kelas induk yang penurunan kelasnya ke kode program:
public SubClass(){
super();
}
Dimana kode
program ini memiliki konstruktor yang akan memanggil konstruktor kelas induk.
·
public void methodSuperClass(){
System.out.println("Ini
method milik SuperClass");
}
Kode program ini
merupakan kode kelas induk yang penurunan kelasnya ke kode program:
public void methodSubClass(){
super.methodSuperClass();
}
Dimana kode
program ini memiliki konstruktor yang akan memanggil konstruktor kelas induk
atau turunan dari methodSuperClass.
c. Membuat
Program DemoInheritance.java
public class
DemoInheritance{
public static void main
(String[] args) {
SubClass sc =
new SubClass();
sc.methodSubClass();
}
}
Output:
Program ini
merupakan program untuk memanggil method SuperClass dan SubClass dengan
membuat objek
baru yaitu sc.
2.
Contoh Program Encapsulation
a.
Membuat Program Persegi.java
public class
Persegi{
private double panjang;
private double lebar;
private double tinggi;
public Persegi() {
panjang = 0;
lebar = 0;
}
private double luas (double p,
double l){
return p*l;
}
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);
}
}
Output : tidak
ada karena program ini juga tidak memiliki fungsi utama.
b.
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());
}
}
Output:
Penjelasan:
·
Kode program ini merupakan atribut yang
disembunyikan dengan modifier private.
private double panjang;
private double lebar;
private double tinggi;
·
public Persegi() {
panjang = 0;
lebar = 0;
}
Kode
program ini merupakan konstruktor dari kelas Persegi.
·
private double luas (double p, double l){
return p*l;
}
Kode program ini
merupakan method yang disembunyikan karena memiliki modifier private.
Modifier private
yaitu modifier yang wilayah aksesnya pada kelas yang sama atau hanya
dapat dipanggil pada kelas yang sama saja.
· Bahwa dapat kita lihat encapsulation pada
program di atas yaitu menyembunyikan atribut dan
method suatu objek dari objek
lain.
· Program MainPersegi.java adalah program untuk
menjalankan program Persegi.java
karena memiliki fungsi utama. Dapat kita lihat
:
-
Persegi pg = new Persegi();
Ø
Memanggil konsktruktor untuk mengubah nilai panjang menjadi 0 dan
Lebar menjadi 0.
-
pg.setPanjang(10);
Ø
Memanggil method setPanjang dengan objek pg
-
pg.setLebar(20);
Ø
Memanggil method setLebar dengan objek pg
-
System.out.println("Panjang
:"+pg.getPanjang());
Ø
Menampilkan Panjang = 10 dari method getPanjang
-
System.out.println("Lebar
:"+pg.getLebar());
Ø
Menampilkan Lebar = 20 dari method getLebar
-
System.out.println("Luas
:"+pg.getLuas());
Ø
Menampilkan Luas = 200 dari method getLuas
3.
Contoh Program Encapsulation
a.
Membuat Program Karyawan.java
abstract class
Karyawan{
int gaji;
Karyawan(){
gaji = 1000000;
}
int getGaji(){
return gaji;
}
abstract void naikGaji();
}
b.
Membuat Program Manager.java
class Manager
extends Karyawan{
Manager(){
gaji += 2000000;
}
void naikGaji() { gaji+=3000000;}
}
c.
Membuat Program Receptionist.java
class
Receptionist extends Karyawan{
Receptionist(){
gaji+=1000000;
}
void naikGaji() { gaji+=1000000;}
}
d.
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());
}
}
Polymorphism(polymorphisme)
merupakan suatu kata yang memiliki banyak arti. Dapat kita lihat dari contoh
program polymorphism. Program Manager.java dan Receptionist.java merupakan turunan
dari program Karyawan.java yang ketiga program tersubut tidak memiliki output
karena tidak memilki fungsi utama. Program tersebut dapat dijalankan pada
program Polymorphisme.java.
Output:
Tidak ada komentar:
Posting Komentar