Professional Documents
Culture Documents
Materi Diskusi
OOP Concepts
1.
Kelas (Class), Obyek (Object), Pengkapsulan (Encapsulation), Pewarisan (Inheritance), Keyword This (Encapsulation) (Inheritance) This, Constructor
3.
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Bahasa Pemrograman?
Komputer bekerja seperti switching dan hanya mengenali 0 dan 1 Manusia tidak (paham) berbicara dengan bahasa 0 dan 1 Perlu b h p P l bahasa pemrograman yang dapat menjadi d p t j di perantara percakapan antara komputer dan manusia Bahasa pemrograman diubah ke dalam bahasa yang dipahami oleh komputer dengan menggunakan interpreter atau kompiler
8
Compiler or Interpreter? Compiler: Mengkompilasi source code menjadi bentuk file yang bisa dieksekusi Interpreter: Mengkompilasi dan menjalankan source code secara langsung
9 10
Assembly Language
LDA #47 STA $570 $570 DEX JSR $817 CPX #0 BNE #14 Assembly language program y g g p g
C Language
C Compiler
C Program
11
12
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Sudut pandang dan style pemrograman berhubungan dengan bagaimana sebuah masalah diformulasikan dalam bahasa pemrograman
Functional Programming: Urutan fungsi secara Programming: sekuensial (Scheme, Lisp) (Scheme Procedural Programming: Pemecahan masalah Programming: berdasarkan prosedural kerja yg terkumpul dalam unit pemrograman bernama fungsi (C, Pascal) ObjectObject-Oriented Programming: Koleksi object yang Programming: saling berinteraksi . Class adalah unit pemrograman (Java, C#, C++)
13
14
1. 2. 3.
Compiler (Interpreter): (Interpreter): Java Standard Edition (JSE) Text/Code Editor: Editor: TextPad, TextPad, Notepad++ Integrated Development Environment (IDE): Netbeans, Eclipse, JCreator
(*) IDE mengintegrasikan Compiler, Code Editor dan Visual (GUI) secara lengkap
15
16
4.
Download Java Standard Edition dari: http://java.sun.com/javase/downloads/ Instal Java Standard Edition dengan mengklik: jdk-6u6-windows-i586jdk-6u6-windows-i586-p.exe Klik Start Control Panel System Advanced Environment Variables dan set PATH: ;C:\Program Files\Java\jdk1.6.0_06\bin C:\ Files\Java\jdk1.6.0_06\ Instal text editor untuk editing code: textpad, notepad++, JCreator
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Hello.java
<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>
public class Halo{ alo{ public static void main(String[] args){ args){ System.out.println(Halo Semarang"); System.out.println(Halo Semarang"); } }
21
22
Bentuk program:
1. 2.
public class Halo{ public static void main(String[] args){ args){ System.out.println(Halo Semarang); } }
GUI application public class biasanya menggunakan Frame (AWT), Jframe(Swing) Jframe(Swing) Text based Console Application public class adalah class yang sederhana
24
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
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
25
26
Berorientasi Objek?
Latihan
1. 2.
Ban, Stir, Pedal Kopling/Gas/Rem, Warna, Tahun Produksi Cara Menghidupkan Mesin Cara Manjalankan Mobil Cara Memundurkan Mobil
Lakukan kegiatan berorientasi objek dengan target Sepeda Pikirkan apa atribut dan behavior yang dimiliki oleh Sepeda tersebut
Attribute Behavior
27
Karakteristik OOP -1Abstraction:Cara Abstraction:Cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sederhana, sebagai suatu kumpulan subsistem (object) yang saling berinteraksi.
Mobil adalah kumpulan sistem pengapian, sistem d p p g p , kemudi, sistem pengereman
Modularity: Modularity: Sifat object adalah modular. Object dapat ditulis dan dimaintain terpisah (independen) dari object lain
29 30
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Karakteristik OOP -2Encapsulation: Encapsulation: Mekanisme menyembunyikan suatu proses dalam sistem untuk menghindari interferensi dan menyederhanakan penggunaan sistem itu sendiri
Tongkat transmisi (gigi) pada mobil Tombol on/off/pengaturan suhu pada AC T b l / ff/ t h d
31
32
33
34
Karakteristik OOP -3Inheritance: Inheritance: Suatu class dapat mewariskan atribut dan method kepada class lain (subclass), serta membentuk class hierarchy
Karakteristik OOP -4Polymorphism: Polymorphism: Suatu object dapat memiliki berbagai bentuk, sebagai object dari classnya bentuk, sendiri atau object dari superclassnya
Overloading: Overloading: Penggunaan satu nama untuk beberapa method yang berbeda (beda parameter) Overriding: Overriding: Terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method dari superclassnya
35
36
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Class dan Object -1Class: mobil Object: mobilnya pak Joko, mobilku Class seperti cetakan kue, dimana kue yg kue, dihasilkan dari cetakan kue itu adalah object Warna kue bisa bermacam-macam meskipun bermacamberasal dari cetakan yang sama (object memiliki (object sifat independen) independen) Object adalah instance dari Class
37
Attribute
Attribute adalah berbagai variable yang mengitari class, dengan nilai datanya bisa ditentukan di object. Name, age, dan weight Name, adalah atribute dari class Person
Method Method adalah implementasi dari bagaimana bekerjanya sebuah class Method M th d melakukan: l k k
1. 2. 3.
Mobil.java
MobilBeraksi.java
// Membuat object
Mobil mobilku = new Mobil();
}}
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
Kembangkan Class Mobil2 Ubah nama classs menjadi MobilLengkap dan masukkan method:
hidupkanMobil() matikanMobil() matikanM bil() ubahGigi()
// Membuat object
Mobil2 mobilku = new Mobil2();
Isi masing-masing method dengan tampilan masingstatus menggunakan System.out.println() Panggil method-method diatas dari methodMobilLengkapBeraksi
44
}}
Message dan Parameter -1Bicycle akan berguna apabila ada object lain (misalnya anda) anda) yang berinterasi dengan Bicycle tersebut Object software berinteraksi dan berkomunikasi dengan object lain dengan cara mengirimkan message . Informasi dalam message ini dikenal dengan nama Parameter
1. You 3.
object pengirim (sender) (sender) object penerima (receiver) the message, the method to perform
2. YourBicycle changeGears
4. lowerGear information from You to YourBicycle, the YourBicycle, parameters needed by the method
45 46
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
Buat Class bernama Matematika, yang berisi Matematika, method dengan dua parameter: parameter:
pertambahan pengurangan perkalian p pembagian g
Buat Class bernama MatematikaBeraksi, yang MatematikaBeraksi, mengeksekusi method dan menampilkan:
Pertambahan: 20 + 20 = 40 Pengurangan: 10-5 = 5 10Perkalian: 10x20 = 200 Pembagian: 21/2 = 10.5 (float or double)
50
}}
Tips Membuat Class Class 1 file bisa berisi >=1 class 1 file hanya dapat berisi 1 public class Nama file harus sama dengan nama public class sifatnya adalah case sensitive case Tips: Lebih baik dan lebih mudah dipahami apabila satu file berisi hanya satu class
51 52
Konstruktor -1Method yang digunakan untuk memberi nilai awal pada saat object diciptakan Dipanggil secara otomatis ketika new g digunakan untuk membuat instan class Sifat konstruktor:
Nama konstruktor sama dengan nama class Tidak memiliki nilai balik dan tidak boleh ada kata kunci void
Konstruktor -2class Mobil { String warna; 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(); }}
53
54
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
1. 2. 3. 4. 5.
Class
Buat class Buku Tentukan variable buku: Judul, Pengarang, Penerbit dan Tahun Buat konstruktor class Buku dengan parameter: Judul, Pengarang, Penerbit dan Tahun Buat method cetakBuku B h d kB k Buat class BukuBeraksi dan tampilkan 2 buku:
Pemrograman Berbasis Objek dengan Java, Indrajani, Elexmedia Komputindo, 2007 Dasar Pemrograman Java, Abdul Kadir, Andi Offset, 2006
Inheritance (Pewarisan)
Reusability Top down:
Being more specific
Sepeda.java
class Sepeda{ int kecepatan = 0; int gir = 0; // method void ubahGir(int pertambahanGir) { gir= gir+ pertambahanGir pertambahanGir; System.out.println("Gir:" + gir); } void tambahKecepatan(int pertambahanKecepatan) { kecepatan = kecepatan+ pertambahanKecepatan; System.out.println("Kecepatan:" + kecepatan); }
58
Bottom Up:
Find similiarity ind imi ia ity
Java Keyword:
extends
57
Latihan
Buat class MobilBMW yang merupakan inherit dari class MobilLengkap Tambahkan method nontonTV() yang menampilkan tulisan di layar:
TV dihidupkan TV mencari channel TV menampilkan gambar
SepedaGunung.java
SepedaGunungBeraksi.java
Buat class MobilBMWBeraksi yang memanggil method nontonTV, hidupkanMobil, matikanMobil, ubahGigi
60
59
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Polymorphism
Polymorphism: Polymorphism: Suatu object dapat memiliki berbagai bentuk, sebagai object dari classnya sendiri atau object dari superclassnya
1. 2.
Overloading: Penggunaan satu nama untuk Overloading: l beberapa method yang berbeda parameter Overriding: Overriding: Terjadi ketika deklarasi method subclass sama dengan method dari superclassnya
61
62
Polymorphism Overloading
class Mobil { String warna; int tahunProduksi; public Mobil(String warna, int tahunProduksi){ this.warna = warna; this.tahunProduksi = tahunProduksi; } public Mobil(){ } void info(){ System.out.println("Warna: " + this.warna); System.out.println("Tahun: " + this.tahunProduksi); } }
63 64
public class MobilKonstruktor{ public static void main(String[] args){ Mobil mobilku = new Mobil(Merah, 2003); mobilku.info(); Mobil mobilmu = new Mobil(); mobilmu mobilmu.info(); mobilmu.info(); } }
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); }
65
SepedaGunung.java
SepedaGunungBeraksi.java
66
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
1. 2.
Matematika.java
class Matematika{ int hasilPertambahan1, hasilPertambahan2; public void pertambahan (int a, int b){ b){ hasilPertambahan1 = a + b; System.out.println(hasil: + hasilPertambahan1); System.out.println( hasil: } public void pertambahan (double a, double b, double c){ c){ hasilPertambahan2 = a + b + c; System.out.println(hasil: + hasilPertambahan2); } ...
68
3. 4.
Kembangkan class Matematika dan MatematikaBeraksi Lakukan overloading pada Method yang ada (pertambahan, pengurangan, perkalian, p pembagian) . Method baru adalah bertipe data g p 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)
67
Latihan
1. 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: Keyword: package name;
70
3.
Kembangkan class Buku dan BukuBeraksi Selain konstruktor class Buku dengan parameter: Judul, Pengarang, Penerbit dan Tahun, buat konstruktor lagi dengan parameter: parameter: Judul dan Pengarang saja l Panggil kedua konstruktor class Buku tadi dari class BukuBeraksi
69
Budi.java
package kelasku; public class Budi{ public id info(){ p bli void i f (){ System.out.println(Kelas Budi); } }
71 72
Joko.java
package kelasku; public class Joko{ public id info(){ p bli void i f (){ System.out.println(Kelas Joko); } }
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
PaketBeraksi.java
import kelasku.Budi; import kelasku.Joko; public class PaketBeraksi{ public static void main(String[] args){ Budi objectBudi = new Budi(); objectBudi.info(); Joko objectJoko = new Joko(); objectJoko.info(); } }
Latihan
Kembangkan class Budi dan Joko Buat method matakuliah() menampilkan mata kuliah yang diajar Budi dan Joko Paketkan kedua class tadi dalam satu Package bernama dosen (gunakan keyword: package) package) Buat Class DosenBeraksi yang menjalankan method yang ada di kedua Class tadi (gunakan keyword: import) import)
73
74
Interface
Interface digunakan apabila kita ingin menentukan apa yang harus dilakukan oleh suatu class tapi tidak menentukan bagaimana cara untuk melakukannya Interface sebenarnya sama dengan class, tapi hanya memiliki deklarasi method tanpa implementasi
75
InterfaceBeraksi.java
interface IntLampu{ IntLampu{ public static final int KeadaanHidup=1; KeadaanHidup=1; public static final int KeadaanMati=0; KeadaanMati=0; public abstract void hid k () bli b t t id hidupkan(); hidupkan(); public abstract void matikan(); matikan();
76
class Lampu implements IntLampu{ IntLampu{ int statusLampu=0; statusLampu=0; public void hidupkan(){ hidupkan(){ if (this.statusLampu == KeadaanMati){ (this.statusLampu KeadaanMati){ this.statusLampu = KeadaanHidup; KeadaanHidup; System.out.println("Hidupkan Lampu! --> System.out.println("Hidupkan Lampu! --> Lampu Hidup"); Hidup"); }else{ System.out.println("Hidupkan Lampu! --> System.out.println("Hidupkan Lampu! --> Lampu Sudah Hidup Kok");} Kok");} );} } public void matikan(){ matikan(){ if (this.statusLampu == KeadaanHidup){ (this.statusLampu KeadaanHidup){ this.statusLampu = KeadaanMati; KeadaanMati; System.out.println("Matikan Lampu! --> System.out.println("Matikan Lampu! --> Lampu Mati"); Mati"); }else{ System.out.println("Matikan Lampu! --> System.out.println("Matikan Lampu! --> Lampu Sudah Mati Kok"); Kok"); }}} 77
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: Mati"); Ini: Mati"); lampuKamar.hidupkan(); //Hidupkan lampuKamar.hidupkan(); //Hidupkan Lampu lampuKamar.matikan(); //Matikan lampuKamar.matikan(); //Matikan Lampu lampuKamar.matikan(); //Matikan lampuKamar.matikan(); //Matikan Lampu lampuKamar.hidupkan(); //Hidupkan lampuKamar.hidupkan(); //Hidupkan Lampu lampuKamar.hidupkan(); //Hidupkan lampuKamar.hidupkan(); //Hidupkan Lampu
78
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Latihan
Buat program serupa dengan InterfaceBeraksi.java tapi untuk ACBeraksi.java Masukkan method-method di bawah k M kk method- th d b th d h ke dalam ACBeraksi.java
matikanAC() dan hidupkanAC() dinginkanAC() dan panaskanAC ()
Tugas Mandiri
Buat situs blog, bisa ditempat gratis semacam blog, wordpress.com atau blogspot.com, atau hosting secara profesional Pilih satu topik tentang konsep OOP, jelaskan OOP, dengan bahasa sendiri (bahasa manusia) dan d b h d (b h )d sampaikan code yang orisinal (tidak mengambil dari tempat lain) Daftar di university.romisatriawahono.net, university.romisatriawahono.net, upload url blog yang telah dibuat melalui fitur tugas mandiri
80
79
81
Referensi -1Sharon Zakhour et al, The Java Tutorial Fourth Edition, Edition, http://java.sun.com/docs/books/tutorial Deitel & Deitel, Java How to Program Sixth Edition, Edition, Prentice Hall, 2004 Hall Kathy Sierra & Bert Bates, Head First Java 2nd Edition, OReilly, 2005 Edition, Rogers Cadenhead & Laura Lemay, Teach Yourself Java 6 in 21 Days, Sams Publishing, Days, 2007
84
http://romisatriawahono.net
romi@romisatriawahono.net
Object-Oriented Programming
Referensi -2Tim Pengembang JENI, JENI 1-6, 1Depdiknas, 2007 Abdul Kadir, Dasar Pemrograman Java 2, 2, Penerbit Andi, 2004 Indrajani dan Martin, Pemrograman Berbasis Martin P mr graman B rbasis Objek dengan Java, Elex Media Komputindo, Java, 2007
85
http://romisatriawahono.net
romi@romisatriawahono.net