OOP - WordPress.com

advertisement
ObjectObj t-Oriented
Object
O i t d
Programming
P
i
(OOP)
Romi Satria Wahono
[email protected]
http //romisatriawahono net
http://romisatriawahono.net
HP: 08780878-80480485
YM:
YM romi_sw
r mi s
Romi Satria Wahono








Lahir di Madiun, 2 Oktober 1974
SD Sompok Semarang (1987)
SMPN 8 Semarang
g (1990)
SMA Taruna Nusantara,
Nusantara, Magelang (1993)
S1,
S1 S2 dan S3 (on
(on--leave) dari Department of Computer
Sciences, Saitama University,
University, Japan (1994(1994-2004)
Core
C
C
Competence:
t
Software
S ft
E i
Engineering,
Engineering
i , eLearning
L
i
System, Knowledge Management
Founder dan Koordinator IlmuKomputer.Com
l
CEO PT Brainmatics Cipta
p Informatika
Materi
1.
OOP Concepts:
Concepts:
2.
Java Fundamentals:
Fundamentals:
3
3.
Java Advanced:
Advanced:
4.
Java GUI:
GUI:
5.
Java GUI with Netbeans:
Netbeans:
K
Konsep
p dan
d P
Paradigma
di
Object
ObjectObj t-Oriented
Oi t d
Memahami Sintaks dan Grammar Bahasa Java
Eksepsi, Thread, Java API
Swing, GUI Component, Event Handling
Mengembangkan Aplikasi Berbasis GUI dengan Java
OOP Concepts
Materi Diskusi
1.
Konsep Pemrograman dan Paradigmanya:
Tingkat Bahasa
h Pemrograman, Paradigma Pemrograman,
2.
Teknologi Java dan Perangkat Pemrograman:
Pemrograman:
Java Family, Perangkat,
Perangkat, Instalasi
Instalasi,, Kompilasi
3.
Konsepp Dasar Pemrograman
g
Berorientasi Objek:
Objek
j :
Class, Object, Attribute, Method, Constructor
4.
Karakteristik Pemrograman
g
Berorientasi Objek:
Objek
j :
Abstraction, Encapsulation, Inheritance, Polymorphisme
5.
Pengorganisasian
g g
Class:
Package, Interface
Konsep
p Pemrograman
g
dan Paradigmanya
Bahasa Pemrograman?




Komputer bekerja
j seperti switching
g dan hanya
y
mengenali 0 dan 1
Manusia tidak (paham) berbicara dengan bahasa
0 dan 1
P l bahasa
Perlu
b h pemrograman
p
g
yang
g dapat
d p t menjadi
j di
perantara percakapan antara komputer dan
manusia
Bahasa ppemrograman
g
diubah ke dalam bahasa
yang dipahami oleh komputer dengan
menggunakan
mengg na an inte
interpreter
p ete ata
atau kompiler
mpi e
Compiler or Interpreter?
 Compiler:
p
Mengkompilasi source code
menjadi bentuk file
f l yang bisa
dieksekusi
 Interpreter:
Mengkompilasi
g
p
dan menjalankan
j
source code secara langsung
C Language
#include <<stdio.h
stdio.h>>
main()
main()
{
printf(“Hallo”);
printf(
Hallo );
}
C Program
C Compiler
0001010000
1100101000
0100010010
01010101010
1010010
Machine language program
(executable “.exe” file)
Java Language
javac
java
(Java Compiler)
(Java Interpreter)
Tingkat Bahasa Pemrograman
Bahasa Pemrograman Tingkat Rendah
(Assembler)
 Bahasa Pemrograman Tingkat Sedang
(C,
(C Pascal
Pascal, Fortran)
 Bahasa Pemrograman
g
Tingkat
g
Tinggi
gg
(Java, C++, C#)

Paradigma Pemrograman
Sudut pandang dan style pemrograman
berhubungan dengan bagaimana sebuah masalah
diformulasikan dalam bahasa pemrograman



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)
ObjectOb t-Oriented
Object
O
t d Programming:
Programming
P
: Koleksi
K l k object
b t yang
saling berinteraksi . Class adalah unit pemrograman
(J
(Java,
C#
C#, C
C++))
Teknologi Java dan
Perangkat Pemrograman
Java Family, Perangkat
Perangkat,, Instalasi,
Instalasi, Kompilasi
Java Family Suite
1.
Java Standard Edition
(Java SE
SE))

2.
Java Enterprise Edition
(Java EE
EE))

3.
For desktop, client/server
application
For ee--business
business,, ee--commerce
web based application
Java Micro Edition
(Java ME)
ME)

For small devices, like
palm, handphone
handphone,, etc
Java Certification
Perangkat Pemrograman Java
1.
Compiler (Interpreter):
(Interpreter):
Java Standard Edition (JSE)
2.
Code Editor:

Text/Code Editor:
TextPad, Notepad++

Integrated Development Environment (IDE):
Netbeans,, Eclipse, JCreator
Netbeans
Catatan:


IDE mengintegrasikan Compiler,
l Code Editor dan Visuall
(GUI) Programming secara lengkap
M t kkuliah
Mata
l h OOP ini menggunakan
k IDE Netbeans
N tb
Instalasi JSE dan Netbeans IDE
1.
2.
3.
4.
5.
Download Java Standard Edition (JSE) dari:
htt //
http://java.sun.com/javase/downloads/
/
/d
l d/
Instal
Instalasi
n a aasi JJSE d
dengan
ngan mengklik:
m ng
jdk--6u1
jdk
6u18
8-windowswindows-i586.exe
Download
D
l d Netbeans
N tb
versii terbaru
t b
d i
dari
http://netbeans.org
Instalasi Netbeans dengan mengklik:
netbeans--6.
netbeans
6 8-ml
6.8
ml--windows.exe
windows exe
Ikuti seluruh proses instalasi sampai selesai
Instalasi Text Editor dan Set Path
Set path dan instalasi text editor diperlukan
untuk yang mengembangkan aplikasi texttextbased dengan console
1.
2.
Klik Start Control Panel  System 
Advanced Environment Variables dan set
system PATH:
;C:
C:\\Program Files\
Files\Java
Java\\jdk1.6.0_
jdk1.6.0_11
11\\bin
I t l text
Instal
t t editor
dit untuk
t k editing
diti code:
d
textpad, notepad++, JCreator
How Java Works?
Jalankan dengan:
1. C:
C:\\>java Hello (Application
(Application))
2. Web Browser (Applet
Applet))
public class Hello
public static void main(String[] args
args){
){
System.out.println("Hello
System.out.println
y
p
("Hello World!");
}
}
Hello.java
javac (java compiler
compiler))
Interpreter
Interpreter
Interpreter
Kompiler memproduksi
Bytecode (Class)
Hello.class
Write Once Run Everywhere !
Web Server
Interpreter
Compile and Run Java Applet
import java.applet
java.applet.*;
.*;
import java.awt.*;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello
g.drawString(
g.drawString
(
("Hello
Hello world!",50,25);
world!",50,25
world! ,50,25);
,50,25);
}
}
C:\
C:
\appletviewer Hello.html
C:\
C:
\javac HelloWorld.java
<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>
Menulis Java Program

Bentuk p
program:
g
1.
2.

GUI Application  menggunakan AWT atau Swing
y GUI
untuk library
Textext-Based Console Application  menggunakan
a y nonnon-GUI d
di Java
a a
library
Class
Cl bisa
b d
dieksekusi
k k karena
k
method
th d main
public static void main(String[] args
args))
 Program Java mulai dari sini
sini!!
Latihan: Tulis dan Compile Halo.java
public
bl class
l
Halo{
l
public static void main(String[] args){
args){
System.out.println(“Halo
y
p
a Semarang”);
aa g ;
}
}
Latihan: Membuat Program dg Netbeans
public class HelloWorld{
public
p
static
a
void
d ma
main(String[]
n(S ng[] args){
args)
a g ){
){
System.out.println(“Halo Semarang”);
}
}
Konsep Dasar
Pemrograman
g
Berorientasi Objek
j
Class , Object,
j
Method, Attribute
Berorientasi Objek?
Attribute:
Topi, Baju, Tas
Punggung, Jaket,
Tangan, Kaki, Mata
Behavior:
h
Cara Jalan ke Depan
Cara Jalan
l Mundur
Cara Belok ke Kiri
Cara Memanjat
Berorientasi Objek?
Att ib t (State):
Attribute
(St t )
Ban, Stir, Pedal Kopling/Gas/Rem,
Warna,
Warna Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute  Variable(Member)
Behavior  Method(Fungsi
Method(Fungsi))
Latihan
1.
2.
Lakukan kegiatan berorientasi objek dengan
target Sepeda
Pikirkan apa atribut dan behavior yang
di iliki oleh
dimiliki
l h Sepeda
S d tersebut
t
b t
Perbedaan Class dan Object






Class: mobil
Object: mobilnya pak Joko
Joko, mobilku
Class
l seperti cetakan kue,
kue, dimana kue yg
dihasilkan dari cetakan kue itu adalah object
j
Warna kue bisa bermacam
bermacam--macam meskipun
berasal dari cetakan yang sama (object
(object memiliki
sifat independen)
independen)
Class adalah konsep dan deskripsi dari sesuatu
Object adalah instance dari Class
Class = Method + Variable
The Bicycle class
Object = Method + Variabel Bernilai
Bicycle dimodelkan sebagai sebuah object
object::


10 mph, 90 rpm, 5th gear adalah instance variable
changegears,, brake,
changegears
brake changecadence adalah instance method
Attribute


Variable yang mengitari class, dengan nilai
Variable
datanya bisa ditentukan di object
Name,, age, dan weight adalah atribute dari
Name
class
l Person
P
Membuat Class, Object dan Memanggil Atribut
public
bl class
l
Mobil
M bl{
String warna;
int tahunProduksi;
tahunProduksi
}
public
bli class
l
Mobil
MobilBeraksi
M bilB
bilBeraksi{
B k i{
i{
public static void main(String[] args){
Mobil.java
MobilBeraksi
Mobil
Beraksi.java
.java
// Membuat object
Mobil mobilku = new Mobil();
/* memanggil atribut dan memberi nilai */
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
System.out.println("Warna: " + mobilku.warna
mobilku.warna);
);
S t
System.out.println("Tahun:
t
tl ("T h
" + mobilku.tahunProduksi)
mobilku.tahunProduksi);
b lk t h P d k );
}}
Latihan: Membuat Program dg Netbeans
1
1.
2
2.
Buka Netbeans IDE
Ikuti langkah berikut
UML - Class Diagram
Mobil
~
~
tahunProduksi: int
warna: String
MobilBeraksi
+
main(String[]) : void
Method
 Method
adalah implementasi dari
bagaimana
g
bekerjanya
j y sebuah class
 Method
M th d
1.
2.
3
3.
melakukan:
l k k
Manipulasi
p
data
Perhitungan matematika
Memonitor kejadian dari suatu event
Membuat dan Memanggil Method
public class Mobil2{
String warna;
Mobil2.java
int tahunProduksi;
void printMobil
printMobil(){
l(){
System.out.println("Warna: " + warna);
System.out.println(
System out println("Tahun:
Tahun: " + tahunProduksi);
}
}
public
bl class
l Mobil2Beraksi{
bl
Mobil2Beraksi.java
public static void main(String[] args){
// Membuat object
Mobil2 mobilku = new Mobil2();
/* memanggil atribut dan memberi nilai */
mobilku.warna = "Hitam";
mobilku.tahunProduksi
mobilku tahunProduksi = 2006;
mobilku.printMobil();
}}
UML - Class Diagram
Mobil2
~
~
tahunProduksi: int
warna: String
St i
~
printMobil() : void
Mobil2Beraksi
+
main(String[]) : void
Latihan



Buat class MobilLengkap dan buat tiga
method:
th d
 hidupkanMobil()
d p a
)
 matikanMobil()
 ubahGigi()
b h
()
Isi masing
masing--masing method dengan tampilan
status menggunakan System.out.println()
P
Panggil
il methodmethod
th d-method
th d diatas
di t dari
d i
MobilLengkapBeraksi
Latihan:: Hasil Tampilan
Latihan
Mobil Hidup
Mobil Mati
Gigi Berubah
b h
UML - Class Diagram
MobilLengkap
~
~
~
hidupkanMobil() : void
matikanMobil() : void
ubagGigi() : void
MobilLengkapBeraksi
+
main(String[]) : void
Parameter -1


Bicycle akan berguna apabila ada object lain (misalnya anda
anda))
yang berinterasi dengan Bicycle tersebut
Object
b
software
f
berinteraksi
b
k dan
d berkomunikasi
b k
k dengan
d
object lain dengan cara mengirimkan message
Informasi dalam message ini dikenal dengan nama Parameter
Parameter -2-
1. You  object pengirim
2. YourBicycle  object penerima
3
3.
changeGears  message berupa method yang dijalankan
4. lowerGear parameter yang dibutuhkan method
(message) untuk dijalankan
Membuat Class (Sepeda.java
(Sepeda.java))
class Sepeda{
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int
ubahGir(int pertambahanGir)
pertambahanGir) {
gir= gir+ pertambahanGir;
pertambahanGir
System.out.println(" Gir:" + gir);
}
void tambahKecepatan(int
tambahKecepatan(int pertambahanKecepatan)
pertambahanKecepatan) {
k
kecepatan
t = kecepatan+
k
t
pertambahanKecepatan;
t b h K
t
System.out.println(" Kecepatan:" + kecepatan);
}
}
Membuat dan Memanggil Object
(SepedaBeraksi.java
SepedaBeraksi.java))
class SepedaBeraksi{
public static void main
main(String[]
(String[] args) {
// Membuat object
Sepeda sepedaku = new Sepeda();
Sepeda()
//memanggil
//
ggil atribut
t ib t dan
d memberi
b i nilai
il i
sepedaku.kecepatan=10;
sepedaku.gir=2;
d k i 2
// M
Memanggill method
th d d
dan menunjuk
k nilai
l parameter
t
sepedaku.tambahKecepatan(30
sepedaku.tambahKecepatan(
30);
);
sepedaku.ubahGir(3
sepedaku.ubahGir(
d k b h (3);
)
}}
UML - Class Diagram
Sepeda
~
~
gir: int = 0
kecepatan: int = 0
~
~
tambahKecepatan(int) : void
ubahGir(int) : void
SepedaBeraksi
+
main(String[]) : void
Latihan

Buat Class
l bernama
b
Matematika
Matematika,
k , yang berisi
b
method dengan
g dua parameter:
parameter:





pertambahan(int operandSatu,
pertambahan(int
operandSatu, int operandDua
operandDua))
pengurangan(int
pengurangan(
p
g
g int operandSatu,
operandSatu
p
, int operandDua
operandDua)
p
)
perkalian(int
perkalian(
int operandSatu,
operandSatu, int operandDua
operandDua))
pembagian((int
ppembagian((
g
int operandSatu,
operandSatu
p
, int operandDua
operandDua)
p
)
Buat Class bernama MatematikaBeraksi
MatematikaBeraksi,, yang
mengeksekusi method dan menampilkan:




Pertambahan: 20 + 20 = 40 pertambahan(
pertambahan(20
20,20
,20))
Pengurangan 10Pengurangan:
10-5 = 5
Perkalian: 10x20 = 200
P bagia 21/2 = 10
Pembagian:
UML - Class Diagram
Matematika
~
~
~
~
hasilBagi: double
hasilKali: double
hasilKurang: double
hasilTambah: double
~
~
~
~
pembagian(double, double) : double
pengurangan(double, double) : double
perkalian(double double) : double
perkalian(double,
pertambahan(double, double) : double
MatematikaApp
+
main(String[]) : void
Konstruktor -1


Method yang digunakan untuk memberi
nilai awal pada saat object diciptakan
Dipanggill secara otomatis ketika
k k new
digunakan
g
untuk membuat instan class
Sifat konstruktor:


Nama k
konstruktor
nstr kt r sama d
dengan
ngan nama class
lass
Tidak memiliki nilai balik dan tidak boleh ada
k kunci
kata
k
void
d
Konstruktor -2class Mobil {
String warna;
int tahunProduksi;
M bil j
Mobil.java
public Mobil(String warna, int tahunProduksi){
this.warna = warna;
this.tahunProduksi
h
h
= tahunProduksi;
h
}
ppublic void
d info(){
n ){
System.out.println("Warna: " + this.warna);
System.out.println("Tahun: " + this.tahunProduksi);
}
}
class
a MobilKonstruktor{{
public static void main(String[] args){
Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
bilk i f ()
}
MobilKonstruktor
Mobil
Konstruktor.java
.java
}
Kata Kunci this
Digunakan pada pembuatan class dan
digunakan untuk menyatakan object sekarang
class Mobil{
String warna;
Int tahunProduksi;
class Mobil{
String warna;
Int tahunProduksi;
void isiData(String warnaMobil, int
tahunProduksiMobil){
void isiData(String warna, int
tahunProduksi){
warna = warnaMobil;
tahunProduksi = tahunProduksiMobil;
}
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
Class Acces Level
Specifier
Class
Package
SubClass
private

no specifier
f


protected



public



World

Latihan
1.
Buat class Buku



2.
Tentukan variable buku: judul,
udul pengarang,
engarang penerbit
dan tahun
Buat konstruktor class Buku dengan parameter: judul,
udul
pengarang, penerbit dan tahun
Buat method cetakBuku
Buat class BukuBeraksi dan tampilkan 2 buku:


Pemrograman Berbasis Objek dengan Java, Indrajani,
Elexmedia Komputindo, 2007
Dasar Pemrograman Java, Abdul Kadir, Andi Offset,
2006
Karakteristik
Pemrograman
g
Berorientasi Objek
j
Abstraction, Encapsulation, Inheritance,
Polymorphism
Abstraction

Cara kita melihat suatu sistem dalam bentuk
yang lebih
l b h sederhana,
sederhana
d h , yaitu sebagai
b
suatu
kumpulan subsistem (object) yang saling
berinteraksi.


Mobil adalah
d
kumpulan
p
sistem pengapian,
p g p , sistem
kemudi, sistem pengereman
Object bersifat modular
modularity
ity.. Object dapat ditulis
dan dimaintain terpisah (independen) dari
object lain
Encapsulation

Mekanisme menyembunyikan suatu proses
dalam sistem untuk menghindari interferensi
dan menyederhanakan penggunaan sistem itu
sendiri


Tongkat transmisi (gigi) pada mobil
T b l on/off/pengaturan
Tombol
/ ff/
t
suhu
h pada
d AC
Inheritance (Pewarisan)



Suatu class dapat
mewariskan
i k atribut
t ib t
dan method kepada
class
l lain
l i (subclass),
( b l )
serta membentuk class
hi
hierarchy
h
Penting untuk
Reusability
l
Java Keyword:
y
extends
Sepeda.java
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) {
k
kecepatan
t = kecepatan+
k
t
pertambahanKecepatan;
t b h K
t
System.out.println("Kecepatan:" + kecepatan);
}
}
Class SepedaGunung Mewarisi Class Sepeda
class
l SepedaGunung
S d G
extends
t d Sepeda
S d {
Sepeda{
class
l SepedaGunungBeraksi
S d G
B k {
public static void main(String[] args) {
// Membuat object
j
SepedaGunung sepedaku = new SepedaGunung();
public void ssetSadel
etSadel((int nilaiSadel)
nilaiSadel) {
System.out.println(“Tinggi Sadel:”+ nilaiSadel);
// Memanggil method di object
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);
l
}
}
}
}
SepedaGunung java
SepedaGunung.java
SepedaGunungBeraksi.java
SepedaGunungBeraksi java
UML – Class Diagram
Sepeda
~
~
gir: int = 0
kecepatan: int = 0
~
~
tambahKecepatan(int) : void
ubahGir(int) : void
SepedaGunung
+
setSadel(int) : void
SepedaGunungBeraksi
+
main(String[]) : void
Latihan

Buat class MatematikaCanggih yang merupakan
inherit
h
d class
dari
l Matematika
k


Tambahkan method modulus
modulus((int a, int b) y
yang
g
menghitung modulus dari a dan b. Operator
modulus adalah %
Buat class MatematikaCanggih
MatematikaCanggihBeraksi
Beraksi yang
memanggil
a gg method
d ppertambahan
pertambahan,
a a a , pperkalian
a a da
dan
modulus
UML – Class Diagram
Matematika
~
~
~
~
hasilBagi: double
hasilKali: double
hasilKurang: double
hasilTambah: double
~
~
~
~
pembagian(double, double) : double
pengurangan(double, double) : double
perkalian(double,
k li (d bl d
double)
bl ) : d
double
bl
pertambahan(double, double) : double
MatematikaBeraksi
+
MatematikaCanggih
gg
~
modulus(double, double) : double
main(String[]) : void
Polymorphism
Suatu object dapat memiliki berbagai
b
bentuk,
sebagai
b
object
b
dari classnya
l
sendiri atau object dari superclassnya
1.
2.
Overloading: Penggunaan satu nama untuk
Overloading:
beberapa method yang berbeda parameter
Overriding:: Terjadi ketika deklarasi method
Overriding
subclass
b l persis
i sama dengan
d
method
th d dari
d i
superclassnya
Polymorphism – Overloading
class
l Mobil
M bl{
String warna;
int tahunProduksi;
public Mobil(String warna, int
tahunProduksi){
thi
this.warna
= warna;
this.tahunProduksi = tahunProduksi;
}
public Mobil(){
}
void info(){
System.out.println("Warna: " +
this.warna);
h
)
System.out.println("Tahun: " +
this.tahunProduksi);
}
}
public
bl class
l MobilKonstruktor{
M b lK t kt {
public static void main(String[] args){
Mobil mobilku = new Mobil(“Merah”,
2003);
mobilku.info();
Mobil mobilmu
mobilmu = new Mobil();
mobilmu.
mobil
mu.info();
info();
}
}
Polymorphism – Overloading
class Lingkaran{
public
pub ic buatLingkaran(){
buatLingkaran
buatLingka
an(){
an(){
}
public
p bli buatLingkaran(int
b atLingkaran(int diam
diameter)
diameter){
t r){
r){
...
}
public buatLingkaran(int
p
a ng a an( n diameter,
d am
, int
n x,, int
n y){
y){
...
}
public buatLingkaran(int diameter, int x, int y, int
warna String namaLingkaran){
warna,
namaLingkaran){
...
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) {
k
kecepatan
t = kecepatan+
k
t
pertambahanKecepatan;
t b h K
t
System.out.println("Kecepatan:" + kecepatan);
}
}
Class SepedaGunung Mewarisi Class Sepeda
class
l SepedaGunung
S d G
extends
t d Sepeda
S d {
void ubahGir(int p
pertambahanGir) {
int gir= 2*(gir+ pertambahanGir );
);
System.out.println("Gir:" + gir);
}
class
l SepedaGunungBeraksi
S d G
B k {
public static void main(String[] args) {
// Membuat object
j
SepedaGunung sepedaku = new sepedaGunung();
// Memanggil method di object
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);
l
}
}
}
SepedaGunung java
SepedaGunung.java
SepedaGunungBeraksi.java
SepedaGunungBeraksi java
Latihan
1.
2.
3.
4
4.
Kembangkan class Matematika dan
MatematikaBeraksi
Lakukan overloading pada Method yang ada
(pertambahan,
(
b h
pengurangan, perkalian,
k l
pembagian) . Method baru adalah bertipe data
double (pecahan) dan memiliki 3 parameter
Uji di kelas MatematikaBeraksi dengan
parameter pecahan: 12.5, 28.7, 14.2
Misalnya:
Misalnya
pertambahan(12.5, 28.7, 14.2)
pertambahan(23,
pertambahan
t b h (23,
(23 34)
Matematika.java
class Matematika{
public void pertambahan (int a, int b){
b){
int hasilPertambahanBulat = a + b;;
System.out.println(“hasil:” + hasilPertambahanBulat);
}
public void pertambahan (double a, double b, double c){
c){
double hasilPertambahanPecahan = a + b + c;
System.out.println(“hasil:” + hasilPertambahanPecahan);
}
...
}
P
Pengorganisasian
i
i
Class
Package, Interface
Packages





Package adalah koleksi dari beberapa class
dan
d iinterface
t f
yang berhubungan,
b h b
dan
d
menyediakan proteksi akses dan pengelolaan
namespace
1 package adalah 1 subfolder di file system
Package sangat berguna untuk
mengorganisir file
f l dalam
l
suatu project atau
library
y
Nama package menggunakan lowercase
Keyword:
K
Keyword
d: package
k
name;
Budi.java
package
pa
ag kelasku;
a ;
public class Budi{
p bli void
public
id info(){
i f (){
System.out.println(“Kelas
System.out.println(
Kelas Budi”);
Budi );
}
}
Joko.java
package
pa
ag kelasku;
a ;
public class Joko{
p bli void
public
id info(){
i f (){
System.out.println(“Kelas
System.out.println(
Kelas Joko”);
Joko );
}
}
PaketBeraksi.java
i
import
t kelasku.*
kelasku.
k l k *;
public class PaketBeraksi{
public static void main(String[] args){
Budi objectBudi = new Budi();
objectBudi.info();
Joko objectJoko = new Joko();
objectJoko.info();
}
}
Struktur Direktori
 PaketBeraksi.java
PaketBeraksi java
 kelasku


Budi.java
Joko.java
Interface
Interface digunakan apabila kita ingin
menentukan apa yang harus dilakukan
oleh
l h suatu class
l tapi tidak
k menentukan
k
bagaimana cara untuk melakukannya
 Interface sebenarnya sama dengan class,
tapi hanya memiliki deklarasi method
tanpa implementasi

IntLampu
Int
Lampu.java
.java
interface
a InterfaceLampu{
InterfaceLampu
a a p {
public static final int KeadaanHidup
KeadaanHidup=1;
=1;
public static final int KeadaanMati
KeadaanMati=0
KeadaanMati=0;
=0
=0;
}
public abstract void hidupkan
hidupkan();
();
public abstract void matikan
matikan();
();
class Lampu implements InterfaceLampu
InterfaceLampu{{
int statusLampu
statusLampu=0;
=0;
0;
Lampu.java
public void hidupkan
hidupkan(){
(){
iff (this.statusLampu
((th
th t t L
this.statusLampu
== KeadaanMati
K d M t ){
KeadaanMati){
this.statusLampu = KeadaanHidup
KeadaanHidup;;
System.out.println
Sy
System.out.println("
m
p n n(
n(("Hidupkan
Hidupkan
d p an Lampu!
Lampu
amp ! -->
--> Lampu
amp Hidup
Hidup");
d p");
);
}else{
System.out.println("
System.out.println
("Hidupkan
Hidupkan Lampu!
Lampu! -->
--> Lampu Sudah Hidup
Kok");}
Kok
");}
);}
}
public
bl void matikan
matikan(){
(){
if (this.statusLampu
(this.statusLampu == KeadaanHidup
KeadaanHidup){
){
this statusLampu = KeadaanMati
this.statusLampu
KeadaanMati;;
System.out.println("
System.out.println
("Matikan
Matikan Lampu!
Lampu! -->
--> Lampu Mati
Mati");
");
}else{
S t
System.out.println("
System.out.println
t
tl ("Matikan
("M
("
M t k Lampu
Matikan
L
Lampu!
! --->> Lampu
L
S d h Mati
Sudah
M t Kok
K
Kok");
k");
k")
")
}}}
LampuBeraksi.java
public class Lampu
LampuBeraksi
Beraksi{{
public static void main(String[] args){
args){
Lampu lampuKamar = new Lampu();
Lampu();
System.out.println("Status
System.out.println
("Status Lampu Saat Ini
Ini:: Mati");
Mati");
}
}
lampuKamar.hidupkan(); //
lampuKamar.hidupkan();
//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
UML – Class Diagram
+
+
«interface»
InterfaceLampu
KeadaanHidup: int = 1 {readOnly}
KeadaanMati: int = 0 {readOnly}
+
+
hidupkan()
hid
k () : void
id
matikan() : void
LampuBeraksi
+
Lampu
~
statusLampu: int = 0
+
+
hidupkan() : void
matikan() : void
main(String[]) : void
Latihan
Buat program serupa dengan
InterfaceBeraksi.java
j
tapi
p untuk
ACBeraksi.java
 Masukkan
M kk methodmethod
th d-method
th d di bawah
b
h ke
k
dalam ACBeraksi.java
j



matikanAC() dan hidupkanAC()
dinginkanAC()
d
k AC() dan
d panaskanAC
k AC ()
Referensi -1




Sharon Zakhour et al, The Java Tutorial Fourth
Edition,, http://java.sun.com/docs/books/tutorial
Edition
http //java sun com/docs/books/tutorial
Deitel & Deitel, Java How to Program Sixth Edition
Edition,,
P t Hall,
Prentice
H ll 2004
Kathy Sierra & Bert Bates, Head First Java 2nd
Edition,, O’Reilly, 2005
Edition
Rogers
g Cadenhead
d
d & Laura Lemay,
y, Teach Yourself
Java 6 in 21 Days,
Days, Sams Publishing, 2007
Robert Lafore
Lafore,, Data Structures and Algorithms in
Java Second Edition,
Edition, Sams Publishing, 2003
Referensi -2




Tim Pengembang JENI, JENI 11-6, Depdiknas,
2007
Abdul Kadir, Dasar Pemrograman Java 2,
2, Penerbit
Andi,
A d 2004
Indrajani dan Martin, Pemrograman Berbasis Objek
dengan Java,
Java, Elex Media Komputindo, 2007
LN Harnaningrum,
Harnaningrum
g
, Algoritma
g
dan Pemrograman
d
g
Java,, Graha Ilmu,
Java
Ilmu, 2009
Rachmad Hakim & Sutarto
Sutarto,, Mastering Java,
Java, Elex
Media Komputindo
Komputindo,, 2009
Download