Uploaded by upaysocial

romi-oop-01-oopconcepts

advertisement
Object-Oriented Programming
Object-Oriented
ObjectProgramming (OOP)
Romi Satria Wahono





Romi Satria Wahono
romi@romisatriawahono.net
http://romisatriawahono.net
HP: 08780878-80480485
YM: romi_sw
Mata Kuliah OOP - Kontrak




University.RomiSatriaWahono.Net
Download dan pahami seluruh Materi Utama
Diskusi dan bimbingan bisa lewat email, YM, SMS atau Phone
Untuk kelas konvensional, tidak wajib datang tapi tidak ada
bahasan ulangan dan wajib membawa laptop ke kelas
Penilaian Mata Kuliah:




Proses Pembelajaran:



Lahir di Madiun, 2 Oktober 1974
SD Sompok Semarang (1987)
SMPN 8 Semarang (1990)
SMA Taruna Nusantara,
Nusantara, Magelang (1993)
S1,
S1 S2 dan S3 (on(on-leave) dari Department of Computer
Sciences, Saitama University,
University, Japan (1994
(1994--2004)
Core Competence: Software Engineering,
Engineering, eLearning
System, Knowledge Management
Founder dan Koordinator IlmuKomputer.Com
CEO PT Brainmatics Cipta Informatika
Nilai ratarata-rata dari seluruh tugas (laporan dan project)
Pengumpulan tugas: University.RomiSatriaWahono.Net
Materi Kuliah dan Pengiriman Tugas:



Materi kuliah, bahan referensi dan tugas tersedia di:
http://university.romisatriawahono.net
Course Name: Object
Object--Oriented Programming
Enrolment Key: oop
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
My Schedule and Contact Lines
Mata Kuliah OOP - Materi
1.
OOP Concepts:
Concepts:
2.
Java Fundamentals:
Fundamentals:
3
3.
Java Advanced:
Advanced:
4.
Java GUI:
GUI:
5.
Java GUI with Netbeans:
Netbeans:
Konsep dan Paradigma ObjectObject-Oriented
Memahami Sintaks dan Grammar Bahasa Java
Eksepsi, Thread, Java API
Swing, GUI Component, Event Handling
Mengembangkan Aplikasi Berbasis GUI dengan Java
Materi Diskusi
OOP Concepts
1.
Konsep Pemrograman dan Paradigmanya:
Tingkat Bahasa Pemrograman, Paradigma Pemrograman,
Tool Pemrograman
2.
Konsep Dasar Pemrograman Berorientasi
Oby
Ob
yek
ek::
Kelas
K
l (Cl
(Class),
) Ob
Obyek
k (Obj
(Object),
t) P
Pengkapsulan
k
l
(Encapsulation), Pewarisan (Inheritance), 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




Compiler or Interpreter?
 Compiler:
Mengkompilasi source code
menjadi bentuk file yang bisa
dieksekusi
 Interpreter:
Mengkompilasi dan menjalankan
source code secara langsung
C Language
C Program
http://romisatriawahono.net
Assembly Language
LDA #47
STA $570
$570
DEX
JSR $817
CPX #0
BNE #14
y language
g g program
p g
Assembly
Translation
program
(Assembler)
00010100
001100101
00001000
100100101
010101010
10010
Machine language program
(executable file)
Java Language
#include <<stdio.h
stdio.h>>
main()
main()
{
printf(“Hall ”)
printf(“Hallo”);
}
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
C Compiler
0001010000
1100101000
0100010010
01010101010
1010010
javac
java
(Java Compiler)
(Java Interpreter)
Machine language program
(executable “.exe” file)
romi@romisatriawahono.net
Object-Oriented Programming
Tingkat Bahasa Pemrograman
Bahasa Pemrograman Tingkat Rendah
(Assembler)
 Bahasa Pemrograman Tingkat Sedang
(C Pascal
(C,
Pascal, Fortran)
 Bahasa Pemrograman Tingkat Tinggi
(Java, C++, C#)
Paradigma Pemrograman
Sudut pandang dan style pemrograman
berhubungan dengan bagaimana sebuah masalah
diformulasikan dalam bahasa pemrograman




Functional Programming:
Programming: Urutan fungsi secara
sekuensial (Scheme,
(Scheme Lisp)
Procedural Programming:
Programming: Pemecahan masalah
berdasarkan prosedural kerja yg terkumpul dalam unit
pemrograman bernama fungsi (C, Pascal)
Object--Oriented Programming
Object
Programming:: Koleksi object yang
saling berinteraksi . Class adalah unit pemrograman
(Java, C#, C++)
Tool Pemrograman Java
Install, Compile and
Running Java
1.
Compiler (Interpreter):
(Interpreter):
Java Standard Edition (JSE)
2.
Text/Code Editor:
Editor:
TextPad, Notepad++
3.
Integrated
g
Development
p
Environment (IDE):
Netbeans,, Eclipse, JCreator
Netbeans
Catatan:


Java Family Suite

Java Standard Edition
(Java SE)
SE)

1.
2.
Java Enterprise Edition
(Java EE
EE))
3.


Instalasi JSE dan Netbeans
For desktop, client/server
application

For ee--business,
business, ee--commerce
web based application
Java Micro Edition
(Java ME
ME))

For small devices,
devices, like
palm, handphone
handphone,, etc
http://romisatriawahono.net
IDE mengintegrasikan Compiler, Code Editor dan Visual
(GUI) Programming secara lengkap
Mata kuliah OOP ini menggunakan IDE Netbeans
4.
5.
Download Java Standard Edition (JSE) dari:
http://java.sun.com/javase/downloads/
Instal JSE dengan mengklik:
jdk--6u11
jdk
6u11--windowswindows-i586
i586--p.exe
D
Download
l dN
Netbeans
tb
versii terbaru
t b
dari
d i
http://netbeans.org
Instalasi Netbeans dengan mengklik:
netbeans--6.5netbeans
6.5-mlml-windows.exe
Ikuti seluruh proses instalasinya sampai
selesai
romi@romisatriawahono.net
Object-Oriented Programming
Instalasi Text Editor dan Set Path
Set path dan instalasi text editor diperlukan
untuk yang mengembangkan aplikasi text
text-based dengan console
How Java Works?
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!");
}
}
Hello.java
javac (java compiler)
compiler)
1.
2.
Klik Start Control Panel  System 
Advanced Environment Variables dan set
system PATH:
;C:\
C:\Program Files
Files\\Java\
Java\jdk1.6.0_
jdk1.6.0_11
11\\bin
Instal text editor untuk editing code:
textpad, notepad++, JCreator
Interpreter
Interpreter
import java.applet
java.applet.*;
.*;
import java.awt.*;
Hello.class

Class bisa dieksekusi karena method main
public static void main(String[] args)
args)
 Program Java mulai dari sini!
sini!
C:\
C:
\appletviewer Hello.html

<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>
Latihan: Tulis dan Compile Halo.java
public class Halo{
public static void main(String[] args){
args){
System.out.println(“Halo Semarang”);
}
}
http://romisatriawahono.net
Web Server
Menulis Java Program
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello
g.drawString
("Hello world!",50,25
world!",50,25);
);
}
}
C:\
C:
\javac HelloWorld.java
Interpreter
Kompiler memproduksi
Bytecode (Class)
Write Once Run Everywhere !
Compile and Run Java Applet
Interpreter
Bentuk program:
1.
2.
GUI Application  public class biasanya
menggunakan Frame (AWT), Jframe(Swing)
Jframe(Swing)
Textext-Based Console Application  public class
adalah class yang sederhana
Latihan: Membuat Program dg Netbeans
public class HelloWorld{
public static void main(String[] args){
args){
System.out.println(“Halo Semarang”);
}
}
romi@romisatriawahono.net
Object-Oriented Programming
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Konsep Dasar
Pemrograman
Berorientasi Objek
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
Berorientasi Objek?
Attribute (State):
Ban, Stir, Pedal Kopling/Gas/Rem,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Latihan
1.
2.
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))
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Karakteristik OOP -1
Abstraction:Cara kita melihat suatu sistem
Abstraction:Cara
dalam bentuk yang lebih sederhana,
sederhana, yaitu
sebagai suatu kumpulan subsistem (object)
yang saling berinteraksi.


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
Karakteristik OOP -2
Encapsulation: Mekanisme menyembunyikan
Encapsulation:
suatu proses dalam sistem untuk menghindari
interferensi dan menyederhanakan penggunaan
sistem itu sendiri


http://romisatriawahono.net
Tongkat transmisi (gigi) pada mobil
Tombol
T b l on/off/pengaturan
/ ff/
t
suhu
h pada
d AC
romi@romisatriawahono.net
Object-Oriented Programming
Karakteristik OOP -3
Inheritance: Suatu class dapat mewariskan
Inheritance:
atribut dan method kepada class lain (subclass),
serta membentuk class hierarchy
Karakteristik OOP -4
Polymorphism:: Suatu object dapat memiliki
Polymorphism
berbagai bentuk,
bentuk, sebagai object dari classnya
sendiri atau object dari superclassnya


Perbedaan Class dan Object


Class = Method + Variable
The Bicycle class
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

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
Object = Variabel dan Method Bernilai
Attribute
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::


10 mph, 90 rpm, 5th gear adalah instance variable
changegears,, brake, changecadence adalah instance method
changegears
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Membuat Class, Object dan Memanggil Atribut
class Mobil {
String warna;
int tahunProduksi;
}
public class MobilBeraksi{
public static void main(String[] args){
Latihan: Membuat Program dg Netbeans
Mobil.java
1.
MobilBeraksi.java
2.
Buka Netbeans IDE
Ikuti langkah berikut
// 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);;
}}
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Method
 Method
adalah implementasi dari
bagaimana bekerjanya sebuah class
 Method
M th d
1.
2.
3.
http://romisatriawahono.net
melakukan:
l k k
Manipulasi data
Perhitungan matematika
Memonitor kejadian dari suatu event
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){


Kembangkan Class Mobil2
Ubah nama class menjadi MobilLengkap dan
tambahkan method:



// Membuat object

Mobil2 mobilku = new Mobil2();
/* memanggil atribut dan memberi nilai */

mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
hidupkanMobil()
matikanMobil()
mati anM bi ()
ubahGigi()
Isi masing
masing--masing method dengan tampilan
status menggunakan System.out.println()
Panggil methodmethod-method diatas dari
MobilLengkapBeraksi
}}
Message dan Parameter -1

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
Membuat Class (Sepeda.java
(Sepeda.java))
class Sepeda{
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int
ubahGir(int pertambahanGir)
pertambahanGir) {
gir= gir+ pertambahanGir;
pertambahanGir
System.out.println(" Gir:" + gir);
}
void tambahKecepatan(int
tambahKecepatan(int pertambahanKecepatan)
pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println(" Kecepatan:" + kecepatan);
}
}
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Membuat dan Memanggil Object
(SepedaBeraksi.java
SepedaBeraksi.java))
Latihan

class SepedaBeraksi{
public static void main
main(String[]
(String[] args) {
// Membuat object
Sepeda sepedaku = new Sepeda();
Buat Class bernama Matematika
Matematika,, yang berisi
method dengan dua parameter:
parameter:




//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:

// Memanggil method dan menunjuk nilai parameter
sepedaku.tambahKecepatan(30
sepedaku.tambahKecepatan(
30);
);
sepedaku.ubahGir(33);
sepedaku.ubahGir(
pertambahan(int a,
pertambahan(int
a, int b)
b)
pengurangan(int
pengurangan(
int a,
a, int b)
b)
perkalian(int
perkalian(
int a,
a, int b)
b)
pembagian(int
ppembagian(
g
int a,
a, int b)
b)



Pertambahan: 20 + 20 = 40 pertambahan(
pertambahan(20
20,20
,20))
Pengurangan: 1010-5 = 5
Perkalian: 10x20 = 200
Pembagian: 21/2 = 10
}}
Tips Membuat Class
Class
1 file bisa berisi lebih dari satu class.
class. Tapi
lebih baik dan mudah dipahami apabila
satu file berisi hanya satu class
 1 file hanya
y dapat
p berisi 1 public
p
class.
Nama file harus sama dengan nama
public class
 Java menganut casease-sensitive
Kata Kunci this
Digunakan pada pembuatan class dan
digunakan untuk menyatakan object sekarang

Konstruktor -1


Method yang digunakan untuk memberi
nilai awal pada saat object diciptakan
Dipanggil secara otomatis ketika new
g
untuk membuat instan class
digunakan
Sifat konstruktor:


Nama konstruktor sama dengan nama class
Tidak memiliki nilai balik dan tidak boleh ada
kata kunci void
http://romisatriawahono.net
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;
}
Konstruktor -2class Mobil {
String warna;
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 MobilKonstruktor{
public static void main(String[] args){
Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
}}
romi@romisatriawahono.net
Object-Oriented Programming
Class Acces Level
Specifier
Class
Package
Latihan
SubClass
private

no specifier
f


protected



public



World

4.
5.


Reusability
Top down:



Pemrograman Berbasis Objek dengan Java, Indrajani,
Elexmedia Komputindo, 2007
Dasar Pemrograman Java, Abdul Kadir, Andi Offset,
2006
Sepeda.java
class Sepeda{
int kecepatan = 0;
int gir = 0;
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:


2.
3.
Inheritance (Pewarisan)

Buat class Buku
Tentukan variable buku: Judul, Pengarang,
Penerbit dan Tahun
Buat konstruktor class Buku dengan parameter:
Judul, Pengarang,
g
g Penerbit dan Tahun
Buat method cetakBuku
Buat class BukuBeraksi dan tampilkan 2 buku:
1.
Find
ind similiarity
imi ia ity
Java Keyword:
extends
}
Class SepedaGunung Mewarisi Class Sepeda
class SepedaGunung extends Sepeda {
class SepedaGunungBeraksi {
public static void main(String[] args) {
// Membuat object
Latihan

SepedaGunung sepedaku = new sepedaGunung();
public void setSadel
setSadel((int nilaiSadel)
nilaiSadel) {
System.out.println(“Tinggi Sadel:”+ nilaiSadel);
// Memanggil method di object
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);
l
}
}

Buat class MobilBMW yang merupakan inherit
dari class MobilLengkap
Tambahkan method nontonTV() yang
menampilkan tulisan di layar:


}

}
SepedaGunung.java
http://romisatriawahono.net
SepedaGunungBeraksi.java

TV dihidupkan
TV mencari channel
TV menampilkan gambar
Buat class MobilBMWBeraksi yang memanggil
method nontonTV, hidupkanMobil,
matikanMobil, ubahGigi
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.
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();
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){
...
}
}
Mobil mobilmu
mobilmu = new Mobil();
mobilmu.info();
mobilmu.
info();
}
}
void info(){
System.out.println("Warna: " +
this.warna);
System.out.println("Tahun: " +
this.tahunProduksi);
}
}
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);
}
Overloading:
Overloading
l
: Penggunaan satu nama untuk
beberapa method yang berbeda parameter
Overriding:: Terjadi ketika deklarasi method
Overriding
subclass sama dengan method dari
superclassnya
Class SepedaGunung Mewarisi Class Sepeda
class SepedaGunung extends Sepeda {
void ubahGir(int pertambahanGir) {
int gir= 2*(gir+ pertambahanGir );
);
System.out.println("Gir:" + gir);
}
class SepedaGunungBeraksi {
public static void main(String[] args) {
// Membuat object
SepedaGunung sepedaku = new sepedaGunung();
// Memanggil method di object
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);
l
}
}
}
SepedaGunung.java
SepedaGunungBeraksi.java
}
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
1.
2.
3.
4.
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)
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
Nama package menggunakan lowercase
Keyword:: package name;
Keyword
Joko.java
package kelasku;
public class Joko{
p bli void
public
id iinfo(){
f (){
System.out.println(“Kelas Joko”);
}
}
http://romisatriawahono.net
Matematika.java
class Matematika{
int hasilPertambahanBulat;
double hasilPertambahanPecahan;
public void pertambahan (int a, int b){
b){
hasilPertambahanBulat = a + b;
System.out.println(“hasil:” + hasilPertambahanBulat);
}
public void pertambahan (double a, double b, double c){
c){
hasilPertambahanPecahan = a + b + c;
System.out.println(“hasil:” + hasilPertambahanPecahan);
}
...
Budi.java
package kelasku;
public class Budi{
p bli void
public
id iinfo(){
f (){
System.out.println(“Kelas Budi”);
}
}
PaketBeraksi.java
import kelasku.*;
public class PaketBeraksi{
public static void main(String[] args){
Budi objectBudi = new Budi();
objectBudi.info();
Joko objectJoko = new Joko();
objectJoko.info();
}
}
romi@romisatriawahono.net
Object-Oriented Programming
Struktur Direktori
Latihan
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))

 PaketBeraksi.java

 kelasku



Budi.java
Joko.java

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
 Interface sebenarnya sama dengan class,
tapi hanya memiliki deklarasi method
tanpa implementasi

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");
}}}
http://romisatriawahono.net
}
public
bli abstract
b t t void
id hidupkan
hid k ();
hidupkan();
()
public abstract void matikan
matikan();
();
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
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
Tugas Mandiri
Buat program serupa dengan
InterfaceBeraksi.java tapi untuk
ACBeraksi.java
 Masukkan
M kk methodmethod
th d-method
th d di bawah
b
hk
ke
dalam ACBeraksi.java




matikanAC() dan hidupkanAC()
dinginkanAC() dan panaskanAC ()


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
b h sendiri
bahasa
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
Java API untuk Referensi
Pemrograman
Java Documentation
Referensi -1



http://romisatriawahono.net
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
romi@romisatriawahono.net
Object-Oriented Programming
Referensi -2


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
http://romisatriawahono.net
romi@romisatriawahono.net
Download