Anda di halaman 1dari 9

Teknik Informatika | SMK BINA PUTRA

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)

Contoh Penerapan Inheritamce :


KelasnInduk.java
class KelasInduk{
    public KelasInduk(){
        System.out.println("Ini adalah konstruktor dari kelas induk");
    }
    
    public void MethodInduk(){
        System.out.println("Method ini dimiliki oleh kelas induk");
    }
    
    public void inimaudimodif(){
        System.out.println("Di induk aku keren :D");
    }
}

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.

c. Menghindari efek yang di luar perencanaan


Dengan enkapsulasi, modul dasar tidak akan terganggu oleh perubahan/modifikasi dari
program yang menggunakannya.

Sebenarnya enkapsulasi telah kita implementasikan sebelumnya.Pembuatan kelas merupakan salah


satu contoh enkapsulasi.

Contoh Penerapan Encapsulation :


HitungGaji.java
import java.text.DecimalFormat;
class HitungGaji{
    private double gajiKotor, gajiSetelahPajak;
    public double gajibersih;
    private double potongan=75000.00;
    
    public void setGaji(double gaji){
        gajiKotor = gaji;
    }
    
public void hitungGaji(){
        gajiSetelahPajak = gajiKotor - (0.2 * gajiKotor);
        gajibersih = gajiSetelahPajak - potongan;
    }
    
public double getgajikotor(){
        returngajiKotor;
    }
    
    public double getgajibersih(){
        returngajibersih;
    } 
}

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

Contoh program menggunakan GUI Java dengan netbeans


LuasLingkaran.java
import javax.swing.JOptionPane;
public class LuasLingkaran {
public static void main (String [] args){
//deklarasi variabel
double phi=22/7; //konstanta phi
double Luas,Keliling, diameter;

//inputan jari-jari dari user dan menyimpannya dalam variabel r


double r = Double.parseDouble(JOptionPane.showInputDialog(null, "Inputkan Jari-jari ?"));

// 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

PROGRAM MENCARI LUAS SEGITIGA :

public class NewJFrame extends javax.swing.JFrame {


double a,t,l;

public NewJFrame() {
initComponents();
}

@SuppressWarnings("unchecked")…

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {


a = Double.parseDouble(jTextField1.getText());
t = Double.parseDouble(jTextField2.getText());
l = (a * t)/2;
jTextField3.setText(String.valueOf(l));
}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
// End of variables declaration
}

Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA
Teknik Informatika | SMK BINA PUTRA

TUGAS !

KARAKTER MOBILE LEGEND.


HERO

extends

tipe FIGHTER MASKMAN TANK

extends

Karakter Karakter Karakter

Karakter Karakter Karakter

Karakter Karakter Karakter

namaKarakter: String
tipeKarakter : String
durability : int
dificulty : int
defense : int

+spesialAttack : void

Riza Zaenal H
MODUL PRAKTIKUM : PEMROGRAMAN BERORIENTASI OBJEK (PBO) JAVA

Anda mungkin juga menyukai