Anda di halaman 1dari 75

FAKULTAS TEKNIK INFORMATIKA

0
Modul Praktikum
Pemrograman
Berorientasi
Objek Saiful Nur Budiman S.kom.,

M.kom
UNIVERSITAS ISLAM BALITAR
DAFTAR ISI

MODUL I Installasi Netbeans dan Setting Path.............................................................. 1


1.1 Tujuan Pembelajaran........................................................................................ 1
1.2 Java.................................................................................................................. 1
1.3 Latihan Instalasi................................................................................................ 1
1.3.1 Setting Variabel Path.................................................................................. 2
1.4 NetBeans IDE 8.2 ............................................................................................. 3
1.5 Membuat Program sederhana........................................................................... 6
1.6 Penambahan komentar..................................................................................... 7
1.7 Tugas................................................................................................................ 8
MODUL 2 Variabel, Tipe Data, dan Operator............................................................... 10
2.1 Tujuan Pembelajaran...................................................................................... 10
2.2 Variabel .......................................................................................................... 10
2.3 Tipe Data ........................................................................................................ 10
2.3.1 Karakter.................................................................................................... 10
2.3.2 Integer...................................................................................................... 11
2.3.3 Floating Point ........................................................................................... 11
2.3.4 Boolean .................................................................................................... 11
2.4 Operator ......................................................................................................... 11
2.4.1 Operator Aritmetik .................................................................................... 11
2.4.2 Operator Relasi ........................................................................................ 14
2.4.3 Operator Logika........................................................................................ 15
2.5 Analisa............................................................................................................ 15 2.6
Tugas.............................................................................................................. 15 MODUL
III Penyeleksian Kondisi ................................................................................. 16 3.1
Tujuan Pembelajaran...................................................................................... 16 3.2
sSeleksi Kondisi.............................................................................................. 16 3.3
Conditional If................................................................................................... 16 3.4
Conditional If-else ........................................................................................... 18

i
3.5 Conditional Switch .......................................................................................... 21
3.6 Latihan............................................................................................................ 24
3.7 Tugas.............................................................................................................. 24
MODUL IV Perulangan ................................................................................................ 26
4.1 Tujuan Pembelajaran...................................................................................... 26
4.2 Looping........................................................................................................... 26
4.3 Perulangan for ................................................................................................ 26
4.4 Perulangan while ............................................................................................ 28
4.5 Perulangan do…while..................................................................................... 30
4.6 Perulangan Nested For................................................................................... 32
4.7 Analisa............................................................................................................ 33
4.8 Tugas.............................................................................................................. 33
MODUL V String dan Array.......................................................................................... 34
5.1 Tujuan Pembelajaran...................................................................................... 34
5.2 String .............................................................................................................. 34
5.2.1 String Length............................................................................................ 34
5.2.2 String Concat............................................................................................ 34
5.2.3 String Equal Compare .............................................................................. 34
5.2.4 String Index .............................................................................................. 35
5.2.5 Change Case dan Join String................................................................... 37
5.2.6 Substring .................................................................................................. 38
5.3 Array ............................................................................................................... 39
5.3.1 Array Length............................................................................................. 39 5.4
Analisa............................................................................................................ 41 5.5
Tugas.............................................................................................................. 41 MODUL
VI Konsep Object Oriented Programming ...................................................... 42 6.1
Tujuan Pembelajaran...................................................................................... 42 6.2
Pengantar Pemrograman Berorientasi Objek.................................................. 42 6.3
Class dan Object............................................................................................. 43 6.4
Cara Mendefinisikan Class dan Object ........................................................... 43 6.5
Constuctor ...................................................................................................... 46

ii
6.6 Method............................................................................................................ 47
6.7 Modifier Public, Private, Protected .................................................................. 48
6.8 Analisa............................................................................................................ 50
6.9 Tugas.............................................................................................................. 50
Modul VII Inheritance ................................................................................................... 52
7.1 Tujuan Pembelajaran...................................................................................... 52
7.2 Inheritance atau Pewarisan............................................................................. 52
7.3 Extends........................................................................................................... 53
7.4 Virtual Method Invocation................................................................................ 55
7.5 Single Inheritance ........................................................................................... 57
7.6 Multiple Inheritance......................................................................................... 59
7.7 Analisa............................................................................................................ 61
7.8 Tugas.............................................................................................................. 61
Modul VIII Polimorfisme ............................................................................................... 64
8.1 Tujuan Pembelajaran...................................................................................... 64
8.2 Konsep Polimorfisme ...................................................................................... 64
8.3 Binding Dynamic dan Static ............................................................................ 66
8.3.1 Dynamic Binding ...................................................................................... 66 8.3.2
Static Binding ........................................................................................... 68 8.4 Class
Casting.................................................................................................. 69 8.4.1 Down
Casting........................................................................................... 70 8.4.2 Up Casting
............................................................................................... 72 8.5
Analisa............................................................................................................ 73 8.6
Tugas.............................................................................................................. 73 Modul
IX Abstract dan Interface................................................................................... 74 9.1
Tujuan Pembelajaran...................................................................................... 74 9.2
Abstract .......................................................................................................... 74 9.3
Interface.......................................................................................................... 75 9.4
Hubungan Class dan Interface........................................................................ 76 9.5
Abstract Class dan Concrete Class................................................................. 78 9.6
Analisa............................................................................................................ 80

iii
9.7 Tugas.............................................................................................................. 81
Modul X Swing............................................................................................................. 82
10.1 Tujuan Pembelajaran................................................................................... 82 10.2
GUI.............................................................................................................. 82 10.2.1
AWT...................................................................................................... 82 10.2.2
SWING.................................................................................................. 82 10.3
Jtable........................................................................................................... 83 10.3.1
AbstractTableModel .............................................................................. 85 10.4
Analisa......................................................................................................... 89 10.5
Tugas .......................................................................................................... 89

iv
Daftar Tabel

Tabel 2.1 Operator Relasi............................................................................................ 14


Tabel 3.1 Pembagian umur.......................................................................................... 20
Tabel 5.1 Daftar Nilai PBO Mahasiswa ........................................................................ 41
Tabel 5.2 Konversi Nilai Akhir ke Huruf........................................................................ 41
Tabel 6.1 Modifier Java................................................................................................ 49
v
vi
Daftar Gambar

Gambar 1.1 Setting JDK pad Windows (langkah 1) ....................................................... 2


Gambar 1.2 Setting JDK pada Windows ........................................................................ 3
Gambar 1.3 Setting JDK pad Windows .......................................................................... 3
Gambar 1.4 Tampilan Awal Netbeans............................................................................ 4
Gambar 1.5 Membuat Project Baru................................................................................ 4
Gambar 1.6 Memilih Kategori Project ............................................................................ 4
Gambar 1.7 Memberikan Nama pada Project ................................................................ 5
Gambar 1.8 Tampilan Awal project1 .............................................................................. 5
Gambar 1.9 HelloWorld ................................................................................................. 6
Gambar 1.10 Hasil eksekusi program hello_world. ........................................................ 7
Gambar 1.11 Penambahan Comment pada Source Code ............................................. 8
Gambar 2.1 Operasi Dasar Aritmatika ......................................................................... 12
Gambar 2.2 Penggunaan Operator Lanjut ................................................................... 13
Gambar 2.3 Penggunaan Operator Relasi ................................................................... 14
Gambar 2.4 Penggunaan Operator Logika .................................................................. 15
Gambar 3.1 Diagram Penyeleksian Kondisi................................................................. 16
Gambar 3.2 Flowchart Tekanan Darah ........................................................................ 17
Gambar 3.3 Source Code Tekanan Darah................................................................... 17
Gambar 3.4 Flowchart Kelulusan Mahasiswa .............................................................. 18
Gambar 3.5 Source Code Kelulusan............................................................................ 19
Gambar 3.6 Source Code Umur................................................................................... 20
Gambar 3.7 Flowchart Contoh Switch-Case ................................................................ 22
Gambar 3.8 Source Code Penggunaan Switch-Case .................................................. 23
Gambar 4.1 Flowchart For untuk Program Faktorial..................................................... 26
Gambar 4.2 Source Code For Untuk Program Faktorial............................................... 27
Gambar 4.3 Flowchart While Untuk Hitung Bilangan Ganjil Genap ..............................
28 Gambar 4.4 Souce Code Hitung Bil. Ganjil Genap.......................................................
29 Gambar 4.5 Flowchart Do-While Untuk Menghitung Jumlah Angka
............................. 30 Gambar 4.6 Souce Code Hitung Total Suatu Inputan
.................................................. 31 Gambar 4.7 Source Code Penjumlahan Matrik
............................................................ 32 Gambar 5.1 IndexOf String
.......................................................................................... 35 Gambar 5.2 Penggunaan
Beberapa Method String ..................................................... 36 Gambar 5.3 Penggunaan
Change Case dan Join String.............................................. 37 Gambar 5.4 Operasi
Substring .................................................................................... 38 Gambar 5.5
Penggunaan Substring............................................................................. 38 Gambar 5.6
Index Pada Array ..................................................................................... 39 Gambar 5.7
Pengisian dan Pengaksesan Array........................................................... 40

vii
Gambar 6.1 Pembuatan Objek dari Class.................................................................... 45
Gambar 6.2 Penggunaan Constructor ......................................................................... 46
Gambar 6.3 Penggunaan Method Void dan Return ..................................................... 48
Gambar 6.4 Penggunaan Modifier ............................................................................... 49
Gambar 7.1 Class Diagram Contoh Penggunaan Inheritance...................................... 53
Gambar 7.2 Class Main Kendaraan Extend ke Kendaraan .......................................... 54
Gambar 7.3 Memanggil Method yang di Override di Subclass .....................................
55 Gambar 7.4 Contoh Penggunaan VMI .........................................................................
56 Gambar 7.5 Class Diagram Single Inheritance ............................................................
57 Gambar 7.6 Source Code Contoh Single Inheritance...................................................
58 Gambar 7.7 Konsep Multiple Inheritance .....................................................................
59 Gambar 7.8 Penggunaan Multiple Inheritance yang Salah...........................................
60 Gambar 7.9 Penggunaan Multiple Inheritance .............................................................
61 Gambar 8.1 Konsep Polimorfisme ...............................................................................
64 Gambar 8.2 Polymorfisme Pada Constructor...............................................................
65 Gambar 8.3 Class MainPenyanyi.................................................................................
66 Gambar 8.4 Penggunaan Dynamic Binding .................................................................
67 Gambar 8.5 Penggunaan Static Binding ......................................................................
68 Gambar 8.6 Class Casting ...........................................................................................
70 Gambar 8.7 Penambahan Method Ngebut dan Pemanggilannya ................................
70 Gambar 8.8 Menambahkan Method di Superclass agar di Override di Subclass
......... 71 Gambar 8.9 Downcasting
Class................................................................................... 71 Gambar 8.10 Upcasting
Class ..................................................................................... 72 Gambar 9.1 Abstarct
diturunkan dengan keyword Extends.......................................... 75 Gambar 9.2
Hubungan Class dan Interface ................................................................. 76 Gambar 9.3
Abstract dan Interface digunakan Secara Bersamaan.............................. 76 Gambar 9.4
Abstract Pegawai dan Interface Pajak...................................................... 77 Gambar 9.5
Class Gaji................................................................................................. 78 Gambar 9.6
Class TestGaji.......................................................................................... 78 Gambar 9.7
Contoh Abstract Class.............................................................................. 79 Gambar 9.8
Contoh Interface....................................................................................... 79 Gambar 9.9
Contoh Concrete Class ............................................................................ 80 Gambar
10.1 Hirarki Java Swing.................................................................................. 83 Gambar
10.2 TableModel Properties ........................................................................... 84 Gambar
10.3 Set Value dari Jtable Secara Manual ..................................................... 84 Gambar
10.4 Class Biodata ......................................................................................... 86 Gambar
10.5 Class ModelBiodata ............................................................................... 86 Gambar
10.6 Layout LoadDatakeJFrame .................................................................... 87 Gambar
10.7 Variable Penampung Data ..................................................................... 87 Gambar
10.8 Method Baca .......................................................................................... 88

viii
Gambar 10.9 Hasil Ouptut Load Data ke JFrame ........................................................ 88
ix
x
MODUL I
Installasi Netbeans dan Setting Path
1.1 Tujuan Pembelajaran
1) Praktikan dapat melakukan instalasi dan setting Java Development Kit. 2)
Praktikan dapat menggunakan Netbeans sebagai editor pemrograman. 3) Praktikan
dapat menjalankan (eksekusi) program Java sederhana yang ditulis dengan editor
Netbeans.

1.2 Java
Untuk menulis program JAVA dapat digunakan berbagai editor, bahkan editor paling
sederhana, seperti Notepad pun dapat digunakan. Namun pada umumnya, agar
penulisan program lebih terarah, beberapa editor telah disediakan untuk membantu para
programmer yang dilengkapi dengan auto complete. Editror tersebut dinamakan IDE
(Integrated Development Environment) dan berikut adalah contohnya:
a) NetBeans, open source Common Development and Distribution License (CDDL).
NetBeans yang disponsori Sun Microsystems, dilengkapi juga dengan GUI Editor. b)
Eclipse JDT, open source- Eclipse Public License
Eclipse dibuat dari kerja sama antar perusahaan-perusahaan anggota 'Eclipse
Foundation' beserta individu-individu lain. Banyak nama besar yang ikut dalam
'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing
langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih
banyak dan bervariasi dibandingkan IDE lainnya.
c) IntelliJ IDEA (commercial, free 30-day trial)
d) Oracle JDeveloper (free)
e) Xinox JCreator (ada versi berbayar maupun free)
JCreator ditulis dalam C/C++ sehingga lebih cepat dan menggunakan memori
lebih sedikit dari kebanyakan IDE lain.

1.3 Latihan Instalasi


Sebelum memulai pemrograman Java, kita harus menginstal Java Development Kit
(JDK) yang disediakan secara gratis oleh Sun Microsystem. Java Development Kit
tersedia dan dapat didownload pada situs Java Sun Microsystem, yaitu:
http://java.sun.com. Java 1.8 untuk berbagai platform tersedia pada situs tersebut. Untuk
menginstal software Java dapat dilakukan dengan menjalankan file yang mengekstrak
sendiri. Terdapat dua pilihan cara, yaitu:
a) Menjalankan installer dari perintah MS DOS, dan
b) Melakukan double-click ikon jdk-8u231-windows-x64.exe

Installer yang mengekstrak file JDK akan membuat direktori yang diperlukan, dan
sekaligus menyalin file-file ke dalam direktori tersebut. Installshield Wizard memberikan
tampilan bahwa Java siap diinstalasi.

1
1.3.1 Setting Variabel Path
Pada saat program MS DOS dieksekusi, secara otomatis mencari direktori yang ada
untuk file target. Jika program atau file batch tidak tersedia dalam direktori yang ada,
maka akan mencari semua drive dan direktori lainnya dalam variable path system.
Dalam pengembangan Java, tidak diperlukan variable path jika semua software yang
diperlukan terdapat dalam direktori yang ada. Namun akan lebih mudah apabila
dilakukan setting variable path agar sistem secara otomatis mencari file yang
diperlukan. Dalam hal ini, path adalah drive dan direktori dimana java.exe, javac.exe,
dan aplikasi pengembangan lain ditempatkan. Apabila tidak dipilih direktori default,
maka path adalah direktori yang dipilih pada saat instalasi. Perintah path sistem DOS
biasanya terdapat dalam file autoexec.bat, yang dieksekusi selama sistem startup.
Alternatif lain adalah, path dapat dimasukkan dari baris perintah MS DOS dengan
sintaks sebagai berikut:
PATH = [drive:][path];[drive:][path]…]

Apabila digunakan sistem operasi windows dengan JDK versi 1.5 atau yang lebih baru,
maka setting variabel path tidak diperlukan lagi. Untuk pelaksanaan praktikum
Pemrograman Berorientasi Objek nanti, digunakan JDK versi 1,8 sehingga proses
setting path tidak akan dilakukan. Namun apabila digunakan versi lama, maka
diperlukan langkah-langkah setting sebagai berikut:

1) Klik kanan pada “My Computer” lalu klik properties. Kemudian klik “Advanced” lalu
klik “Environment Variables”, ditunjukkan gambar 1.1.

Gambar 1.1 Setting JDK pad Windows (langkah 1)

2
2) Pada System Variables, pilih ”New…”, ditunjukkan pada gambar 1.2. 3) Pada
“Variable name dan Variable Value” tambahkan Path dimana direktori bin dari JDK
Java diletakkan. Lalu klik OK. Seperti yang ditunjukkan pada gambar 1.3.
Gambar 1.2 Setting JDK pada Windows

Gambar 1.3 Setting JDK pad Windows

1.4 NetBeans IDE 8.2


Pada praktikum Pemrograman Berorientasi Objek ini akan digunakan NetBeans sebagai
editor pemrograman. Berikut langkah-langkah penggunaan NetBeans: 1) Setelah
masuk ke NetBeans maka akan terlihat tampilan seperti pada gambar 1.4. 2) Untuk
memulai membuat project baru, pilih File New Project pada bagian menu ditunjukkan
pada gambar 1.5
3) Kemudian pada saat bagian choose project catagories pilih Java, dan pada bagian
projects pilih Java Application, ditunjukkan pada gambar 1.6. Selanjutnya klik
Next > untuk masuk ke langkah selanjutnya.

3
Gambar 1.4 Tampilan Awal Netbeans

Gambar 1.5 Membuat Project Baru

Gambar 1.6 Memilih Kategori Project

4
4) Selanjutnya masukkan Project Name dan Project Location seperti terlihat pada
gambar 1.7. Sebagai latihan berikan nama project dengan project1. Pada bagian
create main class, dapat diberikan nama yang berbeda dari Project Name-nya,
misalkan kita beri nama HelloWorld, tidak perlu menambahkan .Main atau .Java,
NetBeans akan secara otomatis memberikan ekstensi-nya. Setelah selesai, klik
Finish. Project yang telah kita setup hasil akhirnya seperti ditunjukkan pada
gambar 1.8.

Gambar 1.7 Memberikan Nama pada Project

Gambar 1.8 Tampilan Awal project1

5
Dengan demikian sebuah project baru telah berhasil dibuat. Untuk pembuatan class
baru, akan dijelaskan lebih lanjut pada praktikum berikutnya yang membahas khusus
tentang pembuatan class.
1.5 Membuat Program sederhana
Pada Class HelloWorld.java yang dibuat tambahkan perintah sebagai berikut:
System.out.println("Hello Dunia");

Pada baris ke-18. Sehingga program yang terbentuk seperti pada gambar 1.9.

Gambar 1.9 HelloWorld

6
keterangan:
a. Syntax utama untuk program yang ditulis dengan JAVA adalah:
[modifier][class] NamaClass {
...
}

Ada beberapa modifier pada JAVA, yaitu public, private dan protected. Modifier
public diperlukan agar program dapat dikompilasi dengan baik.
b. Bagian ini merupakan bagian utama yang ditempatkan pada bagian awal pada
program JAVA. static menunjukkan tipe method. void menunjukkan bahwa
method tidak mengembalikan nilai atau objek. Main merupakan nama method
utama program JAVA. String merupakan tipe argumen yang akan diterima
sebagai parameter dari command JAVA. Args merupakan array argumen yang
dapat ditambahkan pada saat mengunakan command JAVA untuk menjalankan
program JAVA.
c. Perintah untuk mencetak pada console yaitu “Hello Dunia”.

Selanjutnya, program dapat dieksekusi dengan klik tombol Run Main Project (F6) atau
Run File (Shift+F6). Hasilnya dapat dilihat pada window output dengan hasil
sebagaimana terlihat pada gambar 1.10.

Gambar 1.10 Hasil eksekusi program hello_world.

1.6 Penambahan komentar


Untuk membantu mengingat arti/ tujuan penulisan serangkaian kode yang telah ditulis,
biasanya para programmer memberikan beberapa komentar pada source code. Pada
JAVA, untuk membuat komentar dapat dilakukan dengan cara:
a. Komentar dengan menggunakan tanda //. Tanda ini digunakan untuk memberikan
komentar dalam satu baris. Tanda // diletakkan pada awal baris. Cara cepat
Ctrl+Shif+C.
b. Komentar dengan menggunakan tanda /* dan */. Tanda ini digunakan untuk
memberikan komentar yang ditulis dalam beberapa kalimat.

7
Gambar 1.11 Penambahan Comment pada Source Code

1.7 Tugas
1) Lakukan proses instalasi Netbeans dan JDK disertai dengan screenshot dan
penjelasannya.
2) Buatlah sebuah project untuk menampilkan data KRS (NIM Ganjil) atau KHS (NIM
Genap), disertai penggunaan Util.Scanner. Berikan penjelasan untuk source code
nya di laporan.

8
9
MODUL 2
Variabel, Tipe Data, dan Operator

2.1 Tujuan Pembelajaran


1. Praktikan dapat membuat variabel dengan benar.
2. Praktikan mampu menggunakan berbagai tipe data dalam berbagai kepentingan.
3. Praktikan mampu menggunakan berbagai operator dan mengimplementasikannya
dalam pemrograman.

2.2 Variabel
Variabel adalah nama dari suatu lokasi di memori yang digunakan untuk menyimpan
data sementara. Variabel diberi nama tertentu yang menunjukkan domain yang
diwakilinya. Dalam memberikan nama variabel, ada beberapa ketentuan yang harus
diperhatikan yaitu:
1. Panjang karakter nama variabel tidak dibatasi.
2. Nama variabel diawali dengan huruf, tanda garis bawah (underscore) atau tanda
dolar ($). Selanjutnya dapat diikuti oleh karakter lain, selain operator (*, -, +). 3.
Bersifat case sensitive (membedakan antara huruf kapital dan huruf kecil). 4. Tidak
diperbolehkan menggunakan kata-kata kunci yang digunakan pada java, seperti: if,
for, while, dll.

Data yang tersimpan dalam variabel memiliki tipe tertentu. Sebelum digunakan dalam
aplikasi, suatu variabel harus dideklarasikan terlebih dahulu. Sintaks:
[tipe_data] [nama_variabel]

Beberapa tipe data yang dapat digunakan pada praktikum kali ini akan dibahas pada
subbagian berikutnya.

2.3 Tipe Data


2.3.1 Karakter
Karakter tunggal, diberikan dengan tipe data char. Data yang memiliki tipe data ini ditulis
dengan diapit tanda petik tungal, seperti: ‘A’, ‘S’, ‘?’, dll. Char berbeda dengan String
yang mana String adalah kumpulan dari beberapa karakter. Tipe data String ditulis
dengan diapit tanda petik ganda.
Contoh:
String nama = "Saifu Nur B";
char golDarah = 'O';

10
2.3.2 Integer
Tipe data integer merupakan bilangan bulat (positif, nol, atau negatif).
Contoh:
int x = 2;
int y = 4;
int z = x+y;

Selain int, bilangan integer juga dapat memiliki tipe data byte, short atau long yang
masing-masing dibedakan oleh panjang memori yang ditempatinya. • Byte menempati
lokasi sebesar 1 byte.
• Short menempati lokasi memori sebesar 2 byte
• Int menempati lokasi memori sebesar 4 byte
• Long menempati lokasi memori sebesar 8 byte

2.3.3 Floating Point


Untuk merepresentasikan data pecahan (bukan integer) dapat digunakan dua macam
tipe data, yaitu float atau double. Tipe data float memiliki panjang lokasi penyimpanan
sebesar 4 byte sedangkan double sepanjang 8 byte.
Contoh:
int a = 3;
int b = 4;
double avg = (a+b)/2;
float area = 1.2f;

2.3.4 Boolean
Tipe data boolean hanya memiliki dua kemungkinan nilai yaitu true atau false.
Contoh:
boolean isDone = false;

2.4 Operator
2.4.1 Operator Aritmetik
Operator-operator aritmetik di Java seperti pada umumnya terdiri-dari: penjumlahan (+),
pengurangan (-), pembagian (/), perkalian (*), dan modulo (%). Source code pada
gambar 2.1 menunjukkan operasi dasar aritmatika, dimana hasil outputnya ditunjukkan
pada gambar 2.1 (a).

11
Gambar 2.1 Operasi Dasar Aritmatika

(a) Hasil output

12
Analisa:
• Tunjukkanlah hasil output-nya jika pernyataan pada baris ke-22 diganti menjadi:
double bagi = a/b;

Lakukan run kembali, bagaimana hasilnya?

• Tunjukkanlah hasil output-nya jika pernyataan pada baris ke-22 diganti menjadi:
double bagi = (double) a/b;

Lakukan run kembali, bagaimana hasilnya? Berikanlah alasan!

Di samping operator-operator dasar tersebut, ada beberapa cara singkat untuk


menuliskan operator aritmetika, seperti berikut:
x = x + 1, dapat disingkat menjadi x++
x = x – 1, dapat disingkat menjadi x--
x = x + 3, dapat disingkat menjadi x+=3
x = x – 5, dapat disingkat menjadi x-=3

Tulislah source code seperti yang ditunjukkan gambar 2.3, kemudian lakukan eksekusi
dan jelasakan hasilnya!

Gambar 2.2 Penggunaan Operator Lanjut


13
2.4.2 Operator Relasi
Operator relasi digunakan dalam ekspresi boolean yang akan menghasilkan nilai
boolean guna menentukan langkah eksekusi blok pernyataan tertentu. Beberapa
operator logika dapat dilihat pada Tabel 2.1. Source code pada gambar 2.4
menunjukkan penggunaan dari operator relasi, kemudian lakukan eksekusi, jelaskan
hasilnya!

Tabel 2.1 Operator Relasi


Symbol Keterangan

> Lebih Dari

< Kurang Dari

>= Lebih Dari atau Sama Dengan

<= Kurang Dari atau Sama Dengan

== Sama Dengan

!= Tidak Sama Dengan


Gambar 2.3 Penggunaan Operator Relasi

14
2.4.3 Operator Logika
Operator logika digunakan juga dalam ekspresi boolean yang akan menghasilkan nilai
boolean guna menentukan langkah eksekusi blok pernyataan tertentu. Beberapa
operator logika seperti AND (&&), OR (||) atau NOT (!). Source code pada gambar 2.5
menunjukkan penggunaan oprasi logika. Lakukan eksekusi, dan jelaskan hasilnya!
Gambar 2.4 Penggunaan Operator Logika

2.5 Analisa
Lakukan ujicoba pada program diatas sebagai bentuk latihan kemudian lakukan analisa

2.6 Tugas
1) Buatlah sebuah program untuk menghitung keliling dan luas lingkaran. Inputan
menggunakan Scanner untuk variabel diameter dan jari-jari lingkaran. 2) Buatlah
sebuah program untuk menghitung nilai akhir dari gerbang OR, XOR, AND

15
MODUL III
Penyeleksian Kondisi

3.1 Tujuan Pembelajaran


1) Praktikan mengenal beberapa perintah untuk melakukan seleksi kondisi. 2)
Praktikan mampu menggunakan berbagai conditional statement dalam berbagai
kebutuhan.

3.2 sSeleksi Kondisi


Dalam pemrograman seringkali dibutuhkan eksekusi blok pernyataan jika dipenuhi
kondisi tertentu. Kondisi yang diberikan dinyatakan dengan ekspresi boolean. Pada
Gambar 3.1 terlihat bahwa blok pernyataan A akan dieksekusi jika kondisi D bernilai
benar, sebaliknya blok pernyataan B akan dieksekusi jika kondisi D bernilai salah.

Gambar 3.1 Diagram Penyeleksian Kondisi

3.3 Conditional If
Pengkondisian dengan if digunakan untuk mengeksekusi blok pernyataan, dimana yang
dibutuhkan hanyalah kondisi benar saja.
Sintaks:
If (<ekspresi_boolean>){
<block pernyataan>
}

Pada gambar flowchart 3.2 diberikan contoh penggunaan conditional if, dimana untuk
mengetahui status tekanan darah seseorang. Dikatakan mengalami hipertensi jika darah
sistolik lebih dari 140 mmHg. Source code untuk permasalah tersebut ditunjukkan pada
gambar 3.2 berikut hasil dari running source code-nya (a) input dan (b) hasil output.

16
mulai > 140

Ya
tekanan_darah
tampilkan
Hipertensi
tekanan_darah
Selesai

Tidak

Gambar 3.2 Flowchart Tekanan Darah

Gambar 3.3 Source Code Tekanan Darah


17
(a) Input (b) Hasil Output
Analisa:
• Sekarang cobalah lakukan percobaan untuk inputan tekanan darah jika nilainya
140, bagaimana hasilnya? Lakukan analisa!

3.4 Conditional If-else


Pengkondisian dengan if-else digunakan untuk mengeksekusi blok pernyataan A jika
suatu kondisi bernilai benar, dan sebaliknya akan mengeksekusi blok pernyataan B jika
suatu kondisi bernilai salah. Sintaks:
If (<ekspresi_boolean>){
<block pernyataan A>
}
else (<ekspresi_boolean>){
<block pernyataan B>
}

mulai

nilai, hasil

hasil = lulus Selesai


nilai > 70 Tidak
hasil = tidak lulus
tampilkan hasil
Ya

Gambar 3.4 Flowchart Kelulusan Mahasiswa


18
Perhatikan gambar 3.4, pada flowchart tersebut digunakan untuk menentukan
kelulussan seorang mahasiswa berdasarkan nilai yang diberikan. Seorang mahasiswa
dinyatakan lulus jika nilia yang diperoleh lebih dari 70, kurang dari nilai tersebut
dinyatakan tidak lulus. Source dari contoh permasalah tersebut ditunjukkan pada
gambar 3.5 disertai dengan input (a) dan hasil output (b).

Gambar 3.5 Source Code Kelulusan

(a) Input (b) Hasil Output

Analisa:
• Sekarang cobalah lakukan percobaan untuk inputan jika nilainya adalah -1,
bagaiman hasilnya? Lakukan analisa!
• Apa yang terjadi jika pada baris 20 tidak dilakukan parsing, melainkan dilakukan
casting ke (double) input? Lakukan analisa!

19
Diketahui pembagai umur manusia ditunjukkan pada tabel 3.1 sebagai

berikut: Tabel 3.1 Pembagian umur

Umu (tahun) Kategori

umur < 5 balita

5 ≤ umur < 12 anak

12 ≤ umur < 18 remaja

18 ≤ umur < 40 dewasa

40 ≤ umur < 60 paruhbaya

umur ≥ 60 lanjut usia

Untuk menyelesaikan contoh persoalan di atas yaitu bisa menggunakan conditional if


else seperti yang ditunjukkan pada source code 3.6 yang disertai dengan input (a) dan
hasil outputnya (b).

Gambar 3.6 Source Code Umur


20

(a) Input (b) Hasil Output

Analisa:
• Sekarang cobalah lakukan percobaan untuk inputan umur 40, bagaimana
hasilnya? Lakukan analisa!
• Kemudian lakukan percobaan kembali jika input umur 18.5, bagaimana
hasilnya, lakukan analisa!

3.5 Conditional Switch


Pengkondisian dengan switch digunakan apabila ada beberapa pilihan dimana setiap
pilihan akan mengeksekusi blok pernyataan yang berbeda.Sintaks:
switch (<ekspresi_integer>){
case<nilai_variable>: <block pernyataan> break;

case<nilai_variable>: <block pernyataan> break;

case<nilai_variable>: <block pernyataan> break;

……
default: <block pernyataan>
break;
}

Ekspresi_integer yang dapat digunakan adalah byte, short, int, dan char. Char dapat
digunakan karena char sebenarnya merupakan unicode yang bernilai antara 0 – 65535.
Sedangkan tipe long tidak dapat digunakan untuk ekspresi_integer ini. Berikut akan
dilakukan operasi aritmetik untuk dua bilangan integer A dan B, dengan a=100 dan
b=25. Ada 2 operasi yang dapat dipilih, yaitu penjumlahan dan pengurangan.
21
Gambar 3.7 menunjukkan flowchart untuk permasalahan ini. Sedangkan untuk souce
codenya ditunjukan pada gambar 3.8 disertai dengan input (a) dan hasil output (b).

mulai

a = 100
b = 25
hasil = 0

tampilkan
menu pilihan

input pilihan

pilihan = 1 hasil = a+b


ya

tidak

pilihan = 2 hasil = a-btampilkan


hasil

tidak
ya Gambar 3.7 Flowchart
Contoh Switch-Case

tampilkan Selesai
pilihan anda salah
22

Gambar 3.8 Source Code Penggunaan Switch-Case


(a) Input (b) Hasil Output

Analisa:
• Bagaimana jika inputan yang digunakan adalah 3, seperti apa hasilnya?
Lakukan analisa!
• Kemudian lakukan percobaan kembali jika inputnya adalah “satu”, bagaimana
hasilnya?lakukan analisa!

23
3.6 Latihan
Lakukan percobaan pada contoh source code diatas dan lakukan analisa.

3.7 Tugas
1) Buatlah program untuk conditional switch dalam menentukan volume dari balok,
kubus dan tabung.
2) Buatlah conditional if untuk menentukan bilangan ganjil yang merupakan kelipatan
3 antara bilangan 1 sampai 50.
24
25
MODUL IV
Perulangan

4.1 Tujuan Pembelajaran


1) Praktikan mengenal beberapa perintah untuk perulangan.
2) Praktikan mampu menggunakan berbagai bentuk dari perulangan untuk
menyelesaikan suatu permasalahan pada pemrograman.
4.2 Looping
Pada pemrograman pastilah ada suatu blok pernyatan yang dieksekusi berulang kali
tergangung pada kondisi tertentu. Untuk hal tersebut java menyediakan beberapa
statemen perulangan (loop). Dengan menggunakan statement ini, blok pernyataan
cukup memberikan ekspresi boolean terhadap suatu kondisi.

4.3 Perulangan for


Bentuk for digunakan untuk melakukan perulangan, dimana banyaknya perulangan
telah diketahui sebelumnya. Pernyataan dengan for memiliki counter yang akan
bergerak naik atau turun (increment atau decrement) secara otomatis.Sintaks:
for (<inisialisasi>; <ekspresi boolean>; <iterasi>){ <block
pernyataan>
}

Misal, for (int i=0; i<=10; i++), berarti proses perulangan akan berjalan mulai dari 0
sampai 10, dimana counter i akan naik secara otomatis (i++) hingga i mencapai angka
10. Sebagai contoh akan dihitung nilai n! (n faktorial). Besarnya nilai n ditentukan
melalui input data. Flowchartnya ditunjukkan pada gambar 4.1 dan source code
ditunjukkan pada gambar 4.2 beserta input (a) dan hasil output (b).

mulai

n
faktorial += faktorial * i

i=1 i = i+1 i < n ya


faktorial = 1
Selesai
tidak faktorial
tampilkan

Gambar 4.1 Flowchart For untuk Program Faktorial

26
Gambar 4.2 Source Code For Untuk Program Faktorial

(a) Input (b) Hasil output

Analisa:
• Sekarang cobalah lakukan percobaan untuk for (int i = 0; i <= n ; i ++), bagaimana
hasilnya apakah sama atau beda! Jelaskan!

27
4.4 Perulangan while
Pernyataan while digunakan untuk melakukan perulangan terhadap sejumlah
pernyataan dalam blok selama kondisi bernilai benar (dinyatakan dengan ekspresi
boolean). Sintaks:
while (<ekspresi boolean){
<block pernyataan>
}

Sebagai contoh akan dibuat program untuk menghitung banyaknya bilangan ganjil dan
genap sampai nilai ke n. Flowchartnya ditunjukkan pada gambar 4.3 dan source code
ditunjukkan pada gambar 4.4 beserta input (a) dan hasil output (b).

mulai

i=1
ganjil = 0 genap = 0 ya
i < =n i % 2 == 0 ya genap = genap + 1

tidak
tampilkan genap

Selesai
tidak
ganjil = ganjil +1 i = i+1

tampilkan ganjil

Gambar 4.3 Flowchart While Untuk Hitung Bilangan Ganjil Genap

28
Gambar 4.4 Souce Code Hitung Bil. Ganjil Genap

(a) Input (b) Hasil output

Analisa:
• Sekarang cobalah lakukan percobaan untuk menghitung total nilai genap dan
ganjilnya. Misalkan nilai n = 10
Maka nilai total ganjil = 25 diperoleh dari ( 1+3+5+7+9 )
nilai total genap = 30 diperoleh dari ( 2+4+6+8+10)

29
4.5 Perulangan do…while
Blok pernyataan pada do-while dieksekusi hingga suatu kondisi yang dinyatakan oleh
ekspresi logika pada while bernilai salah. Berbeda dengan pernyataan while yang baru
akan dieksekusi blok pernyataanya setelah diketahui kondisi benar, pada do-while blok
ini akan dieksekusi setidaknya satu kali sebelum kondisi bernilai salah. Sintaks:
do {
<block pernyataan>
}
while (<ekspresi boolean

Berikutnya akan dibuat program untuk perulangan do-while untuk terus menampilkan
inputan dan akan berhenti jika nilai yang diinputkan adalah 0. Supaya mudah
memahami program tersebut pada gambar 4.5 ditunjukkan flowchartnya. Pada gambar
4.6 ditunjukkan source code beserta input (a) dan hasil output (b). Untuk input cobalah
masukkan angka 4, 10, 15, dan 0.

mulai
tampilkan
jumlah
number number ya
jumlah = 0
selesai
jumlah = jumlah tidak
+ number

Gambar 4.5 Flowchart Do-While Untuk Menghitung Jumlah Angka

30
Gambar 4.6 Souce Code Hitung Total Suatu Inputan

(a) Input (b) Hasil output

Analisa:
• Sekarang cobalah lakukan percobaan jika user memasukkan angka kelipatan 5
maka jumlahnya akan dikurangi dengan 2. Contoh:
User memasukkan angka berikut = 1 12 20 5
maka nilai Total = (1 + 12 – 2 – 2) = 9

31
4.6 Perulangan Nested For
Sebuah program mengizinkan blok perulangan di dalam blok perulangan lainnya
(bersarang). Misalkan saja di dalam blok perulangan for terdapat perulangan for lagi.
Sebagai contoh berikut merupakan sintaks dari nested loop for:
for (<inisialisasi>; <ekspresi boolean>; <iterasi>){ <block
pernyataanA>
for (<inisialisasi>; <ekspresi boolean>; <iterasi>){ <block pernyataanB>
}
}

Contohnya adalah penjumlahan dua buah matrik. Source code untuk permasalah
tersebut ditunjukkan pada gambar 4.7 Misalkan nilai matriknya sebagai berikut:

7 1] + [1 2
[2 5
9 1] = [3 7 16 2]

Gambar 4.7 Source Code Penjumlahan Matrik

32
4.7 Analisa
Berdasarkan source pada masing-masing penjelasan sebelumnya, lakukan analisa
sesuai dari yang diperintahkan, kecuali untuk subbab 4.6.
4.8 Tugas
1. Buatlah sebuah program menggunakan perulangan untuk menampilkan hasil
output seperti gambar dibawah ini:

2. Buatlah sebuah program menggunakan perulangan untuk menampilkan hasil


output seperti gambar dibawah ini:

33
MODUL V
String dan Array

5.1 Tujuan Pembelajaran


1. Praktikan mengerti dan memahami penggunaan string dan array. 2. Praktikan
mampu menggunakan beberpa operator dan method untuk string dan array.
5.2 String
String merupakan tipe data untuk teks yang merupakan gabungan huruf, angka, spasi
(whitespace) dan berbagai karakter. Tipe data string bersifat dinamis, artinya tidak perlu
menentukan panjang maksimal penggunaan isi dari variable string ini. Sintaks:
string judul = “Pemrograman Berorientasi Objek”;

String dapat dioperasikan dengan menggunakan beberapa fungsi atau method yang
bisa digunakan. Fungsi tersebut antara lain dijelaskan di subbab 5.3 sampai 5.6

5.2.1 String Length


Untuk mengetahui panjang dari variable dengan tipe data string dengan cara
menggunakan method length(). Sintaks:
nama_var_string.length();

5.2.2 String Concat


Jika ada dua buah string atau lebih, maka untuk menggabungkannya bisa
menggunakan method concat(). Sintaks:
nama_var_string_a = “value A”;
nama_var_string_b = “value B”;
nama_var_string_c = nama_var_string_a.concat(b);

5.2.3 String Equal Compare


Pengecekan pada string bisa menggunakan method compare(). Hasilnya berupa tipe
boolean, Jika string pertama dan string kedua hasilnya sama maka akan tampil 0 (true),
jika tidak sama hasilnya 1 (false). Sintaks:

34
nama_var_string_a = “value A”;
nama_var_string_b = “value B”;
nama_var_string_c = nama_var_string_a.compareTo(b);

5.2.4 String Index


Pada suatu kasus terkadang dibutuhkan pengercekan index pada suatu string. Untuk
mendapatkan value dari karakter tertentu dari string yaitu menggunakan method
charAt(int position). Position pertama bernilai 0 sampai posisi terakhir yaitu n – 1. Pada
string juga terdapat method indexOf(char karakter), digunakan untuk mengembalikan
nilai index berdasarkan pencarian string. Sintaks:
nama_var_string_a = “value A”;
nama_var_char = nama_var_string_a.charAt(int);
nama_var_int = nama_var_string_a.indexOf(string); nama_var_int =
nama_var_string_a.indexOf(string, int);

• int indexOf(String str): Mengembalikan indeks dalam string yang ditentukan pada
kejadian pertama dari substring yang ditentukan. Jika tidak terjadi sebagai
substring, akan memberikan nilai -1.
• int indexOf(String str, int fromIndex): Mengembalikan indeks dalam string yang
ditentukan pada kejadian pertama dari substring yang ditentukan, mulai dari
indeks tertentu. Jika tidak ditentukan akan dikembalikan -1.

Supaya lebih jelas mengenai penggunaan indexOf perhatikanlah gambar 5.1 dibawah
ini. Untuk melakukan pencarian huruf “T bisa menggunakan indexOf(“T”) sehingga
hasilnya adalah 0. Jika dilakukan pencarian huruf “T” sekaligus dimulai pada index ke-n
bisa menggunakan indexOf(“T”, 1) maka hasilnya adalah 3 dikarenakan indexnya
dimulai dari 1 sampai n, dimana huruf “T” ditemukan kembali di index yang ke-3. Ingat,
proses pembacaan disebelah kanan dari caret (tanda garis kedip pada string).

Gambar 5.1 IndexOf String

Contoh dari penggunaan method string dari subbab 5.3 sampai dengan 5.6 lebih
detailnya penggunaannya ditunjukkan pada gambar 5.2 beserta hasil outputnya (a)

35
Gambar 5.2 Penggunaan Beberapa Method String

(a) Hasil Output

36
Analisa:
• Berapa panjang total jika pengarang_1 ditambahakn pengarang_2? Tunjukkan lah
source codenya disertai penjelasannya!
• Perhatikan source code pada baris 42, jika diubah jadi buku_3.indexOf(sub, 4)
bagaimana hasilnya! Jelaskan!

5.2.5 Change Case dan Join String


Untuk mengatur supaya karakter pada string berubah dari huruf kecil ke huruf besar
bisa menggunakan method toUpperCase(). Kebalikannya, jika ingin mengubah huruf
besar menjadi huruf kecil bisa menggunakan method toUpperCase(). Penggabungan
string (join) bisa dilakukan secara sederhana dengan menggunakan operator “+”.
Contoh source code penggunaan method dari subbab 5.7 terdapat pada gambar 5.3
disertai dengan hasil outputnya (a). Sintaks penggunaan change case:
var_string_a.toUpperCase();
var_string_b.toLowerCase();
var_string_c = var_string_a + var_string_b;

Gambar 5.3 Penggunaan Change Case dan Join String

(a) Hasil Output Penggunaan Change Case dan Join String

37
Analisa:
• Carilah method untuk mereplace value dari var_b, yang semula memiliki value
“minumnya Cola” diganti menjadi “minumnya Aqua”. Tunjukkan source codenya
dan jelaskan!
• Carilah mengenai method trim() disertai contohnya! Tunjukkan source codenya
dan jelaskan!

5.2.6 Substring
Pemenggalan (substring) bisa digunakan juga di Java. Misalkan seperti gambar 5.4
dibawah ini. Jika dilakukan perintah substring(var_a, 1, 4) maka hasilnya adalah “all”.
Contoh dari souce code penggunaan substring ditunjukkan pada gambar 5.5. Sintaks
dari substring sebagai berikut:
substring(var_string_a, int awal, int akhir);

Gambar 5.4 Operasi Substring

Gambar 5.5 Penggunaan Substring

38
5.3 Array
Array merupakan suatu data yang disajikan secara berurutan. Setiap elemen memiliki
tipe data yang sama. Array menggunakan sekelompok lokasi memori yang berurutan
dengan nama dan tipe data yang berbeda. Sintaks:
tipe_data nama_variabel_array[ ]

Array menggunakan index untuk memudahkan akses terhadap data yang disimpannya,
seperti yang ditunjukkan pada gambar 5.6. Proses pembacaan array dimulai dari index 0
sampai n-1.
Gambar 5.6 Index Pada Array
Besarnya alokasi memori yang akan digunakan perlu diberikan sebelum variabel bertipe
array tersebut digunakan. Apabila alokasi memori tidak diberikan secara eksplisit, maka
Java akan memberikannya secara implisit. Setiap elemen data disebut dengan
nama_variabel_array yang diikuti dengan indeks penomorannya. Sebagai contoh,
apabila akan dibuat variabel penjualan bertipe array dengan alokasi memori sebesar 11,
dan akan diberikan value 125 untuk penjualan ke-11, maka dapat dituliskan sebagai
berikut:
int penjualan[ ];
penjualan = new int [12];
penjualan[12] = 125;

5.3.1 Array Length


Untuk mengetahui jumlah elemen dari sekelompok data array, dapat digunakan method
length(). Sintaks:
nama_variable_array.length;

Sebagai contoh, berikut merupakan contoh penggunaan array untuk menentukan harga
barang ke-i, yang mana i digunakan sebagai index. Souce codenya ditunjukkan pada
gambar 5.7 disertai dengan input dan hasil outputnya.

39
Gambar 5.7 Pengisian dan Pengaksesan Array

(a) Input (b) Hasil Output

40
5.4 Analisa
Lakukan analisa pada gambar source code 5.2, 5.3 berikut disertai penjelasannya!

5.5 Tugas
1. Diketahui daftar nilai matakuliah PBO untuk 3 mahasiswa sebagaimana
ditunjukkan pada tabel dibawah ini:

Tabel 5.1 Daftar Nilai PBO Mahasiswa


Mahasiswa Nilai

Tugas UTS UAS

Ani 50 60 70

Tono 70 75 87

Budi 89 90 90

Selanjutnya akan dicari nilai akhir untuk setiap mahasiswa yang merupakan nilai
rata-rata dari ketiga komponen penilaian (rata-rata tugas, UTS, dan UAS).
Selanjutnya, pemberian nilai dengan huruf diberikan sebagai berikut :

Tabel 5.2 Konversi Nilai Akhir ke Huruf


Nilai Akhir Huruf

Nilai Akhir > 80 A

70 < Nilai Akhir ≤80 B

60 < Nilai Akhir ≤70 C

50 < Nilai Akhir ≤60 D

Nilai Akhir ≤50 E

Buatlah programmnya:
- Masukkan semua nilai kedalam array int
- Lakukan perulangan untuk menghitung nilai akhir
- Di dalam perulangan, gunakan conditional if untuk pengecekan

41
MODUL VI
Konsep Object Oriented Programming
6.1 Tujuan Pembelajaran
1. Praktikan mampu memahami konsep dasar pemrograman Java. 2. Praktikan
dapat membedakan arti dan pemakaian class, objek, referensi objek, method,
constructor, dan beberapa modifier dalam pemrograman Java.

6.2 Pengantar Pemrograman Berorientasi Objek


Sebuah program komputer terdiri dari source code dan data yang berupa variable
maupun konstata. Source code dan data kemudian diatur sehingga dapat bekerjasama
untuk menghasilakn program keluaran yang bisa digunakan untuk menyelesaikan suatu
permasalahan.

Pada model pemrograman prosedural, alur kerja program berorientasi pada proses
(process-oriented). Program merupakan gabungan dari data dan kode dengan struktur
program yang berupa urutan proses. Pendekatan semacam ini memiliki kelemahan,
yaitu akan menemui banyak kesulitan ketika menangani kasus-kasus yang kompleks,
membutuhkan ribuan baris kode. Kondisi seperti itu akan menyulitkan programmer
dalam melacak kesalahan (debugging), menyisipkan modul baru dalam program, dan
sebagainya.

Pemrograman Berorientasi Objek (Object Oriented Programming/OOP) merupakan


pemrograman yang berorientasikan kepada objek, dimana semua data dan fungsi
dibungkus dalam class-class atau object-object. Setiap object dapat menerima pesan,
memproses data, mengirim, menyimpan dan memanipulasi data. Beberapa object
berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya. Masing
masing object harus berisikan informasi mengenai dirinya sendiri dan dapat
dihubungkan dengan Object yang lain. Pemrograman berorientasi objek berbeda
dengan pemrograman prosedural yang hanya menggunakan satu halaman kebawah
untuk mengerjakan banyak perintah atau statement. Penggunaan pemrograman
berorientasi objek sangat benyak sekali, contoh : java, php, perl, c#, cobol, dan lainnya.
Beberapa hal yang merupakan keuntungan dari konsep pemrograman berorientasi
objek adalah sebagai berikut:

• Improved Software Development Productivity: Sistem program dapat dimodifikasi


tanpa melibatkan banyak modul dimana hanya objek saja yang terlibat. Selain itu
sistem program dapat dikembangkan sampai skala paling kompleks.
• Improved Software Maintainability: Bagian dari software dapat dengan mudah di
maintenance jika ada perubahan meskipun dalam skala yang cukup besar.

42
• Faster Development: Metode ini didukung oleh banyak library objek, sehingga
mempercepat penyelesaian program dan juga projek berikutnya.
• Lower Cost of Development: Faster development tentu akan mengurangi biaya
pengembangan pembuatan program
• Higher Quality Software: Faster developmentpun akan memberikan lebih banyak
waktu dan sumberdaya untuk proses verifikasi software.

6.3 Class dan Object


Class merupakan model yang berisi kumpulan attribute dan method dalam suatu unit
untuk suatu tujuan tertentu. Sebagai contoh class manusia memiliki attribute berat,
tinggi, usia kemudian memiliki method makan, minum, tidur. Method dalam sebuah
class dapat merubah attribute yang dimiliki oleh class tersebut. Sebuah class
merupakan dasar dari modularitas dan struktur dalam pemrograman berorientasi
object.

Class memiliki beberapa karakteristik, diantaranya: anggota class terdiri dari atribut dan
method. Tiap-tiap anggota class memiliki control pengaksesan tersendiri, maksudnya
adalah apakah anggota class tersebut dapat diakses dengan bebas (dengan tipe public)
atau hanya dapat diakses melalui sebuah interface. Dalam hal ini, interface adalah
device yang digunakan untuk komunikasi antar object berbeda yang tidak memiliki
hubungan apapun. Interface bisa dikatakan sebagai protokol komunikasi antar object
tersebut.

6.4 Cara Mendefinisikan Class dan Object


Pada Java, class didefinisikan dengan menggunakan keyword class. Berikut ini bentuk
umum yang digunakan untuk mendefinisikan sebuah class. Sintaks:
Class NamaClass{
tipedata data1;
tipedata data2;

tipedata method1(tipedata param){

...
return tipedata;
}

void method2(tipedata param){

...
}
}

43
Data atau variabel yang didefinisikan di dalam sebuah class sering disebut dengan
instance variable yang selanjutnya akan diakses melalui method-method yang ada. Data
dan method yang tergabung dalam suatu class sering dinamakan sebagai class
members. Perhatikanlah contoh sederhana berikut untuk membuat class Mobil.
Class Mobil{
String warna;
int roda;
}

Melalui sourcecode tersebut telah didefinisikan sebuah tipe data baru dengan nama
warna dan roda. Penting untuk diingat bahwa pendefinisian class hanya akan membuat
sebuah pola atau template, bukan membuat objek. Suatu objek bisa dibuat dari class
dengan menggunakan keyword “new”. Ada tiga langkah dalam membuat objek dari
class:

1. Deklarasi: deklarasi variabel dengan nama variabel dan jenis objek.


2. Instansiasi: kata kunci "new" digunakan untuk membuat objek.
3. Inisialisasi: kata kunci "new" diikuti dengangan panggilan untuk konstuktor,
panggilan ini menginisialisasi objek baru.

Berdasarkan class Mobil yang telah dibuat, maka untuk membuat objek baru yaitu
dengan cara seperti berikut:
Mobil toyota = new Mobil();
toyota.warna = “kuning”;
toyota.rota = 4;

Mobil honda = new Mobil();


Honda.warna = “hijau”;
Honda.roda = 6;

Mobil sebagai class, sedangkan toyota dan honda sebagai objek atau instance dari
class Mobil. Dari objek yang telah dibentuk dapat diakses dan dimanupulasi data-data
yang terdapat pada class Mobil dengan menggunakan operator “.” atau dot. Supaya
lebih memahami penggunaan objek, pada gambar 6.1 ditunjukkanlah source code-nya,
outputnya ditunjukkan pada gambar 6.1 (a).

44
Gambar 6.1 Pembuatan Objek dari Class

(a) Hasil Output

Perlu diketahui bahwa setiap objek atau instance dari suatu class akan memiliki salinan
data sendiri-sendiri. Ini artinya, antara objek yang satu dengan yang lainnya, nilai data
datanya bisa berbeda. Pada gambar 6.1 walaupun kedua objek dari class Mobil memiliki
data warna dan roda, namun valuenya berbeda-beda.

Analisa:
• Tambahkan satu tipe data integer dengan nama variable tahun. Berikutnya
panggillah method terserbut! dan tampilkan hasilnya!

45
6.5 Constuctor
Constructor merupakan sesuatu yang mirip seperti method yang namanya sama persis
dengan nama class-nya. Constructor sendiri berfungsi untuk memberikan nilai awal
pada sebuah class ketika class tersebut dibuat dalam bentuk objek pada class lain
(instance). Consturctor secara default tidaklah memiliki parameter, namun dapat
ditambahkan parameter jika dibutuhkan. Perlu diingat, tidak diperbolehkan
menggunakan void pada constructor.Sintaks:
class NamaClass{
NamaConstuctor(){
...
}

NamaConstuctot(tipeData namaVar){
...
}
}

Misalkan terdapat class bernama Bangunan, dimana jika objek persegi dipanggil akan
menampilkan luas dari persegi. Objek persegi_panjang jika dipanggil akan menampilkan
luas persegi panjang. Berikut contoh sourcecode-nya yang ditunjukkan pada gambar 6.2
disertai hasil outputnya 6.2 (a).

Gambar 6.2 Penggunaan Constructor


46

(a) Hasil Output


Analisa:
• Perhatikan baris 15, untuk apa constuctor tersebut! apakah digunakan atau tidak
dalam program di atas? tambahkan SOP di constructor Bangungan() kemudian
buatlah instansasi dari class Bangunan dengan nama objek bangunan_default.
Run kembali aplikasinya, apa yang terjadi? Jelaskan!
• Tambahkan satu constructor lagi dengan tiga parameter yaitu (0.5 , alas, tinggi)
untuk mengukur luas segitiga! Tampilkan hasil outprint-nya serta penjelasannya!

6.6 Method
Method adalah sarana bagi programmer untuk memodularisasi, artinya membreak atau
memecah program kompleks menjadi bagian yang kecil-kecil sehingga nantinya dapat
digunakan berulang-ulang, daripada menulis beberapa baris kode yang sama. Method
dalam Java mirip dengan fungsi atau procedure dalam bahasa pemrograman yang lain.
Pada konsep Object Oriented Programming, function lebih dikenal dengan istilah
Method dimana merupakan suatu bagian dari objek yang mendefinisikan apa yang bisa
objek tersebut lakukan.

Terdapat dua macam method di Java yaitu void dan return. Penamaan method
mengikuti kaidah penamaan seperti pada penamaan variabel. Bagian parameter pada
method diisi dengan parameter-parameter fungsi yang diperlukan. Passing Parameter
dilakukan dengan cara pass by value dan pass by reference. Ingat, jika bentuknya
return, maka tipe data returnya harus sama dengan tipe data pada penyebutan
methodnya. Sintaks:
class NamaClass{
void namaMethod(){
...
}

tipeData namaMethod(tipeData namaVar){


...
return tipeData;
}
}

Pada gambar 6.3 ditunjukkan contoh penggunaan dari method void dan return.
Perhatikan baris 19, dimana pada method tersebut harus mengembalikan tipe data
47
berupa double karena penyebutan methodnya menggunakan tipe data double. Akan
terjadi error code jika tipe datanya diubah menjadi yang lain misalkan saja tipe integer.
Gambar 6.3 Penggunaan Method Void dan Return

(a) Hasil Output

Analisa:
• Bagaimana cara membuat variable yang ada didalam parameter method
namaBarang dan hargaBarang bisa diakses di method main? SOP hasilnya di
main!

6.7 Modifier Public, Private, Protected


Class dalam program Java dapat saling berhubungan dengan cara memberikan akses
terhadap membernya. Semua yang ada di dalam class (atribut dan method) disebut
member. Biasanya akan ada tingkatan akses yang disebut modifier. Modifier tidak hanya

48
bisa diberikan kepada member saja. Tapi juga bisa diberikan kepada interface dan class
itu sendiri. Terdapat 4 macam modifier pada java seperti yang ditunjukkan pada tabel
6.1.

Tabel 6.1 Modifier Java


private Y N N

public Y Y Y

protected Y Y Y

default Y Y N
Keterangan:
Modifier
• Y artinya bisa diakses
• N artinya tidak bisa diakses
• Subclass artinya class anak

Apabila tidak menggunakan alias default, maka class dan member hanya bisa diakses
dari class itu sendiri dan di dalam package itu saja (class yang berada satu package
dengannya). Sebagai contohnya, ditunjukkan pada gambar 6.4 dan hasil outputnya 6.4
(a).

Gambar 6.4 Penggunaan Modifier


49

(a) Hasil Output


Analisa:
• Buatlah satu class di package yang sama dengan nama TestMethod, kemudian
cobalah panggil ketiga method tersebut! Method mana saja yang bisa dipanggil?
Jelaskan!
• Buatlah package baru dengan nama Test dan buatlah satu class dengan nama
TestMethodDiLuar, kemudian cobalah panggil ketiga method tersebut! Method
mana saja yang bisa dipanggil? Jelaskan!

6.8 Analisa
Lakukan analisa pada setiap source code yang sudah dijelaskan disertai dengan
screenshot dan penjelasannya!

6.9 Tugas
1. Buatlah program untuk memasukkan 1 data mahasiswa menggunakan scanner
kemudian tampilkan hasilnya. Berikut ketentuan yang harus ada di programmnya:
• Buat class dengan nama DataPerson()
• Buat variable instance dengan atribut: nama, nim, prodi, alamat, no_telpon
(sesuaikan dengan data personil masing-masing).
• Buatlah method dengan nama FillData() untuk mengisi data mahasiswa •
Buatlah method dengan nama ShowData() untuk menampilkan data
mahasiswa

50
51
Modul VII
Inheritance

7.1 Tujuan Pembelajaran


1. Praktikan mampu memahami konsep dari inheritance.
2. Praktikan dapat menerapakan kapan dan bagaimana menggunakan inheritance
serta cara mengaksesnya.

7.2 Inheritance atau Pewarisan


Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah
class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain.
Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari
duplikasi kode program.

Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode
program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class),
superclass, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut
sebagai class anak (child class), subclass, derived class atau heir class. Tidak semua
property dan method dari class induk akan diturunkan. Property dan method dengan
hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan
method dengan hak akses protected dan public saja yang bisa diakses dari class anak.

Suatu class yang mempunyai class turunan dinamakan parent class atau base class.
Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Suatu
subclass dapat mewarisi apa-apa yang dipunyai oleh parent class. Dikarenakan suatu
subclass dapat mewarisi apa apa yang dipunyai oleh parent class-nya, maka member
dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga apa-apa yang ia
warisi dari class parent-nya. Keuntungan menggunakan inheritance antara lain:

1. Subclass menyediakan state/behaviour yang spesifik yang membedakannya


dengan superclass, hal ini akan memungkinkan programmer Java untuk
menggunakan ulang source code dari superclass yang telah ada.
2. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik,
yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan
state secara umum.

52
7.3 Extends
Extends merupakan keyword yang harus ditambahkan pada definisi class yang menjadi
subclass. Perhatikan gambar 7.1 untuk mempermudah pehamanan mengenai
penggunaan extends pada inheritance. Class MainKendaraan merupakan child dari
class Kendaraan, hal ini bisa dilihat dari class diagram dimana terdapat tanda anak
panah “is” menuju class parent yaitu Kendaraan. Keyword extends harus diletakkan
pada child class dimana pada kasus ini adalah MainKendaraan. Jadi semua atribute
dan method yang public dan protected dimiliki oleh Kendaran bisa diakses oleh class
MainKendaraan. Sintaks:
Class SubClass extends ParentClass{
...
}

Source code-nya ditunjukkan pada gambar 7.2 disertai dengan hasil outputnya (a).

Gambar 7.1 Class Diagram Contoh Penggunaan Inheritance

53
Gambar 7.2 Class Main Kendaraan Extend ke Kendaraan

Analisa:
• Tambahkan method setMesin dan getMesin di class MainKendaraan seperti
coding pada gambar 7.3. Run kembali, bagaimana hasilnya! Jelaskan!

54
Gambar 7.3 Memanggil Method yang di Override di Subclass
7.4 Virtual Method Invocation
Virtual Method Invocation (VMI) bisa dilakukan jika terjadi polimorfisme dan overriding.
Pada saat obyek dibuat tersebut memanggil overridden method pada superclass,
kompiler java akan melakukan invocation (pemanggilan) terlebih dahulu terhadap
overriding method yang ada pada subclass. Sintaks:
Superclass namaObjek = new Subclass();
namaObject.namaMethod();

Pada gambar 7.4 ditunjukkan contoh dari VMI. Setelah selesai, cobalah run, bagaimana
hasilnya!

55
VMIGambar 7.4 Contoh Penggunaan VMI

56
Pada saat object hitungLuas dibuat maka kompiler java akan melakukan invocation
terhadap overriding method pada subclass. Atribut panjang dan lebar dari superclass
akan menutupi (hide) atribut dari subclass. Sedangkan method luas() yang dijalankan
merupakan method yang di override oleh subclass PersegiPanjang.

7.5 Single Inheritance


Konsep dasarnya adalah Generalization (generalisasi) hubungan antara subclass
dengan parent class. Konsep single inheritance hanya memperbolehkan suatu sublass
mempunyai satu parent class. Perhatikan gambar 7.5, dimana dicontohkan class Kucing
diturunkan dari class Mamalia.

Gambar 7.5 Class Diagram Single Inheritance

57
Gambar 7.6 Source Code Contoh Single Inheritance
Jika diperhatikan pada class Kucing tidak ada method makan dan variable nama
melainkan hanya method speak, tetapi pada class MainMamalia, object cat dari class
Kucing bisa mengaksesnya. Ini terjadi karena class Kucing turunan dari Mamalia,
sehingga variable nama dengan modifier protected bisa diakses oleh Kucing begitu juga
dengan method makan.

Analisa:
• Bagaimana hasilnya jika pada class Mamalia, modifier variable nama diubah
menjadi private?jelaskan!
• Cobalah melakukan VMI pada object cat, dan lakukan override untuk method
speak sehingga menjalakan method speak tersebut dari parent-nya.

58
7.6 Multiple Inheritance
Jika pada single inheritance setiap subclass mewarisi atribut ataupun method dari super
class, sedangkan multiple inheritance memungkinkan suatu class mewarisi atribute
maupun method lebih dari satu superclass. Prinsip dari multiple inheritance di java
menggunakan interface. Interface berupa kumpulan memuat deklarasi dan struktur
method tanpa detail implementasinya. Contoh dari class diagram penggunaan multiple
inheritance ditunjukkan pada gambar 7.7. Toni merupakan turunan dari Ayah dan Ibu
dimana Ibu dan Ayah merupakan turunan dari Kakek. Source code-nya ditunjukkan
pada gambar 7.8.

Kakek

Ayah Ibu

Toni

Gambar 7.7 Konsep Multiple Inheritance

59
Gambar 7.8
Penggunaan Multiple Inheritance yang Salah
Perhatikan class Toni, terlihat bawha class Ayah dan Ibu tidak boleh diturunkan secara
bersamaan. Java tidak menginjinkan multiple inheritance dari class. Jadi untuk
mengatasi hal tersebut, java menyediakan interface. Interface merupakan kumpulan
method yang memuat deklarasi dan struktur method tanpa detail implementasinya,
kecuali dengan menambahkan keyword default. Source code yang benar untuk
permasalahan di atas ditunjukkan pada gambar 7.9.

60
Gambar 7.9 Penggunaan Multiple Inheritance

7.7 Analisa
Lakukan analisa pada setiap source code yang sudah dijelaskan disertai dengan
screenshot dan penjelasannya!

7.8 Tugas
1. Buatlah aplikasi toko buku dengan ketentuan sebagai berikut:
Masukkan data buku sebanyak 3 kali, dimana tiap data isinya harus meliputi:

• judul: judul buku


• nama_pengarang: nama pengarang buku
• penerbit: yang menerbitkan buku
• tahun_cetak: tahun cetakan pertama
• kategori: su = semua umur, r = remaja, d = dewasa, a = anak

61
Design aplikasi toko buku tersebut dengan konsep inheritance dan tentukan
parent class serta child class-nya. Setelah itu implementasikan class-class yang
teladh didesign dengan membuat program sederhana yang memiliki fasilitas entri
data buku dan melihat isi buku yang telah dientrikan.
62
63
Modul VIII
Polimorfisme
8.1 Tujuan Pembelajaran
1. Praktikan mampu memahami konsep dari polimorfisme.
2. Praktikan dapat mengenal dan menggunakan beberapa polimorfisme yang ada
pada JAVA

8.2 Konsep Polimorfisme


Secara harfiah, poli berarti “banyak” dan morph berarti “bentuk”. Jadi, polimorphisme
berarti “mempunyai banyak bentuk”. Polimorfisme mengizinkan class induk untuk
mendefinisikan sebuah method general (bersifat umum) untuk semua class turunannya,
dan selanjutnya class-class turunan dapat memperbarui implementasi dari method
tersebut secara lebih spesifik sesuai dengan karakteristiknya masing-masing. Untuk
mempermudah dalam memahami konsep polimorfisme dimisalkan terdapat sebuah
class induk dengan nama Penyanyi, yang akan diturunkan lagi menjadi class penyanyi
pop, penyanyi dangdut. Gambar 8.1 menunjukkan konsep dari polimorfisme dari kasus
dimisialkan tadi. Jika dilihat, tedapat method yang sama pada setiap class namun
implementasinya berbeda.

Gambar 8.1 Konsep Polimorfisme


Polymorfisme bisa terjadi pada contructor ataupun pada method. Dari gambar 8.1 di
class Penyanyi terjadi polimorfisme pada constructor-nya. Terdapat dua constructor
dengan nama yang sama namun perbedaanya ada di penggunaan parameternya.
Source code dari kasus tersebut ditunjukkan pada gambar 8.2.

64
Gambar 8.2 Polymorfisme Pada Constructor
65
Sekarang buatlah main class dan buat objek untuk memanggil constructor di class
Penyanyi baik yang tanpa parameter maupun menggunakna parameter. Source code
nya ditunjukkan pada gambar 8.3 dan hasil output (a).
Gambar 8.3 Class MainPenyanyi

(a) Hasil Output

8.3 Binding Dynamic dan Static


Binding merupakan hubungan antara pemanggilan method dan definisi method.
Terdapat dua macam yaitu dynamic dan static binding.

8.3.1 Dynamic Binding


Pada dynamic binding/ late binding (at runtime), method dapat diimplementasikan dalam
beberapa class melalui inheritence. kemudian JVM (Java Virtual Machine) akan
menentukan method mana yang akan dijalankan pada saat runtime. Sintaks untuk
dynamic binding:
(b)
(a)

HelloA objHello = new HelloB();


System.out.println(objHello.toString());

Keterangan:

a) objHello merupakan tipe yang dideklrasikan yang digunakan untuk variable


referensi object atau disebut declare type.
b) HelloB merupakan tipe aktual, berupa class aktual dimana declare type menjadi
referensi untuk objek dari class tersebut.
Contoh dari penggunaan dynamic binding ditunjukkan pada gambar 8.4 dibawah ini.

66
(dynamic bidning)Gambar 8.4 Penggunaan Dynamic Binding

67

Anda mungkin juga menyukai