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