Modul 0 - Pengenalan OOP
Modul 0 - Pengenalan OOP
Programming
Indra
[email protected]
+628568287734
Indra
SD Selandaka Banyumas (1992)
SMPN 1 Sumpiuh (1998)
SMAN1 Sumpiuh , Banyumas (2001)
S1 FTI Universitas Budi Luhur (2004-2007)
S2 Magister Teknologi Informasi UI (2009-2011)
Research Interests: Mobile Programming, Data
warehouse, Data Mining
Founder UBL Java Group, Tim Gemastik UBL
Lemigas (2007-2008)
LKPP (2011-2012)
Learning Design
Criterion Referenced
Educational Objectives Minimalism
Instruction
(Benjamin Bloom) (John Carroll)
(Robert Mager)
Start Immediately
Cognitive Competencies
Psychomotor Evaluation
Self-Contained
Learning Design
Pretest dan Posttest untuk
Mengukur Kompetensi Kognifif
Mahasiwa
2. Interpreter:
Mengkompilasi dan menjalankan
source code secara langsung
C Language (Compiler)
#include <stdio.h>
000101000011
001010000100
main() 010010010101
{ C Compiler 010101010010
printf(Hallo);
}
javac java
(Java Compiler) (Java Interpreter)
Tingkat Bahasa Pemrograman
2. Code Editor:
1. Text Editor:
TextPad, Notepad++
2. Integrated Development Environment (IDE):
Netbeans, Eclipse, JCreator
Instalasi Java SE dan Netbeans IDE
1. Instalasi Java SE dengan mengklik:
jdk-7u4-windows-i586.exe
(download dari: http://java.sun.com/javase/downloads)
Kompiler memproduksi
Bytecode (Class)
Hello.class
<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
C:\javac HelloWorld.java </HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="HelloWorld.class" WIDTH=150
HEIGHT=25>
</APPLET>
</BODY>
</HTML>
Applet on a Web Page
Menulis Program Java
Bentuk program:
1. Text-Based Console Application menggunakan
library non-GUI di Java
2. GUI Application menggunakan AWT atau Swing
untuk library GUI
Behavior:
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
Berorientasi Objek?
Attribute (State):
Ban, Stir, Pedal Rem, Pedal Gas,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute Variable(Member)
Behavior Method(Fungsi)
Perbedaan Class dan Object
Class: konsep dan deskripsi dari sesuatu
Class mendeklarasikan method yang dapat digunakan
(dipanggil) oleh object
Object: instance dari class, bentuk (contoh)
nyata dari class
Object memiliki sifat independen dan dapat digunakan untuk
memanggil method
Contoh Class dan Object:
Class: mobil
Object: mobilnya pak Joko, mobilku, mobil berwarna merah
Perbedaan Class dan Object
Class seperti cetakan kue, dimana kue yg
dihasilkan dari cetakan kue itu adalah object
Warna kue bisa bermacam-macam meskipun
berasal dari cetakan yang sama (object
memiliki sifat independen)
Class = Method + Variable
Class Sepeda gir
kecepatan variable
tampilkan kecepatan
instance
kecepatan = 10km/jam
variable
tampilkan kecepatan ()
kecepatan = 10 km/jam
instance
method
ubah gir (2)
gir = 5
Attribute
Variable yang mengitari class, dengan nilai datanya
bisa ditentukan di object
Variable digunakan untuk menyimpan nilai yang
nantinya akan digunakan pada program
Variable memiliki jenis (tipe), nama dan nilai
Name, age, dan weight adalah atribute (variabel) dari
class Person
Membuat Class, Object dan Memanggil Atribut
public class Mobil { Mobil.java
String warna;
int tahunProduksi;
}
void printMobil(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
public class Mobil2Beraksi{
public static void main(String[] args){
Mobil2Beraksi.java
Mobil2 mobilku = new Mobil2();
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
}
}
Latihan
Buat class Handphone, masukkan dalam
package hp
Class Handphone berisi empat method di bawah:
1. hidupkan()
2. lakukanPanggilan()
3. kirimSMS()
4. matikan()
Isi masing-masing method dengan tampilan status
menggunakan System.out.println()
Buat class HandphoneBeraksi, dan panggil
method-method diatas dalam class tersebut
Latihan: Hasil Tampilan
Handphone hidup
Kring, kring, kring panggilan dilakukan
Dung, dung sms berhasil terkirim
Handphone mati
Latihan
Buat class Mahasiswa yang berisi tiga method:
1. membaca()
2. nyontek()
3. modifikasi()
Isi masing-masing method dengan tampilan status
menggunakan System.out.println()
Buat class MahasiswaBeraksi, dan panggil
method-method diatas dalam class tersebut
Jenis Method: Mutator dan Accessor
Parameter
Sepeda akan berguna apabila ada object lain yang
berinterasi dengan sepeda tersebut
Object software berinteraksi dan berkomunikasi dengan
object lain dengan cara mengirimkan message atau pesan
Pesan adalah suatu method, dan informasi dalam pesan
dikenal dengan nama parameter
Pengiriman Pesan dan Parameter
// method (accessor)
int getGir() {
return gir;
}
}
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();
Abstraction, Encapsulation,
Inheritance, Polymorphism
Abstraction
Cara kita melihat suatu sistem dalam bentuk yang
lebih sederhana, yaitu sebagai suatu kumpulan
subsistem (object) yang saling berinteraksi.
Mobil adalah kumpulan sistem pengapian, sistem
kemudi, sistem pengereman
Alat meng-abstraksikan sesuatu adalah class
Object bersifat modularity. Object dapat ditulis
dan dimaintain terpisah (independen) dari object
lain
Encapsulation
Mekanisme menyembunyikan suatu proses dan data
dalam sistem untuk menghindari interferensi, dan
menyederhanakan penggunaan proses itu sendiri
Tongkat transmisi (gigi) pada mobil
Tombol on/off/pengaturan suhu pada AC
Class access level (public, protected, privat) adalah
implementasi dari konsep encapsulation
Enkapsulasi data dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
Encapsulation dan Access Modifier
Dalam
Dalam Class Dalam Dalam
Modifier Package yang
yang Sama SubClass Package Lain
Sama
private
tanpa
tanda
protected
public
Encapsulation
Enkapsulasi data juga dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
Sepeda.java
public class Sepeda{
int gir;
int getGir() {
return gir;
}
}
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();
sepedaku.setGir(1);
/* Variabel bisa diubah atau tidak sengaja diubah.
Hal ini berbahaya dan sering menimbulkan bug.
Berikan access modifier private pada instance variable */
sepedaku.gir = 3;
System.out.println(Gir saat ini: + sepedaku.getGir());
}
}
Sepeda.java
public class Sepeda{
private int gir; // access modifier private pada instance variable
int getGir() {
return gir;
}
}
Inheritance (Pewarisan)
Suatu class dapat
mewariskan atribut dan
method kepada class
lain (subclass), serta
membentuk class
hierarchy
Penting untuk
Reusability
Java Keyword:
extends
Sepeda.java
public class Sepeda{
private int gir;
int getGir() {
return gir;
}
}
Class SepedaGunung Mewarisi Class Sepeda
public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi {
public static void main(String[] args) {
}
sg.setSadel(1);
System.out.println(sg.getSadel());
int getSadel(){ }
return sadel; }
}
}
SepedaGunung.java SepedaGunungBeraksi.java
Latihan: Inheritance Matematika
1. Buat class MatematikaCanggih yang merupakan
inherit dari class Matematika
1. Tambahkan method modulus(int a, int b) yang
menghitung modulus dari a dan b
2. Operator modulus adalah %
void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
Polymorphism Overloading
class Lingkaran{
void gambarLingkaran(){
}
void gambarLingkaran(int diameter){
...
}
void gambarLingkaran(double diameter){
...
}
void gambarLingkaran(int diameter, int x, int y){
...
}
void gambarLingkaran(int diameter, int x, int y, int warna, String namaLingkaran){
...
}
}
Polymorphism - Overriding
public class Sepeda{
private int gir;
int getGir() {
return gir;
}
}
Polymorphism - Overriding
public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi {
public static void main(String[] args) {
}
sg.setGir(3);
System.out.println(sg.getGir());
}
}
SepedaGunung.java SepedaGunungBeraksi.java
Latihan: Overloading pada Matematika
1. Kembangkan class Matematika,
MatematikaCanggih dan MatematikaBeraksi
2. Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian, pembagian,
modulus)
3. Tambahkan method baru bertipe data double
(pecahan) dan memiliki 3 parameter
4. Uji di kelas MatematikaBeraksi dengan parameter
pecahan: 12.5, 28.7, 14.2
5. Misalnya:
pertambahan(12.5, 28.7, 14.2) pertambahan(12, 28, 14)
pertambahan(23, 34) pertambahan(3.4, 4.9)
Matematika.java
public class Matematika{
void pertambahan (int a, int b){
int hasil= a + b;
System.out.println(hasil: + hasil);
}
interface InterfaceLampu{
public static final int KEADAAN_HIDUP=1;
public static final int KEADAAN_MATI=0;