Oop Miswar 1
-
Upload
faishal-amirullah -
Category
Documents
-
view
101 -
download
3
Transcript of Oop Miswar 1
![Page 1: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/1.jpg)
KONSEP OOPOOP Praktek dengan Java
Miswar ,S.st
Sumber : http://romisatriawahono.net
![Page 2: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/2.jpg)
Konsep OOP
1. Konsep PemrogramanTingkat Bahasa Pemrograman, Sudut Pandang Pemrograman,
2. JAVAJava Family, Perangkat, Instalasi, Kompilasi
3. Konsep Dasar Pemrograman Berorientasi Objek:Class, Object, Attribute, Method, Constructor
4. Karakteristik Pemrograman Berorientasi Objek:Abstraction, Encapsulation, Inheritance, Polymorphisme
![Page 3: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/3.jpg)
Tingkat Bahasa Pemrograman, Sudut Pandang Pemrograman
KONSEP PEMROGRAMAN
![Page 4: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/4.jpg)
Bahasa Pemrograman?
• Komputer bekerja seperti switching dan hanya mengenali 0 dan 1
• Manusia tidak (paham) berbicara dengan bahasa 0 dan 1• Perlu bahasa pemrograman yang dapat menjadi perantara
percakapan antara komputer dan manusia• Bahasa pemrograman diubah ke dalam bahasa yang
dipahami oleh komputer dengan menggunakan interpreter atau kompiler
![Page 5: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/5.jpg)
Compiler or Interpreter?
1. Compiler:Mengkompilasi source code menjadi bentuk file yang bisa dieksekusi
2. Interpreter:Mengkompilasi dan menjalankan source code secara langsung
![Page 6: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/6.jpg)
C Language (Compiler)
#include <stdio.h>
main(){ printf(“Hallo”);}
C Program
C Compiler
000101000011001010000100010010010101010101010010
Machine language program(executable “.exe” file)
![Page 7: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/7.jpg)
Java Language (Compiler + Interpreter)
javac(Java Compiler)
java(Java Interpreter)
![Page 8: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/8.jpg)
Tingkat Bahasa Pemrograman
1. Bahasa Pemrograman Tingkat Rendah (Assembler)
2. Bahasa Pemrograman Tingkat Sedang(C, Pascal, Fortran)
3. Bahasa Pemrograman Tingkat Tinggi(Java, C++, C#)
![Page 9: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/9.jpg)
Sudut Pandang Pemrograman
Sudut pandang dan style pemrograman berhubungan dengan bagaimana sebuah masalah diformulasikan dalam bahasa pemrograman
1. Functional Programming: Urutan fungsi secara sekuensial (Scheme, Lisp)
2. Procedural Programming: Pemecahan masalah berdasarkan prosedural kerja yg terkumpul dalam unit pemrograman bernama fungsi (C, Pascal)
3. Object-Oriented Programming: Koleksi object yang saling berinteraksi . Class adalah unit pemrograman (Java, C#, C++)
![Page 10: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/10.jpg)
Java Family, Perangkat, Instalasi, Kompilasi
JAVA
![Page 11: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/11.jpg)
Why Java?
•Simple and familiar object oriented programming
•Architecture neutral (platform independent)
•Open Source•First rank in TIOBE Index•De-Facto standard programming language in education
![Page 12: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/12.jpg)
Java Family Suite
1. Java Standard Edition (Java SE)
For desktop, client/server application
2. Java Enterprise Edition(Java EE) For e-business, e-commerce
web based application
3. Java Micro Edition(Java ME) For small devices, like
palm, handphone, etc
![Page 13: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/13.jpg)
![Page 14: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/14.jpg)
Programming Paradigm Index
![Page 15: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/15.jpg)
Perangkat Pemrograman Java
1. Compiler (Interpreter):Java Standard Edition (JSE)
2. Code Editor:1. Text Editor:
TextPad, Notepad++
2. Integrated Development Environment (IDE):Netbeans, Eclipse, JCreator
![Page 16: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/16.jpg)
javac (java compiler)
Hello.class
Kompiler memproduksiBytecode (Class)
Web Server
Interpreter Interpreter Interpreter Interpreter
Jalankan dengan:1. C:\>java Hello (Application)2. Web Browser (Applet)
Write Once Run Everywhere !
How Java Works?public class Hello
public static void main(String[] args){System.out.println("Hello
World!");}
} Hello.java
![Page 17: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/17.jpg)
Latihan: Membuat Program dg Netbeans
public class HelloWorld{public static void main(String[] args){
System.out.println(“Halo Jakarta”); }
}
![Page 18: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/18.jpg)
![Page 19: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/19.jpg)
![Page 20: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/20.jpg)
![Page 21: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/21.jpg)
![Page 22: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/22.jpg)
![Page 23: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/23.jpg)
![Page 24: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/24.jpg)
![Page 25: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/25.jpg)
![Page 26: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/26.jpg)
![Page 27: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/27.jpg)
Latihan
• Buat class HaloIndonesia• Isi HaloIndonesia.java dengan main method dan tiga tampilan di bawah:
Halo Indonesia
Selamat Pagi Indonesia
Jaya Indonesia
![Page 28: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/28.jpg)
Class , Object, Method, Attribute
KONSEP DASAR PEMROGRAMAN BERORIENTASI OBJEK
![Page 29: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/29.jpg)
Berorientasi Objek?Attribute: Topi, Baju, Jaket, Tas Punggung, Tangan, Kaki, Mata
Behavior: Cara Jalan ke Depan Cara Jalan Mundur Cara Belok ke Kiri Cara Memanjat
![Page 30: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/30.jpg)
Berorientasi Objek?Attribute (State): Ban, Stir, Pedal Rem, Pedal Gas, Warna, Tahun ProduksiBehavior: Cara Menghidupkan Mesin Cara Manjalankan Mobil Cara Memundurkan Mobil
Attribute Variable(Member)Behavior Method(Fungsi)
![Page 31: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/31.jpg)
Perbedaan Class dan Object• Class: konsep dan deskripsi dari sesuatu
• Class mendeklarasikan method yang dapat digunakan (dipanggil) oleh object
• Object: instance dari class, bentuk (contoh) nyata dari class• Object memiliki sifat independen dan dapat digunakan
untuk memanggil method
• Contoh Class dan Object:• Class: mobil• Object: mobilnya pak Joko, mobilku, mobil berwarna merah
![Page 32: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/32.jpg)
Perbedaan Class dan Object
• Class seperti cetakan kue, dimana kue yg dihasilkan dari cetakan kue itu adalah object
• Warna kue bisa bermacam-macam meskipun berasal dari cetakan yang sama (object memiliki sifat independen)
![Page 33: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/33.jpg)
Class = Method + Variable
variablekecepatan
gir
tampilkan kecepatan
ubah gir method
Class Sepeda
![Page 34: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/34.jpg)
Object = Method + Variable yg Memiliki Nilai
instance variable
kecepatan = 10km/jam
gir = 3
tampilkan kecepatan ()kecepatan = 10 km/jam
ubah gir (2)gir = 5
instance method
Object Sepedaku
![Page 35: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/35.jpg)
Attribute
• Variable yang mengitari class, dengan nilai datanya bisa ditentukan di object
• Variable digunakan untuk menyimpan nilai yang nantinya akan digunakan pada program
• Variable memiliki jenis (tipe), nama dan nilai• Name, age, dan weight adalah atribute (variabel) dari class Person
![Page 36: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/36.jpg)
Membuat Class, Object dan Memanggil Atributpublic class Mobil {
String warna;
int tahunProduksi;
}
public class MobilBeraksi{public static void main(String[] args){
// Membuat object Mobil mobilku = new Mobil();
/* memanggil atribut dan memberi nilai */ mobilku.warna = "Hitam"; mobilku.tahunProduksi = 2006; System.out.println("Warna: " + mobilku.warna); System.out.println("Tahun: " + mobilku.tahunProduksi);
}}
Mobil.java
MobilBeraksi.java
![Page 37: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/37.jpg)
Latihan: Membuat Program dg Netbeans
1. Buka Netbeans IDE
2. Ikuti langkah berikut
![Page 38: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/38.jpg)
![Page 39: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/39.jpg)
![Page 40: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/40.jpg)
![Page 41: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/41.jpg)
![Page 42: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/42.jpg)
![Page 43: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/43.jpg)
![Page 44: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/44.jpg)
![Page 45: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/45.jpg)
![Page 46: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/46.jpg)
![Page 47: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/47.jpg)
Method
• Method adalah urutan instruksi yang mengakses data dari object
• Method melakukan:1. Manipulasi data2. Perhitungan matematika3. Memonitor kejadian dari suatu event
![Page 48: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/48.jpg)
Method
![Page 49: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/49.jpg)
Membuat dan Memanggil Methodpublic class Mobil2{
String warna;
int tahunProduksi;
void printMobil(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
public class Mobil2Beraksi{public static void main(String[] args){ Mobil2 mobilku = new Mobil2();
mobilku.warna = "Hitam"; mobilku.tahunProduksi = 2006; mobilku.printMobil(); }
}
Mobil2.java
Mobil2Beraksi.java
![Page 50: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/50.jpg)
Latihan• Buat class Handphone, masukkan dalam package hp• Class Handphone berisi empat method di bawah:
1. hidupkan()
2. lakukanPanggilan()
3. kirimSMS()
4. matikan()
• Isi masing-masing method dengan tampilan status menggunakan System.out.println()
• Buat class HandphoneBeraksi, dan panggil method-method diatas dalam class tersebut
![Page 51: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/51.jpg)
Latihan: Hasil Tampilan
Handphone hidup …
Kring, kring, kring … panggilan dilakukan
Dung, dung … sms berhasil terkirim
Handphone mati …
![Page 52: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/52.jpg)
Latihan• Buat class Mahasiswa yang berisi tiga method:
1. membaca()
2. nyontek()
3. modifikasi()• Isi masing-masing method dengan tampilan status menggunakan System.out.println()
• Buat class MahasiswaBeraksi, dan panggil method-method diatas dalam class tersebut
![Page 53: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/53.jpg)
Jenis Method: Mutator dan Accessor
![Page 54: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/54.jpg)
Parameter• Sepeda akan berguna apabila ada object lain yang
berinterasi dengan sepeda tersebut• Object software berinteraksi dan berkomunikasi dengan
object lain dengan cara mengirimkan message atau pesan• Pesan adalah suatu method, dan informasi dalam pesan
dikenal dengan nama parameter
![Page 55: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/55.jpg)
Pengiriman Pesan dan Parameter
1. You object pengirim
2. YourBicycle object penerima
3. changeGears pesan berupa method yang dijalankan
4. lowerGear parameter yang dibutuhkan method (pesan) untuk dijalankan
![Page 56: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/56.jpg)
Sepeda.javapublic class Sepeda{
int gir;
// method (mutator) dengan parameter
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
// method (accessor)
int getGir() {
return gir;
}
}
![Page 57: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/57.jpg)
SepedaBeraksi.javapublic class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();
sepedaku.setGir(1); // menset nilai gir = 1 (sebelumnya 0)
System.out.println(“Gir saat ini: “ + sepedaku.getGir());
sepedaku.setGir(3); // menambahkan 3 pada posisi gir saat ini (1)
System.out.println(“Gir saat ini: “ + sepedaku.getGir());
}
}
![Page 58: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/58.jpg)
Latihan: Class Matematika dan Parameter
• Buat Class bernama Matematika, yang berisi method dengan dua parameter:• pertambahan(int a, int b)• pengurangan(int a, int b)• perkalian(int a, int b)• pembagian(int a, int b)
• Buat Class bernama MatematikaBeraksi, yang mengeksekusi method dan menampilkan:• Pertambahan: 20 + 20 = 40• Pengurangan: 10-5 = 5• Perkalian: 10*20 = 200• Pembagian: 21/2 = 10
![Page 59: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/59.jpg)
Variasi Tampilanpertambahan(int a, int b){
System.out.println(a + “ + “ + b + “ = “ + (a+b))
}
pertambahan(int a, int b){
System.out.println(“Hasil = “ + (a+b))
}
pertambahan(int a, int b){
int hasil = a + b;
System.out.println(“Hasil = “ + hasil)
}
![Page 60: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/60.jpg)
Konstruktor -1-
• Method yang digunakan untuk memberi nilai awal pada saat object diciptakan
• Dipanggil secara otomatis ketika new digunakan untuk membuat instan class
• Sifat konstruktor:• Nama konstruktor sama dengan nama class• Tidak memiliki nilai balik dan tidak boleh ada kata kunci void
![Page 61: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/61.jpg)
Konstruktor -2-public class Mobil {
String warna;
int tahunProduksi;
public Mobil(String warna, int tahunProduksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
public 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.java
MobilKonstruktor.java
![Page 62: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/62.jpg)
Kata Kunci thisDigunakan pada pembuatan class dan digunakan untuk menyatakan object sekarang
public class Mobil{String warna;int tahunProduksi;
void isiData(String aWarna, int aTahunProduksi)
{
warna = aWarna;tahunProduksi = aTahunProduksi;
}
public class Mobil{String warna;int tahunProduksi;
void isiData(String warna, int tahunProduksi){
this.warna = warna;this.tahunProduksi = tahunProduksi;
}
![Page 63: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/63.jpg)
Latihan1. Buat class Bank
• Buat konstruktor class Bank dengan parameter: saldo• Buat method: simpanUang, ambilUang, dan getSaldo
2. Buat class BankBeraksi, tetapkan saldo awal lewat konstruktur Rp. 100000, jalankan 3 method di atas, dan tampilkan proses sebagai berikut:
Selamat Datang di Bank ABCSaldo saat ini: Rp. 100000
Simpan uang: Rp. 500000Saldo saat ini: Rp. 600000
Ambil uang: Rp. 150000Saldo saat ini: Rp. 450000
![Page 64: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/64.jpg)
Abstraction, Encapsulation, Inheritance, Polymorphism
KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK
![Page 65: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/65.jpg)
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
![Page 66: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/66.jpg)
![Page 67: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/67.jpg)
![Page 68: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/68.jpg)
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
![Page 69: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/69.jpg)
Encapsulation dan Access Modifier
Modifier Dalam Class yang Sama
Dalam Package yang Sama
Dalam SubClass
Dalam Package Lain
private
tanpa tanda
protected
public
![Page 70: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/70.jpg)
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 71: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/71.jpg)
Sepeda.java
public class Sepeda{
int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
![Page 72: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/72.jpg)
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());
}
}
![Page 73: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/73.jpg)
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 74: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/74.jpg)
Inheritance (Pewarisan)• Suatu class dapat mewariskan atribut dan method kepada class lain (subclass), serta membentuk class hierarchy
• Penting untuk Reusability• Java Keyword:extends
![Page 75: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/75.jpg)
Sepeda.java
public class Sepeda{
private int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
![Page 76: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/76.jpg)
Class SepedaGunung Mewarisi Class Sepeda
public class SepedaGunung extends 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=new SepedaGunung();
sg.setGir(3);
System.out.println(sg.getGir());
sg.setSadel(1);
System.out.println(sg.getSadel());
}
}
SepedaGunung.java SepedaGunungBeraksi.java
![Page 77: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/77.jpg)
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, perkalian dan modulus
![Page 78: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/78.jpg)
Latihan: Inheritance Matematika
1. Buat class MatematikaCanggihBanget yang merupakan inherit dari class MatematikaCanggih
1. Tambahkan method pertambahanTiga(int a, int b, int c) yang menghitung pertambahan dari a, b dan c
2. a + b + c
2. Buat class MatematikaCanggihBangetBeraksi yang memanggil method pertambahan, perkalian, modulus, pertambahanTiga
![Page 79: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/79.jpg)
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
![Page 80: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/80.jpg)
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 81: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/81.jpg)
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 82: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/82.jpg)
Polymorphism - Overriding
public class Sepeda{
private int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
![Page 83: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/83.jpg)
Polymorphism - Overriding
public class SepedaGunung extends Sepeda{
void setGir(int pertambahanGir) {
super.setGir(pertambahanGir);
gir = 2*getGir();
}
}
public class SepedaGunungBeraksi {
public static void main(String[] args) {
SepedaGunung sg=new SepedaGunung();
sg.setGir(2);
System.out.println(sg.getGir());
sg.setGir(3);
System.out.println(sg.getGir());
}
}
SepedaGunung.java SepedaGunungBeraksi.java
![Page 84: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/84.jpg)
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 85: Oop Miswar 1](https://reader033.fdocuments.net/reader033/viewer/2022061514/55cf9b68550346d033a5f7d1/html5/thumbnails/85.jpg)
Matematika.javapublic 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);
}
...
}