Anda di halaman 1dari 13

Object-Oriented Programming

romi@romisatriawahono.net
http://romisatriawahono.net
OOP Concepts OOP Concepts
1
Romi Romi Satria Satria Wahono Wahono
romi@romisatriawahono.net romi@romisatriawahono.net
http://romisatriawahono.net http://romisatriawahono.net
YM: YM: romi_sw romi_sw
SD Sompok Semarang (1987) SD Sompok Semarang (1987)
SMPN 8 Semarang (1990) SMPN 8 Semarang (1990)
SMA Taruna Nusantara, Magelang (1993) SMA Taruna Nusantara, Magelang (1993)
S1, S2 dan S3 (on S1, S2 dan S3 (on- -leave) dari leave) dari Department Department of of
Computer Sciences Computer Sciences Saitama University Saitama University Japan (1994 Japan (1994
Romi Satria Wahono Romi Satria Wahono
2
Computer Sciences, Computer Sciences, Saitama University Saitama University, Japan (1994 , Japan (1994--
2004) 2004)
Core Competence: Core Competence: Software Software Engineering Engineering, eLearning , eLearning
System, Knowledge Management System, Knowledge Management
Peneliti Peneliti di di Lembaga Lembaga Ilmu Ilmu Pengetahuan Pengetahuan Indonesia Indonesia
Founder Founder dan dan Koordinator Koordinator IlmuKomputer.Com IlmuKomputer.Com
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) Polymorphisme (Encapsulation) Pewarisan (Inheritance) Polymorphisme
3
(Encapsulation), Pewarisan (Inheritance), Polymorphisme (Encapsulation), Pewarisan (Inheritance), Polymorphisme
3. 3. Konsep Lanjut Konsep Lanjut Pemrograman Pemrograman Berorientasi Berorientasi Obyek Obyek::
Constructor, Destructor, Overloading, Overriding, Keyword Constructor, Destructor, Overloading, Overriding, Keyword
This, Multithreading, Package, Interface, Exception This, Multithreading, Package, Interface, Exception
eLearning eLearning Course: Course: http://university.romisatriawahono.net http://university.romisatriawahono.net
Enrolment Key: Enrolment Key: oop oop
Konsep Pemrograman Konsep Pemrograman
dan Paradigmanya dan Paradigmanya
4
Bahasa Pemrograman? Bahasa Pemrograman?
Komputer bekerja seperti Komputer bekerja seperti switching switching dan hanya dan hanya
mengenali 0 dan 1 mengenali 0 dan 1
Manusia Manusia tidak (paham) berbicara tidak (paham) berbicara dengan bahasa dengan bahasa
0 dan 1 0 dan 1
P l b h p g g d p t j di P l b h p g g 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
manusia manusia
Bahasa pemrograman diubah ke dalam bahasa Bahasa pemrograman diubah ke dalam bahasa
yang dipahami oleh komputer dengan yang dipahami oleh komputer dengan
menggunakan menggunakan interpreter interpreter atau atau kompiler kompiler
5
Tingkat Bahasa Pemrograman Tingkat Bahasa Pemrograman
Bahasa Pemrograman Tingkat Bahasa Pemrograman Tingkat Rendah Rendah
(Assembler) (Assembler)
Bahasa Pemrograman Tingkat Bahasa Pemrograman Tingkat Sedang Sedang
(C Pascal Fortran) (C Pascal Fortran) (C, Pascal, Fortran) (C, Pascal, Fortran)
Bahasa Pemrograman Tingkat Bahasa Pemrograman Tingkat Tinggi Tinggi
(Java, C++, C#) (Java, C++, C#)
6
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Compiler or Interpreter? Compiler or Interpreter?
Compiler: Compiler:
Mengkompilasi source code Mengkompilasi source code
menjadi bentuk menjadi bentuk file yang bisa file yang bisa
dieksekusi dieksekusi dieksekusi dieksekusi
Interpreter: Interpreter:
Mengkompilasi dan menjalankan Mengkompilasi dan menjalankan
source code source code secara langsung secara langsung
7
Assembly Language Assembly Language
00010100 00010100
001100101 001100101
LDA #47 LDA #47
STA $ STA $570 570
DEX DEX
JSR JSR $817 $817
CPX #0 CPX #0
BNE #14 BNE #14
Assembly language program Assembly language program
Translation Translation
program program
(Assembler) (Assembler)
8
00001000 00001000
100100101 100100101
010101010 010101010
10010 10010
Machine language program Machine language program
(executable file) (executable file)
y g g p g y g g p g
C Language C Language
##include < include <stdio.h stdio.h>>
main main() ()
{{
printf(Hall ) printf(Hall )
CC Compiler Compiler
0001010000 0001010000
1100101000 1100101000
0100010010 0100010010
01010101010 01010101010
1010010 1010010
9
printf(Hallo); printf(Hallo);
}}
C Program C Program
1010010 1010010
Machine language program Machine language program
((executable .exe executable .exe file) file)
J ava Language J ava Language
10
Paradigma Pemrograman Paradigma Pemrograman
Sudut pandang dan style pemrograman Sudut pandang dan style pemrograman
berhubungan dengan bagaimana sebuah masalah berhubungan dengan bagaimana sebuah masalah
diformulasikan dalam bahasa pemrograman diformulasikan dalam bahasa pemrograman
Functional Programming Functional Programming: Urutan fungsi secara : Urutan fungsi secara
sekuensial (Scheme Lisp) sekuensial (Scheme Lisp) sekuensial (Scheme, Lisp) sekuensial (Scheme, Lisp)
Procedural Programming Procedural Programming: Pemecahan masalah : Pemecahan masalah
berdasarkan prosedural kerja. Fungsi adalah unit berdasarkan prosedural kerja. Fungsi adalah unit
programming (C, Pascal, Fortran) programming (C, Pascal, Fortran)
Object Object- -Oriented Programming Oriented Programming: Koleksi object yang : Koleksi object yang
saling berinteraksi . Class adalah unit programming saling berinteraksi . Class adalah unit programming
(Java, C#, C++) (Java, C#, C++)
11
Tool Pemrograman J ava Tool Pemrograman J ava
1. 1. Text Editor + Compiler (Interpreter) Text Editor + Compiler (Interpreter)::
TextPad, Notepad++, Java Standard Edition TextPad, Notepad++, Java Standard Edition
2. 2. Integrated Development Environment Integrated Development Environment (IDE): (IDE):
Eclipse, Netbeans, JCreator Eclipse, Netbeans, JCreator
12
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Install, Compile and Install, Compile and
Running J ava Running J ava
13
Java Java Standard Edition Standard Edition
((JJava ava SE SE))
For For desktop, client/server desktop, client/server
application application
Java Java Enterprise Enterprise E Edition dition
J ava Family Suite J ava Family Suite
pp
((JJava ava EE EE))
For For e e--bussiness bussiness, e , e- -commerce commerce
web based application web based application
Java Java Micro Edition Micro Edition
((JJava ava ME ME))
For small devices, like For small devices, like
palm,handphone palm,handphone, etc , etc
Instalasi J ava Standard Edition Instalasi J ava Standard Edition
1. 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:
jdk jdk--6u6 6u6--windows windows- -i586 i586--p.exe p.exe
33 Klik Klik Start Start Control Panel Control Panel System System 3. 3. Klik Klik Start Start Control Panel Control Panel System System
Advanced Advanced Environment Variables Environment Variables dan set dan set
PATH: PATH:
;;C: C:\\Program Files Program Files\\Java Java\\jdk1.6.0_ jdk1.6.0_06 06\\bin bin
4. 4. Instal text editor untuk editing code: Instal text editor untuk editing code:
textpad, notepad++, JCreator textpad, notepad++, JCreator
15
javac javac compiler compiler
Interpreter Interpreter Interpreter Interpreter Interpreter Interpreter Interpreter Interpreter
Jalankan dengan: Jalankan dengan:
1. 1. C: C:\\>java >java Hello Hello (Application) (Application)
2. 2. Web Browser Web Browser (Applet) (Applet)
How J ava Works? How J ava Works?
public class Hello public class Hello
public static void main(String[] public static void main(String[] args args){ ){
System.out.println System.out.println("Hello World!"); ("Hello World!");
}}
}}
Hello.java
Java bytecode
(Hello.class)
Kompiler memproduksi Kompiler memproduksi
Bytecode (Class) Bytecode (Class)
WebServer WebServer Write Once Run Everywhere ! Write Once Run Everywhere !
Menulis Program Menulis Program Halo Semarang Halo Semarang
public public class class HHal alo{ o{
public static void main(String[] public static void main(String[] args args){ ){
System.out.println System.out.println( (Halo Semarang Halo Semarang"); ");
}}
}}
17
GUI Version GUI Version Halo Semarang Halo Semarang
import import javax.swing javax.swing.*; .*;
public class public class HaloGUI HaloGUI{{
public static void main( String[] public static void main( String[] args args ){ ){
JOptionPane.showMessageDialog JOptionPane.showMessageDialog(null, "Halo Semarang"); (null, "Halo Semarang");
}}
18
}}
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Compile and Run J ava Applet Compile and Run J ava Applet
import import java.applet java.applet.*; .*;
import java.awt.*; import java.awt.*;
public public class class HelloWorld HelloWorld extends Applet { extends Applet {
public void paint(Graphics g) { public void paint(Graphics g) {
g.drawString g.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.java javac HelloWorld.java
C: C:\\appletviewer Hello.html appletviewer Hello.html
Menulis J ava Program Menulis J ava 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[] args args) )
Program Java mulai dari sini Program Java mulai dari sini! !
Bentuk program: Bentuk program:
1. 1. GUI application GUI application public public class class biasanya biasanya
menggunakan Frame (AWT), menggunakan Frame (AWT), Jframe Jframe(Swing) (Swing)
2. 2. Text Text based Console based Console Application Application public public class class
adalah adalah class class yang sederhana yang sederhana
Tugas: Tulis dan Compile Halo.J ava Tugas: Tulis dan Compile Halo.J ava
public 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);
21
y p g y p g
}}
}}
Konsep Dasar Konsep Dasar
Pemrograman Pemrograman
Berorientasi Objek Berorientasi Objek
22
Berorientasi Objek? Berorientasi Objek?
Attribute: Attribute:
Topi, Baju, Tas Topi, Baju, Tas
Punggung, Jaket, Punggung, Jaket,
Tangan, Kaki, Mata Tangan, Kaki, Mata
hh
23
Behavior: Behavior:
Cara Cara Jalan ke Depan Jalan ke Depan
Cara Jalan Mundur Cara Jalan Mundur
Cara Cara Belok ke Kiri Belok ke Kiri
Cara Memanjat Cara 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 Produksi Produksi
Behavior: Behavior:
Cara Menghidupkan Mesin Cara Menghidupkan Mesin
Cara Manjalankan Mobil Cara Manjalankan Mobil
Cara Memundurkan Mobil Cara Memundurkan Mobil
24
Attribute Attribute Variable(Member) Variable(Member)
Behavior Behavior Method(Fungsi Method(Fungsi))
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Tugas Tugas
1. 1. Lakukan kegiatan berorientasi objek Lakukan kegiatan berorientasi objek
dengan target dengan target Sepeda Sepeda
2. 2. Pikirkan apa Pikirkan apa atribut dan behavior atribut dan behavior yang yang
dimiliki oleh Sepeda tersebut dimiliki oleh Sepeda tersebut dimiliki oleh Sepeda tersebut dimiliki oleh Sepeda tersebut
25
Procedural vs Object Procedural vs Object- -Oriented Oriented
main
perform transaction
Account
credit
debit
26
compute fees
if checking
then xxx
if savings
then xxx
etc.
compute interest
if checking
then xxx
if savings
then xxx
etc.
debit credit
SavingsAccount
compute interest
compute fees
CheckingAccount
compute interest
compute fees
Karakteristik OOP Karakteristik OOP - -11- -
Abstraction Abstraction:Cara kita :Cara kita melihat suatu sistem melihat suatu sistem
dalam bentuk yang lebih sederhana dalam 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
kemudi sistem pengereman kemudi sistem pengereman kemudi, sistem pengereman kemudi, sistem pengereman
Encapsulation Encapsulation: 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 sendiri sistem itu sendiri
Tongkat transmisi (gigi) pada mobil Tongkat transmisi (gigi) pada mobil
Tombol on/off/pengaturan suhu pada AC Tombol on/off/pengaturan suhu pada AC
27
Karakteristik OOP Karakteristik OOP - -22- -
Inheritance Inheritance: Suatu class dapat : Suatu class dapat mewariskan mewariskan
atribut dan method atribut dan method kepada class lain (subclass), kepada class lain (subclass),
serta membentuk class hierarchy serta membentuk class hierarchy
28
Karakteristik OOP Karakteristik OOP - -33- -
Modularity Modularity: : Sifat object adalah modular. Sifat object adalah modular. Object Object
dapat ditulis dan dimaintain terpisah dapat ditulis dan dimaintain terpisah
(independen) (independen) dari object lain dari object lain
Polymorphism Polymorphism: Suatu : Suatu object dapat memiliki object dapat memiliki
berbagai bentuk berbagai bentuk, sebagai object dari classnya , sebagai object dari classnya gg g j y g j y
sendiri atau object dari superclassnya sendiri atau object dari superclassnya
Overloading Overloading: Penggunaan : Penggunaan satu nama untuk beberapa satu nama untuk beberapa
method method yang berbeda (beda parameter) yang berbeda (beda parameter)
Overriding Overriding: Terjadi ketika deklarasi method subclass : Terjadi ketika deklarasi method subclass
dengan nama dan parameter yang sama dengan dengan nama dan parameter yang sama dengan
method dari superclassnya method dari superclassnya
29
Class dan Object Class dan Object - -11- -
Class: Class: mobil mobil
Object: Object: mobilnya pak Joko, mobilku mobilnya pak Joko, mobilku
Class seperti Class seperti cetakan kue cetakan kue, dimana kue yg , dimana kue yg
dihasilkan dari cetakan kue itu adalah dihasilkan dari cetakan kue itu adalah object object dihasilkan dari cetakan kue itu adalah dihasilkan dari cetakan kue itu adalah object object
Warna kue bisa bermacam Warna kue bisa bermacam- -macam meskipun macam meskipun
berasal dari cetakan yang sama ( berasal dari cetakan yang sama (object memiliki object memiliki
sifat independen sifat independen))
Object adalah Object adalah instance dari Class instance dari Class
30
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Class and Object Class and Object - -22- -
Class = Class = method+ method+variable variable
The The Bicycle Bicycle class class
Class dan Object Class dan Object - -33- -
32
Bicycle Bicycle dimodelkan sebagai sebuah dimodelkan sebagai sebuah object object::
10 mph, 90 rpm, 5 10 mph, 90 rpm, 5
th th
gear adalah gear adalah instance variable instance variable
changegears changegears, brake, , brake, changecadence changecadence adalah adalah instance instance method method
Attribute Attribute
AAttribute ttribute 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. Name Name, age, , age, dan dan weight weight
adalah atribute dari class Person adalah atribute dari class Person
Method Method
MMethod ethod adalah adalah implementasi dari implementasi dari
bagaimana bekerjanya sebuah class bagaimana bekerjanya sebuah class
Method melakukan: Method melakukan:
11 Manipulasi data Manipulasi data 1. 1. Manipulasi data Manipulasi data
2. 2. Perhitungan matematika Perhitungan matematika
3. 3. Memonitor kejadian dari suatu event Memonitor kejadian dari suatu event
Membuat Class dan Memanggil Object Membuat Class dan Memanggil Object
(MobilBeraksi.java) (MobilBeraksi.java)
class 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){
// M b t bj t // M b t bj t // Membuat object // Membuat object
Mobil 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.warna mobilku.warna); );
System.out.println("Tahun: " + System.out.println("Tahun: " + mobilku.tahunProduksi) mobilku.tahunProduksi);;
}} }}
35
Membuat Class dan Memanggil Object Membuat Class dan Memanggil Object
(MobilBeraksi2.java) (MobilBeraksi2.java)
class 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);
}} }}
public class MobilBeraksi2{ public class MobilBeraksi2{
public static void main(String[] args){ public static void main(String[] args){
// Membuat object // Membuat object
Mobil2 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();
}} }}
36
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Tugas Tugas
Kembangkan Class Kembangkan Class Mobil2 Mobil2, ubah nama menjadi , ubah nama menjadi
Mobil3 Mobil3 masukkan method: masukkan method:
hidupkanMobil() hidupkanMobil()
matikanMobil() matikanMobil()
b h () b h () ubahGigi() ubahGigi()
Isi masing Isi masing- -masing method dengan tampilan masing method dengan tampilan
status menggunakan status menggunakan System.out.println() System.out.println()
Panggil method Panggil method- -method diatas dari method diatas dari
MobilBeraksi3 MobilBeraksi3
37
Message Message dan Parameter dan Parameter - -11- -
Bicycle akan berguna apabila ada object lain Bicycle akan berguna apabila ada object lain ((misalnya anda misalnya anda) )
yang berinterasi dengan Bicycle tersebut yang berinterasi dengan Bicycle tersebut
Object software berinteraksi dan berkomunikasi dengan Object software berinteraksi dan berkomunikasi dengan
object lain dengan cara mengirimkan object lain dengan cara mengirimkan message message . Informasi . Informasi
dalam message ini dikenal dengan nama dalam message ini dikenal dengan nama Parameter Parameter
38
Message Message dan Parameter dan Parameter - -22- -
39
1. 1. You You object pengirim ( object pengirim (sender sender) )
2. 2. YourBicycle YourBicycle object penerima (receiver) object penerima (receiver)
3. 3. cchangeGears hangeGears the message, the method to perform the message, the method to perform
4. 4. lowerGear lowerGear information from You to information from You to YourBicycle YourBicycle, the , the
parameters parameters needed by the method needed by the method
Membuat Class (SepedaBeraksi.java) Membuat Class (SepedaBeraksi.java)
class Sepeda{ class Sepeda{
int kecepatan = 0; int kecepatan = 0;
int gir = 0; int gir = 0;
// method // method
void ubahGir(int pertambahanGir) void ubahGir(int pertambahanGir) {{
gir= gir+ pertambahanGir gir= gir+ pertambahanGir gir= 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);
}}
}}
40
Membuat dan Memanggil Object Membuat dan Memanggil Object
public class SepedaBeraksi{ public class SepedaBeraksi{
public static void main(String[] args) { public static void main(String[] args) {
// Membuat object // Membuat object
Sepeda sepedaku = new Sepeda(); Sepeda sepedaku = new Sepeda();
//memanggil atribut dan memberi nilai //memanggil atribut dan memberi nilai
sepedaku kecepatan=10 sepedaku kecepatan=10 sepedaku.kecepatan=10; sepedaku.kecepatan=10;
sepedaku.gir=2; sepedaku.gir=2;
// Memanggil method dan menunjuk nilai parameter // Memanggil method dan menunjuk nilai parameter
sepedaku.tambahKecepatan(30); sepedaku.tambahKecepatan(30);
sepedaku.ubahGir(3); sepedaku.ubahGir(3);
}}
}}
41
Tugas Tugas
Buat Class bernama Buat Class bernama Matematika Matematika, yang berisi , yang berisi
method dengan dua parameter: method dengan dua parameter:
pertambahan pertambahan
pengurangan pengurangan
perkalian perkalian
pembagian pembagian p g p g
Buat Class bernama Buat Class bernama MatematikaBeraksi MatematikaBeraksi, yang , yang
mengeksekusi method dan menampilkan: mengeksekusi method dan menampilkan:
Pertambahan: 20 + 20 = 40 Pertambahan: 20 + 20 = 40
Pengurangan: 10 Pengurangan: 10- -5 = 5 5 = 5
Perkalian: 10x20 = 200 Perkalian: 10x20 = 200
Pembagian: 21/2 = 10.5 (float or double) Pembagian: 21/2 = 10.5 (float or double)
42
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Tips Membuat C Tips Membuat Class lass
1 file 1 file bisa berisi bisa berisi >=1 >=1 class class
1 file 1 file hanya dapat berisi 1 public class hanya dapat berisi 1 public class
Nama file harus sama dengan nama Nama file harus sama dengan nama
public public class class sifatnya adalah c sifatnya adalah case ase sensitive sensitive
43
public public class class sifatnya adalah c sifatnya adalah case ase sensitive sensitive
Tips: Tips: Lebih baik dan lebih mudah Lebih baik dan lebih mudah
dipahami apabila dipahami apabila satu file berisi hanya satu file berisi hanya
satu class satu class
Kata Kunci this Kata Kunci this
Digunakan pada pembuatan class dan digunakan Digunakan pada pembuatan class dan digunakan
untuk untuk menyatakan object sekarang menyatakan 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;
44
vvoid isiData(String oid isiData(String warnaMobil, int warnaMobil, int
tahunProduksiMobil){ tahunProduksiMobil){
warna = warnaMobil; warna = warnaMobil;
tahunProduksi = tahunProduksiMobil; tahunProduksi = tahunProduksiMobil;
}}
vvoid isiData(String oid 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 diciptakan pada saat object diciptakan
Dipanggil secara otomatis ketika Dipanggil secara otomatis ketika new new
digunakan untuk membuat instan class digunakan untuk membuat instan class gg
Sifat konstruktor: Sifat konstruktor:
Nama konstruktor Nama konstruktor sama dengan nama class sama dengan nama class
Tidak memiliki nilai balik Tidak memiliki nilai balik dan tidak boleh ada dan tidak boleh ada
kata kunci void kata kunci void
45
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();
}} }}
46
Class Access Level Class Access Level
Specifier Specifier Class Class Package Package SubClass SubClass World World
private private
47
no specifier no specifier
protected protected
public public
Tugas: Tugas:
1. 1. Buat class Buat class Buku Buku
2. 2. Tentukan variable buku: Tentukan variable buku: Judul, Pengarang, Penerbit Judul, Pengarang, Penerbit
dan Tahun dan Tahun
3. 3. Buat konstruktor class Buku dengan parameter: Buat konstruktor class Buku dengan parameter:
Judul, Pengarang, Penerbit dan Tahun Judul, Pengarang, Penerbit dan Tahun
B h d B h d kB k kB k 4. 4. Buat method Buat method cetakBuku cetakBuku
5. 5. Buat class Buat class BukuBeraksi BukuBeraksi dan tampilkan 2 buku: dan tampilkan 2 buku:
Pemrograman Berbasis Objek dengan Java, Indrajani, Pemrograman Berbasis Objek dengan Java, Indrajani,
Elexmedia Komputindo, 2007 Elexmedia Komputindo, 2007
Dasar Pemrograman Java, Abdul Kadir, Andi Offset, Dasar Pemrograman Java, Abdul Kadir, Andi Offset,
2006 2006
48
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Inheritance (Pewarisan) Inheritance (Pewarisan)
Reusability Reusability
Top down: Top down:
Being more Being more specific specific
Bottom Up: Bottom Up:
Find Find similiarity similiarity
49
ind ind imi ia ity imi ia ity
Java Keyword: Java Keyword:
extends extends
Sepeda.java Sepeda.java
class Sepeda{ class Sepeda{
int kecepatan = 0; int kecepatan = 0;
int gir = 0; int gir = 0;
// method // method
void ubahGir(int pertambahanGir) void ubahGir(int pertambahanGir) {{
gir= gir+ pertambahanGir gir= gir+ pertambahanGir gir= 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);
}}
}}
50
SepedaGunungBeraksi.java SepedaGunungBeraksi.java
class class SepedaGunung SepedaGunung extends extends Sepeda Sepeda { {
int setSadel; int setSadel;
public void s public void setSadel etSadel( (int int nilaiSadel nilaiSadel) { ) {
setSadel = setSadel = nilaiSadel nilaiSadel; ;
class SepedaGunungBeraksi { class SepedaGunungBeraksi {
public static void main(String[] args) { public static void main(String[] args) {
// Membuat object // Membuat object
SepedaGunung sepedaku = new sepedaGunung(); SepedaGunung sepedaku = new sepedaGunung();
// Memanggil method di object // Memanggil method di object
System.out.println(Tinggi System.out.println(Tinggi
Sadel:+setSadel); Sadel:+setSadel);
} }
} }
51
sepedaku.tambahKecepatan(10); sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2); sepedaku.ubahGir(2);
sepedaku.setSadel(20); sepedaku.setSadel(20);
}}
}}
Tugas Tugas
Buat class Buat class Mobil3BMW Mobil3BMWyang merupakan inherit yang merupakan inherit
dari class dari class Mobil3 Mobil3
Tambahkan method Tambahkan method nontonTV() nontonTV() yang yang
menampilkan tulisan di layar: menampilkan tulisan di layar:
TV dihidupkan TV dihidupkan
TV mencari channel TV mencari channel
TV menampilkan gambar TV menampilkan gambar
Buat class Buat class Mobil3BMWBeraksi Mobil3BMWBeraksi yang memanggil yang memanggil
method method nontonTV, hidupkanMobil, nontonTV, hidupkanMobil,
matikanMobil, ubahGigi matikanMobil, ubahGigi
52
Konsep Lanjut Konsep Lanjut
Pemrograman Pemrograman
Berorientasi Berorientasi Ob Obj jek ek
53
Polymorphism Polymorphism
Polymorphism Polymorphism: 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 superclassnya dari superclassnya
ll
54
Overloading Overloading: Penggunaan satu nama : Penggunaan satu nama
untuk beberapa method yang berbeda untuk beberapa method yang berbeda
(beda parameter) (beda parameter)
Overriding Overriding: Terjadi ketika deklarasi method : Terjadi ketika deklarasi method
subclass dengan nama dan parameter yang subclass dengan nama dan parameter yang
sama dengan method dari superclassnya sama dengan method dari superclassnya
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Polymorphism Polymorphism Overloading Overloading
class 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 mobil Mobil mobilmu mu = new Mobil(); = new Mobil();
mobil mobilmu. 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);
}}
}}
55
}}
}}
Contoh Lain Overloading Contoh Lain Overloading
class Lingkaran{ class Lingkaran{
public public buatLingkaran(int diameter) buatLingkaran(int diameter){{
}}
bli bli b tLi k (i t di t i t i t ) b tLi k (i t di t i t i t ){{ 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, buatLingkaran(int diameter, int x, int y,
int warna, String namaLingkaran) int warna, String namaLingkaran){{
}}
}}
56
Polymorphism Polymorphism - - Overriding Overriding
//Filename: Point2D.java //Filename: Point2D.java
public class Point2D{ public class Point2D{
int int x, y; // member variable x, y; // member variable
public Point2D() public Point2D() { {
x=0 x=0; y = 0 ; y = 0;;
}}
public Point2D( public Point2D(int int nx nx, , int int ny ny){ ){
tP i t tP i t(( ))
// continue class Point // continue class Point de decl claration aration
// getter method // getter method
int int getX getX() { return x; } () { return x; }
int int getY getY() { return y; } () { return y; }
// // overide overide method from class Object method from class Object
public String public String toString toString(){ (){
return return x: x: +x +x , y: , y: +y; +y;
}}
57
setPoint setPoint((nx nx, , ny ny); );
}}
// setter method // setter method
public public setPoint setPoint( (int int nx nx, , int int ny ny){ ){
x = x = nx nx;;
y = y = ny ny;;
}}
}}
}}
Tugas Tugas
1. 1. Kembangkan class Kembangkan class Matematika Matematika dan dan
MatematikaBeraksi MatematikaBeraksi
2. 2. Lakukan Lakukan overloading pada Method overloading pada Method yang ada yang ada
(pertambahan, pengurangan, perkalian, (pertambahan, pengurangan, perkalian,
pembagian) Meth d baru adalah bertipe data pembagian) Meth d baru adalah bertipe data pembagian) . Method baru adalah bertipe data pembagian) . Method baru adalah bertipe data
double double (pecahan) dan (pecahan) dan memiliki 3 parameter memiliki 3 parameter
3. 3. Uji di kelas Uji di kelas MatematikaBeraksi MatematikaBeraksi dengan dengan
parameter pecahan: 12.5, 28.7, 14.2 parameter 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)
58
Tugas: Tugas:
1. 1. Kembangkan class Kembangkan class Buku Buku dan BukuBeraksi dan BukuBeraksi
2. 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
ll parameter parameter: Judul, Pengarang saja : Judul, Pengarang saja
3. 3. Panggil kedua konstruktor class Panggil kedua konstruktor class Buku Buku tadi tadi
dari class dari class BukuBeraksi BukuBeraksi
59
Packages Packages
PPackage ackage 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
namespace namespace
1 package 1 package adalah adalah 1 1 subfolder subfolder di di file file system system
60
1 package 1 package adalah adalah 1 1 subfolder subfolder di di file file system system
Package sangat berguna untuk Package sangat berguna untuk
mengorganisir file dalam suatu project atau mengorganisir file dalam suatu project atau
library library
Nama package menggunakan lowercase Nama package menggunakan lowercase
Keyword Keyword: : package name; package name;
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Budi.java Budi.java
package kelasku; package kelasku;
public public class Budi{ class Budi{
p bli id inf (){ p bli id inf (){ public void info(){ public void info(){
System.out.println(Kelas Budi); System.out.println(Kelas Budi);
}}
}}
61
J oko.java J oko.java
package kelasku; package kelasku;
public public class Joko{ class Joko{
p bli id inf (){ p bli id inf (){ public void info(){ public void info(){
System.out.println(Kelas Joko); System.out.println(Kelas Joko);
}}
}}
62
PaketBeraksi.java PaketBeraksi.java
import 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();
}}
}}
63
Tugas Tugas
Buat class Buat class Budi Budi dan dan Joko Joko
Buat method Buat method info() info() yang menampilkan Ini yang menampilkan Ini
Kelas Budi dan Ini Kelas Joko Kelas Budi dan Ini Kelas Joko
Buat bethod Buat bethod matakuliah() matakuliah() menampilkan menampilkan
mata kuliah yang diajar Budi dan Joko mata kuliah yang diajar Budi dan Joko mata kuliah yang diajar Budi dan Joko mata kuliah yang diajar Budi dan Joko
Paketkan kedua class tadi dalam satu Package Paketkan kedua class tadi dalam satu Package
bernama bernama dosen dosen (gunakan keyword: (gunakan keyword: package package))
Buat Class Buat Class DosenBeraksi DosenBeraksi yang menjalankan yang menjalankan
method yang ada di kedua Class tadi method yang ada di kedua Class tadi
(gunakan keyword: (gunakan keyword: import import))
64
Tugas Tugas
Paketkan berbagai class yang kita buat Paketkan berbagai class yang kita buat
((Mobil dan Sepeda Mobil dan Sepeda) dalam package ) dalam package
transportasi transportasi
Panggil dari class lain Panggil dari class lain Panggil dari class lain Panggil dari class lain
((TransportasiBeraksi.java TransportasiBeraksi.java) dengan ) dengan
import import
65
Interface Interface
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 melakukannya bagaimana cara untuk melakukannya
66
bagaimana cara untuk melakukannya bagaimana cara untuk melakukannya
Interface sebenarnya sama dengan class, Interface sebenarnya sama dengan class,
tapi hanya memiliki tapi hanya memiliki deklarasi method deklarasi method
tanpa implementasi tanpa implementasi
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
interface interface IntLampu IntLampu{ {
public public static final static final int int KeadaanHidup KeadaanHidup=1; =1;
public public static final static final int int KeadaanMati KeadaanMati=0; =0;
bli bli b t t b t t id id hid k hid k () ()
InterfaceBeraksi.java InterfaceBeraksi.java
67
public public abstract abstract void void hidupkan hidupkan(); ();
public public abstract abstract void void matikan matikan(); ();
}}
class class Lampu Lampu implements implements IntLampu IntLampu{{
int int statusLampu statusLampu=0; =0;
ppublic ublic void void hidupkan hidupkan(){ (){
if ( if (this.statusLampu this.statusLampu == == KeadaanMati KeadaanMati){ ){
this.statusLampu this.statusLampu = = KeadaanHidup KeadaanHidup;;
System.out.println System.out.println(" ("Hidupkan Hidupkan Lampu Lampu! ! -- --> > Lampu Lampu Hidup Hidup"); ");
}else{ }else{
System.out.println System.out.println(" ("Hidupkan Hidupkan Lampu Lampu! ! -- --> > Lampu Lampu Sudah Sudah Hidup Hidup
Kok Kok");} ");}
68
Kok Kok );} );}
}}
public void public void matikan matikan(){ (){
if ( if (this.statusLampu this.statusLampu == == KeadaanHidup KeadaanHidup){ ){
this.statusLampu this.statusLampu = = KeadaanMati KeadaanMati;;
System.out.println System.out.println(" ("Matikan Matikan Lampu Lampu! ! -- --> > Lampu Lampu Mati Mati"); ");
}else{ }else{
System.out.println System.out.println(" ("Matikan Matikan Lampu Lampu! ! -- --> > Lampu Lampu Sudah Sudah Mati Mati Kok Kok"); ");
}}} }}}
public class public class InterfaceBeraksi InterfaceBeraksi{ {
public static void main(String[] public static void main(String[] args args){ ){
Lampu Lampu lampuKamar lampuKamar = new = new Lampu Lampu(); ();
System.out.println System.out.println("Status ("Status Lampu Lampu Saat Saat Ini Ini: : Mati Mati"); ");
69
lampuKamar.hidupkan lampuKamar.hidupkan(); // (); //Hidupkan Hidupkan Lampu Lampu
lampuKamar.matikan lampuKamar.matikan(); // (); //Matikan Matikan Lampu Lampu
lampuKamar.matikan lampuKamar.matikan(); // (); //Matikan Matikan Lampu Lampu
lampuKamar.hidupkan lampuKamar.hidupkan(); // (); //Hidupkan Hidupkan Lampu Lampu
lampuKamar.hidupkan lampuKamar.hidupkan(); // (); //Hidupkan Hidupkan Lampu Lampu
}}
}}
Tugas Tugas
Buat program serupa dengan Buat program serupa dengan
InterfaceBeraksi.java tapi untuk InterfaceBeraksi.java tapi untuk
ACBeraksi.java ACBeraksi.java
Masukkan method Masukkan method--method di bawah ke method di bawah ke Masukkan meth d Masukkan meth d meth d di bawah ke meth d di bawah ke
dalam dalam ACBeraksi.java ACBeraksi.java
matikanAC() dan hidupkanAC() matikanAC() dan hidupkanAC()
dinginkanAC() dan panaskanAC () dinginkanAC() dan panaskanAC ()
70
J ava API untuk Referensi J ava API untuk Referensi
Pemrograman Pemrograman
71
Object-Oriented Programming
romi@romisatriawahono.net
http://romisatriawahono.net
Referensi Referensi - -11- -
Sharon Zakhour et al, Sharon Zakhour et al, The Java Tutorial The Java Tutorial
Fourth Edition Fourth Edition, ,
http://java.sun.com/docs/books/tutorial http://java.sun.com/docs/books/tutorial
Deitel & Deitel, Deitel & Deitel, Java How to Program Java How to ProgramSixth Sixth
Edition Edition Prentice Hall 2004 Prentice Hall 2004 Edition Edition, Prentice Hall, 2004 , Prentice Hall, 2004
Kathy Sierra & Bert Bates, Kathy Sierra & Bert Bates, Head First Java Head First Java
2nd Edition 2nd Edition, OReilly, 2005 , OReilly, 2005
Rogers Cadenhead & Laura Lemay, Rogers Cadenhead & Laura Lemay, Teach Teach
Yourself Java 6 in 21 Days Yourself Java 6 in 21 Days, Sams Publishing, , Sams Publishing,
2007 2007
74
Referensi Referensi - -22- -
Tim Pengembang JENI, Tim Pengembang JENI, JENI 1 JENI 1--66, ,
Depdiknas, 2007 Depdiknas, 2007
Abdul Kadir, Abdul Kadir, Dasar Pemrograman Java 2 Dasar Pemrograman Java 2, ,
Penerbit Andi, 2004 Penerbit Andi, 2004
Indrajani dan Martin Indrajani dan Martin P mr graman B rba i P mr graman B rba i Indrajani dan Martin, Indrajani dan Martin, Pemrograman Berbasis Pemrograman Berbasis
Objek dengan Java Objek dengan Java, Elex Media Komputindo, , Elex Media Komputindo,
2007 2007
75

Anda mungkin juga menyukai