Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18...
Transcript of Karakteristik PBO - dinus.ac.iddinus.ac.id/repository/docs/ajar/Karakteristik_PBO.pdf · 18...
![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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/1.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/2.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/3.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/4.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/5.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/6.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/7.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/8.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/9.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/10.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/11.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/12.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/13.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/14.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/15.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/16.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/17.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/18.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/19.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/20.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/21.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/22.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/23.jpg)
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](https://reader030.fdokumen.com/reader030/viewer/2022040622/5d25ba1488c99326698dab19/html5/thumbnails/24.jpg)
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.