Anda di halaman 1dari 78

KATA PENGANTAR

Alhamdulillah, puji syukur kehadirat Allah SWT yang hanya dengan


hidayah-Nya, sehingga modul praktikum pemrograman berorientasi objek ini dapat
selesai. Salawat dan salam pada Nabi Muhammad SAW yang telah memberi
tuntunan pada kita untuk menuju kehidupan yang lebih baik.
Modul praktikum ini berisi materi dan praktek untuk memudahkan
mahasiswa dalam memahami dan menggunakan konsep pemrograman berorientasi
objek dalam bahasa Java.
Tak lupa kami ucapkan terima kasih pada semua pihak yang telah
membantu dalam menyelesaikan modul praktikum ini. Semoga keberadaan modul
praktikum bisa bermanfaat bagi kita semua.

Bangkalan, Agustus 2011

Penulis

i
TUJUAN

Tujuan Umum
Mahasiswa dapat memahami dan menggunakan konsep pemrograman berorientasi
objek menggunakan Java

Tujuan Khusus
1. Mahasiswa mampu membuat program sederhana menggunakan Java
2. Mahasiswa mampu mengkompilasi dan menjalankan program Java
3. Mahasiswa dapat memahami dan menggunakan kondisional, perulangan
dan percabangan.
4. Mahasiswa dapat membuat program Java interaktif yang dapat mengambil
data yang diinputkan melalui keyboard oleh user.
5. Mahasiwa dapat mendeklarasikan dan membuat Array
6. Mahasiwa dapat memahami dan menggunakan encapsulation
7. Mahasiswa dapat membuat paket dalam Java
8. Mahasiswa mampu menggunakan constructor, multiple contructor, method
dan overloading.
9. Mahasiswa mampu menggunakan inheritance, superkelas, this dan
overriding.
10. Mahasiswa dapat memahami dan mampu menggunakan polymorphism,
abstract class dan interface.
11. Mahasiswa mampu menggunakan exception handling.
12. Mahasiswa dapat memahami dan mampu menggunakan file input dan
output.
13. Mahasiswa mampu menggunakan thread
14. Mahasiswa mampu menggunakan komponen class JLabel, JTextField,
JButton, JCheckBox, JRadioButton, ButtonGroup, JOptionPane, JPanel dan
LayoutManager .
15. Mahasiswa mampu menggunakan JList, JComboBox, JTable, dan JTree.s

ii
DAFTAR ISI

KATA PENGANTAR .............................................................................................. i


TUJUAN.................................................................................................................. ii
DAFTAR ISI .......................................................................................................... iii
DAFTAR GAMBAR .............................................................................................. iv
MODUL 1 MEMULAI PEMROGRAMAN JAVA..................................................1
MODUL 2 KONDISIONAL, PERULANGAN DAN PERCABANGAN .............11
MODUL 3 USER INPUT .......................................................................................20
MODUL 4 JAVA ARRAY.....................................................................................24
MODUL 5 MEMULAI PEMROGRAMAN BERORIENTASI OBJEK ...............27
MODUL 6 CONSTRUCTOR ................................................................................32
MODUL 7 INHERITANCE ...................................................................................38
MODUL 8 POLYMORPHISM ..............................................................................42
MODUL 9 EXCEPTION HANDLING..................................................................49
MODUL 10 FILE INPUT / OUTPUT ....................................................................53
MODUL 11 THREAD ...........................................................................................56
MODUL 12 SWING...............................................................................................61
DAFTAR PUSTAKA .............................................................................................72
BIOGRAFI PENULIS ............................................................................................73

iii
DAFTAR GAMBAR

Gambar 1.1 versi JDK ..............................................................................................3

Gambar 1.2 konfigurasi installer Netbeans ...............................................................4

Gambar 1.3 Pilihan paket program ...........................................................................4

Gambar 1.4 Halaman persetujuan instalasi ...............................................................4

Gambar 1.5 lokasi instalasi NetBeans ......................................................................5

Gambar 1.6 Form summary instalasi ........................................................................5

Gambar 1.7 Pilihan menu file ...................................................................................5

Gambar 1.8 Pilihan kategori proyek .........................................................................6

Gambar 1.9 Masukan nama dan lokasi proyek .........................................................6

Gambar 1.10 Pilihan tipe file ....................................................................................7

Gambar 1.11 Masukan nama dan lokasi file .............................................................7

Gambar 1.12 Hasil run Coba.java .............................................................................8

Gambar 1.13 Pilihan konfigurasi run ........................................................................8

Gambar 4.1 Class dan Object .................................................................................27

Gambar 5.1 Penentu hak akses ...............................................................................28

Gambar 7.1 Prinsip polymorphism .........................................................................42

Gambar 8.1 alur kejadian blok try-catch-finally .....................................................50

Gambar 12.1 Tampilan hasil JFrame ......................................................................63

Gambar 12.2 Tampilan hasil Jlabel ........................................................................63

Gambar 12.3 Tampilan hasil JTextField .................................................................63


iv
Gambar 12.4 Tampilan hasil LayoutManager ........................................................64

Gambar 12.5 Tampilan hasil Jbutton ......................................................................64

Gambar 12.6 Tampilan hasil JCheckBox ...............................................................65

Gambar 12.7 Tampilan hasil JList ..........................................................................69

Gambar 12.8 Tampilan hasil JComboBox ..............................................................70

Gambar 12.9 Tampilan hasil JTable .......................................................................70

Gambar 12.10 Tampilan hasil JTree .......................................................................71

v
MODUL 1
MEMULAI PEMROGRAMAN JAVA

Tujuan :
1. Mahasiswa mampu membuat program sederhana menggunakan Java
2. Mahasiswa mampu mengkompilasi dan menjalankan program Java

Tugas Pendahuluan
1. Apa keungulan dan kekurangan pemrograman Java dibanding
pemrograman laiinnya? Jelaskan!
2. Salah keunggulan pemrogram Java adalah Multiplatform, mengapa
sebuah program Java bisa dijalankan pada semua sistem operasi?
3. Apa perbedaan Compiler dan Interpreter dalam bahasa
pemrograman?

1. Dasar Teori
Pengenalan Java
Java adalah bahasa pemrograman yang berbasis obyek yang berawal dari
C++. Java merupakan bahasa pemrograman yang dapat dijalankan di
berbagai komputer termasuk telepon genggam. Dikembangkan oleh Sun
Microsystems dan diterbitkan tahun 1995. Java tidak boleh disalahpahami
sebagai JavaScript. JavaScript adalah bahasa scripting yang digunakan oleh web
browser.
Untuk membuat dan menjalankan java, kita membutuhkan antara lain :
• Text Editor
Kode program Java dapat dituliskan menggunakan text editor konvensional
seperti : Notepad, Notepad++, Emacs, dsb atau menggunakan IDE
(Integrated Development Environment) yang mendukung Java seperti
NetBeans, Eclipse, JDeveloper, Jcreator, dsb.
• Java compiler
Compiler Java, yaitu javac mengkompilasi kode program Java menjadi apa
yang disebut bytecode yang disimpan dalam file yang berekstensi .class.
• Java interpreter
Program Java dijalankan menggunakan interpreter yaitu Java Virtual
Machine(JVM). Hal ini menyebabkan source code Java yang telah
1
dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang
berbeda-beda.

Tahapan pembentukan program Java


• Tahap 1 Penulisan dan Pembuatan
Untuk membuat program java kita menuliskan program dalam bahasa java
kemudian menyimpannya dalam file berekstensi .java.
• Tahap 2 Kompilasi
Perintah javac digunakan untuk mengkompilasi File java kedalam format
Java bytecodes, File berakhir kompilasinya dengan dibentuknya file
berekstensi .class.
• Tahap 3 - Loading
Apabila program java dieksekusi maka program didownload dari file .class
kedalam memori.
• Tahap 4 - Verifikasi
Kode Byte java diverifikasi kebenaran susunan penulisannya dan skema
keamanannya.
• Tahap 5 - Eksekusi
Terakhir, Program dieksekusi oleh Interpreter Java untuk dijalankan sesuai
dengan instruksi bytecode
Variabel
Variabel digunakan untuk menyimpan nilai dan nilai ini bisa diubah
selama eksekusi program. Bentuk pendeklarasian variabel :
Tipedata namaVar[,namaVar];

Setelah variabel dideklarasikan, variabel dapat diberi nilai dengan memberikan


operator “=”.
Konstanta
Nilai dari konstanta tidak dapat berubah (tetap) setelah
didefinisikan,ketika program dijalankan. Bentuk pendeklarasian konstanta :

final tipedata namakonstanta;

Ekspresi
Ekspresi adalah suatu bentuk yg menghasilkan suatu nilai. Ekspresi dapat
berupa variabel atau melibatkan operator dan operand.

Contoh :
int sum=5;
2
int finalsum;
finalsum=sum;
int a = 1+2;
Pernyataan dan Block
Pernyataan adalah satu atau lebih baris kode yang diakhiri dengan semicolon
(;). Contoh :
System.out.println(“Hello world”);
Block adalah sekumpulan pernyataan sebagai satu unit kesatuan yg berada diantara
kurung kurawal buka “{“ dan kurung kurawal tutup “}”.
Contoh :
public static void main( String[] args ){
System.out.println("Hello");
System.out.println("world");
}

2. Kegiatan Praktikum
Latihan 1 : Instalasi Software JDK dan NetBeans
1. Instalasi JDK
Jalankan file instalasi jdk-6-windows-i586.exe dan ikuti proses instalasi tahap
demi tahap.
Pilihlah direktori penginstalan default.
2. Untuk mengetahui versi JDK yang sudah terinstal dengan Command Promt
ketikkan perintah java –version seperti tampilan di bawah :

Gambar 1.1 versi JDK

Kemudian ketikkan perintah javac untuk mengetahui proses kompilasi bisa


digunakan.
3. Text Editor pada praktikum ini menggunakan IDE NetBeans.
4. Klik 2x installer Netbeans dengan file netbeans-6.8-ml-windows.exe,
sehingga muncul tampilan berikut :

3
Gambar 1.2 konfigurasi installer Netbeans

5. Kemudian tampil pilihan paket program yang akan diinstal (sudah diset
otomatis semua paket diinstal), jika tidak semua program diinstal pilih tombol
Customize.

Gambar 1.3 Pilihan paket program

6. Klik tombol Next, sehingga muncul halaman persetujuan antara pembuat


software dengan Anda sebagai pemakai, klik I accept....Kemudian klik next.

Gambar 1.4 Halaman persetujuan instalasi


4
7. Kemudian tentukan lokasi (sudah diset otomatis) berisi tempat program
Netbeans yang akan diinstal dan lokasi JDK, klik Next:

Gambar 1.5 lokasi instalasi NetBeans

8. Pada form summary akan ditampilkan informasi mengenai instalasi Netbeans


IDE yang akan dilakukan. Klik Install.

Gambar 1.6 Form summary instalasi

9. Tunggu sampai proses instalasi selesai.

Latihan 2 : Menuliskan listing program


1. Jalankan IDE NetBeans yang sudah diinstal.
2. Semua file yang akan digunakan ditempatkan dlm satu proyek, untuk
membuat proyek pilih menu File > New Project, seperti gambar berikut :

Gambar 1.7 Pilihan menu file


5
3. Kemudian pilih kategori untuk proyek yang akan dibuat, pada Categories
pilih Java dan Projects pilih Java Application.

Gambar 1.8 Pilihan kategori proyek

4. Kemudian klik Next, sehingga muncul tampilan masukan nama proyek dan
lokasi penyimpannya.

Gambar 1.9 Masukan nama dan lokasi proyek

5. Klik Finish.
6. Langkah selanjutnya membuat file yang akan digunakan untuk program Java.
Untuk praktikum pemrograman berorientasi objek ini menggunakan java
class. Klik File > New File, sehingga muncul tampilan seperti gambar 1.10.
Kemudian pada Categories pilih Java, pada File Types pilih Java Class.

6
Gambar 1.10 Pilihan tipe file

7. Klik Next, kemudian muncul tampilan yang meminta masukan nama file dan
lokasi penyimpanan file seperti tampilan berikut :

Gambar 1.11 Masukan nama dan lokasi file


8. Klik Finish.
9. Pada file Coba.Java, ketikkan program di bawah ini :

7
Keterangan :
• Nama dari program harus sama dengan nama file dan bersifat case sensitif
• Komentar adalah bagian dari program Java yang akan diabaikan pada saat
eksekusi. Pada Java komentar dapat dibuat dengan dua cara :
- Diawali dengan tanda /* dan diakhiri dengan tanda */
- Diawali dengan tanda // sampai ke akhir baris
• Dokumentasi pada program java diawali dengan tanda /** dan diakhiri
dengan tanda */
• Program Java mempunyai satu metode bernama main.
10. Compile file dengan menggunakan tombol Shift + F6 atau tekan menu Run >
Run File, hasilnya berupa file Coba.class
11. Setelah dijalankan dan program tidak ada yang salah maka akan muncul
tampilan hasil seperti berikut :

Gambar 1.12 Hasil run Coba.java

12. Apabila dalam satu proyek memiliki banyak file maka untuk mengatur file
yang akan dijalankan dan dikompilasi pertama kali harus diatur dengan
menekan menu Run > Set Project Configuration > Customize, seperti pada
tampilan berikut :

Gambar 1.13 Pilihan konfigurasi run


8
13. Kemudian pada pilihan Main Class masukkan nama file yang akan dijalankan
pertama kali.

Latihan 3 :Operator penambahan dan pengurangan


1. Buat file dengan nama TambahKurang.java yang berisi program dengan
menggunakan operator penambahan (++) dan pengurangan(--)seperti berikut :

2. Jalankan program diatas, sehingga menghasilkan hasil seperti berikut :

Gambar 1.14 Hasil run TambahKurang.java

3. Tugas
1. Modifikasi program pada latihan 3 dengan menambahkan operasi y = ++x
dan y = --x. Apa perbedaannya?
2. Buat listing program sehingga menghasilkan tampilan berikut :

9
3. Buat program untuk menghitung nilai rata-rata dari 5 bilangan, sehingga
menampilkan hasil seperti berikut :

4. Buat program untuk menghitung jumlah karakter dalam kalimat dan


perbandingan dari dua kata(menggunakan equal), sehingga menghasilkan
tampilan berikut :

5. Buat program untuk menghitung jumlah tabungan dengan ketentuan berikut :


tabpokok = 600000
sukubunga = 0.12// sama dengan 12 %
menghitung bunga dengan rumus : bunga = tabpokok * sukubunga
sehingga nilai tabpokok = tabpokok * (1 + sukubunga)periode
dengan periode dlm tahun

Tampilan program diatas seperti berikut :

10
MODUL 2
KONDISIONAL, PERULANGAN DAN PERCABANGAN

Tujuan :
Mahasiswa dapat memahami dan menggunakan kondisional, perulangan
dan percabangan.

Tugas Pendahuluan
1. Apa perbedaan penggunaan if dan case dalam pernyataan kondisional?
Jelaskan dan beri contoh !
2. Apa perbedaan penggunaan break, continue dan return? jelaskan dan
beri contoh !
3. Apa perbedaan perulangan while dan do-while? Jelaskan dan beri
contoh!

1. Dasar Teori
Kondisional
Pernyataan kondisional memanfaatkan ekspresi boolean yang dapat berupa
true atau false (sehingga disebut binary decision). Pernyataan kondisional terdiri
dari :
1. Pernyataan if
Pernyataan if menentukan sebuah statement yang akan dieksekusi jika dan
hanya jika persyaratan boolean (boolean statement) bernilai true.
Bentuk umum pernyataan if sebagai berikut :
if( boolean_expression )
{
statement;
}
2. Pernyataan if – else
Pernyataan if-else digunakan apabila kita ingin mengeksekusi sebuah
statement dengan kondisi true dan statement yang lain dengan kondisi false.
Bentuk umum sebagai berikut :
if( boolean_expression )
{
statement;}
else{
statement;
….; }
11
3. Pernyataan if-else if
Pernyataan if yang memiliki beberapa kondisi dinamakan multiple if
condition.
Bentuk umum sebagai berikut:
if( boolean_expression1 )
{
statement;
}
else if (boolean_expression2){
statement;
….;}
else{
statement;
…;
}
4. Pernyataan if bersarang (nested if)
Pernyataan if yang berada di dalam pernyataan if lainnya.
Bentuk umum if bersarang sebagai berikut :
if( boolean_expression1 )
{
if (boolean_expression2){
statement;
….;}
}
else{
statement;

}
5. Pernyatan switch
Pernyataan switch memungkinkan untuk melakukan sejumlah tindakan
berbeda terhadap sejumlah nilai. Bentuk pernyataan ini sebagai berikut :
switch( switch_expression ){
case case_selector1:
statement1; //block 1
. . . //
break;
...
default:
statement1; //
statement2; //block n

12
. . . //
break;
}

Perulangan
Perulangan dalam Java terdiri dari :
1. Pernyataan while
Pernyataan while akan dijalankan secara terus-menerus selama kondisi
bernilai benar(true). Bentuk perulangan while sebagai berikut :
while( boolean_expression )
{
statement1;
statement2;
...
}
2. Pernyataan do..while
Pernyataan do..while, statement dieksekusi setidaknya satu kali. Bentuk
perulangan ini sebagai berikut :
do{
statement1;
statement2;
...
}while( boolean_expression );
3. Pernyataan for
Pernyataan for , melakukan eksekusi pengulangan beberapa kali. Bentuk
perulangan ini sebagai berikut :
for (Initialization; LoopCondition;
StepExpression){
statement1;
statement2;
...
}
Keterangan:
• Initialization – inisialisasi dari variabel loop.
• LoopCondition - membandingkan variabel loop pada nilai batas.
• StepExpression - melakukan update pada variabel loop.

13
Percabangan
Pada percabangan ini terdiri dari break (untuk menghentikan jalannya
statement) dan continue (untuk mengarahkan eksekusi ke kondisi pernyataan
perulangan shg kondisi akan dievaluasi lagi.

2. Praktikum
Latihan 1 : Pemeriksaan kondisi tunggal
Pada bagian pertama dari praktikum pertemuan ini, kita akan belajar melakukan
pemeriksaaan kondisi tunggal.
1. Buat sebuah class dengan nama BelajarCabang.java.

2. Tambahkan sebuah method main di dalam blok class.

3. Tambahkan blok percabangan tunggal di dalam method main.

4. Simpan hasil update dari file BelajarCabang.java. Kompilasi dan jalankan file
classnya. Perhatikan tampilannya.

5. Ubah nilai false dari kode pada langkah 3 menjadi true.


6. Simpan kembali file BelajarCabang.java. Kompilasi dan jalankan file
classnya.

Latihan 2 : Pemeriksaan dua kondisi


Pada bagian kedua dari praktikum ini, kita belajar memeriksa dua kondisi.
1. Modifikasi file BelajarCabang.java.
2. Tambahkan definisi dua variabel a dan b. Inisialisasi nilai variabel a dengan 2
dan variabel b dengan 3.

3. Buat blok pemeriksaan menggunakan dua kondisi.

14
4. Simpan dan kompilasi file BelajarCabang.java.

5. Perhatikan tampilan pada layar. Isikan nilai 5 pada variabel a. Lakukan


pengujian pada class BelajarCabang. Apakah tampilan di bawah ini muncul
pada layar?

6. Apabila variabel a diisi dengan -5 dan b diisi dengan -3, apakah hasil
eksekusi program tersebut ?

Latihan 3 : Pemeriksaan Kondisi Majemuk


Pada bagian berikut ini, kita akan belajar memeriksa kondisi majemuk.
1. Buat class dengan nama CekBulan.java.
2. Definisikan variabel dengan nama bulan bertipe integer.

3. Tambahkan blok pemeriksaan kondisi majemuk setelah deklarasi variabel.

4. Simpan dan kompilasi file CekBulan.java kemudian lakukan pengujian.

5. Gantilah nilai pada variabel bulan menjadi 2. Perhatikan jalannya program


setelah file dikompilasi. Tampilan apa yang muncul?
6. Tampilan apa yang muncul saat nilai variabel bulan diganti menjadi 6?
7. Kode apa yang harus ditambahkan agar program dapat mengenali keduabelas
bulan?

15
Latihan 4 : Pemeriksaan Kondisi Bersarang
Pada bagian ini, kita akan belajar melakukan pemeriksaan kondisi yang ada di
dalam pemeriksaan kondisi yang lain.
1. Gunakan file CekBulan.java.
2. Modifikasi dengan menambah variabel bertipe integer dengan nama tahun.

3. Di dalam blok pemeriksaan kondisi yang kedua, tambahkan pemeriksaan


kondisi untuk nilai tahun. Pemeriksaan dilakukan untuk menentukan apakah
tahun merupakan tahun kabisat dengan menggunakan kelipatan 4.

4. Ujilah class CekBulan.java. Apakah tampilannya seperti di bawah ini?

5. Gantilah nilai yang disimpan dalam variabel tahun menjadi 2016. Apakah
tampilan yang muncul pada layar? Tampilkan nilai tahun di sebelah kanan
nama bulan!

Latihan 5: Pemeriksaan Kondisi menggunakan switch – case


Setelah mempelajari teknik pemeriksaan kondisi dengan menggunakan if, pada
bagian ini kita akan belajar memanfaatkan switch – case untuk melakukan fungsi
yang serupa dengan if.
1. Modifikasi file CekBulan.java.
2. Beri tanda komentar pada blok pemeriksaan kondisi dengan if.
3. Tambahkan blok switch – case berikut ini:

16
4. Simpan file CekBulan.java. Kompilasi dan lakukan pengujian pada class.

Percobaan 6: Perulangan menggunakan while


Pada bagian ini, kita akan belajar menggunakan perulangan while.
1. Buat file BelajarPerulangan.java dan simpan dalam proyek Modul2
2. Di dalam method main, tambahkan blok perulangan dengan while untuk
menampilkan bilangan dari 1.. 10 seperti di bawah ini:

3. Simpan dan kompilasi hingga menjadi class BelajarPerulangan.

4. Apabila counter++ < 10 diganti conuter > 10, apakah tampilan yang muncul
pada layar?

Latihan 7 : Perulangan menggunakan do – while


1. Modifikasi file BelajarPerulangan.java
2. Beri tanda komentar pada blok perulangan sebelumnya.
3. Tambahkan blok perulangan dengan do – while seperti di bawah ini:

17
4. Simpan dan kompilasi hingga menjadi class BelajarPerulangan, sehingga
menghasilkan tampilan berikut :

5. Lakukan percobaan dengan mengganti counter++ <10 dengan counter++ > 10


apakah yang muncul di layar tampilan?

Latihan 8 : Perulangan menggunakan for


1. Modifikasi file BelajarPerulangan.java.
2. Beri tanda komentar pada blok perulangan sebelumnya.
3. Tambahkan blok perulangan dengan for sebagai berikut:

4. Simpan dan kompilasi file tersebut.


5. Tampilan apa yang muncul pada layar saat program dijalankan?
6. Inisialisasi variabel untuk perulangan bisa diletakkan didlm pernyataan for.
Lakukan percobaan dengan mengganti baris perintah for seperti di bawah ini:

7. Kompilasi dan ujilah class BelajarPerulangan. Apakah tampilannya sama


dengan percobaan sebelumnya?
8. Lakukan percobaan dengan memodifikasi baris perintah for menjadi seperti
berikut:

9. Kompilasi dan ujilah class BelajarPerulangan. Apakah tampilannya sama


dengan percobaan sebelumnya?

18
3. Tugas
1. Buat program untuk menghitung jumlah vokal, konsonan dan karakter lain
dalam suatu kalimat ”Belajar Bahasa Pemrograman Java 2”
Maka hasil dari program tersebut adalah 12 vokal, 16 konsonan dan 5
karakter lain.
2. Buat program dengan menggunakan perulangan while, do-while dan for
untuk menghitung pangkat sebuah nilai berdasarkan angka dan nilai
pangkatnya.
3. Buat program untuk menghitung FPB (Faktor Persekutuan Terbesar) dari dua
bilangan bulat bertipe integer. Keluaran dari program ini adalah FPB dari dua
bilangan diatas. Misalkan ingin mencari FPB dari 228 dan 90.
4. Buat program untuk mengkonversi dari bilangan desimal ke bilangan biner
dan dari bilangan biner ke desimal.
5. Buat program untuk mengkonversi suatu nilai ke format bilangan Romawi,
misalkan: 27 akan menghasilkan keluaran “XXVII”.

19
MODUL 3
USER INPUT

Tujuan :
Mahasiswa dapat membuat program Java interaktif yang dapat mengambil
data yang diinputkan melalui keyboard oleh user.

Tugas Pendahuluan
1. Sebutkan dan Jelaskan method-method yang dimiliki Kelas InputStream
dan OutputStream?
2.

1. Dasar Teori
Stream
Stream merupakan proses utk membaca data dari suatu sumber atau
mengirimkan data ke suatu tujuan. Stream standar terdiri dari :
• System.in, berguna utk menangani pembacaan dari keyboard
• System.out, berguna utk mengirimkan keluaran ke layar
• System.err, berguna utk mengirimkan kesalahan.
Buffered Stream
Java menyediakan library yang berisi implementasi dari buffered I/O
streams. Buffered input streams berfungsi untuk membaca data dari area memory
yang disebut sebagai buffer. Sedangkan buffered output streams berfungsi untuk
menulis data ke dalam buffer. Buffered stream menyedikan kelas BufferedReader
yang memungkinkan pembacaan data dari peranti yang berbasis karakter, misal
keyboard. Salah satu metode dalam kelas ini yaitu readLine() yang memungkinkan
pembacaan sebuah baris teks. Untuk menggunakan kelas ini membutuhkan import
dari paket io, seperti berikut :
import java.io.*;

Scanner
Scanner merupakan kelas yang disediakan Java dan kita dapat
menggunakan dengan cara mengimportnya dari paket util. Sintak untuk
mengimport kelas ini sebagai berikut :
import java.util.Scanner;
atau
import java.util.*;
20
Metode yang ada dalam kelas Scanner yaitu:
• nextLine() untuk membaca inputan string
• nextInt() untuk membaca inputan integer
• nextDouble() untuk membaca inputan double

2. Kegiatan Praktikum
Latihan 1 : BufferedReader dan InputStreamReader
Pada bagian pertama dari praktikum ini, kita akan belajar menggunakan class
BufferedReader dan InputStreamReader untuk membaca inputan user.
1. Buat projek baru dengan nama Modul3, kemudian buat file dengan nama
InputBuffer.java dan ketikkan program di bawah ini :

2. Kompilasi dan jalankan file InputBuffer.java. Apakah yang terjadi?


3. Tambahkan pernyataan berikut sebelum pernyataan nama class.

4. Kompilasi dan jalankan file.


5. Saat program dijalankan, Anda akan mendapatkan interaksi yang meminta
masukan dari keyboard.

6. Modifikasi file InputBuffer.java dengan menambahkan variabel seperti


berikut :

7. Setelah pernyataan di bawah :

Tambahkan sintak sebagai berikut :

21
8. Saat program dijalankan, Anda akan mendapatkan interaksi sebagai berikut :

9. Program diatas bisa dimodifikasi seperti berikut dengan hasil eksekusi yang
sama :

Latihan 2: Scanner
Pada bagian kedua, kita akan belajar memanfaatkan class Scanner untuk membaca
inputan.
1. Buat file InputScanner.java dan simpan dalam direktori yang sama dengan
file pada percobaan di atas.
2. Tambahkan import pada paket java.util agar class Scanner dapat digunakan.

3. Tambahkan blok perintah berikut ini:

4. Kompilasi dan jalankan class InputScanner.

22
3. Tugas
1. Buat program untuk menghitung selisih waktu yang dimasukkan pengguna
dengan waktu pada sistem komputer. Contoh : Jika pengguna memasukkan
09:00:00 dan waktu pada komputer 08:30:15 maka program akan
menampilkan 00:29:45. Masukan dari program ini adalah enam bilangan
bulat yang masing-masing melambangkan jam, menit dan detik dengan
menggunakan format jj:mm:dd.
2. Buat program untuk menghitung berapa banyak jumlah lembaran uang dalam
pecahan limapuluh-ribuan, sepuluh-ribuan, lima-ribuan, seribuan, lima-
ratusan dan seratusan yang dibutuhkan untuk membayar suatu barang dalam
kelipatan seratusan, tipe data longint. Inputan data melalui keyboard. Contoh
masukan dan keluaran :
Harga : 27500 Harga : 236200
50000 :0 50000 :4
10000 :2 10000 :3
5000 :1 5000 :1
1000 :2 1000 :1
500 :1 500 :0
100 :0 100 :2

3. Buat program untuk menghitung frequensi munculnya huruf dalam suatu


kalimat yang diinput user. Contoh :“Program Java”
Ouput ;
Huruf P : 1 Huruf a : 3
Huruf r : 2 Huruf m : 1
Huruf o : 1 Huruf j : 1
Huruf g : 1 Huruf v : 1
4. Buat program untuk mengkonversikan suatu nilai yang diinputkan melalui
keyboard ke bentuk terbilangnya. Misalkan jika pengguna memasukkan
23453, maka akan menghasilkan tampilan “Dua puluh tiga ribu empat ratus
lima puluh tiga “. Nilai yang dimasukkan maksimal 15.

23
MODUL 4
JAVA ARRAY

Tujuan :
Mahasiwa dapat mendeklarasikan dan membuat Array

Tugas Pendahuluan
1. Apa keuntungan array dibandingkan dengan deklarasi banyak variabel
untuk tipe data yang sama ? Jelaskan dan beri contoh!
2. Buat program penjumlahan, pengurangan matriks?

1. Dasar Teori
Array adalah sebuah variabel/sebuah lokasi tertentu yang memiliki satu
nama sebagai identifier, namun identifier ini dapat menyimpan lebih dari sebuah
nilai. Nilai yang tersimpan pada array disebut elemen yang untuk mengaksesnya
menggunakan angka index. Java memulai angka indeks dari angka 0. Panjang
array menyatakan kapasitas dari array, yaitu banyaknya ruang dalam memori yang
digunakan. Indeks array yang mengaksesnya tidak boleh melebihi kapasitas array
tersebut.

Array satu dimensi


Array satu dimensi merupakan kumpulan elemen yang sama dan tersusun
dalam satu baris. Deklarasi Array seperti berikut:
tipedata []namaArray;
atau sepasang tanda kurung [] sesudah nama identifier.
tipedata []namaArray;

Array multi dimensi


Array Multidimensi adalah array yang terletak di dlm array. Deklarasi
array multi dimensi seperti berikut :
Elemen 512 x 128 array dua dimensi
tipedata[][] namaArray = new tipedata[512][128];

Elemen 8 x 16 x 24 array tiga dimensi


tipedata[][][] namaArray = new tipedata[8][16][24]

24
2. Kegiatan Praktikum
Latihan 1 : Array satu dimensi
Pada latihan ini akan mengimplementasikan penggunaan array satu dimensi.
1. Buat proyek dengan nama Modul4, kemudian buat file dengan nama
BelajarArray.java dan ketikkan program seperti berikut :

2. Kompilasi dan jalankan program sehingga menghasilkan tampilan berikut :

3. Bandingkan dengan sintak program berikut untuk menghasilkan tampilan


yang sama :

4. Berapa banyak variabel nama berbeda yang digunakan? Misalnya akan


mencetak 100 nama, Berapa banyak pernyataan yang harus dibuat?

Latihan 2 : Array dua dimensi


Pada latihan ini akan mengimplementasikan penggunaan array dua dimensi
1. Buat file dengan anam ArrayMulti.java, kemudian ketikkan program di
bawah ini :

25
2. Kompilasi dan jalankan program tersebut, sehingga menampilkan tampilan
berikut :

3. Tugas
1. Buat program perkalian matrik dengan kolom dan baris berdasarkan masukan
pengguna.
2. Buat program untuk mencari nilai maksimum dan minimum dari sejumlah
bilangan bulat (N) yang dimasukkan pengguna.
3. Buatlah program untuk 1000 orang (laki-laki dan perempuan) yg akan dibuat
data statistik jenis kelamin, bulan kelahiran, hari kelahiran dan yg terbanyak
di lahir di bulan, hari dan jenis kelamin apa?? Untuk mendapatkan jenis
kelamin, bulan dan hari lahir secara acak (Random). Output :
Jan Feb Mar Apr Mei Jun Jul Ags Sep Okt Nov Des
Sen 7 7 9 4 3 10 7 9 5 7 6 4
Sel 6 6 4 5 7 5 5 6 4 7 2 4
Rab 9 5 9 5 4 6 4 3 14 8 7 7
Kam 6 2 5 9 7 1 11 6 0 3 7 7
Jum 1 7 10 1 2 8 7 7 1 7 8 4
Sab 3 7 11 5 7 9 6 7 8 3 6 6
Min 5 7 8 7 9 7 8 4 8 8 8 13
Jumlah Laki-laki 517

Jan Feb Mar Apr Mei Jun Jul Ags Sep Okt Nov Des
Sen 11 5 2 4 6 9 4 3 7 8 5 7
Sel 6 6 10 1 4 4 5 4 10 6 6 7
Rab 6 6 3 6 9 7 6 5 13 3 3 6
Kam 9 7 4 7 4 4 11 1 7 6 5 5
Jum 8 5 6 4 7 5 9 5 4 1 4 2
Sab 3 4 1 6 10 8 9 6 7 8 7 8
Min 1 8 7 7 5 7 6 3 2 5 7 5
Jumlah Perempuan 483
Terbanyak adalah Laki-laki di bulan Sep hari Rab 14 Orang

26
MODUL 5
MEMULAI PEMROGRAMAN BERORIENTASI OBJEK

Tujuan :
1. Mahasiwa dapat memahami dan menggunakan encapsulation
2. Mahasiswa dapat membuat paket dalam Java

Tugas Pendahuluan
1. Apa perbedaan antara class dan objek? Jelaskan dan beri contoh !
2. Pada kasus-kasus tertentu, objek bisa menjadi class dan class bisa
menjadi objek. Beri contoh mengenai pernyataan tersebut?

1. Dasar Teori
Konsep pemrograman berorientasi objek
Pemrograman berorientasi obyek (PBO) memungkinkan sistem kompleks
dipecah ke dalam bagian-bagian kecil yang lebih mudah dipahami dan
diselesaikan. Bagian-bagian (kecil) kode program dapat digunakan ulang oleh
banyak aplikasi untuk menyelesaikan berbagai masalah. Dalam PBO ini program
dibuat berdasarkan objek. Objek merupakan suatu bentuk atau model yang
tergantung dari cara pandang objek dimaksud. Meja, kursi dan jam dinding berada
dalam objek ruangan. Ruang A, ruang B, dan Ruang C berada dalam objek rumah.
Setiap objek memiliki atribut (state) dan method (behaviour). Atribut
merupakan segala sesuatu yang berhubungan dengan karakteristik objek seperti :
tipe, warna . Method adalah fungsi atau segala sesuatu yang dapat dilakukan objek,
seperti melindungi dari panas, hujan. Ruangan dan rumah ini yang dinamakan
class. Class adalah prototipe yang mendefinisikan variabel-variabel dan method-
method secara umum. Objek merupakan instansiasi dari class.

Gambar 4.1 Class dan Object


27
Tiga konsep pemrograman berorientasi objek yaitu :
1. Encapsulation
2. Inheritance
3. Polymorphisme
Encapsulation
Pembungkusan variabel dan method dalam sebuah objek dalam bagian yang
terlindungi inilah yang disebut dengan enkapsulasi. Jadi, enkapsulasi dapat
diartikan sebagai bungkusan ( wrapper ) pelindung program dan data yang sedang
diolah. Pembungkus ini mendefinisikan perilaku dan melindungi program dan data
yang sedang diolah agar tidak diakses sembarangan oleh program lain.
Manfaat dari proses enkapsulasi adalah :
1. Modularitas
Kode sumber dari sebuah objek dapat dikelola secara independen dari kode
sumber objek yang lain.
2. Information Hiding
Karena kita dapat menentukan hak akses sebuah variabel/method dari objek,
dengan demikian kita bisa menyembunyikan informasi yang tidak perlu
diketahui objek lain.
Dalam melakukan pembungkusan kode dan data di dalam Java terdapat penentu
hak akses yang harus diperhatikan.
Penentu akses
• public
Public berarti pengaksesan suatu variabel instan atau metode dapat dilakukan
dari luar kelas
• private
Private berarti pengaksesan suatu variabel instan atau metode hanya dapat
dilakukan di dlm kelas, tidak bisa dari luar kelas.
• protected
protected berguna utk mengatur agar suatu variabel instan atau metode yang
terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan sub kelas.
Perbedaan hak akses untuk metode/ class seperti pada gambar berikut :

Gambar 5.1 Penentu hak akses

28
Mendeklarasikan kelas dan atribut
Kelas dideklarasikan seperti sintaks berikut :
<modifier> class namaClass
{
[deklarasi atribut]
[deklarasi konstruktor]
[deklarasi method]
}
Atribut dideklarasikan seperti sintaks berikut :
<modifier>tipeData namaAtribut;

Mengakses Class
Untuk mengkases class, kita harus buat instansiasi dari kelas seperti sintaks berikut
(ditempatkan di method main):
nama_class variabel = new nama_class();

Paket
Paket merupakan pengelompokan sejumlah kelas yang terkait ke dlm
sebuah unit. Java memiliki beragam paket yang didalamnya terdapat kelas-kelas
dengan beragam fungsi. Java lang, Java AWT, Java swing, Java Util, java Math
adalah diantara contoh paket yang jumlahnya sangat banyak karena lengkapnya
library java. Kita juga dapat membuat paket sendiri.
Contoh 1 :
package kendaraan;
public class Mobil{
public void info(){
System.out.println("Mobil");
}
}
Contoh 2 :
package kendaraan;
public class sepeda{
public void info(){
System.out.println("Sepeda");
}
}
Dari kedua contoh diatas menyatakan bahwa kelas berikutnya(mobil maupun
sepeda) disatukan dalam sebuah paket kendaraan. Sebuah berkas hanya boleh
mengandung sebuah pernyataan package. Untuk mengakses class pada peket yang
telah dibuat menggunakan perintah import.
Bentuk :
import nama_paket.nama_berkas

29
Apabila menemui pengimporan paket spt dibawah ini
import nama_paket.*;
tanda * (wildcard) menyatakan semua kelas pada paket nama_paket.
Contoh :
import kendaraan.*;
berarti semua kelas yang berada pada paket kendaraan.

2. Kegiatan Praktikum
Latihan 1: membuat class 1
Pada latihan ini, Kita akan belajar membuat kelas sendiri.
1. Buat file BelajarClass.java
2. Buat sintaks program untuk menghitung luas persegi panjang dengan
deklarasi atribut panjang dan lebar diletakkan di class PersegiPanjang

3. Tambahkan sintaks berikut pada class BelajarClass dlm method main:

4. Kompilasi dan jalankan program sehinggan menghasilkan tampilan berikut :

5. Jika atribut panjang dan lebar pada class PersegiPanjang ditambah modifier
private, apakah yang terjadi?

Latihan 2 : membuat class 2


Pada latihan ini, kita mencoba untuk membuat class lebih dari satu
1. Modifikasi file BelajarClass.java dengan menambahkan class persegi seperti
berikut :

2. Tambahkan sintaks berikut pada class BelajarClass dlm method main, seperti
sintaks program berikut:

30
3. Kompilasi dan jalankan file sehingga menghasilkan tampilan berikut :

3. Tugas
1. Buat program untuk menampilkan data mahasiswa berikut(mendeklarasikan
class untuk atribut nrp,nama,tgllahir dan alamat) :
Nrp Nama TglLahir Alamat
1051140009 Deni Susanto 12/8/1989 Surabaya
1051140011 Fitria Agustin 1/2/1987 Bangkalan

2. Modifikasi tugas 1 untuk menghitung usia mahasiswa berdasarkan tgl


sekarang – tgllahir.

31
MODUL 6
CONSTRUCTOR

Tujuan :
Mahasiswa mampu menggunakan constructor, multiple contructor, method
dan overloading.

Tugas Pendahuluan
1. Apa perbedaan accessor dan mutator pada method? Jelaskan dan beri
contoh !
2. Bagaimana deklarasi konstruktor lebih dari satu di dalam class?

1. Dasar Teori
Constructor
Constructor adalah sebuah method yang mempunyai fungsi istimewa
yaitu, method tersebut akan dieksekusi pertama kali saat instance dari class yang
bersangkutan dibuat. Nama dari constructor haruslah sama dengan nama class-nya,
dan constructor tidak memberikan nilai balik (return value).
Syntax pendeklarasiannya adalah sebagai berikut,
NamaClass(daftar_parameter) //method header
{
// method body
}

Pada struktur constructor di atas dapat diambil kesimpulan bahwa setiap method
yang konkrit termasuk constructor terdiri dari bagian method header dan method
body. Header berisi nama method yang dalam kasus constructor nama class yang
digunakan. Header juga dapat berisi parameter atau tanpa parameter.

Multiple
Class dapat terdiri dari hanya sebuah constructor atau beberapa (multiple)
constructor. Constructor dapat disediakan sesuai dengan kebutuhan. Artinya
sebuah class dapat terdiri dari beberapa constructor.
NamaClass() //constructor pertama
{
// method body
}

NamaClass(daftar_parameter) //constructor kedua


32
{
// method body
}

Method
Method merupakan blok yang berisi kumpulan perintah, memiliki nama
method, memiliki nilai balik dan dapat diatur hak aksesnya. Method dapat berisi
daftar parameter atau boleh dibiarkan kosong (tanpa parameter).

HakAkses NilaiBalik NamaMethod(Daftar_Parameter)


{
// method body
}

Nilai balik dapat berupa tipe data primitif (void, int, double, boolean, char) atau
dapat berupa tipe data referensi/class (String, Integer, Double, Boolean). Method
yang memiliki nilai balik void tidak menghasilkan nilai di bagian akhir prosesnya.
Method ini biasa dikenal dengan prosedur. Method yang memiliki nilai balik selain
void, menghasilkan nilai di bagian akhir prosesnya. Method ini dapat disebut
sebagai fungsi. Nilai yang dihasilkan oleh fungsi dikirim keluar dari blok fungsi
menggunakan kata kunci return diikuti dengan variabel yang memiliki tipe yang
sesuai dengan nilai balik.

HakAkses NilaiBalik NamaMethod(Daftar_Parameter)


{
return suatuVariabel;
}

Overloading
Overloading adalah suatu mekanisme pembuatan kontruktor yg memiliki
bentuk lebih dari satu (multiple). Karena constructor adalah bentuk khusus dari
method maka overloading juga berlaku pada method.

Contoh constructor overloading:


new Mobil(“Merah”,2003);
new Mobil();

Contoh method overloading:


void hitung( )
void hitung(int a, int b)

33
2. Kegiatan Praktikum
Latihan 1 : Membuat metod
Kita memulai untuk mengimplementasikan penggunaan konstruktor dan metod
menggunakan bahasa Java.
1. Buat file BelajarMetod.java.
2. Tambahkan method utama void main seperti di bawah ini.

3. Pada file yang sama tambahkan definisi class yang kedua, BilanganBulat.

4. Tambahkan deklarasi variabel bil bertipe int.

5. Setelah deklarasi variabel, tambahkan konstruktor yang menerima sebuah


inputan bertipe integer.

6. Di dalam body constructor class BilanganBulat tambahkan baris perintah


yang akan menyimpan nilai dari inputan _bil ke dalam variabel bil.

7. Tambahkan sebuah method ke dalam class BilanganBulat. Method bernama


tambah yang menerima inputan berupa variabel bertipe integer.

8. Ke dalam body tambah, masukkan baris perintah untuk menambahkan


inputan bil2 ke variabel bil sehingga nilai bil berubah sesuai nilai bil2.

9. Tambahkan ke dalam method tambah, sebuah perintah untuk menampilkan


nilai bil saat ini.

10. Kita telah selesai dengan class BilanganBulat. Berikutnya kita akan
menambahkan kode ke dalam main method dari class BelajarMetod.

34
11. Tambahkan baris perintah untuk menginstansiasi atau mendefinisikan sebuah
variabel bertipe class BilanganBulat dengan mengirim nilai awal.

12. Melalui instant dengan nama a, panggil method tambah sambil mengirim nilai
bertipe integer.

13. Simpan file BelajarMetod.


14. Kompilasi dan jalankan class BelajarMetod. Perhatikan tampilannya.

15. Modifikasi program diatas dengan menambahkan method berikut di dalam


class BilanganBulat :

16. Modifikasi method main seperti sintaks berikut :

17. Kompilasi dan jalankan program sehingga menampilkan hasil seperti berikut :

Latihan 2 : Membuat Konstruktor


Pada bagian ini, kita akan belajar membuat class yang dilengkapi dengan lebih dari
satu constructor.
1. Buat file BelajarConstructor.java
2. Tambahkan kode untuk membangun constructor.

35
3. Simpan file BelajarConstructor.java kemudian lakukan kompilasi dan
jalankan program untuk melakukan pengujian pada class ini.
4. Bagian mana yang disebut dengan multiple-constructor?
5. Bagian mana yang disebut dengan overloading constructor?
6. Bagian mana yang disebut dengan daftar parameter?

Latihan 3 : Mutator Method


Pada latihan ini, Kita akan belajar mutator metod yang akan memberi nilai variabel
dalam class.
1. Modifikasi latihan 2 dengan menambahkan deklarasi dua variabel bertipe
integer.

2. Tambahkan kode method setData dan cetak seperti di bawah ini.

3. Tambahkan pemanggilan method setData dalam setiap constructor.

7. Pada method main lakukan pemanggilan method cetak.

36
8. Simpan file BelajarConstructor.java, lakukan kompilasi dan ujilah program
ini.

3. Tugas
1. Modifikasi latihan 3 dengan menambahkan accessor metod dengan nama
getbil1 dan getbil2 yang mempunyai nilai balik integer. Masing-masing
method ini digunakan untuk mendapatkan nilai yang disimpan di dalam
variabel bil1 dan bil2.
2. Buat sebuah class yg memuat data-data buku pada perpustakaan. Tabel
berikut mendefinisikan informasi yang ada pada buku :
Atribut deskripsi
Judul Judul buku
Pengarang Pengarang buku secara lengkap
Penerbit Penerbit buku
Tahun Tahun buku diterbitkan

Buat implementasi dari method sebagai berikut :


• menyediakan accessor dan mutator method untuk seluruh atribut
• constructor
3. Buat class PersegiPanjang yang merepresentasikan objek persegi panjang
dengan spesikasi:
Attribut :
• panjang
• lebar
• Keliling
• luas
Perilaku :
• grow(int delta) panjang dan lebar ditambah dengan delta.
• shrink(int delta) panjang dan lebar dikurangi dengan delta.

37
MODUL 7
INHERITANCE

Tujuan :
Mahasiswa mampu menggunakan inheritance, superkelas, this dan
overriding.

Tugas Pendahuluan
1. Apa perbedaan antara Overloading dan overriding? Jelaskan dan beri
contoh !
2. Bagaimana sintaks untuk memanggil class induk? Jelaskan!

1. Dasar Teori
Inheritance
Inheritance merupakan salah satu dari 3 konsep dasar OOP(Object Oriented
Programming). Konsep inheritance ini mengadopsi dunia riil dimana suatu
entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep
inheritance, sebuah class dapat mempunyai class turunan. Suatu class yang
mempunyai class turunan dinamakan parent class atau base class atau superclass .
Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class.
Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.
Misal : Kelas B adalah kelas anak dari kelas A, maka sifat – sifat dari kelas A
otomatis akan dimiliki juga oleh kelas B.
Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian
diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu
kompiler Java bahwa kita ingin melakukan perluasan class.
Bentuk :
class kelasturunan extends kelasparent
{
tubuhkelas
}
Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class yang
dapat diperluas dari class lain. Konsep inheritance yang ada di Java adalah Java
hanya memperkenankan adanya single inheritance. Konsep single inheritance
hanya memperbolehkan suatu sublass mempunyai satu parent class.

Method Superkelas
Cara untuk memanggil metode superkelas dari subkelas dgn kata kunci
super yang berarti superkelas.
38
Kata Kunci this
Kata kunci this digunakan pada pembuatan class yang menyatakan objek
sekarang.

Overriding
Menulis ulang definisi suatu method yang memiliki method header yang
sama dengan method yang dimiliki oleh superclassnya disebut sebagai overriding.

2. Kegiatan Praktikum
Latihan 1 : Pewarisan
1. Buat file BelajarPewarisan.java.
2. Tambahkan kode class BelajarPewarisan , class SuperClass dan class
SubClass ke dalam file tersebut.

3. Simpan file. Lakukan kompilasi dan pengujian pada class BelajarPewarisan.

4. Modifikasilah class SubClass agar dapat memanggil method dari


superclassnya.

5. Simpan kembali file dan kompilasi serta ujilah programnya.

39
Latihan 2 : Overriding
1. Buat file Overriding.java
2. Buat class Hewan, kemudian tambahkan sintaks berikut :

3. Buat class Sapi.java yang merupakan turunan dari class Hewan, kemudian
tambahkan sintaks berikut :

4. Buat class Kucing.java yang merupakan turunan dari class Hewan, kemudian
tambahkan sintaks berikut :

5. Tambahkan sintaks berikut pada class Overriding dlm metod main :

6. Kompilasi dan jalankan program, sehingga menghasilkan tampilan berikut :

40
3. Tugas
1. Modifikasi latihan 2 diatas dengan menambahkan class Ayam yang
merupakan turunan dari class hewan.
2. Buat program perbankan yang mempunyai objek seperti berikut :
a. Nasabah
atribut : id,no_identitas,nama, alamat
b. Tabungan
atribut : tgl, debet,kredit,saldo
c. Tabungan Deposito, turunan dari objek Tabungan
atribut : jatuh_tempo
d. Tabungan Pinjaman, turunan dari objek Tabungan
atribut : batas_kredit, cicilan_min
untuk setiap objek yang dibuat tambahkan konstruktor, accessor dan mutator

41
MODUL 8
POLYMORPHISM

Tujuan :
Mahasiswa dapat memahami dan mampu menerapkan polymorphism,
abstract class dan interface.

Tugas Pendahuluan
1. Apa perbedaan abstrak class dan class? Jelaskan dan beri contoh!
2. Bagaimana cara menurunkan interface ke dalam interface lain?

1. Dasar Teori
Polymorphism
Pada Java, subclass dapat mendefinisikan ulang instance methods yang
ada pada superclass-nya. Akibatnya, jika instance methods tersebut dipanggil pada
object yang berasal dari subclass, maka instance methods dari subclass-lah yang
akan dieksekusi. Konsep ini disebut sebagai overriding. Adanya konsep overriding
ini, memberikan sifat polymorphism pada objek yang ada pada Java.
Polymorphism berasal dari bahasa yunani yang berarti banyak bentuk.
Polymorphism adalah suatu sifat dimana instance methods dari suatu superclass
akan berkelakuan sesuai dengan definisi yang ada pada subclass yang menjadi
referensi dari suatu objek. Konsep ini memungkinkan objek melakukan aksi atau
tindakan yang mungkin secara prinsip sama namun prosesnya berbeda.

Gambar 7.1 Prinsip polymorphism

42
Abstract
Kelas abstrak adalah kelas yang mengandung konsep abstrak sehingga
tidak mungkin mempunyai instans. Misalnya suatu kelas abstrak Buah yang
mengandung konsep tentang bagian dari tumbuhan yang dapat dimakan. Namun
kita tidak dapat menciptakan sebuah instans dari kelas tersebut karena tidak masuk
akal menciptakan suatu Buah. Yang mungkin adalah menciptakan instans dari
kelas Jeruk, Apel, atau kelas lain yang sudah mengimplementasikan konsep abstrak
dari buah.
Kelas abstrak dapat mengandung metode abstrak, yaitu metode yang tidak
memiliki implementasi. Dengan begitu, kelas abstrak dapat menentukan bagaimana
konsep abstrak tersebut diimplementasikan oleh subkelas yang akan
menggunakannya. Kelas abstrak tidak harus memiliki metode abstrak, namun
setiap kelas yang memiliki metode abstrak haruslah menjadi kelas abstrak.
Interface
Interface adalah mekanisme yg memungkinkan berbagi konstanta atau
menentukan bentuk metode yg dpt digunakan oleh sejumlah kelas. Variabel dlm
interface hanya diperkenankan utk menggunakan public static final.Sedangkan
Methods yang ada dalam interface hanya berupa deklarasi tanpa implementasi.
Interface dapat diimplementasikan oleh class, dan dapat diturunkan menjadi
interface lain.
Untuk dapat menggunakan interface, suatu class harus dideklarasikan
untuk mengimplementasikan interface tersebut, dan semua methods pada interface
juga harus diimplementasikan pada class tersebut.
Mendeklarasikan interface :
public interface namainterface{
//metode tanpa implementasi
//definisi konstanta
}

Menggunakan interface :
Sebuah class dpt menggunakan interface melalui kata kunci implements.
class namakelas1 [extends namakelas2]
implements namainterface1[,namainterface2]{
//tubuh kelas
}

2. Kegiatan Praktikum
Latihan 1 : Polymorphism
1. Buat package(=membuat proyek) dengan nama Modul8
2. Kemudian ketikkan program seperti di bawah ini :

43
3. Kemudian tambahkan accessor dan mutator untuk class Person

4. Simpan dengan nama person.java pada direktori Modul8


5. Buat file baru dengan nama Student.java,ketikkan kode program di bawah ini:

44
6. Simpan file dengan nama Student.java
7. Buat file baru dengan nama Employee.java, kemudian ketikkan program di
bawah ini :

8. Buat file baru dengan nama Main.java, ketikkan kode program di bawah ini :

45
9. Kompilasi dan jalankan file sehingga menghasilkan tampilan berikut :

Latihan 2 : abstract class


1. Buat file baru dengan nama Kendaraan.java, ketikkan kode program di bawah
ini :

2. Kemudian compile program tersebut.


3. Buat file baru dengan nama TesAbstrak.java untuk mendeklarasikan abstract
class-nya dan ketikkan kode program seperti di bawah ini :

46
4. Kemudian lakukan kompilasi terhadap program tersebut.
5. Pastikan program menghasilkan tampilan seperti di bawah ini.

Latihan 3 : interface
1. Buat file baru dengan nama AksesInterface.java, ketikkan kode program
seperti di bawah ini :

2. Lakukan kompilasi pada program tersebut


47
3. Pastikan menghasilkan tampilan seperti di bawah ini :

3. Tugas
1. Lakukan modifikasi pada latihan 1: polymorphism untuk menampilkan
alamat dan hobby dari Student dan Employee.
2. Buat abstract class dengan nama Shape dengan method abstract getArea() dan
getName. Tulis dua subclassnya yaitu Circle dan Square. Anda dapat
menambahkan method tambahan ke dalam subclass jika diinginkan.
3. Modifikasi latihan 3 dengan menambahkan class Ani, usia 20, jenis
kelaminnya perempuan.

48
MODUL 9
EXCEPTION HANDLING

Tujuan :
Mahasiswa mampu menggunakan exception handling.

Tugas Pendahuluan
1. Dalam penanganan eksepsi, kelas Throwable mempunyai sub class
yang bisa digunakan? Sebutkan dan jelaskan!
2. Apa perbedaan penggunaan try-catch dan try-catch-finally? Jelaskan
dan beri contoh !

1. Dasar Teori
Exception
Exception adalah sebuah peristiwa yang menjalankan alur proses normal
pada program. Peristiwa ini biasanya berupa kesalahan(error) dari beberapa
bentuk. Ini disebabkan program kita berakhir tidak normal. Contoh :
ArrayIndexOutOfBounds, yang terjadi jika kita mencoba mengakses elemen array
yang tidak ada, atau NumberFormatException, yang terjadi ketika kita mencoba
melalui parameter bukan angka dalam method Integer.parseInt.
Menangani Exception
Untuk menangani exception dalam Java, kita gunakan blok try-catch-
finally. Apa yang kita lakukan dalam program kita adalah kita menempatkan
pernyataan yang mungkin menghasilkan exception dalam blok ini.
Bentuk umum dari blok try-catch-finally adalah:
try{
//tulis pernyataan yang dapat mengakibatkan exception dalam blok ini
}
catch( <exceptionType1> <varName1> ){
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}
...
catch( <exceptionTypen> <varNamen> ){
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}
finally{
//tambahkan kode terakhir di sini
49
}
Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan
ditangani dalam blok catch. Kode dalam blok finally selalu di-eksekusi.
Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok
finally. Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan
blok try, dan diatas urutan Blok try harus diikuti oleh paling sedikit satu blok
catch atau satu blok finally, atau keduanya. Setiap blok catch mendefinisikan
sebuah penanganan exception. Header dari blok catch harus membawa satu
argumen, dimana exception pada blok tersebut akan ditangani. Exception harus
menjadi class pelempar atau satu dari subclassesnya.

Gambar 8.1 alur kejadian blok try-catch-finally


2. Kegiatan Praktikum
Latihan 1 :Eksepsi dengan try dan catch
1. Buat proyek dengan nama Modul9, kemudian buat file baru dengan nama
CobaException.java.
2. Ketikkan kode program di bawah ini :

3. Lakukan kompilasi pada program tersebut.


50
4. Pastikan menghasilkan tampilan seperti di bawah ini :

5. Pada percobaan di atas, program, akan menampilkan pembagian bilangan.


Bilangan 100 akan dibagi bilangan dari 5 sampai dengan 0. Jika sudah sampai
pembagi 0 maka akan menghasilkan infinity yang berarti pembagian tidak
dapat dilakukan. Bagian finally pada exception akan terus dijalankan
meskipun terjadi atau tidak terjadi exception.

Latihan 2 : Eksepsi berdasarkan inputan user


1. Beri komentar pada latihan1. Kemudian ketikkan program seperti di bawah
ini:

2. Lakukan kompilasi pada program tersebut.


3. Pastikan menghasilkan tampilan seperti berikut :

51
4. Pada percobaan diatas akan menampilkan segitiga sesuai dengan masukan
user. Program tersebut akan terjadi exception jika user memasukkan bukan
bilangan.

3. Tugas
1. Modifikasi pada latihan 2 utk menghasilkan segitiga yang diinginkan user
seperti segitiga sama sisi, segitiga sama kaki.
2. Beri eksepsi pada latihan 2 jika yang dimasukkan bukan bilangan.
3. Buat program memasukkan data sejumlah N melalui inputan user dengan
menggunakan array. Kemudian beri eksepsi untuk mengecek jika data yang
dimasukkan bukan bilangan. Tambahkan juga fasilitas pencarian data.

52
MODUL 10
FILE INPUT / OUTPUT

Tujuan :
Mahasiswa dapat memahami dan mampu menggunakan file input dan
output

Tugas Pendahuluan
1. Sebutkan dan jelaskan method yang dimiliki FileOutputStream dan
FileInputStream?
2. Sintaks apa yang digunakan untuk menggabung dua berkas yang
dibuat?

1. Dasar Teori
File
File yaitu kumpulan data yang disimpan dalam hard disk, disket atau CD-
ROM, USB stick, dan lain-lain. File disusun dalam direktori (atau sering juga
disebut folder). Program dapat membaca data dari file yang sudah ada. Program
juga bisa membuat file baru atau menulis data ke dalam file yang sudah ada.
Dalam Java, input dan output seperti ini bisa menggunakan aliran
(stream). Data karakter yang bisa dibaca manusia dapat dibaca dari file dengan
menggunakan objek dari kelas FileReader yang merupakan kelas turunan Reader.
Data bisa ditulis dalam bentuk yang bisa dibaca manusia dengan menggunakan
FileWriter yang merupakan kelas turunan dari Writer.
Untuk membaca atau menyimpan suatu file dalam format mesin, kelas
I/O-nya adalah FileInputStream dan FileOutputStream. Semua kelas ini
didefinisikan dalam paket java.io.
FileInputStream
FileInputStream merupakan kelas turunan dari kelas InputStream yang
berguna untuk membaca data dari suatu berkas. Metode yang ada dalam
FileInputStream antara lain :
• Metode read() untuk membaca data.
• Metode close() utk menutup berkas
• Metode available() utk memperoleh jumlah data yang bisa dibaca

53
SequenceInputStream merupakan kelas turunan dari InputStream. Kelas
ini berguna untuk menggabungkan dua buah Stream masukan atau lebih menjadi
sebuah stream masukan.

FileOutputStream
FileOutputStream merupakan kelas turunan dari OutputStream. Kelas ini
berfungsi untuk menuliskan keluaran ke suatu berkas.
Bentuk umum :
FileOutputStream berkaskeluaran = new FileOutputStream(“tes.txt”);
Metode yang ada dalam kelas FileOutputStream adalah :
• Metode write() utk menuliskan ke berkas.
• Metode close() utk menutup berkas
Untuk menampilkan berkas yang telah dibuat, gunakan perintah :
type nama_berkas

2. Kegiatan Praktikum
Latihan 1 : FileOutputStream
1. Buat proyek dengan nama Modul10, kemudial buat file dengan nama
BerkasOutput.java.

2. Lakukan kompilasi pada program dengan menekan tombol Shift+F6,


sehingga muncul tampilan sebagai berikut :

3. Program di atas berfungsi untuk menuliskan karakter A dan B pada berkas


berekstensi .txt. File yang dibuat bisa untuk ekstensi yang lain, misal :.dat,
.bat, dll.
4. Untuk melihat hasil berkas yang sudah dibuat, buka direktori tempat
menyimpan proyek, maka hasil dari berkas seperti tampilan berikut :

54
Latihan 2: FileInputStream
1. Buat file baru dengan nama BerkasInput.java, ketikkan kode program di
bawah ini :

2. Lakukan kompilasi pada program dengan menekan tombol Shift + F6 untuk


menampilkan isi berkas yang akan dibaca. Isi berkas yang akan dibaca bisa
sebarang file.

3. Tugas
1. Buat program java dengan menggunakan FileOutputStream untuk
menampilkan tulisan “Praktikum PBO”.
2. Buat program untuk menggabungkan dua berkas file, berkas 1 berisi tulisan
“Praktikum PBO”, berkas 2 berisi tulisan “menggunakan Java OK”. Setelah
digabung menjadi “Praktikum PBO menggunakan java OK”.
3. Buat program untuk mengganti nama berkas tes.txt pada latihan 1 menjadi
prak.txt.
4. Buat program untuk menghapus berkas prak.txt pada tugas 3.

55
MODUL 11
THREAD

Tujuan :
Mahasiswa mampu menggunakan thread

Tugas Pendahuluan
1. Apa fungsi thread dalam pemrograman Java? Jelaskan dan beri
contoh!
2. Bagaimana cara mengimplementasikan Thread dalam pemrograman
Java?
3. Jelaskan tentang Multiple Thread?

1. Dasar Teori
Thread
Saat sebuah aplikasi Java mengerjakan beberapa pekerjaan secara
bersamaan, hal ini disebut sebagai multithreading atau paralellism atau
concurrency. Program yang menggunakan teknik Sekuensial menjalankan satu
proses hingga selesai kemudian dilanjutkan dengan mengeksekusi proses
berikutnya dan seterusnya. Thread membuka kemungkinan untuk
mengkoordinasikan beberapa proses sehingga dapat dijalankan tidak harus
berurutan bahkan seakan berjalan bersamaan.
Thread dapat dibangun dengan menggunakan dua cara. Cara pertama
adalah dengan menurunkan sifat dari class Thread atau extends Thread.
class NamaThread extends Thread

Cara kedua adalah dengan mengimplementasikan interface Runnable.


class NamaThread implements Runnable

Kedua cara ini identik dalam hal mengoverride method run.


public void run()
{
//definisi method run
}

56
Setelah obyek thread terbentuk, obyek ini dapat dioperasikan dengan memanggil
method start.
NamaThread contoh = new NamaThread();
contoh.start();

Thread yang berjalan dapat dikontrol di antaranya dengan mengatur waktu tampil
dengan pemanggilan method sleep.
Thread.sleep(1000);

2. Kegiatan Praktikum
1. Buatlah file BelajarThread.java. Tambahkan struktur class BelajarThread
yang di dalamnya dilengkapi dengan definisi method main.

2. Di dalam file BelajarThread.java, tambahkan definisi sebuah class dengan


nama CobaSleep. Definisi terdiri dari sebuah constructor kosong dan sebuah
method dengan nama istirahat. Method istirahat ini memiliki fungsi mencetak
bilangan dari 0 sampai dengan 4 dengan jeda sepanjang 1 detik atau 1000
milidetik. Artinya program mencetak nilai 0 kemudian beristirahat selama 1
detik untuk kemudian mencetak nilai 1 dan seterusnya.

3. Di dalam method main, buat sebuah instant dari class CobaSleep dengan
nama instant1. Kemudian panggil method istirahat dari instant1.

4. Simpan file BelajarThread.java. Kompilasi dan jalankan program ini.


Perhatikan tampilannya. Apakah nilai 0 sampai dengan 4 tercetak dengan
disisipi jeda selama 1 detik?

57
5. Cobalah untuk mengubah nilai-nilai yang dicetak, sehingga program dapat
menampilkan nilai bilangan ganjil saja!
6. Cobalah untuk mengubah jeda dari 1 detik menjadi 4 detik!

7. Berikutnya kita akan mencoba menjalankan dua thread dalam waktu


bersamaan. Thread yang pertama dibentuk dengan cara inheritance dari class
Thread. Sedangkan Thread yang kedua dibuat dengan cara
mengimplementasikan interface Runnable.
8. Ke dalam file BelajarThread.java, tambahkan definisi class CobaThread. Pada
class CobaThread ini tambahkan sebuah constructor kosong. Jangan lupa
mengoverride method run yang merupakan abstract method yang diturunkan
dari class Thread.
9. Definisi method run berisi perulangan untuk mencetak ucapan “Apa Kabar?”
sebanyak range yang ditentukan oleh variabel counter. Beri jeda antar proses
penampilan teks dengan method sleep sebesar 1 detik.

10. Tambahkan ke dalam file BelajarThread.java, definisi class CobaRunnable


yang merupakan implementasi dari interface Runnable.

58
11. Definisi method run berisi perulangan untuk mencetak ucapan “Hello?”
sebanyak range yang ditentukan oleh variabel counter. Beri jeda antar proses
penampilan teks dengan method sleep sebesar 1 detik.
12. Setelah dua class yang merupakan jenis Thread disiapkan, langkah berikutnya
adalah membuat instant thread dari masing-masing class. Letakkan kode
pembuatan instant ini di dalam method main. Jangan lupa untuk memberi
tanda komentar pada baris kode sebelumnya yang ada di dalam method main.

13. Jalankan method start dari setiap thread dengan diberi jarak 1 detik.

14. Simpan dan lakukan kompilasi pada file BelajarThread.java. Jalankan


program dan perhatikan tampilannya.

15. Jalankan program untuk kedua kalinya, apakah ada perbedaan antara hasil
percobaan langkah sebelumnya dengan langkah ini.
59
3. Tugas
1. Modifikasi latihan praktikum dengan menambahkan sinkronisasi agar hasil
keluaran program dapat ditampilkan berurutan.
2. Buatlah dua buah thread masing-masing untuk menampilkan bilangan prima
dan bilangan bukan prima!
3. Buat dua buah thread untuk menampilkan stop-watch yang dapat menghitung
naik dan menghitung turun!

60
MODUL 12
SWING

Tujuan :
1. Mahasiswa mampu menggunakan komponen class JLabel, JTextField,
JButton, JCheckBox, JRadioButton, ButtonGroup, JOptionPane,
JPanel dan LayoutManager .
2. Mahasiswa mampu menggunakan JList, JComboBox, JTable, dan
JTree.

Tugas Pendahuluan
Sebutkan dan jelaskan jenis-jenis Layout?

1. Dasar Teori
Swing
Swing sebagai nama populer untuk Java Foundation Class (JFC), tidak
lain merupakan kumpulan pustaka untuk mengembangkan tampilan antar muka
berbasis grafis atau Graphical User Interface (GUI). Komponen-komponen yang
disimpan di dalam paket javax.swing telah didesain sedemikian rupa sehingga
hanya sedikit memory yang dibutuhkan (lightweight) dan dapat dioperasikan di
sebarang platform. Beberapa komponen yang akan dibahas dalam pertemuan ini
adalah class JLabel, JTextField, JButton, JCheckBox, JRadioButton, ButtonGroup,
JOptionPane, JPanel dan LayoutManager.
JLabel digunakan untuk menampilkan label berisi keterangan komponen
input. JTextField digunakan untuk menerima input dari user. JButton digunakan
menerbitkan event untuk mengeksekusi perintah tertentu. Penangan event dapat
melibatkan paket java.awt.event atau pun javax.swing.event. Event atau suatu
kejadian akibat aksi yang dilakukan pada suatu komponen dapat direspon oleh
program bila kita memasang listener. Listener yang lazim digunakan adalah
ActionListener. Interface ini terletak di dalam paket java.awt.event. Setelah
memasang listener, langkah selanjutnya adalah menuliskan baris perintah untuk
merespon event yang terbaca oleh listener. Bagian ini adalah saat kita
mengoverride method actionPerformed dari interface ActionListener.
JRadioButton digunakan untuk menampilkan beberapa opsi yang hanya
bisa dipilih salah satu. Komponen JRadioButton biasa digunakan bersama
ButtonGroup. JCheckBox digunakan untuk menampilkan beberapa opsi yang bisa
dipilih lebih dari satu. JOptionPane digunakan sebagai dialog untuk menampilkan

61
output atau meminta inputan. JPanel digunakan untuk menampung komponen yang
lain.
JPanel bekerja sama dengan LayoutManager. LayoutManager digunakan
untuk menentukan tata letak komponen di dalam container (JFrame, JPanel).
Beberapa contoh LayoutManager adalah FlowLayout, BorderLayout, GridLayout.
Membuat program dengan menggunakan pustaka swing dapat dilakukan
dengan beberapa cara. Di antaranya adalah membuat class yang merupakan
turunan JFrame.
JList digunakan untuk menampilkan beberapa item dalam sebuah daftar
atau list. JComboBox digunakan untuk menampilkan beberapa item yang daftarnya
dapat ditampilkan atau disembunyikan. JTable digunakan untuk menampilkan
daftar dalam bentuk baris dan kolom. Komponen JScrollPane digunakan sebagai
container bagi JTable. JTree digunakan untuk menampilkan beberapa item dalam
bentuk pohon dengan cabang-cabangnya atau direktori.

2. Praktikum
Latihan 1 : Belajar Swing
1. Buat proyek dengan nama Modul12, kemudian buat file BelajarSwing.java.
Tambahkan method main di dalam class BelajarSwing.
2. Di dalam file BelajarSwing.java, tambahkan definisi class CobaJFrame yang
mengandung definisi properti JFrame.

3. Lengkapi method main dalam class BelajarSwing dengan baris perintah untuk
membuat instant dari class CobaJFrame.

4. Karena kita menggunakan kelas JFrame, maka harus import paket Swing
terlebih dahulu.

5. Kompilasi dan jalankan program ini. Perhatikan tampilan program.

62
Gambar 12.1 Tampilan hasil JFrame
6. Pada bagian berikut ini, kita akan menambahkan JLabel ke dalam file
BelajarSwing.java. Deklarasikan variabel bertipe JLabel dengan nama
lblNama. Anda boleh meletakkan kodenya di bawah header class
CobaJFrame.

7. Tambahkan definisi variabel berjenis JLabel di dalam method initComponent.


Anda boleh meletakkan kodenya di antara pemanggilan method
setDefaultCloseOperation dan setSize.

8. Kompilasi dan ujilah program untuk melihat tampilannya.

Gambar 12.2 Tampilan hasil Jlabel

9. Ujicobalah dengan mengganti nama “Nama: ”.dengan kata-kata yang lain!


10. Pada bagian ini, kita akan menggunakan komponen JTextField. Tambahkann
deklarasi variabel bertipe JTextField dengan nama txtNama setelah deklarasi
variabel JLabel.

11. Tambahkan definisi variabel bertipe JTextField. Anda boleh meletakkan


kodenya di bawah baris perintah definisi variabel bertipe JLabel.

12. Kompilasi dan ujilah program untuk melihat tampilannya.

Gambar 12.3 Tampilan hasil JTextField

63
13. Perhatikan tampilannya! Apakah JLabel masih terlihat di dalam Jframe?
Apakah komponen yang ada di dalam Jframe hanya JTextField? Apa yang
terjadi?
14. Coba tambahkan LayoutManager ke dalam class CobaJFrame.

15. Jangan lupa menambahkan import ke paket java.awt.

16. Kompilasi dan ujilah program untuk melihat tampilannya.

Gambar 12.4 Tampilan hasil LayoutManager

17. Apakah sekarang JLabel kembali muncul? Apakah JTextField muncul juga
dalam Jframe? Apakah yang terjadi dengan tampilan JTextField?
18. Selanjutnya, kita akan menambahkan tombol berupa komponen JButton. ke
dalam JFrame.

19. Jangan lupa mendefinisikan variabel bertipe Jbutton ini kemudian


menambahkannya ke dalam JFrame.

20. Kompilasi dan ujilah program untuk melihat tampilannya.

Gambar 12.5 Tampilan hasil Jbutton

21. Pada bagian berikutnya, kita akan belajar menggunakan komponen untuk
menampilkan beberapa opsi. Kita akan menambahkan JCheckBox.
JCheckBox chkStrata1, chkStrata2;

22. Jangan lupa mendefinisikan kedua variabel bertipe JCheckBox di atas.


Setelah dibuat instantnya, tambahkan kedua instant ke dalam JFrame.
chkStrata1 = new JCheckBox("S1");
64
chkStrata2 = new JCheckBox("S2");
add(chkStrata1);
add(chkStrata2);
23. Kompilasi dan jalankan untuk menguji program. Perhatikan tampilan
programnya.

Gambar 12.6 Tampilan hasil JCheckBox

24. Lakukan uji coba memperbesar ukuran jendela “Mencoba JFrame” dengan
menarik horizontal handle ke arah kanan.

25. Lakukan uji coba mengubah posisi tombol “Proses” dengan meletakkannya di
bagian paling kanan.

26. Mengapa posisi komponen selalu berubah dengan berubahnya ukuran


window?
27. Pada bagian ini kita akan belajar menggunakan beberapa LayoutManager
yang akan diseting ke dalam komponen JPanel.
28. Tambahkan sebuah variabel bertipe JPanel.
JPanel pnlData;

29. Definisikan instant dari JPanel di atas.


pnlData = new JPanel();

65
30. Atur layout dari JPanel menjadi GridLayout. Layout jenis ini membagi area
kerja seperti matriks. Pada percobaan ini, kita akan membagi area menjadi 3
baris dan 2 kolom.
pnlData.setLayout(new GridLayout(3,2));

31. Tambahkan komponen-komponen yang tadinya berada di dalam JFrame, kali


ini dimasukkan ke dalam JPanel.
pnlData.add(lblNama);
pnlData.add(txtNama);
pnlData.add(lblTitel);
pnlData.add(chkStrata1);
pnlData.add(new JLabel());
pnlData.add(chkStrata2);

32. Setelah semua komponen inputan data ditambahkan ke dalam JPanel.


Sekarang giliran instant dari JPanel ditambahkan ke dalam JFrame.
add(pnlData);

33. Simpan file, kompilasi dan jalankan untuk menguji hasilnya. Perhatikan
tampilannya. Jika tampilan yang muncul di komputer Anda berbeda dengan
tampilan di bawah ini, coba atur ukuran window dengan menarik ke bawah
vertical handle sehingga ukuran jendela menjadi lebih memanjang ke bawah.

34. Apakah ada masalah yang muncul jika horizontal handle diperlebar?
35. Aturlah agar JFrame menggunakan layout BorderLayout.
setLayout(new BorderLayout());

36. Edit baris perintah yang berfungsi menambahkan komponen JPanel dan
JButton, kali ini dengan menyertakan parameter BorderLayout.
add(pnlData, BorderLayout.CENTER);
add(btnProses, BorderLayout.SOUTH);

66
37. Simpan file BelajarSwing1.java. Kompilasi dan jalankan program untuk
menguji tampilannya. Perhatikan bahwa saat jendela diubah ukurannya,
posisi komponen-komponen tidak berubah.

38. Komponen penampil opsi yang lain adalah JRadioButton. Dengan


memanfaatkan ButtonGroup, kita dapat mengelompokkan beberapa JButton
menjadi satu. Sehingga dari beberapa opsi yang tersedia, dapat dipilih salah
satu saja.
39. Tambahkan beberapa variabel bertipe JRadioButton. Deklarasikan juga
variabel bertipe ButtonGroup yang akan menaungi semua variabel
JradioButton.
JRadioButton rbtTN, rbtMI, rbtTI;
ButtonGroup btnGroup;

40. Definisikan variabel JRadioButton.


rbtTN = new JRadioButton("Teknik Industri");
rbtTI = new JRadioButton("Teknik Informatika");
rbtMI = new JRadioButton("Manajemen Informatika");
btnGroup = new ButtonGroup();

41. Tambahkan variabel JRadioButton secara logik ke dalam ButtonGroup.


btnGroup.add(rbtTN);
btnGroup.add(rbtTI);
btnGroup.add(rbtMI);

42. Tambahkan variabel JRadioButton secara fisik ke dalam JPanel.


pnlData.add(new JLabel());
pnlData.add(rbtTN);
pnlData.add(new JLabel());
pnlData.add(rbtTI);
pnlData.add(new JLabel());
pnlData.add(rbtMI);

67
43. Simpan file dan kompilasi. Jalankan program dan perhatikan tampilannya.

Latihan 2 : Belajar Swing 2


1. Buat file BelajarSwing2.java. Lengkapi definisi method main di dalam class
BelajarSwing2.
class BelajarSwing2 {
public static void main(String [ ] args) {
}
}

2. Ke dalam file BelajarSwing2.java, tambahkan definisi class CobaJPanel.


class CobaJPanel extends JPanel { }

3. Tambahkan ke dalam class body dari CobaJPanel, sebuah constructor.


CobaJPanel() {
initComponent();
}
4. Definisikan method initComponent dengan menambahkan definisi dari
variabel bertipe JList. Untuk menampilkan suatu daftar item ke dalam JList
maka kita harus menempatkan sebuah parameter bertipe array String satu
dimensi. Array ini berisi daftar item. Setiap item ditulis di antara tanda petik
ganda. Antar item dipisah dengan menggunakan seperator tanda koma.
Tambahkan instant class JList ke dalam JPanel yang telah diatur layoutnya
menjadi FlowLayout.
void initComponent() {
lblHari = new JLabel("Hari: ");

68
daftarItem = new String [ ] {"Ahad", "Senin", "Selasa", "Rabu",
"Kamis", "Jum'at", "Sabtu"};
list = new JList(daftarItem);
setLayout(new FlowLayout());
add(lblHari);
add(list);
}

5. Ke dalam file BelajarSwing2.java, tambahkan definisi class CobaJFrame2.


Class ini berisi sebuah constructor yang dapat diisi dengan dua parameter.
Parameter pertama berupa judul dengan tipe String. Parameter kedua berupa
komponen JPanel. Jangan lupa mengatur properti title,
defaultCloseOperation, visible dan size.
class CobaJFrame2 extends JFrame {
CobaJFrame2(String judul, JPanel panel) {
setTitle(judul);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(panel);
setVisible(true);
setSize(300,200);
}
}
6. Simpan dan kompilasi file BelajarSwing2.java. Jalankan program dan
perhatikan tampilannya.

Gambar 12.7 Tampilan hasil JList


7. Pada bagian berikut ini, kita akan belajar menggunakan JComboBox.
8. Deklarasikan variabel bertipe JComboBox. Definisikan dan tambahkan
instant ini ke dalam class CobaJPanel. Gunakan array yang sama
sebagaimana yang digunakan di JList untuk mengisi parameter saat
pembuatan instant JList dikerjakan.
combo = new JComboBox(daftarItem);

9. Simpan dan kompilasi file BelajarSwing2.java. Jalankan program dan


perhatikan tampilannya.
69
Gambar 12.8 Tampilan hasil JComboBox
10. Perhatikan sebuah JComboBox diletakkan di sebelah kanan JList. Coba klik
pada tombol panah hitam pada JComboBox untuk membuka daftar item yang
tersedia.
11. Selanjutnya kita akan menambahkan komponen JTable ke dalam class
CobaJPanel. Perhatikan bahwa JTable hanya dapat ditambahkan ke dalam
instant dari JScrollPane. Ada dua parameter yang dimasukkan ke dalam
constructor JTable. Pertama adalah instant array String dua dimensi. Kedua
adalah daftar item yang telah digunakan dalam JList dan JComboBox.
tabel = new JTable(new String [ ] [ ]{ }, daftarItem);
scroll = new JScrollPane(tabel);

12. Langkah berikutnya adalah menambahkan instant dari JScrollPane ke dalam


class CobaJPane.
13. Jalankan class BelajarSwing2 dan perhatikan tampilannya.

Gambar 12.9 Tampilan hasil JTable


14. Terakhir, kita akan belajar menambahkan komponen JTree ke dalam class
CobaJPanel.
tree = new JTree(daftarItem);

70
15. Simpan, kompilasi file BelajarSwing2. Jalankan class BelajarSwing2 dan
perhatikan tampilannya.

Gambar 12.10 Tampilan hasil JTree

3. Tugas
1. Modifikasilah latihan 1 class BelajarSwing sehingga pesan pada
JRadioButton dengan menambahkan event jika tombol proses di klik yang
berisi pesan nama dan program studi yang dipilih.
2. Buatlah program absensi paegawai fakultas teknik. Inputannya berupa NIP.
Output berupa NIP untuk jam masuk dan jam pulang ditampilkan dalam
JTable.
3. Modifikasilah tugas nomor 2 sehingga inputan ditambah dengan password.
NIP dan password yang dimasukkan harus dicocokkan dengan data yang
tersimpan dalam file teks. Jika cocok maka NIP dan jam akan ditampilkan
dalam JTable. Sedangkan jika tidak cocok antara inputan dan data file teks
maka pesan kesalahan ditampilkan. Output ini menampung data absensi
pegawai setiap hari, jadi juga ditampilkan tanggalnya.

71
DAFTAR PUSTAKA

Horstmann, Cay S. ,Cornell, Gary , Core Java™ 2 Volume I - Fundamentals,


Seventh Edition.
Horstmann, Cay S. ,Cornell, Gary ,Core Java™ 2 Volume II - Advanced Features,
Seventh Edition.
Kadir, Abdul. 2004Dasar Pemrograman Java TM 2, Andi Offset.Yogyakarta.
Husni. 2007. Diktat Kuliah Pemrograman Berorientasi Objek.
Sun Microsystems, Inc, 1 Agustus 2007. The Java TM Tutorials, Sun Microsystems,
Inc.
Fikri, Rijalul,dkk.2005. Pemrograman Java.Andi Offset.Yogyakarta.
Raharjo,Budi, dkk.2010.Mudah Belajar Java edisi Revisi. Informatika. Bandung

72
BIOGRAFI PENULIS

Nama : SRI HERAWATI, S.KOM


NIP/Unit kerja :198308282008122002/MANAJEMEN INFORMATIKA
Alamat Kantor : Jl. Raya Telang PO BOX 2 Kamal, Bangkalan
Alamat Rumah :JL. Jeruk 8/14 Perumnas Kamal, Bangkalan
Telpon : 081703045142
E-mail : zheira83@yahoo.com
Blog :zheira83.wordpress.com

Riwayat Pendidikan
S1: Institusi/Tahun: Universitas Trunojoyo /2001-2006:
Dalam bidang: Teknik Informatika

73

Anda mungkin juga menyukai