Anda di halaman 1dari 23

1.

4 Karakteristik Pemrograman
Berorientasi Objek

Abstraction, Encapsulation,
Inheritance, Polymorphism
Abstraction
 Cara kita melihat suatu sistem dalam bentuk yang
lebih sederhana, yaitu sebagai suatu kumpulan
subsistem (object) yang saling berinteraksi.
• Mobil adalah kumpulan sistem pengapian, sistem
kemudi, sistem pengereman
 Alat meng-abstraksikan sesuatu adalah class
 Object bersifat modularity. Object dapat ditulis
dan dimaintain terpisah (independen) dari object
lain
Encapsulation
 Mekanisme menyembunyikan suatu proses dan data
dalam sistem untuk menghindari interferensi, dan
menyederhanakan penggunaan proses itu sendiri
• Tongkat transmisi (gigi) pada mobil
• Tombol on/off/pengaturan suhu pada AC
 Class access level (public, protected, privat) adalah
implementasi dari konsep encapsulation
 Enkapsulasi data dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
Class Lingkaran{ class Garis{
void buatLingkaran(){ private void buatTitik(x,
for(){ y){
Garis.buatGaris() }
} public void buatGaris(tA
tB){
}

}
}
Encapsulation dan Access Modifier
Dalam Class Dalam Dalam Dalam
Modifier yang Sama Package yang SubClass Package Lain
Sama

private       

tanpa
tanda    

protected   

public     
Encapsulation
 Enkapsulasi data juga dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
Sepeda.java
public class Sepeda{
int gir;

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();

sepedaku.setGir(1);
/* Variabel bisa diubah atau tidak sengaja diubah.
Hal ini berbahaya dan sering menimbulkan bug.
Berikan access modifier private pada instance variable */
sepedaku.gir = 3;
System.out.println(“Gir saat ini: “ + sepedaku.getGir());
}
}
Sepeda.java
public class Sepeda{
private int gir; // access modifier private pada instance variable

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}
Inheritance (Pewarisan)
 Suatu class dapat
mewariskan atribut dan
method kepada class
lain (subclass), serta
membentuk class
hierarchy
 Penting untuk
Reusability
 Java Keyword:
extends
Sepeda.java
public class Sepeda{
int gir;

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}
Class SepedaGunung Mewarisi Class Sepeda
public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi {
public static void main(String[] args) {

private int sadel; SepedaGunung sg=new SepedaGunung();

void setSadel (int jumlah) { sg.setGir(3);


sadel = getGir() - jumlah; System.out.println(sg.getGir());//3
}
sg.setSadel(1);
System.out.println(sg.getSadel());//2
int getSadel(){ }
return sadel; }
}
}

SepedaGunung.java SepedaGunungBeraksi.java
Latihan: Inheritance Matematika
1. Buat class MatematikaCanggih yang merupakan
inherit dari class Matematika
1. Tambahkan method modulus(int a, int b) yang
menghitung modulus dari a dan b
2. Operator modulus adalah %

2. Buat class MatematikaCanggihBeraksi yang


memanggil method pertambahan, pengurangan,
perkalian, pembagian dan modulus.
Polymorphism
 Kemampuan untuk memperlakukan object
yang memiliki perilaku (bentuk) yang
berbeda
 Implementasi konsep polymorphism:
1. Overloading: Kemampuan untuk menggunakan
nama yang sama untuk beberapa method yang
berbeda parameter (tipe dan atau jumlah)
2. Overriding: Kemampuan subclass untuk menimpa
method dari superclass, yaitu dengan cara
menggunakan nama dan parameter yang sama
pada method
Polymorphism – Overloading
class Mobil { public class MobilKonstruktor{
String warna; public static void main(String[] args){
int tahunProduksi; Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
public Mobil(String warna, int tahunProduksi){
this.warna = warna;
Mobil mobilmu = new Mobil();
this.tahunProduksi = tahunProduksi;
mobilmu.info();
}
}
}
public Mobil(){
}

void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
Polymorphism – Overloading
class Lingkaran{
void gambarLingkaran(){
}
void gambarLingkaran(int diameter){
...
}
void gambarLingkaran(double diameter){
...
}
void gambarLingkaran(int diameter, int x, int y){
...
}
void gambarLingkaran(int diameter, int x, int y, String warna, String
namaLingkaran){
...
Polymorphism - Overriding
public class Sepeda{
int gir;

public void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

public int getGir() {


return gir;
}
}
Polymorphism - Overriding
public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi {
public static void main(String[] args) {

public void setGir(int pertambahanGir) SepedaGunung sg=new SepedaGunung();


{
super.setGir(pertambahanGir); sg.setGir(2);
gir = 2*getGir(); System.out.println(sg.getGir());//4
}
} sg.setGir(3);
System.out.println(sg.getGir());//14
}
}

SepedaGunung.java SepedaGunungBeraksi.java
Latihan: Overloading pada Matematika
1. Kembangkan class Matematika, MatematikaCanggih dan
MatematikaCanggihBeraksi
2. Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian, pembagian,
modulus)
3. Tambahkan method baru pertambahan bertipe data
integer memiliki 3 parameter, dan data double (pecahan)
memiliki 2 dan 3 parameter
4. Uji di kelas MatematikaCanggihBeraksi dengan parameter:
23, 34 | 3.4, 4.9 | 12, 28, 14 | 12.5, 28.7, 14.2
5. Misalnya:
pertambahan(23, 34) pertambahan(3.4, 4.9)
pertambahan(12, 28, 14) pertambahan(12.5, 28.7, 14.2)
Matematika.java
public class Matematika{
void pertambahan (int a, int b){
int hasil= a + b;
System.out.println(“hasil:” + hasil);
}

void pertambahan (double a, double b, double c){


double hasil= a + b + c;
System.out.println(“hasil:” + hasil);
}
...
}
Skill Check
1. Class: HaloMedan ->34
2. Variable: Mobil ->53
3. Method: Bank ->81
4. Parameter: Matematika ->76
5. Encapsulation: Sepeda ->92,93
6. Inheritance: MatematikaCanggih ->97
7. Polimorphism: Matematika ->104
Dikumpulkan (soft copy) minggu depan dengan nama File:
PBO1_NPM_Nama
PBO1_214510001_Ucok.rar

Anda mungkin juga menyukai