Object-Oriented Programming

15
Object-Oriented Programming [email protected] http://romisatriawahono.net Object Object-Oriented Oriented Programming (OOP) Programming (OOP) Romi Satria Wahono Romi Satria Wahono [email protected] [email protected] http://romisatriawahono.net http://romisatriawahono.net YM: YM: romi_sw romi_sw 1 z Lahir di Madiun, 2 Oktober 1974 Lahir di Madiun, 2 Oktober 1974 z SD Sompok SD Sompok Semarang (1987) Semarang (1987) z SMPN 8 SMPN 8 Semarang (1990) Semarang (1990) z SMA Taruna Nusantara SMA Taruna Nusantara, Magelang (1993) , Magelang (1993) z S1, S2 dan S3 (on S1, S2 dan S3 (on- -leave) dari leave) dari Department Department of Computer of Computer Romi Satria Wahono Romi Satria Wahono 2 Sciences, Sciences, Saitama University Saitama University, Japan (1994 , Japan (1994- -2004) 2004) z Core Competence: Core Competence: Software Software Engineering Engineering, eLearning , eLearning System, Knowledge Management System, Knowledge Management z PNS PNS di di Lembaga Lembaga Ilmu Ilmu Pengetahuan Pengetahuan Indonesia Indonesia z Founder Founder dan dan Koordinator Koordinator IlmuKomputer.Com IlmuKomputer.Com z CEO CEO PT Brainmatics Cipta Informatika PT Brainmatics Cipta Informatika Mata Kuliah OOP Mata Kuliah OOP - Kontrak Kontrak z Pertemuan di Kelas: Pertemuan di Kelas: z Kuliah model tutoring Kuliah model tutoring, konsep diberikan dan langsung , konsep diberikan dan langsung praktek dilakukan praktek dilakukan z Ketidakhadiran diperbolehkan Ketidakhadiran diperbolehkan, hanya , hanya tidak akan ada tidak akan ada pengulangan bahasan pengulangan bahasan bagi yang tidak hadir bagi yang tidak hadir z Penilaian Mata Kuliah: Penilaian Mata Kuliah: Penilaian Mata Kuliah: Penilaian Mata Kuliah: z Nilai Total dari Nilai Total dari TM TM - - UTS UTS ––UAS UAS z Tugas harus diupload Tugas harus diupload di University.RomiSatriaWahono.Net di University.RomiSatriaWahono.Net z Modul Kuliah dan Pengiriman Tugas: Modul Kuliah dan Pengiriman Tugas: z eLearning System: eLearning System: http://university.romisatriawahono.net http://university.romisatriawahono.net z Course Name: Course Name: Object Object--Oriented Programming Oriented Programming z Enrolment Key: Enrolment Key: oop oop 3 Mata Kuliah OOP Mata Kuliah OOP - Materi Materi 1. 1. OOP Concepts OOP Concepts: : Konsep Pemrograman dan paradigma Object Konsep Pemrograman dan paradigma Object--Oriented Oriented 2. 2. Java Fundamentals Java Fundamentals: : Bagaimana Membuat Program dengan Java Bagaimana Membuat Program dengan Java J Ad d J Ad d 3. 3. Java Advanced Java Advanced: : Eksepsi, Thread, Java API Eksepsi, Thread, Java API 4. 4. Java GUI Java GUI: : GUI Component, Swing, Event Handling GUI Component, Swing, Event Handling 4 OOP Concepts OOP Concepts 5 Materi Diskusi Materi Diskusi 1. 1. Konsep Pemrograman dan Paradigmanya: Konsep Pemrograman dan Paradigmanya: Tingkat Bahasa Pemrograman, Paradigma Pemrograman, Tingkat Bahasa Pemrograman, Paradigma Pemrograman, Tool Pemrograman Tool Pemrograman 2. 2. Konsep Konsep Dasar Dasar Pemrograman Pemrograman Berorientasi Berorientasi Ob Oby yek ek: : Kelas (Class), Obyek (Object), Pengkapsulan Kelas (Class), Obyek (Object), Pengkapsulan (Encapsulation) Pewarisan (Inheritance) Keyword This (Encapsulation) Pewarisan (Inheritance) Keyword This 6 (Encapsulation), Pewarisan (Inheritance), Keyword This, (Encapsulation), Pewarisan (Inheritance), Keyword This, Constructor Constructor 3. 3. Konsep Lanjut Konsep Lanjut Pemrograman Pemrograman Berorientasi Berorientasi Obyek Obyek: : Polymorphisme (Overloading dan Overriding), Package, Polymorphisme (Overloading dan Overriding), Package, Interface Interface

Transcript of Object-Oriented Programming

Object-Oriented Programming

[email protected]://romisatriawahono.net

ObjectObject--Oriented Oriented Programming (OOP)Programming (OOP)

Romi Satria WahonoRomi Satria [email protected]@romisatriawahono.nethttp://romisatriawahono.nethttp://romisatriawahono.net

YM: YM: romi_swromi_sw

1

Lahir di Madiun, 2 Oktober 1974Lahir di Madiun, 2 Oktober 1974SD Sompok SD Sompok Semarang (1987)Semarang (1987)SMPN 8SMPN 8 Semarang (1990)Semarang (1990)SMA Taruna NusantaraSMA Taruna Nusantara, Magelang (1993), Magelang (1993)S1, S2 dan S3 (onS1, S2 dan S3 (on--leave) dari leave) dari Department Department of Computer of Computer

Romi Satria WahonoRomi Satria Wahono

2

, da, da a daa da papa ppSciences, Sciences, Saitama UniversitySaitama University, Japan (1994, Japan (1994--2004)2004)Core Competence: Core Competence: Software Software EngineeringEngineering, eLearning , eLearning System, Knowledge ManagementSystem, Knowledge ManagementPNS PNS didi LembagaLembaga IlmuIlmu PengetahuanPengetahuan IndonesiaIndonesiaFounder Founder dandan KoordinatorKoordinator IlmuKomputer.ComIlmuKomputer.ComCEO CEO PT Brainmatics Cipta InformatikaPT Brainmatics Cipta Informatika

Mata Kuliah OOP Mata Kuliah OOP -- KontrakKontrakPertemuan di Kelas:Pertemuan di Kelas:

Kuliah model tutoringKuliah model tutoring, konsep diberikan dan langsung , konsep diberikan dan langsung praktek dilakukanpraktek dilakukanKetidakhadiran diperbolehkanKetidakhadiran diperbolehkan, hanya , hanya tidak akan ada tidak akan ada pengulangan bahasanpengulangan bahasan bagi yang tidak hadirbagi yang tidak hadir

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

Modul Kuliah dan Pengiriman Tugas:Modul Kuliah dan Pengiriman Tugas:eLearning System: eLearning System: http://university.romisatriawahono.nethttp://university.romisatriawahono.netCourse Name: Course Name: ObjectObject--Oriented ProgrammingOriented ProgrammingEnrolment Key: Enrolment Key: oopoop

3

Mata Kuliah OOP Mata Kuliah OOP -- MateriMateri

1.1. OOP ConceptsOOP Concepts::Konsep Pemrograman dan paradigma ObjectKonsep Pemrograman dan paradigma Object--Oriented Oriented

2.2. Java FundamentalsJava Fundamentals::Bagaimana Membuat Program dengan JavaBagaimana Membuat Program dengan Java

J Ad dJ Ad d3.3. Java AdvancedJava Advanced::Eksepsi, Thread, Java APIEksepsi, Thread, Java API

4.4. Java GUIJava GUI::GUI Component, Swing, Event HandlingGUI Component, Swing, Event Handling

4

OOP ConceptsOOP Concepts

5

Materi DiskusiMateri Diskusi

1.1. Konsep Pemrograman dan Paradigmanya:Konsep Pemrograman dan Paradigmanya:Tingkat Bahasa Pemrograman, Paradigma Pemrograman, Tingkat Bahasa Pemrograman, Paradigma Pemrograman, Tool PemrogramanTool Pemrograman

2.2. KonsepKonsep DasarDasar PemrogramanPemrograman BerorientasiBerorientasi ObObyyekek::Kelas (Class), Obyek (Object), Pengkapsulan Kelas (Class), Obyek (Object), Pengkapsulan (Encapsulation) Pewarisan (Inheritance) Keyword This (Encapsulation) Pewarisan (Inheritance) Keyword This

6

(Encapsulation), Pewarisan (Inheritance), Keyword This, (Encapsulation), Pewarisan (Inheritance), Keyword This, ConstructorConstructor

3.3. Konsep Lanjut Konsep Lanjut PemrogramanPemrograman BerorientasiBerorientasi ObyekObyek::Polymorphisme (Overloading dan Overriding), Package, Polymorphisme (Overloading dan Overriding), Package, InterfaceInterface

Object-Oriented Programming

[email protected]://romisatriawahono.net

Konsep Pemrograman Konsep Pemrograman dan Paradigmanyadan Paradigmanya

7

Bahasa Pemrograman?Bahasa Pemrograman?

Komputer bekerja seperti Komputer bekerja seperti switchingswitching dan hanya dan hanya mengenali 0 dan 1mengenali 0 dan 1Manusia Manusia tidak (paham) berbicara tidak (paham) berbicara dengan bahasa dengan bahasa 0 dan 10 dan 1P l b h p d p t j di P l b h p d p t j di Perlu bahasa pemrograman yang dapat menjadi Perlu bahasa pemrograman yang dapat menjadi perantara percakapan perantara percakapan antara komputer dan antara komputer dan manusiamanusiaBahasa pemrograman diubah ke dalam bahasa Bahasa pemrograman diubah ke dalam bahasa yang dipahami oleh komputer dengan yang dipahami oleh komputer dengan menggunakan menggunakan interpreterinterpreter atau atau kompilerkompiler

8

Compiler or Interpreter?Compiler or Interpreter?

Compiler:Compiler:Mengkompilasi source code Mengkompilasi source code menjadi bentukmenjadi bentuk file yang bisa file yang bisa dieksekusidieksekusidieksekusidieksekusi

Interpreter:Interpreter:Mengkompilasi dan menjalankan Mengkompilasi dan menjalankan source code source code secara langsungsecara langsung

9

Tingkat Bahasa PemrogramanTingkat Bahasa Pemrograman

Bahasa Pemrograman Tingkat Bahasa Pemrograman Tingkat RendahRendah(Assembler)(Assembler)Bahasa Pemrograman Tingkat Bahasa Pemrograman Tingkat SedangSedang(C Pascal Fortran)(C Pascal Fortran)(C, Pascal, Fortran)(C, Pascal, Fortran)Bahasa Pemrograman Tingkat Bahasa Pemrograman Tingkat TinggiTinggi(Java, C++, C#)(Java, C++, C#)

10

Assembly LanguageAssembly Language

0001010000010100001100101001100101

LDA #47LDA #47STA $STA $570570DEXDEXJSR JSR $817$817CPX #0CPX #0BNE #14BNE #14

Assembly language programAssembly language program

TranslationTranslationprogramprogram

(Assembler)(Assembler)

11

00001000000010001001001011001001010101010100101010101001010010

Machine language programMachine language program(executable file)(executable file)

y g g p gy g g p g

C LanguageC Language

##include <include <stdio.hstdio.h>>

mainmain()(){{

printf(“Hall ”)printf(“Hall ”)CC CompilerCompiler

000101000000010100001100101000110010100001000100100100010010010101010100101010101010100101010010

12

printf(“Hallo”);printf(“Hallo”);}}

C ProgramC Program

10100101010010

Machine language programMachine language program((executable “.exe” executable “.exe” file)file)

Object-Oriented Programming

[email protected]://romisatriawahono.net

Java LanguageJava Language

javacjavac(Java Compiler)(Java Compiler)

javajava(Java Interpreter)(Java Interpreter)

13

Paradigma PemrogramanParadigma PemrogramanSudut pandang dan style pemrograman Sudut pandang dan style pemrograman berhubungan dengan bagaimana sebuah masalah berhubungan dengan bagaimana sebuah masalah diformulasikan dalam bahasa pemrogramandiformulasikan dalam bahasa pemrograman

Functional ProgrammingFunctional Programming: Urutan fungsi secara : Urutan fungsi secara sekuensialsekuensial (Scheme Lisp)(Scheme Lisp)sekuensialsekuensial (Scheme, Lisp)(Scheme, Lisp)Procedural ProgrammingProcedural Programming: Pemecahan masalah : Pemecahan masalah berdasarkan prosedural kerja yg terkumpul dalam unit berdasarkan prosedural kerja yg terkumpul dalam unit pemrograman bernama pemrograman bernama fungsifungsi (C, Pascal)(C, Pascal)ObjectObject--Oriented ProgrammingOriented Programming: Koleksi object yang : Koleksi object yang saling berinteraksi . saling berinteraksi . ClassClass adalah unit pemrograman adalah unit pemrograman (Java, C#, C++)(Java, C#, C++)

14

Install, Compile and Install, Compile and Running JavaRunning Java

15

Tool Pemrograman JavaTool Pemrograman Java

1.1. Compiler (Interpreter)Compiler (Interpreter)::Java Standard Edition Java Standard Edition (JSE)(JSE)

2.2. Text/Code EditorText/Code Editor::TextPadTextPad, Notepad++, Notepad++

3.3. Integrated Development EnvironmentIntegrated Development Environment(IDE):(IDE):Netbeans, Eclipse, JCreatorNetbeans, Eclipse, JCreator

(*) IDE mengintegrasikan Compiler, Code Editor dan (*) IDE mengintegrasikan Compiler, Code Editor dan Visual (GUI) secara lengkapVisual (GUI) secara lengkap

16

Java Java Standard Edition Standard Edition ((JJava ava SESE))

For For desktop, client/server desktop, client/server applicationapplication

Java Java EnterpriseEnterprise EEditiondition

Java Family SuiteJava Family Suite

pp((JJava ava EEEE))

For eFor e--businessbusiness, e, e--commerce commerce web based applicationweb based application

Java Java Micro EditionMicro Edition((JJava ava MEME))

For For small devicessmall devices, like , like palm,palm, handphonehandphone, etc, etc

Instalasi Java Standard EditionInstalasi Java Standard Edition1.1. Download Java Standard Edition dari: Download Java Standard Edition dari:

http://java.sun.com/javase/downloads/http://java.sun.com/javase/downloads/2.2. Instal Java Standard Edition dengan mengklik:Instal Java Standard Edition dengan mengklik:

jdkjdk--6u66u6--windowswindows--i586i586--p.exep.exe33 Klik Klik StartStart Control Panel Control Panel SystemSystem3.3. Klik Klik StartStart Control Panel Control Panel SystemSystem

AdvancedAdvanced Environment Variables Environment Variables dan set dan set PATH:PATH:;;C:C:\\Program FilesProgram Files\\JavaJava\\jdk1.6.0_jdk1.6.0_0606\\binbin

4.4. Instal text editor untuk editing code:Instal text editor untuk editing code:textpad, notepad++, JCreatortextpad, notepad++, JCreator

18

Object-Oriented Programming

[email protected]://romisatriawahono.net

javac (java javac (java compilercompiler))InterpreterInterpreter InterpreterInterpreter InterpreterInterpreter InterpreterInterpreter

Jalankan dengan:Jalankan dengan:

1.1. C:C:\\>java >java Hello Hello (Application)(Application)2.2. Web BrowserWeb Browser (Applet)(Applet)

How Java Works?How Java Works?public class Hellopublic class Hello

public static void main(String[] public static void main(String[] argsargs){){System.out.printlnSystem.out.println("Hello World!");("Hello World!");

}}}} Hello.java

Hello.class

Kompiler memproduksiKompiler memproduksiBytecode (Class)Bytecode (Class)

Web ServerWeb ServerWrite Once Run Everywhere !Write Once Run Everywhere !

Compile and Run Java AppletCompile and Run Java Appletimport import java.appletjava.applet.*;.*;import java.awt.*;import java.awt.*;

public public class class HelloWorldHelloWorld extends Applet {extends Applet {public void paint(Graphics g) {public void paint(Graphics g) {

g.drawStringg.drawString("Hello world!",50,25("Hello world!",50,25););}}

}}

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

C:C:\\javac HelloWorld.javajavac HelloWorld.java

C:C:\\appletviewer Hello.htmlappletviewer Hello.html

Menulis Program Menulis Program ““Halo SemarangHalo Semarang””public public class class HHalalo{o{

public static void main(String[] public static void main(String[] argsargs){){System.out.printlnSystem.out.println(“(“Halo SemarangHalo Semarang");");

}}}}

21

GUI Version GUI Version ““Halo Semarang”Halo Semarang”import import javax.swingjavax.swing.*;.*;

public class public class HaloGUIHaloGUI{{public static void main( String[] public static void main( String[] argsargs ){){

JOptionPane.showMessageDialogJOptionPane.showMessageDialog(null, "Halo Semarang");(null, "Halo Semarang");}}

22

}}

Menulis Java ProgramMenulis Java Program

PProgram harus punya method di public class:rogram harus punya method di public class:public public static void main(String[] static void main(String[] argsargs))

Program Java mulai dari siniProgram Java mulai dari sini!!

Bentuk program:Bentuk program:1.1. GUI applicationGUI application public public class class biasanya biasanya

menggunakan Frame (AWT), menggunakan Frame (AWT), JframeJframe(Swing)(Swing)2.2. “Text “Text based” Console based” Console ApplicationApplication public public class class

adalah adalah classclass yang sederhanayang sederhana

Latihan: Tulis dan Compile Halo.javaLatihan: Tulis dan Compile Halo.javapublic class Halo{public class Halo{public static void main(String[] args)public static void main(String[] args){{

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

24

}}

Object-Oriented Programming

[email protected]://romisatriawahono.net

Konsep Dasar Konsep Dasar Pemrograman Pemrograman Berorientasi ObjekBerorientasi Objek

25

Berorientasi Objek?Berorientasi Objek?

Attribute:Attribute:Topi, Baju, Tas Topi, Baju, Tas Punggung, Jaket, Punggung, Jaket, Tangan, Kaki, MataTangan, Kaki, Mata

hh

26

Behavior:Behavior:Cara Cara Jalan ke DepanJalan ke DepanCara Jalan MundurCara Jalan MundurCara Cara Belok ke KiriBelok ke KiriCara MemanjatCara Memanjat

Berorientasi Objek?Berorientasi Objek?Attribute (State):Attribute (State):

Ban, Stir, Pedal Kopling/Gas/Rem,Ban, Stir, Pedal Kopling/Gas/Rem,Warna, Tahun Warna, Tahun ProduksiProduksi

Behavior:Behavior:Cara Menghidupkan MesinCara Menghidupkan MesinCara Manjalankan MobilCara Manjalankan MobilCara Memundurkan MobilCara Memundurkan Mobil

27

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

LatihanLatihan1.1. Lakukan kegiatan berorientasi objek dengan Lakukan kegiatan berorientasi objek dengan

target target SepedaSepeda2.2. Pikirkan apa Pikirkan apa atribut dan behavior atribut dan behavior yang yang

dimiliki oleh Sepeda tersebutdimiliki oleh Sepeda tersebut

28

Karakteristik OOP Karakteristik OOP --11--

AbstractionAbstraction:Cara kita :Cara kita melihat suatu sistem melihat suatu sistem dalam bentuk yang lebih sederhanadalam bentuk yang lebih sederhana, yaitu , yaitu sebagai suatu kumpulan subsistem (object) sebagai suatu kumpulan subsistem (object) yang saling berinteraksi.yang saling berinteraksi.

Mobil adalah kumpulan sistem pengapian, sistem Mobil adalah kumpulan sistem pengapian, sistem d p p g p ,d p p g p ,kemudi, sistem pengeremankemudi, sistem pengereman

ModularityModularity: : Sifat object adalah modular. Sifat object adalah modular. Object Object dapat ditulis dan dimaintain terpisah dapat ditulis dan dimaintain terpisah (independen) (independen) dari object laindari object lain

29 30

Object-Oriented Programming

[email protected]://romisatriawahono.net

31

Karakteristik OOP Karakteristik OOP --22--EncapsulationEncapsulation: Mekanisme : Mekanisme menyembunyikan menyembunyikan suatu proses dalam sistem suatu proses dalam sistem untuk menghindari untuk menghindari interferensi dan menyederhanakan penggunaan interferensi dan menyederhanakan penggunaan sistem itu sendirisistem itu sendiri

Tongkat transmisi (gigi) pada mobilTongkat transmisi (gigi) pada mobilT b l / ff/ t h d ACT b l / ff/ t h d ACTombol on/off/pengaturan suhu pada ACTombol on/off/pengaturan suhu pada AC

32

33 34

Karakteristik OOP Karakteristik OOP --33--

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

35

Karakteristik OOP Karakteristik OOP --44--

PolymorphismPolymorphism: Suatu : Suatu object dapat memiliki object dapat memiliki berbagai bentukberbagai bentuk, sebagai object dari classnya , sebagai object dari classnya sendiri atau object dari superclassnyasendiri atau object dari superclassnya

OverloadingOverloading: Penggunaan : Penggunaan satu nama untuk beberapa satu nama untuk beberapa methodmethod yang berbeda (beda parameter)yang berbeda (beda parameter)methodmethod yang berbeda (beda parameter)yang berbeda (beda parameter)OverridingOverriding: Terjadi ketika deklarasi method subclass : Terjadi ketika deklarasi method subclass dengan dengan nama dan parameter yang sama nama dan parameter yang sama dengan dengan method dari superclassnyamethod dari superclassnya

36

Object-Oriented Programming

[email protected]://romisatriawahono.net

Class dan Object Class dan Object --11--

Class: Class: mobilmobilObject: Object: mobilnya pak Joko, mobilkumobilnya pak Joko, mobilku

Class seperti Class seperti cetakan kuecetakan kue, dimana kue yg , dimana kue yg dihasilkan dari cetakan kue itu adalah dihasilkan dari cetakan kue itu adalah objectobjectdihasilkan dari cetakan kue itu adalah dihasilkan dari cetakan kue itu adalah objectobjectWarna kue bisa bermacamWarna kue bisa bermacam--macam meskipun macam meskipun berasal dari cetakan yang sama (berasal dari cetakan yang sama (object memiliki object memiliki sifat independensifat independen))

Object adalah Object adalah instance dari Classinstance dari Class

37

Class and Object Class and Object --22--Class = Class = method+method+variablevariable

The The BicycleBicycle classclass

Class dan Object Class dan Object --33--

39

Bicycle Bicycle dimodelkan dimodelkan sebagai sebuah sebagai sebuah objectobject::10 mph, 90 rpm, 510 mph, 90 rpm, 5thth gear adalah gear adalah instance variableinstance variablechangegearschangegears, brake, , brake, changecadencechangecadence adalahadalah instance instance methodmethod

AttributeAttributeAAttributettribute adalah berbagai variable yang adalah berbagai variable yang mengitari class, dengan nilai datanya bisa mengitari class, dengan nilai datanya bisa ditentukan di object.ditentukan di object. NameName, age, , age, dan dan weight weight adalah atribute dari class Personadalah atribute dari class Person

Membuat Class, Object dan Memanggil AtributMembuat Class, Object dan Memanggil Atributclass Mobil {class Mobil {

String warna;String warna;int tahunProduksi;int tahunProduksi;

}}

public class MobilBeraksi{public class MobilBeraksi{public static void main(String[] args){public static void main(String[] args){

// Membuat object// Membuat object

Mobil.javaMobil.java

MobilBeraksi.javaMobilBeraksi.java

41

// Membuat object// Membuat objectMobil mobilku = new Mobil();Mobil mobilku = new Mobil();

/* memanggil atribut dan memberi nilai *//* memanggil atribut dan memberi nilai */mobilku.warna = "Hitam";mobilku.warna = "Hitam";mobilku.tahunProduksi = 2006;mobilku.tahunProduksi = 2006;System.out.println("Warna: " + System.out.println("Warna: " + mobilku.warnamobilku.warna););System.out.println("Tahun: " + System.out.println("Tahun: " + mobilku.tahunProduksi)mobilku.tahunProduksi);;

}}}}

MethodMethod

MMethodethod adalah adalah implementasi dari implementasi dari bagaimana bekerjanya sebuah classbagaimana bekerjanya sebuah class

M th d l k kM th d l k kMethod melakukan:Method melakukan:1.1. Manipulasi dataManipulasi data2.2. PerhitunganPerhitungan matematikamatematika3.3. Memonitor kejadian Memonitor kejadian dari suatu eventdari suatu event

Inal
Typewriter
Inal
Typewriter

Object-Oriented Programming

[email protected]://romisatriawahono.net

Membuat dan Memanggil MethodMembuat dan Memanggil Methodclass Mobil2{class Mobil2{

String warna;String warna;int tahunProduksi;int tahunProduksi;void void printMobil()printMobil(){{

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

}}}}

bl l b l kbl l b l k

Mobil2.javaMobil2.java

43

public class Mobil2Beraksi{public class Mobil2Beraksi{public static void main(String[] args){public static void main(String[] args){

// Membuat object// Membuat objectMobil2 mobilku = new Mobil2();Mobil2 mobilku = new Mobil2();

/* memanggil atribut dan memberi nilai *//* memanggil atribut dan memberi nilai */mobilku.warna = "Hitam";mobilku.warna = "Hitam";mobilku.tahunProduksi = 2006;mobilku.tahunProduksi = 2006;mobilku.printMobil();mobilku.printMobil();

}}}}

Mobil2Beraksi.javaMobil2Beraksi.java

LatihanLatihan

Kembangkan Class Kembangkan Class Mobil2Mobil2Ubah nama classs menjadi Ubah nama classs menjadi MobilLengkapMobilLengkap dan dan masukkan method:masukkan method:

hidupkanMobil()hidupkanMobil()matikanM bil()matikanM bil()matikanMobil()matikanMobil()ubahGigi()ubahGigi()

Isi masingIsi masing--masing method dengan tampilan masing method dengan tampilan status menggunakan status menggunakan System.out.println()System.out.println()Panggil methodPanggil method--method diatas dari method diatas dari MobilLengkapBeraksiMobilLengkapBeraksi

44

Message Message dan Parameter dan Parameter --11--Bicycle akan berguna apabila ada object lain Bicycle akan berguna apabila ada object lain ((misalnya andamisalnya anda) ) yang berinterasi dengan Bicycle tersebutyang berinterasi dengan Bicycle tersebutObject software berinteraksi dan berkomunikasi dengan Object software berinteraksi dan berkomunikasi dengan object lain dengan cara mengirimkan object lain dengan cara mengirimkan messagemessage . Informasi . Informasi dalam message ini dikenal dengan nama dalam message ini dikenal dengan nama ParameterParameter

45

Message Message dan Parameterdan Parameter --22--

46

1.1. YouYou object pengirim (object pengirim (sendersender))

2.2. YourBicycleYourBicycle object penerima (receiver)object penerima (receiver)

3.3. cchangeGearshangeGears the message, the method to performthe message, the method to perform

4.4. lowerGearlowerGear information from You to information from You to YourBicycleYourBicycle, the , the parametersparameters needed by the methodneeded by the method

47

Membuat Class (Sepeda.java)Membuat Class (Sepeda.java)class Sepeda{class Sepeda{

int kecepatan = 0;int kecepatan = 0;int gir = 0;int gir = 0;

// method// methodvoid ubahGir(void ubahGir(int pertambahanGirint pertambahanGir)) {{

gir= gir+ pertambahanGirgir= gir+ pertambahanGirgir= gir+ pertambahanGir;gir= gir+ pertambahanGir;System.out.println(" Gir:" + gir);System.out.println(" Gir:" + gir);

}}void tambahKecepatan(void tambahKecepatan(int pertambahanKecepatanint pertambahanKecepatan) ) {{

kecepatan = kecepatan+ pertambahanKecepatan;kecepatan = kecepatan+ pertambahanKecepatan;System.out.println(" Kecepatan:" + kecepatan);System.out.println(" Kecepatan:" + kecepatan);

}}}}

48

Object-Oriented Programming

[email protected]://romisatriawahono.net

Membuat dan Memanggil Object Membuat dan Memanggil Object (SepedaBeraksi.java)(SepedaBeraksi.java)public class SepedaBeraksi{public class SepedaBeraksi{

public static void main(String[] args) {public static void main(String[] args) {// Membuat object// Membuat objectSepeda sepedaku = new Sepeda();Sepeda sepedaku = new Sepeda();

// ggil t ib t d b i il i// ggil t ib t d b i il i//memanggil atribut dan memberi nilai//memanggil atribut dan memberi nilaisepedaku.kecepatan=10;sepedaku.kecepatan=10;sepedaku.gir=2;sepedaku.gir=2;

// Memanggil method dan menunjuk nilai parameter// Memanggil method dan menunjuk nilai parametersepedaku.tambahKecepatan(30);sepedaku.tambahKecepatan(30);sepedaku.ubahGir(3);sepedaku.ubahGir(3);

}}}}49

LatihanLatihanBuat Class bernama Buat Class bernama MatematikaMatematika, yang berisi , yang berisi method dengan method dengan dua parameterdua parameter::

pertambahanpertambahanpenguranganpenguranganperkalianperkalianpembagianpembagianp gp g

Buat Class bernama Buat Class bernama MatematikaBeraksiMatematikaBeraksi, yang , yang mengeksekusi method dan menampilkan:mengeksekusi method dan menampilkan:

Pertambahan: 20 + 20 = 40Pertambahan: 20 + 20 = 40Pengurangan: 10Pengurangan: 10--5 = 55 = 5Perkalian: 10x20 = 200Perkalian: 10x20 = 200Pembagian: 21/2 = 10.5 (float or double)Pembagian: 21/2 = 10.5 (float or double)

50

Tips Membuat CTips Membuat Classlass

1 file 1 file bisa berisi bisa berisi >=1>=1 classclass1 file 1 file hanya dapat berisi 1 public classhanya dapat berisi 1 public classNama file harus sama dengan namaNama file harus sama dengan namapublic public classclass sifatnya adalah csifatnya adalah casease sensitivesensitive

51

public public classclass sifatnya adalah csifatnya adalah casease sensitivesensitiveTips: Tips: Lebih baik dan lebih mudah Lebih baik dan lebih mudah dipahami apabila dipahami apabila satu file berisi hanya satu file berisi hanya satu classsatu class

Kata Kunci thisKata Kunci this

Digunakan pada pembuatan class dan digunakan Digunakan pada pembuatan class dan digunakan untuk untuk menyatakan object sekarangmenyatakan object sekarang

class Mobil{class Mobil{String warna;String warna;Int tahunProduksi;Int tahunProduksi;

class Mobil{class Mobil{String warna;String warna;Int tahunProduksi;Int tahunProduksi;

52

vvoid isiData(Stringoid isiData(String warnaMobil, int warnaMobil, int tahunProduksiMobil){tahunProduksiMobil){

warna = warnaMobil;warna = warnaMobil;tahunProduksi = tahunProduksiMobil;tahunProduksi = tahunProduksiMobil;

}}

vvoid isiData(Stringoid isiData(String warna, int warna, int tahunProduksi){tahunProduksi){

this.warna = warna;this.warna = warna;this.tahunProduksi = tahunProduksi;this.tahunProduksi = tahunProduksi;

}}

Konstruktor Konstruktor --11--

Method yang digunakan untuk memberi Method yang digunakan untuk memberi nilai awal nilai awal pada saat object diciptakanpada saat object diciptakanDipanggil secara otomatis ketika Dipanggil secara otomatis ketika newnewdigunakan untuk membuat instan classdigunakan untuk membuat instan classggSifat konstruktor:Sifat konstruktor:

Nama konstruktor Nama konstruktor sama dengan nama classsama dengan nama classTidak memiliki nilai balikTidak memiliki nilai balik dan tidak boleh ada dan tidak boleh ada kata kunci voidkata kunci void

53

Konstruktor Konstruktor --22--class Mobil {class Mobil {

String warna;String warna;int tahunProduksi;int tahunProduksi;

public Mobil(String warna, int tahunProduksi){public Mobil(String warna, int tahunProduksi){this.warna = warna;this.warna = warna;this.tahunProduksi = tahunProduksi;this.tahunProduksi = tahunProduksi;

}}public void info(){public void info(){

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

}}}}public class MobilKonstruktor{public class MobilKonstruktor{

public static void main(String[] args){public static void main(String[] args){Mobil mobilku = new Mobil(“Merah”, 2003);Mobil mobilku = new Mobil(“Merah”, 2003);mobilku.info();mobilku.info();

}}}}54

Inal
Typewriter
Static merupakan method punya class,sehingga tanpa objek bisa d compile. Selain itu adalah punya object,jd tidak bisa dicompile sebelum dibuat object.

Object-Oriented Programming

[email protected]://romisatriawahono.net

Class Access Level Class Access Level

SpecifierSpecifier ClassClass PackagePackage SubClassSubClass WorldWorld

privateprivate

55

no specifierno specifier

protectedprotected

publicpublic

LatihanLatihan1.1. Buat class Buat class BukuBuku2.2. Tentukan variable buku: Tentukan variable buku: Judul, Pengarang, Penerbit Judul, Pengarang, Penerbit

dan Tahundan Tahun3.3. Buat konstruktor class Buku dengan parameter: Buat konstruktor class Buku dengan parameter:

Judul, Pengarang, Penerbit dan TahunJudul, Pengarang, Penerbit dan TahunB h d B h d kB kkB k4.4. Buat method Buat method cetakBukucetakBuku

5.5. Buat class Buat class BukuBeraksiBukuBeraksi dan tampilkan 2 buku:dan tampilkan 2 buku:Pemrograman Berbasis Objek dengan Java, Indrajani, Pemrograman Berbasis Objek dengan Java, Indrajani, Elexmedia Komputindo, 2007Elexmedia Komputindo, 2007Dasar Pemrograman Java, Abdul Kadir, Andi Offset, Dasar Pemrograman Java, Abdul Kadir, Andi Offset, 20062006

56

Inheritance (Pewarisan) Inheritance (Pewarisan)

ReusabilityReusabilityTop down:Top down:

Being more Being more specificspecificBottom Up:Bottom Up:

Find Find similiaritysimiliarity

57

ind ind imi ia ityimi ia ityJava Keyword: Java Keyword: extendsextends

Sepeda.javaSepeda.javaclass Sepeda{class Sepeda{

int kecepatan = 0;int kecepatan = 0;int gir = 0;int gir = 0;

// method// methodvoid ubahGir(int pertambahanGir)void ubahGir(int pertambahanGir) {{

gir= gir+ pertambahanGirgir= gir+ pertambahanGirgir= gir+ pertambahanGir;gir= gir+ pertambahanGir;System.out.println("Gir:" + gir);System.out.println("Gir:" + gir);

}}void tambahKecepatan(int pertambahanKecepatan) void tambahKecepatan(int pertambahanKecepatan) {{

kecepatan = kecepatan+ pertambahanKecepatan;kecepatan = kecepatan+ pertambahanKecepatan;System.out.println("Kecepatan:" + kecepatan);System.out.println("Kecepatan:" + kecepatan);

}}}}

58

Class SepedaGunung Mewarisi Class SepedaClass SepedaGunung Mewarisi Class Sepedaclass class SepedaGunung SepedaGunung extendsextends Sepeda Sepeda { {

int setSadel; int setSadel;

public void spublic void setSadeletSadel((intint nilaiSadelnilaiSadel) { ) { setSadel =setSadel = nilaiSadelnilaiSadel; ; System.out.println(“Tinggi System.out.println(“Tinggi Sadel:”+setSadel);Sadel:”+setSadel);} }

class SepedaGunungBeraksi {class SepedaGunungBeraksi {public static void main(String[] args) {public static void main(String[] args) {// Membuat object// Membuat objectSepedaGunung sepedaku = new sepedaGunung();SepedaGunung sepedaku = new sepedaGunung();

// Memanggil method di object// Memanggil method di objectsepedaku.tambahKecepatan(10);sepedaku.tambahKecepatan(10);sepedaku.ubahGir(2);sepedaku.ubahGir(2);

ll} } } }

59

sepedaku.setSadel(20);sepedaku.setSadel(20);

}}}}

SepedaGunung.javaSepedaGunung.java SepedaGunungBeraksi.javaSepedaGunungBeraksi.java

LatihanLatihan

Buat class Buat class MobilBMWMobilBMW yang merupakan inherit yang merupakan inherit dari class dari class MobilLengkapMobilLengkapTambahkan method Tambahkan method nontonTV() nontonTV() yang yang menampilkan tulisan di layar:menampilkan tulisan di layar:

TV dihidupkanTV dihidupkanTV dihidupkanTV dihidupkanTV mencari channelTV mencari channelTV menampilkan gambarTV menampilkan gambar

Buat class Buat class MobilBMWBeraksiMobilBMWBeraksi yang memanggil yang memanggil method method nontonTV, hidupkanMobil, nontonTV, hidupkanMobil, matikanMobil, ubahGigimatikanMobil, ubahGigi

60

Object-Oriented Programming

[email protected]://romisatriawahono.net

Konsep Lanjut Konsep Lanjut PemrogramanPemrogramanBerorientasiBerorientasi ObObjjekek

61

PolymorphismPolymorphism

PolymorphismPolymorphism: Suatu object dapat : Suatu object dapat memiliki berbagai bentuk, sebagai memiliki berbagai bentuk, sebagai object dari classnya sendiri atau object object dari classnya sendiri atau object dari superclassnyadari superclassnya

ll

62

1.1. OverloadingOverloading: Penggunaan : Penggunaan satu nama untuk satu nama untuk beberapa method yang berbeda parameterbeberapa method yang berbeda parameter

2.2. OverridingOverriding: Terjadi ketika : Terjadi ketika deklarasi method deklarasi method subclass sama dengan method dari subclass sama dengan method dari superclassnyasuperclassnya

Polymorphism Polymorphism –– OverloadingOverloadingclass Mobil {class Mobil {

String warna;String warna;int tahunProduksi;int tahunProduksi;

public Mobil(String warna, int public Mobil(String warna, int tahunProduksi){tahunProduksi){

this.warna = warna;this.warna = warna;this.tahunProduksi = tahunProduksi;this.tahunProduksi = tahunProduksi;

}}

public class MobilKonstruktor{public class MobilKonstruktor{public static void main(String[] args){public static void main(String[] args){

Mobil mobilku = new Mobil(“Merah”, Mobil mobilku = new Mobil(“Merah”, 2003);2003);mobilku.info();mobilku.info();

Mobil mobilMobil mobilmumu = new Mobil();= new Mobil();mobilmobilmu.mu.info();info();}}

public Mobil(){public Mobil(){}}

void info(){void info(){System.out.println("Warna: " + System.out.println("Warna: " +

this.warna);this.warna);System.out.println("Tahun: " + System.out.println("Tahun: " +

this.tahunProduksi);this.tahunProduksi);}}

}}

63

}}}}

Contoh Lain OverloadingContoh Lain Overloadingclass Lingkaran{class Lingkaran{

public public buatLingkaran(int diameter)buatLingkaran(int diameter){{......}}public public buatLingkaran(int diameter, int x, int y)buatLingkaran(int diameter, int x, int y){{......}}public public buatLingkaran(int diameter, int x, int y, int buatLingkaran(int diameter, int x, int y, int warna, String namaLingkaran)warna, String namaLingkaran){{......}}

}}64

Polymorphism Polymorphism -- OverridingOverridingclass Sepeda{class Sepeda{

int kecepatan = 0;int kecepatan = 0;int gir = 0;int gir = 0;

// method// methodvoid ubahGir(int pertambahanGir)void ubahGir(int pertambahanGir) {{

gir= gir+ pertambahanGirgir= gir+ pertambahanGirgir= gir+ pertambahanGir;gir= gir+ pertambahanGir;System.out.println("Gir:" + gir);System.out.println("Gir:" + gir);

}}void tambahKecepatan(int pertambahanKecepatan) void tambahKecepatan(int pertambahanKecepatan) {{

kecepatan = kecepatan+ pertambahanKecepatan;kecepatan = kecepatan+ pertambahanKecepatan;System.out.println("Kecepatan:" + kecepatan);System.out.println("Kecepatan:" + kecepatan);

}}}}

65

Class SepedaGunung Mewarisi Class SepedaClass SepedaGunung Mewarisi Class Sepedaclass class SepedaGunung SepedaGunung extendsextends Sepeda Sepeda { {

int setSadel; int setSadel;

void ubahGir(int pertambahanGir)void ubahGir(int pertambahanGir){{

gir= 2*(gir+ pertambahanGir );gir= 2*(gir+ pertambahanGir );System.out.println("Gir:" + gir);System.out.println("Gir:" + gir);

}}

class SepedaGunungBeraksi {class SepedaGunungBeraksi {public static void main(String[] args) {public static void main(String[] args) {// Membuat object// Membuat objectSepedaGunung sepedaku = new sepedaGunung();SepedaGunung sepedaku = new sepedaGunung();

// Memanggil method di object// Memanggil method di objectsepedaku.tambahKecepatan(10);sepedaku.tambahKecepatan(10);sepedaku.ubahGir(2);sepedaku.ubahGir(2);

ll}}} }

66

sepedaku.setSadel(20);sepedaku.setSadel(20);

}}}}

SepedaGunung.javaSepedaGunung.java SepedaGunungBeraksi.javaSepedaGunungBeraksi.java

Object-Oriented Programming

[email protected]://romisatriawahono.net

LatihanLatihan

1.1. Kembangkan class Kembangkan class MatematikaMatematika dan dan MatematikaBeraksiMatematikaBeraksi

2.2. Lakukan Lakukan overloading pada Method overloading pada Method yang ada yang ada (pertambahan, pengurangan, perkalian, (pertambahan, pengurangan, perkalian, pembagian) . Method baru adalah bertipe data pembagian) . Method baru adalah bertipe data p g pp g pdoubledouble (pecahan) dan (pecahan) dan memiliki 3 parametermemiliki 3 parameter

3.3. Uji di kelas Uji di kelas MatematikaBeraksiMatematikaBeraksi dengan dengan parameter pecahan: 12.5, 28.7, 14.2parameter pecahan: 12.5, 28.7, 14.2

4.4. Misalnya: Misalnya: pertambahan(12.5, 28.7, 14.2)pertambahan(12.5, 28.7, 14.2)

67

Matematika.javaMatematika.javaclass Matematika{class Matematika{

int hasilPertambahan1, hasilPertambahan2;int hasilPertambahan1, hasilPertambahan2;

public void public void pertambahan (int a, int b)pertambahan (int a, int b){{hasilPertambahan1 = a + b;hasilPertambahan1 = a + b;System.out.println(“hasil:” + hasilPertambahan1);System.out.println(“hasil:” + hasilPertambahan1);System.out.println( hasil: hasilPertambahan1);System.out.println( hasil: hasilPertambahan1);

}}public void public void pertambahan (double a, double b, double c)pertambahan (double a, double b, double c){{

hasilPertambahan2 = a + b + c;hasilPertambahan2 = a + b + c;System.out.println(“hasil:” + hasilPertambahan2);System.out.println(“hasil:” + hasilPertambahan2);

}}......

}}68

LatihanLatihan

1.1. Kembangkan class Kembangkan class Buku Buku dan dan BukuBeraksiBukuBeraksi2.2. Selain konstruktor class Buku dengan Selain konstruktor class Buku dengan

parameter: parameter: Judul, Pengarang, Penerbit dan Judul, Pengarang, Penerbit dan Tahun, Tahun, buat konstruktor lagi dengan buat konstruktor lagi dengan

llparameterparameter: Judul : Judul dandan Pengarang Pengarang sajasaja3.3. Panggil kedua konstruktor class Panggil kedua konstruktor class BukuBuku tadi tadi

dari class dari class BukuBeraksiBukuBeraksi

69

PackagesPackages

PPackageackage adalah adalah koleksi dari beberapa class koleksi dari beberapa class dan interface yang berhubungan, dan dan interface yang berhubungan, dan menyediakan proteksi akses dan pengelolaan menyediakan proteksi akses dan pengelolaan namespacenamespace1 package 1 package adalah adalah 1 1 subfolder subfolder di di file file systemsystem

70

1 package 1 package adalah adalah 1 1 subfolder subfolder di di file file systemsystemPackage sangat berguna untuk Package sangat berguna untuk mengorganisir file dalam suatu project atau mengorganisir file dalam suatu project atau librarylibraryNama package menggunakan lowercaseNama package menggunakan lowercaseKeywordKeyword: : package name;package name;

Budi.javaBudi.java

package kelasku;package kelasku;

publicpublic class Budi{class Budi{p bli id i f (){p bli id i f (){public void info(){public void info(){

System.out.println(“Kelas Budi”);System.out.println(“Kelas Budi”);}}

}}

71

Joko.javaJoko.java

package kelasku;package kelasku;

publicpublic class Joko{class Joko{p bli id i f (){p bli id i f (){public void info(){public void info(){

System.out.println(“Kelas Joko”);System.out.println(“Kelas Joko”);}}

}}

72

Object-Oriented Programming

[email protected]://romisatriawahono.net

PaketBeraksi.javaPaketBeraksi.javaimport kelasku.Budi;import kelasku.Budi;import kelasku.Joko;import kelasku.Joko;

public class PaketBeraksi{public class PaketBeraksi{public static void main(String[] args){public static void main(String[] args){

Budi objectBudi = new Budi();Budi objectBudi = new Budi();objectBudi.info();objectBudi.info();Joko objectJoko = new Joko();Joko objectJoko = new Joko();objectJoko.info();objectJoko.info();

}}}}

73

LatihanLatihanKembangkan class Kembangkan class BudiBudi dan dan JokoJokoBuat method Buat method matakuliah()matakuliah() menampilkan menampilkan mata kuliah yang diajar Budi dan Jokomata kuliah yang diajar Budi dan JokoPaketkan kedua class tadi dalam satu Package Paketkan kedua class tadi dalam satu Package bernama bernama dosen dosen (gunakan keyword: (gunakan keyword: packagepackage))bernama bernama dosen dosen (gunakan keyword: (gunakan keyword: packagepackage))Buat Class Buat Class DosenBeraksiDosenBeraksi yang menjalankan yang menjalankan method yang ada di kedua Class tadi method yang ada di kedua Class tadi (gunakan keyword: (gunakan keyword: importimport))

74

InterfaceInterface

Interface digunakan apabila kita ingin Interface digunakan apabila kita ingin menentukan apa yang harus dilakukan menentukan apa yang harus dilakukan oleh suatu class tapi oleh suatu class tapi tidak menentukan tidak menentukan bagaimana cara untuk melakukannyabagaimana cara untuk melakukannya

75

bagaimana cara untuk melakukannyabagaimana cara untuk melakukannyaInterface sebenarnya sama dengan class, Interface sebenarnya sama dengan class, tapi hanya memiliki tapi hanya memiliki deklarasi method deklarasi method tanpa implementasitanpa implementasi

interfaceinterface IntLampuIntLampu{{public public static final static final intint KeadaanHidupKeadaanHidup=1;=1;public public static final static final intint KeadaanMatiKeadaanMati=0;=0;

bli bli b t tb t t id id hid khid k ()()

InterfaceBeraksi.javaInterfaceBeraksi.java

76

public public abstractabstract void void hidupkanhidupkan();();public public abstractabstract void void matikanmatikan();();

}}

class class LampuLampu implementsimplements IntLampuIntLampu{{intint statusLampustatusLampu=0;=0;

ppublicublic void void hidupkanhidupkan(){(){if (if (this.statusLamputhis.statusLampu == == KeadaanMatiKeadaanMati){){

this.statusLamputhis.statusLampu = = KeadaanHidupKeadaanHidup;;System.out.printlnSystem.out.println("("HidupkanHidupkan LampuLampu! ! ----> > LampuLampu HidupHidup");");

}else{}else{System.out.printlnSystem.out.println("("HidupkanHidupkan LampuLampu! ! ----> > LampuLampu SudahSudah HidupHidup

KokKok");}");}

77

KokKok );});}}}

public void public void matikanmatikan(){(){if (if (this.statusLamputhis.statusLampu == == KeadaanHidupKeadaanHidup){){

this.statusLamputhis.statusLampu = = KeadaanMatiKeadaanMati;;System.out.printlnSystem.out.println("("MatikanMatikan LampuLampu! ! ----> > LampuLampu MatiMati");");

}else{}else{System.out.printlnSystem.out.println("("MatikanMatikan LampuLampu! ! ----> > LampuLampu SudahSudah MatiMati KokKok");");}}}}}}

public class public class InterfaceBeraksiInterfaceBeraksi{{public static void main(String[] public static void main(String[] argsargs){){

LampuLampu lampuKamarlampuKamar = new = new LampuLampu();();

System.out.printlnSystem.out.println("Status ("Status LampuLampu SaatSaat IniIni: : MatiMati");");

78

lampuKamar.hidupkanlampuKamar.hidupkan(); //(); //HidupkanHidupkan LampuLampulampuKamar.matikanlampuKamar.matikan(); //(); //MatikanMatikan LampuLampulampuKamar.matikanlampuKamar.matikan(); //(); //MatikanMatikan LampuLampulampuKamar.hidupkanlampuKamar.hidupkan(); //(); //HidupkanHidupkan LampuLampulampuKamar.hidupkanlampuKamar.hidupkan(); //(); //HidupkanHidupkan LampuLampu

}}}}

Object-Oriented Programming

[email protected]://romisatriawahono.net

Latihan Latihan

Buat program serupa dengan Buat program serupa dengan InterfaceBeraksi.java tapi untuk InterfaceBeraksi.java tapi untuk ACBeraksi.javaACBeraksi.javaM kk th dM kk th d th d di b h k th d di b h k Masukkan methodMasukkan method--method di bawah ke method di bawah ke dalam dalam ACBeraksi.javaACBeraksi.java

matikanAC() dan hidupkanAC()matikanAC() dan hidupkanAC()dinginkanAC() dan panaskanAC ()dinginkanAC() dan panaskanAC ()

79

Tugas MandiriTugas Mandiri

Buat situs blogBuat situs blog, bisa ditempat gratis semacam , bisa ditempat gratis semacam wordpress.com atau blogspot.com, atau hosting wordpress.com atau blogspot.com, atau hosting secara profesionalsecara profesionalPilih satu topik tentang konsep OOPPilih satu topik tentang konsep OOP, jelaskan , jelaskan d b h d (b h ) d d b h d (b h ) d dengan bahasa sendiri (bahasa manusia) dan dengan bahasa sendiri (bahasa manusia) dan sampaikan code yang orisinal (tidak mengambil sampaikan code yang orisinal (tidak mengambil dari tempat lain)dari tempat lain)Daftar di university.romisatriawahono.netDaftar di university.romisatriawahono.net, , upload url blog yang telah dibuat melalui fitur upload url blog yang telah dibuat melalui fitur tugas mandiritugas mandiri

80

Java API untuk Referensi Java API untuk Referensi PemrogramanPemrograman

81

Referensi Referensi --11--

Sharon Zakhour et al, Sharon Zakhour et al, The Java Tutorial The Java Tutorial Fourth EditionFourth Edition, , http://java.sun.com/docs/books/tutorialhttp://java.sun.com/docs/books/tutorialDeitel & Deitel, Deitel & Deitel, Java How to ProgramJava How to Program Sixth Sixth EditionEdition Prentice Hall 2004 Prentice Hall 2004EditionEdition, Prentice Hall, 2004, Prentice Hall, 2004Kathy Sierra & Bert Bates, Kathy Sierra & Bert Bates, Head First Java Head First Java 2nd Edition2nd Edition, O’Reilly, 2005, O’Reilly, 2005Rogers Cadenhead & Laura Lemay, Rogers Cadenhead & Laura Lemay, Teach Teach Yourself Java 6 in 21 DaysYourself Java 6 in 21 Days, Sams Publishing, , Sams Publishing, 20072007

84

Object-Oriented Programming

[email protected]://romisatriawahono.net

Referensi Referensi --22--

Tim Pengembang JENI, Tim Pengembang JENI, JENI 1JENI 1--66, , Depdiknas, 2007Depdiknas, 2007Abdul Kadir, Abdul Kadir, Dasar Pemrograman Java 2Dasar Pemrograman Java 2, , Penerbit Andi, 2004Penerbit Andi, 2004Indrajani dan Martin Indrajani dan Martin P mr graman B rbasis P mr graman B rbasis Indrajani dan Martin, Indrajani dan Martin, Pemrograman Berbasis Pemrograman Berbasis Objek dengan JavaObjek dengan Java, Elex Media Komputindo, , Elex Media Komputindo, 20072007

85