Anda di halaman 1dari 13

Object-Oriented Programming

Romi Satria Wahono

OOP Concepts z

z
SD Sompok Semarang (1987)
SMPN 8 Semarang (1990)
z SMA Taruna Nusantara, Magelang (1993)
z S1, S2 dan S3 (on-
(on-leave) dari Department of
Computer Sciences,
Sciences Saitama University,
University, Japan (1994-
(1994-
2004)
Romi Satria Wahono z Core Competence: Software Engineering,
Engineering, eLearning
romi@romisatriawahono.net System, Knowledge Management
http://romisatriawahono.net z Peneliti di Lembaga Ilmu Pengetahuan Indonesia
YM: romi_sw
z Founder dan Koordinator IlmuKomputer.Com

1 2

Materi Diskusi
1. Konsep Pemrograman dan Paradigmanya:
Tingkat Bahasa Pemrograman, Paradigma Pemrograman,
Konsep Pemrograman
Tool Pemrograman
dan Paradigmanya
2. Konsep Dasar Pemrograman Berorientasi Ob
Obyyek:
ek:
Kelas (Class), Obyek (Object), Pengkapsulan
(Encapsulation) Pewarisan (Inheritance)
(Encapsulation), (Inheritance), Polymorphisme
3. Konsep Lanjut Pemrograman Berorientasi Obyek
Obyek::
Constructor, Destructor, Overloading, Overriding, Keyword
This, Multithreading, Package, Interface, Exception

eLearning Course: http://university.romisatriawahono.net


Enrolment Key: oop

3 4

Bahasa Pemrograman? Tingkat Bahasa Pemrograman


z Komputer bekerja seperti switching dan hanya
z Bahasa Pemrograman Tingkat Rendah
mengenali 0 dan 1
(Assembler)
z Manusia tidak (paham) berbicara dengan bahasa
0 dan 1 z Bahasa Pemrograman Tingkat Sedang
z P l bahasa
Perlu b h pemrograman
p g yang
g dapat
d p t menjadi
j di (C,
(C Pascal
Pascal, Fortran)
perantara percakapan antara komputer dan z Bahasa Pemrograman Tingkat Tinggi
manusia
(Java, C++, C#)
z Bahasa pemrograman diubah ke dalam bahasa
yang dipahami oleh komputer dengan
menggunakan interpreter atau kompiler
5 6

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Compiler or Interpreter? Assembly Language

z Compiler: LDA #47


STA $$570
570

Mengkompilasi source code


DEX
JSR $817
CPX #0
menjadi bentuk file yang bisa BNE #14
Translation
program 00010100
dieksekusi Assembly
y language
g g program
p g (Assembler) 001100101
00001000
100100101
z Interpreter: 010101010
10010

Mengkompilasi dan menjalankan Machine language program


(executable file)

source code secara langsung

7 8

C Language Java Language

#include <<stdio.h
stdio.h>>
0001010000
1100101000
main()
main() 0100010010
{ C Compiler 01010101010
printf(“Hall ”)
printf(“Hallo”); 1010010
}

Machine language program


C Program (executable “.exe” file)

9 10

Paradigma Pemrograman Tool Pemrograman Java


Sudut pandang dan style pemrograman
berhubungan dengan bagaimana sebuah masalah 1. Text Editor + Compiler (Interpreter):
(Interpreter):
diformulasikan dalam bahasa pemrograman TextPad, Notepad++, Java Standard Edition

z Functional Programming:
Programming: Urutan fungsi secara
sekuensial (Scheme,
(Scheme Lisp)
2. Integrated Development Environment (IDE):
Eclipse, Netbeans, JCreator
z Procedural Programming:
Programming: Pemecahan masalah
berdasarkan prosedural kerja. Fungsi adalah unit
programming (C, Pascal, Fortran)
z Object--Oriented Programming:
Object Programming: Koleksi object yang
saling berinteraksi . Class adalah unit programming
(Java, C#, C++)
11 12

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Java Family Suite

Install, Compile and ‰ Java Standard Edition


(Java SE
SE))
Running Java ‰ For desktop, client/server
application

‰ Java Enterprise
p Edition
(Java EE
EE))
‰ For e-bussiness,
bussiness, e-
e-commerce
web based application

‰ Java Micro Edition


(Java ME
ME))
‰ For small devices, like
palm,handphone,, etc
palm,handphone
13

Instalasi Java Standard Edition How Java Works? Jalankan dengan:

1. C:
C:\\>java Hello (Application)
public class Hello
1. Download Java Standard Edition dari: public static void main(String[] args){
args){
2. Web Browser (Applet)

http://java.sun.com/javase/downloads/ }
System.out.println("Hello
System.out.println ("Hello World!");

}
2. Instal Java Standard Edition dengan mengklik: Hello.java
jdk--6u6
jdk 6u6--windows-
windows-i586
i586--p.exe javac compiler

3
3. Klik Start ÆControl Panel Æ System Æ Interpreter Interpreter Interpreter Interpreter

Advanced ÆEnvironment Variables dan set


PATH:
Kompiler memproduksi
;C:
C:\\Program Files
Files\\Java
Java\\jdk1.6.0_
jdk1.6.0_06
06\\bin Bytecode (Class)
4. Instal text editor untuk editing code: Java bytecode
textpad, notepad++, JCreator (Hello.class)

Write Once Run Everywhere ! Web Server


15

Menulis Program “Halo Semarang”


Semarang” GUI Version “Halo Semarang”
public class Halo{
alo{
public static void main(String[] args){
args){ import javax.swing.*;
javax.swing.*;
System.out.println(“
System.out.println (“Halo
Halo Semarang
Semarang");
");
} public class HaloGUI{
HaloGUI{
} public static void main( String[] args ){
JOptionPane.showMessageDialog(null,
JOptionPane.showMessageDialog (null, "Halo Semarang");
}
}

17 18

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Compile and Run Java Applet Menulis Java Program


import java.applet
java.applet.*;
.*;
import java.awt.*;
z Program harus punya method di public class:
public static void main(String[] args)
args)
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello
g.drawString ("Hello world!",50,25
world!",50,25);
);
} Æ Program Java mulai dari sini!
sini!
}

C:\
C: \appletviewer Hello.html
z Bentuk program:
<HTML>
<HEAD> 1. GUI application Æ public class biasanya
C:\
C: \javac HelloWorld.java
<TITLE>A Simple Program</TITLE>
</HEAD> menggunakan Frame (AWT), Jframe(Swing)
Jframe(Swing)
“Text based” Console Application Æ public class
<BODY>
Here is the output of my program: 2.
<APPLET CODE="HelloWorld.class" WIDTH=150
HEIGHT=25> adalah class yang sederhana
</APPLET>
</BODY>
</HTML>

Tugas: Tulis dan Compile Halo.Java


Konsep Dasar
public class Halo{
Pemrograman
public static void main(String[] args){
args){
Berorientasi Objek
System.out.println(“Halo
y p Semarang”);
g
}
}

21 22

Berorientasi Objek? Berorientasi Objek?


Attribute (State):
Ban, Stir, Pedal Kopling/Gas/Rem,
Attribute:
Warna, Tahun Produksi
Topi, Baju, Tas
Behavior:
Punggung, Jaket,
Cara Menghidupkan Mesin
Tangan, Kaki, Mata Cara Manjalankan Mobil
Cara Memundurkan Mobil
Behavior:
h
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
Attribute Æ Variable(Member)
Behavior Æ Method(Fungsi
Method(Fungsi))
23 24

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Tugas Procedural vs Object-


Object-Oriented

1. Lakukan kegiatan berorientasi objek


dengan target Sepeda main
Account

2. Pikirkan apa atribut dan behavior yang perform transaction


credit
debit

dimiliki oleh Sepeda tersebut


credit debit compute interest compute fees
if checking if checking CheckingAccount SavingsAccount
then xxx then xxx
if savings compute interest compute interest
if savings
then xxx then xxx compute fees compute fees
etc. etc.

25 26

Karakteristik OOP -1- Karakteristik OOP -2-


z Abstraction:Cara kita melihat suatu sistem
Abstraction:Cara z Inheritance: Suatu class dapat mewariskan
Inheritance:
dalam bentuk yang lebih sederhana,
sederhana, yaitu atribut dan method kepada class lain (subclass),
sebagai suatu kumpulan subsistem (object) serta membentuk class hierarchy
yang saling berinteraksi.
z Mobil adalah kumpulan sistem pengapian, sistem
kemudi,
kemudi sistem pengereman
z Encapsulation: Mekanisme menyembunyikan
Encapsulation:
suatu proses dalam sistem untuk menghindari
interferensi dan menyederhanakan penggunaan
sistem itu sendiri
z Tongkat transmisi (gigi) pada mobil
z Tombol on/off/pengaturan suhu pada AC
27 28

Karakteristik OOP -3- Class dan Object -1-


z Modularity: Sifat object adalah modular. Object
Modularity: z Class: mobil
dapat ditulis dan dimaintain terpisah z Object: mobilnya pak Joko, mobilku
(independen) dari object lain
z Polymorphism:: Suatu object dapat memiliki
Polymorphism z Class seperti cetakan kue,
kue, dimana kue yg
berbagai
g bentuk,
bentuk, sebagai
g object
j dari classnya
y dihasilkan dari cetakan kue itu adalah object
sendiri atau object dari superclassnya
z Warna kue bisa bermacam-
bermacam-macam meskipun
z Overloading: Penggunaan satu nama untuk beberapa
Overloading:
method yang berbeda (beda parameter) berasal dari cetakan yang sama (object
(object memiliki
z Overriding:: Terjadi ketika deklarasi method subclass
Overriding
sifat independen)
independen)
dengan nama dan parameter yang sama dengan
method dari superclassnya z Object adalah instance dari Class
29 30

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Class and Object -2- Class dan Object -3-


Class = method+
method+variable
variable

The Bicycle class

Bicycle dimodelkan sebagai sebuah object:


object:
z 10 mph, 90 rpm, 5th gear adalah instance variable
z changegears,, brake, changecadence adalah instance method
changegears
32

Attribute Method
Attribute adalah berbagai variable yang
mengitari class, dengan nilai datanya bisa z Method adalah implementasi dari
ditentukan di object. Name,
Name, age, dan weight
adalah atribute dari class Person
bagaimana bekerjanya sebuah class
z Method melakukan:
1
1. Manipulasi data
2. Perhitungan matematika
3. Memonitor kejadian dari suatu event

Membuat Class dan Memanggil Object Membuat Class dan Memanggil Object
(MobilBeraksi.java) (MobilBeraksi2.java)
class Mobil { class Mobil2{
String warna; String warna;
int tahunProduksi; int tahunProduksi;
void printMobil()
printMobil(){{
}
System.out.println("Warna: " + warna);
public class MobilBeraksi{
System.out.println("Tahun: " + tahunProduksi);
public static void main(String[] args){
}}
// Membuat
M b t object
bj t public class MobilBeraksi2{
Mobil mobilku = new Mobil(); public static void main(String[] args){
// Membuat object
/* memanggil atribut dan memberi nilai */ Mobil2 mobilku = new Mobil2();
mobilku.warna = "Hitam"; /* memanggil atribut dan memberi nilai */
mobilku.tahunProduksi = 2006; mobilku.warna = "Hitam";
System.out.println("Warna: " + mobilku.warna
mobilku.warna);
); mobilku.tahunProduksi = 2006;
mobilku.printMobil();
System.out.println("Tahun: " + mobilku.tahunProduksi)
mobilku.tahunProduksi);;
}}
35
}} 36

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Tugas Message dan Parameter -1-


z Bicycle akan berguna apabila ada object lain (misalnya anda)
anda)
yang berinterasi dengan Bicycle tersebut
z Kembangkan Class Mobil2
Mobil2,, ubah nama menjadi z Object software berinteraksi dan berkomunikasi dengan
Mobil3 masukkan method: object lain dengan cara mengirimkan message . Informasi
z hidupkanMobil() dalam message ini dikenal dengan nama Parameter
z matikanMobil()
z ubahGigi()
b h ()
z Isi masing-
masing-masing method dengan tampilan
status menggunakan System.out.println()
z Panggil method-
method-method diatas dari
MobilBeraksi3

38
37

Message dan Parameter -2- Membuat Class (SepedaBeraksi.java)


class Sepeda{
int kecepatan = 0;
int gir = 0;

// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
pertambahanGir
1. You Æ object pengirim (sender
(sender)) System.out.println(" Gir:" + gir);
}
2. YourBicycle Æ object penerima (receiver)
void tambahKecepatan(int pertambahanKecepatan) {
3. changeGears Æ the message, the method to perform kecepatan = kecepatan+ pertambahanKecepatan;
4. lowerGear Æinformation from You to YourBicycle
YourBicycle,, the System.out.println(" Kecepatan:" + kecepatan);
parameters needed by the method }
39
}
40

Membuat dan Memanggil Object Tugas


public class SepedaBeraksi{
z Buat Class bernama Matematika
Matematika,, yang berisi
public static void main(String[] args) {
method dengan dua parameter:
// Membuat object
z pertambahan
Sepeda sepedaku = new Sepeda();
z pengurangan
z perkalian
//memanggil atribut dan memberi nilai
z pembagian
p g
sepedaku kecepatan=10
sepedaku.kecepatan=10;
sepedaku.gir=2; z Buat Class bernama MatematikaBeraksi
MatematikaBeraksi,, yang
mengeksekusi method dan menampilkan:
// Memanggil method dan menunjuk nilai parameter z Pertambahan: 20 + 20 = 40
sepedaku.tambahKecepatan(30); z Pengurangan: 10-
10-5 = 5
sepedaku.ubahGir(3); z Perkalian: 10x20 = 200
} z Pembagian: 21/2 = 10.5 (float or double)
41
} 42

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Tips Membuat Class


Class Kata Kunci this
z 1 file bisa berisi >=1 class Digunakan pada pembuatan class dan digunakan
untuk menyatakan object sekarang
z 1 file hanya dapat berisi 1 public class
class Mobil{ class Mobil{
z Nama file harus sama dengan nama String warna; String warna;
Int tahunProduksi; Int tahunProduksi;
public class sifatnya adalah case
case sensitive
void isiData(String warnaMobil, int void isiData(String warna, int
z Tips: Lebih baik dan lebih mudah tahunProduksiMobil){ tahunProduksi){

dipahami apabila satu file berisi hanya warna = warnaMobil; this.warna = warna;
satu class }
tahunProduksi = tahunProduksiMobil;
}
this.tahunProduksi = tahunProduksi;

43
44

Konstruktor -1- Konstruktor -2-


class Mobil {
String warna;
z Method yang digunakan untuk memberi int tahunProduksi;

nilai awal pada saat object diciptakan public Mobil(String warna, int tahunProduksi){
this.warna = warna;
z Dipanggil secara otomatis ketika new this.tahunProduksi = tahunProduksi;
digunakan
g untuk membuat instan class }
public void info(){
z Sifat konstruktor: System.out.println("Warna: " + this.warna);
System.out.println("Tahun: " + this.tahunProduksi);
z Nama konstruktor sama dengan nama class
}
z Tidak memiliki nilai balik dan tidak boleh ada }
kata kunci void public class MobilKonstruktor{
public static void main(String[] args){
Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
}}
45 46

Class Access Level Tugas:


1. Buat class Buku
2. Tentukan variable buku: Judul, Pengarang, Penerbit
Specifier Class Package SubClass World dan Tahun
3. Buat konstruktor class Buku dengan parameter:
private 9
Judul, Pengarang, Penerbit dan Tahun
no specifier 9 9 4. B
Buat method
h d cetakBuku
kB k
5. Buat class BukuBeraksi dan tampilkan 2 buku:
protected 9 9 9 z Pemrograman Berbasis Objek dengan Java, Indrajani,
Elexmedia Komputindo, 2007
public 9 9 9 9 z Dasar Pemrograman Java, Abdul Kadir, Andi Offset,
2006
47
48

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Inheritance (Pewarisan) Sepeda.java


class Sepeda{
z Reusability int kecepatan = 0;
int gir = 0;
z Top down:
z Being more specific
// method
z Bottom Up: void ubahGir(int pertambahanGir) {
z Find
ind similiarity
imi ia ity gir= gir+ pertambahanGir;
pertambahanGir
z Java Keyword: System.out.println("Gir:" + gir);
extends }
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println("Kecepatan:" + kecepatan);
}
49 }
50

SepedaGunungBeraksi.java Tugas

class SepedaGunung extends Sepeda { class SepedaGunungBeraksi { z Buat class Mobil3BMW yang merupakan inherit
public static void main(String[] args) {
int setSadel; // Membuat object
dari class Mobil3
SepedaGunung sepedaku = new sepedaGunung();
z Tambahkan method nontonTV() yang
public void setSadel
setSadel((int nilaiSadel)
nilaiSadel) {
setSadel = nilaiSadel;
nilaiSadel; // Memanggil method di object menampilkan tulisan di layar:
System.out.println(“Tinggi sepedaku.tambahKecepatan(10); z TV dihidupkan
Sadel:”+setSadel); sepedaku.ubahGir(2);
} sepedaku.setSadel(20); z TV mencari channel
} z TV menampilkan gambar
}
} z Buat class Mobil3BMWBeraksi yang memanggil
method nontonTV, hidupkanMobil,
matikanMobil, ubahGigi
51 52

Polymorphism
Konsep Lanjut
Pemrograman z Polymorphism: Suatu object dapat
Polymorphism:
memiliki berbagai bentuk, sebagai
Berorientasi Obj
Objek object dari classnya sendiri atau object
dari superclassnya
z Overloading:
Overloading
l : Penggunaan satu nama
untuk beberapa method yang berbeda
(beda parameter)
z Overriding:: Terjadi ketika deklarasi method
Overriding
subclass dengan nama dan parameter yang
sama dengan method dari superclassnya
53 54

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Polymorphism – Overloading Contoh Lain Overloading


class Mobil { public class MobilKonstruktor{
String warna;
int tahunProduksi;
public static void main(String[] args){ class Lingkaran{
Mobil mobilku = new Mobil(“Merah”,
2003);
public Mobil(String warna, int
mobilku.info();
tahunProduksi){
this.warna = warna;
public buatLingkaran(int diameter){
diameter){
Mobil mobilmu
mobilmu = new Mobil();
}
this.tahunProduksi = tahunProduksi;
mobilmu.
mobil mu.info();
info();
}
} public
bli buatLingkaran(int
b tLi k (i t diameter,
di t inti t x, int
i t y){
y)){
){
public Mobil(){ }
} }
void info(){ public buatLingkaran(int diameter, int x, int y,
System.out.println("Warna: " +
this.warna); int warna, String namaLingkaran){
namaLingkaran){
System.out.println("Tahun: " +
this.tahunProduksi); }
}
}
}
55 56

Polymorphism - Overriding Tugas


//Filename: Point2D.java // continue class Point decl
declaration
aration
public class Point2D{ // getter method
int x, y; // member variable int getX
getX()
() { return x; } 1. Kembangkan class Matematika dan
int getY
getY()
() { return y; } MatematikaBeraksi
public Point2D() {
x=0;; y = 0;
x=0 0; // overide method from class Object 2. Lakukan overloading pada Method yang ada
} public String toString(){
toString(){
public Point2D(int
Point2D(int nx,nx, int ny){
ny){ return “x: “+x “, y: “+y;
(pertambahan, pengurangan, perkalian,
setPoint(
setPoint
tP i t(
t(nx
nx,, ny
ny);
)
); } pembagian) . Method
Meth d baru adalah bertipe data
} }
double (pecahan) dan memiliki 3 parameter
// setter method 3. Uji di kelas MatematikaBeraksi dengan
public setPoint(
setPoint(int nx,
nx, int ny){
ny){
x = nx
nx;; parameter pecahan: 12.5, 28.7, 14.2
y = ny;
ny;
} 4. Misalnya:
pertambahan(12.5, 28.7, 14.2)
57 58

Tugas: Packages
z Package adalah koleksi dari beberapa class
1. Kembangkan class Buku dan BukuBeraksi
dan interface yang berhubungan, dan
2. Selain konstruktor class Buku dengan menyediakan proteksi akses dan pengelolaan
parameter: Judul, Pengarang, Penerbit dan namespace
Tahun, buat konstruktor lagi dengan
z 1 package adalah 1 subfolder di file system
parameter:: Judul,
parameter l Pengarang saja
z Package sangat berguna untuk
3. Panggil kedua konstruktor class Buku tadi
mengorganisir file dalam suatu project atau
dari class BukuBeraksi
library
z Nama package menggunakan lowercase
z Keyword:: package name;
Keyword
60
59

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Budi.java Joko.java

package kelasku; package kelasku;

public class Budi{ public class Joko{


public
p bli voidid info(){
inf (){ public
p bli voidid info(){
inf (){
System.out.println(“Kelas Budi”); System.out.println(“Kelas Joko”);
} }
} }

61 62

PaketBeraksi.java Tugas
import kelasku.Budi;
z Buat class Budi dan Joko
import kelasku.Joko;
z Buat method info() yang menampilkan “Ini
Kelas Budi” dan “Ini Kelas Joko”
public class PaketBeraksi{
z Buat bethod matakuliah() menampilkan
public static void main(String[] args){
mata kuliah yang diajar Budi dan Joko
Budi objectBudi = new Budi();
z Paketkan kedua class tadi dalam satu Package
objectBudi.info(); bernama dosen (gunakan keyword: package
package))
Joko objectJoko = new Joko();
z Buat Class DosenBeraksi yang menjalankan
objectJoko.info(); method yang ada di kedua Class tadi
} (gunakan keyword: import
import))
}
63 64

Tugas Interface

z Paketkan berbagai class yang kita buat z Interface digunakan apabila kita ingin
(Mobil dan Sepeda)
Sepeda) dalam package menentukan apa yang harus dilakukan
transportasi oleh suatu class tapi tidak menentukan
z Panggil dari class lain bagaimana cara untuk melakukannya
(TransportasiBeraksi.java
TransportasiBeraksi.java)) dengan z Interface sebenarnya sama dengan class,
import tapi hanya memiliki deklarasi method
tanpa implementasi

66
65

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

InterfaceBeraksi.java class Lampu implements IntLampu


IntLampu{{
int statusLampu=0;
statusLampu=0;

interface IntLampu
IntLampu{{ public void hidupkan
hidupkan(){
(){
if (this.statusLampu
(this.statusLampu == KeadaanMati
KeadaanMati){
){
public static final int KeadaanHidup=1;
KeadaanHidup=1; this.statusLampu = KeadaanHidup
KeadaanHidup;;
public static final int KeadaanMati
KeadaanMati=0;
=0; System.out.println("
System.out.println("Hidupkan
Hidupkan Lampu!
Lampu! --
-->> Lampu Hidup
Hidup");
");
}else{
System.out.println("
System.out.println("Hidupkan
Hidupkan Lampu!
Lampu! --
-->> Lampu Sudah Hidup
Kok");}
Kok ");}
);}
public
bli abstract
b t t voidid hidupkan
hid k ();
hidupkan();
() }
public abstract void matikan
matikan();
();
public void matikan(){
matikan(){
} if (this.statusLampu
(this.statusLampu == KeadaanHidup
KeadaanHidup){){
this.statusLampu = KeadaanMati
KeadaanMati;;
System.out.println("
System.out.println("Matikan
Matikan Lampu!
Lampu! --
-->> Lampu Mati
Mati");
");
}else{
System.out.println("
System.out.println("Matikan
Matikan Lampu!
Lampu! --
-->> Lampu Sudah Mati Kok
Kok");
");
67 }}} 68

Tugas
public class InterfaceBeraksi{
InterfaceBeraksi{
public static void main(String[] args){
args){
z Buat program serupa dengan
Lampu lampuKamar = new Lampu
Lampu();
(); InterfaceBeraksi.java tapi untuk
ACBeraksi.java
System.out.println("Status
System.out.println ("Status Lampu Saat Ini:
Ini: Mati");
Mati");
z Masukkan method-
method
meth d-method
meth d di bawah ke
lampuKamar.hidupkan();
lampuKamar.hidupkan(); //Hidupkan
//Hidupkan Lampu dalam ACBeraksi.java
lampuKamar.matikan(); //Matikan
lampuKamar.matikan(); //Matikan Lampu
lampuKamar.matikan();
lampuKamar.matikan(); //Matikan
//Matikan Lampu z matikanAC() dan hidupkanAC()
lampuKamar.hidupkan();
lampuKamar.hidupkan(); //Hidupkan
//Hidupkan Lampu z dinginkanAC() dan panaskanAC ()
lampuKamar.hidupkan();
lampuKamar.hidupkan(); //Hidupkan
//Hidupkan Lampu
}
} 69
70

Java API untuk Referensi


Pemrograman

71

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming

Referensi -1-
z Sharon Zakhour et al, The Java Tutorial
Fourth Edition,
Edition,
http://java.sun.com/docs/books/tutorial
z Deitel & Deitel, Java How to Program Sixth
Edition,, Prentice Hall
Edition Hall, 2004
z Kathy Sierra & Bert Bates, Head First Java
2nd Edition,
Edition, O’Reilly, 2005
z Rogers Cadenhead & Laura Lemay, Teach
Yourself Java 6 in 21 Days,
Days, Sams Publishing,
2007
74

Referensi -2-
z Tim Pengembang JENI, JENI 11--6,
Depdiknas, 2007
z Abdul Kadir, Dasar Pemrograman Java 2,
2,
Penerbit Andi, 2004
z Indrajani dan Martin,
Martin Pemrograman
P mr graman Berbasis
B rba i
Objek dengan Java,
Java, Elex Media Komputindo,
2007

75

http://romisatriawahono.net romi@romisatriawahono.net