INHERITANCE
Inheritance adalah proses pewarisan data dan method dari suatu kelas kepada kelas yang lain.
Pewarisan ini bersifat menyeluruh, sehingga semua data dan method yang dimiliki oleh kelas asalnya
akan diturunkan kepada kelas baru. Kelas yang mewariskan disebut Kelas Super(Super Class),
sedangkan kelas yang diwariskan disebut SubKelas( Sub Class)
- Overriding Data dan Method
Adalah kemampuan suatu subkelas untuk memodifikasi data dan method dari kelas
induknya.Overriding disebut juga redefinisi data dan method. Proses ini akan mengubah data
dan method dari keduanya,kelas anak dan induknya.
- Keyword extends
Di dalam bab sebelumnya ada dijelaskan tentang bentuk umum pendeklarasian class.
Maka di dalam inheritance, modifiers2 diganti dengan keyword extends yang menyatakan
bahwa kelas tersebut merupakan perluasan dari kelas induknya.
- Keyword Super
Keyword ini digunakan oleh kelas anak untuk mengakses konstruktor atau method dari
kelas induk.
a. Keyword super untuk memanggil konstruktor kelas super
Bentuk umum:
super()
atau
super(parameter)
Java tidak mengizinkan kelas anak memanggil nama konstruktor dari kelas induk
secara langsung. Ibaratkan seorang anak tidak boleh memanggil orangtuanya dengan
menggunakan namanya.Maka keyword superlah yang digunakan untuk memanggil
konstruktor dari Kelas Super.
b. Keyword super untuk memanggil method kelas super
Bentuk umum:
super.method(parameter)
kelasAnak.java
class KelasAnak extends KelasInduk{
public KelasAnak(){
super();
}
public void methodAnak(){
super.MethodInduk();
}
public void inimaudimodif(){
System.out.println("Di anak knp aku jelek? :(");
}
}
ENCAPSULATION
Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA
Teknik Informatika | SMK BINA PUTRA
Adalah cara bagaimana anda membungkus data dan method yang menyusun kelas sehingga kelas
dapat dipandang sebagai suatu modul dan menyembunyikannya dari dunia luar.
Prinsip enkapsulasi:
a. Bersifat independen
Suatu modul (Super Class) tidak akan terikat pada bagian tertentu dari program yang
menggunakan method dari kelas tersebut.
b. Bersifat transparan
Jika kita memodifikasi suatu modul, maka akan berdampak pada bagian program yang
menggunakan modul tersebut.
contohEnkapsulasi.java
public class contohEnkapsulasi {
public static void main(String [] args){
DecimalFormat digit = newDecimalFormat("0.00");
HitungGaji Budi = newHitungGaji();
Budi.setGaji(3000000);
Budi.hitungGaji();
System.out.println("Informasi gaji karyawan: ");
System.out.println("Besar gaji kotor: "+digit.format(Budi.getgajikotor()));
System.out.println("Besar gaji bersih: "+digit.format(Budi.getgajibersih()));
}
}
Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA
Teknik Informatika | SMK BINA PUTRA
POLYMORPH
Polimorfisme merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai
bentuk dan perilaku berbeda. Istilah ini sendiri berasal dari bahasa Yunani, yang berarti “Mempunyai
banyak bentuk”.
Polimorfisme merupakan kemampuan objek-objek yang berbeda kelas namun terkait dalam pewarisan
untuk merespon secara berbeda terhadap suatu pesan yang sama. Polimarfisme juga dapat dikatakan
kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya,
tergantung letak objek tersebut pada jenjang pewarisan.
Contoh :
Buatlah file file class berikut :
PROJECT : EkspresiWajah
rautMuka.java
class rautMuka{
public String Respons(){
return ("Lihat reaksi wajah saya \n");
}
}
Gembira.java
class Gembira extends rautMuka{
public String Respons(){
return("ha ha... hi.. hi.. saya sedang gembiara \n");
}
}
Sedih.java
class Sedih extends rautMuka{
public String Respons(){
return("Hik.. hik.. teganya dia berbuat itu.. \n");
}
}
Marah.java
class Marah extends rautMuka{
public String Respons(){
return("Hei!! Jangan dekati saya!\n");
}
}
contohpolimorfis.java
public class contohpolimorfis {
public static void main(String [] args){
System.out.println("Contoh Polimorfisme");
rautMuka objRaut= new rautMuka();
Gembira objGembira= newGembira();
Sedih objSedih= newSedih();
Marah objMarah= newMarah();
rautMuka []ekspresi= new rautMuka[4];
ekspresi[0]=objRaut;
ekspresi[1]=objGembira;
ekspresi[2]=objSedih;
ekspresi[3]=objMarah;
for(int i=0;i<4;i++){
System.out.println("Ekspresi ["+i+"] = "+ekspresi[i].Respons());
}
}
}
PROJECT : BINATANGBINATANGAN
Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA
Teknik Informatika | SMK BINA PUTRA
Binatang.java
public abstract class Binatang
{
Binatang(String jenis)
{
this.jenis = jenis;
}
protected abstract void suara();//dideklarasi, tidak di defenisikan
public String toString()
{
return "Seekor "+jenis;
}
private String jenis;
}
Burung.java
public class Burung extends Binatang
{
Burung(String nama)
{
super("Burung");
this.nama = nama;
}
public void suara()
{
System.out.println("Berkicau ");
}
public String toString()
{
return super.toString()+" "+nama;
}
private String nama;
}
Kucing.java
public class Kucing extends Binatang
{
Kucing(String nama)
{
super("Kucing");
this.nama = nama;
}
public void suara()
{
System.out.println("Mengeong.. ");
}
public String toString()
{
return super.toString()+" "+nama;
}
private String nama;
}
Anjing.java
public class Anjing extends Binatang
{
Anjing(String nama)
{
super("Anjing");
this.nama = nama;
}
public void suara()
{
System.out.println("Menggong-gong ");
}
public String toString()
{
return super.toString()+" "+nama;
}
private String nama;
}
Kambing.java
public class Kambing extends Binatang
Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA
Teknik Informatika | SMK BINA PUTRA
{
Kambing(String nama)
{
super("Kambing");
this.nama = nama;
}
public void suara()
{
System.out.println("Mengembik ");
}
public String toString()
{
return super.toString()+" "+nama;
}
private String nama;
}
CobaPolimorpic.java
import java.util.Random;
public class CobaPolimorpic
{
public static void main(String []args)
{
Binatang[] peliharaanku = {new Burung("Kakak Tua"), new Kambing("Etawa"),
new Anjing("Kintamani"), new Kucing("Anggora")
};
Binatang kesayangan;
Random pilihan = new Random();//memilih acak
kesayangan = peliharaanku[pilihan.nextInt(peliharaanku.length)];
//mengacak bilangan dari 0 sampai length-1 atau i-1
System.out.println("Binatang kesayangan anda : "+kesayangan);
System.out.print("Suaranya : ");
kesayangan.suara();
}
}
PROJECT : PEGAWAI
Direktur.java
public final class Direktur extends Pegawai
{
private double gajiDirektur;
private double dividenSaham;
//konstruktor
public Direktur(String nama, double gaji, double dividen)
{
super(nama);//memanggil konsruktor kelas pegawai
setGajiDirektur(gaji);
setDividen(dividen);
}
public void setGajiDirektur(double gaji)
{
if(gaji > 0)
gajiDirektur = gaji;
else
gajiDirektur = 0;
}
//mengeset hasil pembagian dividen keuntungan saham
public void setDividen(double dividen)
{
if (dividen > 0)
dividenSaham = dividen;
else
dividenSaham = 0;
}
public String nama()//method yang mengembalikan nama
{
return super.namaPegawai();
}
public String jabatan()//Method yang mengembalikan jabatan
{
return "Direktur";
}
//method mengembalikan besar gaji direktur
public double gajiPerbulan()
Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA
Teknik Informatika | SMK BINA PUTRA
{
return gajiDirektur;
}
//method mengembalikan besar deviden
public double labaDividen()
{
return dividenSaham;
}
//implement dan defenisi method abstract dari kelas pegawai
//method ini mengembalikan besar gaji direktur
public double income()
{
return(gajiDirektur+dividenSaham);
}
}
Pegawai.java
public abstract class Pegawai
{
private String namaPeg;
//konstruktor
public Pegawai(String nama)
{
namaPeg = nama;
}
//method (get) untuk mengembalikan nama pegawai
public String namaPegawai()
{
return namaPeg;
}
//method abstract ini diwariskan ke semua kelas yg diturunkan dari kelas abstract ini
public abstract double income();
}
TestPegawai.java
import java.text.DecimalFormat;
public class TestPegawai
{
public static void main(String args[])
{
Pegawai pgw;
//membuat objek dari kelas abstract //pegawai
String output = "";
Direktur d = new Direktur("Wibowo",12000000.00,7500000.00);
DecimalFormat digitPresisi = new DecimalFormat("0.00");
pgw = d;
/* objek refrensi dari kelas abstrak pegawai (pgw) merefer objek dari kelas direktur (d) yang diturunkan dari kelas abstrak
pegawai */
System.out.println("\nDemo INHERITANCE, ENCAPSULASI, POLIMORFI");
System.out.println("------------------------------------------");
System.out.println("Nama : "+ d.namaPegawai()+"\n"+"Jabatan : "+ d.jabatan() + "\n" +
"Gaji : "+ digitPresisi.format(d.gajiPerbulan())+"\n" + "Dividen :
"+ digitPresisi.format(d.labaDividen())+"\n" + "Total : "+
digitPresisi.format(d.income())+"\n");
System.exit(0);
}
}
Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA
Teknik Informatika | SMK BINA PUTRA
LATIHAN : TUGAS
Sebuah perusahaan terdapat banyak employess, diantaranya Salaried Employee, Commission
Employee dan Project Planner.
1. Setiap Employee tersebut memiliki fungsi untuk menghitung gaji dan cetak informasi
2. Salaried Employee memiliki atribut nama, nip , upah mingguan
3. Commission Employee memiliki attribut nama,nip, gaji pokok, komisi dan total hasil proyek
4. Project Planner memiliki attribut nama, nip, gaji pokok, total hasil proyek.
Setiap kelas harus memiliki konstruktor, fungsi untuk menghitung gaji setiap pegawai dan fungsi
untuk menampilkan informasi yang dimiliki setiap jenis employee. Fungsi hitung gajinya adalah :
Salaried Employee : gaji = upah mingguan.
Commission Employee : gaji = gaji pokok + (komisi * total penjualan)
Project Planner : gaji = gaji pokok + (komisi * total hasil proyek) – pajak.
Pajak dihitung 5% dari gaji pokok.
SE krani = new SE(“dodo”,”12312313”,200000.00);
CE asisten = new CE(“nama”,”12345”,2000000.00,200000.00,3);
Krani.gaji()
Asisten.gaji()
GUI : JAVA
// rumus-rumus
diameter=2*r; // rumus diameter
Luas = phi*r*r; // rumus Luas
Keliling= 2 * phi * r; // rumus Keliling;
// menampilkan hasil
JOptionPane.showMessageDialog(null,"Diameter Lingkaran : "+diameter+ "\nLuas Lingkaran :
"+Luas+"\nKeliling Lingkaran : "+Keliling);
}
}
Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA
Teknik Informatika | SMK BINA PUTRA
public NewJFrame() {
initComponents();
}
@SuppressWarnings("unchecked")…
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA
Teknik Informatika | SMK BINA PUTRA
TUGAS !
extends
extends
namaKarakter: String
tipeKarakter : String
durability : int
dificulty : int
defense : int
+spesialAttack : void
Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA