E-Book
PEMROGRAMAN BERORIENTASI OBJEK
Disusun Oleh:
Arfian Hidayat, S.Kom
http://arfianhidayat.com
FAKULTAS ILMU KOMPUTER
UNIVERSITAS DIAN NUSWANTORO
SEMARANG
2013
i
Daftar Isi
Daftar Isi ..................................................................................................................................... i
Daftar Gambar ........................................................................................................................... v
Daftar Tabel .............................................................................................................................. vi
Bab 1 Pendahuluan ................................................................................................................ 1
1.1 _____ ........................................................................................................................... 1
1.2 ______ ......................................................................................................................... 1
Bab 2 Pengenalan Java .......................................................................................................... 2
2.1 Pengenalan .................................................................................................................. 2
2.2 Teknologi Java ............................................................................................................ 2
2.3 Struktur Program ......................................................................................................... 2
2.4 Tipe Data, Variable, Operator ..................................................................................... 2
2.4.1 Tipe Data .............................................................................................................. 2
2.4.2 Variabel ................................................................................................................ 2
2.4.3 Variable Konstan ................................................................................................. 3
2.4.4 Pengarah Tipe (Casting) ...................................................................................... 4
2.4.5 I/O ........................................................................................................................ 4
Bab 3 Percabangan dan Perulangan ....................................................................................... 6
3.1 If, If-Else ..................................................................................................................... 6
3.1.1 Contoh 1 ............................................................................................................... 6
3.1.2 Contoh 2 ............................................................................................................... 6
3.2 Switch Case ................................................................................................................. 6
3.3 For, While, Do-While.................................................................................................. 7
3.3.1 For ........................................................................................................................ 8
3.3.2 While .................................................................................................................... 8
ii
3.3.3 Do-While.............................................................................................................. 8
Bab 4 Larik (Array) ............................................................................................................... 9
4.1 Tipe data Array............................................................................................................ 9
4.1.1 Deklarasi Variable Array ..................................................................................... 9
4.1.2 Membuat Array .................................................................................................... 9
4.1.3 Penggambaran Array ........................................................................................... 9
4.2 Implementasi Array ................................................................................................... 10
4.2.1 Contoh 1 ............................................................................................................. 10
4.2.2 Contoh 2 ............................................................................................................. 11
Bab 5 Komponen Dasar PBO .............................................................................................. 12
5.1 Object (Arif, 2011) .................................................................................................... 12
5.1.1 Menciptakan Objek ............................................................................................ 12
5.1.2 Memeriksa Tipe Objek ...................................................................................... 12
5.1.3 Menghapus Objek .............................................................................................. 13
5.2 Class .......................................................................................................................... 13
5.3 Instance...................................................................................................................... 13
5.4 Message ..................................................................................................................... 13
5.5 Konstruktor................................................................................................................ 13
Bab 6 Konstruktor, Enkapsulasi & Hidding Information ................................................... 14
6.1 Konstruktor................................................................................................................ 14
6.2 Contoh Penggunaan Konstruktor .............................................................................. 14
6.3 Enkapsulasi & Information Hidding ......................................................................... 15
6.3.1 Pengertian .......................................................................................................... 15
6.3.2 Modifier ............................................................................................................. 15
Bab 7 Inheritance ................................................................................................................. 18
7.1 Pengertian Inheritance ............................................................................................... 18
7.2 Contoh Inheritance .................................................................................................... 19
iii
7.2.1 Contoh 1 ............................................................................................................. 19
7.2.2 Contoh 2 ............................................................................................................. 19
7.2.3 Contoh 3 (Oracle, 2013) .................................................................................... 21
7.2.4 Contoh 4 (Oracle, 2013) .................................................................................... 24
7.3 Multilevel Inherintance ............................................................................................. 25
Bab 8 Konstruktor Overriding & Overloading .................................................................... 26
8.1 Overriding (Overriding Dalam Java (OOP), 2012) ................................................... 26
8.1.1 Pengertian Overriding ........................................................................................ 26
8.1.2 Aturan Overriding .............................................................................................. 26
8.1.3 Contoh Overriding 1 .......................................................................................... 26
8.1.4 Contoh Overriding 2 .......................................................................................... 27
8.2 Overloading ............................................................................................................... 27
8.2.1 Pengertian Overloading (Overloading Dalam Java (OOP), 2012) .................... 27
8.2.2 Daftar Parameter Pada Overloading .................................................................. 28
8.2.3 Contoh Overloading ........................................................................................... 28
8.2.4 Contoh 1 ............................................................................................................. 28
8.2.5 Contoh 2 ............................................................................................................. 29
Bab 9 Polimorfisme ............................................................................................................. 30
9.1 Pengertian .................................................................................................................. 30
9.2 Kasus Polimorfisme .................................................................................................. 30
9.3 Contoh Polimorfisme ................................................................................................ 30
Bab 10 Abstrak Kelas ........................................................................................................ 34
10.1 Pengertian .............................................................................................................. 34
10.2 Aturan Abstrak Kelas ............................................................................................ 34
10.3 Contoh Kasus Abstrak Kelas ................................................................................. 35
10.4 Contoh ................................................................................................................... 35
Bab 11 Interface ................................................................................................................. 37
iv
11.1 Pengertian .............................................................................................................. 37
11.2 Contoh ................................................................................................................... 37
11.3 Contoh Lain ........................................................................................................... 38
11.4 Perbedaan Abstrak dan Interface ........................................................................... 39
Bab 12 Eksepsi/Exception ................................................................................................. 41
12.1 Pengertian .............................................................................................................. 41
12.2 Contoh ................................................................................................................... 41
Bab 13 Package .................................................................................................................. 44
13.1 Pengertian .............................................................................................................. 44
13.2 Penggambaran Package ......................................................................................... 44
Bab 14 Studi Kasus Kalkulator Sederhana ........................................................................ 45
14.1 Class Calculator ..................................................................................................... 45
14.2 Kalkulator Sederhana ............................................................................................ 47
14.3 Kalkulator Standar ................................................................................................. 49
Bab 15 Database ................................................................................................................. 55
15.1 Inputan Sederhana ................................................................................................. 55
Bab 16 References ............................................................................................................. 59
v
Daftar Gambar
Gambar 2-1Variabel Sebagai Tempat Menyimpan Data ........................................................... 2
Gambar 7-1 Inheritance ........................................................................................................... 18
Gambar 7-5 Output Inherintance ............................................................................................. 21
vi
Daftar Tabel
Tabel 2-1 Kata Kunci Tidak Dapat Dijadikan Nama Variable .................................................. 3
1
Bab 1 Pendahuluan
1.1 _____
Dalam Pengembangan
1.2 ______
2
Bab 2 Pengenalan Java
2.1 Pengenalan
2.2 Teknologi Java
2.3 Struktur Program
2.4 Tipe Data, Variable, Operator
2.4.1 Tipe Data
1. Tipe Data Primitif
a. Sebagai kata kunci di Java (lowercase)
b. Embedded di compiler Java
c. Pemrosesan relatif cepat
Contoh: int, double
2. Tipe Data Reference
a. Class yang ada di library Java (java.lang)
b. Menggunakan huruf capital
Contoh: String, Integer, Double
2.4.2 Variabel
Variabel adalah satu entitas penyimpanan data yang paling elementer.
Gambar 2-1Variabel Sebagai Tempat Menyimpan Data
Penamaan variabel pada dasarnya dibebaskan kepada programmer. Nama yang diberikan
kepada variabel disebut identifier. Penamaan identifier variabel pada pemrograman Java
mempunyai beberapa aturan, sebagai berikut :
3
a. Identifier variabel harus dimulai dengan alfabet huruf besar, huruf kecil, tanda dollar
( $ ) atau underscore (_). Setelah karakter pertama, dapat diikuti dengan angka.
b. Identifier variabel tidak boleh mengandung punctuation,spasi, atau dashes ( - )
c. Kata kunci pada teknologi Java , seperti pada tabel dibawah, tidak dapat dijadikan
nama identifier variabel.
Kata-kata Kunci pada Teknologi Java yang Tidak Dapat Dijadikan Nama Variabel
(Anonim)
Tabel 2-1 Kata Kunci Tidak Dapat Dijadikan Nama Variable
abstract
assert
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
extends
false
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
true
try
void
volatile
while
Contoh nama variabel yang diizinkan :
a. @2var
b. _status
c. Tanggal
d. jumlahBarang
e. nama_kecil
f. final_test
g. int_float
2.4.3 Variable Konstan
Constant Variable digunakan apabila kita ingin membuat nilai sebuah variable tidak
berubah (tetap)
Constant variable menggunakan keyword final di depan tipe data, kadang sering juga
digabungkan dengan keyword static. Nama constant variable biasanya menggunakan
kapital.
4
Contoh:
final float PHI = 3.141592;
static final boolean DEBUG = false;
2.4.4 Pengarah Tipe (Casting)
Mengubah tipe variable.
Contoh:
int i = 10;
long paksa = (long) i;
Casting tanpa menghilangkan nilai:
Tabel 2-2 Casting
Tipe Sumber Tipe Tujuan
byte short, char, int, long, float, double
short shortint, long, float, double
char int, long, float, double
int long, float, double
long float, double
float double
2.4.5 I/O
Menangkap inputan dari keyboard kemudian memprosesnya / mengeluarkannya. Tipe
inputan di java:
1. nextInt() : untuk menerima tipe data integer
2. nextShort() : untuk menerima tipe data short
3. nextLong() : untuk menerima tipe data long
4. nextDouble() : untuk menerima tipe data double
5. nextFloat() : untuk menerima tipe data float
6. nextLine() : untuk menerima tipe data string
7. nextBoolean() : untuk menerima tipa data boolean
5
6
Bab 3 Percabangan dan Perulangan
3.1 If, If-Else
Berikut merupakan contoh penggunaan If-Else di java.
3.1.1 Contoh 1
3.1.2 Contoh 2
3.2 Switch Case
Berikut contoh penggunaan Switch Case di Java
7
3.3 For, While, Do-While
Berikut merupakan penggunaan for, while, do-while di java. Hasil outpu dari looping
dibawah seperti berikut
Untuk penerapan menggunakan for, while, dan do-while silakan lihat looping dibawah
8
3.3.1 For
3.3.2 While
3.3.3 Do-While
9
Bab 4 Larik (Array)
4.1 Tipe data Array
4.1.1 Deklarasi Variable Array
Berikut merupakan contoh mendeklarasikan variabel array dengan nama variabel myList1
dan myList2
4.1.2 Membuat Array
Berikut merupakan lanjutan dari deklarai array diatas. Pada method coba terdapat perintah
untuk membuat array. Variabel myList1 dengar tipe data double dan ukuran array 10.
Variabel myList2 dengan tipe data double dan ukuran array 20.
4.1.3 Penggambaran Array
Misal kita punya variabel array dengan nama myList yang berukuran 10, maka dapat kita
gambarkan sebagai berikut.
double[] myList = new double[10];
10
4.2 Implementasi Array
4.2.1 Contoh 1
1. Class Array dengan isi sebagai berikut
2. Setelah kita jalankan, hasilnya seperti berikut
11
4.2.2 Contoh 2
1. Class Array dengan Foreach Loop
2. Output program diatas
12
Bab 5 Komponen Dasar PBO
5.1 Object (Arif, 2011)
Object adalah instance dari class.
5.1.1 Menciptakan Objek
Objek diciptakan menggunakan operator new. dari sisi kelas, langkah ini merupakan
instantiasi kelas. selanjutnya objek yang berhasil diciptakan tersebut akan diletakkan di
memori heap.
ContohKelas ck= new ContohKelas();
atau bisa juga menggunakan perintah di bawah ini:
getData(new ContohKelas());
5.1.2 Memeriksa Tipe Objek
Anda bisa memanfaatkan fungsionalitas operator instanceof untuk mengetahui tipe suatu
objek pada saat runtime. Operator ini akan mengembalikan nilai true apabila tipe objek
sesuai, sebaliknya mengembalikan nilai false.
ContohKelas ck=new ContohKelas();
System.out.println(ck instanceof ContohKelas);
//output: true.
Perlu diperhatikan, instanceof akan selalu mengembalikan nilai false jika variabel objek
diinisialisasi dengan nilai null. ini karena nilai null tidak mencerminkan objek apapun.
ContohKelas ck2=null;
System.out.println(ck2 instanceof ContohKelas);
//output: false
Operator instanceof hanya dapat digunakan pada tipe reference dan objek. Penggunaan
operator ini pada tipe primitif akan mengakibatkan kesalahan saat kompilasi.
13
5.1.3 Menghapus Objek
Java menggunakan teknik yang dikenal sebagai garbage collection untuk menghapus objek-
objek yang sudah tidak diperlukan. Dengan demikian, kita tidak perlu khawatir akan
terjadinya kebocoran memori. Kita juga dapat memanggil garbage collector secara eksplisit
menggunakan method static gc.
5.2 Class
Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant.
5.3 Instance
5.4 Message
5.5 Konstruktor
14
Bab 6 Konstruktor, Enkapsulasi & Hidding Information
6.1 Konstruktor
Konstruktor adalah sebuah method yang digunakan untuk memberika nilai awal pada saat
object diciptakan yang dipanggil secara otomatis ketika new digunakan untuk membuat
instan class. (Goresacreative_Ima, 2012)
Sifat konstruktor:
- Nama konstruktor sama dengan nama class
- Tidak memiliki nilai balik dan tidak boleh ada kata kunci void
6.2 Contoh Penggunaan Konstruktor
1. Buat Class Bank, isinya seperti berikut
2. Pada main class nya kita isi seperti ini
15
6.3 Enkapsulasi & Information Hidding
6.3.1 Pengertian
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi dari suatu class. Dua hal
yang mendasar dalam enkapsulasi yakni (Sasongko, 2008):
1. Information hidding
Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara
langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol
yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah
'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class
tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses
kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan
information hiding
2. Interface to access data
Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu
bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut,
caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau
merubah nilai dari suatu atribut tersebut.
6.3.2 Modifier
Dalam bahasa pemograman terdapat 4 modifier. Modifier ini berguna untuk melakukan
enkapsulisasi (membungkus data) pada objek. Dengan menggunakan modifier, kita dapat
menentukkan siapa saja yang dapat menggunakan atau mengakses objek tersebut. Modifier
ini digunakan untuk hak akses user pada class, method, atau variabel. Modifier tersebut
antara lain :
1. Default
Modifier default menspesifikasikan kelas-kelas sepaket yang mengakses. Tidak ada keyword
khusus untuk mendeklarasikan default modifier, bila tidak ada modifier pada deklarasi class,
method atau variabel berarti modifier yang digunakan adalah default modifier.
Contoh:
16
2. Public
Pada modifier public ini bersifat umum, yaitu class, method, atau variable dapat dipanggil
oleh semua kelas. Baik dari satu paket yang sama atau berlainan paket. Public juga akan
memperbolehkan akses terhadap semua kelas yang diinstan dari kelas tersebut.
Contoh:
3. Private.
Modifier private ini menunjukkan bahwa suatu class, method atau variabel hanya dapat
diakses dari dalam kelas tersebut. modifier ini biasanya digunakan untuk kelas, method, atau
variabel yang memang ingin disimpan atau tidak dapat digunakan oleh kelas yang lain (tidak
berguna untuk kelas yang lain).
Contoh:
4. Protected.
Modifier protected ini digunakan kalau suatu class, method atau variabel ingin digunakan
hanya oleh kelas-kelas yang satu paket dengan kelas tersebut atau sub kelas dari kelas
tersebut baik yang satu paket atau lain paket.
Contoh:
17
18
Bab 7 Inheritance
7.1 Pengertian Inheritance
Inheritance (penurunan sifat / pewarisan), ini merupakan ciri khas dari OOP yang tidak
terdapat pada pemrograman prosedural gaya lama. Dalam hal ini, inheritance bertujuan
membentuk obyek baru yang memiliki sifat sama atau mirip dengan obyek yang sudah ada
sebelumnya (pewarisan) (Rudy, 2012)
1. Obyek turunan dapat digunakan membetuk obyek turunan lagi dan seterusnya.
2. Setiap perubahan pada obyek induk, juga akan mengubah obyek turunannya.
3. Susunan obyek induk dengan obyek turunannya disebut dengan hirarki obyek.
Keuntungan Inheritance: “Saat anda ingin membuat class baru, dan ternyata pada class lain
telah ada code yang ingin anda gunakan, maka anda tinggal meng-extend class lain
tersebut.”
Gambar 7-1 Inheritance
19
7.2 Contoh Inheritance
7.2.1 Contoh 1
1. Buat Class Parent, isi class seperti ini
2. Buat class dengan nama Child, isi class seperti ini
Perhatikan tulisan extends, ini menandakan bahwa Child merupakan turunan dari Parent,
sehingga Class Child juga memiliki method void induk() yang berada pada class Parent.
3. Di dalam class Main kita buat objek dari class Child
Objek c memanggil method void turunan() dari class Child dan memanggil method void
induk() yang merupakan method warisan dari class Parent.
7.2.2 Contoh 2
1. Buat class dengan nama Inheritance1, dan kita isi class tersebut seperti ini
20
2. Buat class lagi dengan nama Inherintace2, dan kita isi class tersebu seperti ini
3. Lalu di class mainnya kita buat objek dari class Inherintace2, isi mainnya seperti ini
21
4. Setelah kita run, hasil outputnya kayak gini
Gambar 7-2 Output Inherintance
7.2.3 Contoh 3 (Oracle, 2013)
1. Buat Class Bicycle, dan kita isi seperti ini
22
2. Buat Class MountainBike, dan kita isi seperti ini
23
MountainBike mewarisi semua atribut dan method dari Bicycle dan menambahkan method
seatHeight. MountainBike memiliki konstruktor dengan 4 parameter.
3. Pada Class Main, isi seperti ini
4. Output dari program diatas, seperti ini
24
7.2.4 Contoh 4 (Oracle, 2013)
1. Buat class Animal, lalu kita isi seperti ini
2. Buat class Cat, dengan isi seperti ini
3. Pada Class Main, kita isi seperti ini
25
7.3 Multilevel Inherintance
Pada contoh sebelumnya, kita udah punya class Inherintac1 dan Inherintace2, tambahkan
satu lagi class Inherintace3 untuk mencoba multiple Inherintace
1. Buat class Inherintance3, kita biarkan isi class ini kosong seperti ini
2. Lalu di class Main sebelumnya kita ganti kayak gini
26
Bab 8 Konstruktor Overriding & Overloading
8.1 Overriding (Overriding Dalam Java (OOP), 2012)
8.1.1 Pengertian Overriding
Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass.
Dilakukan dengan cara mendeklarasikan kembali method milik parent class di subclass.
Tujuan : subclass memiliki tingkah laku yang lebih spesifik.
Deklarasi method pada subclass harus sama dengan yang terdapat di super class.
Kesamaan pada :
a. Nama
b. Return type
c. Daftar parameter (jumlah, tipe, dan urutan)
d. Method pada parent class disebut overriden method
e. Method pada subclass disebut overriding method
8.1.2 Aturan Overriding
a. Mode akses overriding method harus sama atau lebih luas dari pada overriden method.
b. Subclass hanya boleh meng-override method superclass satu kali saja, tidak boleh ada lebih
dari satu method pada kelas yang sama, sama persis
c. Overriding method tidak boleh throw checked exceptions yang tidak dideklarasikan oleh
overridden method.
8.1.3 Contoh Overriding 1
1. Class Animal memiliki method SetVoice()
2. Class Dog yang merupakan turunan dari Class Animal, dan class ini memiliki method SetVoice()
sama seperti superclassnya (class Animal). Ini disebut overriding
27
8.1.4 Contoh Overriding 2
1. Class Nama dengan method Sapa
2. Class Siapa dengan method Sapa dan method Main
8.2 Overloading
8.2.1 Pengertian Overloading (Overloading Dalam Java (OOP), 2012)
Menuliskan kembali method dengan nama yang sama pada suatu class. Ciri-ciri
overloading :
a. Nama method harus sama
b. Daftar parameter harus berbeda
28
c. Return type boleh sama, juga boleh berbeda
Tujuan : memudahkan penggunaan/pemanggilan method dengan fungsionalitas yang mirip.
8.2.2 Daftar Parameter Pada Overloading
Perbedaan daftar parameter bukan hanya terjadi pada perbedaan banyaknya parameter,
tetapi juga urutan dari parameter tersebut.
Misalnya saja dua buah parameter berikut ini :
- public void member(int x, String n)
- public void member(String n, int x)
Dua parameter tersebut juga dianggap berbeda daftar parameternya.
8.2.3 Contoh Overloading
8.2.4 Contoh 1
29
8.2.5 Contoh 2
30
Bab 9 Polimorfisme
9.1 Pengertian
a. Polimorfisme merupakan suatu konsep yang menyatakan bahwa sesuatu yang sama dapat
memiliki berbagai bentuk dan perilaku yang berbeda.
b. Pada OOP, (tindakan direalisasikan dengan method).
c. Polimorfisme berarti kelas mempunyai lebih dari satu method yang sama namun memiliki
perbedaan pada jumlah dan jenis parameter pada masing-masing method.
9.2 Kasus Polimorfisme
1. Ukuran Bidang Datar
Misalnya kita mempunyai class “persegi” dan “lingkaran” , dimana class-class tersebut
merupakan turunan dari class “bangun 2D”. Jika kita ingin memperbesar ukuran dari persegi
kita harus memperbesar sisinya, sedangkan pada lingkaran kita harus memperbesar jari-
jarinya. Inilah yang dimaksud dari konsepnya sama-sama ingin memperbesar ukuran namun
cara/perilaku yang digunakan berbeda.
2. Harga Kopi
Sebuah warung kopi memiliki 3 buah kopi yaitu A, B, C. Dan warung menjual kopinya dengan
harga Rp 1000,- / kopi. Namun, untuk kopi jenis tertentu seperti kopi C, akan mendapat 1
buah kopi gratis jika beli 2 (beli 2 gratis 1).
Jika ada pembeli
a. Beli kopi A sebanyak 1 maka harganya 1000 dan dapat 1 kopi
b. Beli kopi A sebanyak 2 maka harganya 2000 dan dapat 2 kopi
c. Beli kopi A sebanyak 3 maka harganya 3000 dan dapat 3 kopi
d. Beli kopi C sebanyak 1 maka harganya 1000 dan dapat 1 kopi
e. Beli kopi C sebanyak 2 maka harganya 2000 dan dapat 3 kopi
f. Beli kopi C sebanyak 3 maka harganya 2000 dan dapat 3 kopi
Inilah yang dimaksud dari konsepnya sama-sama ingin beli kopi namun cara/perilaku yang
digunakan berbeda.
Penjelasan lebih deteail di kelas..
9.3 Contoh Polimorfisme
Sebelum masuk kecontoh pahami ini
31
Objek a, v, dan o dapat dibuat dari Objek d. Objek d dibuat dari Class Deer.
Masuk ke contoh,
Penyanyi memiliki beberapa kategori, misal Penyanyi Pop, Penyanyi Dangdut, dan
Penyanyi Jazz. Seorang Penyanyi dapat memilih ingin menjadi Penyanyi Pop, Penyanyi
Dangdut, atau Penyanyi Jazz
1. Buat class Penyanyi, dengan isi berikut
2. Lalu buat class PenyanyiDangdut yang diturunkan dari class Penyanyi
3. Buat class PenyanyiJazz yang diturunkan dari class Penyanyi
4. Buat class PenyanyiPop yang diturunkan dari class Penyanyi
32
5. Buat Mainnya
Diatas merupakan main, dan dibawahnya adalah hasil outputnya.
Atau mainnya juga dapat dibuat seperti berikut
33
34
Bab 10 Abstrak Kelas
10.1 Pengertian
Abstrak kelas adalah kelas yang belum jelas spesifikasinya. Kelas abstrak digunakan untuk
membuat sebuah kelas yang memiliki method yang belum jelas implementasinya. (alka,
2012)
Dapat dilihat jenis kelas diatas, kelas paling atas adalah kelas Bangun datar lalu turunan
dari kelas bangun datar adalah kelas persegi, segitiga, persegi panjang. Dapat diketahui
kelas bangun datar adalah kelas Abstraknya.
Dan sebuah kelas jika ada 1 saja method yang abstrak, maka dia akan menjadi kelas abstrak
10.2 Aturan Abstrak Kelas
1. Kelas abstrak tidak dapat di instant class atau dibuat objek
2. Jika sebuah kelas memiliki method abstrak maka kelas itu harus menjadi kelas abstrak.
3. Sebuah kelas abstrak dapat saja memiliki method yang tidak abstrak.
4. Jika sebuah kelas abstrak diturunkan menjadi kelas konkret, maka semua method abstrak dari
kelas abstrak haruslah ditulis ulang (overriding) di kelas konkretnya dan diberi detail dari
methodnya
5. Jika method abstrak diturunkan dan kelas turunannya adalah kelas abstrak, maka tidak perlu
menulis ulang method yang abstrak.
35
10.3 Contoh Kasus Abstrak Kelas
Misal Motor memiliki atribut bahanBakar, isiSilinder, dll dan method hitungKecepatan(),
hitungBahanBakar(), dll.
Motor memiliki turunan Honda, Yamaha, Suzuki, dll
Kita ingin setiap Motor memiliki kejelasan mengenai atribut bahanBakar, isiSilinder, dan
method hitungKecepatan(), hitungBahanBakar(), maka
Honda, Yamaha, Suzuki diturunkan dari Motor dan Motor dijadikan Kelas Abstrak.
..... (Penjelasan di kelas)
10.4 Contoh
1. Buat kelas abstrak dengan nama Abstrak
2. Buat kelas Persegi yang diturunkan dari kelas Abstrak
36
Keterangan:
Method hitungLuas() harus ditulis ulang karena pada kelas Abstrak, method hitungLuas()
adalah method yang abstrak.
Sedangkan method hitungKeliling() tidak perlu ditulis ulang karena pada kelas Abstrak, method
hitungKeliling() bukan method yang abstrak.
3. Buat kelas Abstrak2 yang diturunkan dari kelas Abstrak
Keterangan:
Kelas Abstrak2 tidak menulis ulang method hitungLuas() karena kelas Abstrak2 merupakan
kelas abstract. Namun jika kelas Abstrak2 bukan kelas abstract maka method yang abstrak
pada kelas Abstrak harus ditulis ulang (override)
37
Bab 11 Interface
11.1 Pengertian
Interface adalah merupakan sesuatu yang berbeda dari class, yang hanya berisi deklarasi
method tanpa memiliki implementasi dan semua property yang dimilikinya bersifat final.
Interface mirip dengan class abstrak, tetapi interface tidak terikat dengan class
hierarki. Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa
tubuh. Interface perlu digunakan dalam kerja team, karena programer yang lain tidak perlu
tahu bagaimana detail code ditulis. (Sigit, 2012)
11.2 Contoh
Dari materi mengenai abstrak, dapat kita buat lagi menggunakan konsep interface
1. Buat interface dengan nama Interface
Interface diatas merupakan perubahan dari class Abstrak berikut (sebelumnya sudah ada)
Bandingkan interface dan class Abstrak!
2. Buat Class Persegei yang merupakan implements dari Interface
38
11.3 Contoh Lain
1. Buat interface OpsiSenjata
2. Buat class Senjata yang merupakan implemenst dari interface OpsiSenjata
39
3. Main Class nya
11.4 Perbedaan Abstrak dan Interface
Abstract Class Interface
Bisa berisi abstract dan non-abstract
method
Hanya boleh berisi abstract method.
Kita harus menuliskan sendiri
modifiernya.
Kita tidak perlu susah2 menulis public
abstract di depan nama method. Karena
secara implisit, modifier untuk method di
interface adalah public dan abstract.
Bisa mendeklarasikan constant dan Hanya bisa mendeklarasikan constant.
40
instance variable. Secara implisit variable yang
dideklarasikan di interface bersifat public,
static dan final.
Method boleh bersifat static. Method tidak boleh bersifat static.
Method boleh bersifat final. Method tidak boleh bersifat final.
Suatu abstact class hanya bisa meng-
extend satu abstract class lainnya.
Suatu interface bisa meng-extend satu
atau lebih interface lainnya.
Suatu abstract class hanya bisa meng-
extend satu abstract class dan meng-
implement beberapa interface.
Suatu interface hanya bisa meng-extend
interface lainnya. Dan tidak bisa meng-
implement class atau interface lainnya.
Tabel 11-1 Perbedaan Abstract dan Interface
41
Bab 12 Eksepsi/Exception
12.1 Pengertian
Exception adalah istilah yang diberikan oleh java kepada kesalahan yang terjadi didalam
program, yang terjadi pada saat runtime.
Pada saat terjadi error normalnya alur proses segera berhenti dan akan menampilkan pesan
tertentu, ketika itu terjadi data dapat saja hilang. Agar tidak terjadi seperti itu java
menyediakan mekanisme untuk "Menjebak dan menangkap" error yang mungkin terjadi
tanpa harus mengkhawatirkan data yang hilang.
Kelebihan lain dari fungsi Try-catch bagi programer adalah tidak perlu repot mendeteksi
kapan dan dimana suatu error itu terjadi.
Beberapa kemungkinan error yang bisa terjadi adalah
a. Pemasukan data karakter ketika komputer meminta masukkan
b. Terjadi pembagian dengan nol
c. Path atau lokasi fie yang diberikan tidak sesuai
d. Operasi untuk mengakses variabel Array pada nomor indeks di luar batas.
Di java ada 3 metode untuk mengelolah Exception
a. Menangkap Exception
b. Membuang Exception
c. Melontarkan Exception
Struktru try-catch di penangkapan Exception
try
{
intruksi yang dikerjakan secaranormal
}
catch (Exception ex)
{
intruksi yang dikerjakan jika terjadi Error
}
12.2 Contoh
1. Buat class Main yang isinya seperti ini
42
2. Kita running main diatas, maka muncul form berikut
Keterangan:
Form diatas muncul dari listing program ini
JOptionPane.showInputDialog("Masukan Sembarang bilangan")
Yang berada pada bagian try{}
3. Jika kita input bilangan maka program akan menampilkan bilangan yang kita input. Misal kita
input 123 maka akan muncul seperti ini
Keterangan:
Form diatas muncul dari listing program ini
JOptionPane.showMessageDialog(null, "Bilangan yang anda masukkan :" + bil);
Yang berada pada bagian try{}
4. Akan tetapi, kalau yang kita input bukan bilangan, maka program akan error. Misal kita input
karakter ‘abc’ maka akan keluar
43
Keterangan:
Form diatas muncul karena terjadi error pada inputan yang masuk. Listing program diatas
ditampilkan dari listing program
JOptionPane.showMessageDialog(null, "konversi bilangan gagal");
Yang berada pada bagian catch (Exception ex){ }
44
Bab 13 Package
13.1 Pengertian
Berikut merupakan beberapa istilah mengenai Package
1. Package adalah suatu cara untuk memanage class-class dan interface yang kita buat.
2. Package adalah koleksi dari beberapa class dan interface yang berhubungan, dan menyediakan
proteksi akses dan pengelolaan namespace.
3. Package adalah sebuah sarana untuk mengelompokan atau mengorganisasikan kelas dan
interface yang sama atau sekelompok menjadi satu unit tunggal dalam library.
Secara fisik, package dapat berupa folder
13.2 Penggambaran Package
Berikut merupakan print out dari sebuah project yang dibuat dari netbeans.
1. Nama Project JavaApplication3
2. Didalam project ada beberapa package, yaitu javaapplication3, newpackage, newpackage1,
newpackage2
3. Dalam lokasi penyimpanan, project JavaApplication3 memiliki struktur folder seperti ini
a. Folder JavaApplication3 yang merupakan projectnya
b. Folder javaapplication3, newpackage, newpackage1, newpackage2 merupakan
packagenya.
45
Bab 14 Studi Kasus Kalkulator Sederhana
14.1 Class Calculator
1. Buat interface dengan nama HitungInterface seperti berikut
2. Buat class Hitung (Hitung.java) yang merupakan implementasi dari interface berikut. Pada
class Hitung terdapat method tambah seperti berikut
Untuk kode selanjutnya, silakan dicoba sendiri
3. Pada Mainnya silakan panggil seperti berikut
46
TUGAS !
1. Selesaikan class Hitung (Hitung.java) diatas sampai ke mainnya!
2. Tulis ulang dengan tangan kode diatas, mulai dari
a. Interface HitungInterface
b. Class Hitung
c. Pada class Main, silakan panggil semua method yang sudah dibuat pada class Hitung,
diantaranya tambah(a,b), kurang(a,b), kali(a,b), bagi(a,b) akar(a), satuPerX(x),
persen(a,b), plusMin(a)
3. Buat sebuah form dengan nama Simple (Simple.java) yang desainnya kurang lebih seperti ini
Tuliskan langkah-langkah pembuatan form diatas pada lembar kertas!
4. Buat lagi sebuah form dengan nama Standart (Standart.java) yang desaiinya kurang lebih
seperti ini
47
Tuliskan langkah-langkah pembuatan form diatas pada lembar kertas!
14.2 Kalkulator Sederhana
1. Buat Form dengan nama Simple.java seperti berikut
Caranya, klik kanan pada package pilih New -> jFrameForm dst...
a. TextField pada bilangan 1 diberi nama variable jTextFieldBil1
b. TextField pada bilangan 2 diberi nama variable jTextFieldBil2
c. TextField pada hasil diberi nama variable jTextFieldHasil
d. Button + diberi nama variable jButtonTambah
e. Button - diberi nama variable jButtonKurang
f. Button * diberi nama variable jButtonKali
g. Button / diberi nama variable jButtonBagi
Sekarang jika kita lihat dibagian panel Navigator muncul seperti ini
48
2. Pada bagian source Simple.java tambahkan
a. variable global
Hitung hitung;
double hasil,bil1,bil2;
b. isi constructor
hitung = new Hitung();
Sehingga jadi seperti ini
3. Buat action pada tombol tambah
49
Dan isi source / coding pada action tambah seperti ini
TUGAS !
1. Pada program diatas, selesaikan tombol kurang (-), kali (*), bagi(/) dengan menggunakan
method yang ada pada class Hitung seperti contoh tombol tambah(+)
2. Tulis ulang dengan tangan kode yang sudah Anda tambahkan pada class Simple
(Simple.java)
3. Jelaskan beberapa maksud & tujuan dari kode diatas (tulis di kertas), antara lain
a. Double.parseDouble()
b. jTextFieldBil1.getText()
c. hitung.tambah(bil1, bil2)
d. jTextFieldHasil.setText()
e. String.valueOf()
14.3 Kalkulator Standar
1. Buat Form dengan nama Standar.java seperti berikut
50
a. TextField pada layar diberi nama variable jTextFieldLayar
b. Button + diberi nama variable jButtonTambah
c. Button - diberi nama variable jButtonKurang
d. Button * diberi nama variable jButtonKali
e. Button / diberi nama variable jButtonBagi
f. Button 0 diberi nama variable jButton0
g. Button 1 diberi nama variable jButton1
h. Dst pada setiap button sehingga pada bagian panel Navigator tampak seperti ini
51
2. Pada source Standart.java isikan kode berikut
1. Variable global dan isi constructor
52
2. Method aksiTombol dan letakkan method dibawah contructor
3. Isikan source berikut kedalam jButton0
Lakukan hal yang sama pada button jButton1, jButton2, jButton3, jButton4, jButton5,
jButton6, jButton7, jButton8, jButton9, jButtonKoma.
4. Isikan source berikut kedalam jButtonHapusSatu
53
5. Isikan source berikut kedalam jButtonHapusInput
6. Isikan source berikut kedalam jButtonHapusSemua
7. Isikan source berikut kedalam jButtonTambah
8. Isikan source berikut kedalam JbuttonKurang
54
9. Isikan source berikut kedalam jButtonHasil
3. Jalankan Kalkulator Standart diatas
TUGAS
1. Lengkapi tombol-tombol yang belum diisi source code (coding) pada Kalkulator Standart!
jButtonKali, jButtonBagi, jButtonAkar, jButtonPersen, jButton1PerX, jButtonHapusSatu!
2. Tulis ulang dengan tangan koding yang sudah Anda buat pada class Standart (Standart.java)
dan beri keterangan pada setiap baris koding nya.
55
Bab 15 Database
15.1 Inputan Sederhana
1. Siapkan table mhs_06344 seperti berikut
2. Buat Project Baru dengan nama MyProjectPBO
3. Tambahkan Library MySQL JDBC Driver, caranya
a. Klik kanan folder Libraries -> Add Library
b. Pilih MySQL JDBC Driver -> Add Library
56
4. Buat class KoneksiMysql
57
5. Buat Form Mhs06344
a. Isi source code class form Mhs06344, letakkan source berikut dibawah
public class Mhs06344 extends javax.swing.JFrame {
b. Isi source pada tombol simpan
58
6. Panggil form Mhs06344 di class mainnya MyProjectPBO
59
Bab 16 References
Overloading Dalam Java (OOP). (2012, 07 11). Diambil kembali dari Pemrograman | Design
| Tutorial: http://putrazzendrato.blogspot.com/2012/07/overloading-dalam-java-
oop.html
Overriding Dalam Java (OOP). (2012, 07 9). Diambil kembali dari Pemrograman | Design |
Tutorial: http://putrazzendrato.blogspot.com/2012/07/overriding-dalam-java-oop.html
alka. (2012, 03 28). Belajar Java. Diambil kembali dari Abstract class di java , apa itu dan
untuk apa ?: http://alqaa.wordpress.com/2012/03/28/abstract-class-di-java-apa-itu-
dan-untuk-apa/
Anonim. (t.thn.). PEMROGRAMAN DAN SIKLUS HIDUP.
Arif, F. I. (2011, 04 13). Ilmu IT. Diambil kembali dari Objek Pada Java:
http://ipenk24fajrin.blogspot.com/2011/04/objek-pada-java.html
Goresacreative_Ima. (2012, 11 12). Pengertian Konstruktor Pada Java. Diambil kembali dari
Roinah_Smart: http://roinahsmart.wordpress.com/2012/11/12/konstruktor/
Oracle. (2013, 3 27). Inheritance. Diambil kembali dari The Java Tutorial:
http://docs.oracle.com
Rudy. (2012, 04 19). Pengertian Inheritance dan Polymorphism. Diambil kembali dari
EbookRudy: http://ebookrudy.wordpress.com/2012/04/19/pengertian-inheritance-dan-
polymorphism-beserta-contoh-program/
Sasongko, A. (2008, 10 15). littlebro's note. Diambil kembali dari Java Enkapsulasi:
http://littlebro-note.blogspot.com/2008/10/java-enkapsulasi.html
Sigit. (2012, 11 05). Interface dalam java – Pemrograman Berbasis Objek. Diambil kembali
dari Finding Useful Things: http://aswishnu.blog.amikom.ac.id/2012/11/05/interface-
dalam-java-pemrograman-berbasis-objek/