OOP1
OOP1
Berorientasi Obyek
Sumber IlmuKomputer.com
Java Language
javac java
(Java Compiler) (Java Interpreter)
Paradigma Pemrograman
Sudut pandang dan style pemrograman
berhubungan dengan bagaimana sebuah masalah
diformulasikan dalam bahasa pemrograman
Functional Programming: Urutan fungsi secara sekuensial
(Scheme, Lisp)
Procedural Programming: Pemecahan masalah
berdasarkan prosedural kerja yg terkumpul dalam unit
pemrograman bernama fungsi (C, Pascal)
Object-Oriented Programming: Koleksi object yang saling
berinteraksi . Class adalah unit pemrograman (Java, C#,
C++)
Tool Pemrograman Java
1. Compiler (Interpreter):
Java Standard Edition (JSE)
2. Text/Code Editor:
TextPad, Notepad++
3. Integrated Development Environment (IDE):
Netbeans, Eclipse, JCreator
(*) IDE mengintegrasikan Compiler, Code Editor dan Visual (GUI)
Programming secara lengkap
Java Family Suite
Java Standard Edition
(Java SE)
For desktop, client/server
application
Behavior:
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
Berorientasi Objek?
Attribute (State):
Ban, Stir, Pedal Kopling/Gas/Rem,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute Variable(Member)
Behavior Method(Fungsi)
Karakteristik OOP -1-
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
Method melakukan:
1. Manipulasi data
2. Perhitungan matematika
3. Memonitor kejadian dari suatu event
Membuat dan Memanggil Method
class Mobil2{
String warna; Mobil2.java
int tahunProduksi;
void printMobil(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
System.out.println(" Gir:" + gir);
}
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println(" Kecepatan:" + kecepatan);
}
}
Membuat dan Memanggil Object (SepedaBeraksi.java)
public class SepedaBeraksi{
public static void main(String[] args) {
// Membuat object
Sepeda sepedaku = new Sepeda();
private
no specifier
protected
public
Latihan
1. Buat class Buku
2. Tentukan variable buku: Judul, Pengarang,
Penerbit dan Tahun
3. Buat konstruktor class Buku dengan parameter:
Judul, Pengarang, Penerbit dan Tahun
4. Buat method cetakBuku
5. Buat class BukuBeraksi dan tampilkan 2 buku:
Pemrograman Berbasis Objek dengan Java, Indrajani,
Elexmedia Komputindo, 2007
Dasar Pemrograman Java, Abdul Kadir, Andi Offset,
2006
Inheritance (Pewarisan)
Reusability
Top down:
Being more specific
Bottom Up:
Find similiarity
Java Keyword:
extends
Sepeda.java
class Sepeda{
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
System.out.println("Gir:" + gir);
}
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println("Kecepatan:" + kecepatan);
}
}
Class SepedaGunung Mewarisi Class Sepeda
class SepedaGunung extends Sepeda { class SepedaGunungBeraksi {
public static void main(String[] args) {
int setSadel; // Membuat object
SepedaGunung sepedaku = new sepedaGunung();
public void setSadel(int nilaiSadel) {
setSadel = nilaiSadel; // Memanggil method di object
System.out.println(Tinggi sepedaku.tambahKecepatan(10);
Sadel:+setSadel); sepedaku.ubahGir(2);
} sepedaku.setSadel(20);
}
}
}
SepedaGunung.java SepedaGunungBeraksi.java
Latihan
Buat class MobilBMW yang merupakan inherit
dari class MobilLengkap
Tambahkan method nontonTV() yang
menampilkan tulisan di layar:
TV dihidupkan
TV mencari channel
TV menampilkan gambar
Buat class MobilBMWBeraksi yang memanggil
method nontonTV, hidupkanMobil,
matikanMobil, ubahGigi
Konsep Lanjut Pemrograman
Berorientasi Objek
Polymorphism
Polymorphism: Suatu object dapat
memiliki berbagai bentuk, sebagai object
dari classnya sendiri atau object dari
superclassnya
1. Overloading: Penggunaan satu nama untuk
beberapa method yang berbeda parameter
2. Overriding: Terjadi ketika deklarasi method
subclass sama dengan method dari
superclassnya
Polymorphism Overloading
class Mobil { public class MobilKonstruktor{
String warna;
public static void main(String[] args){
int tahunProduksi;
Mobil mobilku = new Mobil(Merah,
public Mobil(String warna, int 2003);
tahunProduksi){ mobilku.info();
this.warna = warna;
this.tahunProduksi = tahunProduksi;
Mobil mobilmu = new Mobil();
}
mobilmu.info();
public Mobil(){ }
} }
void info(){
System.out.println("Warna: " +
this.warna);
System.out.println("Tahun: " +
this.tahunProduksi);
}
}
Contoh Lain Overloading
class Lingkaran{
public buatLingkaran(int diameter){
...
}
public buatLingkaran(int diameter, int x, int y){
...
}
public buatLingkaran(int diameter, int x, int y, int warna,
String namaLingkaran){
...
}
}
Polymorphism - Overriding
class Sepeda{
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
System.out.println("Gir:" + gir);
}
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println("Kecepatan:" + kecepatan);
}
}
Class SepedaGunung Mewarisi Class Sepeda
class SepedaGunung extends Sepeda { class SepedaGunungBeraksi {
public static void main(String[] args) {
int setSadel; // Membuat object
SepedaGunung sepedaku = new sepedaGunung();
void ubahGir(int pertambahanGir) {
gir= 2*(gir+ pertambahanGir ); // Memanggil method di object
System.out.println("Gir:" + gir); sepedaku.tambahKecepatan(10);
} sepedaku.ubahGir(2);
} sepedaku.setSadel(20);
}
}
SepedaGunung.java SepedaGunungBeraksi.java
Latihan
1. Kembangkan class Matematika dan
MatematikaBeraksi
2. Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian,
pembagian) . Method baru adalah bertipe data
double (pecahan) dan memiliki 3 parameter
3. Uji di kelas MatematikaBeraksi dengan
parameter pecahan: 12.5, 28.7, 14.2
4. Misalnya:
pertambahan(12.5, 28.7, 14.2)
Matematika.java
class Matematika{
int hasilPertambahanBulat;
double hasilPertambahanPecahan;
package kelasku;
package kelasku;