50
E-Book PEMROGRAMAN BERORIENTASI OBJEK Disusun Oleh: Arfian Hidayat, S.Kom http://arfianhidayat.com FAKULTAS ILMU KOMPUTER UNIVERSITAS DIAN NUSWANTORO SEMARANG 2013

E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

Embed Size (px)

Citation preview

Page 1: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

E-Book

PEMROGRAMAN BERORIENTASI OBJEK

Disusun Oleh:

Arfian Hidayat, S.Kom

http://arfianhidayat.com

FAKULTAS ILMU KOMPUTER

UNIVERSITAS DIAN NUSWANTORO

SEMARANG

2013

Page 2: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

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 Variabel ................................................................................................................ 2

Bab 3 Percabangan dan Perulangan ....................................................................................... 4

3.1 If, If-Else ..................................................................................................................... 4

3.1.1 Contoh 1 ............................................................................................................... 4

3.1.2 Contoh 2 ............................................................................................................... 4

3.2 Switch Case ................................................................................................................. 4

3.3 For, While, Do-While.................................................................................................. 5

3.3.1 For ........................................................................................................................ 6

3.3.2 While .................................................................................................................... 6

3.3.3 Do-While.............................................................................................................. 6

Bab 4 Larik (Array) ............................................................................................................... 7

4.1 Tipe data Array............................................................................................................ 7

4.1.1 Deklarasi Variable Array ..................................................................................... 7

Page 3: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

ii

4.1.2 Membuat Array .................................................................................................... 7

4.1.3 Penggambaran Array ........................................................................................... 7

4.2 Implementasi Array ..................................................................................................... 8

4.2.1 Contoh 1 ............................................................................................................... 8

4.2.2 Contoh 2 ............................................................................................................... 9

Bab 5 Komponen Dasar PBO .............................................................................................. 10

5.1 Object (Arif, 2011) .................................................................................................... 10

5.1.1 Menciptakan Objek ............................................................................................ 10

5.1.2 Memeriksa Tipe Objek ...................................................................................... 10

5.1.3 Menghapus Objek .............................................................................................. 11

5.2 Class .......................................................................................................................... 11

5.3 Instance...................................................................................................................... 11

5.4 Message ..................................................................................................................... 11

5.5 Konstruktor................................................................................................................ 11

Bab 6 Konstruktor, Enkapsulasi & Hidding Information ................................................... 12

6.1 Konstruktor................................................................................................................ 12

6.2 Contoh Penggunaan Konstruktor .............................................................................. 12

6.3 Enkapsulasi & Information Hidding ......................................................................... 13

6.3.1 Pengertian .......................................................................................................... 13

6.3.2 Modifier ............................................................................................................. 13

Bab 7 Inheritance ................................................................................................................. 16

7.1 Pengertian Inheritance ............................................................................................... 16

7.2 Contoh Inheritance .................................................................................................... 17

7.2.1 Contoh 1 ............................................................................................................. 17

7.2.2 Contoh 2 ............................................................................................................. 17

7.2.3 Contoh 3 (Oracle, 2013) .................................................................................... 19

7.2.4 Contoh 4 (Oracle, 2013) .................................................................................... 22

Page 4: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

iii

7.3 Multilevel Inherintance ............................................................................................. 23

Bab 8 Konstruktor Overriding & Overloading .................................................................... 24

8.1 Overriding (Overriding Dalam Java (OOP), 2012) ................................................... 24

8.1.1 Pengertian Overriding ........................................................................................ 24

8.1.2 Aturan Overriding .............................................................................................. 24

8.1.3 Contoh Overriding 1 .......................................................................................... 24

8.1.4 Contoh Overriding 2 .......................................................................................... 25

8.2 Overloading ............................................................................................................... 25

8.2.1 Pengertian Overloading (Overloading Dalam Java (OOP), 2012) .................... 25

8.2.2 Daftar Parameter Pada Overloading .................................................................. 26

8.2.3 Contoh Overloading ........................................................................................... 26

8.2.4 Contoh 1 ............................................................................................................. 26

8.2.5 Contoh 2 ............................................................................................................. 27

Bab 9 Polimorfisme ............................................................................................................. 28

9.1 Pengertian .................................................................................................................. 28

9.2 Kasus Polimorfisme .................................................................................................. 28

9.3 Contoh Polimorfisme ................................................................................................ 28

Bab 10 Abstrak Kelas ........................................................................................................ 32

10.1 Pengertian .............................................................................................................. 32

10.2 Aturan Abstrak Kelas ............................................................................................ 32

10.3 Contoh Kasus Abstrak Kelas ................................................................................. 33

10.4 Contoh ................................................................................................................... 33

Bab 11 Interface ................................................................................................................. 35

11.1 Pengertian .............................................................................................................. 35

11.2 Contoh ................................................................................................................... 35

11.3 Contoh Lain ........................................................................................................... 36

11.4 Perbedaan Abstrak dan Interface ........................................................................... 37

Page 5: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

iv

Bab 12 Eksepsi/Exception ................................................................................................. 39

Bab 13 Package .................................................................................................................. 40

Bab 14 Pengenalan Pemrograman Grafis .......................................................................... 41

Bab 15 References ............................................................................................................. 42

Page 6: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

v

Daftar Gambar

Gambar 2-1Variabel Sebagai Tempat Menyimpan Data ........................................................... 2

Gambar 7-1 Inheritance ........................................................................................................... 16

Gambar 7-5 Output Inherintance ............................................................................................. 19

Page 7: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

vi

Daftar Tabel

Tabel 2-1 Kata Kunci Tidak Dapat Dijadikan Nama Variable .................................................. 3

Page 8: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

1

Bab 1 Pendahuluan

1.1 _____

Dalam Pengembangan

1.2 ______

Page 9: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

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 Variabel

Variabel adalah satu entitas penyimpanan data yang paling elementer. Dalam

pemrograman, variabel memegang peran yang sangat penting, karena suatu program sangat

tergantung pada adanya data. Tanpa data, operasi-operasi pada program tidak dapat

dijalankan. Sebagai contoh, jika diinginkan suatu operasi penjumlahan tetapi tidak terdapat

2 buah data yang akan dijumlahkan, maka operasi penjumlahan tidak dapat dilakukan.

Variabel sendiri tidak serta-merta dapat diartikan sebagai data itu sendiri. Variabel, dalam

terminologi pemrograman, lebih mengacu kepada alokasi memori yang dapat diisikan data.

Karena mengacu kepada alokasi memori, maka data yang dapat diisikan pada variabel,

normalnya, dapat berubah. Hubungan antara variabel dan data diilustrasikan pada gambar

dibawah. Agar data dapat dipergunakan dalam operasi-operasi pada program, maka perlu

didefinisikan alokasi memori yang dibutuhkan untuk menyimpan data tersebut.

Pendefinisian alokasi memori tersebut dinamakan deklarasi. (Anonim)

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 :

Page 10: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

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

Page 11: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

4

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

Page 12: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

5

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

Page 13: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

6

3.3.1 For

3.3.2 While

3.3.3 Do-While

Page 14: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

7

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];

Page 15: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

8

4.2 Implementasi Array

4.2.1 Contoh 1

1. Class Array dengan isi sebagai berikut

2. Setelah kita jalankan, hasilnya seperti berikut

Page 16: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

9

4.2.2 Contoh 2

1. Class Array dengan Foreach Loop

2. Output program diatas

Page 17: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

10

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.

Page 18: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

11

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

Page 19: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

12

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

Page 20: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

13

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:

Page 21: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

14

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:

Page 22: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

15

Page 23: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

16

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

Page 24: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

17

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

Page 25: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

18

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

Page 26: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

19

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

Page 27: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

20

2. Buat Class MountainBike, dan kita isi seperti ini

Page 28: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

21

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

Page 29: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

22

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

Page 30: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

23

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

Page 31: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

24

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

Page 32: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

25

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

Page 33: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

26

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

Page 34: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

27

8.2.5 Contoh 2

Page 35: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

28

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

Page 36: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

29

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

Page 37: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

30

5. Buat Mainnya

Diatas merupakan main, dan dibawahnya adalah hasil outputnya.

Atau mainnya juga dapat dibuat seperti berikut

Page 38: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

31

Page 39: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

32

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.

Page 40: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

33

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

Page 41: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

34

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)

Page 42: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

35

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

Page 43: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

36

11.3 Contoh Lain

1. Buat interface OpsiSenjata

2. Buat class Senjata yang merupakan implemenst dari interface OpsiSenjata

Page 44: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

37

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.

Page 45: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

38

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

Page 46: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

39

Bab 12 Eksepsi/Exception

Page 47: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

40

Bab 13 Package

Page 48: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

41

Bab 14 Pengenalan Pemrograman Grafis

Page 49: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

42

Bab 15 References

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

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

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/

Page 50: E-Bookdinus.ac.id/repository/docs/ajar/arfian hidayat - pemrograman... · 2.3 Struktur Program ... pada objek. Dengan menggunakan ... ini merupakan ciri khas dari OOP yang tidak terdapat

43