Anda di halaman 1dari 131

OBJECT ORIENTED PROGRAM

MING
JAVA FUNDAMENTAL

1
Textbook

2
Course Outline
1. OOP Concepts:
Konsep dan Paradigma Object-Oriented
2. Java Basics:
Memahami Sintaks dan Grammar Bahasa Java
3. Java GUI:
Swing, GUI Component, Event Handling, Pengembang
an Aplikasi GUI
4. Java Algorithms:
Pengantar Algoritma, Struktur Data, Algorithm Analysis
5. Java Advanced:
Eksepsi, Thread, Java API
6. Java Database:
Koneksi ke Database, Pengembangan
3
Aplikasi Databa
PreTest
1. Buatlah program Java sederhana yang mena
mpilkan tulisan di layar: Halo Jakarta
2. Menurut anda, apakah keunggulan Java dib
andingkan bahasa pemrograman lain?
3. Apakah perbedaan antara bahasa pemrogra
man procedural dan object-oriented?
4. Apakah perbedaan antara object dan class
pada object-oriented programming?
5. Apa yang anda pahami tentang variabel dan
method?
4
Software Requirements
1. Copy dan ekstrak romi-java.zip ke HDD
laptop
2. Buka folder software dalam romi-java
3. Instalasi Java SE dengan mengklik:
jdk-8-windows-i586.exe (32b) or
jdk-8-windows-x64.exe (64b)
4. Instalasi Netbeans dengan mengklik: ne
tbeans-8.0-windows.exe
5. Ikuti seluruh proses instalasi sampai sel
esai 5
1. OOP Concep
ts

6
OOP Concepts
1. Konsep Pemrograman dan Paradigmanya:
Tingkat Bahasa Pemrograman, Paradigma Pemrogra
man,
2. Teknologi Java dan Perangkat Pemrograman:
Java Family, Perangkat, Instalasi, Kompilasi
3. Konsep Dasar Pemrograman Berorientasi Ob
jek:
Class, Object, Attribute, Method, Constructor
4. Karakteristik Pemrograman Berorientasi Obj
ek:
Abstraction, Encapsulation, Inheritance, Polymorphi
sme
5. Pengorganisasian Class:
7
1.1 Konsep Pemrograman d
an Paradigmanya

8
Bahasa Pemrograman?
Komputer bekerja seperti switching dan
hanya mengenali 0 dan 1
Manusia tidak (paham) berbicara denga
n bahasa 0 dan 1
Perlu bahasa pemrograman yang dapat
menjadi perantara percakapan antara k
omputer dan manusia
Bahasa pemrograman diubah ke dalam
bahasa yang dipahami oleh komputer d
engan menggunakan interpreter atau ko
9
Compiler or Interpreter?
1. Compiler:
Mengkompilasi source code m
enjadi bentuk file yang bisa di
eksekusi

2. Interpreter:
Mengkompilasi dan menjalank
an source code secara langsu
ng 10
C Language (Compiler)

#include
00010100
<stdio.h> 00110010
10000100
main() C Compiler 01001001
{ 01010101
01010010
printf(Hallo);
}
Machine language progra
C Program (executable .exe file)

11
Java Language (Compiler + Inter
preter)

javac java
(Java Compiler) (Java Interpreter)

12
Tingkat Bahasa Pemrograman

1. Bahasa Pemrograman Tingkat Rend


ah (Assembler)
2. Bahasa Pemrograman Tingkat Seda
ng
(C, Pascal, Fortran)
3. Bahasa Pemrograman Tingkat Ting
gi
(Java, C++, C#)
13
Paradigma Pemrograman
Sudut pandang dan style pemrograman ber
hubungan dengan bagaimana sebuah masal
ah diformulasikan dalam bahasa pemrogram
an

1. Functional Programming: Urutan fungsi secara


sekuensial (Scheme, Lisp)
2. Procedural Programming: Pemecahan masala
h berdasarkan prosedural kerja yg terkumpul d
alam unit pemrograman bernama fungsi (C, Pa
scal)
3. Object-Oriented Programming: Koleksi object
yang saling berinteraksi
14 . Class adalah unit pe
1.2 Teknologi Java dan Pera
ngkat Pemrograman

Java Family, Perangkat,


Instalasi, Kompilasi

15
Sejarah Java
James Gosling, Mike Sheridan, and Patrick Naught
on initiated the Java language project in June 199
1
The language was initially called Oak after an oak t
ree that stood outside Gosling's office. It went by t
he name Green later, and was later renamed Java,
from a list of random words
Gosling aimed to implement a virtual machine and
a language that had a familiar C/C++ style of notat
ion
Sun Microsystems released the first public implem
entation as Java 1.0 in 1995
On May 8, 2007, Sun finished
16
the process, making
Java Family Suite
1. Java Standard Edition
(Java SE)
For desktop, client/server
application

2. Java Enterprise
Edition
(Java EE)
For e-business, e-
commerce web based
3. Java Micro Edition
application
(Java ME)
For small devices, like
palm, handphone, etc
17
17
Java Version

Version Year Important New Features


1.0 1996
1.1 1997 Innerclasses
1.2 1998 Swing,Collections
1.3 2000 Performanceenhancements
1.4 2002 Assertions,XML
5 2004 Genericclasses,enhancedforloop,auto-boxing,enumerations
6 2006 Libraryimprovements
7 2010 Smalllanguagechangesandlibraryimprovements
8 2014 libraryimprovements

18
Why Java?
Simple and familiar object oriented pro
gramming
Architecture neutral (platform indepen
dent)
Open Source
First rank in TIOBE Index
De-Facto standard programming langu
age in education

19
20
21
22
23
24
Programming Paradigm Index

25
Perangkat Pemrograman Java
1. Compiler (Interpreter):
Java Standard Edition (JSE)

2. Code Editor:
1. Text Editor:
TextPad, Notepad++
2. Integrated Development Environment (IDE):
Netbeans, Eclipse, JCreator

26
Instalasi Java SE dan Netbeans I
DE
1. Instalasi Java SE dengan mengklik:
jdk-7u21-windows-i586.exe
(download dari: http://java.sun.com/javase/downloa
ds)

2. Instalasi Netbeans dengan mengklik: ne


tbeans-7.3-ml-windows.exe
(download dari: http://netbeans.org)

3. Ikuti seluruh proses instalasi sampai sel


esai 27
Instalasi Text Editor dan Set Pat
h
Set path dan instalasi text editor diperlu
kan
untuk yang mengembangkan aplikasi tex
t-based dengan console

1. Klik Start Control Panel System A


dvanced Environment Variables dan se
t system PATH:
;C:\Program Files\Java\jdk1.7.0_21\bin
2. Instal text editor untuk editing code:
textpad, notepad++, JCreator
28
How Java Works?
Jalankan dengan:
public class Hello 1. C:\>java Hello
public static void main(String[] (Application)
args){ 2. Web Browser (Applet)
System.out.println("Hello
World!");
} Hello.java
}
javac (java
compiler) Interpre Interpre Interpre Interpre
ter ter ter ter

Kompiler memproduksi
Bytecode (Class)

Hello.class

Write Once Run Everywhere ! Web Server


29
Compile and Run Java Applet
importjava.applet.*;
importjava.awt.*;

publicclassHelloWorldextendsApplet{
publicvoidpaint(Graphicsg){
g.drawString("Helloworld!",50,25);
}
}
C:\appletviewer Hello.html

<HTML>
<HEAD>
<TITLE>ASimpleProgram</TITLE>
C:\javac HelloWorld.java </HEAD>
<BODY>
Hereistheoutputofmyprogram:
<APPLET CODE="HelloWorld.class" WIDTH=150
HEIGHT=25>
</APPLET>
</BODY>
</HTML>

30
Applet on a Web Page

31
Menulis Program Java
Bentuk program:
1. Text-Based Console Application menggunak
an library non-GUI di Java
2. GUI Application menggunakan AWT atau Swi
ng untuk library GUI

Suatu class bisa dieksekusi karena memil


iki method main
public static void main(String[] args)
Program Java mulai dari sini!

32
Latihan: Tulis dan Compile Hal
o.java
public class Halo{
public static void main(String[]
args){
System.out.println(Halo
Semarang);
}
}

33
Latihan: Membuat Program dg Netb
eans

public class HaloJakarta{


public static void main(String[]
args){
System.out.println(Halo
Jakarta);
}
}

34
35
36
37
38
39
40
41
42
43
Latihan
Buat class HaloIndonesia di dalam pack
age halo
Isi HaloIndonesia.java dengan main met
hod dan tiga tampilan di bawah:
Halo Indonesia
Selamat Pagi Indonesia
Jaya Indonesia

44
1.3 Konsep Dasar Pemrogr
aman Berorientasi Objek

Class , Object, Method, Attribute

45
Berorientasi Objek?
Attribute:
Topi, Baju, Jaket,
Tas Punggung,
Tangan, Kaki,
Mata

Behavior:
Cara Jalan ke
Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
46
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
47
Method(Fungsi)
Perbedaan Class dan Object
Class: konsep dan deskripsi dari sesuatu
Class mendeklarasikan method yang dapat digunaka
n (dipanggil) oleh object
Object: instance dari class, bentuk (conto
h) nyata dari class
Object memiliki sifat independen dan dapat digunaka
n untuk memanggil method
Contoh Class dan Object:
Class: mobil
Object: mobilnya pak Joko, mobilku, mobil berwarna
merah
48
Perbedaan Class dan Object
Class seperti cetakan kue, dimana kue y
g dihasilkan dari cetakan kue itu adalah
object
Warna kue bisa bermacam-macam mesk
ipun berasal dari cetakan yang sama (ob
ject memiliki sifat independen)

49
Class = Method + Variable
Class gir
Sepeda
kecepatan variabl
e
tampilkan kecepatan

ubah gir metho


d

50
50
Object = Method + Variable yg Memil
iki Nilai

Object gir = 3
Sepedaku
kecepatan = 10km/jam
instance
variable

tampilkan kecepatan ()
kecepatan = 10 km/jam

instanc
ubah gir (2)
e
gir = 5
method
51
51
Attribute
Variable yang mengitari class, dengan nilai dat
anya bisa ditentukan di object
Variable digunakan untuk menyimpan nilai yan
g nantinya akan digunakan pada program
Variable memiliki jenis (tipe), nama dan nilai
Name, age, dan weight adalah atribute (variab
el) dari class Person

52
Membuat Class, Object dan Memanggil Atr
ibut
public class Mobil { Mobil.java
String warna;
int tahunProduksi;
}

public class MobilBeraksi{ MobilBeraksi.java


public static void main(String[] args){
// Membuat object
Mobil mobilku = new Mobil();

/* memanggil atribut dan memberi nilai */


mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
System.out.println("Warna: " + mobilku.warna);
System.out.println("Tahun: " + mobilku.tahunProduksi);
}
} 53
Latihan: Membuat Program dg Netb
eans

1.Buka Netbeans IDE


2.Ikuti langkah berikut

54
55
56
57
58
59
60
61
62
63
Method
Method adalah urutan instruksi yang m
engakses data dari object
Method melakukan:
1. Manipulasi data
2. Perhitungan matematika
3. Memonitor kejadian dari suatu event

64
Method

65
Membuat dan Memanggil Method
public class Mobil2{
String warna; Mobil2.java
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();
}
} 66
Latihan
Buat class Handphone, masukkan dalam
package hp
Class Handphone berisi empat method di ba
wah:
1. hidupkan()
2. lakukanPanggilan()
3. kirimSMS()
4. matikan()
Isi masing-masing method dengan tampilan
status menggunakan System.out.println()
Buat class HandphoneBeraksi, dan pang
gil method-method diatas dalam class te
67
Latihan: Hasil Tampilan
Handphone hidup
Kring, kring, kring panggilan dilakukan
Dung, dung sms berhasil terkirim
Handphone mati

68
Latihan
Buat class Mahasiswa yang berisi tiga m
ethod:
1. membaca()
2. nyontek()
3. modifikasi()
.Isi masing-masing method dengan tampilan
status menggunakan System.out.println()
Buat class MahasiswaBeraksi, dan pang
gil method-method diatas dalam class te
rsebut
69
Jenis Method: Mutator dan Acce
ssor

70
Parameter
Sepeda akan berguna apabila ada object lain yang
berinterasi dengan sepeda tersebut
Object software berinteraksi dan berkomunikasi de
ngan object lain dengan cara mengirimkan messag
e atau pesan
Pesan adalah suatu method, dan informasi dalam p
esan dikenal dengan nama parameter

71
Pengiriman Pesan dan Paramete
r

1. You object pengirim


2. YourBicycle object penerima
3. changeGears pesan berupa method yang
dijalankan
4. lowerGear parameter yang dibutuhkan
method (pesan)
72
untuk dijalankan
73
Sepeda.java
public class Sepeda{
int gir;

// method (mutator) dengan parameter


void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}

// method (accessor)
int getGir() {
return gir;
}
}

74
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();

sepedaku.setGir(1); // menset nilai gir = 1 (sebelumnya 0)


System.out.println(Gir saat ini: + sepedaku.getGir());

sepedaku.setGir(3); // menambahkan 3 pada posisi gir saat


ini (1) System.out.printl
n(Gir saat ini: + sepedaku.getGir());
}
}

75
Latihan: Class Matematika dan Para
meter
Buat Class bernama Matematika, yang berisi m
ethod dengan dua parameter:
pertambahan(int a, int b)
pengurangan(int a, int b)
perkalian(int a, int b)
pembagian(int a, int b)
Buat Class bernama MatematikaBeraksi, yang
mengeksekusi method dan menampilkan:
Pertambahan: 20 + 20 = 40
Pengurangan: 10-5 = 5
Perkalian: 10*20 = 200
Pembagian: 21/2 = 10

76
Variasi Tampilan
void pertambahan(int a, int b){
System.out.println(a + + + b + = + (a+
b))
}
void pertambahan(int a, int b){
System.out.println(Hasil = + (a+b))
}
void pertambahan(int a, int b){
int hasil = a + b;
System.out.println(Hasil = + hasil)
} 77
Konstruktor -1-
Method yang digunakan untuk memberi n
ilai awal pada saat object diciptakan
Dipanggil secara otomatis ketika new digu
nakan untuk membuat instan class
Sifat konstruktor:
Nama konstruktor sama dengan nama class
Tidak memiliki nilai balik dan tidak boleh ada
kata kunci void

78
Konstruktor -2-
public class Mobil { Mobil.java
String warna;
int tahunProduksi;
public Mobil(String warna, int tahunProduksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
public void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}

public class MobilKonstruktor{


MobilKonstruktor.java
public static void main(String[] args){
Mobil mobilku = new Mobil(Merah, 2003);
mobilku.info();
}
} 79
Kata Kunci this
Digunakan pada pembuatan class dan dig
unakan untuk menyatakan object sekarang
public class Mobil{ public class Mobil{
String warna; String warna;
int tahunProduksi; int tahunProduksi;

void isiData(String void isiData(String


aWarna, warna,
int int
aTahunProduksi){ tahunProduksi){

warna = aWarna; this.warna = warna;


tahunProduksi = this.tahunProduksi =
aTahunProduksi; tahunProduksi;
} }
80
Latihan
1. Buat class Bank
Buat konstruktor class Bank dengan parameter:
saldo
Buat method: simpanUang, ambilUang, dan get
Saldo
2. Buat class BankBeraksi, tetapkan saldo awa
l lewat konstruktur Rp. 100000, jalankan 3
method di atas, dan tampilkan proses seba
gai berikut:
Selamat Datang di Bank ABC
Saldo saat ini: Rp. 100000

Simpan uang: Rp. 500000


81
1.4 Karakteristik Pemrogra
man Berorientasi Objek

Abstraction, Encapsulation,
Inheritance, Polymorphism

82
Abstraction
Cara kita melihat suatu sistem dalam bentu
k yang lebih sederhana, yaitu sebagai suat
u kumpulan subsistem (object) yang saling
berinteraksi.
Mobil adalah kumpulan sistem pengapian, siste
m kemudi, sistem pengereman
Alat meng-abstraksikan sesuatu adalah cla
ss
Object bersifat modularity. Object dapat di
tulis dan dimaintain terpisah (independen)
dari object lain
83
84
85
Encapsulation
Mekanisme menyembunyikan suatu proses dan
data dalam sistem untuk menghindari interferen
si, dan menyederhanakan penggunaan proses it
u sendiri
Tongkat transmisi (gigi) pada mobil
Tombol on/off/pengaturan suhu pada AC
Class access level (public, protected, privat) ada
lah 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
86
Class Lingkaran{ class Garis{
void buatLingkaran(){ private void
for(){ buatTitik(x, y){
Garis.buatGaris() }
} public void
} buatGaris(tA, tB){

}
}

87
Encapsulation dan Access Modif
ier
Dalam
Dalam Dalam Dalam
Class
Modifier Package SubCla Package
yang
yang Sama ss Lain
Sama

private

tanpa

tanda

protected

public

89
Encapsulation
Enkapsulasi data juga dapat dilakukan deng
an cara:
1. mendeklarasikan instance variable sebagai priva
te
2. mendeklarasikan method yang sifatnya public u
ntuk mengakses variable tersebut

90
Sepeda.java
public class Sepeda{
int gir;

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}

91
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 variabl
e */
sepedaku.gir = 3;
System.out.println(Gir saat ini: + sepedaku.getGir());
}
}

92
Sepeda.java
public class Sepeda{
private int gir; // access modifier private pada instance va
riable

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}
93
Inheritance (Pewarisan)
Suatu class dapat me
wariskan atribut dan
method kepada class
lain (subclass), serta
membentuk class hie
rarchy
Penting untuk Reusa
bility
Java Keyword:
extends

94
94
Sepeda.java
public class Sepeda{
private int gir;

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}

95
Class SepedaGunung Mewarisi Class
Sepeda
public class SepedaGunung extends Se publicclassSepedaGunungBeraksi{
peda{ publicstaticvoidmain(String[]args){

SepedaGunungsg=newSepedaGunung();
private int sadel;
sg.setGir(3);
void setSadel (int jumlah) { System.out.println(sg.getGir());
sadel = getGir() - jumlah;
sg.setSadel(1);
}
System.out.println(sg.getSadel());
}
int getSadel(){ }
return sadel;
}
}

SepedaGunung.java 96
SepedaGunungBeraksi.java
Latihan: Inheritance Matematika
1. Buat class MatematikaCanggih yang meru
pakan inherit dari class Matematika
1. Tambahkan method modulus(int a, int b) yang
menghitung modulus dari a dan b
2. Operator modulus adalah %

2. Buat class MatematikaCanggihBeraksi yan


g memanggil method pertambahan, perka
lian dan modulus

97
Polymorphism
Kemampuan untuk memperlakukan o
bject yang memiliki perilaku (bentuk)
yang berbeda
Implementasi konsep polymorphism:
1. Overloading: Kemampuan untuk menggun
akan nama yang sama untuk beberapa met
hod yang berbeda parameter (tipe dan ata
u jumlah)
2. Overriding: Kemampuan subclass untuk m
enimpa method dari superclass, yaitu deng
an cara menggunakan nama dan paramete
99
Polymorphism Overloading
class Mobil { public class MobilKonstruktor{
String warna; public static void main(String[]
int tahunProduksi; args){
Mobil mobilku = new Mobil(Merah,
public Mobil(String warna, int tahunProdu 2003);
ksi){ mobilku.info();
this.warna = warna;
this.tahunProduksi = tahunProduksi; Mobil mobilmu = new Mobil();
} mobilmu.info();
}
public Mobil(){ }
}

void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduks
i);
}
}
100
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, S
tring namaLingkaran){
... 101
Polymorphism - Overriding
public class Sepeda{
private int gir;

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}

102
Polymorphism - Overriding
public class SepedaGunung extends Se publicclassSepedaGunungBeraksi{
peda{ publicstaticvoidmain(String[]args){

SepedaGunungsg=newSepedaGunung();
void setGir(int pertambahanGir)
{
sg.setGir(2);
super.setGir(pertambahanGi System.out.println(sg.getGir());
r);
gir = 2*getGir(); sg.setGir(3);
} System.out.println(sg.getGir());
} }
}

SepedaGunung.java SepedaGunungBeraksi.java
103
Latihan: Overloading pada Mate
matika
1. Kembangkan class Matematika, MatematikaC
anggih dan MatematikaBeraksi
2. Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian, pem
bagian, modulus)
3. Tambahkan method baru bertipe data doubl
e (pecahan) dan memiliki 3 parameter
4. Uji di kelas MatematikaBeraksi dengan para
meter pecahan: 12.5, 28.7, 14.2
5. Uji konsep overloading dengan:
pertambahan(12.5, 28.7, 14.2) pertambahan(12,
28, 14)
pertambahan(23, 34)104 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);
}

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


double hasil= a + b + c;
System.out.println(hasil: + hasil);
}
...
}
105
Skill Check
1. Class: HaloSemarang
2. Variable: Mobil
3. Method: Bank
4. Parameter: Matematika
5. Encapsulation: Sepeda
6. Inheritance: MatematikaCanggih
7. Polimorphism: Matematika

106
1.5 Pengorganisasian Class

Package, Interface, JAR,


Java API Library and
Documentation

107
Packages
Package adalah koleksi dari beberapa class dan
interface yang berhubungan, dan menyediakan
proteksi akses dan pengelolaan namespace
1 package adalah 1 folder di file system
Package berguna untuk mengorganisir file dala
m suatu project atau library
Nama package menggunakan lowercase
Nama package mengikuti nama domain (perusa
haan) dengan susunan terbalik
Contoh: com.brainmatics.kendaraan
Keyword: package name;
108
Packages

109
Packages
Base directory: holds your program's Files
Path name, relative to base directory, must
match package name:
com/horstmann/bigjava/Financial.java

110
111
Budi.java
package kelasku;

public class Budi{


public void info(){
System.out.println(Kelas Budi);
}
}

112
Joko.java
package kelasku;

public class Joko{


public void info(){
System.out.println(Kelas Joko);
}
}

113
PaketBeraksi.java
import kelasku.Joko;

public class PaketBeraksi{


public static void main(String[] args){
Joko objectJoko = new Joko();
objectJoko.info();
}
}

114
PaketBeraksi.java
import kelasku.*;

public class PaketBeraksi{


public static void main(String[] args){
Budi objectBudi = new Budi();
objectBudi.info();
Joko objectJoko = new Joko();
objectJoko.info();
}
}
115
Struktur Direktori
PaketBeraksi.java
kelasku
Budi.java
Joko.java

116
Interface
Interface digunakan apabila kita ingin
menentukan apa yang harus dilakuka
n oleh suatu class tapi tidak menentu
kan bagaimana cara untuk melakuka
nnya
Interface sebenarnya sama dengan cl
ass, tapi hanya memiliki deklarasi me
thod tanpa implementasi

117
Interface dan Implementation

118
InterfaceLampu.java

interface InterfaceLampu{
public static final int
KEADAAN_HIDUP=1;
public static final int
KEADAAN_MATI=0;

public abstract void hidupkan();


public abstract void matikan();
}
119
Lampu.java
public class Lampu implements InterfaceLampu{
int statusLampu;

public void hidupkan(){


if (statusLampu == KEADAAN_MATI){
statusLampu = KEADAAN_HIDUP;
System.out.println("Hidupkan Lampu! --> Lampu Hidup");
}else{
System.out.println("Hidupkan Lampu! --> Lampu Sudah Hidup
Kok");}
}

public void matikan(){


if (statusLampu == KEADAAN_HIDUP){
statusLampu = KEADAAN_MATI;
System.out.println("Matikan Lampu! --> Lampu Mati");
}else{
System.out.println("Matikan Lampu! --> Lampu Sudah Mati
Kok");
}
} 120
LampuBeraksi.java
public class LampuBeraksi{
public static void main(String[] args){

Lampu lampuKamar = new Lampu();

System.out.println("Status Lampu Saat Ini:


Mati");

lampuKamar.hidupkan(); //Hidupkan Lampu


lampuKamar.matikan(); //Matikan Lampu
lampuKamar.matikan(); //Matikan Lampu
lampuKamar.hidupkan(); //Hidupkan Lampu
lampuKamar.hidupkan(); //Hidupkan Lampu
}
121
122
Latihan: InterfaceAC
Buat program serupa dengan Interfac
eBeraksi.java tapi untuk ACBeraksi.ja
va
Masukkan method-method di bawah
ke dalam ACBeraksi.java
matikanAC() dan hidupkanAC()
dinginkanAC() dan panaskanAC ()

123
Kompresi dengan JAR
JAR atau Java Archive adalah metode kom
presi standard dari file-file yang berisi pro
gram Java
JAR menampung file .class dan file lain ya
ng dibutuhkan supaya program bisa berjal
an dengan baik
Kompresi dapat dilakukan setelah semua
class dikompilasi

124
Penggunaan JAR
Perintah Membuat file JAR:
jar cvf namafile.jar file1.class file2.class
Perintah Melihat isi dalam file JAR:
jar tvf namafile.jar
Perintah Mengekstraksi isi file JAR:
jar xvf namafile.jar
Keterangan Pilihan:
c = create (membuat file JAR)
v = verbose (menampilkan informasi pada layar)
f = filename (daftar nama file yang akan dikompresi)

125
JAR Manifest
JAR Manifest dibuat secara otomatis
dan diletakkan di dalam folder META-
INF pada file kompresi yang kita buat
JAR Manifest digunakan untuk mende
skripsikan file-file yang terdalam dala
m file JAR

126
Java API Library and Documenta
tion
API: Application Programming Interface
API documentation: daftar class dan method
di java library
http://java.sun.com/javase/7/docs/api/ind
ex.html

127
Important Packages in the Java
Library

Package Purpose Sample Class


java.lang Languagesupport Math
java.util Utilities Random
java.io Inputandoutput PrintStream
java.awt AbstractWindowingToolkit Color
java.applet Applets Applet
java.net Networking Socket
java.sql DatabaseAccess ResultSet
javax.swing Swinguserinterface JButton
DocumentObjectModelforXML
omg.w3c.dom Document
documents

128
API Documentation of the Java L
ibrary

129
API Documentation for the Rectangl
e Class

130
Method Summary

131
Tugas
Kerjakan semua latihan dan tugas yang ad
a di slide OOP Concepts
Kirimkan netbeans project yang sudah di
zip ke imuttaqin.mercusuar@gmail.com
dengan subject: [OOP1-Universitas] Nam
aNIM
Deadline: 2 minggu
Meng-copy file orang lain akan menyebab
kan nilai tugas 0

132
Referensi
1. Sharon Zakhour et al, The Java Tutorial Fourth Edition, htt
p://java.sun.com/docs/books/tutorial
2. Cay Horstmann, Big Java: Earl Objects 5th Edition, John Wiley
& Sons, 2013
3. Deitel & Deitel, Java Howto Program 9th Edition, Prentice Hal
l, 2012
4. Richard M. Reese, Oracle Certified Associate Java SE 7 Progr
ammer Study Guide, Packt Publishing, 2012
5. Walter Savitch, Absolute Java 5th Edition, Pearson Education,
2013
6. Mark Allen Weiss, Data Structures and Algorithm Analysis in
Java 3rd Edition, Pearson Education, 2012
7. Anany Levitin, Introduction to the Design and Analysis of Alg
orithms 3rd Edition, Pearson Education, 2012
8. Ying Bai, Practical Database
133
Programming with Java, John Wi

Anda mungkin juga menyukai