Anda di halaman 1dari 132

Java Fundamentals

Romi Satria Wahono


romi@romisatriawahono.net
http://romisatriawahono.net
+6281586220090
1

Romi Satria Wahono

SD Sompok Semarang (1987)


SMPN 8 Semarang (1990)
SMA Taruna Nusantara, Magelang (1993)
S1, S2 dan S3 (on-leave)
Department of Computer Sciences
Saitama University, Japan (1994-2004)
Research Interests: Software Engineering,
Intelligent Systems
Founder IlmuKomputer.Com
Peneliti LIPI (2004-2007)
Founder dan CEO PT Brainmatics Cipta Informati
ka
2

Textbook

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
Aplikasi Databa
4

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

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
6

1. OOP Concep
ts

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
8
5. Pengorganisasian Class:

1.1 Konsep Pemrograman d


an Paradigmanya

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
10

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
11

C Language (Compiler)
#include
<stdio.h>
main()
{

C Compiler

printf(Hallo);
}

00010100
00110010
10000100
01001001
01010101
01010010

Machine language progra


(executable .exe file)

C Program

12

Java Language (Compiler + Inter


preter)
javac

java

(Java Compiler)

(Java Interpreter)

13

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#)
14

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
15
yang saling berinteraksi
. Class adalah unit pe

1.2 Teknologi Java dan Pera


ngkat Pemrograman

Java Family, Perangkat,


Instalasi, Kompilasi

16

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
the process, making
17

Java Family Suite


1. Java Standard Edition
(Java SE)
For desktop, client/server
application

2. Java Enterprise
Edition
(Java EE)
3.

For e-business, ecommerce web based


Java
Micro Edition
application

(Java ME)
For small devices, like
palm, handphone, etc
18

18

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

2004

Genericclasses,enhancedforloop,auto-boxing,enumerations

2006

Libraryimprovements

2010

Smalllanguagechangesandlibraryimprovements

2014

libraryimprovements

19

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
20

21

22

23

24

25

Programming Paradigm Index

26

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

27

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
28

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
29

How Java Works?


Jalankan dengan:
1. C:\>java Hello
(Application)
2. Web Browser (Applet)

public class Hello


public static void main(String[]
args){
System.out.println("Hello
World!");
Hello.java
}
}

javac (java
compiler)

Interpre
ter

Interpre
ter

Interpre
ter

Kompiler memproduksi
Bytecode (Class)

Hello.class
Write Once Run
Everywhere !
30

Web Server

Interpre
ter

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>
</HEAD>
<BODY>
Hereistheoutputofmyprogram:
<APPLET CODE="HelloWorld.class" WIDTH=150
HEIGHT=25>
</APPLET>
</BODY>
</HTML>

C:\javac HelloWorld.java

31

Applet on a Web Page

32

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

Latihan: Tulis dan Compile Hal


o.java
public class Halo{
public static void main(String[]
args){
System.out.println(Halo
Semarang);
}
}

34

Latihan: Membuat Program dg Netb


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

36

37

38

39

40

41

42

43

44

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

45

1.3 Konsep Dasar Pemrogr


aman Berorientasi Objek

Class , Object, Method, Attribute

46

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
47

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

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
49

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)

50

Class = Method + Variable


Class
Sepeda

gir

variabl
e

kecepatan

tampilkan kecepatan
metho
d

ubah gir

51

51

Object = Method + Variable yg Memil


iki Nilai
Object
Sepedaku

gir = 3

kecepatan = 10km/jam

instance
variable

tampilkan kecepatan ()
kecepatan = 10 km/jam
ubah gir (2)
gir = 5
52

52

instanc
e
method

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

53

Membuat Class, Object dan Memanggil Atr


ibut
Mobil.java

public class Mobil {


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);
}
}

54

Latihan: Membuat Program dg Netb


eans

1.Buka Netbeans IDE


2.Ikuti langkah berikut

55

56

57

58

59

60

61

62

63

64

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

65

Method

66

Membuat dan Memanggil Method


public class Mobil2{
String warna;
int tahunProduksi;

Mobil2.java

void printMobil(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
public class Mobil2Beraksi{
public static void main(String[] args){
Mobil2 mobilku = new Mobil2();
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
}
}

67

Mobil2Beraksi.java

Latihan
Buat class Handphone, masukkan dalam
package hp
Class Handphone berisi empat method di ba
wah:
1.
2.
3.
4.

hidupkan()
lakukanPanggilan()
kirimSMS()
matikan()

Isi masing-masing method dengan tampilan


status menggunakan System.out.println()

Buat class HandphoneBeraksi, dan pang


gil method-method diatas dalam class te
68

Latihan: Hasil Tampilan


Handphone hidup
Kring, kring, kring panggilan dilakukan
Dung, dung sms berhasil terkirim
Handphone mati

69

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
70

Jenis Method: Mutator dan Acce


ssor

71

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

72

Pengiriman Pesan dan Paramete


r

1. You

object pengirim

2. YourBicycle
3. changeGears
dijalankan
4. lowerGear
method

object penerima
pesan berupa method yang
parameter yang dibutuhkan
(pesan)
untuk dijalankan
73

74

Sepeda.java
public class Sepeda{
int gir;
// method (mutator) dengan parameter
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
// method (accessor)
int getGir() {
return gir;
}
}

75

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());
}
}

76

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
77

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)
}
78

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

79

Konstruktor -2public class Mobil {


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

Mobil.java

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();
}
80
}

Kata Kunci this


Digunakan pada pembuatan class dan dig
unakan untuk menyatakan object sekarang
public class Mobil{
String warna;
int tahunProduksi;

public class Mobil{


String warna;
int tahunProduksi;

void isiData(String
aWarna,
int
aTahunProduksi){

void isiData(String
warna,
int
tahunProduksi){

warna = aWarna;
tahunProduksi =
aTahunProduksi;

this.warna = warna;

this.tahunProduksi =
tahunProduksi;

}
81

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
82
Simpan uang: Rp. 500000

1.4 Karakteristik Pemrogra


man Berorientasi Objek

Abstraction, Encapsulation,
Inheritance, Polymorphism

83

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
84

85

86

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
87

Class Lingkaran{
class Garis{
void buatLingkaran(){
private void
buatTitik(x, y){
for(){
}
Garis.buatGaris()
public void
}
buatGaris(tA, tB){
}
}
}
88

Encapsulation dan Access Modif


ier
Modifier

Dalam
Class
yang
Sama

Dalam
Package
yang Sama

Dalam Dalam
SubCla Package
ss
Lain

private

tanpa
tanda

protected

public

90

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

91

Sepeda.java
public class Sepeda{
int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
92

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());
}
}
93

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;
}
}
94

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
95

95

Sepeda.java
public class Sepeda{
private int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
96

Class SepedaGunung Mewarisi Class


Sepeda
public class SepedaGunung extends Se publicclassSepedaGunungBeraksi{
publicstaticvoidmain(String[]args){
peda{
SepedaGunungsg=newSepedaGunung();

private int sadel;

sg.setGir(3);
System.out.println(sg.getGir());

void setSadel (int jumlah) {


sadel = getGir() - jumlah;
}

sg.setSadel(1);
System.out.println(sg.getSadel());
}

int getSadel(){
return sadel;
}

SepedaGunung.java

97

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

98

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
100

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

class Mobil {
String warna;
int tahunProduksi;

Mobil mobilku = new Mobil(Merah,


2003);

public Mobil(String warna, int tahunProdu


ksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
public Mobil(){
}

mobilku.info();
Mobil mobilmu = new Mobil();
mobilmu.info();
}
}

void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduks
i);

}
}
101

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){
102
...

Polymorphism - Overriding
public class Sepeda{
private int gir;
void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}
int getGir() {
return gir;
}
}
103

Polymorphism - Overriding
public class SepedaGunung extends Se publicclassSepedaGunungBeraksi{
publicstaticvoidmain(String[]args){
peda{
SepedaGunungsg=newSepedaGunung();

void setGir(int pertambahanGir)


{
super.setGir(pertambahanGi
r);
gir = 2*getGir();
}

sg.setGir(2);
System.out.println(sg.getGir());
sg.setGir(3);
System.out.println(sg.getGir());
}

SepedaGunung.java

SepedaGunungBeraksi.java

104

Latihan: Overloading pada Mate


matika
1.
2.

3.
4.
5.

Kembangkan class Matematika, MatematikaC


anggih dan MatematikaBeraksi
Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian, pem
bagian, modulus)
Tambahkan method baru bertipe data doubl
e (pecahan) dan memiliki 3 parameter
Uji di kelas MatematikaBeraksi dengan para
meter pecahan: 12.5, 28.7, 14.2
Uji konsep overloading dengan:
pertambahan(12.5, 28.7, 14.2)
pertambahan(12,
28, 14)
pertambahan(23, 34)105
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);
}
...
}
106

Skill Check
1.
2.
3.
4.
5.
6.
7.

Class: HaloSemarang
Variable: Mobil
Method: Bank
Parameter: Matematika
Encapsulation: Sepeda
Inheritance: MatematikaCanggih
Polimorphism: Matematika

107

1.5 Pengorganisasian Class

Package, Interface, JAR,


Java API Library and
Documentation
108

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;


109

Packages

110

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

111

112

Budi.java
package kelasku;
public class Budi{
public void info(){
System.out.println(Kelas Budi);
}
}
113

Joko.java
package kelasku;
public class Joko{
public void info(){
System.out.println(Kelas Joko);
}
}
114

PaketBeraksi.java
import kelasku.Joko;
public class PaketBeraksi{
public static void main(String[] args){
Joko objectJoko = new Joko();
objectJoko.info();
}
}

115

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();
}
}
116

Struktur Direktori
PaketBeraksi.java
kelasku
Budi.java
Joko.java

117

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
118

Interface dan Implementation

119

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();
120

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");
}
121
}

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
122

123

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

124

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

125

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

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

127

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

128

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

omg.w3c.dom

DocumentObjectModelforXML
documents

Document

129

API Documentation of the Java L


ibrary

130

API Documentation for the Rectangl


e Class

131

Method Summary

132

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

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
Programming with Java, John Wi
134