Anda di halaman 1dari 37

Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Object-Oriented
Object-
Programming with Java

Romi Satria Wahono


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

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

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Konsep Pemrograman
dan Paradigmanya

Bahasa Pemrograman?
 Komputer bekerja seperti switching dan hanya
mengenali 0 dan 1
 Manusia tidak (paham) berbicara dengan bahasa
0 dan 1
 Perlu bahasa pemrograman yang dapat menjadi
perantara percakapan antara komputer dan
manusia
 Bahasa pemrograman diubah ke dalam bahasa
yang dipahami oleh komputer dengan
menggunakan interpreter atau kompiler
4

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Compiler or Interpreter?

 Compiler:

Mengkompilasi source code


menjadi bentuk file yang bisa
dieksekusi
 Interpreter:

Mengkompilasi dan menjalankan


source code secara langsung

Tingkat Bahasa Pemrograman

 Bahasa Pemrograman Tingkat Rendah


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

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Assembly Language
LDA #47
STA $570
$570
DEX
JSR $817
CPX #0
Translation
BNE #14
program 00010100
Assembly language program (Assembler) 001100101
00001000
100100101
010101010
10010
Machine language program
(executable file)

C Language

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

Machine language program


C Program (executable “.exe” file)

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Java Language
Source code
(.java)

Java compiler
memproduksi Byte code
(.class)

Java
Virtual Hasilnya adalah Program
Machine Execution

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

 Functional Programming:
Programming: Urutan fungsi secara
sekuensial (Scheme, Lisp)
 Procedural Programming:
Programming: Pemecahan masalah
berdasarkan prosedural kerja. Fungsi adalah unit
programming (C, Pascal, Fortran)
 Object-
Object-Oriented Programming:
Programming: Koleksi object yang
saling berinteraksi . Class adalah unit programming
(Java, C#, C++)
10

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Tool Pemrograman Java

1. Text Editor + Compiler (Interpreter):


(Interpreter):
TextPad, Notepad++, Java Standard Edition

2. Integrated Development Environment (IDE):


Eclipse, Netbeans, JCreator

11

Install, Compile and


Running Java

12

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Java Family Suite


 Java Standard Edition
(Java SE)
SE)
 For desktop, client/server
application

 Java Enterprise 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,
palm,handphone, etc

Instalasi Java Standard Edition


1. Download Java Standard Edition dari:
http://java.sun.com/javase/downloads/
2. Instal Java Standard Edition dengan mengklik:
jdk-
jdk-6u2-
6u2-windows-
windows-i586-
i586-p.exe
3. Klik Start Control Panel  System 
Advanced Environment Variables dan set
PATH:
;C:\
C:\Program Files\
Files\Java\
Java\jdk1.6.0_04
jdk1.6.0_04\
04\bin
4. Instal text editor untuk editing code:
textpad, notepad++
14

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Menulis Java Program

 Program harus punya method di public class:


public static void main(String[] args)
args)
sini!!
 Program Java mulai dari sini

 Bentuk program:
1. GUI application  public class biasanya
menggunakan JFrame
2. “Text based” Console Application  public class
adalah class yang sederhana

Menulis Program “Hello World!”


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

16

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

GUI Version “Hello World!”


// HeloGUI.java
// Simple GUI Hello World Program

import javax.swing.*;
javax.swing.*;

public class HelloGUI{


HelloGUI{
public static void main(String[] args){
args){
JOptionPane.showMessageDialog(null,
JOptionPane.showMessageDialog(null, "Hello World");
}
}

17

How Java Works? Jalankan dengan:

1. C:
C:\\>java HelloWorld (Application)
public class HelloWorld
HelloWorld{
World{ 2. Web Browser (Applet)
public static void main(String[] args){
args){
System.out.println("Hello
System.out.println("Hello World!");
}
}
HelloWorld.java
javac compiler
Interpreter Interpreter Interpreter Interpreter

Kompiler memproduksi
Bytecode (Class)
Java bytecode
(HelloWorld.class)

Write Once Run Everywhere ! Web Server

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Compile and Run Java Application


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

C:\
C:\javac HelloWorldApp.java

Compile and Run Java Applet


import java.applet
java.applet.*;
.*;
import java.awt.*;

/**
* The HelloWorld class implements an applet that
* simply displays "Hello World!".
*/
public class HelloWorld extends Applet {
public void paint(Graphics g) {
// Display "Hello World!"
g.drawString("Hello
g.drawString ("Hello world!", 50, 25);
}
} C:\
C:\appletviewer Hello.html

<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
C:\
C:\javac HelloWorld.java </HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="HelloWorld.class"
WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Konsep Dasar
Pemrograman
Berorientasi Obyek

21

Berorientasi Object?
Attribute:
Topi, Baju, Tas
Punggung, Jaket,
Tangan, Kaki, Mata

Behavior:
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat

22

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Berorientasi Object?
Attribute (State):
Ban, Stir, Pedal Kopling/Gas/Rem,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil

Attribute  Variable(Member)
Behavior  Method(Fungsi)
Method(Fungsi)
23

Tugas

1. Lakukan kegiatan berorientasi objek


dengan target Sepeda
2. Pikirkan apa atribut dan behavior yang
dimiliki oleh Sepeda tersebut

24

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Procedural vs Object-
Object-Oriented

main
Account
credit
perform transaction debit

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

Object--Oriented Program
Object
public class Halo{

public static void main(String[] args){


args){
System.out.println(“Halo Semarang”);
}
}

26

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Karakteristik OOP -1-


 Abstraction:Cara
Abstraction :Cara kita melihat suatu sistem
dalam bentuk yang lebih sederhana,
sederhana, yaitu
sebagai suatu kumpulan subsistem (object)
yang saling berinteraksi.
 Mobil adalah kumpulan sistem pengapian, sistem
kemudi, sistem pengereman
 Encapsulation:: Mekanisme menyembunyikan
Encapsulation
suatu proses dalam sistem untuk menghindari
interferensi dan menyederhanakan penggunaan
sistem itu sendiri
 Tongkat transmisi (gigi) pada mobil
 Tombol on/off/pengaturan suhu pada AC
27

Karakteristik OOP -2-


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

28

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Karakteristik OOP -3-


 Modularity:: Sifat object adalah modular. Object
Modularity
dapat ditulis dan dimaintain terpisah
(independen) dari object lain
 Polymorphism:
Polymorphism: Suatu object dapat memiliki
berbagai bentuk,
bentuk, sebagai object dari classnya
sendiri atau object dari superclassnya
 Overloading:: Penggunaan satu nama untuk beberapa
Overloading
method yang berbeda (beda parameter)
 Overriding:
Overriding: Terjadi ketika deklarasi method subclass
dengan nama dan parameter yang sama dengan
method dari superclassnya

29

Class dan Object -1-


 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 bermacam-
bermacam-macam meskipun
berasal dari cetakan yang sama (object
(object memiliki
sifat independen)
independen)

 Object adalah instance dari Class


30

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Class and Object -2-


Class = method+attribute

The Bicycle class

Class dan Object -3-

Bicycle dimodelkan sebagai sebuah object:


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

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

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

Method

 Method adalah implementasi dari


bagaimana bekerjanya sebuah class
 Method melakukan:
1. Manipulasi data
2. Perhitungan matematika
3. Memonitor kejadian dari suatu event

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

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

35

Message -2-

1. You  object pengirim (sender


(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
36

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Membuat Class dan Memanggil Object


(MobilDemo.java)
class Mobil {
String warna;
int tahunProduksi;
}
public class MobilDemo {
public static void main(String[] args){
// Membuat object
Mobil mobilku = new Mobil();

//memanggil atribut dan memberi nilai


mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
System.out.println("Warna: " + mobilku.warna);
System.out.println("Tahun: " + mobilku.tahunProduksi);
37
}}

Tugas

 Kembangkan Class Mobil,


Mobil, ubah nama menjadi
Mobil2 masukkan method:
 hidupkanMobil
 matikanMobil
 ubahGigi
 Panggil method-
method-method diatas dari
MobilDemo2

38

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Membuat Class (Bicycle.java)


class Bicycle {
int speed = 0;
int gear = 0;

// method
void changeGear(int newValue) {
gear = gear + newValue;
System.out.println(" \nGear:" + gear);
}
void speedUp(int increment) {
speed = speed + increment;
System.out.println(" \nSpeed:" + speed);
}
39
}

Membuat dan Memanggil Object


class BicycleDemo {
public static void main(String[] args) {
// Membuat object
Bicycle bike = new Bicycle();

//memanggil atribut dan memberi nilai


bike.speed=10;
bike.gear=2;

// Memanggil method dan menunjuk nilai parameter


bike.speedUp(10);
bike.changeGear(2);
}
40
}

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Tugas
 Buat Class bernama matematika,
matematika, yang berisi
method:
 pertambahan
 pengurangan
 perkalian
 pembagian
 Buat Class bernama matematikaDemo,
matematikaDemo, yang
mengeksekusi method dan menampilkan:
 Pertambahan: 20 + 20 = 40
 Pengurangan: 10-
10-5 = 5
 Perkalian: 10x20 = 200
 Pembagian: 20/2 = 10
41

Tips Membuat Class


Class

 1 file bisa berisi >=1 class


 1 file hanya dapat berisi 1 public class

 Nama file harus sama dengan nama


public class sifatnya adalah case
case sensitive
 Tips: Lebih baik dan lebih mudah
dipahami apabila satu file berisi hanya
satu class

42

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Kata Kunci this


Digunakan pada pembuatan class dan digunakan
untuk menyatakan object sekarang
class Mobil{ class Mobil{
String warna; String warna;
Int tahunProduksi; Int tahunProduksi;

void isiData(String warnaMobil, int void isiData(String warna, int


tahunProduksiMobil){ tahunProduksi){

warna = warnaMobil; this.warna = warna;


tahunProduksi = tahunProduksiMobil; this.tahunProduksi = tahunProduksi;
} }

43

Konstruktor -1-

 Method yang digunakan untuk memberi


nilai awal pada saat object diciptakan
 Dipanggil secara otomatis ketika new
digunakan untuk membuat instan class
 Sifat konstruktor:
 Nama konstruktor sama dengan nama class
 Tidak memiliki nilai balik dan tidak boleh ada
kata kunci void

44

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

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

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);
}
}
public class Konstruktor{
public static void main(String[] args){
Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
}}
45

Class Access Level

Specifier Class Package SubClass World

private 

no specifier  

protected   

public    

46

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Tugas:
1. Buat class Buku
2. Tentukan variable buku: Judul, Pengarang,
Penerbit dan Tahun
3. Buat konstruktor class Buku dengan parameter:
Judul, Pengarang, Penerbit dan Tahun
4. Buat method cetakBuku
5. Buat class BukuDemo dan tampilkan 2 buku:
 Pemrograman Berbasis Objek dengan Java,
Indrajani, Elexmedia Komputindo, 2007
 Dasar Pemrograman Java, Abdul Kadir, Andi Offset,
2004

47

Inheritance (Pewarisan)
 Reusability
 Top down:
 Being more specific
 Bottom Up:
 Find similiarity
 Java Keyword:
extends

48

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Bicycle.java
class Bicycle {
int speed = 0;
int gear = 0;

// method
void changeGear(int newValue) {
gear = gear + newValue;
System.out.println(" \nGear:" + gear);
}
void speedUp(int increment) {
speed = speed + increment;
System.out.println(" \nSpeed:" + speed);
}
49
}

MountainBike.java
class MountainBike extends Bicycle {

int seatHeight;

public void setHeight(


setHeight(int newValue)
newValue) {
seatHeight = newValue;
newValue;
System.out.println(“Seat Height:”+seatHeight);
}
}

50

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

MountainBikeDemo.java
class MountainBikeDemo {
public static void main(String[] args) {
// Membuat object
MountainBike mbike = new MountainBike();

// Memanggil method di object


mbike.speedUp(10);
mbike.changeGear(2);
mbike.setHeight(20);
}
}

51

Tugas

 Buat class Mobil2BMW yang merupakan inherit


dari class Mobil2
 Tambahkan method nontonTV() yang
menampilkan tulisan di layar:
 TV dihidupkan
 TV mencari channel
 TV menampilkan gambar
 Buat class Mobil2BMWDemo yang memanggil
method nontonTV, hidupkanMobil,
matikanMobil, ubahGigi
52

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Konsep Lanjut
Pemrograman
Berorientasi Obyek

53

Polymorphism

 Polymorphism:: Suatu object dapat memiliki


Polymorphism
berbagai bentuk, sebagai object dari classnya
sendiri atau object dari superclassnya
 Overloading:: Penggunaan satu nama untuk beberapa
Overloading
method yang berbeda (beda parameter)
 Overriding:
Overriding: Terjadi ketika deklarasi method subclass
dengan nama dan parameter yang sama dengan
method dari superclassnya

54

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Polymorphism - Overloading 1
class Mobil { public class Konstruktor{
private String warna; public static void main(String[] args){
private int tahunProduksi; Mobil mobilku = new Mobil(“Merah”,
2003);
public Mobil(String warna, int
mobilku.info();
tahunProduksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi; Mobil mobilmu
mobilmu = new Mobil();
} mobilmu.
mobilmu.info();
mu.info();
}
public Mobil(){ }
}

public void info(){


System.out.println("Warna: " +
this.warna);
System.out.println("Tahun: " +
this.tahunProduksi);
}
}
55

Polymorphism - Overriding
//Filename: Point2D.java // continue class Point decl
declaration
claration
public class Point2D{ // getter method
int x, y; // member variable int getX()
getX() { return x; }
int getY()
getY() { return y; }
public Point2D() {
x=0;
x=0; y = 0;
0; // overide method from class Object
} public String toString(){
toString(){
public Point2D(int
Point2D(int nx,
nx, int ny){
ny){ return “x: “+x “, y: “+y;
setPoint(
setPoint(nx,
nx, ny);
ny); }
} }

// setter method
public setPoint(
setPoint(int nx,
nx, int ny){
ny){
x = nx;
nx;
y = ny;
ny;
}

56

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Tugas

1. Kembangkan class Matematika dan


MatematikaDemo
2. Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian,
pembagian) . Method baru adalah bertipe data
double (pecahan) dan memiliki 3 parameter
3. Uji di kelas MatematikaDemo dengan parameter
pecahan: 12.5, 28.7, 14.2
Misalnya: pertambahan(12.5,
pertambahan(12.5, 28.7, 14,2)

57

Tugas:

1. Kembangkan class Buku dan BukuDemo


2. Selain konstruktor class Buku dengan
parameter: Judul, Pengarang, Penerbit dan
Tahun, buat konstruktor lagi dengan
parameter:
parameter: Judul, Pengarang saja
3. Panggil kedua konstruktor class Buku tadi
dari class BukuDemo

58

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Packages

 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
 Keyword: package name;
Keyword:
59

Budi.java

package kelasku;

public class Budi{


public void info(){
System.out.println(“Kelas Budi”);
}
}

60

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Joko.java

package kelasku;

public class Joko{


public void info(){
System.out.println(“Kelas Joko”);
}
}

61

TesPaket.java
import kelasku.Budi;
import kelasku.Joko;

public class TesPaket{


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

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Tugas

 Paketkan berbagai class yang kita buat


(Mobil dan Bicycle)
Bicycle) dalam package
Transportasi
 Panggil dari class lain
(TransportasiDemo.java)
TransportasiDemo.java) dengan import

64

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Interface

 Interface digunakan apabila kita ingin


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

65

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

public abstract void hidupkan();


hidupkan();
public abstract void matikan();
matikan();
}

66

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

class Lampu implements IntLampu{


IntLampu{
private 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");
}}} 67

public class TesInterface {


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

68

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Tugas

 Buat program serupa dengan


TesInterface.java tapi untuk AC
 Masukkan method-
method-method di bawah ke
dalam TesInterface.java
 matikanAC dan hidupkanAC
 setSuhuDingin, setSuhuSejuk dan setPanas

69

Java API untuk Referensi


Pemrograman

70

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

http://romisatriawahono.net romi@romisatriawahono.net
Object-Oriented Programming with Java, Universitas Dian Nuswantoro, Semarang, 14-15 September 2007

Romi Satria Wahono


 SDN Sompok Semarang (1987)
 SMPN 8 Semarang (1990)
 SMA Taruna Nusantara Magelang (1993)
 S1, S2 dan S3 (on-
(on-leave) dari Department of
Computer Sciences, Saitama University,
University, Japan
(1994-
(1994-2004)
 Competence: Software Engineering,
Engineering,
Network Engineering, eLearning System,
Knowledge Management
 Peneliti di Lembaga Ilmu Pengetahuan Indonesia
 Founder dan Koordinator IlmuKomputer.Com
73

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

Anda mungkin juga menyukai