ObjectObj t-Oriented Object O i t d Programming P i (OOP) Romi Satria Wahono
[email protected] http //romisatriawahono net http://romisatriawahono.net HP: 08780878-80480485 YM: YM romi_sw r mi s
Romi Satria Wahono
Lahir di Madiun, 2 Oktober 1974 SD Sompok Semarang (1987) SMPN 8 Semarang g (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 C C Competence: t Software S ft E i Engineering, Engineering i , eLearning L i System, Knowledge Management Founder dan Koordinator IlmuKomputer.Com l CEO PT Brainmatics Cipta p Informatika
Materi 1.
OOP Concepts: Concepts:
2.
Java Fundamentals: Fundamentals:
3 3.
Java Advanced: Advanced:
4.
Java GUI: GUI:
5.
Java GUI with Netbeans: Netbeans:
K Konsep p dan d P Paradigma di Object ObjectObj t-Oriented Oi t d Memahami Sintaks dan Grammar Bahasa Java Eksepsi, Thread, Java API Swing, GUI Component, Event Handling Mengembangkan Aplikasi Berbasis GUI dengan Java
OOP Concepts
Materi Diskusi 1.
Konsep Pemrograman dan Paradigmanya:
Tingkat Bahasa h Pemrograman, Paradigma Pemrograman, 2.
Teknologi Java dan Perangkat Pemrograman: Pemrograman: Java Family, Perangkat, Perangkat, Instalasi Instalasi,, Kompilasi
3.
Konsepp Dasar Pemrograman g Berorientasi Objek: Objek j : Class, Object, Attribute, Method, Constructor
4.
Karakteristik Pemrograman g Berorientasi Objek: Objek j :
Abstraction, Encapsulation, Inheritance, Polymorphisme 5.
Pengorganisasian g g Class: Package, Interface
Konsep p Pemrograman g dan Paradigmanya
Bahasa Pemrograman?
Komputer bekerja j seperti switching g dan hanya y mengenali 0 dan 1 Manusia tidak (paham) berbicara dengan bahasa 0 dan 1 P l bahasa Perlu b h pemrograman p g yang g dapat d p t menjadi j di perantara percakapan antara komputer dan manusia Bahasa ppemrograman g diubah ke dalam bahasa yang dipahami oleh komputer dengan menggunakan mengg na an inte interpreter p ete ata atau kompiler mpi e
Compiler or Interpreter? Compiler: p
Mengkompilasi source code menjadi bentuk file f l yang bisa dieksekusi Interpreter: Mengkompilasi g p dan menjalankan j source code secara langsung
C Language
#include <<stdio.h stdio.h>> main() main() { printf(“Hallo”); printf( Hallo ); }
C Program
C Compiler
0001010000 1100101000 0100010010 01010101010 1010010
Machine language program (executable “.exe” file)
Java Language javac
java
(Java Compiler)
(Java Interpreter)
Tingkat Bahasa Pemrograman Bahasa Pemrograman Tingkat Rendah (Assembler) Bahasa Pemrograman Tingkat Sedang (C, (C Pascal Pascal, Fortran) Bahasa Pemrograman g Tingkat g Tinggi gg (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) ObjectOb t-Oriented Object O t d Programming: Programming P : Koleksi K l k object b t yang saling berinteraksi . Class adalah unit pemrograman (J (Java, C# C#, C C++))
Teknologi Java dan Perangkat Pemrograman
Java Family, Perangkat Perangkat,, Instalasi, Instalasi, Kompilasi
Java Family Suite 1.
Java Standard Edition (Java SE SE))
2.
Java Enterprise Edition (Java EE EE))
3.
For desktop, client/server application
For ee--business business,, ee--commerce web based application
Java Micro Edition (Java ME) ME)
For small devices, like palm, handphone handphone,, etc
Java Certification
Perangkat Pemrograman Java 1.
Compiler (Interpreter): (Interpreter):
Java Standard Edition (JSE) 2.
Code Editor:
Text/Code Editor:
TextPad, Notepad++
Integrated Development Environment (IDE): Netbeans,, Eclipse, JCreator Netbeans
Catatan:
IDE mengintegrasikan Compiler, l Code Editor dan Visuall (GUI) Programming secara lengkap M t kkuliah Mata l h OOP ini menggunakan k IDE Netbeans N tb
Instalasi JSE dan Netbeans IDE 1. 2. 3. 4. 5.
Download Java Standard Edition (JSE) dari: htt // http://java.sun.com/javase/downloads/ / /d l d/ Instal Instalasi n a aasi JJSE d dengan ngan mengklik: m ng jdk--6u1 jdk 6u18 8-windowswindows-i586.exe Download D l d Netbeans N tb versii terbaru t b d i dari http://netbeans.org Instalasi Netbeans dengan mengklik: netbeans--6. netbeans 6 8-ml 6.8 ml--windows.exe windows exe Ikuti seluruh proses instalasi sampai selesai
Instalasi Text Editor dan Set Path Set path dan instalasi text editor diperlukan untuk yang mengembangkan aplikasi texttextbased dengan console 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 I t l text Instal t t editor dit untuk t k editing diti code: d textpad, notepad++, JCreator
How Java Works? Jalankan dengan: 1. C: C:\\>java Hello (Application (Application)) 2. Web Browser (Applet Applet))
public class Hello public static void main(String[] args args){ ){ System.out.println("Hello System.out.println y p ("Hello World!"); } }
Hello.java
javac (java compiler compiler)) Interpreter
Interpreter
Interpreter
Kompiler memproduksi Bytecode (Class)
Hello.class Write Once Run Everywhere !
Web Server
Interpreter
Compile and Run Java Applet import java.applet java.applet.*; .*; import java.awt.*; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello g.drawString( g.drawString ( ("Hello Hello world!",50,25); world!",50,25 world! ,50,25); ,50,25); } } C:\ C: \appletviewer Hello.html
C:\ C: \javac HelloWorld.java
<TITLE>A Simple Program Here is the output of my program: <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25>
Menulis Java Program
Bentuk p program: g 1. 2.
GUI Application menggunakan AWT atau Swing y GUI untuk library Textext-Based Console Application menggunakan a y nonnon-GUI d di Java a a library
Class Cl bisa b d dieksekusi k k karena k method th d main
public static void main(String[] args args)) Program Java mulai dari sini sini!!
Latihan: Tulis dan Compile Halo.java
public bl class l Halo{ l public static void main(String[] args){ args){ System.out.println(“Halo y p a Semarang”); aa g ; } }
Latihan: Membuat Program dg Netbeans
public class HelloWorld{ public p static a void d ma main(String[] n(S ng[] args){ args) a g ){ ){ System.out.println(“Halo Semarang”); } }
Konsep Dasar Pemrograman g Berorientasi Objek j
Class , Object, j Method, Attribute
Berorientasi Objek? Attribute: Topi, Baju, Tas Punggung, Jaket, Tangan, Kaki, Mata Behavior: h Cara Jalan ke Depan Cara Jalan l Mundur Cara Belok ke Kiri Cara Memanjat
Berorientasi Objek?
Att ib t (State): Attribute (St t )
Ban, Stir, Pedal Kopling/Gas/Rem, Warna, Warna Tahun Produksi
Behavior:
Cara Menghidupkan Mesin Cara Manjalankan Mobil Cara Memundurkan Mobil
Attribute Variable(Member) Behavior Method(Fungsi Method(Fungsi))
Latihan 1. 2.
Lakukan kegiatan berorientasi objek dengan target Sepeda Pikirkan apa atribut dan behavior yang di iliki oleh dimiliki l h Sepeda S d tersebut t b t
Perbedaan Class dan Object
Class: mobil Object: mobilnya pak Joko Joko, mobilku Class l seperti cetakan kue, kue, dimana kue yg dihasilkan dari cetakan kue itu adalah object j Warna kue bisa bermacam bermacam--macam meskipun berasal dari cetakan yang sama (object (object memiliki sifat independen) independen) Class adalah konsep dan deskripsi dari sesuatu Object adalah instance dari Class
Class = Method + Variable The Bicycle class
Object = Method + Variabel Bernilai
Bicycle dimodelkan sebagai sebuah object object::
10 mph, 90 rpm, 5th gear adalah instance variable changegears,, brake, changegears brake changecadence adalah instance method
Attribute
Variable yang mengitari class, dengan nilai Variable datanya bisa ditentukan di object Name,, age, dan weight adalah atribute dari Name class l Person P
Membuat Class, Object dan Memanggil Atribut public bl class l Mobil M bl{ String warna; int tahunProduksi; tahunProduksi } public bli class l Mobil MobilBeraksi M bilB bilBeraksi{ B k i{ i{ public static void main(String[] args){
Mobil.java
MobilBeraksi Mobil Beraksi.java .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); ); S t System.out.println("Tahun: t tl ("T h " + mobilku.tahunProduksi) mobilku.tahunProduksi); b lk t h P d k ); }}
Latihan: Membuat Program dg Netbeans 1 1. 2 2.
Buka Netbeans IDE Ikuti langkah berikut
UML - Class Diagram
Mobil ~ ~
tahunProduksi: int warna: String
MobilBeraksi +
main(String[]) : void
Method Method
adalah implementasi dari bagaimana g bekerjanya j y sebuah class
Method M th d 1. 2. 3 3.
melakukan: l k k
Manipulasi p data Perhitungan matematika Memonitor kejadian dari suatu event
Membuat dan Memanggil Method public class Mobil2{ String warna; Mobil2.java int tahunProduksi; void printMobil printMobil(){ l(){ System.out.println("Warna: " + warna); System.out.println( System out println("Tahun: Tahun: " + tahunProduksi); } } public bl class l Mobil2Beraksi{ bl Mobil2Beraksi.java public static void main(String[] args){
// Membuat object Mobil2 mobilku = new Mobil2();
/* memanggil atribut dan memberi nilai */ mobilku.warna = "Hitam"; mobilku.tahunProduksi mobilku tahunProduksi = 2006; mobilku.printMobil(); }}
UML - Class Diagram
Mobil2 ~ ~
tahunProduksi: int warna: String St i
~
printMobil() : void
Mobil2Beraksi +
main(String[]) : void
Latihan
Buat class MobilLengkap dan buat tiga method: th d hidupkanMobil() d p a ) matikanMobil() ubahGigi() b h () Isi masing masing--masing method dengan tampilan status menggunakan System.out.println() P Panggil il methodmethod th d-method th d diatas di t dari d i MobilLengkapBeraksi
Latihan:: Hasil Tampilan Latihan Mobil Hidup Mobil Mati Gigi Berubah b h
UML - Class Diagram
MobilLengkap ~ ~ ~
hidupkanMobil() : void matikanMobil() : void ubagGigi() : void
MobilLengkapBeraksi +
main(String[]) : void
Parameter -1
Bicycle akan berguna apabila ada object lain (misalnya anda anda)) yang berinterasi dengan Bicycle tersebut Object b software f berinteraksi b k dan d berkomunikasi b k k dengan d object lain dengan cara mengirimkan message Informasi dalam message ini dikenal dengan nama Parameter
Parameter -2-
1. You object pengirim 2. YourBicycle object penerima 3 3.
changeGears message berupa method yang dijalankan
4. lowerGear parameter yang dibutuhkan method (message) untuk dijalankan
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) { k kecepatan t = kecepatan+ k t pertambahanKecepatan; t b h K t System.out.println(" Kecepatan:" + kecepatan); } }
Membuat dan Memanggil Object (SepedaBeraksi.java SepedaBeraksi.java)) class SepedaBeraksi{ public static void main main(String[] (String[] args) { // Membuat object Sepeda sepedaku = new Sepeda(); Sepeda() //memanggil // ggil atribut t ib t dan d memberi b i nilai il i sepedaku.kecepatan=10; sepedaku.gir=2; d k i 2 // M Memanggill method th d d dan menunjuk k nilai l parameter t sepedaku.tambahKecepatan(30 sepedaku.tambahKecepatan( 30); ); sepedaku.ubahGir(3 sepedaku.ubahGir( d k b h (3); ) }}
UML - Class Diagram
Sepeda ~ ~
gir: int = 0 kecepatan: int = 0
~ ~
tambahKecepatan(int) : void ubahGir(int) : void
SepedaBeraksi +
main(String[]) : void
Latihan
Buat Class l bernama b Matematika Matematika, k , yang berisi b method dengan g dua parameter: parameter:
pertambahan(int operandSatu, pertambahan(int operandSatu, int operandDua operandDua)) pengurangan(int pengurangan( p g g int operandSatu, operandSatu p , int operandDua operandDua) p ) perkalian(int perkalian( int operandSatu, operandSatu, int operandDua operandDua)) pembagian((int ppembagian(( g int operandSatu, operandSatu p , int operandDua operandDua) p )
Buat Class bernama MatematikaBeraksi MatematikaBeraksi,, yang mengeksekusi method dan menampilkan:
Pertambahan: 20 + 20 = 40 pertambahan( pertambahan(20 20,20 ,20)) Pengurangan 10Pengurangan: 10-5 = 5 Perkalian: 10x20 = 200 P bagia 21/2 = 10 Pembagian:
UML - Class Diagram Matematika ~ ~ ~ ~
hasilBagi: double hasilKali: double hasilKurang: double hasilTambah: double
~ ~ ~ ~
pembagian(double, double) : double pengurangan(double, double) : double perkalian(double double) : double perkalian(double, pertambahan(double, double) : double
MatematikaApp +
main(String[]) : void
Konstruktor -1
Method yang digunakan untuk memberi nilai awal pada saat object diciptakan Dipanggill secara otomatis ketika k k new digunakan g untuk membuat instan class Sifat konstruktor:
Nama k konstruktor nstr kt r sama d dengan ngan nama class lass Tidak memiliki nilai balik dan tidak boleh ada k kunci kata k void d
Konstruktor -2class Mobil { String warna; int tahunProduksi;
M bil j Mobil.java
public Mobil(String warna, int tahunProduksi){ this.warna = warna; this.tahunProduksi h h = tahunProduksi; h } ppublic void d info(){ n ){ System.out.println("Warna: " + this.warna); System.out.println("Tahun: " + this.tahunProduksi); } } class a MobilKonstruktor{{ public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”, 2003); mobilku.info(); bilk i f () } MobilKonstruktor Mobil Konstruktor.java .java }
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; }
Class Acces Level Specifier
Class
Package
SubClass
private
no specifier f
protected
public
World
Latihan 1.
Buat class Buku
2.
Tentukan variable buku: judul, udul pengarang, engarang penerbit dan tahun Buat konstruktor class Buku dengan parameter: judul, udul pengarang, penerbit dan tahun Buat method cetakBuku
Buat class BukuBeraksi dan tampilkan 2 buku:
Pemrograman Berbasis Objek dengan Java, Indrajani, Elexmedia Komputindo, 2007 Dasar Pemrograman Java, Abdul Kadir, Andi Offset, 2006
Karakteristik Pemrograman g Berorientasi Objek j
Abstraction, Encapsulation, Inheritance, Polymorphism
Abstraction
Cara kita melihat suatu sistem dalam bentuk yang lebih l b h sederhana, sederhana d h , yaitu sebagai b suatu kumpulan subsistem (object) yang saling berinteraksi.
Mobil adalah d kumpulan p sistem pengapian, p g p , sistem kemudi, sistem pengereman
Object bersifat modular modularity ity.. Object dapat ditulis dan dimaintain terpisah (independen) dari object lain
Encapsulation
Mekanisme menyembunyikan suatu proses dalam sistem untuk menghindari interferensi dan menyederhanakan penggunaan sistem itu sendiri
Tongkat transmisi (gigi) pada mobil T b l on/off/pengaturan Tombol / ff/ t suhu h pada d AC
Inheritance (Pewarisan)
Suatu class dapat mewariskan i k atribut t ib t dan method kepada class l lain l i (subclass), ( b l ) serta membentuk class hi hierarchy h Penting untuk Reusability l Java Keyword: y
extends
Sepeda.java 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) { k kecepatan t = kecepatan+ k t pertambahanKecepatan; t b h K t System.out.println("Kecepatan:" + kecepatan); } }
Class SepedaGunung Mewarisi Class Sepeda class l SepedaGunung S d G extends t d Sepeda S d { Sepeda{
class l SepedaGunungBeraksi S d G B k { public static void main(String[] args) { // Membuat object j SepedaGunung sepedaku = new SepedaGunung();
public void ssetSadel etSadel((int nilaiSadel) nilaiSadel) { System.out.println(“Tinggi Sadel:”+ nilaiSadel);
// Memanggil method di object sepedaku.tambahKecepatan(10); sepedaku.ubahGir(2); sepedaku.setSadel(20); l
} }
} }
SepedaGunung java SepedaGunung.java
SepedaGunungBeraksi.java SepedaGunungBeraksi java
UML – Class Diagram Sepeda ~ ~
gir: int = 0 kecepatan: int = 0
~ ~
tambahKecepatan(int) : void ubahGir(int) : void
SepedaGunung +
setSadel(int) : void
SepedaGunungBeraksi +
main(String[]) : void
Latihan
Buat class MatematikaCanggih yang merupakan inherit h d class dari l Matematika k
Tambahkan method modulus modulus((int a, int b) y yang g menghitung modulus dari a dan b. Operator modulus adalah %
Buat class MatematikaCanggih MatematikaCanggihBeraksi Beraksi yang memanggil a gg method d ppertambahan pertambahan, a a a , pperkalian a a da dan modulus
UML – Class Diagram Matematika ~ ~ ~ ~
hasilBagi: double hasilKali: double hasilKurang: double hasilTambah: double
~ ~ ~ ~
pembagian(double, double) : double pengurangan(double, double) : double perkalian(double, k li (d bl d double) bl ) : d double bl pertambahan(double, double) : double
MatematikaBeraksi +
MatematikaCanggih gg ~
modulus(double, double) : double
main(String[]) : void
Polymorphism Suatu object dapat memiliki berbagai b bentuk, sebagai b object b dari classnya l sendiri atau object dari superclassnya 1. 2.
Overloading: Penggunaan satu nama untuk Overloading: beberapa method yang berbeda parameter Overriding:: Terjadi ketika deklarasi method Overriding subclass b l persis i sama dengan d method th d dari d i superclassnya
Polymorphism – Overloading class l Mobil M bl{ String warna; int tahunProduksi; public Mobil(String warna, int tahunProduksi){ thi this.warna = warna; this.tahunProduksi = tahunProduksi; } public Mobil(){ } void info(){ System.out.println("Warna: " + this.warna); h ) System.out.println("Tahun: " + this.tahunProduksi); } }
public bl class l MobilKonstruktor{ M b lK t kt { public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”, 2003); mobilku.info(); Mobil mobilmu mobilmu = new Mobil(); mobilmu. mobil mu.info(); info(); } }
Polymorphism – Overloading class Lingkaran{ public pub ic buatLingkaran(){ buatLingkaran buatLingka an(){ an(){ } public p bli buatLingkaran(int b atLingkaran(int diam diameter) diameter){ t r){ r){ ... } public buatLingkaran(int p a ng a an( n diameter, d am , int n x,, int n y){ y){ ... } public buatLingkaran(int diameter, int x, int y, int warna String namaLingkaran){ warna, namaLingkaran){ ...
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) { k kecepatan t = kecepatan+ k t pertambahanKecepatan; t b h K t System.out.println("Kecepatan:" + kecepatan); } }
Class SepedaGunung Mewarisi Class Sepeda class l SepedaGunung S d G extends t d Sepeda S d { void ubahGir(int p pertambahanGir) { int gir= 2*(gir+ pertambahanGir ); ); System.out.println("Gir:" + gir); }
class l SepedaGunungBeraksi S d G B k { public static void main(String[] args) { // Membuat object j SepedaGunung sepedaku = new sepedaGunung();
// Memanggil method di object sepedaku.tambahKecepatan(10); sepedaku.ubahGir(2); sepedaku.setSadel(20); l
}
} }
SepedaGunung java SepedaGunung.java
SepedaGunungBeraksi.java SepedaGunungBeraksi java
Latihan 1. 2.
3. 4 4.
Kembangkan class Matematika dan MatematikaBeraksi Lakukan overloading pada Method yang ada (pertambahan, ( b h pengurangan, perkalian, k l pembagian) . Method baru adalah bertipe data double (pecahan) dan memiliki 3 parameter Uji di kelas MatematikaBeraksi dengan parameter pecahan: 12.5, 28.7, 14.2 Misalnya: Misalnya pertambahan(12.5, 28.7, 14.2) pertambahan(23, pertambahan t b h (23, (23 34)
Matematika.java class Matematika{ public void pertambahan (int a, int b){ b){ int hasilPertambahanBulat = a + b;; System.out.println(“hasil:” + hasilPertambahanBulat); } public void pertambahan (double a, double b, double c){ c){ double hasilPertambahanPecahan = a + b + c; System.out.println(“hasil:” + hasilPertambahanPecahan); } ... }
P Pengorganisasian i i Class Package, Interface
Packages
Package adalah koleksi dari beberapa class dan d iinterface t f yang berhubungan, b h b dan d menyediakan proteksi akses dan pengelolaan namespace 1 package adalah 1 subfolder di file system Package sangat berguna untuk mengorganisir file f l dalam l suatu project atau library y Nama package menggunakan lowercase Keyword: K Keyword d: package k name;
Budi.java package pa ag kelasku; a ; public class Budi{ p bli void public id info(){ i f (){ System.out.println(“Kelas System.out.println( Kelas Budi”); Budi ); } }
Joko.java package pa ag kelasku; a ; public class Joko{ p bli void public id info(){ i f (){ System.out.println(“Kelas System.out.println( Kelas Joko”); Joko ); } }
PaketBeraksi.java i import t kelasku.* kelasku. k l k *; public class PaketBeraksi{ public static void main(String[] args){ Budi objectBudi = new Budi(); objectBudi.info(); Joko objectJoko = new Joko(); objectJoko.info(); } }
Struktur Direktori PaketBeraksi.java PaketBeraksi java kelasku
Budi.java Joko.java
Interface Interface digunakan apabila kita ingin menentukan apa yang harus dilakukan oleh l h suatu class l tapi tidak k menentukan k bagaimana cara untuk melakukannya Interface sebenarnya sama dengan class, tapi hanya memiliki deklarasi method tanpa implementasi
IntLampu Int Lampu.java .java interface a InterfaceLampu{ InterfaceLampu a a p { public static final int KeadaanHidup KeadaanHidup=1; =1; public static final int KeadaanMati KeadaanMati=0 KeadaanMati=0; =0 =0;
}
public abstract void hidupkan hidupkan(); (); public abstract void matikan matikan(); ();
class Lampu implements InterfaceLampu InterfaceLampu{{ int statusLampu statusLampu=0; =0; 0;
Lampu.java
public void hidupkan hidupkan(){ (){ iff (this.statusLampu ((th th t t L this.statusLampu == KeadaanMati K d M t ){ KeadaanMati){ this.statusLampu = KeadaanHidup KeadaanHidup;; System.out.println Sy System.out.println(" m p n n( n(("Hidupkan Hidupkan d p an Lampu! Lampu amp ! --> --> Lampu amp Hidup Hidup"); d p"); ); }else{ System.out.println(" System.out.println ("Hidupkan Hidupkan Lampu! Lampu! --> --> Lampu Sudah Hidup Kok");} Kok ");} );} } public bl void matikan matikan(){ (){ if (this.statusLampu (this.statusLampu == KeadaanHidup KeadaanHidup){ ){ this statusLampu = KeadaanMati this.statusLampu KeadaanMati;; System.out.println(" System.out.println ("Matikan Matikan Lampu! Lampu! --> --> Lampu Mati Mati"); "); }else{ S t System.out.println(" System.out.println t tl ("Matikan ("M (" M t k Lampu Matikan L Lampu! ! --->> Lampu L S d h Mati Sudah M t Kok K Kok"); k"); k") ") }}}
LampuBeraksi.java
public class Lampu LampuBeraksi Beraksi{{ 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 lampuKamar.hidupkan(); lampuKamar.hidupkan (); //Hidupkan //Hidupkan Lampu lampuKamar.hidupkan(); lampuKamar.hidupkan (); // //Hidupkan Hidupkan Lampu
UML – Class Diagram + +
«interface» InterfaceLampu KeadaanHidup: int = 1 {readOnly} KeadaanMati: int = 0 {readOnly}
+ +
hidupkan() hid k () : void id matikan() : void LampuBeraksi +
Lampu ~
statusLampu: int = 0
+ +
hidupkan() : void matikan() : void
main(String[]) : void
Latihan Buat program serupa dengan InterfaceBeraksi.java j tapi p untuk ACBeraksi.java Masukkan M kk methodmethod th d-method th d di bawah b h ke k dalam ACBeraksi.java j
matikanAC() dan hidupkanAC() dinginkanAC() d k AC() dan d panaskanAC k AC ()
Referensi -1
Sharon Zakhour et al, The Java Tutorial Fourth Edition,, http://java.sun.com/docs/books/tutorial Edition http //java sun com/docs/books/tutorial Deitel & Deitel, Java How to Program Sixth Edition Edition,, P t Hall, Prentice H ll 2004 Kathy Sierra & Bert Bates, Head First Java 2nd Edition,, O’Reilly, 2005 Edition Rogers g Cadenhead d d & Laura Lemay, y, Teach Yourself Java 6 in 21 Days, Days, Sams Publishing, 2007 Robert Lafore Lafore,, Data Structures and Algorithms in Java Second Edition, Edition, Sams Publishing, 2003
Referensi -2
Tim Pengembang JENI, JENI 11-6, Depdiknas, 2007 Abdul Kadir, Dasar Pemrograman Java 2, 2, Penerbit Andi, A d 2004 Indrajani dan Martin, Pemrograman Berbasis Objek dengan Java, Java, Elex Media Komputindo, 2007 LN Harnaningrum, Harnaningrum g , Algoritma g dan Pemrograman d g Java,, Graha Ilmu, Java Ilmu, 2009 Rachmad Hakim & Sutarto Sutarto,, Mastering Java, Java, Elex Media Komputindo Komputindo,, 2009