OOP - Object Oriented Programming Concept
OOP - Object Oriented Programming Concept
Object-Oriented
ObjectProgramming (OOP)
z
z
z
z
z
romi@romisatriawahono.net
http://romisatriawahono.net
YM: romi_sw
1
z
z
z
Pertemuan di Kelas:
z
1.
OOP Concepts:
Concepts:
2.
Java Fundamentals:
Fundamentals:
3.
Java
J
Ad
Advanced
Advanced:
d:
4.
Java GUI:
GUI:
Materi Diskusi
OOP Concepts
1.
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Bahasa Pemrograman?
Konsep Pemrograman
dan Paradigmanya
Compiler or Interpreter?
z Compiler:
10
Assembly Language
LDA #47
STA $570
$570
DEX
JSR $817
CPX #0
BNE #14
Assembly
y language
g g program
p g
C Language
#include <<stdio.h
stdio.h>>
Translation
program
(Assembler)
main()
main()
{
printf(Hall )
printf(Hallo);
}
00010100
001100101
00001000
100100101
010101010
10010
C Program
11
http://romisatriawahono.net
C Compiler
0001010000
1100101000
0100010010
01010101010
1010010
12
romi@romisatriawahono.net
Object-Oriented Programming
Java Language
Paradigma Pemrograman
javac
java
(JavaCompiler)
(JavaInterpreter)
13
Functional Programming:
Programming: Urutan fungsi secara
sekuensial (Scheme,
(Scheme Lisp)
Procedural Programming:
Programming: Pemecahan masalah
berdasarkan prosedural kerja yg terkumpul dalam unit
pemrograman bernama fungsi (C, Pascal)
Object--Oriented Programming
Object
Programming:: Koleksi object yang
saling berinteraksi . Class adalah unit pemrograman
(Java, C#, C++)
14
1.
2.
3.
Compiler (Interpreter):
(Interpreter):
Java Standard Edition (JSE)
Text/Code Editor:
Editor:
TextPad,, Notepad++
TextPad
Integrated Development Environment
(IDE):
Netbeans, Eclipse, JCreator
(*) IDE mengintegrasikan Compiler, Code Editor dan
Visual (GUI) secara lengkap
15
16
2.
Java Enterprise
p
Edition
(Java EE)
EE)
3
3.
1.
For ee--business,
business, ee--commerce
web based application
4.
18
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Jalankan dengan:
1. C:\
C:\>java Hello (Application)
2. Web Browser (Applet)
Hello.java
import java.applet
java.applet.*;
.*;
import java.awt.*;
Interpreter
Interpreter
Interpreter
C:\
C:
\appletviewer Hello.html
Kompiler memproduksi
Bytecode (Class)
C:\
C:
\javac HelloWorld.java
Hello.class
Write Once Run Everywhere !
Web Server
21
22
Bentuk program:
1.
2.
<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
</HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="HelloWorld.class" WIDTH=150
HEIGHT=25>
</APPLET>
</BODY>
</HTML>
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Berorientasi Objek?
Konsep Dasar
Pemrograman
Berorientasi Objek
Attribute:
Topi, Baju, Tas
Punggung, Jaket,
Tangan, Kaki, Mata
Behavior:
h
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
25
26
Berorientasi Objek?
Latihan
Attribute (State):
1.
Behavior:
2.
Attribute Variable(Member)
Behavior Method(Fungsi
Method(Fungsi))
27
28
Abstraction:Cara
Abstraction
:Cara kita melihat suatu sistem
dalam bentuk yang lebih sederhana,
sederhana, yaitu
sebagai suatu kumpulan subsistem (object)
yang saling berinteraksi.
z
Mobil adalah
d
kumpulan
p
sistem pengapian,
p g p , sistem
kemudi, sistem pengereman
29
http://romisatriawahono.net
30
romi@romisatriawahono.net
Object-Oriented Programming
31
32
33
34
35
http://romisatriawahono.net
36
romi@romisatriawahono.net
Object-Oriented Programming
Class: mobil
Object: mobilnya pak Joko, mobilku
37
Attribute
Attribute adalah berbagai variable yang
mengitari class, dengan nilai datanya bisa
ditentukan di object. Name,
Name, age, dan weight
adalah atribute dari class Person
Mobil.java
z Method
MobilBeraksi.java
// Membuat object
Mobil mobilku = new Mobil();
Method
adalah implementasi dari
bagaimana bekerjanya sebuah class
z Method
M th d
1.
2.
3.
melakukan:
l k k
Manipulasi data
Perhitungan matematika
Memonitor kejadian dari suatu event
}}
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
class Mobil2{
String warna;
Mobil2.java
int tahunProduksi;
void printMobil()
printMobil(){{
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
public
bl class
l Mobil2Beraksi{
bl
k
Mobil2Beraksi.java
public static void main(String[] args){
z
z
z
z
z
// Membuat object
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
}}
43
hidupkanMobil()
matikanMobil()
matikanM bil()
ubahGigi()
Isi masing
masing--masing method dengan tampilan
status menggunakan System.out.println()
Panggil methodmethod-method diatas dari
MobilLengkapBeraksi
44
46
http://romisatriawahono.net
48
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
z
//memanggil
//
ggil atribut
t ib t dan
d memberi
b i nilai
il i
sepedaku.kecepatan=10;
sepedaku.gir=2;
}}
pertambahan
pengurangan
perkalian
ppembagian
g
z
z
z
Pertambahan: 20 + 20 = 40
Pengurangan: 1010-5 = 5
Perkalian: 10x20 = 200
Pembagian: 21/2 = 10.5 (float or double)
50
class Mobil{
String warna;
Int tahunProduksi;
class Mobil{
String warna;
Int tahunProduksi;
warna = warnaMobil;
tahunProduksi = tahunProduksiMobil;
}
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
51
52
Konstruktor -1z
53
http://romisatriawahono.net
54
}
public class MobilKonstruktor{
public static void main(String[] args){
Mobil mobilku = new Mobil(Merah, 2003);
mobilku.info();
}}
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
Buat class Buku
Tentukan variable buku: Judul, Pengarang, Penerbit
dan Tahun
Buat konstruktor class Buku dengan parameter:
Judul, Pengarang, Penerbit dan Tahun
Buat
B
method
h d cetakBuku
kB k
Buat class BukuBeraksi dan tampilkan 2 buku:
1.
Specifier
Class
2.
3.
private
no specifier
protected
public
4.
5.
55
56
Inheritance (Pewarisan)
z
z
Reusability
Top down:
z
// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
pertambahanGir
System.out.println("Gir:" + gir);
}
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println("Kecepatan:" + kecepatan);
}
Bottom Up:
z
Sepeda.java
class Sepeda{
int kecepatan = 0;
int gir = 0;
Find
ind similiarity
imi ia ity
Java Keyword:
extends
57
58
Latihan
class SepedaGunungBeraksi {
public static void main(String[] args) {
// Membuat object
z
}
SepedaGunung.java
59
http://romisatriawahono.net
SepedaGunungBeraksi.java
TV dihidupkan
TV mencari channel
TV menampilkan gambar
60
romi@romisatriawahono.net
Object-Oriented Programming
Polymorphism
Konsep Lanjut
Pemrograman
Berorientasi Obj
Objek
Overloading:
Overloading
l
: Penggunaan satu nama untuk
beberapa method yang berbeda parameter
Overriding:: Terjadi ketika deklarasi method
Overriding
subclass sama dengan method dari
superclassnya
62
61
Polymorphism Overloading
class 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: " +
this.warna);
System.out.println("Tahun: " +
this.tahunProduksi);
}
}
63
64
Polymorphism - Overriding
class Sepeda{
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
pertambahanGir
System.out.println("Gir:" + gir);
}
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println("Kecepatan:" + kecepatan);
}
}
65
http://romisatriawahono.net
class Lingkaran{
public buatLingkaran(int diameter){
diameter){
...
}
public buatLingkaran(int diameter, int x, int y){
y){
...
}
public buatLingkaran(int diameter, int x, int y, int
warna, String namaLingkaran){
namaLingkaran){
...
}
}
class SepedaGunungBeraksi {
public static void main(String[] args) {
// Membuat object
SepedaGunung sepedaku = new sepedaGunung();
}
}
}
SepedaGunung.java
SepedaGunungBeraksi.java
66
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
1.
2.
3.
4.
Matematika.java
class Matematika{
int hasilPertambahan1, hasilPertambahan2;
67
Latihan
1.
2.
3.
Packages
z
z
z
z
z
69
Budi.java
Joko.java
package kelasku;
package kelasku;
71
http://romisatriawahono.net
72
romi@romisatriawahono.net
Object-Oriented Programming
PaketBeraksi.java
Latihan
import kelasku.Budi;
import kelasku.Joko;
73
z
z
74
Interface
InterfaceBeraksi.java
interface IntLampu
IntLampu{{
public static final int KeadaanHidup
KeadaanHidup=1;
=1;
public static final int KeadaanMati=0;
KeadaanMati=0;
public
bli abstract
b t t void
id hidupkan
hid k ();
hidupkan();
()
public abstract void matikan
matikan();
();
75
http://romisatriawahono.net
76
lampuKamar.hidupkan(); //Hidupkan
lampuKamar.hidupkan();
//Hidupkan Lampu
lampuKamar.matikan();
lampuKamar.matikan
(); //
//Matikan
Matikan Lampu
lampuKamar.matikan();
lampuKamar.matikan
(); //
//Matikan
Matikan Lampu
lampuKamar.hidupkan();
lampuKamar.hidupkan
(); //Hidupkan
//Hidupkan Lampu
lampuKamar.hidupkan();
lampuKamar.hidupkan
(); //Hidupkan
//Hidupkan Lampu
78
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
Tugas Mandiri
z
z
79
80
81
Referensi -1z
84
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Referensi -2z
85
http://romisatriawahono.net
romi@romisatriawahono.net