Anda di halaman 1dari 15

Object-Oriented Programming

Romi Satria Wahono

Object-Oriented
ObjectProgramming (OOP)

z
z
z
z
z

Romi Satria Wahono

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

Mata Kuliah OOP - Kontrak


z

Pertemuan di Kelas:
z

Kuliah model tutoring,


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

Penilaian Mata Kuliah:


z
z

Mata Kuliah OOP - Materi

Nilai Total dari TM - UTS UAS


Tugas harus diupload di University.RomiSatriaWahono.Net

Modul Kuliah dan Pengiriman Tugas:


z
z
z

1.

OOP Concepts:
Concepts:

2.

Java Fundamentals:
Fundamentals:

3.

Java
J
Ad
Advanced
Advanced:
d:

4.

Java GUI:
GUI:

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


Course Name: Object
Object--Oriented Programming
Enrolment Key: oop

Konsep Pemrograman dan paradigma ObjectObject-Oriented


Bagaimana Membuat Program dengan Java
Eksepsi, Thread, Java API
GUI Component, Swing, Event Handling

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),
(Encapsulation) Pewarisan (Inheritance),
(Inheritance) Keyword This
This,
Constructor
3.

Konsep Lanjut Pemrograman Berorientasi Obyek


Obyek::
Polymorphisme (Overloading dan Overriding), Package,
Interface

http://romisatriawahono.net

romi@romisatriawahono.net

Object-Oriented Programming

Bahasa Pemrograman?

Konsep Pemrograman
dan Paradigmanya

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

Compiler or Interpreter?

Tingkat Bahasa Pemrograman

z Compiler:

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 <<stdio.h
stdio.h>>
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

(JavaCompiler)

(JavaInterpreter)

Sudut pandang dan style pemrograman


berhubungan dengan bagaimana sebuah masalah
diformulasikan dalam bahasa pemrograman
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

Install, Compile and


Running Java

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

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)

Instalasi 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

Menulis Java Program


z

Latihan: Tulis dan Compile Halo.java

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))
sini!
Program Java mulai dari sini!

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>

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 -1z

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

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 -2z

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 -3z

Karakteristik OOP -4-

Inheritance:: Suatu class dapat mewariskan


Inheritance
atribut dan method kepada class lain (subclass),
serta membentuk class hierarchy

Polymorphism:: Suatu object dapat memiliki


Polymorphism
berbagai bentuk,
bentuk, sebagai object dari classnya
sendiri atau object dari superclassnya
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 -1z


z

Class and Object -2Class = method+


method+variable
variable

Class: mobil
Object: mobilnya pak Joko, mobilku

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)

Object adalah instance dari Class

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

Mobil.java
z Method
MobilBeraksi.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);
);
System.out.println("Tahun: " + mobilku.tahunProduksi)
mobilku.tahunProduksi);;
41

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

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

Mobil2 mobilku = new Mobil2();

/* memanggil atribut dan memberi nilai */

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

Message dan Parameter -1z

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;

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

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 -1z

Konstruktor -2class Mobil {


String warna;
int tahunProduksi;

Method yang digunakan untuk memberi


nilai awal pada saat object diciptakan
Dipanggil secara otomatis ketika new
g
untuk membuat instan class
digunakan
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
Buat
B
method
h d cetakBuku
kB k
Buat class BukuBeraksi dan tampilkan 2 buku:

1.

Specifier

Class

2.

Package SubClass World

3.

private

no specifier

protected

public

4.
5.

Pemrograman Berbasis Objek dengan Java, Indrajani,


Elexmedia Komputindo, 2007
Dasar Pemrograman Java, Abdul Kadir, Andi Offset,
2006

55
56

Inheritance (Pewarisan)
z
z

Reusability
Top down:
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

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

Find
ind similiarity
imi ia ity

Java Keyword:

extends

57

58

Latihan

Class SepedaGunung Mewarisi Class Sepeda


class SepedaGunung extends Sepeda {
int setSadel;

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

SepedaGunung sepedaku = new sepedaGunung();

public void ssetSadel


etSadel((int nilaiSadel)
nilaiSadel) {
setSadel = nilaiSadel
nilaiSadel;;
System.out.println(Tinggi
Sadel:+setSadel);
}

// Memanggil method di object


sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);
l

z
}

SepedaGunung.java

59

http://romisatriawahono.net

Buat class MobilBMW yang merupakan inherit


dari class MobilLengkap
Tambahkan method nontonTV() yang
menampilkan tulisan di layar:

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
Objek

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.info();
mobilmu.
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 Mewarisi 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();
}
}

74

Interface

InterfaceBeraksi.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

matikanAC() dan hidupkanAC()


dinginkanAC() dan panaskanAC ()

79

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
dengan
d
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 -1z

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, OReilly, 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 -2z

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

Anda mungkin juga menyukai