Object-Oriented Programming

ObjectObject-Oriented Programming (OOP)
Romi Satria Wahono

Romi Satria Wahono
Lahir di Madiun, 2 Oktober 1974 SD Sompok Semarang (1987) SMPN 8 Semarang (1990) SMA Taruna Nusantara, Magelang (1993) Nusantara, S1, S2 da S3 (on-leave) da Department of Computer , dan (on- a dari pa p Sciences, Saitama University, Japan (1994-2004) University, (1994Core Competence: Software Engineering, eLearning Engineering, System, Knowledge Management PNS di Lembaga Ilmu Pengetahuan Indonesia Founder dan Koordinator IlmuKomputer.Com CEO PT Brainmatics Cipta Informatika
2

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

Mata Kuliah OOP - Kontrak
Pertemuan di Kelas:
Kuliah model tutoring, konsep diberikan dan langsung tutoring, praktek dilakukan Ketidakhadiran diperbolehkan, hanya tidak akan ada diperbolehkan, pengulangan bahasan bagi yang tidak hadir

Mata Kuliah OOP - Materi
1. 2. 3. 4.

OOP Concepts: Concepts:

Konsep Pemrograman dan paradigma Object-Oriented Object-

Java Fundamentals: Fundamentals: Java Ad J Advanced: Advanced: d Java GUI: GUI:
Eksepsi, Thread, Java API

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

Bagaimana Membuat Program dengan Java

Modul Kuliah dan Pengiriman Tugas:
eLearning System: http://university.romisatriawahono.net Course Name: Object-Oriented Programming ObjectEnrolment Key: oop
3 4

GUI Component, Swing, Event Handling

Materi Diskusi

OOP Concepts

1.

Konsep Pemrograman dan Paradigmanya:

Tingkat Bahasa Pemrograman, Paradigma Pemrograman, Tool Pemrograman
2.

Kelas (Class), Obyek (Object), Pengkapsulan (Encapsulation), Pewarisan (Inheritance), Keyword This (Encapsulation) (Inheritance) This, Constructor
3.

Konsep Dasar Pemrograman Berorientasi Obyek: Obyek:

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

5

6

http://romisatriawahono.net

romi@romisatriawahono.net

h> Translation program (Assembler) 00010100 001100101 00001000 100100101 010101010 10010 Machine language program (executable file) main() main() { printf(“Hallo”). C#) Assembly Language LDA #47 STA $570 $570 DEX JSR $817 CPX #0 BNE #14 Assembly language program y g g p g C Language #include <stdio. (C Pascal Fortran) Bahasa Pemrograman Tingkat Tinggi (Java. C++.h> <stdio.net . printf(“Hall ”) } C Compiler 0001010000 1100101000 0100010010 01010101010 1010010 C Program Machine language program (executable “. Pascal.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 Perlu b h p P l bahasa pemrograman yang dapat menjadi d p t j di perantara percakapan antara komputer dan manusia Bahasa pemrograman diubah ke dalam bahasa yang dipahami oleh komputer dengan menggunakan interpreter atau kompiler 8 7 Compiler or Interpreter? Compiler: Mengkompilasi source code menjadi bentuk file yang bisa dieksekusi Interpreter: Mengkompilasi dan menjalankan source code secara langsung 9 10 Tingkat Bahasa Pemrograman Bahasa Pemrograman Tingkat Rendah (Assembler) Bahasa Pemrograman Tingkat Sedang (C.exe” file) 11 12 http://romisatriawahono.net romi@romisatriawahono.

0_06\bin C:\ Files\Java\jdk1. Class adalah unit pemrograman (Java. Pascal) ObjectObject-Oriented Programming: Koleksi object yang Programming: saling berinteraksi . JCreator http://romisatriawahono. 18 4.com/javase/downloads/ Instal Java Standard Edition dengan mengklik: jdk-6u6-windows-i586jdk-6u6-windows-i586-p. 3. 3.net romi@romisatriawahono.sun. C#. 2. like devices.C:\Program Files\Java\jdk1. etc handphone. Download Java Standard Edition dari: http://java.6. Compiler (Interpreter): (Interpreter): Java Standard Edition (JSE) Text/Code Editor: Editor: TextPad. eweb based application Java Micro Edition (Java ME) ME) For small devices. Code Editor dan Visual (GUI) secara lengkap 15 16 Java Family Suite Java Standard Edition (Java SE) SE) For desktop. Lisp) (Scheme Procedural Programming: Pemecahan masalah Programming: berdasarkan prosedural kerja yg terkumpul dalam unit pemrograman bernama fungsi (C. 2.6. Notepad++ Integrated Development Environment (IDE): Netbeans.0_06\ Instal text editor untuk editing code: textpad. e-commerce e-business. JCreator (*) IDE mengintegrasikan Compiler. palm. handphone. 3 Java Enterprise Edition p (Java EE) EE) For e-business. notepad++.Object-Oriented Programming Java Language javac (Java Compiler) Paradigma Pemrograman java (Java Interpreter) Sudut pandang dan style pemrograman berhubungan dengan bagaimana sebuah masalah diformulasikan dalam bahasa pemrograman Functional Programming: Urutan fungsi secara Programming: sekuensial (Scheme. TextPad. Eclipse. C++) 13 14 Tool Pemrograman Java Install. Compile and Running Java 1.exe Klik Start Control Panel System Advanced Environment Variables dan set PATH: .net . client/server application Instalasi Java Standard Edition 1.

println("Hello World!").out.println(“Halo Semarang"). java. JOptionPane. public class HelloWorld extends Applet { public void paint(Graphics g) { g.java javac (java compiler) compiler) Interpreter Interpreter Interpreter Interpreter C:\ C:\appletviewer Hello. g. } } GUI application public class biasanya menggunakan Frame (AWT).Object-Oriented Programming How Java Works? public class Hello public static void main(String[] args){ args){ System. javax.25). } } Jalankan dengan: 1. public class Halo{ public static void main(String[] args){ args){ System.net . Jframe(Swing) Jframe(Swing) “Text based” Console Application public class adalah class yang sederhana 24 http://romisatriawahono.25). 2.swing.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML> public class Halo{ alo{ public static void main(String[] args){ args){ System.applet. } } Hello.out.*.out.html Kompiler memproduksi Bytecode (Class) C:\ C:\javac HelloWorld. C:\>java Hello (Application) C:\ 2. } } 21 22 Menulis Java Program Program harus punya method di public class: public static void main(String[] args) args) Latihan: Tulis dan Compile Halo.showMessageDialog(null.net romi@romisatriawahono.*.println(“Halo Semarang").class Write Once Run Everywhere ! Web Server <HTML> <HEAD> <TITLE>A Simple Program</TITLE> </HEAD> <BODY> Here is the output of my program: <APPLET CODE="HelloWorld.println(“Halo Semarang”).java Program Java mulai dari sini! sini! Bentuk program: 1.50.*.java Hello. "Halo Semarang"). Web Browser (Applet) Compile and Run Java Applet import java.swing.println("Hello System.out.applet.showMessageDialog(null.*.drawString("Hello world!".out. import java.*.drawString("Hello world!".50.awt. } } Menulis Program “Halo Semarang” Semarang” GUI Version “Halo Semarang” import javax. public class HaloGUI{ HaloGUI{ public static void main( String[] args ){ JOptionPane. System.

Tahun Produksi 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 Behavior 27 Variable(Member) Method(Fungsi) Method(Fungsi) 28 Karakteristik OOP -1Abstraction:Cara Abstraction:Cara kita melihat suatu sistem dalam bentuk yang lebih sederhana. Baju. Jaket. Tangan. sebagai suatu kumpulan subsistem (object) yang saling berinteraksi. 2. Mobil adalah kumpulan sistem pengapian. Mata Behavior: h Cara Jalan ke Depan Cara Jalan Mundur Cara Belok ke Kiri Cara Memanjat 25 26 Berorientasi Objek? Attribute (State): Behavior: Latihan 1. Kaki. sistem pengereman Modularity: Modularity: Sifat object adalah modular. sistem d p p g p . Warna. yaitu sederhana.net romi@romisatriawahono.Object-Oriented Programming Konsep Dasar Pemrograman Berorientasi Objek Berorientasi Objek? Attribute: Topi. Pedal Kopling/Gas/Rem. Ban. Tas Punggung.net . kemudi. Object dapat ditulis dan dimaintain terpisah (independen) dari object lain 29 30 http://romisatriawahono. Stir.

net . serta membentuk class hierarchy Karakteristik OOP -4Polymorphism: Polymorphism: Suatu object dapat memiliki berbagai bentuk.Object-Oriented Programming Karakteristik OOP -2Encapsulation: Encapsulation: Mekanisme menyembunyikan 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 T b l / ff/ t h d 31 32 33 34 Karakteristik OOP -3Inheritance: Inheritance: Suatu class dapat mewariskan atribut dan method kepada class lain (subclass).net romi@romisatriawahono. sendiri atau object dari superclassnya Overloading: Overloading: Penggunaan satu nama untuk beberapa method yang berbeda (beda parameter) Overriding: Overriding: Terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method dari superclassnya 35 36 http://romisatriawahono. sebagai object dari classnya bentuk.

dihasilkan dari cetakan kue itu adalah object Warna kue bisa bermacam-macam meskipun bermacamberasal dari cetakan yang sama (object memiliki (object sifat independen) independen) Object adalah instance dari Class 37 Class and Object -2Class = method+variable method+variable The Bicycle class Class dan Object -3- Attribute Attribute adalah berbagai variable yang mengitari class. changegears. System.out.warna). 2. dengan nilai datanya bisa ditentukan di object. mobilku.warna). int tahunProduksi. mobilku. Mobil.warna = "Hitam". 3.println("Warna: " + mobilku.println("Tahun: " + mobilku. dimana kue yg kue. adalah atribute dari class Person Bicycle dimodelkan sebagai sebuah object: object: 10 mph. 90 rpm. mobilku. System. Object dan Memanggil Atribut class Mobil { String warna.java // Membuat object Mobil mobilku = new Mobil(). /* memanggil atribut dan memberi nilai */ mobilku.tahunProduksi = 2006.java MobilBeraksi.Object-Oriented Programming Class dan Object -1Class: mobil Object: mobilnya pak Joko.tahunProduksi).tahunProduksi). Name.net . mobilku Class seperti cetakan kue.net romi@romisatriawahono. brake. 41 Manipulasi data Perhitungan matematika Memonitor kejadian dari suatu event }} http://romisatriawahono. 5th gear adalah instance variable changegears. age. } public class MobilBeraksi{ public static void main(String[] args){ Method Method adalah implementasi dari bagaimana bekerjanya sebuah class Method M th d melakukan: l k k 1.out. changecadence adalah instance method 39 Membuat Class. dan weight Name.

println("Warna: " + warna). lowerGear information from You to YourBicycle.printMobil(). } 47 48 } http://romisatriawahono. 43 Isi masing-masing method dengan tampilan masingstatus menggunakan System.println("Tahun: " + tahunProduksi).java public static void main(String[] args){ Latihan Kembangkan Class Mobil2 Ubah nama classs menjadi MobilLengkap dan masukkan method: hidupkanMobil() matikanMobil() matikanM bil() ubahGigi() // Membuat object Mobil2 mobilku = new Mobil2().out.net romi@romisatriawahono.out. the method to perform 2.java) class Sepeda{ int kecepatan = 0. You 3. Informasi dalam message ini dikenal dengan nama Parameter Message dan Parameter -2- 1. /* memanggil atribut dan memberi nilai */ mobilku.println(" Gir:" + gir). System.warna = "Hitam".out.out. mobilku.Object-Oriented Programming Membuat dan Memanggil Method class Mobil2{ String warna.println(" Kecepatan:" + kecepatan). Mobil2. YourBicycle changeGears 4.net . object pengirim (sender) (sender) object penerima (receiver) the message. the YourBicycle. void printMobil(){ printMobil(){ System. System. parameters needed by the method 45 46 Membuat Class (Sepeda.java int tahunProduksi. } void tambahKecepatan(int pertambahanKecepatan) { tambahKecepatan(int pertambahanKecepatan) kecepatan = kecepatan+ pertambahanKecepatan. System. } } public class Mobil2Beraksi{ bl l bl k Mobil2Beraksi. // method void ubahGir(int pertambahanGir) { ubahGir(int pertambahanGir) gir= gir+ pertambahanGir pertambahanGir.tahunProduksi = 2006.out.println() Panggil method-method diatas dari methodMobilLengkapBeraksi 44 }} Message dan Parameter -1Bicycle 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 . mobilku. int gir = 0.

kecepatan=10. method dengan dua parameter: parameter: pertambahan pengurangan perkalian p pembagian g Buat Class bernama MatematikaBeraksi. 2003).println("Warna: " + this.5 (float or double) 50 }} 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 sensitive case Tips: Lebih baik dan lebih mudah dipahami apabila satu file berisi hanya satu class 51 52 Kata Kunci this Digunakan pada pembuatan class dan digunakan untuk menyatakan object sekarang class Mobil{ String warna.warna = warna. void isiData(String warna. } } public class MobilKonstruktor{ public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”. int tahunProduksi){ this.tahunProduksi).ubahGir(3).out.net romi@romisatriawahono. yang berisi Matematika. this. int tahunProduksiMobil){ warna = warnaMobil. int tahunProduksi. mobilku.warna). sepedaku. yang MatematikaBeraksi.out.Object-Oriented Programming Membuat dan Memanggil Object (SepedaBeraksi.info().println("Tahun: " + this. Int tahunProduksi. } } class Mobil{ String warna.net . tahunProduksi = tahunProduksiMobil. mengeksekusi method dan menampilkan: Pertambahan: 20 + 20 = 40 Pengurangan: 10-5 = 5 10Perkalian: 10x20 = 200 Pembagian: 21/2 = 10. void isiData(String warnaMobil. }} 53 54 http://romisatriawahono.java) public class SepedaBeraksi{ public static void main(String[] args) { // Membuat object Sepeda sepedaku = new Sepeda(). public Mobil(String warna. System. //memanggil atribut dan memberi nilai // ggil t ib t d b i il i sepedaku. sepedaku. } public void info(){ System. int tahunProduksi){ this. this.gir=2. 49 Latihan Buat Class bernama Matematika.warna = warna. // Memanggil method dan menunjuk nilai parameter sepedaku. Konstruktor -1Method yang digunakan untuk memberi nilai awal pada saat object diciptakan Dipanggil secara otomatis ketika new g digunakan untuk membuat instan class Sifat konstruktor: Nama konstruktor sama dengan nama class Tidak memiliki nilai balik dan tidak boleh ada kata kunci void Konstruktor -2class Mobil { String warna.tahunProduksi = tahunProduksi.tahunProduksi = tahunProduksi. Int tahunProduksi.tambahKecepatan(30).

out.println("Gir:" + gir).out. Penerbit dan Tahun Buat method cetakBuku B h d kB k Buat class BukuBeraksi dan tampilkan 2 buku: Pemrograman Berbasis Objek dengan Java. Latihan Buat class MobilBMW yang merupakan inherit dari class MobilLengkap Tambahkan method nontonTV() yang menampilkan tulisan di layar: TV dihidupkan TV mencari channel TV menampilkan gambar // Memanggil method di object sepedaku. System. Pengarang. // method void ubahGir(int pertambahanGir) { gir= gir+ pertambahanGir pertambahanGir.setSadel(20). Indrajani. Elexmedia Komputindo.ubahGir(2). hidupkanMobil.tambahKecepatan(10). ubahGigi 60 59 http://romisatriawahono. } } } } class SepedaGunungBeraksi { public static void main(String[] args) { // Membuat object SepedaGunung sepedaku = new sepedaGunung(). } void tambahKecepatan(int pertambahanKecepatan) { kecepatan = kecepatan+ pertambahanKecepatan. Abdul Kadir. Pengarang. l SepedaGunung.java SepedaGunungBeraksi. Penerbit dan Tahun Buat konstruktor class Buku dengan parameter: Judul.Object-Oriented Programming Class Access Level Specifier private no specifier protected public 55 56 Latihan 1. System.println(“Tinggi Sadel:”+setSadel). Class Package SubClass World Buat class Buku Tentukan variable buku: Judul. matikanMobil.java class Sepeda{ int kecepatan = 0. 2.println("Kecepatan:" + kecepatan). System.out. public void setSadel(int nilaiSadel) { setSadel( nilaiSadel) setSadel = nilaiSadel.net romi@romisatriawahono. } 58 Bottom Up: Find similiarity ind imi ia ity Java Keyword: extends 57 } Class SepedaGunung Mewarisi Class Sepeda class SepedaGunung extends Sepeda { int setSadel. 5. 4. sepedaku. Andi Offset. nilaiSadel. 3. int gir = 0. sepedaku.java Buat class MobilBMWBeraksi yang memanggil method nontonTV.net . 2007 Dasar Pemrograman Java. 2006 Inheritance (Pewarisan) Reusability Top down: Being more specific Sepeda.

sepedaku. int tahunProduksi. } } public class MobilKonstruktor{ public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”. 2003).println("Warna: " + this.Object-Oriented Programming Konsep Lanjut Pemrograman Berorientasi Objek Obj Polymorphism Polymorphism: Polymorphism: Suatu object dapat memiliki berbagai bentuk. int gir = 0.out. int y){ y){ . int x. l SepedaGunung.setSadel(20).net .println("Kecepatan:" + kecepatan).out.println("Gir:" + gir)..info(). // method void ubahGir(int pertambahanGir) { gir= gir+ pertambahanGir pertambahanGir. int x. } public Mobil(){ } void info(){ System. mobilku.out. public Mobil(String warna. System.tahunProduksi). mobilmu.java } 66 http://romisatriawahono. int warna. } } Polymorphism . Overloading: Penggunaan satu nama untuk Overloading: l beberapa method yang berbeda parameter Overriding: Overriding: Terjadi ketika deklarasi method subclass sama dengan method dari superclassnya 61 62 Polymorphism – Overloading class Mobil { String warna.println("Gir:" + gir).info(). Mobil mobilmu = new Mobil(). void ubahGir(int pertambahanGir) { gir= 2*(gir+ pertambahanGir ). System.info().tambahKecepatan(10). System. 2.ubahGir(2). } void tambahKecepatan(int pertambahanKecepatan) { kecepatan = kecepatan+ pertambahanKecepatan.tahunProduksi = tahunProduksi. } } } } class SepedaGunungBeraksi { public static void main(String[] args) { // Membuat object SepedaGunung sepedaku = new sepedaGunung().println("Tahun: " + this.out. // Memanggil method di object sepedaku. } } 63 64 Contoh Lain Overloading class Lingkaran{ public buatLingkaran(int diameter){ diameter){ . } public buatLingkaran(int diameter.warna = warna.out. mobilmu mobilmu.warna). sebagai object dari classnya sendiri atau object dari superclassnya 1. int y... System.. this..java SepedaGunungBeraksi. int tahunProduksi){ this. } public buatLingkaran(int diameter. sepedaku.Overriding class Sepeda{ int kecepatan = 0.. } 65 Class SepedaGunung Mewarisi Class Sepeda class SepedaGunung extends Sepeda { int setSadel.net romi@romisatriawahono. String namaLingkaran){ namaLingkaran){ .

println(“Kelas Budi”). Kembangkan class Matematika dan MatematikaBeraksi Lakukan overloading pada Method yang ada (pertambahan. 2.out. 28.net romi@romisatriawahono. } } http://romisatriawahono.java class Matematika{ int hasilPertambahan1.java package kelasku. System. 28.println( hasil: } public void pertambahan (double a. System. public void pertambahan (int a.. 14.. perkalian. Matematika.net . 68 3.2 Misalnya: pertambahan(12.println(“Kelas Joko”). } .7. 14. 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: Keyword: package name.out. int b){ b){ hasilPertambahan1 = a + b.out.5. double c){ c){ hasilPertambahan2 = a + b + c. } } 71 72 Joko. 2. Penerbit dan Tahun. System.Object-Oriented Programming Latihan 1.println(“hasil:” + hasilPertambahan2). public class Joko{ public id info(){ p bli void i f (){ System.2) 67 } Latihan 1. hasilPertambahan2.7. public class Budi{ public id info(){ p bli void i f (){ System.5. Packages Package adalah koleksi dari beberapa class dan interface yang berhubungan. p pembagian) .println(“hasil:” + hasilPertambahan1). 70 3. pengurangan. Kembangkan class Buku dan BukuBeraksi Selain konstruktor class Buku dengan parameter: Judul.out.java package kelasku. buat konstruktor lagi dengan parameter: parameter: Judul dan Pengarang saja l Panggil kedua konstruktor class Buku tadi dari class BukuBeraksi 69 Budi. 4. double b.out. Pengarang. Method baru adalah bertipe data g p double (pecahan) dan memiliki 3 parameter Uji di kelas MatematikaBeraksi dengan parameter pecahan: 12.

println("Matikan Lampu! --> System.hidupkan(). //Matikan Lampu lampuKamar.statusLampu KeadaanMati){ this.net .println("Matikan Lampu! --> System. public class PaketBeraksi{ public static void main(String[] args){ Budi objectBudi = new Budi(). Joko objectJoko = new Joko(). objectBudi.java import kelasku.out.} Kok"). Kok"). objectJoko. public static final int KeadaanMati=0.statusLampu = KeadaanMati.println("Hidupkan Lampu! --> System. public void hidupkan(){ hidupkan(){ if (this. Hidup"). //Hidupkan lampuKamar. Mati").out. public abstract void hid k () bli b t t id hidupkan().out.Joko.} ). }else{ System. //Matikan lampuKamar.java interface IntLampu{ IntLampu{ public static final int KeadaanHidup=1.statusLampu == KeadaanHidup){ (this. KeadaanHidup. KeadaanHidup=1.statusLampu == KeadaanMati){ (this. public abstract void matikan(). Ini: Mati"). System. KeadaanMati.out.out. matikan().println("Status Lampu Saat Ini: Mati"). } } 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) 73 74 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.net romi@romisatriawahono.hidupkan(). Lampu(). //Hidupkan Lampu lampuKamar.out.statusLampu KeadaanHidup){ this.println("Matikan Lampu! --> Lampu Sudah Mati Kok"). statusLampu=0.out.info().info(). tapi hanya memiliki deklarasi method tanpa implementasi 75 InterfaceBeraksi.hidupkan().matikan(). //Matikan Lampu lampuKamar. //Hidupkan lampuKamar.Object-Oriented Programming PaketBeraksi. KeadaanMati=0.} } public void matikan(){ matikan(){ if (this. }}} 77 public class InterfaceBeraksi{ InterfaceBeraksi{ public static void main(String[] args){ args){ Lampu lampuKamar = new Lampu(). }else{ System.matikan(). lampuKamar.println("Matikan Lampu! --> Lampu Mati"). import kelasku. //Hidupkan Lampu 78 } } http://romisatriawahono.matikan().println("Status System.matikan().println("Hidupkan Lampu! --> Lampu Sudah Hidup Kok").statusLampu = KeadaanHidup. System.hidupkan().hidupkan(). //Hidupkan lampuKamar.hidupkan(). } 76 class Lampu implements IntLampu{ IntLampu{ int statusLampu=0. hidupkan().out.println("Hidupkan Lampu! --> System.println("Hidupkan Lampu! --> Lampu Hidup"). //Matikan lampuKamar. //Hidupkan Lampu lampuKamar.Budi.out.out. System.

net . Head First Java 2nd Edition. university. Rogers Cadenhead & Laura Lemay. Java How to Program Sixth Edition. 2004 Hall Kathy Sierra & Bert Bates. wordpress. http://java. atau hosting secara profesional Pilih satu topik tentang konsep OOP.Object-Oriented Programming Latihan Buat program serupa dengan InterfaceBeraksi. jelaskan OOP.java tapi untuk ACBeraksi.com/docs/books/tutorial Deitel & Deitel.com atau blogspot. Edition.com.sun. upload url blog yang telah dibuat melalui fitur tugas mandiri 80 79 Java API untuk Referensi Pemrograman 81 Referensi -1Sharon Zakhour et al. O’Reilly.java matikanAC() dan hidupkanAC() dinginkanAC() dan panaskanAC () Tugas Mandiri Buat situs blog.th d b th d h ke dalam ACBeraksi.net romi@romisatriawahono. The Java Tutorial Fourth Edition. Sams Publishing.net. bisa ditempat gratis semacam blog.romisatriawahono. Edition. Prentice Hall. 2007 84 http://romisatriawahono.romisatriawahono. dengan bahasa sendiri (bahasa manusia) dan d b h d (b h )d sampaikan code yang orisinal (tidak mengambil dari tempat lain) Daftar di university. Teach Yourself Java 6 in 21 Days. Days. 2005 Edition.java Masukkan method-method di bawah k M kk method.net.

Elex Media Komputindo. 2004 Indrajani dan Martin.net romi@romisatriawahono. Java. Penerbit Andi. 2007 Abdul Kadir. 2. 1Depdiknas. JENI 1-6.Object-Oriented Programming Referensi -2Tim Pengembang JENI.net . Pemrograman Berbasis Martin P mr graman B rbasis Objek dengan Java. 2007 85 http://romisatriawahono. Dasar Pemrograman Java 2.

Sign up to vote on this title
UsefulNot useful