Mata Kuliah OOP -- Kontrak

Object-Oriented Programming

Romi Satria Wahono

Object - Oriented
ObjectProgramming ( OOP)

z
z
z
z
z

Romi Satria Wahono

z

romi@romisatriawahono.net
http://romisatriawahono.net
YM: romi_sw
1


z
z
z

Lahir di Madiun, 2 Oktober 1974
SD Sompok Semarang (1987)
SMPN 8 Semarang (1990)
SMA Taruna Nusantara,
Nusantara, Magelang (1993)
S1,, S2 da
dan S3 (on
(on--leave)
a
da
dari Department
pa
of Computer
p
Sciences, Saitama University,

University, Japan (1994
(1994--2004)
Core Competence: Software Engineering,
Engineering, eLearning
System, Knowledge Management
PNS di Lembaga Ilmu Pengetahuan Indonesia
Founder dan Koordinator IlmuKomputer.Com
CEO PT Brainmatics Cipta Informatika

2

Mata Kuliah OOP - Kontrak
z

Pertemuan di Kelas:
z

z

z


1.

Kuliah model tutoring,
tutoring, konsep diberikan dan langsung
praktek dilakukan
Ketidakhadiran diperbolehkan,
diperbolehkan, hanya tidak akan ada
pengulangan bahasan bagi yang tidak hadir

z

2.

z

3.

Nilai Total dari TM - UTS – UAS
Tugas harus diupload di University.RomiSatriaWahono.Net


z

J
Java
Ad
Advanced
Advanced:
d:

Eksepsi, Thread, Java API
4.

Java GUI:
GUI:

GUI Component, Swing, Event Handling

eLearning System: http://university.romisatriawahono.net
Course Name: Object

Object--Oriented Programming
Enrolment Key: oop

3

Java Fundamentals:
Fundamentals:

Bagaimana Membuat Program dengan Java

Modul Kuliah dan Pengiriman Tugas:
z

OOP Concepts:
Concepts:

Konsep Pemrograman dan paradigma ObjectObject-Oriented

Penilaian Mata Kuliah:
z


z

Mata Kuliah OOP - Materi

4

Materi Diskusi

OOP Concepts

1.

Konsep Pemrograman dan Paradigmanya:
Tingkat Bahasa Pemrograman, Paradigma Pemrograman,
Tool Pemrograman

2.

Konsep Dasar Pemrograman Berorientasi Ob

Oby
yek:
ek:
Kelas (Class), Obyek (Object), Pengkapsulan
(Encapsulation) Pewarisan (Inheritance),
(Encapsulation),
(Inheritance) Keyword This
This,
Constructor

3.

Konsep Lanjut Pemrograman Berorientasi Obyek
Obyek::
Polymorphisme (Overloading dan Overriding), Package,
Interface

5

http:/ / romisatriawahono.net


6

romi@romisatriawahono.net

Object-Oriented Programming

Bahasa Pemrograman?

Konsep Pemrograman
dan Paradigmanya

z

z

z

z


7

Komputer bekerja seperti switching dan hanya
mengenali 0 dan 1
Manusia tidak (paham) berbicara dengan bahasa
0 dan 1
P l bahasa
Perlu
b h pemrograman
p
yang dapat
d p t menjadi
j di
perantara percakapan antara komputer dan
manusia
Bahasa pemrograman diubah ke dalam bahasa
yang dipahami oleh komputer dengan
menggunakan interpreter atau kompiler

8


Compiler or I nterpreter?

Tingkat Bahasa Pemrograman

z Compiler:

z

Bahasa Pemrograman Tingkat Rendah
(Assembler)
z Bahasa Pemrograman Tingkat Sedang
(C Pascal
(C,
Pascal, Fortran)
z Bahasa Pemrograman Tingkat Tinggi
(Java, C++, C#)

Mengkompilasi source code
menjadi bentuk file yang bisa

dieksekusi
z Interpreter:
Mengkompilasi dan menjalankan
source code secara langsung
9

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
Translation
program
(Assembler)

main()
main()
{
printf(“Hall ”)
printf(“Hallo”);
}

00010100
001100101
00001000
100100101
010101010
10010

C Program

Machine language program
(executable file)

11

http:/ / romisatriawahono.net

C Compiler

0001010000
1100101000
0100010010
01010101010
1010010

Machine language program
(executable “.exe” file)

12

romi@romisatriawahono.net

Object-Oriented Programming

Java Language

Paradigma Pemrograman

javac

java

(Java Compiler)

(Java Interpreter)

Sudut pandang dan style pemrograman
berhubungan dengan bagaimana sebuah masalah
diformulasikan dalam bahasa pemrograman
z

z

z

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

Tool Pemrograman Java
1.

I nstall, Compile and
Running Java

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

Java Family Suite
‰

For desktop, client/server
application

2.

Java Enterprise
p
Edition
(Java EE)
EE)

3
3.

‰

‰

1.

Java Standard Edition
(Java SE)
SE)
‰

‰

I nstalasi Java Standard Edition

For ee--business,
business, ee--commerce
web based application

Java Micro Edition
(Java ME
ME))
‰

4.

For small devices,
devices, like
palm, handphone
handphone,, etc

Download Java Standard Edition dari:
http://java.sun.com/javase/downloads/
Instal Java Standard Edition dengan mengklik:
jdk--6u6
jdk
6u6--windowswindows-i586
i586--p.exe
Klik Start ÆControl Panel Æ System Æ
Advanced ÆEnvironment Variables dan set
PATH:
;C:
C:\\Program Files\
Files\Java
Java\\jdk1.6.0_06
jdk1.6.0_06\\bin
Instal text editor untuk editing code:
textpad, notepad++, JCreator

18

http:/ / romisatriawahono.net

romi@romisatriawahono.net

Object-Oriented Programming

How Java Works?

Compile and Run Java Applet

Jalankan dengan:
1. C:\
C:\>java Hello (Application)
2. Web Browser (Applet)

public class Hello
public static void main(String[] args){
args){
System.out.println("Hello
System.out.println
("Hello World!");
}
}

public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello
g.drawString
("Hello world!",50,25
world!",50,25);
);
}
}

Hello.java

javac (java compiler)
compiler)
Interpreter

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

Menulis Program “Halo Semarang”
Semarang”
public class Halo{
alo{
public static void main(String[] args){
args){
System.out.println(“
System.out.println
(“Halo
Halo Semarang");
Semarang");
}
}

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

21

22

Latihan: Tulis dan Compile Halo.java

Menulis Java Program
z

public class Halo{
public static void main(String[] args){
args){
System.out.println(“Halo Semarang”);
}
}

Program harus punya method di public class:
public static void main(String[] args
args))
Æ Program Java mulai dari sini!
sini!

z

Bentuk program:
1.

2.



A Simple Program


Here is the output of my program:





GUI application Æ public class biasanya
menggunakan Frame (AWT), Jframe(Swing)
Jframe(Swing)
“Text based” Console Application Æ public class
adalah class yang sederhana

24

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.

Ban, Stir, Pedal Kopling/Gas/Rem,
Warna, Tahun Produksi

Behavior:

2.

Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil

Lakukan kegiatan berorientasi objek dengan
target Sepeda
Pikirkan apa atribut dan behavior yang
dimiliki oleh Sepeda tersebut

Attribute Æ Variable(Member)
Behavior Æ Method(Fungsi
Method(Fungsi))
27

28

Karakteristik OOP - 1 z

Abstraction:Cara
Abstraction
:Cara kita melihat suatu sistem
dalam bentuk yang lebih sederhana,
sederhana, yaitu
sebagai suatu kumpulan subsistem (object)
yang saling berinteraksi.
z

z

Mobil adalah
d
kumpulan
p
sistem pengapian,
p g p , sistem
kemudi, sistem pengereman

Modularity: Sifat object adalah modular. Object
Modularity:
dapat ditulis dan dimaintain terpisah
(independen) dari object lain

29

http:/ / romisatriawahono.net

30

romi@romisatriawahono.net

Object-Oriented Programming

Karakteristik OOP - 2 z

Encapsulation: Mekanisme menyembunyikan
Encapsulation:
suatu proses dalam sistem untuk menghindari
interferensi dan menyederhanakan penggunaan
sistem itu sendiri
z
z

31

32

33

34

Karakteristik OOP - 3 z

Karakteristik OOP - 4 -

Inheritance: Suatu class dapat mewariskan
Inheritance:
atribut dan method kepada class lain (subclass),
serta membentuk class hierarchy

z

Polymorphism: Suatu object dapat memiliki
Polymorphism:
berbagai bentuk,
bentuk, sebagai object dari classnya
sendiri atau object dari superclassnya
z

z

35

http:/ / romisatriawahono.net

Tongkat transmisi (gigi) pada mobil
Tombol
T b l on/off/pengaturan
/ ff/
t
suhu
h pada
d AC

Overloading: Penggunaan satu nama untuk beberapa
Overloading:
method yang berbeda (beda parameter)
Overriding:: Terjadi ketika deklarasi method subclass
Overriding
dengan nama dan parameter yang sama dengan
method dari superclassnya

36

romi@romisatriawahono.net

Object-Oriented Programming

Class dan Object - 1 z
z

Class and Object - 2 Class = method+
method+variable
variable

Class: mobil
Object: mobilnya pak Joko, mobilku

z

Class seperti cetakan kue,
kue, dimana kue yg
dihasilkan dari cetakan kue itu adalah object
Warna kue bisa bermacambermacam-macam meskipun
berasal dari cetakan yang sama (object
(object memiliki
sifat independen)
independen)

z

Object adalah instance dari Class

z

The Bicycle class

37

Class dan Object - 3 -

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

Bicycle dimodelkan sebagai sebuah object
object::
z
z

10 mph, 90 rpm, 5th gear adalah instance variable
changegears,, brake, changecadence adalah instance method
changegears
39

Membuat Class, Object dan Memanggil Atribut
class Mobil {
String warna;
int tahunProduksi;
}
public class MobilBeraksi{
public static void main(String[] args){

Method

Mobil.java

z Method

adalah implementasi dari
bagaimana bekerjanya sebuah class

MobilBeraksi.java

// Membuat object
Mobil mobilku = new Mobil();

z Method
M th d
1.

/* memanggil atribut dan memberi nilai */
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
System.out.println("Warna: " + mobilku.warna
mobilku.warna);
);
System.out.println("Tahun: " + mobilku.tahunProduksi)
mobilku.tahunProduksi);;
41

2.
3.

melakukan:
l k k

Manipulasi data
Perhitungan matematika
Memonitor kejadian dari suatu event

}}

http:/ / romisatriawahono.net

romi@romisatriawahono.net

Object-Oriented Programming

Membuat dan Memanggil Method

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

z

Mobil2 mobilku = new Mobil2();

/* memanggil atribut dan memberi nilai */

z

mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
}}

43

z

hidupkanMobil()
matikanM bil()
matikanMobil()
ubahGigi()

Isi masing
masing--masing method dengan tampilan
status menggunakan System.out.println()
Panggil methodmethod-method diatas dari
MobilLengkapBeraksi

44

Message dan Parameter - 1 z

Kembangkan Class Mobil2
Ubah nama classs menjadi MobilLengkap dan
masukkan method:

Message dan Parameter - 2 -

Bicycle akan berguna apabila ada object lain (misalnya anda)
anda)
yang berinterasi dengan Bicycle tersebut
Object software berinteraksi dan berkomunikasi dengan
object lain dengan cara mengirimkan message . Informasi
dalam message ini dikenal dengan nama Parameter

1. You Æ object pengirim (sender
(sender))
2. YourBicycle Æ object penerima (receiver)
3.

changeGears Æ the message, the method to perform

4. lowerGear Æinformation from You to YourBicycle
YourBicycle,, the
parameters needed by the method
45

46

Membuat Class ( 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) {
kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println(" Kecepatan:" + kecepatan);
}
47

http:/ / romisatriawahono.net

}

48

romi@romisatriawahono.net

Object-Oriented Programming

Membuat dan Memanggil Object
( SepedaBeraksi.java)

Latihan
z

public class SepedaBeraksi{
public static void main(String[] args) {
// Membuat object
Sepeda sepedaku = new Sepeda();

Buat Class bernama Matematika
Matematika,, yang berisi
method dengan dua parameter:
parameter:
z
z
z
z

//
//memanggil
ggil atribut
t ib t dan
d memberi
b i nilai
il i
sepedaku.kecepatan=10;
sepedaku.gir=2;

z

Buat Class bernama MatematikaBeraksi
MatematikaBeraksi,, yang
mengeksekusi method dan menampilkan:
z

// Memanggil method dan menunjuk nilai parameter
sepedaku.tambahKecepatan(30);
sepedaku.ubahGir(3);
49

}}

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

Tips Membuat Class
Class
1 file bisa berisi >=1 class
z 1 file hanya dapat berisi 1 public class
z Nama file harus sama dengan nama
public class sifatnya adalah case
case sensitive
z Tips: Lebih baik dan lebih mudah
dipahami apabila satu file berisi hanya
satu class

Kata Kunci this
Digunakan pada pembuatan class dan digunakan
untuk menyatakan object sekarang

z

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;
}

51
52

Konstruktor - 1 z

z

z

Konstruktor - 2 class Mobil {
String warna;
int tahunProduksi;

Method yang digunakan untuk memberi
nilai awal pada saat object diciptakan
Dipanggil secara otomatis ketika new
digunakan
g
untuk membuat instan class
Sifat konstruktor:
z
z

public Mobil(String warna, int tahunProduksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
public void info(){
System.out.println("Warna: " + this.warna);
System.out.println("Tahun: " + this.tahunProduksi);
}

Nama konstruktor sama dengan nama class
Tidak memiliki nilai balik dan tidak boleh ada
kata kunci void

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

Class Access Level

Latihan
Buat class Buku
Tentukan variable buku: Judul, Pengarang, Penerbit
dan Tahun
Buat konstruktor class Buku dengan parameter:
Judul, Pengarang, Penerbit dan Tahun
B
Buat
method
h d cetakBuku
kB k
Buat class BukuBeraksi dan tampilkan 2 buku:

1.

Specifier

Class

2.

Package SubClass World

3.

private

9

no specifier

9

9

protected

9

9

9

public

9

9

9

4.
5.

z

9

z

Pemrograman Berbasis Objek dengan Java, Indrajani,
Elexmedia Komputindo, 2007
Dasar Pemrograman Java, Abdul Kadir, Andi Offset,
2006

55
56

I nheritance ( Pew arisan)
z
z

Reusability
Top down:
z

z

Being more specific

// 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

z

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

Find
ind similiarity
imi ia ity

Java Keyword:

extends

}

57

58

Latihan

Class SepedaGunung Mew arisi Class Sepeda
class SepedaGunung extends Sepeda {
int setSadel;

class SepedaGunungBeraksi {
public static void main(String[] args) {
// Membuat object

z

SepedaGunung sepedaku = new sepedaGunung();

public void ssetSadel
etSadel((int nilaiSadel)
nilaiSadel) {
setSadel = nilaiSadel
nilaiSadel;;
System.out.println(“Tinggi
Sadel:”+setSadel);
}

z

// Memanggil method di object
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);
l

z

}

z
}

z

}

SepedaGunung.java

59

http:/ / romisatriawahono.net

Buat class MobilBMW yang merupakan inherit
dari class MobilLengkap
Tambahkan method nontonTV() yang
menampilkan tulisan di layar:

z

SepedaGunungBeraksi.java

TV dihidupkan
TV mencari channel
TV menampilkan gambar

Buat class MobilBMWBeraksi yang memanggil
method nontonTV, hidupkanMobil,
matikanMobil, ubahGigi

60

romi@romisatriawahono.net

Object-Oriented Programming

Polymorphism

Konsep Lanjut
Pemrograman
Berorientasi Obj
Obj ek

z

Polymorphism: Suatu object dapat
Polymorphism:
memiliki berbagai bentuk, sebagai
object dari classnya sendiri atau object
dari superclassnya
1.

2.

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(){
}

Contoh Lain Overloading

public class MobilKonstruktor{
public static void main(String[] args){
Mobil mobilku = new Mobil(“Merah”,
2003);
mobilku.info();
Mobil mobilmu
mobilmu = new Mobil();
mobilmu.
mobil
mu.info();
info();
}
}

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 SepedaGunung Mew arisi Class Sepeda
class SepedaGunung extends Sepeda {
int setSadel;

class SepedaGunungBeraksi {
public static void main(String[] args) {
// Membuat object
SepedaGunung sepedaku = new sepedaGunung();

void ubahGir(int pertambahanGir)
{
gir= 2*(gir+ pertambahanGir );
System.out.println("Gir:" + gir);
}

// Memanggil method di object
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);
l

}
}
}

SepedaGunung.java

SepedaGunungBeraksi.java

66

romi@romisatriawahono.net

Object-Oriented Programming

Latihan
1.

2.

3.

4.

Matematika.java
class Matematika{
int hasilPertambahan1, hasilPertambahan2;

Kembangkan class Matematika dan
MatematikaBeraksi
Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian,
ppembagian)
g
. Method baru adalah bertipe
p data
double (pecahan) dan memiliki 3 parameter
Uji di kelas MatematikaBeraksi dengan
parameter pecahan: 12.5, 28.7, 14.2
Misalnya:
pertambahan(12.5, 28.7, 14.2)

67

public void pertambahan (int a, int b){
b){
hasilPertambahan1 = a + b;
System.out.println(“hasil:”
System.out.println(
hasil: + hasilPertambahan1);
}
public void pertambahan (double a, double b, double c){
c){
hasilPertambahan2 = a + b + c;
System.out.println(“hasil:” + hasilPertambahan2);
}
...
68

Latihan
1.
2.

3.

}

Packages
z

Kembangkan class Buku dan BukuBeraksi
Selain konstruktor class Buku dengan
parameter: Judul, Pengarang, Penerbit dan
Tahun, buat konstruktor lagi dengan
parameter:: Judull dan Pengarang saja
parameter
Panggil kedua konstruktor class Buku tadi
dari class BukuBeraksi

z
z

z
z

Package adalah koleksi dari beberapa class
dan interface yang berhubungan, dan
menyediakan proteksi akses dan pengelolaan
namespace
1 package adalah 1 subfolder di file system
Package sangat berguna untuk
mengorganisir file dalam suatu project atau
library
Nama package menggunakan lowercase
Keyword:: package name;
Keyword
70

69

Budi.java

Joko.java

package kelasku;

package kelasku;

public class Budi{
p bli void
public
id iinfo(){
f (){
System.out.println(“Kelas Budi”);
}
}

public class Joko{
p bli void
public
id iinfo(){
f (){
System.out.println(“Kelas Joko”);
}
}

71

http:/ / romisatriawahono.net

72

romi@romisatriawahono.net

Object-Oriented Programming

PaketBeraksi.java

Latihan

import kelasku.Budi;
import kelasku.Joko;

73

Kembangkan class Budi dan Joko
Buat method matakuliah() menampilkan
mata kuliah yang diajar Budi dan Joko
Paketkan kedua class tadi dalam satu Package
bernama dosen (gunakan keyword: package
package))
Buat Class DosenBeraksi yang menjalankan
method yang ada di kedua Class tadi
(gunakan keyword: import
import))

z
z

public class PaketBeraksi{
public static void main(String[] args){
Budi objectBudi = new Budi();
objectBudi.info();
Joko objectJoko = new Joko();
objectJoko.info();
}
}

z

z

74

I nterface

I nterfaceBeraksi.java
interface IntLampu
IntLampu{{
public static final int KeadaanHidup
KeadaanHidup=1;
=1;
public static final int KeadaanMati=0;
KeadaanMati=0;

Interface digunakan apabila kita ingin
menentukan apa yang harus dilakukan
oleh suatu class tapi tidak menentukan
bagaimana cara untuk melakukannya
z Interface sebenarnya sama dengan class,
tapi hanya memiliki deklarasi method
tanpa implementasi
z

public
bli abstract
b t t void
id hidupkan
hid k ();
hidupkan();
()
public abstract void matikan
matikan();
();
}

75

class Lampu implements IntLampu
IntLampu{{
int statusLampu=0;
statusLampu=0;
public void hidupkan
hidupkan(){
(){
if (this.statusLampu
(this.statusLampu == KeadaanMati
KeadaanMati){
){
this.statusLampu = KeadaanHidup
KeadaanHidup;;
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 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");
}}}
77

http:/ / romisatriawahono.net

76

public class InterfaceBeraksi
InterfaceBeraksi{{
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(); //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

Buat program serupa dengan
InterfaceBeraksi.java tapi untuk
ACBeraksi.java
z Masukkan
M kk methodmethod
th d-method
th d di bawah
b
hk
ke
dalam ACBeraksi.java

z

z

z
z

z

matikanAC() dan hidupkanAC()
dinginkanAC() dan panaskanAC ()

79

z

Buat situs blog,
blog, bisa ditempat gratis semacam
wordpress.com atau blogspot.com, atau hosting
secara profesional
Pilih satu topik tentang konsep OOP,
OOP, jelaskan
d
dengan
bahasa
b h sendiri
d (bahasa
(b h manusia)) dan
d
sampaikan code yang orisinal (tidak mengambil
dari tempat lain)
Daftar di university.romisatriawahono.net,
university.romisatriawahono.net,
upload url blog yang telah dibuat melalui fitur
tugas mandiri

80

Java API untuk Referensi
Pemrograman

81

Referensi - 1 z

z

z

z

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

84

http:/ / romisatriawahono.net

romi@romisatriawahono.net

Object-Oriented Programming

Referensi - 2 z

z

z

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

85

http:/ / romisatriawahono.net

romi@romisatriawahono.net