karakteristik pbo - dinus.ac.iddinus.ac.id/repository/docs/ajar/karakteristik_pbo.pdf · 18...

24
1 Abstraction, encapsulation, inheritance, polymorphism Karakteristik PBO

Upload: vuongcong

Post on 10-Jul-2019

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

1

Abstraction, encapsulation, inheritance, polymorphism

Karakteristik PBO

Page 2: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

2

Abstraction

▪ Cara kita melihat suatu sistem dalam bentuk yanglebih sederhana, yaitu sebagai suatu kumpulansubsistem (object) yang saling berinteraksi.

• Mobil adalah kumpulan sistem pengapian, sistemkemudi, sistem pengereman

▪ Alat meng-abstraksikan sesuatu adalah class

▪ Object bersifat modularity. Object dapat ditulis dandimaintain terpisah (independen) dari object lain

Page 3: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

3

Page 4: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

4

Page 5: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

5

Encapsulation

▪ Mekanisme menyembunyikan suatu proses dan datadalam sistem untuk menghindari interferensi, danmenyederhanakan penggunaan proses itu sendiri

• Tongkat transmisi (gigi) pada mobil

• Tombol on/off/pengaturan suhu pada AC

▪ Class access level (public, protected, privat) adalahimplementasi dari konsep encapsulation

▪ Enkapsulasi data dapat dilakukan dengan cara:

1. mendeklarasikan instance variable sebagai private

2. mendeklarasikan method yang sifatnya public untukmengakses variable tersebut

Page 6: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

6

Class Lingkaran{

void buatLingkaran(){

for(){

Garis.buatGaris()

}

}

class Garis{

private void buatTitik(x, y){

}

public void buatGaris(tA, tB){

}

}

Page 7: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

8

Encapsulation dan Access Modifier

ModifierDalam Class yang Sama

DalamPackage yang Sama

DalamSubClass

DalamPackage Lain

private ✓

tanpatanda

✓ ✓

protected ✓ ✓ ✓

public ✓ ✓ ✓ ✓

Page 8: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

9

Encapsulation

▪ Enkapsulasi data juga dapat dilakukan dengan cara:

1. mendeklarasikan instance variable sebagai private

2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut

Page 9: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

10

Sepeda.java

public class Sepeda{

int gir;

void setGir(int pertambahanGir) {

gir= gir+ pertambahanGir;

}

int getGir() {

return gir;

}

}

Page 10: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

11

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

sepedaku.gir = 3;

System.out.println(“Gir saat ini: “ + sepedaku.getGir());

}

}

Page 11: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

12

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;

}

}

Page 12: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

13

Inheritance (Pewarisan)

▪ Suatu class dapat mewariskan atribut dan method kepada class lain (subclass), serta membentuk class hierarchy

▪ Penting untukReusability

▪ Java Keyword:extends

Page 13: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

14

Sepeda.java

public class Sepeda{

private int gir;

void setGir(int pertambahanGir) {

gir= gir+ pertambahanGir;

}

int getGir() {

return gir;

}

}

Page 14: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

15

Class SepedaGunung Mewarisi Class Sepeda

public class SepedaGunungextends Sepeda{

private int sadel;

void setSadel (int jumlah) {

sadel = getGir() -jumlah;

}

int getSadel(){

return sadel;

}

}

public class SepedaGunungBeraksi {

public static void main(String[] args) {

SepedaGunung sg=newSepedaGunung();

sg.setGir(3);

System.out.println(sg.getGir());

sg.setSadel(1);

System.out.println(sg.getSadel());

}

}

SepedaGunung.java SepedaGunungBeraksi.java

Page 15: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

16

Latihan: Inheritance Matematika

1. Buat class MatematikaCanggih yang merupakan inherit dari class Matematika

1. Tambahkan method modulus(int a, int b) yang menghitungmodulus dari a dan b

1. Operator modulus adalah %

2. Buat class MatematikaCanggihBeraksi yang memanggil method pertambahan, perkalian danmodulus

Page 16: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

18

Polymorphism

▪ Kemampuan untuk memperlakukan object yangmemiliki perilaku (bentuk) yang berbeda

▪ Implementasi konsep polymorphism:

1. Overloading: Kemampuan untuk menggunakan nama yangsama untuk beberapa method yang berbeda parameter(tipe dan atau jumlah)

2. Overriding: Kemampuan subclass untuk menimpa methoddari superclass, yaitu dengan cara menggunakan nama danparameter yang sama pada method

Page 17: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

19

Polymorphism – Overloadingclass Mobil {

String warna;

int tahunProduksi;

public Mobil(String warna, int tahunProduksi){

this.warna = warna;

this.tahunProduksi = tahunProduksi;

}

public Mobil(){

}

void info(){

System.out.println("Warna: " + warna);

System.out.println("Tahun: " + tahunProduksi);

}

}

public class MobilKonstruktor{

public static void main(String[] args){

Mobil mobilku = new Mobil(“Merah”, 2003);

mobilku.info();

Mobil mobilmu = new Mobil();

mobilmu.info();

}

}

Page 18: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

20

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, int warna, String namaLingkaran){...

}

}

Page 19: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

21

Polymorphism - Overriding

public class Sepeda{

private int gir;

void setGir(int pertambahanGir) {

gir= gir+ pertambahanGir;

}

int getGir() {

return gir;

}

}

Page 20: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

22

Polymorphism - Overriding

public class SepedaGunung extendsSepeda{

void setGir(int pertambahanGir) {

super.setGir(pertambahanGir);

gir = 2*getGir();

}

}

public class SepedaGunungBeraksi {

public static void main(String[] args) {

SepedaGunung sg=newSepedaGunung();

sg.setGir(2);

System.out.println(sg.getGir());

sg.setGir(3);

System.out.println(sg.getGir());

}

}

SepedaGunung.java SepedaGunungBeraksi.java

Page 21: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

23

Latihan: Overloading pada Matematika

1. Kembangkan class Matematika, MatematikaCanggih dan MatematikaBeraksi

2. Lakukan overloading pada Method yang ada (pertambahan, pengurangan, perkalian, pembagian, modulus)

3. Tambahkan method baru bertipe data double (pecahan) dan memiliki 3 parameter

4. Uji di kelas MatematikaBeraksi dengan parameter pecahan: 12.5, 28.7, 14.2

5. Misalnya: pertambahan(12.5, 28.7, 14.2) pertambahan(12, 28, 14)pertambahan(23, 34) pertambahan(3.4, 4.9)

Page 22: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

24

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);

}

...

}

Page 23: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

25

Skill Check

1. Class: HaloSemarang

2. Variable: Mobil

3. Method: Bank

4. Parameter: Matematika

5. Encapsulation: Sepeda

6. Inheritance: MatematikaCanggih

7. Polimorphism: Matematika

Page 24: Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18 Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang

26

Referensi

▪ http://romisatriawahono.net/lectures/

▪ Object First With Java, Fifth edition, David J. Barnes & Michael Kölling, Prentice Hall / Pearson Education, 2012.

▪ The JavaTM Tutorial, http://docs.oracle.com/javase/tutorial/java/nutsandbolts/, Oracle, 1995-2014.

▪ Java SE Tutorial, http://www.oracle.com/technetwork/java/javase/downloads/java-se-7-tutorial-2012-02-28-1536013.html, Oracle, 2014.

▪ SCJP Sun Certified Programmer for JavaTM 6 Study Guide Exam (310-065), Kathy Sierra & Bert Bates, Mc Graw Hill, 2008.