Mengenal Bahasa Pemrograman Java

advertisement
Bab 1:
Mengenal Bahasa
Pemrograman Java
1.1
Kopetensi Dasar
Pada pembahasan Bab 1 ini penulis mengajak mendiskusikan mengenai apa itu bahasa
pemrograman Java. Kopetensi dasar secara umum, agar pembaca bisa mendeskripsikan dapat
mendeskripsikan penggunaan konsep pemrograman berbasis objek.
Penulis berharap, diakhir pembahasan, para pembaca bisa :
a. Mengenal Program Java dan Membuat Program Java pada Editor Java.
b. Menterjemahkan dan Menjalankan Program Java
c. Konsep Pemrograman Berbasis Objek
d. Karakteristik Pemrograman Berbasis Objek.
1.2
Mengenal Program Java
Dalam subbab ini, kita akan membuat dan mengenal program java yang ada sekarang ini. Secara
umum, program java dibagi menjadi 2(dua) macam, yaitu Java Application dan Java Applet.
Lebih lanjut akan dibahas pada penjelasan dibawah ini dan sekaligus diterapkan pada editor Java.
Untuk saat ini penulis menggunakan editor TextPad yang bisa didiownload secara gratis.
File Program Java merupakan File Program yang dapat dikompile, dan dijalankan untuk
menampilkan hasilnya serta mempunyai ekstensi .java.
Langkah untuk mengaktifkannya adalah :
a. Klik Menu File
b. Klik New
© 2009 - Frieyadie
1
2
© 2009 - Frieyadie
c. Kemudian tampil Dokumen Baru. Selanjutnya anda bisa mengetikan kode-kode program
seperti dibawah ini
Gambar 1.1. Jendela Text pada TextPad
Didalam pemrograman Java, terdapat 2 (dua) bentuk program java, yaitu Java Application dan
Java Applets
1.2.1 Java Application
Java Application adalah program yang dapat dijalankan secara langsung, bersifat aplikasi, tanpa
perangkat tambahan untuk menjalankannya.
Berikut contoh program Java Application sederhana seperti contoh dibawah ini :
1 class Lat101
2 {
3
public static void main(String[] args)
4
{
5
System.out.println("Hello World !");
6
}
7 }
Berikut penjelasan mengenai contoh program diatas.
1. Class Lat101, merupakan mengawali pendefenisian Class, dan diikuti dengan nama Class
yaitu : Lat101.
2. main adalah metode yang digunakan untuk mengawali segala bentuk eksekusi pada program
java. Metode main ini, didefinisikan sebagai public static void, yang memiliki arti ;
a. public, yang berarti metode ini bisa dipanggil dan digunakan didalam Class atau diluar
Class.
b. static, yang berarti memiliki sifat yang sama disemua instant Class.
© 2009 - Frieyadie
3
c. void, yang berarti bahwa metode ini tidak mengirimkan nilai balik
3. Didalam metode main, terdapat String[] args, yang memiliki pengertian ;
a. String[], adalah tipe data objek yang menangani serangkaian karakter-karakter yang
berjenis array.
b. args, adalah variabel objek.
4. System.out.println("Hello World !"); , yang memiliki pengertian;
a. System.out, adalah stream yang digunakan untuk menangani keluaran standar java.
b. println(); , merupakan metode yang digunakan untuk menampilkan teks dilayar.
c. Tanda titik koma ( ; ), digunakan untuk mengakhiri pernyataan.
1.2.2 Java Applet
Java Applet adalah program java bisaa diletakan diwebserver dan dijalankannya menggunakan
web browser.
Berikut contoh program Java Applet sederhana seperti contoh dibawah ini:
1
2
3
4
5
6
7
8
9
10
import java.awt.*;
import java.applet.*;
public Class Lat102 extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello World", 20, 20);
}
}
Berikut penjelasan mengenai contoh program diatas.
1. public Class Lat102 extends Applet, merupakan mengawali pendefenisian Class, dan diikuti
dengan nama Class yaitu : Lat102. Bersifat public yang merupakan turunan dari Applet.
2. public void paint(Graphics g) adalah menggunakan metode paint untuk menggambar semua
graphic applet didrawing area, dengan parameter Class abstak untuk merepresentasikan area
applet.
3. g.drawString("Hello World", 20, 20) adalah untuk mencetak text Hello Word, pada posisi
baris 20 dan posisi kolom 20.
Buatlah sebuah file html seperti dibawah ini, yang nantinya untuk menampilkah hasilnya diweb
browser.
4
© 2009 - Frieyadie
1 <HTML>
2
<HEAD>
3
<APPLET
4
CODE = "Lat102.Class"
5
HEIGHT = 300 WIDTH = 300>
6
</APPLET>
7
</HEAD>
8 </HTML>
1.3
Menyimpan File Java
Perlu diketahui bahwa, untuk menyimpan file program java, kita tidak boleh sembarangan.
Untuk nama file program java, harus sesuai dengan nama Class. Jika nama Class Lat101, harus
menyimpan dengan nama file Lat101.java, dan tidak diperbolehkan lat101.java atau yang lain.
Perlu diingat, huruf besar atau huruf kecil sangat berpengaruh pada penyimpanan file.
Setelah selesai mengetikan naskah program yang baru pada jendela Text Edit, maka selanjutnya
disimpan dengan cara :
1. Kik Menu File  Save
2. Atau Menekan HotKey Ctrl + S.
Sebagai latihan anda, buatlah folder kerja anda, anda dapat ikuti langkah berikut :
1. Klik icon Up One Level [
] sampai ke drive C: , atau dengan cara klik combobox Look In
kemudian pilih drive C:
2. Klik icon Create New Folder [
], maka akan tampil New Folder seperti berikut :
3. Kemudian tuliskan nama foldernya : LATIHANJAVA. Tekan tombol Enter.
4. Kemudian tekan tombol Enter lagi, sehingga Look In, menunjukan folder LATIHANJAVA.
5. Tuliskan pada kotak isian File Name, dengan nama LAT101. Tekan tombol Enter atau Klik
tombol Open. Maka selanjutnya file anda telah tersimpan.
File Editor memiliki ekstensi file adalah .java. Maka file yang anda simpan menjadi
LAT101.java
© 2009 - Frieyadie
5
Gambar 1.2. Menyimpan file pada Folder yang telah ditentukan
Pada Textpad terdapat tiga cara menyimpan file editor, diantaranya yaitu :
1. Save digunakan untuk menyimpan File Program pada jendela yang sedang aktif kedalam
disk. Hotkey yang ada bisa gunakan untuk menyimpan dengan menekan tombol Ctrl + S.
2. Save As digunakan untuk menyimpan File Program pada jendela yang sedang aktif kedalam
disk dengan nama file yang berbeda.
3. Save All digunakan untuk menyimpan semua File Program pada jendela yang sedang aktif
kedalam disk.
Setelah itu simpan juga file yang berisi program Java Applet, dengan nama : Lat102.java dan file
berjenis html, dengan nama BrowseLat102.html
1.4
Menterjemahkan Program
Proses Compile merupakan suatu proses menterjemahkan program dari bahasa manusia kedalam
bahasa yang dimengerti oleh komputer yaitu bahasa mesin. Proses Compile program Java
Application atau Java Applet sama, tidak dibedakan. Berikut langkah yang dapat anda ikuti
untuk menterjemahkan program adalah :
6
© 2009 - Frieyadie
1.4.1 Melalui Command Prompt
Untuk melakukan kompilasi program Java, anda bisa melakukannya melalui Command Prompt
atau jendela Command
Terlebih dulu aktifkan jendela Command melalui Run dengan menuliskan perintah cmd,
kemudian klik tombol OK. Kemudian tampil jendela Command.
Aktifkan folder / direktori tempat file java anda disimpan, seperti pada gambar dibawah ini:
Gambar 1.3. Jendela Command
Untuk kompilasi perintah yang digunakan yaitu javac diikuti dengan nama_file_java.java.
Perintah ini akan menghasilkan file bytecode dengan ekstensi .Class, nama file ini sama dengan
nama file java, hanya ekstensinya yang berbeda. Berikut bentuk umum perintah compile seperti
dibawah ini :
javac nama_file_java_application.java
Lakukan kompilasi file Lat101.java, seperti gambar dibawah ini :
Gambar 1.4. Kompilasi File Java
© 2009 - Frieyadie
7
Jika tidak ada kesalahan dalam proses kompilasi maka, tidak ada pesan apa-apa, hanya kembali
kekursor saja. Tetapi jika terjadi kesalahan maka, akan diberitahukan code program mana yang
salah dan pada baris keberapa yang salah, maka dengan cara ini anda akan bisa mengetahui
posisi kesalahan pada program anda. Contoh seperti dibawah ini :
Gambar 1.5. Terjadi Kesalahan pada Kompilasi
Hasil Penterjemahan seperti dijelaskan diatas, menghasilkan file bytecode dengan ekstensi
.Class, nama file ini sama dengan nama file java.
Gambar 1.6. File .CLASS hasil dari Compile
1.4.2 Melalui Tools
Jika anda menggunakan TextPad, anda bisa melakukannya melalui hotkey atau perintah yang
sudah disediakan. Ikuti langkah-langkah seperti dibawah ini :
1. Klik Menu Tools
2. Klik External Tools
3. Pilihlah salah satu sesuai dengan kebutuhaan proses yang akan dilaksanakan.
8
© 2009 - Frieyadie
Gambar 1.7 Mengubah User ToolGroup
Compile Java, untuk melakukan proses penterjemahan program java. Anda bisa langsung
menekan tombol Ctrl + 1
Sekarang coba anda lakukan compile (tekan tombol Ctrl dan tombol 1), program Lat101.java,
maka jika benar, maka akan tampil seperti gambar dibawah ini :
Gambar 1.8. Proses Compile yang Berhasil
Maka jika terdapat kesalahan (misal: kurang titik koma diakhir perintah), maka akan tampil
seperti gambar dibawah ini :
Gambar 1.9. Proses Compile yang Gagal
© 2009 - Frieyadie
1.5
9
Menjalankan Program
Setelah melakukan proses compiling, maka selanjutnya melihat hasil yang telah dicompile,
berikut beberapa langkah melalui command prompt dan tools :
1.5.1 Melalui Command Prompt
Berikut langkah-langkah running program melalui command prompt:
Aktifkan jendela command
Berikut perintah-perintah untuk menjalankan program, disesuaikan dengan jenisnya java, yaitu :
a. Menjalankan Java Application
Perintah yang digunakan untuk menjalankan java application, yaitu :
javac nama_file_Class
Pada penulisannya nama_file_Class yang akan digunakan tidak perlu menuliskan extensinya
dibelakang nama file.
Gambar 1.10. Menjalankan Java Application
b. Menjalankan Java Applet
Perintah yang digunakan untuk menjalankan java application, yaitu :
appletviewer nama_file_html
Pada penulisannya nama_file_Class yang akan digunakan tidak perlu menuliskan extensinya
dibelakang nama file.
10
© 2009 - Frieyadie
Gambar 1.11. Menjalankan Java Applet
Setelah anda tekan tombol Enter, maka tampilan applet yang dihasilkan seperti dibawah ini.
Gambar 1.12. Menjalankan Java Applet
Bisa juga dijalankan diweb browser, dengan cara :
Klik menu File pada webbroser | klik dan pilih OpenFile
Arahkan kenama file yang terdapat file yang telah anda buat diatas.
file:///c:/LATIHANJAVA/BrowseLat102.html
hasilnya akan seperti gambar dibawah ini
Gambar 1.13. Menjalankan Java Applet pada WebBrowser
© 2009 - Frieyadie
11
1.5.2 Melalui Tools
Jika anda menggunakan TextPad, anda bisa melakukannya melalui hotkey atau perintah yang
sudah disediakan. Ikuti langkah-langkah seperti dibawah ini :
a. Menjalankan Java Application
Untuk menjalankan atau Run Java Application, anda bisa langsung menekan tombol Ctrl + 2.
Maka akan tampil seperti gambar dibawah ini :
Gambar 1.14. Menjalankan Java Application
b. Menjalankan Java Application
Untuk menjalankan atau Run Java Application, anda bisa langsung menekan tombol Ctrl + 3.
Maka akan tampil seperti gambar dibawah ini :
Gambar 1.15. Menjalankan Java Applet
12
© 2009 - Frieyadie
1.6
Konsep Pemrograman Berbasis Objek
Pada konsep pemrograman berbasis objek ini, kita akan membahas mengenai objek, Class dan
Method. Berikut penjelasan singkat dan padat mengenai ketiga konsep diatas.
1.6.1 Object dan Class
Dalam Pemrograman Berorientasi Objek melihat atau memandang sesuatu berdasarkan objek.
Objek sebenarnya mencerminkan pola kerja manusia dalam kehidupan sehari-hari.
Pada suatu objek dapat dilihat menjadi 2 (dua) hal, yaitu :
1. Atributte
Atribut merupakan segala sesuatu yang melekat pada Object. Didalam penerapan didalam
program, atribut adalah Variabel atau Member.
Misalkan pada Object Burung. Atribut-atribut yang melekat pada burung, misalnya paruh, ekor,
sayap, kaki, mata, dan lain-lain.
2. Behaviour
Behaviour merupakan pola tingkah laku atau perilaku yang dimiliki oleh objek. Misalnya pada
objek Burung memiliki perilaku diantaranya terbang, mengepakan sayap, berjalan dan lain-lain.
Didalam penerapan didalam program, Behaviour adalah Method atau Fungsi.
Bentuk penulisan Class, seperti dibawah ini :
[public | private] [abstract] Class Nama_Class
{
... daftar property...
... daftar Method ...
}
Bentuk penulisan mendeklarasikan Object, dengan menggunakan new, seperti dibawah ini :
nama_Class nama_objek = new nama_Class();

nama_Class, merupakan nama Class yang akan dijadikan objek.

nama_objek, merupakan nama objek baru.
Contoh pembuatan Class sederhana :
Class burung
{
String jenis, warna;
int usia;
© 2009 - Frieyadie
13
}
Class burung_terbang
{
public static void main(String[] args)
{
//membuat objek
burung burung_elang = new burung();
......
......
}
1.6.2 Method
Method adalah implementasi operasi yang bisa dilakukan oleh Class dan Object. Operasi-operasi
yang dilakukan oleh Methode, diantaranya, yaitu :
1. Suatu Method bisa menerima dan memanipulasi data atau field didalam diri Method tersebut.
2. Suatu Method bisa mempengaruhi nilai suatu Object lain.
Berikut bentuk penulisan deklarasi Method:
Tipe_Akses Tipe_Return NamaMethod(Argumen1, Argumen2,...,Argumen-N)
{
... Badan / Tubuh Method ..
}
Berikut penjelasan deklarasi Methode diatas :
1. Tipe Akses, menyatakan tingkatan akses untuk memproteksi akses terhadap data-data
didalam Method, tipe akses ini bersifat opsional.
2. Tipe Return, menyatakan nilai hasil yang diolah oleh Method akan dikembalkan atau akan
mengirimkan kepada objek yang memanggil Method. Bentuk Tipe Return, bisa berupa tipe
data primitive yaitu integer, float, double dan lain-lain.
Apabila Method tidak akan mengembalikan nilai kepada objek yang memanggilnya, maka bisa
dituliskan didepan nama Method dengan perintah void.
1.7
Karakteristik Pemrograman Berbasis Objek
Sekarang ini dalam tahap mempelajari pemrograman berbasis objek, anda harus mengenal
karakteristik yang dimiliki pemrograman berbasis objek. Adapun ketiga karakteristik tersebut,
yaitu :
14
© 2009 - Frieyadie
1.7.1 Enkapsulasi (Encapsulation)
Karakteristik ini merupakan suatu cara bagaimana menyembunyikan sedemikian rupa suatu
proses kedalam sistem, hal ini berguna untuk menghindari interferensi dari luar sistem dan juga
lebih untuk menyederhakanan sistem itu sendiri.
Kita ambil contoh, pada saat anda mengganti chanel TV menggunakan remote TV, apakah anda
mengetahui proses yang terjadi didalam TV tersebut ?, maka jawabannya tidak tau, dan anda pun
sebagai pembeli TV tidak mau dipusingkan dengan proses yang terjadi. Maka hal tersebut
menyederhakan sistem.
1.7.2 Pewarisan (Inheritance)
Pewarisan, bahasa kerennya Inheritance. Dalam pemrograman berbasis objek, dimungkinkan
suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass,
sehingga membentuk Class hirarki.
Sebagai contoh, pada saat kita bicara mengenai bus, maka bus tersebut bisa mewarsikan kepada
bus yang lain berupa, nomor trayek, body besar, jumlah penumpang banyak dan lain sebagainya.
1.7.3 Polymorphism
Karakteristik dari polymorphism yaitu memungkinkan suatu objek dapat memiliki berbagai
bentuk atau banyak bentuk. Bentuk dari objek ini bisa sebagai Object dari Classnya sendiri atau
Object dari superClassnya.
Pada polymorphism kita akan sering menjumpai 2 (dua) istilah yang sering digunakan dalam
pemrograman berbasis objek, istilah tersebut yaitu :
a. Overloading.
Overloading yaitu menggunakan 1 (satu) nama objek untuk beberapa Method yang berbeda
ataupun bisa juga beda parameternya.
b. Overriding
Overriding akan terjadi apabila ketika pendeklarasian suatu Method subClass dengan nama
objek dan parameter yang sama dengan Method dari superClassnya.
© 2009 - Frieyadie
15
1.7.4 Abstrak
Abstrak didalam pemrograman berbasis objek, yaitu dimaksudkan untuk melihat suatu sistem,
menjadi lebih sederhana atau simple.
Apabila kita melihat suatu sistem, misalnya motor, maka bisa kita lihat ada apa saja disistem
motor ?, yang pasti ada sistem pengapian, sistem rem, sistem oper gigi dan lain sebagainya.
Maka kesemua sistem-sistem bersebut kalau kita lihat menjadi satu sistem yang lebih sederhana
yaitu sistem motor.
1.7.5 Modularity
Setiap objek didalam pemrograman berbasis objek, memungkinkan bisa dituliskan atau dibuat
secara terpisah-pisah dari objek lainnya. Sehingga program bisa lebih mudah dikembangkan dan
dimodifikasi.
Kita ambil contoh pada sistem motor, bisa anda bayangkan seandainya sistem rem terebut
langsung menyatu pada objek utama pada motor, apabila seandainya ada perbaikan atau
mengubahan, maka akan membongkar objek utamanya, baru keobjek tujuan, maka hal ini akan
makan waktu yang lama. Maka dengan adanya modularity, apabila ada objek yang akan
diperbaiki atau dimodifikasi, langsung keobjek tujuannya saja.
1.8
Latihan
Sebagai latihan untuk pemahaman anda mengenai bahasa pemrograman java. Sebagai tugas
anda, buatlah artikel pada blog anda masing-masing mengenai Bahasa Pemrograman Java.
Gunakan bahasa yang releks, setelah itu kirimkan URL blog anda ke email dosen anda.
16
© 2009 - Frieyadie
Lembar ini sengaja dikosongkan
Bab 2:
Aktifitas Dasar
Pemrograman Java
2.1
Kopetensi Dasar
Pada pembahasan Bab 2 ini penulis mengajak mendiskusikan mengenai aktifitas dasar bahasa
pemrograman Java. Kopetensi dasar secara umum, agar mahasiswa/i atau pembaca bisa
mendeskripsikan dapat memahami aktifitas dasar pemrograman java.
Penulis berharap, diakhir pembahasan, para pembaca bisa :
a. Mengenal Tipe Data Primitif.
b. Membuat dan Menggunakan Variabel
c. Penggunaan Operasi I/O Stream
2.2
Mengenal Tipe Data Primitif
Didalam pemrograman Java, kita bisa mengklasifikasikan tipe data primitif menjadi beberapa
tipe data, yaitu :
1
Bertipe Integer terdapat 4 (empat) Tipe Data.
2
Bertipe Floating Point sebanyak 2 (dua) Tipe Data
3
Satu Tipe Data berjenis Character
4
Satu Tipe Data berjenis Boolean yaitu tipe untuk nilai logika.
Berikut kita bahas secara singkat dan padat mengenai keempat kategori tipe data diatas.
2.2.1 Java Integer
Tipe data integer digunakan untuk operasi data bilangan bulat dan perhitungan aritmatika.
Berikut keempat tipe data yang tercakup kedalam kategori integer.
© 2009 - Frieyadie
17
18
© 2009 - Frieyadie
Table 2.1. Kategori Integer
Nama Tipe
Data
Byte-Length
Integer
Short Integer
Integer
Long Integer
Keyword
Ukuran
Jangkauan Nilai
byte
8 bit
–128 s.d 127
short
int
long
16 bit
32 bit
64 bit
–32768 s.d 32767
–2147483648 s.d 2147483647
–223372036854775808 s.d 223372036854775807
2.2.2 Java Floating Point
Floating-point dasarnya digunakan ketika kita mempunyai situasi dimana mendapatkan hasil atau
output dalam bentuk desimal dan seluruh angka yang tidak disebutkan dalam tipe data integers.
Tipe data yang termasuk kategori ini yaitu float dan double.
Table 2.2. Kategori Floating Point
Nama Tipe Data
Single-precision
Floating Point
Double-precision
Floating Point
Keyword Ukuran
Jangkauan Nilai
float
32 bit, Presisi 6-7 bit
–3.4E38 s.d 3.4E38
double
64 bit Presisi 14-15 bit
–1.7E308 s.d 1.7E308
2.2.3 Java Character
Tipe data Character digunakan untuk mendefinisikan sebuah karakter yang merupakan simbol
dalam karakter Set, seperti huruf dan angka. Keyword tipe data Character ini yaitu char, dengan
ukuran 16 bit.
2.2.4 Java Boolean
Tipe data boolean digunakan untuk menyebut variabel yang hanya mengandung nilai-nilai True
atau False, dengan ukuran 1 bit.
Selain tipe data – tipe data Primitive yang dimiliki oleh Java. Java memiliki tipe data class
Object. Tipe data class Object yang sering digunakan yaitu String. String disediakan untuk
menampung sejumlah character.
© 2009 - Frieyadie
2.3
19
Mengenal Variabel
Variabel adalah suatu tempat menampung data atau konstanta dimemori yang mempunyai nilai
atau data yang dapat berubah-ubah selama proses program.
Dalam pemberian nama variabel, mempunyai ketentuan-ketentuan antara lain ;
Tidak boleh ada sepasi ( cth : gaji bersih ) dan dapat menggunakan tanda garis bawah ( _ )
sebagai penghubung (cth : gaji_bersih).
Tidak boleh diawali oleh angka dan menggunakan operator aritmatika.
2.3.1 Deklarasi Variabel
Deklarasi Variabel adalah proses memperkenalkan variabel kepada java dan pendeklarasian
tersebut bersifat mutlak karena jika tidak diperkenalkan terlebih dulu maka java tidak menerima
variabel tersebut.
Deklarasi Variabel ini meliputi tipe variabel, seperti : integer atau character dan nama variabel
itu sendiri. Setiap kali pendeklarasian variabel harus diakhiri oleh tanda titik koma (;).
Bentuk penulisannya :
Tipe data nama variabel;
Contoh Deklarasi :
String nama_mahasiswa;
char grade;
float rata_rata ;
int nilai1, nilai2;
2.3.2 Menempatkan Nilai kedalam Variabel
Setelah pendeklarasian Variabel dilaksanakan, selanjutnya variabel tadi bisa anda masukan nilai
kedalam variabel. Berikut cara yang mudah untuk menempatkan nilai kedalam variabel.
Berikut Bentuk penulisannya :
nama variabel = nilai;
20
© 2009 - Frieyadie
Contoh Penempatan Nilai kedalam Variabel :
nama_mahasiswa = "Irvan Y. Ardiansyah";
grade = 'A';
rata_rata = 95.75;
nilai1 = 90; nilai2 = 95;
Java bisa juga memperbolehkan memberikan nilai yang sama kebeberapa nama variabel yang
berbeda. Seperti contoh dibawah ini:
a = c = d = 7;
Pada contoh diatas variabel a, c, dan d masing-masing berisi nilai 7.
2.4
Membuat Komentar Program
Pada bahasa pemrograman manapun komentar program biasa digunakan untuk memberikan
penjelasan baris atau blok program suapaya pembaca program atau programer lainnya supaya
bisa mengerti bagian-bagian program tersebut. Ada 3 (tiga) cara memberikan komentar program
pada Java, yaitu :
a. End Of Line Comment ( // )
Komentar dengan tanda slash ganda ( // ) disebut dengan end-of-line comment, karena semua
perintah program, komentar-komentar atau penjelasan program berada setelah tanda slash ganda,
semua dianggap sebagai komentar dan komentar hanya satu baris saja. Sebagai contoh:
// isi komentar program
// a = b + c;
b. Multiple Line Comment ( /* */)
Komentar dengan tanda slash dan asterik ( / * */) disebut dengan Multiple-Line Comment,
karena ini, perintah program, komentar-komentar atau penjelasan program berada dalam apitan
tanda slash dan asterik, semua dianggap sebagai komentar, dan komentar bisa lebih dari satu
baris. Sebagai contoh :
/* isi komentar program bisa
terdiri dari beberapa baris komentar
atau informasi */
© 2009 - Frieyadie
21
c. Javadoc Comment ( /** */)
Komentar dengan tanda slash ganda didepan dan asterik ( /** */) disebut dengan Javadoc
Comment. Penggunaannya sama seperti Multiple Line Comment, akan tetapi penggunaannya
untuk dokumentasi-dokumentasi didalam program. Sebagai contoh :
Semua komentar program atau penjelasan program pada saat program java dicompile tidak ikut
serta dicompile, karena tidak dianggap sebagai suatu baris program.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* -------------------------Nama File : Lat201.java
Author
: Frieyadie
---------------------------- */
class Lat201
{
public static void main(String[] args)
{
// deklarasi variabel
int a, b, c;
// memberikan nilai
a = 3;
b = 5;
// proses
c = a + b;
// cetak variabel
System.out.println("Hasilnya = " + c);
}
}
Berikut hasil dari program Lat210.java diatas. Maka terlihat komentar atau penjelasan program
tidak tampak pada hasil running program.
Gambar 2.1. Hasil Lat201.java
22
© 2009 - Frieyadie
2.5
Perintah Keluaran
Pada saat melakukan aktivitas dasar pemrograman, pasti tidaklah terlepas dari menampilkan data
atau hasil kelayar. Dalam hal ini kita butuh sebuah stadard output yaitu stream yang digunakan
untuk mengirimkan keluaran kelayar. Stream tersebut yaitu System.out. Pada saat kita akan
menampilkan kelayar, kita butuh method print atau println. Perbedaan antara print dan println
yaitu :

System.out.print(Statement); , maka informasi yang ditampilkan dilayar tidak pindah baris.

System.out.println(Statement); , maka informasi yang ditampilkan dilayar pindah baris (line
new). Statement bisa berupa pesan dan argument atau variabel. Statement biasanya diapit
dengan tanda kutip ganda ( " "), untuk memisahkan antara statement dan argumen atau
variabel dipisah dengan tanda plus ( + ).
Berikut contoh program sederhana perintah keluaran.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* -------------------------Nama File : Lat202.java
Author
: Frieyadie
---------------------------- */
class Lat202
{
public static void main(String[] args)
{
// deklarasi variabel
int a, b, c;
// memberikan nilai
a = 3;
b = 5;
// proses
c = a + b;
// cetak variabel
System.out.println("Hasil Perhitungan");
System.out.print("Hasilnya adalah = " + a);
System.out.print(" + " + b);
System.out.println(" = " + c);
}
}
Maka hasil pada saat dieksekusi, seperti dibawah ini :
© 2009 - Frieyadie
23
Gambar 2.2. Hasil Lat201.java
2.6
Perintah Masukan
Untuk melakukan perintah masukan, kita akan menggunakan 3 (tiga) cara, yaitu InputStream,
BufferedInputStream dan Scanner.
2.6.1 InputStream
InputStream adalah subclass Object, yang menjadi landasan untuk class-class yang biasa
digunakan untuk membaca data dan menampilkan kelayar. Untuk penggunaan InputStream ini,
harus menyertakan package java.io.
Berikut penggunaan InputStream, untuk masukan data dari keyboard..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* -------------------------Nama File : Lat203.java
Author
: Frieyadie
---------------------------- */
import java.io.*;
class Lat203
{
public static void main(String[] args)
{
String kata = "";
boolean akhir = false;
int huruf;
System.out.print("Masukkan Kata - Kata Anda : ");
while(!akhir)
{
try
{
huruf = System.in.read();
if(huruf < -1 || huruf == '\n')
akhir = true;
kata = kata + (char) huruf;
}
catch (IOException e)
{
System.err.println("Mengalami Salah?");
akhir = true;
24
© 2009 - Frieyadie
31
32
33
34
35
}
}
System.out.println("Kalimat yang anda ketikan = " + kata);
}
}
Penjelasan Program :

Perintah baris 6 : import java.io.*;
Digunakan untuk menyertakan package java.io.

Perintah baris 18 sampai 34, akan mengulan terus sampai selesai pengetikan dan menekan
tombol enter. Semua karakter yang diketikan dibaca oleh System.in.read(), kemudian
disimpan didalam variabel huruf. Semua karakter yang diketikan disimpan kembali didalam
variabel kata, sehingga menjadi dalam bentuk string.

Apabila ada kesalahan pengetikan, maka kesalahan tersebut dilempar ke IOException,
kemudian Standar error akan bekerja sehingga proses dihentikan.

Setelah selesai pengetikan, menjalankan perintah pada baris 33, selanjutnya menampilkan
karakter-karakter yang diketikan dalam bentuk string.
Maka hasil pada saat dieksekusi, seperti dibawah ini :
Gambar 2.3. Hasil Lat203.java
2.6.2 InputStreamReader dan BufferedReader
InputStreamReader digunakan membaca arus byte stream dan mengkonversi byte-byte ke dalam
nilai-nilai bilangan bulat yang merepresentasikan karakter-karakter Unicode.
© 2009 - Frieyadie
25
Kelas BufferedReader membaca masukan Stream karakter dan penyangga tersebut untuk
efisiensi. Pada penggunaannya harus mempunyai Reader Object untuk membuat versi buffered.
Berikut konstrutor yang digunakan untuk membuat BufferedReader.

BufferedReader(Reader) digunakan untuk membuat penyangga karakter stream yang
berhubungan dengan Reader Objek yang ditetapkan.

BufferedReader (Reader, int) digunakan untuk membuat penyangga karakter stream yang
berhubungan dengan Reader Objek yang ditetapkan dan dengan penyangga ukuran integer.
Penyangga Karakter Stream dapat dibaca menggunakan metoda read() dan read(char[], int, int)
untuk menguraikan FileReader, serta dapat juga membaca baris dari teks dengan menggunakan
readLine ().
metoda readLine (), digunakan untuk kembalikan String objek yang berisi next line dari teks
pada stream, tidak termasuk karakter atau karakter-karakter yang merepresentasikan end-of-line.
Jika akhir stream dicapai, maka nilai string yang ingin dikembalikan bernilai dengan null.
end-of-line ditandai dengan beberapa pernyataan berikut :

newline karakter (‘\n')

carriage return character (‘\r')

carriage return character yang diikuti oleh satu newline (“\n\r”)
Berikut penggunaan InputStreamReader dan Buffered, untuk masukan data dari keyboard.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* -------------------------Nama File : Lat204.java
Author
: Frieyadie
---------------------------- */
import java.io.*;
class Lat204
{
public static void main(String args[])throws Exception
{
//membuat objek baru
InputStreamReader keyreader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(keyreader);
//deklarasi variabel
String s1, s2;
System.out.print("Masukan String Pertama : ");
s1 = input.readLine();
26
© 2009 - Frieyadie
23
24
25
26
27
28
System.out.print("Masukan String Kedua : ");
s2 = input.readLine();
System.out.println("\nHasil Input String " + s1 + " " + s2);
}
}
Penjelasan Program :

Perintah baris 6 : import java.io.*;
Digunakan untuk menyertakan package java.io.

Pada baris 10, terdapat perintah throws Exception yang digunakan untuk melempar jika
terjadi kesalah-kesalahan, maka Excetion akan bekerja dengan sendirinya.

Perintah baris 14 dan 15, mendeklarasikan InputStreamReader dan BufferedReader membuat
objek baru.

Perintah baris 20 dan 24, menginput string.

Perintah baris 26, menampilkan hasil input data string.
Maka hasil pada saat dieksekusi, seperti dibawah ini :
Gambar 2.4. Hasil Lat204.java
2.6.3 Scanner
Class Scanner digunakan secara ekstensif untuk memasukan data dari keyboard. Tidak seperti
perintah masukan lainnya, data-data yang dimasukan misalnya berupa angka, tidak perlu
dilakukan konversi dari string ke integer atau tipe data lainnya. Untuk menggunakan Class
Scanner, harus menyertakan package java.util.
Untuk membaca baris dari text yang diinputkan dengan menggunakan metoda next(). Supaya
string yang dibaca utuh termasuk spasi, dengan menggunakan nextLine(). Untuk membaca data
© 2009 - Frieyadie
27
berupa nilai integer atau tipe data angka lainnya, sebagai contoh bisa menggunakan metoda,
seperti dibawah ini :

readInt()

readDouble() untuk membaca nilai double.

readFloat()
untuk membaca nilai integer
untuk membaca nilai float.
Berikut penggunaan InputStreamReader dan Buffered, untuk masukan data dari keyboard.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* -------------------------Nama File : Lat205.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat205
{
public static void main(String args[])
{
//membuat objek baru
Scanner input = new Scanner(System.in);
//deklarasi variabel
String nama;
int n2;
double n1, n3;
System.out.print("Masukan Nama Anda : ");
nama = input.nextLine();
System.out.print("Masukan Nilai 1 : ");
n1 = input.nextDouble();
System.out.print("Masukan Nilai 2 : ");
n2 = input.nextInt();
n3 = n1 + n2;
System.out.println("\nNama Anda :" + nama);
System.out.println("Nilai Anda : " + n3);
}
}
Penjelasan Program :

Perintah baris 6 : import java.util.*; .Digunakan untuk menyertakan package java.util.

Pada baris 13, membuat objek dengan standar masukan.

Perintah baris 20 dan 27, menginput string, nilai integer dan double

Perintah baris 29, proses nilai

Perintah baris 31 dan 32, menampilkan hasil input data string dan proses perhitungan.
28
© 2009 - Frieyadie
Maka hasil pada saat dieksekusi, seperti dibawah ini :
Gambar 2.5. Hasil Lat205.java
2.7
Perintah Konversi Data
Bentuk data yang diinputkan melalui keyboard, secara umum berupa nilai string, maka dalam hal
proses perhitungan matematika tidak bisa diproses, maka supaya bisa digunakan, harus
dikonversi kebentuk tipe data yang diinginkan.
2.7.1 Konversi String to Integer
Untuk melakukan konversi String ke Integer, dengan menggunakan bentuk penulisan seperti
dibawah ini :
var_penampung = Integer.parseInt(nilai_string);
Untuk lebih jelasnya anda bisa lihat contoh dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* -------------------------Nama File : Lat206.java
Author
: Frieyadie
---------------------------- */
import java.io.*;
class Lat206
{
public static void main(String args[])throws Exception
{
//membuat objek baru
InputStreamReader keyreader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(keyreader);
//deklarasi variabel
String s1, s2;
int n1, n2, n3;
© 2009 - Frieyadie
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
29
System.out.print("Masukan Nilai Pertama : ");
s1 = input.readLine();
System.out.print("Masukan Nilai Kedua : ");
s2 = input.readLine();
//konversi
n1 = Integer.parseInt(s1);
n2 = Integer.parseInt(s2);
n3 = n1 + n2;
System.out.println("\nHasil Hitung =
" + n3);
}
}
Penjelasan Program :

Perintah baris 27 dan 28.Digunakan untuk melakukan konversi nilai String ke Integer.

Nilai String diambil dari string s1 dan s2 yang diinputkan dari keyboard. Hasil konversi,
ditampung kemasing-masing variabel penampung.

Perintah baris 30. Melakukan pengetesan apakan nilai sudah terkonversi dengan baik. Jika
ya, maka nilai n1 dan n2 bisa diproses penambahan.
Maka hasil pada saat dieksekusi, seperti dibawah ini :
Gambar 2.6. Hasil Lat206.java
2.7.2 Konversi String to Float
Untuk melakukan konversi String ke Float, dengan menggunakan bentuk penulisan seperti
dibawah ini :
var_penampung = Float.parseFloat(nilai_string);
Untuk lebih jelasnya anda bisa lihat contoh dibawah ini :
30
© 2009 - Frieyadie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* -------------------------Nama File : Lat207.java
Author
: Frieyadie
---------------------------- */
import java.io.*;
class Lat206
{
public static void main(String args[])throws Exception
{
//membuat objek baru
InputStreamReader keyreader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(keyreader);
//deklarasi variabel
String s1, s2;
float n1, n2, n3;
System.out.print("Masukan Nilai Pertama : ");
s1 = input.readLine();
System.out.print("Masukan Nilai Kedua : ");
s2 = input.readLine();
//konversi
n1 = Float.parseFloat(s1);
n2 = Float.parseFloat(s2);
n3 = n1 + n2;
System.out.println("\nHasil Hitung =
" + n3);
}
}
Penjelasan Program :

Perintah baris 27 dan 28.Digunakan untuk melakukan konversi nilai String ke Float.

Nilai String diambil dari string s1 dan s2 yang diinputkan dari keyboard. Hasil konversi,
ditampung kemasing-masing variabel penampung.

Perintah baris 30. Melakukan pengetesan apakan nilai sudah terkonversi dengan baik. Jika
ya, maka nilai n1 dan n2 bisa diproses penambahan.
Maka hasil pada saat dieksekusi, seperti dibawah ini :
© 2009 - Frieyadie
31
Gambar 2.7. Hasil Lat207.java
2.7.3 Konversi String to Double
Untuk melakukan konversi String ke Double, dengan menggunakan bentuk penulisan seperti
dibawah ini :
var_penampung = Double.parseDouble(nilai_string);
Untuk lebih jelasnya anda bisa lihat contoh dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* -------------------------Nama File : Lat208.java
Author
: Frieyadie
---------------------------- */
import java.io.*;
class Lat208
{
public static void main(String args[])throws Exception
{
//membuat objek baru
InputStreamReader keyreader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(keyreader);
//deklarasi variabel
String s1, s2;
double n1, n2, n3;
System.out.print("Masukan Nilai Pertama : ");
s1 = input.readLine();
System.out.print("Masukan Nilai Kedua : ");
s2 = input.readLine();
//konversi
n1 = Double.parseDouble(s1);
n2 = Double.parseDouble(s2);
n3 = n1 + n2;
System.out.println("\nHasil Hitung =
}
}
Penjelasan Program :
" + n3);
32
© 2009 - Frieyadie

Perintah baris 27 dan 28.Digunakan untuk melakukan konversi nilai String ke Double.

Nilai String diambil dari string s1 dan s2 yang diinputkan dari keyboard. Hasil konversi,
ditampung kemasing-masing variabel penampung.

Perintah baris 30. Melakukan pengetesan apakan nilai sudah terkonversi dengan baik. Jika
ya, maka nilai n1 dan n2 bisa diproses penambahan.
Maka hasil pada saat dieksekusi, seperti dibawah ini :
Gambar 2.7. Hasil Lat207.java
2.8
Latihan
1. Buatlah program untuk menghitung konversi dari derajat Celcius ke derajat Fahrenheit dan
Reamor. Diketahui nilai Celcius diinput melalui keyboard
Masukan Nilai Derajat Celcius : __
Hasil Konversi :
Derajat Fahrenheit : ____
Derajat Reamor
: ____
2. Buatlah program menghitung Luas dan Keliling Lingkaran. Dengan Layar masukan dan
keluaran seperti dibawah ini :
Masukan Nilai Radius : __
Hasil Perhitungan
Luas Lingkaran
Keliling Lingkaran
: ____
: ____
© 2009 - Frieyadie
33
3. Buatlah program menghitung Nilai Akhir Siswa Informatika. Dengan Ketentuan seperti
dibawah ini :
a. Nilai UTS, UAS dan Tugas Mandiri diinput melalui keyboard
b. Menghitung Nilai Murni

Nilai Murni UTS = Nilai UTS dikali dengan 35%

Nilai Murni UAS = Nilai UAS dikali dengan 45%

Nilai Murni Tugas Mandiri = Nilai Tugas Mandiri dikali dengan 20%
c. Nilai Akhir adalah perhitungan Nilai Murni - Nilai Murni
d. Layar masukan dan keluaran seperti dibawah ini :
Masukan Nama Siswa : ______________________________
Nilai UTS
: ____
Nilai UAS
: ____
Nilai Tugas Mandiri : ____
Nilai
Nilai
Nilai
Nilai
Murni
Murni
Murni
Murni
yang diperoleh :
UTS
: ____
UAS
: ____
Tugas
: ____
Nilai Akhir yang diperoleh yaitu : ____
34
© 2009 - Frieyadie
Lembar ini sengaja dikosongkan
Bab 3:
Operator Operator pada
Bahasa Java
3.1
Kopetensi Dasar
Pada pembahasan Bab 3 ini penulis mengajak mendiskusikan mengenai penggunaan operatoroperator yang disediakan oleh Bahasa Pemrograman Java. Kopetensi dasar secara umum, agar
mahasiswa/i atau pembaca bisa mendeskripsikan dapat memahami penggunaan operator-operator
pada bahasa pemrograman Java.
Penulis berharap, diakhir pembahasan, para pembaca bisa :
a. Penggunaan Operator Aritmatika.
b. Penggunaan Operasi Pemberi Nilai
c. Penggunaan Operator Penambah dan Pengurang
d. Penggunaan Operator Logika dan Operator Bitwise
3.2
Operator Aritmatika
Operator adalah simbol atau karakter yang biasa dilibatkan dalam program untuk melakukan
sesuatu operasi atau manipulasi, seprti penjumlahan, pengurangan dan lain-lain.
a. Unary, yaitu hanya melibatkan sebuah operand pada suatu ekspresi aritamatika.
Contoh : – 7
b. Binary, yaitu melibatkan dua buah operand pada suatu ekspresi aritmatika.
Contoh : 13 + 5
c. Ternary, yaitu melibatkan tiga buah operand pada suatu operasi aritmatika.
Contoh : (8 + 4) * 7 – 5.
Operator Aritmatika yang tergolong sebagai operator binary adalah :
© 2009 – Frieyadie
35
36
© 2009 – Frieyadie
Table 3.1. Operator Aritmatika
Operasi pada Java
Perkalian
Pembagian
Sisa Pembagian
Penjumlahan
Pengurangan
Operator
*
/
%
+
–
Contoh Ekspresi
4*5
7/4
5%2
7+3
6–4
Pembagian bilangan bulat menghasilkan suatu hasil bagi bilangan bulat juga, sebagai contoh,
ungkapan 7 / 4 menghasilkan nilai 1, dan misalkan ungkapan 17 / 5 akan menghasilkan nilai 3.
Karena bagian sisa pembagian bilangan bulat dibuang.
Java menyediakan operator Sisa Pembagian (%), yaitu nilai hasil pembagian dari ungkapan
pembagian nilai. Misalnya pada ungkapan 7 / 4, maka akan menghasilkan sisa 3.
Berikut contoh penggunaan operator aritmatika, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* -------------------------Nama File : Lat301.java
Author
: Frieyadie
---------------------------- */
class Lat301
{
public static void main(String[] args)
{
System.out.println("Hasil dari 7 x
System.out.println("Hasil dari 7 /
System.out.println("Hasil dari 7 %
System.out.println("Hasil dari 7 +
System.out.println("Hasil dari 7 }
}
4
4
4
4
4
=
=
=
=
=
"
"
"
"
"
+
+
+
+
+
(7
(7
(7
(7
(7
*
/
%
+
-
4));
4));
4));
4));
4));
Output yang dihasilkan dari program Lat301.java diatas, seperti dibawah ini :
Gambar 3.1 Hasil Program Lat301.java
© 2009 – Frieyadie
37
3.2.1 Ekspresi Aritmatika
Penulisan suatu ekspresi aritmatika pada program java, sangat berkaitan dengan pernyataan
pemberi nilai. Karena hasil dari ekspresi aritmatika akan ditampung kedalam suatu variabel.
Bentuk umum penulisan ekspresi aritmatika, seperti dibawah ini :
a. LValue (Left Value), merupakan berupa variabel tunggal sebagai penampung hasil dari
ekspresi Aritmatika
b. RValue (Right Value), merupakan Ekspresi Aritmatika, bisa berupa unary, binary atau
ternary dan variabel lainnya.
Tanda = (sama dengan), dikenal sebagai operator pemberi nilai (Assignment Operator)
Berikut contoh ekspresi aritmatika, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* -------------------------Nama File : Lat302.java
Author
: Frieyadie
---------------------------- */
import java.util.*;
class Lat302
{
public static void main(String[] args)
{
int nil1, nil2;
int a, b, c, d, e, f;
Scanner input = new Scanner(System.in);
System.out.print("Masukan Nilai Pertama = ");
nil1 = input.nextInt();
System.out.print("Masukan Nilai Kedua = ");
nil2 = input.nextInt();
//operasi aritmatika
a = nil1 * nil2;
b = nil1 / nil2;
c = nil1 % nil2;
d = nil1 + nil2;
e = nil1 - nil2;
System.out.println("Hasil
System.out.println("Hasil
System.out.println("Hasil
System.out.println("Hasil
System.out.println("Hasil
}
}
"
"
"
"
"
+
+
+
+
+
nil1
nil1
nil1
nil1
nil1
+
+
+
+
+
"
"
"
"
"
*
/
%
+
-
"
"
"
"
"
+
+
+
+
+
nil2
nil2
nil2
nil2
nil2
+
+
+
+
+
"
"
"
"
"
=
=
=
=
=
"
"
"
"
"
+
+
+
+
+
a);
b);
c);
d);
e);
38
© 2009 – Frieyadie
Output yang dihasilkan dari program Lat302.java diatas, seperti dibawah ini :
Gambar 3.2 Hasil Program Lat302.java
3.2.2 Hierarki Operator Aritmatika
Didalam suatu penulisan ekspresi aritmatika sering kita jumpai menggunakan beberapa operator
aritmatika yang berbeda secara bersamaan. Maka dalam prosenya akan berbeda, tergantung dari
urutan atau tingkatan operator tersebut. Berikut urutan operator aritmatika, seperti dibawah ini :
Table 3.2. Operator Aritmatika
Operator
*
/
%
+
Penjelasan Operator
Ketiga operator ini memiliki tingkatan yang akan diproses lebih dulu.
Tingkatan operator sama dan penggunaannya tergantung letak yang
yang didepan akan diproses lebih dulu.
Kedua operator ini akan diproses kemudian. Tingkatan operator sama
dan penggunaannya tergantung letak yang yang didepan akan diproses
lebih dulu.
–
Contoh kasus ekspresi aritmatika, seperti berikut ini :
A=8+2*3/6
Maka langkah-langkah perhitungannya :
Langkah 1
: A = 2 * 3 hasilnya 6
A=8+6/6
Langkah 2
: A = 6 / 6 hasilnya 1
A=8+1
Langkah 3
: A=9
© 2009 – Frieyadie
39
Tingkatan operator-operator ini, bisa diabaikan dengan menggunakan tanda kurung buka " ( "
dan " ) ". Jika suatu ekspresi terdapat didalam tanda kurung, maka proses ekspresi tersebut akan
diproses terlebih dahulu, tanpa melihat tingkatan operator.
Contoh : A = (8 + 2) * 3 / 6
Maka langkah-langkah perhitungannya :
Langkah 1
: A = 8 + 2 hasilnya 10
A = 10 * 3 / 6
Langkah 2
: A = 10 * 3 hasilnya 30
A = 30 / 6
Langkah 3
: A=5
Berikut contoh penggunaan hierarki operator aritmatika, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* -------------------------Nama File : Lat303.java
Author
: Frieyadie
---------------------------- */
class Lat303
{
public static void main(String[] args)
{
int A, B;
A = 8 + 2 * 3 / 6;
B = (8 + 2) * 3 / 6;
System.out.println("Hasil dari A = " + A);
System.out.println("Hasil dari B = " + B);
}
}
Output yang dihasilkan dari program Lat303.java diatas, seperti dibawah ini :
Gambar 3.3 Hasil Program Lat303.java
40
© 2009 – Frieyadie
3.3
Operator Pemberi Nilai Aritmatika
Sebelumnya, kita telah mengenal operator pemberi nilai (Assignment Operator), yaitu
menggunakan tanda sama dengan " = ", sebagai contoh A = A + 1
Dari ekspresi A = A + 1, bisa disederhanakan bentuk penulisan ekspresinya, yaitu menjadi A +=
1.
Notasi +=, ini dikenal dengan operator pemberi nilai aritmatika. Java menyediakan beberapa
notasi pemberi nilai.
Table 3.3. Operator Pemberi Nilai
Operasi pada Java
Perkalian
Pembagian
Sisa Pembagian
Penjumlahan
Pengurangan
Operator
Pemberi Nilai
*=
/=
%=
+=
–=
Contoh
Ekspresi
A=A*5
A=A/5
A=A%2
A=A+1
A=A–4
Penggunaan Operator Pemberi
Nilai
A *= 5
A /= 5
A %= 2
A+= 1
A –= 4
Berikut contoh penggunaan operator pemberi nilai aritmatika.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* -------------------------Nama File : Lat304.java
Author
: Frieyadie
---------------------------- */
class Lat304
{
public static void main(String[] args)
{
int a, c, d, e;
double b;
a = 3; b = 5; c = 13; d = 4; e = 6;
//penggunaan assignment operator
a
b
c
d
e
*=
/=
%=
+=
-=
2;
2;
2;
2;
2;
System.out.println("Nilai
System.out.println("Nilai
System.out.println("Nilai
System.out.println("Nilai
System.out.println("Nilai
}
}
a
b
c
d
e
*=
/=
%=
+=
-=
2
2
2
2
2
adalah
adalah
adalah
adalah
adalah
:
:
:
:
:
"+
"+
"+
"+
"+
a);
b);
c);
d);
e);
© 2009 – Frieyadie
41
Output yang dihasilkan dari program Lat304.java diatas, seperti dibawah ini :
Gambar 3.4 Hasil Program Lat304.java
3.4
Operator Penambah dan Pengurang
Masih berkaitan dengan operator pemberi nilai, Java menyediakan operator penambah dan
pengurang, yaitu digunakan untuk menambah satu dan mengurang satu dari nilai pada dirinya
sendiri. Dari contoh penulisan operator pemberi nilai sebagai penyederhanaannya dapat
digunakan operator penambah dan pengurang.
Tabel. 3.4. Tabel Operator Penambah dan Pengurang
Operator
++
––
Keterangan
Penambahan
Pengurangan
Sebagai contoh, terdapat ungkapan aritmatika seperti dibawah ini :
A = A + 1 atau A = A – 1; maka bentuk ekspresi tersebut bisa disederhanakan menjadi A += 1
atau A −= 1; hal ini masih dapat disederhanakan menjadi A ++ atau A––.
Notasi “ ++ “ atau “–– “ dapat diletakan didepan atau di belakang variabel. Bentuk penulisannya
seperti dibawah ini :
A ++ atau ++A dan A–– atau ––A
42
© 2009 – Frieyadie
Kedua bentuk penulisan notasi ini mempunyai arti yang berbeda. Perbedaan penulisan tersebut,
yaitu :
a. Jika diletakan didepan variabel, maka proses penambahan atau pengurangan akan dilakukan
sesaat sebelum atau langsung pada saat menjumpai ekspresi ini, sehingga nilai variabel tadi
akan langsung berubah begitu ekspresi ini ditemukan, sedangkan
b. Jika diletakan dibelakang variabel, maka proses penambahan atau pengurangan akan
dilakukan setelah ekspresi ini dijumpai atau nilai variabel akan tetap pada saat ekspresi ini
ditemukan.
Berikut contoh penggunaan operator penambah dan pengurang, bisa anda ikuti seperti dibawah
ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* -------------------------Nama File : Lat305.java
Author
: Frieyadie
---------------------------- */
class Lat305
{
public static void main(String[] args)
{
int a, b;
a = 5;
b = 4;
System.out.println("Nilai A
= " + a);
System.out.println("Nilai ++A = " + ++a);
System.out.println("Nilai A++ = " + a++);
System.out.println("Nilai A
= " + a);
System.out.println("----------------------");
System.out.println("Nilai B
= " + b);
System.out.println("Nilai ++B = " + ++b);
System.out.println("Nilai B++ = " + b++);
System.out.println("Nilai B
= " + b);
}
}
Output yang dihasilkan dari program Lat305.java diatas, seperti dibawah ini :
Gambar 3.5 Hasil Program Lat305.java
© 2009 – Frieyadie
3.5
43
Operator Pembanding (Comparison)
Java menyediakan beberapa operator yang digunakan untuk membuat perbandinganperbandingan antar variabel-variabel, variabel dan literal atau tipe informasi lainnya didalam
program.
Operator Pembading (Comparasion) digunakan untuk membandingkan dua buah nilai. Hasil
perbandingan operator ini menghasilkan nilai Boolean yaitu True atau False.
Tabel. 3.5. Tabel Operator Pembanding
Operator
==
!=
>
<
>=
<=
Keterangan
Sama Dengan ( bukan pemberi nilai )
Tidak Sama dengan
Lebih Dari
Kurang Dari
Lebih Dari sama dengan
Kurang Dari sama dengan
Berikut contoh penggunaan operator pembanding, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* -------------------------Nama File : Lat306.java
Author
: Frieyadie
---------------------------- */
class Lat306
{
public static void main(String[] args)
{
int a, b, c, d, e, f;
boolean aa, bb, cc, dd, ee, ff;
a = 5; b = 6; c = 3; d = 9; e = 8; f = 2;
aa
bb
cc
dd
ee
ff
=
=
=
=
=
=
a
b
c
d
e
b
== b;
> c;
< d;
>= e;
<= f;
!= a;
System.out.println("Apakah
System.out.println("Apakah
System.out.println("Apakah
System.out.println("Apakah
System.out.println("Apakah
System.out.println("Apakah
"+
"+
"+
"+
"+
"+
a
b
c
d
e
b
+"
+"
+"
+"
+"
+"
== "+ b +"? jawabannya " + aa);
> "+ c +"? jawabannya " + bb);
< "+ d +"? jawabannya " + cc);
>= "+ e +"? jawabannya " + dd);
=< "+ f +"? jawabannya " + ee);
!= "+ a +"? jawabannya " + ff);
}
}
Output yang dihasilkan dari program Lat306.java diatas, seperti dibawah ini :
44
© 2009 – Frieyadie
Gambar 3.6 Hasil Program Lat306.java
3.6
Operator Logika
Operator Relasi digunakan untuk menghubungkan dua buah operasi relasi menjadi sebuah
ungkapan kondisi. Hasil dari operator logika ini menghasilkan nilai boolean True atau False.
Tabel. 3.6. Tabel Operator Logika
Operator
&&
Keterangan
Operator Logika AND
||
Operator Logika OR
!
Operator Logika NOT
3.6.1 Operator Logika AND
Operator logika AND digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan
dianggap BENAR, bila semua ekspresi relasi yang dihubungkan bernilai BENAR.
Contoh :
Ekspresi Relasi-1  A + 4 < 10
Ekspresi Relasi-2  B>A + 5
Ekspresi Relasi-3  C - 3 >= 4
Penggabungan ketiga ekspresi relasi diatas menjadi ;
A+4 < 10 && B>A+5 && C–3 >= 4
Jika nilai A = 3; B = 3; C = 7, maka ketiga ekspresi tersebut mempunyai nilai :
© 2009 – Frieyadie
45
Ekspresi Relasi-1  A + 4 < 10
 3 + 4 < 10  BENAR
Ekspresi Relasi-2  B>A + 5
3>3+5
Ekspresi Relasi-3  C – 3 >= 4
 7 – 3 >= 4  BENAR
 SALAH
Dari ekspresi relasi tersebut mempunyai nilai BENAR, maka
A+4 < 10 && B>A+5 && C–3 >= 4  SALAH
Berikut contoh penggunaan operator Logika AND, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* -------------------------Nama File : Lat307.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat307
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int a, b, c ;
boolean d, e, f, g;
System.out.print("Masukan Nilai A = ");
a = input.nextInt();
System.out.print("Masukan Nilai B = ");
b = input.nextInt();
System.out.print("Masukan Nilai C = ");
c = input.nextInt();
// Proses
d
e
f
g
=
=
=
=
a
b
c
d
+ 4 < 10;
> a + 5;
- 3 >= 4;
&& e && f;
System.out.println("\n");
System.out.println("Program Ekspresi AND");
System.out.println("Hasil
System.out.println("Hasil
System.out.println("Hasil
System.out.println("\n");
System.out.println("Hasil
}
}
dari d = a + 4 < 10 adalah " + d);
dari e = b > a + 5 adalah " + e);
dari f = c - 3 >= 4 adalah " + f);
dari g = d && e && f adalah " + g);
46
© 2009 – Frieyadie
Output yang dihasilkan dari program Lat307.java diatas, seperti dibawah ini :
Gambar 3.7 Hasil Program Lat307.java
3.6.2 Operator Logika OR
Operator logika OR digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan
dianggap BENAR, bila salah satu ekspresi relasi yang dihubungkan bernilai BENAR dan bila
semua ekspresi relasi yang dihubungkan bernilai SALAH, maka akan bernilai SALAH.
Contoh :
Ekspresi Relasi-1  A + 4 < 10
Ekspresi Relasi-2  B>A + 5
Ekspresi Relasi-3  C - 3 > 4
Penggabungan ketiga ekspresi relasi diatas menjadi ;
A+4 < 10 || B>A+5 || C–3 > 4
Jika nilai A = 3; B = 3; C = 7, maka ketiga ekspresi tersebut mempunyai nilai :
Ekspresi Relasi-1  A + 4 < 10
 3 + 4 < 10  BENAR
Ekspresi Relasi-2  B>A + 5
3>3+5
 SALAH
Ekspresi Relasi-3  C - 3 > 4
7–3>4
 SALAH
© 2009 – Frieyadie
47
Dilihat ekspresi diatas salah satu ekspresi tersebut mempunyai nilai BENAR, maka ekspresi
tersebut tetap bernilai BENAR.
A+4 < 10 || B>A+5 || C–3 > 4  BENAR
Berikut contoh penggunaan operator Logika OR, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* -------------------------Nama File : Lat308.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat308
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int a, b, c ;
boolean d, e, f, g;
System.out.print("Masukan Nilai A = ");
a = input.nextInt();
System.out.print("Masukan Nilai B = ");
b = input.nextInt();
System.out.print("Masukan Nilai C = ");
c = input.nextInt();
// Proses
d
e
f
g
=
=
=
=
a
b
c
d
+ 4 < 10;
> a + 5;
- 3 >= 4;
|| e || f;
System.out.println("\n");
System.out.println("Program Ekspresi OR");
System.out.println("Hasil
System.out.println("Hasil
System.out.println("Hasil
System.out.println("\n");
System.out.println("Hasil
dari d = a + 4 < 10 adalah " + d);
dari e = b > a + 5 adalah " + e);
dari f = c - 3 >= 4 adalah " + f);
dari g = d || e || f adalah " + g);
}
}
Output yang dihasilkan dari program Lat308.java diatas, seperti dibawah ini :
48
© 2009 – Frieyadie
Gambar 3.8 Hasil Program Lat308.java
3.6.3 Operator Logika NOT
Operator logika NOT akan memberikan nilai kebalikkan dari ekspresi yang disebutkan. Jika nilai
yang disebutkan bernilai BENAR maka akan menghasilkan nilai SALAH, begitu pula
sebaliknya.
Contoh :
Ekspresi Relasi  A + 4 < 10
Penggunaan Operator Logika NOT diatas menjadi : !(A+4 < 10)
Jika nilai A = 3; maka ekspresi tersebut mempunyai nilai :
Ekspresi Relasi-1  A + 4 < 10
 3 + 4 < 10  BENAR
Dilihat ekspresi diatas salah satu ekspresi tersebut mempunyai nilai BENAR dan jika digunakan
operator logika NOT, maka ekspresi tersebut akan bernilai SALAH
!(A+4 < 10)
 !(BENAR) = SALAH
Berikut contoh penggunaan operator Logika NOT, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
/* -------------------------Nama File : Lat309.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat309
{
public static void main(String[] args)
© 2009 – Frieyadie
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
49
{
Scanner input = new Scanner(System.in);
int a;
boolean b, c;
System.out.print("Masukan Nilai A = ");
a = input.nextInt();
// Proses
b = a + 4 < 10;
c = !(b);
System.out.println("\n");
System.out.println("Program Ekspresi NOT");
System.out.println("Nilai A = " + a);
System.out.println("Hasil dari b = a + 4 < 10 adalah " + b);
System.out.println("Hasil dari c = !(b) adalah " + c);
}
}
Output yang dihasilkan dari program Lat309.java diatas, seperti dibawah ini :
Gambar 3.9 Hasil Program Lat309.java
3.7
Operator Bitwise
Operator Bitwise digunakan untuk memanipulasi data dalam bentuk bit. Pemrograman Java
menyedikan enam buah operator bitwise.
Tabel. 3.8. Tabel Operator Bitiwise
Operator
~
<<
>>
&
^
|
Keterangan
Bitwise NOT
Bitwise Shift Left
Bitwise Shift Right
Bitwise AND
Bitwise XOR
Bitwise OR
50
© 2009 – Frieyadie
3.7.1 Operator Bitwise << (Shift Left)
Operator Bitwise Shift Left digunakan untuk menggeser sejumlah bit kekiri.
Contoh :
 digeser 1 bit ke kiri
Dibagian kanan yang kosong disisipkan 0, dan
sebanyak 1 bit yang digeser kekiri
Berikut contoh penggunaan operator Bitwise Left, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* -------------------------Nama File : Lat310.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat310
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int x, hasil;
System.out.print("Masukan Nilai X = ");
x = input.nextInt();
// Proses
hasil = x << 1;
System.out.println("\nProgram Bitwise Left\n");
System.out.println("Nilai X = " + x);
System.out.println("Hasil Pergeseran 1 bit kekiri adalah " + hasil);
}
}
Output yang dihasilkan dari program Lat310.java diatas, seperti dibawah ini :
© 2009 – Frieyadie
51
Gambar 3.10 Hasil Program Lat310.java
3.7.2 Operator Bitwise >> (Shift Right)
Operator Bitwise Shift Right digunakan untuk menggeser sejumlah bit kanan.
Contoh :
 digeser 1 bit ke kanan
Dibagian kiri yang kosong disisipkan 0, sebanyak
satu bit yang digeser kekanan
Berikut contoh penggunaan operator Bitwise Right, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* -------------------------Nama File : Lat311.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat311
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int x, hasil;
System.out.print("Masukan Nilai X = ");
x = input.nextInt();
// Proses
hasil = x >> 1;
System.out.println("\nProgram Bitwise Right\n");
System.out.println("Nilai X = " + x);
52
24
25
26
© 2009 – Frieyadie
System.out.println("Hasil Pergeseran 1 bit kekanan adalah " + hasil);
}
}
Output yang dihasilkan dari program Lat311.java diatas, seperti dibawah ini :
Gambar 3.11 Hasil Program Lat311.java
3.7.3 Operator Bitwise & (And)
Operator Bitwise & ( And ) digunakan untuk membandingkan bit dari dua operand. Akan
bernilai benar (true) jika semua operand yang digabungkan bernilai benar (true). Berikut anda
dapat melihat ilustrasi untuk membandingkan bit dari 2 operand.
Tabel. 3.9. Tabel Operator Bitiwise And
Bit Operand 1
0
0
1
1
Bit Operand 2
0
1
0
1
Contoh :
11001001 = 201
01100100 = 100
AND
01000000 = 64
Hasil Operand
0
0
0
1
© 2009 – Frieyadie
53
Berikut contoh penggunaan operator Bitwise AND, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* -------------------------Nama File : Lat312.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat311
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int x, y, hasil;
System.out.print("Masukan Nilai X = ");
x = input.nextInt();
System.out.print("Masukan Nilai Y = ");
y = input.nextInt();
// Proses
hasil = x & y;
System.out.println("\nProgram Bitwise And\n");
System.out.println("Nilai X = " + x);
System.out.println("Nilai Y = " + y);
System.out.println("Hasil Bitwise AND adalah " + hasil);
}
}
Output yang dihasilkan dari program Lat312.java diatas, seperti dibawah ini :
Gambar 3.12. Hasil Program Lat312.java
3.7.4 Operator Bitwise | ( Or )
Operator Bitwise | ( Or ) digunakan untuk membandingkan bit dari dua operand. Akan bernilai
benar jika ada salah satu operand yang digabungkan ada yang bernilai benar (1). Berikut anda
dapat melihat ilustrasi untuk membandingkan bit dari 2 operand.
54
© 2009 – Frieyadie
Tabel. 3.10. Tabel Operator Bitiwise Or
Bit Operand 1
0
0
1
1
Bit Operand 2
0
1
0
1
Hasil Operand
0
1
1
1
Contoh :
11001001 = 201
01100100 = 100
OR
11101101 = 237
Berikut contoh penggunaan operator Bitwise OR, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* -------------------------Nama File : Lat313.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat313
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int x, y, hasil;
System.out.print("Masukan Nilai X = ");
x = input.nextInt();
System.out.print("Masukan Nilai Y = ");
y = input.nextInt();
// Proses
hasil = x | y;
System.out.println("\nProgram Bitwise Log\n");
System.out.println("Nilai X = " + x);
System.out.println("Nilai Y = " + y);
System.out.println("Hasil Bitwise OR adalah " + hasil);
}
}
Output yang dihasilkan dari program Lat313.java diatas, seperti dibawah ini :
© 2009 – Frieyadie
55
Gambar 3.13. Hasil Program Lat313.java
3.7.5 Operator Bitwise ^ ( eXclusive Or )
Operator Bitwise ^ ( XOr ) digunakan untuk membandingkan bit dari dua operand. Akan bernilai
benar (1) jika dari dua bit yang dibadingkan hanya sebuah bernilai benar (1). Berikut anda dapat
melihat ilustrasi untuk membandingkan bit dari 2 operand.
Tabel. 3.11. Tabel Operator Bitiwise XOr
Bit Operand 1
0
0
1
1
Bit Operand 2
0
1
0
1
Hasil Operand
0
1
1
0
Contoh :
11001001 = 201
01100100 = 100
XOR
10101101 = 137
Berikut contoh penggunaan operator Bitwise XOR, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
/* -------------------------Nama File : Lat314.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat314
{
public static void main(String[] args)
{
56
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
© 2009 – Frieyadie
Scanner input = new Scanner(System.in);
int x, y, hasil;
System.out.print("Masukan Nilai X = ");
x = input.nextInt();
System.out.print("Masukan Nilai Y = ");
y = input.nextInt();
// Proses
hasil = x ^ y;
System.out.println("\nProgram Bitwise Log\n");
System.out.println("Nilai X = " + x);
System.out.println("Nilai Y = " + y);
System.out.println("Hasil Bitwise XOr adalah " + hasil);
}
}
Output yang dihasilkan dari program Lat314.java diatas, seperti dibawah ini :
Gambar 3.14. Hasil Program Lat313java
3.7.6 Operator Bitwise ~ ( Not )
Operator Bitwise ~ ( Not ) digunakan membalik nilai bit dari suatu operand. Berikut anda dapat
melihat ilustrasi untuk membandingkan bit dari 2 operand.
Tabel. 3.12. Tabel Operator Bitiwise Not
Bit Operand
0
1
Hasil
1
0
© 2009 – Frieyadie
57
Contoh :
Pada operasi Bitwise Not ini, hasil dari pertukaran nilai bit, akan menjadi tidak terhingga, maka
nilai yang dihasilkan adalah – (nilai operan + 1). Jika nilai operan yang dimasukan adalah 8,
maka akan menghasilkan nilai tak terhingga ~8, hasilnya adalah – (8+1)  – 9
Berikut contoh penggunaan operator Bitwise NOT, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* -------------------------Nama File : Lat315.java
Author
: Frieyadie
---------------------------- */
import java.util.Scanner;
class Lat315
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int a, b;
System.out.print("Masukan Nilai A = ");
a = input.nextInt();
// Proses
b = ~a;
System.out.println("\n");
System.out.println("Program Ekspresi Bitwise NOT");
System.out.println("Nilai A = " + a);
System.out.println("Hasil ~" + a + " = " + b);
}
}
Output yang dihasilkan dari program Lat315.java diatas, seperti dibawah ini :
58
© 2009 – Frieyadie
Gambar 3.15. Hasil Program Lat315.java
3.8
Latihan
1. Tentukan apa hasil logkanya dari ekspresi relasi dan logika dibawah ini. Diberikan nilai
A = 3; B = 6 ; C = 2 ; K = 5; L = 4; M = 3
D = (4 + 2 > A && B – 2 > 3 + 2 || B + 2 <= 6 + 2 )
K + 5 < M || (C * M < L && 2 * M – L > 0
L + 5 < M || C * K < L && 2 * K – L > 0
A * 4 <= 3 * M + B
K + 10 > A && L – 2 > 4 * C
2. Dari program dibawah ini, analisa bagaimanakah keluaran yang dihasilkan dan ada kesalahan
apa ?
class Tugas302
{
public static void main(args)
{
int a = 21;
System.out.println("Nilai a = " + a);
System.out.println("Nilai a++ = " + a++);
System.outprintln("Nilai ++a = " + ++a);
System.out.println("Nilai a = " + a);
a+=3
System.out.println("\n\nNilai
System.out.println("Nilai ++a
System.out.println("Nilai a++
System.out.println("Nilai --a
System.out.println("Nilai a =
}
}
a
=
=
=
"
=
"
"
"
+
" + a);
+ ++a);
+ a++);
+ --a);
a--);
© 2009 – Frieyadie
59
3. Dari program dibawah ini, bagaimanakah keluaran yang dihasilkan
class Tugas303
{
public static void main(String[] args)
{
int a = 25;
System.out.println("Nilai
System.out.println("Nilai
System.out.println("Nilai
System.out.println("Nilai
System.out.println("Nilai
a =
a++
a =
a-a =
"
=
"
=
"
+
"
+
"
+
a);
+ a++);
++a);
+ a--);
a);
a*=2;
System.out.println("\n\nNilai a = " + a);
System.out.println("Nilai a++ = " + a++);
System.out.println("Nilai ++a = " + ++a);
System.out.println("Nilai --a = " + --a);
System.out.println("Nilai a-- = " + a--);
}
}
60
© 2009 – Frieyadie
Lembar ini sengaja dikosongkan
Bab 4:
Operator Koondisi
Bahasa Java
4.1
Kopetensi Dasar
Pada pembahasan Bab 4 ini penulis mengajak mendiskusikan mengenai penggunaan operasi
kondisi yang pada Bahasa Pemrograman Java. Kopetensi dasar secara umum, agar mahasiswa/i
atau pembaca bisa mendeskripsikan dapat memahami operasi kondisi pada bahasa pemrograman
Java. Penulis berharap, diakhir pembahasan, para pembaca bisa :
a. Penggunaan Pernyataan If, If – Else, Nested If, dan If Majemuk
b. Penggunaan Pernyataan Case
c. Conditional Operator
Untuk keperluan pengambilan keputusan, Java menyediakan beberapa perintah antara lain.
4.2
Pernyataan IF
Pernyataan if
mempunyai pengertian, “ Jika kondisi bernilai benar, maka perintah akan
dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan”. Dari pengertian tersebut dapat
dilihat dari diagram alir berikut:
kondisi
Salah
Benar
perintah
Gambar 4.1. Flow Chart Pernyataan IF
© 2009 – Frieyadie
61
62
© 2009 – Frieyadie
Penulisan kondisi harus didalam tanda kurung dan berupa ekspresi relasi dan penulisan
pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan
kosong. Jika pemakaian if diikuti dengan pernyataan majemuk, bentuk penulisannya sebagai
berikut :
if (kondisi)
pernyataan;
Jika lebih dari satu pernyataan hasu diapit dengan tanda kurung kurawal
if (kondisi)
{
pernyataan;
..........
}
Contoh
Menentukan besarnya potongan dari pembelian barang yang diberikan seorang pembeli, dengan
kriteria :
Tidak ada potongan jika total pembelian kurang dari Rp. 50.000,Jika total pembelian lebih dari atau sama dengan Rp. 50.000,- potongan yang diterima sebesar
20% dari total pembelian.
Berikut contoh penggunaan pernyataan if sederhana, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* -------------------------Nama File : Lat401.java
Author
: Frieyadie
---------------------------- */
import java.util.*;
class Lat401
{
public static void main(String[] args)
{
double tot_beli, potongan=0, jum_bayar=0;
Scanner input = new Scanner(System.in);
System.out.print("Total Pembelian Rp. ");
tot_beli = input.nextDouble();
if (tot_beli >= 50000)
potongan = 0.2 * tot_beli;
System.out.println("Besarnya Potongan Rp. " + potongan);
jum_bayar = tot_beli - potongan;
System.out.println("Jumlah yang harus dibayarkan Rp. " + jum_bayar);
}
}
© 2009 – Frieyadie
63
Output yang dihasilkan dari program Lat401.java diatas, seperti dibawah ini :
Gambar 4.2 Hasil Program Lat401.java
4.2.1 Pernyataan IF - ELSE
Pernyataan if
mempunyai pengertian, “ Jika kondisi bernilai benar, maka perintah-1 akan
dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan perintah-2”. Dari pengertian
tersebut dapat dilihat dari diagram alir berikut :
kondisi
Salah
Benar
Perintah-1
Perintah-2
Gambar 4.3. Diagram Alir if-else
Perintah-1 dan perintah-2 dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau
pernyataan kosong. Jika pemakaian if-else diikuti dengan pernyataan majemuk, bentuk
penulisannya sebagai berikut:
if (kondisi)
pernyataan-1;
else
pernyataan-1;
Jika lebih dari satu pernyataan hasu diapit dengan tanda kurung kurawal
64
© 2009 – Frieyadie
if (kondisi)
{
perintah-1;
...
}
else
{
perintah-2;
...
}
Contoh :
Menentukan besarnya potongan dari pembelian barang yang diberikan seorang pembeli, dengan
kriteria :
a. jika total pembelian kurang dari Rp. 50.000,- potongan yang diterima sebesar 5% dari total
pembelian.
b. Jika total pembelian lebih dari atau sama dengan Rp. 50.000,- potongan yang diterima
sebesar 20% dari total pembelian.
Berikut contoh penggunaan pernyataan if - else, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* -------------------------Nama File : Lat402.java
Author
: Frieyadie
---------------------------- */
import java.util.*;
class Lat402
{
public static void main(String[] args)
{
double tot_beli, potongan=0, jum_bayar=0;
Scanner input = new Scanner(System.in);
System.out.print("Total Pembelian Rp. ");
tot_beli = input.nextDouble();
if (tot_beli >= 50000)
potongan = 0.2 * tot_beli;
else
potongan = 0.05 * tot_beli;
System.out.println("Besarnya Potongan Rp. " + potongan);
jum_bayar = tot_beli - potongan;
System.out.println("Jumlah yang harus dibayarkan Rp. " + jum_bayar);
}
}
© 2009 – Frieyadie
65
Output yang dihasilkan dari program Lat402.java diatas, seperti dibawah ini :
Gambar 4.4 Hasil Program Lat402.java
4.2.2 Pernyataan NESTED IF
Nested if merupakan pernyataan if berada didalam pernyataan if yang lainnya. Bentuk penulisan
pernyataan Nested if adalah :
if(syarat)
if(syarat)
… perintah;
else
… perintah;
else
if(syarat)
… perintah;
else
… perintah;
Contoh :
Suatu perusahaan memberikan komisi kepada para selesman dengan ketentuan sebagai berikut:
a. Bila salesman dapat menjual barang hingga Rp. 20.000 ,- , akan diberikan uang jasa sebesar
Rp. 10.000 ditambah dengan uang komisi Rp. 10% dari pendapatan yang diperoleh hari itu.
b. Bila salesman dapat menjual barang diatas Rp. 20.000 ,- , akan diberikan uang jasa sebesar
Rp. 20.000 ditambah dengan uang komisi Rp. 15% dari pendapatan yang diperoleh hari itu.
c. Bila salesman dapat menjual barang diatas Rp. 50.000 ,- , akan diberikan uang jasa sebesar
Rp. 30.000 ditambah dengan uang komisi Rp. 20% dari pendapatan yang diperoleh hari itu.
66
© 2009 – Frieyadie
Berikut contoh penggunaan pernyataan nested - if, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* -------------------------Nama File : Lat403.java
Author
: Frieyadie
---------------------------- */
import java.util.*;
class Lat403
{
public static void main(String[] args)
{
int pendapatan;
double jasa, komisi, total;
/deklarasi objek
Scanner input = new Scanner(System.in);
System.out.print("Masukan Pendapatan Sales Rp. ");
pendapatan = input.nextInt();
if (pendapatan >= 0 && pendapatan <= 200000)
{
jasa=10000;
komisi=0.1*pendapatan;
}
else
{
if(pendapatan<=500000)
{
jasa=20000;
komisi=0.15*pendapatan;
}
else
{
jasa=30000;
komisi=0.2*pendapatan;
}
}
/* menghitung total */
total = komisi+jasa;
System.out.println("\nUang Jasa
Rp. " + (int) jasa);
System.out.println("Uang Komisi Rp. " + (int) komisi);
System.out.println("==================================");
System.out.println("Uang Total Rp. " + (int) total);
}
}
Output yang dihasilkan dari program Lat403.java diatas, seperti dibawah ini :
© 2009 – Frieyadie
67
Gambar 4.5 Hasil Program Lat403.java
4.2.3 Pernyataan IF – ELSE Majemuk
Bentuk dari if-else bertingkat sebenarnya mirip dengan nested if, keuntungan penggunanan ifelse bertingkat dibanding dengan nested if adalah penggunaan bentuk penulisan yang lebih
sederhana.
Bentuk Penulisannya
if (syarat)
{
… perintah;
… perintah;
}
else if (syarat)
{
… perintah;
… perintah;
}
else
{
… perintah;
… perintah;
}
Contoh :
Suatu perusahaan memberikan komisi kepada para selesman dengan ketentuan sebagai berikut:
a. Bila salesman dapat menjual barang hingga Rp. 200.000 ,- , akan diberikan uang jasa
sebesar Rp. 10.000 ditambah dengan uang komisi Rp. 10% dari pendapatan yang
diperoleh hari itu.
68
© 2009 – Frieyadie
b. Bila salesman dapat menjual barang diatas Rp. 200.000 ,- , akan diberikan uang jasa
sebesar Rp. 20.000 ditambah dengan uang komisi Rp. 15% dari pendapatan yang
diperoleh hari itu.
c. Bila salesman dapat menjual barang diatas Rp. 500.000 ,- , akan diberikan uang jasa
sebesar Rp. 30.000 ditambah dengan uang komisi Rp. 20% dari pendapatan yang
diperoleh hari itu.
Berikut contoh penggunaan pernyataan if – else majemuk, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* -------------------------Nama File : Lat404.java
Author
: Frieyadie
---------------------------- */
import java.util.*;
class Lat404
{
public static void main(String[] args)
{
int pendapatan;
double jasa, komisi, total;
//deklarasi objek
Scanner input = new Scanner(System.in);
System.out.print("Masukan Pendapatan Sales Rp. ");
pendapatan = input.nextInt();
if (pendapatan >= 0 && pendapatan <= 200000)
{
jasa=10000;
komisi=0.1*pendapatan;
}
else if(pendapatan<=500000)
{
jasa=20000;
komisi=0.15*pendapatan;
}
else
{
jasa=30000;
komisi=0.2*pendapatan;
}
/* menghitung total */
total = komisi+jasa;
System.out.println("\nUang Jasa
Rp. " + (int) jasa);
System.out.println("Uang Komisi Rp. " + (int) komisi);
System.out.println("==================================");
System.out.println("Uang Total Rp. " + (int) total);
}
}
© 2009 – Frieyadie
69
Output yang dihasilkan dari program Lat404.java diatas, seperti dibawah ini :
Gambar 4.6 Hasil Program Lat404.java
4.3
Pernyataan switch - case
Bentuk dari switch - case merupakan pernyataan yang dirancangan khusus untuk menangani
pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif. Pernyataan switch case ini memiliki kegunaan sama seperti if – else bertingkat, tetapi penggunaannya hanya untuk
memeriksa data yang bertipe primitif integer saja. Bentuk penulisan perintah ini sebagai berikut :
switch (ekspresi integer)
{
case konstanta-1 :
... perintah;
... perintah;
break;
case konstanta-2 :
... perintah;
... perintah;
break;
......
......
default :
... perintah;
... perintah;
}
Setiap cabang akan dijalankan jika syarat nilai konstanta tersebut dipenuhi dan default akan
dijalankan jika semua cabang diatasnya tidak terpenuhi.
70
© 2009 – Frieyadie
Pernyataan break menunjukan bahwa perintah siap keluar dari switch. Jika pernyataan ini tidak
ada, maka program akan diteruskan kecabang – cabang yang lainnya.
Berikut contoh penggunaan pernyataan switch - case, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* -------------------------Nama File : Lat405.java
Author
: Frieyadie
---------------------------- */
import java.util.*;
class Lat405
{
public static void main(String[] args)
{
int kode;
String nmbarang;
Scanner input = new Scanner(System.in);
System.out.print("Masukkan Kode Barang [A..C] : ");
kode = input.nextInt();
switch(kode)
{
case 1 :
nmbarang = "Alat Olah Raga";
break;
case 2 :
nmbarang = "Alat Elelktronik";
break;
case 3 :
nmbarang = "Alat Masak";
break;
default:
nmbarang = "Anda Salah Memasukan kode";
break;
}
System.out.println("\nKode yang anda Pilih : " + nmbarang);
}
}
Output yang dihasilkan dari program Lat405.java diatas, seperti dibawah ini :
© 2009 – Frieyadie
71
Gambar 4.7 Hasil Program Lat405.java
4.4
Operator ?:
Operator ?: disebut dengan Conditional Operator atau Operator Kondisi yang digunakan untuk
menyeleksi nilai untuk mendapatkan hasil dari kondisi yang diseleksi. Operator ?: ini tergolong
kedalam operator ternary.
Bentuk Penulisan :
Ekspresi Logika-OR ? Ekspresi : Ekspresi Kondisi
Berikut contoh penggunaan pernyataan Conditional Operator, bisa anda ikuti seperti dibawah ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* -------------------------Nama File : Lat406.java
Author
: Frieyadie
---------------------------- */
class Lat406
{
public static void main(String[] args)
{
int x, y , z ;
x = 5;
y = 6;
z = (x < y) ? x : y;
System.out.println("\nNilai Bilangan x = " + x);
System.out.println("\nNilai Bilangan y = " + y);
System.out.println("\nNilai yang lebih kecil adalah
}
}
= " + z);
72
© 2009 – Frieyadie
Output yang dihasilkan dari program Lat406.java diatas, seperti dibawah ini :
Gambar 4.8 Hasil Program Lat406.java
Pada contoh program – 7 diatas, merupakan pengaplikasian dari perintah if – else berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* -------------------------Nama File : Lat407.java
Author
: Frieyadie
---------------------------- */
class Lat407
{
public static void main(String[] args)
{
int x, y , z ;
x = 5;
y = 6;
if (x < y)
z = x;
else
z = y;
System.out.println("\nNilai Bilangan x = " + x);
System.out.println("\nNilai Bilangan y = " + y);
System.out.println("\nNilai yang lebih kecil adalah
}
= " + z);
}
Output yang dihasilkan dari program Lat407.java diatas, seperti dibawah ini :
© 2009 – Frieyadie
73
Gambar 4.9 Hasil Program Lat407.java
4.5
1
Latihan
Buatlah program untuk menghitung nilai rata-rata dari seorang siswa, dengan ketentuan
sebagai berikut :
a. Nama Siswa, Nilai Pertandingan I, Nilai Pertandingan II, Nilai Pertandingan III diinput.
b. Nilai Rata-rata merupakan hasil dari Nilai Pertandingan I, II dan III dibagi dengan 3.
c. Ketentuan Mendapat Hadiah dari pertandingan :
1) Jika Nilai Rata-Rata >= 85, maka mendapat hadiah Seperangkat Komputer P4
2) Jika Nilai Rata-Rata >= 70, maka mendapat hadiah Seperangkat Uang sebesar Rp.
500,000
3) Jika Nilai Rata-Rata < 70, maka mendapat hadiah Hiburan
d. Tampilan yang diinginkan sebagai berikut :
1) Layar Masukan
PROGRAM HITUNG NILAI RATA-RATA
Nama Siswa
Nilai Pertandingan I
Nilai Pertandingan II
Nilai Pertandingan III
:
:
:
:
...
...
...
...
<diinput>
<diinput>
<diinput>
<diinput>
2) Layar Keluaran
Siswa yang bernama ... <tampil data>
Memperoleh nilai rata-rata <hasil proses> dari hasil perlombaan
yang diikutinya.
74
© 2009 – Frieyadie
Hadiah yang didapat adalah ... <hasil proses>
2
Buatlah program untuk menghitung nilai akhir seorang siswa dari kursus yang diikutinya.
Dengan ketentuan sebagai berikut :
a. Nama Siswa, Nilai Keaktifan, Nilai Tugas dan Nilai Ujian diinput.
b. Proses yang dilakukan untuk mendapatkan nilai murni dari masing-masing nilai, adalah
1) Nilai Murni Keaktifan = Nilai Keaktifaan dikalikan dengan 20%.
2) Nilai Murni Tugas = Nilai Tugas dikalikan dengan 30%
3) Nilai Murni Ujian = Nilai Ujian dikalikan dengan 50%
4) Nilai Akhir adalah Nilai Murni Keaktifan + Nilai Murni Tugas + Nilai Murni Ujian
c. Ketentuan untuk mendapatkan grade nilai :
1) Nilai Akhir >= 80 mendapat Grade A
2) Nilai Akhir >= 70 mendapat Grade B
3) Nilai Akhir >= 59 mendapat Grade C
4) Nilai Akhir >= 50 mendapat Grade D
5) Nilai Akhir < 50 mendapat Grade E
d. Tampilan yang diinginkan sebagai berikut :
1) Layar Masukkan
PROGRAM HITUNG NILAI AKHIR
Nama Siswa : ......<diinput>
Nilai Keaktifan : ...... <diinput>
Nilai Tugas
: ...... <diinput>
Nilai Ujian
: ...... <diinput>
2) Layar Keluaran
Siswa yang bernama <tampil data>
Dengan Nilai Persentasi Yang dihasilkan.
Nilai Keaktifan * 20% : ...<hasil proses>
Nilai Tugas
* 30% : ...<hasil proses>
Nilai Ujian
* 50% : ...<hasil proses>
Jadi Siswa yang bernama <tampil data>memperoleh
sebesar ... <hasil proses>
Grade nilai yang didapat adalah ... <hasil proses>
nilai
akhir
© 2009 – Frieyadie
3
75
Buatlah program untuk menghitung total pembayaran dari sebuah penjualan agen susu di
kota besar ini.. Dengan ketentuan sebagai berikut :
a. Jenis susu diinput diinput berdasarkan kode yang sudah ditentukan, yaitu :

Jika kode A adalah Dancow

Jika kode B adalah Bendera

Jika kode A adalah SGM
b. Ukuran kaleng susu diinput berdasarkan kode yang sudah ditentukan.

Jika kode 1 adalah Kecil

Jika kode 2 adalah Sedang

Jika kode 3 adalah Besar
c. Harga susu sesuai dengan jenis susu dan ukuran kaleng susu
JENIS SUSU
DANCOW
BENDERA
SGM
HARGA BERDASARKAN UKURAN
KALENG SUSU
KECIL
SEDANG BESAR
25000
20000
15000
20000
17500
13500
22000
18500
15000
d. Proses yang dilakukan untuk mendapatkan Total Pembayaran
Total Bayar = Harga Susu per ukuran dan Jenis dikali dengan banyak beli
e. Tampilan Layar Masukkan dan Keluaran yang diinginkan sebagai berikut :
TOKO KELONTONG KERONCONGAN
-------------------------A. Susu Dancow
1. Ukuran Kecil
2. Ukuran Sedang
3. Ukuran Besar
B. Susu Bendera
1. Ukuran Kecil
2. Ukuran Sedang
3. Ukuran Besar
C. Susu SGM
1. Ukuran Kecil
2. Ukuran Sedang
3. Ukuran Besar
Masukan Merk Susu [Dancow | Bendera | SGM] : .... < diinput >
Masukan Ukuran Kaleng [Kecil|Sedang|Besar] : .... < diinput >
76
© 2009 – Frieyadie
Harga Satuan Barang Rp. ....< tampil harga satuan >
Jumlah Yang dibeli : ... < diinput >
Harga Yang Harus dibayar Sebesar Rp. <hasil proses>
4
DINGIN DAMAI, memberikan Honor tetap kepada karyawan kontraknya sebesar Rp.
300,000,- per bulan, dengan memperoleh tujangan-tunjangan sebagai berikut :
a. Tunjangan Jabatan
Golongan
1
2
3
Persentase
5%
10%
15%
Sebagai contoh : Jika seorang karyawan tersebut dengan golongan 3, maka mendapatkan
tunjangan sebesasr 15% * Rp. 300,000,b. Tunjangan Pendidikan
Kode
1
2
3
Pendidikan
SMU
D3
S1
Persentase
2,5%
5%
7,5%
c. Honor Lembur
Jumlah jam kerja normal sebanyak 8 Jam Kerja. Honor lembur diberikan jika jumlah jam
kerja sebih dari 8 jam, maka kelebihkan jam kerja tersebut dikalikan dengan honor
lembur perjam sebesar Rp. 2,500 untuk setiap kelebihan jam kerja perharinya.
d. Tampilan yang diinginkan sebagai berikut :

Layar Masukkan
Program Hitung Honor Karyawan Kontrak
PT. DINGIN DAMAI
© 2009 – Frieyadie
77
Nama Karyawan
: ... <di input>
Golongan
: ... <di input>
Pendidikan (SMU/D3/S1)
: ... <di input>
Jumlah Jam Kerja : ... <di input>

Layar Keluaran
Karyawan yang bernama
Honor yang diterima
: ... <tampil data>
Honor Tetap
Rp. .... <hasil proses>
Tunjangan jabatan
Rp. .... <hasil proses>
Tunjangan Pendidikan Rp. .... <hasil proses>
Honor Lembur
Rp. .... <hasil proses>
+
Honor Yang Diterima
Rp. .... <hasil proses>
78
© 2009 – Frieyadie
Lembar ini sengaja dikosongkan
Bab 5:
Perintah Perulangan Pada
Pemrograman Java
5.1
Kopetensi Dasar
Pada pembahasan Bab 5 ini penulis mengajak mendiskusikan mengenai penggunaan operasi
kondisi yang pada Bahasa Pemrograman Java. Kopetensi dasar secara umum, agar mahasiswa/i
atau pembaca bisa mendeskripsikan dapat memahami perintah perulangan pada bahasa
pemrograman Java.
Penulis berharap, diakhir pembahasan, para pembaca bisa :
a. Penggunaan Pernyataan Perulangan for, nested for dan perulangan tak berhingga dengan
perulangan for.
b. Penggunaan Pernyataan Perulangan While dan Do While
c. Perintah Break dan Continue
Pernyataan Perulangan digunakan untuk melakukan proses yang sifatnya mengulang pada
pemrograman java. Untuk keperluan perulangan proses, Java menyediakan beberapa perintah
perulangan, yaitu: for, while dan do-while.
5.2
Pernyataan for
Perulangan yang pertama adalah for. Bentuk umum pernyataan for sebagai berikut :
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
Bila pernyataan didalam for lebih dari satu maka pernyataan-pernyataan tersebut harus diletakan
didalam tanda kurung.
© 2009 – Frieyadie
79
80
© 2009 – Frieyadie
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
{
pernyataan / perintah;
pernyataan / perintah;
pernyataan / perintah;
}
Kegunaan dari masing-masing argumen for diatas adalah :

Inisialisasi
: merupakan bagian untuk memberikan nilai awal untuk variabelvariabel tertentu.

Syarat Pengulangan
: memegang kontrol terhadap pengulangan, karena bagian ini
yang akan menentukan suatu perulangan diteruskan atau
dihentikan.

Pengubah Nilai Pencacah : mengatur kenaikan atau penurunan nilai pencacah.
Contoh :
Sebagai contoh program untuk mencetak bilangan dari 1 hingga 10 secara menaik, secara
selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* -------------------------Nama File : Lat501.java
Author
: Frieyadie
---------------------------- */
class Lat501
{
public static void main(String[] args)
{
int a;
for(a = 1; a <= 10; ++a)
System.out.println(a);
}
}
Output yang dihasilkan dari program Lat501.java diatas, seperti dibawah ini :
© 2009 – Frieyadie
81
Gambar 5.1 Hasil Program Lat501.java
Sebagai contoh program untuk mencetak bilangan dari 10 hingga 1 secara menurun,
selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* -------------------------Nama File : Lat502.java
Author
: Frieyadie
---------------------------- */
class Lat502
{
public static void main(String[] args)
{
int a;
for(for(a = 10; a >= 1; --a)
System.out.println(a);
}
}
Output yang dihasilkan dari program Lat502.java diatas, seperti dibawah ini :
Gambar 5.2 Hasil Program Lat502.java
82
© 2009 – Frieyadie
Sebagai contoh program untuk mencetak bilangan dari 1 hingga 10, dengan loncat dua angka
secara menaik, selengkapnya seperti dibawah ini::
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* -------------------------Nama File : Lat503.java
Author
: Frieyadie
---------------------------- */
class Lat503
{
public static void main(String[] args)
{
int a;
for(a = 1; a <= 10; a+=2)
System.out.println(a);
}
}
Output yang dihasilkan dari program Lat503.java diatas, seperti dibawah ini :
Gambar 5.3 Hasil Program Lat503.java
5.1.1 Pernyataan nested - for
Pernyataaan Nested for adalah suatu perulangan for didalam perulangan for yang lainnya.
Bentuk umum pernyataan Nested for sebagai berikut :
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
{
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah)
{
pernyataan / perintah;
}
}
Didalam penggunaan nested-for, perulangan yang didalam terlebih dahulu
dihitung hingga selesai, kemudian perulangan yang diluar diselesaikan.
© 2009 – Frieyadie
83
Sebagai contoh program menerapkan perintah nested - for, selengkapnya seperti dibawah ini::
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* -------------------------Nama File : Lat504.java
Author
: Frieyadie
---------------------------- */
class Lat504
{
public static void main(String[] args)
{
int a, b;
for(a = 1; a <= 5; a++)
{
System.out.println();
for(b = a; b <= 5; b++)
{
System.out.print(a);
}
}
System.out.println("\n");
}
}
Output yang dihasilkan dari program Lat504.java diatas, seperti dibawah ini :
Gambar 5.4 Hasil Program Lat504.java
Dapat anda analisa kenapa bisa hasilnya menjadi seperti gambar 5.6, diatas ?, berikut dapat
dilihat pada tabel proses berikut ini :
a
1
a<=5
1<=5
? \n

b=a
1
2
3
4
5
b<=5
1<=5
2<=5
3<=5
4<=5
5<=5
?a
1
1
1
1
1
b++
2
3
4
5
6
a++
84
2
© 2009 – Frieyadie
2<=5
3
3<=5
4
4<=5
5
5<=5
6<=5
6
6<=5

2
2<=5
3
3<=5
4
4<=5
5
5<=5
6
6<=5

3
3<=5
4
4<=5
5
5<=5
6
6<=5

4
4<=5
5
5<=5
6
6<=5

5
5<=5
Proses perulangan Selesai
2
2
2
2
3
3
3
4
4
5
3
4
5
6
4
5
6
5
6
6
2
3
4
5
Maka tampilan hasil yang diperoleh dari perulangan diatas bisa anda lihat pada variabel a,
variabel ini yang mencetak, semua nilai pada variabel a tersebut.
5.1.2 Perulangan Tidak Berhingga
Perulangan tak berhingga merupakan perulangan (loop) yang tak pernah berhenti atau
mengulang terus, hal ini sering terjadi disebabkan adanya kesalahan penanganan kondisi yang
dipakai untuk keluar dari loop. Sebagai contoh, jika penulisan perintah sebagai berikut:
Sebagai contoh program menerapkan perintah perulangan tak berhingga, selengkapnya seperti
dibawah ini::
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* -------------------------Nama File : Lat505.java
Author
: Frieyadie
----------------------------- */
class Lat505
{
public static void main(String[] args)
{
int bil;
for (bil = 60; bil >=10; bil++)
System.out.println(bil);
}
}
Output yang dihasilkan dari program Lat505.java diatas, seperti dibawah ini :
© 2009 – Frieyadie
85
Gambar 5.5 Hasil Program Lat505.java
Pada pernyataan ini tidak akan berhenti untuk menampilkan bilangan menurun, kesalahan terjadi
pada pengubah nilai pencacah, seharusnya penulisan yang benar berupa
bil -Akan tetapi yang ditulis adalah :
bil ++
Oleh karena kondisi bil >= 1 selalu bernilai benar ( karena bil bernilai 60), maka pernyataan
System.out.println(bil); akan terus dijalankan.
5.3
Pernyataan while
Pernyataan perulangan while merupakan instruksi perulangan yang mirip dengan perulangan for.
Bentuk perulangan while dikendalikan oleh syarat tertentu, yaitu perulangan akan terus
dilaksanakan selama syarat tersebut terpenuhi.
Bentuk umum perulangan while, sebagai berikut :
while ( syarat )
Pernyataan / perintah ;
Bentuk umum perulangan while, dengan lebih dari perintah / pernyataan, sebagai berikut :
while ( syarat )
{
Pernyataan / perintah ;
Pernyataan / perintah ;
}
86
© 2009 – Frieyadie
Sebagai contoh program menerapkan perintah perulangan while, selengkapnya seperti dibawah
ini::
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* -------------------------Nama File : Lat506.java
Author
: Frieyadie
----------------------------- */
class Lat506
{
public static void main(String[] args)
{
int bil=1;
while(bil<=10)
{
System.out.println(bil);
++bil;
}
}
}
Output yang dihasilkan dari program Lat506.java diatas, seperti dibawah ini :
Gambar 5.6 Hasil Program Lat506.java
Sebagai contoh program menerapkan perintah perulangan while dengan penambahan pencacah
sebanyak 2, selengkapnya seperti dibawah ini::
1
2
3
4
5
6
7
8
9
10
11
12
/* -------------------------Nama File : Lat506.java
Author
: Frieyadie
----------------------------- */
class Lat506
{
public static void main(String[] args)
{
int bil=1;
while(bil<=10)
© 2009 – Frieyadie
13
14
15
16
17
18
87
{
System.out.println(bil);
bil+=2;
}
}
}
Output yang dihasilkan dari program Lat507.java diatas, seperti dibawah ini :
Gambar 5.7 Hasil Program Lat507.java
5.4
Pernyataan do - while
Pernyataan perulangan do - while merupakan bentuk perulangan yang melaksanakan perulangan
terlebih dahulu dan pengujian perulangan dilakukan dibelakang.
Bentuk umum perulangan do - while, sebagai berikut :
do
pernyataan / perintah ;
while ( syarat );
Bentuk umum perulangan do - while, dengan lebih dari perintah / pernyataan, sebagai berikut:
do
{
Pernyataan / perintah ;
Pernyataan / perintah ;
}
while ( syarat );
Sebagai contoh program menerapkan perintah perulangan do - while, selengkapnya seperti
dibawah ini:
88
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
© 2009 – Frieyadie
/* -------------------------Nama File : Lat508.java
Author
: Frieyadie
----------------------------- */
class Lat508
{
public static void main(String[] args)
{
int bil=1;
do
{
System.out.println(bil);
++bil;
}
while(bil<=10);
}
}
Output yang dihasilkan dari program Lat508.java diatas, seperti dibawah ini :
Gambar 5.8 Hasil Program Lat508.java
Sebagai contoh program menerapkan perintah perulangan do - while dengan penambahan
pencacah sebanyak 2, selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* -------------------------Nama File : Lat509.java
Author
: Frieyadie
----------------------------- */
class Lat509
{
public static void main(String[] args)
{
int bil=1;
do
{
System.out.println(bil);
bil+=2;
}
while(bil<=10);
}
}
© 2009 – Frieyadie
89
Output yang dihasilkan dari program Lat509.java diatas, seperti dibawah ini :
Gambar 5.9 Hasil Program Lat509.java
5.5
Pernyataan break
Pernyataan break telah dibahas pada pernyataan pengambilan keputusan switch. Pernyataan
break ini berfungsi untuk keluar dari struktur switch. Selain itu pernyataan break berfungsi
keluar dari perulangan (for, while dan
do-while). Jika pernyataan break dikerjakan, maka
eksekusi akan dilanjutkan ke pernyataan yang terletak sesudah akhir dari badan perulangan
(loop). Sebagai contoh program menerapkan perintah perulangan do - while dengan
menggunakan break, selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* -------------------------Nama File : Lat510.java
Author
: Frieyadie
----------------------------- */
class Lat510
{
public static void main(String[] args)
{
int bil=1;
do
{
if(bil >= 6)
break;
System.out.println(bil);
bil++;
}
while(bil<=10);
}
}
Output yang dihasilkan dari program Lat510.java diatas, seperti dibawah ini :
90
© 2009 – Frieyadie
Gambar 5.10 Hasil Program Lat510.java
Pada saat nilai bil = 6, maka proses seleksi bil >= 6, maka bernilai True, dan
perintah break dijalankan, selanjutnya proses menuju ke akhir perulangan.
Sebagai contoh program menerapkan perintah perulangan for dengan menggunakan break,
selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* -------------------------Nama File : Lat511.java
Author
: Frieyadie
----------------------------- */
class Lat511
{
public static void main(String[] args)
{
int a=3, b=2, c=1, bil;
System.out.println("Bil-A
| Bil-B | Bil-C");
System.out.println("-------------------------");
for(bil=1; bil<=10; ++bil)
{
a+=b; b+=c; c+=2;
System.out.println(a + "\t" + "| " + b + "\t" + "| " + c);
if(c==13)
break;
}
}
}
Output yang dihasilkan dari program Lat511.java diatas, seperti dibawah ini :
© 2009 – Frieyadie
91
Gambar 5.11 Hasil Program Lat511.java
5.6
Pernyataan continue
Pernyataan continue digunakan untuk mengarahkan eksekusi ke iterasi (proses) berikutnya pada
loop yang sama, dengan kata lain mengembalikan proses yang sedang dilaksanakan ke-awal loop
lagi, tanpa menjalankan sisa perintah dalam loop tersebut.
Sebagai contoh program menerapkan perintah perulangan for dengan menggunakan continue,
selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* -------------------------Nama File : Lat512.java
Author
: Frieyadie
----------------------------- */
class Lat512
{
public static void main(String[] args)
{
int bil;
for(bil=1; bil<=10; ++bil)
{
if(bil==6)
continue;
System.out.println(bil);
}
}
}
Output yang dihasilkan dari program Lat512.java diatas, seperti dibawah ini :
92
© 2009 – Frieyadie
Gambar 5.12 Hasil Program Lat512.java
Pada saat nilai bil = 6, maka proses seleksi bil==6, maka bernilai True, dan
perintah continue dijalankan, selanjutnya proses menuju ke pernyatan ++bil,
pada perintah perulangan, dan proses pencetakan tidak dilakukan.
5.7
1
Latihan
Buatlah program untuk menghitung 10 deret bilangan genap dengan hasilnya :
2 + 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20 = 110
2
Buatlah program untuk menghitung 10 deret bilangan ganjil dengan hasilnya :
1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 = 100
3
Buatlah program untuk menampilkan deret fibonanci, seperti dibawah ini :
1, 1, 2, 3, 5, 8, 13, 21
4
Buatlah program untuk menampilkan bilangan prima, seperti dibawah ini :
2, 3, 5, 7, 11, 13, 17, 19
Bab 6:
Array Pada
Pemrograman Java
6.1
Kopetensi Dasar
Pada pembahasan Bab 6 ini penulis mengajak mendiskusikan mengenai penggunaan array yang
pada Bahasa Pemrograman Java. Kopetensi dasar secara umum, agar mahasiswa/i atau pembaca
bisa mendeskripsikan dapat memahami menggunakan array pada bahasa pemrograman Java.
Penulis berharap, diakhir pembahasan, para pembaca bisa :
a. Penggunaan pendeklarasian array berdimensi satu, memasukan nilai ke array dimensi satu
dan mengambil nilai dari array dimensi satu.
b. Penggunaan pendeklarasian array berdimensi dua, memasukan nilai ke array dimensi dua dan
mengambil nilai dari array dimensi dua
c. Penggunaan pendeklarasian array berdimensi tiga, memasukan nilai ke array dimensi tiga
dan mengambil nilai dari array dimensi tiga.
6.2
Array Berdimensi Satu
Variabel Larik atau lebih dikenal dengan ARRAY adalah adalah Tipe terstruktur yang terdiri
dari sejumlah komponen-komponen yang mempunyai tipe yang sama. Sebelum digunakan,
variabel array perlu dideklarasikan terlebih dahulu. Cara mendeklarasikan variabel array sama
seperti deklarasi variabel yang lainnya, hanya saja diikuti oleh suatu indek yang menunjukan
jumlah maksimum data yang disediakan.
Deklarasi Array Bentuk Umum pendeklarasian array :
tipe_data[] nama_var_array;
nama_var_array = new tipe_data[ukuran];
© 2009 – Frieyadie
93
94
© 2009 – Frieyadie
Atau bisa juga secara langsung seperti dibawah ini :
tipe_data[] nama_var_array = new tipe_data[ukuran];
Keterangan :
Type Data
:Untuk menyatakan type data yang digunakan.
Ukuran
:Untuk menyatakan jumlah maksimum elemen array.
Berikut contoh pendeklarasian array dan membuat objek array;
int[] nil_akhir;
nil_akhir = new int[6];
Contoh Pendeklarasian Array sekaligus membuat objek array.
int[] nil_akhir = new int[6];
Jumlah Elemen Array
Nama Array
Tipe data elemen array
Pada pendeklarasian diatas, variabel nil_akhir sebagai array-of-int, banyak elemen yang dapat
ditampung sebanyak 6 (enam) elemen.
Suatu array dapat digambarkan sebagai kotak panjang yang berisi kotak-kotak kecil didalam
kotak panjang tersebut.
Elemen Array
elemen
elemen
elemen
elemen
elemen
elemen
1
2
3
4
5
6
0
1
2
3
4
5
Subscript /
Index
ARRAY NIL_AKHIR
Subscript atau Index array pada Java, selalu dimulai dari Nol ( 0 )
© 2009 – Frieyadie
95
6.2.1. Mengakses Array Berdimensi Satu
Suatu array, dapat diakses dengan menggunakan subscript atau indexnya. Bentuk umum
pengaksesan dengan bentuk :
nama_var_array[nomor_index_array];
Contoh :
Nil_Akhir[3];
Nil_Akhir[1];
Sebagai contoh program memasukan data kedalam elemen array dan mengambil data dari dalam
elemen array, secara selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* -------------------------Nama File : Lat601.java
Author
: Frieyadie
----------------------------- */
import java.util.*;
class Lat601
{
public static void main(String[] args)
{
int i;
int[] nil_akhir;
// deklarasi variabel array
nil_akhir = new int[6]; // membuat objek array
Scanner input = new Scanner(System.in);
for(i=0; i<6; i++)
{
System.out.print("Masukkan Array ke " + i + " = ");
nil_akhir[i] = input.nextInt();
}
System.out.println("\n\nData Yang Diinput ke Elemen Array \n");
for(i=0; i<6; i++)
{
System.out.print("Nilai Akhir Index " + i );
System.out.println(" = " + nil_akhir[i]);
}
}
}
Output yang dihasilkan dari program Lat601.java diatas, seperti dibawah ini :
96
© 2009 – Frieyadie
Gambar 6.1 Hasil Program Lat601.java
6.2.2. Inisialisasi Array Berdimensi Satu
Inisialisasi adalah memberikan nilai awal terhadap suatu variabel. Bentuk pendefinisian suatu
array dapat dilihat dari contoh berikut :
tipe_data[] nama_array = { nilai array };
Contoh:
float[] nilai= {56.5, 66.7, 87.45, 98,5, 78.9 };
Sebagai contoh program memasukan data kedalam elemen array dengan cara inisialisasi objek
array dan mengambil data dari dalam elemen array, secara selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* -------------------------Nama File : Lat602.java
Author
: Frieyadie
----------------------------- */
class Lat602
{
public static void main(String[] args)
{
int i;
double[] nil_akhir = {56.5, 66.7, 87.6, 98,5, 78.9, 85.4};
System.out.println("\nData Yang Diinput ke Elemen Array \n");
//menampilkan data dari elemen array
for(i=0; i<6; i++)
{
System.out.print("Nilai Akhir Index " + i );
System.out.println(" = " + nil_akhir[i]);
}
}
}
© 2009 – Frieyadie
97
Output yang dihasilkan dari program Lat602.java diatas, seperti dibawah ini :
Gambar 6.2 Hasil Program Lat602.java
6.3
Array Berdimensi Dua
Array dimensi dua tersusun dalam bentuk baris dan kolom, dimana indeks pertama menunjukan
baris dan indeks kedua menunjukan kolom. Array dimensi dua dapat digunakan seperti pendatan
penjualan, pendataan nilai dan lain sebagainya.
Bentuk Umum pendeklarasian array :
Deklarasi Array Bentuk Umum pendeklarasian array :
tipe_data[][] nama_var_array;
nama_var_array = new tipe_data[ukuran_baris][ukuran_kolom];
Atau bisa juga secara langsung seperti dibawah ini :
tipe_data[][] nama_var_array = new tipe_data[ukuran_baris][ukuran_kolom];
Keterangan :
Type Data
: Untuk menyatakan type data yang digunakan.
Ukuran_baris : Untuk menyatakan jumlah maksimum elemen baris dalam array.
Ukuran_kolom : Untuk menyatakan jumlah maksimum elemen kolom dalam array.
Berikut contoh pendeklarasian array dan membuat objek array;
int[][] nil_akhir;
nil_akhir = new int[6][3];
Contoh Pendeklarasian Array sekaligus membuat objek array.
98
© 2009 – Frieyadie
int[][] nil_akhir = new int[6][3];
Jumlah Elemen Array
Nama Array
Jumlah Elemen Baris
Tipe data elemen array
6.3.1 Mengakses Array Berdimensi Dua
Sebagai contoh pendeklarasian dan pengaksesan data, kita gunakan adalah pengolahan data
penjualan, berikut dapat anda lihat pada tabel berikut :
Tabel 6.1. Tabel Data Penjualan Pertahun
No
1
2
3
Tahun Penjualan
2001
2002
150
159
100
125
210
125
2003
230
150
156
Jika anda lihat dari tabel 6.1 diatas maka dapat dituliskan kedalam array dimensi dua berikut :
int[][] data_jual = new int[3][3];
Jumlah Kolom
Jumlah Baris
Nama variabel Array
Tipe data elemen array
Sebagai contoh program memasukan data kedalam elemen array berdimensi dua dan mengambil
data dari dalam elemen array berdimensi dua, secara selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
/* -------------------------Nama File : Lat603.java
Author
: Frieyadie
----------------------------- */
import java.util.*;
class Lat603
{
public static void main(String[] args)
{
int i, j;
int[][] data_jual;
© 2009 – Frieyadie
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
99
data_jual = new int[3][3];
Scanner input = new Scanner(System.in);
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
System.out.print("Masukkan Data Jual ke ["+i+"]["+j+"] =");
data_jual[i][j] = input.nextInt();
}
System.out.println();
}
System.out.println("\n\nData Jual Yang Diinput ke Elemen Array \n");
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
System.out.print("Nilai Data Jual ["+i+"]["+j+"]");
System.out.println(" = " + data_jual[i][j]);
}
System.out.println();
}
}
}
Output yang dihasilkan dari program Lat603.java diatas, seperti dibawah ini :
Gambar 6.3 Hasil Program Lat603.java
100
© 2009 – Frieyadie
6.3.2 Inisialisasi Array Berdimensi Dua
Suatu array, dapat diakses dengan menggunakan subscript atau indexnya. Bentuk umum
pengaksesan dengan bentuk :
tipe_data[][] nama_array = { nilai array };
Contoh:
int[][] nil_akhir = {{150, 159, 230}, {100,125,150}, {210,125,156}};
Sebagai contoh program memasukan data kedalam elemen array dengan cara inisialisasi objek
array dan mengambil data dari dalam elemen array, secara selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* -------------------------Nama File : Lat604.java
Author
: Frieyadie
----------------------------- */
class Lat604
{
public static void main(String[] args)
{
int i, j;
int[][] nil_akhir = {{150, 159, 230}, {100,125,150}, {210,125,156}};
System.out.println("Data Yang Diinput ke Elemen Array \n");
//menampilkan data dari elemen array
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
System.out.print("Nilai Akhir Index ["+i+"]["+j+"] = ");
System.out.println(" = " + nil_akhir[i][j]);
}
}
}
}
Output yang dihasilkan dari program Lat604.java diatas, seperti dibawah ini :
© 2009 – Frieyadie
101
Gambar 6.4 Hasil Program Lat604.java
6.4
Array Berdimensi Tiga
Array dimensi dua tersusun dalam bentuk baris, kolom dan isi dari baris, dimana indeks pertama
menunjukan baris, indeks kedua menunjukan kolom dan indeks ketiga menunjukan isi dari baris.
Bentuk Umum pendeklarasian array :
tipe-data[][][] Nama_Variabel = new tipe-data[index-1][index-2][index-3];
Keterangan :
Type Data
: Untuk menyatakan type data yang digunakan.
Index-1
: Untuk menyatakan jumlah baris
Index-2
: Untuk menyatakan jumlah isi dari baris
Index-3
: Untuk menyatakan jumlah kolom
Sebagai contoh pendeklarasian yang akan kita gunakan adalah pengolahan data penjualan,
berikut dapat anda lihat pada tabel berikut :
102
© 2009 – Frieyadie
Tabel 6.2. Tabel Data Penjualan Pertahun
Jika anda lihat dari tabel 6.2 diatas maka dapat dituliskan kedalam array dimensi dua berikut :
int[][][] data_jual = new int[3][3][3];
Jumlah Kolom
Jumlah Isi dari Baris
Jumlah Baris
Nama variabel Array
Tipe data elemen array
6.4.1
Mengakses Array Berdimensi Tiga
Suatu array, dapat diakses dengan menggunakan subscript atau indexnya. Bentuk umum
pengaksesan dengan bentuk :
Nama_Array[index-1][index-2][index-3]
Contoh:
data_jualan[1][1][1];
data_jualan[1][0][1];
Sebagai contoh program memasukan data kedalam elemen array tiga dimensi dan mengambil
data dari dalam elemen array, secara selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
/* -------------------------Nama File : Lat605.java
Author
: Frieyadie
----------------------------- */
import java.util.*;
class Lat605
© 2009 – Frieyadie
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
103
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int i, j, k;
int[][][] data_jual;
data_jual = new int[2][3][2];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<2;k++)
{
System.out.println("Data
System.out.println("Data
System.out.print("Jumlah
data_jual[i][j][k]
}
System.out.println();
}
System.out.println();
Tahun Ke - " + (i+1) );
Ke - "+ (j+1) + " " + (k+1));
Penjulan
: ");
= input.nextInt();
}
System.out.println();
System.out.println("Data Penjualan Pertahun");
System.out.println("--------------------------------------");
System.out.println();
System.out.println("Tahun
Hasil
Tahun Penjualan Ke. ");
System.out.println();
System.out.println("Ke.
Ke.
--------------------");
System.out.println();
System.out.println("
1
2
");
System.out.println();
System.out.println("--------------------------------------");
System.out.println();
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
System.out.print((i+1) + "\t");
System.out.print((j+1) + "\t\t");
for(k=0;k<2;k++)
{
System.out.print(data_jual[i][j][k]);
System.out.print("\t");
}
System.out.println();
}
System.out.println();
}
System.out.println("--------------------------------------");
System.out.println();
}
}
Output yang dihasilkan dari program Lat605.java diatas, seperti dibawah ini :
104
© 2009 – Frieyadie
Gambar 6.5 Hasil Program Lat605.java
Output yang akan dihasilkan, dari Input Data ke Array dari program Lat605.java, diatas adalah :
Gambar 6.6 Hasil Program Lat605.java
© 2009 – Frieyadie
105
6.4.2 Inisialisasi Array Berdimensi Tiga
Suatu array, dapat diakses dengan menggunakan subscript atau indexnya. Bentuk umum
pengaksesan dengan bentuk :
tipe_data[][][] nama_array = { nilai array
Contoh:
int[][][] data_jual = { {100,
{150,
{250,
{250,
{ {160,
{175,
{275,
{380,
};
200,
240,
340,
340,
250,
275,
375,
480,
300},
360},
460},
460}},
365},
375},
575},
580}}
Sebagai contoh program memasukan data kedalam elemen array dengan cara inisialisasi objek
array dan mengambil data dari dalam elemen array, secara selengkapnya seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* -------------------------Nama File : Lat604.java
Author
: Frieyadie
----------------------------- */
class Lat606
{
public static void main(String[] args)
{
int i, j, k;
int[][][] data_jual = {
{ {100, 200, 300},
{150, 240, 360},
{250, 340, 460},
{250, 340, 460}},
{ {160, 250, 365},
{175, 275, 375},
{275, 375, 575},
{380, 480, 580}}
};
System.out.println();
System.out.println("Data Penjualan Pertahun");
System.out.println("--------------------------------------");
System.out.println();
System.out.println("Tahun
Hasil
Tahun Penjualan Ke. ");
System.out.println();
System.out.println("Ke.
Ke.
--------------------");
System.out.println();
106
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
© 2009 – Frieyadie
System.out.println("
1
2
");
System.out.println();
System.out.println("--------------------------------------");
System.out.println();
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
System.out.print((i+1) + "\t");
System.out.print((j+1) + "\t\t");
for(k=0;k<2;k++)
{
System.out.print(data_jual[i][j][k]);
System.out.print("\t");
}
System.out.println();
}
System.out.println();
}
System.out.println("--------------------------------------");
System.out.println();
}
}
Output yang dihasilkan dari program Lat606.java diatas, seperti dibawah ini :
Gambar 6.4 Hasil Program Lat604.java
Inisialisasi adalah memberikan nilai awal terhadap suatu variabel. Bentuk pendefinisian suatu
array dapat dilihat dari contoh berikut :
© 2009 – Frieyadie
6.5
107
Latihan
1. Buatlah sebuah class dengan nama AngkaTerbesar, yang digunakan untuk melakukan
pencarian sebuah nilai terbesar diantara nilai-nilai yang dimasukan.
2. Sebuah perusahaan ayam goreng dengan nama “GEROBAK FRIED CHICKEN” yang telah
lumayan banyak pelanggannya, ingin dibantu dibuatkan program untuk membantu
kelancaran usahaannya. “GEROBAK FRIED CHICKEN” mempunyai daftar harga ayam
sebagai berikut:
Kode
Jenis Harga
---------------------------------D
Dada Rp. 2500
P
Paha
Rp. 2000
S
Sayap Rp. 1500
----------------------------------
Buatlah programnya dengan ketentuan :
a. Setiap pembeli dikenakan pajak sebesar 10% dari pembayaran.
b. Banyak Jenis, Jenis Potong dan Banyak Beli diinput.
c. Tampilan yang diinginkan sebagai berikut :
Layar Masukkan
GEROBAK FRIED CHICKEN
--------------------------Kode
Jenis
Harga
--------------------------D
Dada
Rp. 2500
P
Paha
Rp. 2000
S
Sayap
Rp. 1500
-------------------------Banyak Jenis : ... <diinput>
Jenis Ke - ... <proses counter>
Jenis Potong [D/P/S] : ... <diinput>
Banyak Potong
: ... <diinput>
<<Terus berulang tergantung Banyak Jenis>>
108
© 2009 – Frieyadie
Layar Keluaran
GEROBAK FIRED CHICHEN
----------------------------------------------No. Jenis
Harga
Bayak
Jumlah
Potong
Satuan
Beli
Harga
----------------------------------------------... ...........
......
....
Rp ....
... ...........
......
....
Rp ....
----------------------------------------------Jumlah Bayar
Rp ....
Pajak 10%
Rp ....
Total Bayar
Rp ....
3. Buatlah program untuk menghitung nilai akhir seorang siswa dari kursus yang diikutinya.
Dengan ketentuan sebagai berikut :
a. Nama Mahasiswa, Nilai Tugas, Nilai UTS dan Nilai UAS diinput.
b. Proses yang dilakukan untuk mendapatkan nilai murni dari masing-masing nilai, adalah

Nilai Murni Tugas = Nilai Tugas dikalikan dengan 30%

Nilai Murni UTS = Nilai UTS dikalikan dengan 30%

Nilai Murni UAS = Nilai UAS dikalikan dengan 40%

Nilai Akhir adalah Nilai Murni Tugas + Nilai Murni UTS + Nilai Murni UAS
c. Ketentuan untuk mendapatkan grade nilai :

Nilai Akhir >= 80 mendapat Grade A

Nilai Akhir >= 70 mendapat Grade B

Nilai Akhir >= 59 mendapat Grade C

Nilai Akhir >= 50 mendapat Grade D

Nilai Akhir < 50 mendapat Grade E
d. Tampilan yang diinginkan sebagai berikut :
Layar Masukkan
PROGRAM HITUNG NILAI AKHIR
MATERI PEMROGRAMMAN C++
Masukkan Jumlah Mahasiswa : ... <diinput>
© 2009 – Frieyadie
109
Mahasiswa Ke - ... <proses counter>
Nama Mahasiswa : ...... <diinput>
Nilai Tugas
: ...... <diinput>
Nilai UTS
: ...... <diinput>
Nilai UAS
: ...... <diinput>
<<Terus berulang tergantung Jumlah Mahasiswa>>
Layar Keluaran
DAFTAR NILAI
MATERI : PEMROGRAMMAN C++
-----------------------------------------------------No.
Nama
Nilai
Grade
Mahasiswa
---------------------------Tugas
UTS
UAS
Akhir
-----------------------------------------------------...
.......... ....
....
.... ....
.....
...
.......... ....
....
.... ....
.....
------------------------------------------------------
4. PT. EASY, memberikan Honor tetap kepada karyawan kontraknya sebesar Rp. 700,000,- per
bulan, dengan memperoleh tujangan-tunjangan sebagai berikut :
a. Tunjangan Jabatan.
Golongan
1
2
3
Persentase
5%
10%
15%
Sebagai contoh : Jika seorang keryawan tersebut dengan golongan 3, maka mendapatkan
tunjangan sebesasr 15% * Rp. 700,000,b. Tunjangan Pendidikan
Kode
1
2
3
Pendidikan
SMU
D3
S1
Persentase
2,5%
5%
7,5%
110
© 2009 – Frieyadie
c. Honor Lembur
Jumlah jam kerja normal dalam satu bulan sebanyak 240 Jam Kerja. Honor lembur
diberikan jika jumlah jam kerja lebih dari 240 jam, maka kelebihkan jam kerja tersebut
dikalikan dengan honor lembur perjam sebesar Rp. 2,500 untuk setiap kelebihan jam
kerja dalam satu bulannya.
d. Tampilan yang diinginkan sebagai berikut :
Layar Masukan
Program Hitung Honor Karyawan Kontrak
PT. EASY
Masukkan Jumlah Karyawan : ... <diinput>
Karyawan Ke - ... <proses counter>
Nama Karyawan
: ... <di input>
Golongan (1/2/3) : ... <di input>
Pendidikan (1=SMU/2=D3/3=S1)
: ... <di input>
Jumlah Jam Kerja : ... <di input>
<<Terus berulang tergantung Jumlah Karyawan>>
Layar Keluaran
PT. EASY
----------------------------------------------------------No. Nama
Tunjangan
Karyawan
---------------Honor
Gaji
Jabatan Pdidikan Lembur
Pajak Bersih
----------------------------------------------------------... ........
.....
.......
.....
..... ........
... ........
.....
.......
.....
..... ........
----------------------------------------------------------Total Gaji yang dikeluarkan Rp. ........
Bab 7:
Class dan Object
7.1
Kopetensi Dasar
Pada pembahasan Bab7 ini penulis mengajak mendiskusikan mengenai penggunaan Class dan
Object yang ada pada Bahasa Pemrograman Java. Kopetensi dasar secara umum, agar
mahasiswa/i atau pembaca bisa mendeskripsikan dapat memahami menggunakan Class dan
Object pada bahasa pemrograman Java.
Penulis berharap, diakhir pembahasan, para pembaca bisa :
a. Membuat pendeklarasian Class dan Penggunaan Class.
b. Membuat Object dari Class
7.2
Class
Disetiap pemrograman Java, wajib memiliki minimal satu buah class agar program tersebut bisa
berjalan. Untuk mendefinisikan Class pada Pemrograman Java dengan diawalai dengan kata
class, dan diikuti dengan nama class.
Berikut bentuk umum pendeklarasian class pada pemrograman Java.
[public | private | proteced] Class Nama_Class
{
... daftar property...
... daftar Method ...
}
Terdapat class modifier pada pemrograman java, yaitu :
a. Public
: Pengaksesan suatu variabel instan atau method, bisa diakses dari luar class
secara langsung.
© 2009 – Frieyadie
111
112
© 2009 – Frieyadie
b. Private
: Pengaksesan suatu variabel instan atau method, tidak bisa diakses dari luar
class secara langsung.
c. Protected
: Tingkat pengaksesan antara public dan private. Pengaksesan dapat
dilakukan oleh anggota package class dan subclass – subclass yang lainnya
didalam package.
Pada penggunaan class modifier, dapat digunakan tergantung kebutuhan keamanan aplikasi
tersebut. Berikut contoh pembuatan suatu class :
public class burung
{
String jenis, warna;
int usia;
}
7.3
Object
Dalam Pemrograman Berorientasi Objek melihat atau memandang sesuatu berdasarkan objek.
Objek sebenarnya mencerminkan pola kerja manusia dalam kehidupan sehari-hari.
Pada suatu objek dapat dilihat menjadi 2 (dua) hal, yaitu :
1. Atributte
Atribut merupakan segala sesuatu yang melekat pada Object. Didalam penerapan didalam
program, atribut adalah Variabel atau Member.
Misalkan pada Object Burung. Atribut-atribut yang melekat pada burung, misalnya paruh, ekor,
sayap, kaki, mata, dan lain-lain.
2. Behaviour
Behaviour merupakan pola tingkah laku atau perilaku yang dimiliki oleh objek. Misalnya pada
objek Burung memiliki perilaku diantaranya terbang, mengepakan sayap, berjalan dan lain-lain.
Didalam penerapan didalam program, Behaviour adalah Method atau Fungsi.
7.3.1 Membuat Object
Bentuk penulisan mendeklarasikan Object, dengan menggunakan new, seperti dibawah ini :
nama_class nama_objek = new nama_class();

nama_class, merupakan nama Class yang akan dijadikan objek.

nama_objek, merupakan nama objek baru.
© 2009 – Frieyadie
113
Sebagai contoh, kita membuat sebuah class, seperti dibawah ini :
public class burung
{
String jenis, warna;
int usia;
}
Bentuk penulisan mendeklarasikan Object, dengan menggunakan new, seperti dibawah ini :
nama_class nama_objek = new nama_class();
Maka untuk membuat objeknya, dengan cara seperti contoh berikut :
burung burung_elang = new burung();
burung_elang sebagai nama objek yang berdasarkan dari class burung.
7.3.2 Menerapkan Class dengan Object
Sebagai contoh program membuat class sederhana dan membentuk objek, secara selengkapnya
seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* -------------------------------Nama File : lat701.java
Author
: Frieyadie
----------------------------------- */
class burung
{
String jenis, warna;
int usia;
}
class Lat701
{
public static void main(String[] args)
{
//membuat objek
burung burung_elang = new burung();
burung_elang.jenis = "Elang Jawa";
burung_elang.warna = "Coklat";
burung_elang.usia = 5;
System.out.println("Jenis Burung : " + burung_elang.jenis);
System.out.println("Warna Burung : " + burung_elang.warna);
System.out.println("Usia Burung : " + burung_elang.usia + " Tahun");
}
}
Output yang dihasilkan dari program burung_terbang.java diatas, seperti dibawah ini :
114
© 2009 – Frieyadie
Gambar 7.1 Hasil Program Lat702.java
Berikut penjelasan program Lat701.java, diatas :
a. Pada baris 6 sampai 10, mendeklarasikan pembuatan class dengan nama burung, didalamnya
memiliki anggota class. Pada class burung ini tidak digunakan access modifier, yang berarti
dapat diakses oleh class lain.
b. Pada baris 17, terdapat pernyataan
burung burung_elang = new burung();
digunakan untuk membuat objek dengan nama burung_elang, yang berdasarkan class burung.
c. Pada baris 23 sampai 25, terdapat pernyataan
burung_elang.jenis = "Elang Jawa";
burung_elang.warna = "Coklat";
burung_elang.usia = 5
Pernyatan tersebut digunakan untuk memberikan nilai kepada variabel instan class burung.
d. Pada baris 19 sampai 21, terdapat pernyataan
burung_elang.jenis = "Elang Jawa";
burung_elang.warna = "Coklat";
burung_elang.usia = 5
System.out.println("Jenis Burung : " + burung_elang.jenis);
System.out.println("Warna Burung : " + burung_elang.warna);
System.out.println("Usia Burung
: " + burung_elang.usia
Tahun");
+
"
Pernyatan tersebut digunakan untuk menampilkan nilai variabel instan kelayar.
7.4
Method
Method adalah implementasi operasi yang bisa dilakukan oleh Class dan Object. Operasi-operasi
yang dilakukan oleh Methode, diantaranya, yaitu :
1. Suatu Method bisa menerima dan memanipulasi data atau field didalam diri Method tersebut.
2. Suatu Method bisa mempengaruhi nilai suatu Object lain.
© 2009 – Frieyadie
115
7.4.1 Membuat Method
Untuk membuat atau menciptakan method terdapat 4(empat) bagian yang mendasar, yaitu :
1. Nama method
2. Daftar Parameter – paramater
3. Tipe objek atau tipe primitif (tipe data) yang dikembalikan oleh method
4. Badan program method
Berikut bentuk penulisan deklarasi Method:
Tipe_Akses Tipe_Return NamaMethod(Parmater1,...,Argumen-N)
{
... Badan / Tubuh Method ..
}
Berikut penjelasan deklarasi Methode diatas :
1. Tipe Akses, menyatakan tingkatan akses untuk memproteksi akses terhadap data-data
didalam Method, tipe akses ini bersifat opsional.
2. Tipe Return, menyatakan nilai hasil yang diolah oleh Method akan dikembalikan atau akan
mengirimkan kepada objek yang memanggil Method. Bentuk Tipe Return, bisa berupa tipe
data primitive yaitu integer, float, double dan lain-lain.
Apabila Method tidak akan mengembalikan nilai kepada objek yang memanggilnya, maka bisa
dituliskan didepan nama Method dengan perintah void.
7.4.2 Menerapkan Method pada Class
Berikut contoh program membuat class dengan penggunaan method, secara selengkapnya seperti
dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
/* -------------------------------Nama File : Lat702.java
Author
: Frieyadie
----------------------------------- */
import java.util.*;
class Hitung
{
int tambah;
int setHitung(int nil1, int nil2)
{
116
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
© 2009 – Frieyadie
tambah = nil1 + nil2 ;
return tambah;
}
}
class Lat702
{
public static void main(String[] args)
{
int a, b, hasil;
Hitung ngitung = new Hitung();
Scanner input = new Scanner(System.in);
System.out.print("Masukan Nilai A = ");
a = input.nextInt();
System.out.print("Masukan Nilai B = ");
b = input.nextInt();
hasil = ngitung.setHitung(a, b);
System.out.println("Hasilnya " + hasil);
}
}
Output yang dihasilkan dari program Lat702.java diatas, seperti dibawah ini :
Gambar 7.2 Hasil Program Lat702.java
Berikut penjelasan program Lat702.java, diatas :
a. Pada baris 8 sampai 16, mendeklarasikan pembuatan class dengan nama Hitung, didalamnya
memiliki sebuah method dengan nama setHitung untuk menampung nilai-nilai kiriman dari
class 702 yang bertipe integer, sekaligus melakukan proses perhitungan.
b. Pada baris 24, terdapat pernyataan
Hitung ngitung = new Hitung();
digunakan untuk membuat objek dengan nama ngitung, yang berdasarkan class Hitung.
c. Pada baris 27 sampai 30, terdapat pernyataan
burung_elang.jenis = "Elang Jawa";
© 2009 – Frieyadie
117
burung_elang.warna = "Coklat";
burung_elang.usia = 5
System.out.print("Masukan Nilai A = ");
a = input.nextInt();
System.out.print("Masukan Nilai B = ");
b = input.nextInt();
Pernyatan tersebut digunakan untuk memberikan menginput nilai kepada variabel a dan b.
d. Pada baris 32, terdapat pernyataan
hasil = ngitung.setHitung(a, b);
Pernyatan tersebut digunakan untuk memanggil method setHitung serta mengirimkan nilai
variabel a dan b, dan hasil return dari method setHitung akan ditampung pada variabel hasil.
7.5
this
this adalah sebuah keyword yang digunakan untuk menunjukan class instan saat ini, this dapat
dipergunakan pada variabel atau method.. Berikut contoh penggunaan kata kunci this,
selengkapnya seperti program dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* -------------------------------Nama File : Lat703.java
Author
: Frieyadie
----------------------------------- */
class Gelas
{
String isigelas, warnagelas;
void setGelas(String isi, String warna)
{
this.isigelas = isi;
this.warnagelas = warna;
}
}
class Lat703
{
public static void main(String[] args)
{
Gelas Mug = new Gelas();
Mug.setGelas("Coca Cola","Putih");
System.out.println("Isi Gelas
: " + Mug.isigelas);
System.out.println("Warna Gelas : " + Mug.warnagelas);
}
}
118
© 2009 – Frieyadie
Output yang dihasilkan dari program Lat703.java diatas, seperti dibawah ini :
Gambar 7.3 Hasil Program Lat703.java
Penjelasan Program :

Pada baris 12 dan 13, terdapat perintah :
this.isigelas = isi;
this.warnagelas = warna;
Digunakan untuk menyatakan variabel instan saat ini yaitu isigelas dan warnagelas

Pada baris 25 dan 26, terdapat perintah :
System.out.println("Isi Gelas
: " + Mug.isigelas);
System.out.println("Warna Gelas : " + Mug.warnagelas);
Digunakan untuk menampilkan nilai yang ada didalam variabel instan tersebut.
7.6
1
Latihan
Buatlah program menghitung luas dan keliling lingkaran dengan menggunakan class dan
method. Method yang harus dibuat, yaitu : luas() untuk menghitung luas lingkaran dan
keliling() untuk menghitung luas lingkaran.
2
Buatlah program untuk menghitung besarnya diskon yang diberikan atas besanya sejumlah
pembelian, dengan ketentuan sebagai berikut :
a. Jika belanja dibawah Rp. 1,000,000 , maka tidak mendapat diskon.
b. Jika belanja dimulai dari Rp. 1,000,000 , sampai dengan Rp. 5.000.000, maka mendapat
diskon sebesar 20%.
c. Jika belanja diatas Rp. 5.000.000, maka mendapat diskon sebesar 35%.
© 2009 – Frieyadie
119
Method yang harus dibuat, yaitu potong() untuk menghitung besar potongan yang akan
diberikan. Dengan tampilan yang diinginkan sebagai berikut :
Layar Masukkan dan Keluaran
Besar pembelian barang Rp. ...... <di input >
Besar diskon yang diberikan Rp. ...< hasil proses >
Besar harga yang harus dibayarkan Rp. ...< hasil proses >
3
Buatlah program untuk menghitung konversi dari derajat fahrenheit ke celcius. Buatlah class
dan method baru untuk mengolah data konversi.
Rumus konversi yang digunakan adalah
c = (f - 32.0) * 5 / 9;
Contoh :
Jika nilai Fahrenheit = 100
c = (100 - 32) * 5 / 9;
c = (68) * 5 / 9;
c = 37,7778
4
Buatlah program untuk menghitung jumlah pembayaran pada perpustakaan "Kecil-Kecilan".
Mempunyai ketentuan sebagai berikut:
Kode Jenis Buku
C
K
N
Jenis Buku
CerPen ( Kumpulan Cerita Pendek )
Komik
Novel
Petunjuk Proses :

Buatlah Method Tarif untuk menentukan terif penyewaan

Gunakan Pernyataan If – Else
Tampilan Masukan yang diinginkan :
Perpustakaan ".Kecil-Kecilan".
---------------------------Nama Penyewa Buku : .... <diinput>
Kode Buku [C/K/N] : .... <diinput>
Banyak Pinjam
: .... <diinput>
Tarif Buku
500
700
1000
120
© 2009 – Frieyadie
Tampilan Keluaran yang diinginkan :
Tarif Sewa Rp. .... <hasil proses>
Jenis Buku : ...... < hasil proses >
Penyewa dengan Nama ..... <hasil proses>
Jumlah Bayar Penyewaan Sebesar Rp. ..... <hasil proses>
5
Buatlah program untuk menghitung proses pada perpustakaan rakyat pedesaan, menyewakan
3 golongan buku, yaitu A, B dan C. Harga sewa buku per 7 hari adalah:
Golongan Harga Sewa per 7 hari
A
Rp. 200
B
Rp. 250
C
Rp. 150
Jika meminjam lebih dari 7 hari, maka setiap harinya didenda sebesar Rp. 100
Buatlah Program untuk menghitung pembayarannya.
Buatlah Method untuk Menghitung Harga Sewa
Buatlah Method untuk Menghitung Denda
Buatlah Method untuk Menghitung Total Bayar
Bentuk Rancangan Masukan
Perpustakaan Rakyat Pedesaan
---------------------------Nama Peminjam
: __________________________
Golongan Buku [A/B/C] : _________
Lama Peminjaman
: _________
Bentuk Rancangan Keluaran
Perpustakaan Rakyat Pedesaan
Pembayaran Peminjaman Buku
---------------------------Nama Peminjam
: ................<hasil proses>
Harga Sewa Buku : ................<hasil proses>
Lama Peminjaman : ....... Hari <hasil proses>
Jumlah Bayar
: ................<hasil proses>
Besar Denda
: ................<hasil proses>
-----------------------------------------------Jumlah yang Harus dibayar Rp. ......<hasil proses>
Bab 8:
Constructor, Inheritance
dan Polymorphism
8.1
Kopetensi Dasar
Pada pembahasan Bab 8 ini penulis mengajak mendiskusikan mengenai penggunaan Constructor
pada Bahasa Pemrograman Java. Kopetensi dasar secara umum, agar mahasiswa/i atau pembaca
bisa mendeskripsikan dapat memahami menggunakan Constructor dan Inherutance pada bahasa
pemrograman Java.
Penulis berharap, diakhir pembahasan, para pembaca bisa :
a. Membuat pendeklarasian dan menggunakan Constructor
b. Melakukan overloading terhadap constructor dan method.
c. Melakukan pewarisan Class
d. Penggunaan Pewarisan Class seperti Menggunakan Superclass, Constructor Superclass dan
lain sebagainya
e. Melakukan Pendeklarasian Polymorphism dan Penggunaan Polymorphism
8.2
Constructor
Constructor merupakan suatu method yang akan memberikan nilai awal pada saat suatu objek
dibuat. Pada saat program dijalankan, constructor akan langsung memberikan nilai awal pada
saat perintah new, membuat suatu objek.
Pada saat kita bekerja dengan constructor, hal mendasar yang perlu diperhatikan, yaitu :
a. Nama Constructor sama dengan nama Class.
b. Tidak ada return type yang diberikan kedalam Constructor Signature.
c. Tidak ada return stetement, didalam tubuh constructor.
© 2009 – Frieyadie
121
122
© 2009 – Frieyadie
Untuk lebih jelasnya sekarang bisa anda lihat pada program seperti dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* -------------------------------Nama File : lat801.java
Author
: Frieyadie
----------------------------------- */
class Lat801
{
float nilakhir;
Lat801(int nilai_akhir)
{
nilakhir = nilai_akhir;
}
public String grade()
{
String nilgrade;
if(nilakhir >= 80)
nilgrade = "A";
else if(nilakhir >= 68)
nilgrade = "B";
else if(nilakhir >= 56)
nilgrade = "C";
else if(nilakhir >= 49)
nilgrade = "D";
else
nilgrade = "E";
return nilgrade;
}
public void cetak()
{
System.out.println("Grade Nilainya = " + grade());
}
public static void main(String[] args)
{
Lat801 hasil = new Lat801(67);
hasil.cetak();
}
}
Output yang dihasilkan dari program Lat801.java diatas, seperti dibawah ini :
Gambar 8.1 Hasil Program Lat801.java
© 2009 – Frieyadie
123
Berikut penjelasan program Lat801.java, diatas :
a. Pada baris 10 sampai 13, mendeklarasikan pembuatan Constructor. Bisa anda lihat bahwa
nama methodnya sama dengan nama class yaitu sama-sama Lat801. Pada constractor Lat801
ini menangkap argumen yang dikirmkan dari main method.
b. Pada baris 39, terdapat pernyataan
Lat801 hasil = new Lat801(67);
digunakan untuk membuat objek dengan nama hasil, sekaligus mengirimkan argumen ke
consturctor.
8.2.1 Constructor Overloading
Overloading adalah suatu cara membuat lebih dari constructor pada suatu class. Supaya
pengaksesan constructor tersebut lancar, maka sebagai pembedanya adalah tipe parameter dan
atau jumlah parameternya. Untuk lebih jelasnya anda bisa lihat program dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* -------------------------------Nama File : lat802.java
Author
: Frieyadie
----------------------------------- */
class Lat802
{
float nilakhir, a;
Lat802(int nilai_akhir){
nilakhir = nilai_akhir;
}
Lat802(int nil1, int nil2){
nilakhir = ab + ac;
}
public String grade()
{
String nilgrade;
if(nilakhir >= 80)
nilgrade = "A";
else if(nilakhir >= 68)
nilgrade = "B";
else if(nilakhir >= 56)
nilgrade = "C";
else if(nilakhir >= 49)
nilgrade = "D";
else
nilgrade = "E";
return nilgrade;
}
public void cetak()
{
124
36
37
38
39
40
41
42
43
44
45
46
© 2009 – Frieyadie
System.out.println("Grade Nilainya = " + grade());
}
public static void main(String[] args)
{
Lat802 hasil = new Lat802(67);
hasil.cetak();
Lat802 hasilnya = new Lat802(45, 35);
hasilnya.cetak();
}
}
Output yang dihasilkan dari program Lat802.java diatas, seperti dibawah ini :
Gambar 8.2 Hasil Program Lat802.java
Berikut penjelasan program Lat802.java, diatas :
a. Pada baris 10 sampai 18, mendeklarasikan pembuatan 2 (dua) buah Constructor. Bisa anda
lihat bahwa nama methodnya masing-masing sama dengan nama class yaitu sama-sama
Lat802. Perbedaan pada masing-masing constructor hanya pada parameternya saja. Pada
constractor Lat802 ini menangkap argumen yang dikirmkan dari main method.
b. Pada baris 44 dan 46, terdapat pernyataan
Lat801 hasil = new Lat801(67);
Lat801 hasilnya = new Lat801(45, 35);
digunakan untuk membuat objek dengan nama hasil, sekaligus mengirimkan argumen ke
consturctor.
8.2.2 Method Overloading
Method Overloading adalah suatu cara membuat lebih dari method pada suatu class. Supaya
pengaksesan method tersebut lancar, maka sebagai pembedanya adalah tipe parameter dan atau
jumlah parameternya. Untuk lebih jelasnya anda bisa lihat program dibawah ini :
© 2009 – Frieyadie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
125
/* -------------------------------Nama File : lat803.java
Author
: Frieyadie
----------------------------------- */
class Perhitungan
{
static public int hitung(int a, int b)
{
return a + b;
}
static public double hitung(double a, double b, double c)
{
return (a + b)/c;
}
}
public class Lat803
{
public static void main(String[] args)
{
Perhitungan Ngitung = new Perhitungan();
int hitung;
double bagi;
hitung = Ngitung.hitung(4, 8);
bagi = Ngitung.hitung(55, 69, 2);
System.out.println("Hasil Perhitungan = " + hitung);
System.out.println("Hasil Pembagian
= " + bagi);
}
}
Output yang dihasilkan dari program Lat803.java diatas, seperti dibawah ini :
Gambar 8.3 Hasil Program Lat803.java
Berikut penjelasan program Lat802.java, diatas :
c. Pada baris 8 sampai 16, mendeklarasikan pembuatan 2 (dua) buah Method. Bisa anda lihat
bahwa nama methodnya sama dengan nama method yang lainnya, yaitu sama-sama hitung.
Perbedaan pada masing-masing method hanya pada parameternya saja. Pada method hitung
ini menangkap argumen yang dikirmkan dari main method.
126
© 2009 – Frieyadie
d. Pada baris 44 dan 46, terdapat pernyataan
hitung = Ngitung.hitung(4, 8);
bagi = Ngitung.hitung(55, 69, 2);
digunakan untuk mengirimkan nilai parameter ke masing-masing method yang dituju, dan
kemudian nilai baliknya ditampung kemasing-masing variabel, dimana parameter tersebut
dikirimkan.
8.3
Inheritance
Pewarisan, bahasa kerennya Inheritance. Dalam pemrograman berbasis objek, Inheritance
memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau
subClass, sehingga membentuk Class hirarki.
Inheritance merupakan suatu aspek atau pengarah pokok kecerdasan manusia untuk mencari,
mengenali, dan menciptakan hubungan antar konsep. Kita membangun hirarki, matriks, jaringan,
dan hubungan timbal balik lain untuk menjelaskan dan memahami tata cara di mana hal-hal
saling berhubungan.
Tanpa Inheritance, kelas-kelas merupakan sebuah unit berdiri sendiri. Inheritance, akan
membentuk suatu konsep dimana jika konsep yang diatas berubah, maka perubahan akan berlaku
dibawahnya.
Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas
menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua
di antara mereka akan dapat diakses oleh anggota fungsi dari kelas
Sebagai contoh, pada saat kita bicara mengenai Binatang, maka Binatang tersebut bisa
mewarsikan kepada Binatang yang lain berupa, usia, bobot, makan, tidur dan lain sebagainya.
© 2009 – Frieyadie
127
BINATANG
USIA
BOBOT
MACAN
MERAUNG
MENERKAM
Gambar 8.4. Merwariskan Class
Dilihat pada gambar diatas, Class Macan, akan mewariskan seluruh method dan variabel instan
dari Class Binatang yang bersifat public. Berarti Class Binatang disebut sebagai SuperClass atau
Class Induk dan Class Macan disebut sebagai SubClass atau Class Anak atau Class Turunan.
Terkadang akan menemukan dimana kondisi suatu nama method pada class anak sama dengan
nama method pada SuperClass nya, hal seperti ini disebut dengan Override.
8.3.1 Penentu Akses Pada Inheritance
Penentuan akses pada Inheritance ada tiga macam, yaitu :
a. Public
Penentuan akses berbasis Public, menyebabkan anggota dari public dari sebuah class utama akan
menjadi anggota public class turunan dan menyebabkan juga anggota protect class utama
menjadi anggota protect class turunan, tetapi untuk anggota class private tetap pada private class
utama.
b. Private
Penentu akses berbasis Private, menyebabkan anggota dari anggota public dari class utama akan
menjadi anggota protect class turunan, dan menyebabkan anggota dari class utama menjadi
anggota private dari class turunan. Anggota Private dari class utama tidak dapat diakses kecuali
oleh class utama.
c. Protected
128
© 2009 – Frieyadie
Penentu akses berbasis Protect, menyebabkan anggota dari anggota protect dan public dari class
utama akan menjadi anggota private dari class turunan. Anggota Private dari class utama selalu
menjadi anggota private class utama.
8.3.2 Mulai Melakukan Pewarisan
Untuk melakukan pewarisan suatu class, yang perlu diperhatikan, yaitu kita harus menggunakan
keyword extends. Extends digunakan untuk mendeklarasikan suatu class adalah turunan dari
class lainnya. Terpenting yang perlu diingat, sebuah class tidak diperbolehkan mempunyai lebih
dari satu class induk atau superclass.
Supaya lebih jelas bagaimana melakukan pewarisan suatu class, sekarang perhatikan beberapa
program dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* -------------------------------Nama File : Matematika.java
Author
: Frieyadie
----------------------------------- */
class Matematika
{
private int a, b;
public Matematika()
{
a = 1;
b = 2;
}
public int tambah()
{
return a + b;
}
public int kali()
{
return b * 3;
}
}
Setelah selesai, membuat program diatas, simpan dengan nama : Matematika.java. Pada class
Matematika, mempunyai 2 (dua) buah method, yaitu tambah dan kali dan 2 (dua) buah variabel
yaitu a dan b. Kemudian compile program Matematika.java terebut.
Kemudian, berdasarkan class Matematika diatas, sekarang kita akan buat sebuah class baru yang
merupakan class turunan dari class Matematika. Bentuk penulisan class turunan seperti dibawah
ini:
© 2009 – Frieyadie
129
class Nama_Class_Turuan extends Class_Induk
{
Badan class turunan
}
Penjelasan :
a. Nama_Class_Turunan, adalah nama class yang akan dibuat sebagai class turunan atau
subclass
b. Class_Induk, adalah class yang ditunjuk sebagai SuperClass untuk class turunan
Berikut contoh pembuatan subclass Hitungan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* -------------------------------Nama File : Hitungan.java
Author
: Frieyadie
----------------------------------- */
class Hitungan extends Matematika
{
private int x, y;
public Hitungan()
{
x = 1;
y = 2;
}
public Hitungan(int i, int j)
{
x = i;
y = j;
}
public int tambah()
{
return x + y;
}
public int kali()
{
return y * 3;
}
}
Pada program Hitungan.java, diperuntukan untuk melakukan proses perhitungan, jika diliha
disini terdapat 2 (dua) constuctor dan penggunaan method yang sama dengan method class
induknya. Lakukan compile program Hitungan.java.
Selanjutnya kita akan membuat program utama, untuk menampilkan hasil proses yang dilakukan
oleh class Matematika dan class Hitungan. Berikut program utamanya.
130
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
© 2009 – Frieyadie
/* -------------------------------Nama File : Lat804.java
Author
: Frieyadie
----------------------------------- */
class Lat804
{
public static void main(String[] args)
{
Hitungan ngitung = new Hitungan(5, 6);
System.out.println(" Hasil Pertambahannya = " + ngitung.tambah());
System.out.println(" Hasil Perkaliannya = " + ngitung.kali());
}
}
Program Lat804.java, kita bisa melakukan pengiriman nilai kedalam class Hitungan. Selanjutnya
memanggil method tambah() dan kali() untuk ditampilkan hasilnya.
Gambar 8.5. Hasil Program La804.java
a. Menggunakan Method SuperClass
Method yang berada didalam SuperClass juga bisa digunakan atau dipanggil dari SubClass nya.
Hal tersebut bisa dilakukan dengan menggunakan keyword super, yang memiliki pengertian
SuperClass. Bentuk penulisan penggunakan method SuperClass, seperti dibawah ini :
super.nama_method();
Untuk lebih jelasnya, sekarang bukalah program Hitungan.java, kemudian tambahkan, beberapa
perintah, seperti dibawah ini :
© 2009 – Frieyadie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
131
/* -------------------------------Nama File : Hitungan.java
Author
: Frieyadie
----------------------------------- */
class Hitungan extends Matematika
{
private int x, y;
public Hitungan()
{
x = 1;
y = 2;
}
public Hitungan(int i, int j)
{
x = i;
y = j;
}
public int tambah()
{
return (x + y) + super.kali();
}
public int kali()
{
return (y * 3 - super.tambah());
}
}
Sudah dijelaskan sebelumnya class Hitungan, merupakan class turunan dari class Matematika,
sekarang perhatikan pada baris 24, perintahnya ditambah menjadi
return (x + y) + super.kali();
Pada baris 29, juga tambahkan pula, menjadi :
return (y * 3) – super.tambah();
Kedua penambahan tersebut, yaitu memanggil method kali dan method tambah, yang berada
didalam SuperClass. Sekarang compile kembali program Hitungan.java dan running kembali
program Lat901.java.
Gambar 8.6. Hasil Program Lat804.java
132
© 2009 – Frieyadie
b. Menggunakan Constructor SuperClass
Constructor yang berada didalam SuperClass juga bisa digunakan atau dipanggil dari SubClass
nya. Hal tersebut bisa dilakukan dengan menggunakan keyword super, yang digunakannya
seperti pada saat menggunakan method. Bentuk penulisan penggunakan Constructor SuperClass,
seperti dibawah ini :
super(parameter1, parameter2, ..., parameter-n);
Untuk lebih jelasnya, sekarang bukalah program Hitungan.java, kemudian tambahkan, beberapa
perintah, seperti dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* -------------------------------Nama File : Aritmatika.java
Author
: Frieyadie
----------------------------------- */
class Aritmatika
{
private int a, b;
public Aritmatika(int x, int y)
{
this.a = x;
this.b = y;
}
public int kali()
{
return a * b;
}
public void hasil()
{
System.out.println("Nilai A = " + this.a);
System.out.println("Nilai B = " + this.b);
}
}
Program pertama diatas, kita anggap sebagai class induk yang akan dipergunakan pada subclass
pada program dibawah ini. Pada program diatas, terdapat sebuah constructor yang
mendeklarasikan nilai awal a dan b. Setelah itu compile lah program Aritmatika.java.
1
2
3
4
5
6
7
/* -------------------------------Nama File : Perhitungan.java
Author
: Frieyadie
----------------------------------- */
class Perhitungan extends Aritmatika
{
© 2009 – Frieyadie
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
133
protected int z;
public Perhitungan(int z, int x, int y)
{
super(x, y);
this.z = z;
}
public int Hitung()
{
return z + super.kali();
}
}
public void hasil()
{
System.out.println("Nilai Z = " + this.z);
super.hasil();
}
Program Perhitungan.java, sebagai class turunan dari class Aritmatika. Bisa anda perhatikan
pada baris 12, terdapat pemanggilan constructor SuperClass, yang berfungsi mengirimkan nilai
paramater x danb y, ke SuperClass Aritmatika.
Pada baris 18, terdapat pemanggilan method kali() dari SuperClass, pada proses ini nilai z akan
ditambahkan dari hasil perkalian yang berada didalam method kali().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* -------------------------------Nama File : Lat805.java
Author
: Frieyadie
----------------------------------- */
public class Lat805
{
public static void main(String[] args)
{
Perhitungan matematika = new Perhitungan(5, 4, 3);
matematika.hasil();
System.out.println("Hasil Perhitungannya = " + matematika.Hitung());
}
}
Pada program utama, membuat objek berdasarkan dari class perhitungan, dikarenakan yang akan
diproses adalah class turunan yaitu class Perhitungan, dan sekaligus mengirimkan nilai parameter
ke class Perhitungan.
Pada baris 11, juga terdapat pemanggilan method hasil() dari class Perhitungan, yang gunakanya
untuk menampilkan nilai-nilai yang ada pada class Perhitungan.
Pada baris 12, juga melakukan pemanggilan method Hitung(), yang akan ditampilkan hasil
perhitungannya.
134
© 2009 – Frieyadie
Sekarang simpanlah program Lat805.java diatas pada folder kerja anda masing-masing.
Kemudian compile dan running, maka akan tampil hasil program Lat805.java seperti dibawah
ini:
Gambar 8.7. Hasil Program Lat805.java
8.4
Polymorphism
Karakteristik dari polymorphism yaitu memungkinkan suatu objek dapat memiliki berbagai
bentuk atau banyak bentuk. Bentuk dari objek ini bisa sebagai Object dari Classnya sendiri atau
Object dari superClassnya.
Pada polymorphism kita akan sering menjumpai 2 (dua) istilah yang sering digunakan dalam
pemrograman berbasis objek, istilah tersebut yaitu :
a. Overloading.
Overloading yaitu menggunakan 1 (satu) nama objek untuk beberapa Method yang berbeda
ataupun bisa juga beda parameternya.
b. Overriding
Overriding akan terjadi apabila ketika pendeklarasian suatu Method subClass dengan nama
objek dan parameter yang sama dengan Method dari superClassnya.
1
2
3
4
5
6
7
8
9
10
11
/* -------------------------------Nama File : Binatang.java
Folder
: c:\LatihanJava
Author
: Frieyadie
----------------------------------- */
class Binatang
{
String namaBinatang;
Binatang()
{
}
© 2009 – Frieyadie
12
13
14
15
16
17
18
19
20
21
22
135
Binatang(String namaBinatang)
{
this.namaBinatang = namaBinatang;
}
public void cetakjenis()
{
System.out.println("Nama Binatang : "+ namaBinatang);
}
}
Pada program Binatang.java, terdapat constructor, untuk memberikan nilai awal. Berikutnya
buatlah class baru seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* -------------------------------Nama File : suara.java
Folder
: c:\LatihanJava
Author
: Frieyadie
----------------------------------- */
class suara extends Binatang
{
String suara;
suara()
{
super();
}
public void cetakjenis()
{
suara="Mengaum";
System.out.println("Suara : " + suara);
}
}
Pada program suara.java, sebagai subclass dari class binatang, juga terdapat constructor suara,
untuk memberikan nilai awal, dan terdapat overriding cetakjenis(). Berikutnya buatlah class
baru seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* -------------------------------Nama File : Binatang.java
Folder
: c:\LatihanJava
Author
: Frieyadie
----------------------------------- */
class jenisBinatang extends Binatang
{
String jenisBinatang;
jenisBinatang(String jenisBinatang)
{
super(jenisBinatang);
}
public void cetakjenis()
136
15
16
17
18
19
20
© 2009 – Frieyadie
{
super.cetakjenis();
jenisBinatang="Predator";
System.out.println("Jenis Binatang : " + jenisBinatang);
}
}
Pada program jenisBinatang.java, sebagai subclass dari class binatang, juga terdapat constructor
jenisBinatang, untuk memberikan nilai awal, dan terdapat overriding cetakjenis(). Berikutnya
buatlah class utama seperti dibawah ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* -------------------------------Nama File : Lat806.java
Folder
: c:\LatihanJava
Author
: Frieyadie
----------------------------------- */
class Harimau
{
public static void main(String[] args)
{
suara binatang = new suara();
jenisBinatang suara = new jenisBinatang("Harimau");
suara.cetakjenis();
binatang.cetakjenis();
}
}
Berikut hasil program Lat806, seperti dibawah ini :
Gambar 8.8. Hasil Program Lat806.java
© 2009 – Frieyadie
8.5
137
Latihan
Kerjakanlah soal latihan mengenai Constructor
1. Buatlah program menghitung luas dan keliling lingkaran, dengan menggunakan cara
constructor. Nilai Radius (R), dikirimkan ke constructor.
2. Buatlah program menghitung luas trapesium, dengan menggunakan cara constructor. Rumus
Luas Trapesium = 1/2 x (panjang atas + panjang bawah) x tinggi
Gunakan Method Constructor untuk mengerjakannya.
3. Kembangkanlah program constructor diatas. Nilai Akhir didapat dari hasil perhitungan nilai
UTS, nilai UAS, nilai Tugas dan Nilai Absensi. Adapun nilai UTS, nilai UAS, nilai Tugas
dan Nilai Absensi diinput dari keyboard.
4. Buatlah program untuk menghitung volume Silinder. Gunakan class lingkaran sebagai Super
Class dan Class Silinder sebagai SubClass. Nilai Radius diinput melalui keyboard.
5. Buatlah program untuk menghitung penjumlahan, pengurangan, perkalian dan pembagian
yang diturunkan dari class Matematika. Nilai Satu dan Dua diinput.
6. Buatlah program untuk menghitung nilai akhir dan mencari nilai grade dengan cara
Pewarisan. Gunakan class Ujian sebagai SuperClass dan Class UTS dan Class UAS sebagai
SubClass. Ketentuan lainnya nilai UTS dikali dengan 40% untuk mendapatkan nilai murni
UTS dan untuk mendapatkan nilai murni UAS yaitu 60% dikali dengan nilai UAS.
138
© 2009 – Frieyadie
Lembar ini Sengaja Dikosongkan
Bab 9:
Enkapsulasi
9.1
Kopetensi Dasar
Pada pembahasan Bab 9 ini penulis mengajak mendiskusikan mengenai pengkapsulan pada
Bahasa Pemrograman Java. Kopetensi dasar secara umum, agar mahasiswa/i atau pembaca bisa
mendeskripsikan dapat memahami menggunakan pengkalpsulan pada bahasa pemrograman Java.
Penulis berharap, diakhir pembahasan, para pembaca bisa :

Melakukan Enkapsulasi terhadap properti Class

Penggunaan Kontrol Akses Encapsulation
9.2
Apa Itu Enkapsulasi
Enkapsulasi,
bahasa
kerennya
Encapsulation.
Dalam
pemrograman
berbasis
objek,
Encapsulation merupakan suatu cara bagaimana menyembunyikan sedemikian rupa suatu proses
kedalam sistem, hal ini berguna untuk menghindari interferensi dari luar sistem dan juga lebih
untuk menyederhakanan sistem itu sendiri.
Kita ambil contoh, pada saat anda mengganti chanel TV menggunakan remote TV, apakah anda
mengetahui proses yang terjadi didalam TV tersebut ?, maka jawabannya tidak tau, dan anda pun
sebagai pembeli TV tidak mau dipusingkan dengan proses yang terjadi. Maka hal tersebut
menyederhakan sistem.
Pada Enkapsulasi, segala jenis pengkasesan properti class, harus melalui method, nah inilah cara
kerja encapsulasi, sehingga proses yang mencegah class variabel - class variabel yang sedang
dibaca, dimodifikasi oleh class lainnya.
© 2009 – Frieyadie
139
140
© 2009 – Frieyadie
9.3
Kontrol Akses Pada Enkapsulasi
9.3.1 Akses Default
Variabel atau metode bisa dideklarasikan tanpa kontrol akses modifier yang tersedia untuk setiap
kelas lainnya dalam satu paket. Java Class Library pada Java disusun dalam paket seperti
javax.swing seperti class window, terutama untuk digunakan dalam pemrograman GUI
(Graphical User Interface), dan java.util, yang berguna kelompok Class utilitas.
Setiap variabel dideklarasikan tanpa modifier dapat dibaca atau diubah oleh yang lain di kelas
satu paket. Metode apapun dapat dinyatakan dengan cara yang sama dan dapat dipanggil oleh
kelas lain dalam satu paket.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* -------------------------------Nama File : Lat1001.java
Author
: Frieyadie
----------------------------------- */
class hitung
{
int c = 8;
}
class Lat1001
{
public static void main(String[] args)
{
int hasil;
hitung tambah = new hitung();
System.out.println("Hasil Pertambahan = " + tambah.c);
}
}
Penjelasan :
Pada class hitung diatas tidak terdapat akses kontrol modifier yang digunakan. Kemudian pada
class Lat1001, variabel c, juga bisa langsung digunakan.
Berikut output yang dihasilkan dari program Lat1001.java
© 2009 – Frieyadie
141
Gambar 9.1. Hasil Program Lat901.java
9.3.2 Akses Private
Secara utuh menyembunyikan variabel atau metoda yang akan digunakan oleh kelas-kelas lain,
dengan menggunakan modifier private. Satu-satunya tempat dimana variabel-variabel atau
metoda-metoda ini dapat diakses yaitu dari dalam kelasnya sendiri.
Sebagai contoh variabel instan private, bisa digunakan oleh method-method didalam kelas
kepunyaan nya, akan tetapi bukan oleh object dari Class lainnya. Method Private dapat dipanggil
oleh metoda-metoda lain di dalam kelas mereka sendiri tetapi tidak bisa dipanggil oleh lainnya.
Variabel-variabel private akan bermanfaat pada 2 (dua) keadaan:
1. Apabila kelas-kelas lain tidak punya alasan untuk menggunakan variabelnya.
2. Apabila kelas lain bisa menghadirkan nilai dengan mengubah variabel pada satu cara yang
tidak sesuai.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* -------------------------------Nama File : Lat1002.java
Author
: Frieyadie
----------------------------------- */
class hitung
{
private int c = 8;
}
class Lat1002
{
public static void main(String[] args)
{
int hasil;
hitung tambah = new hitung();
System.out.println("Hasil Pertambahan = " + tambah.c);
}
}
142
© 2009 – Frieyadie
Di contoh kode ini, format variabel class hitung yaitu privae, maka sama sekali class-class
lainnya tidak bisa untuk mendapat kembali atau menetapkan nilainya secara langsung. Maka jika
dicompile, akan terjadi kesalahan seperti gambar dibawah ini :
Gambar 9.2. Pesan Kesalahan Akses Data Private
Cara untuk mengakses variabel c yang bersifat private, maka dengan cara menambahkan metode
yang digunakan untuk mengakses variabel tersebut. Modifikasi programnya seperti dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* -------------------------------Nama File : Lat1003.java
Author
: Frieyadie
----------------------------------- */
class hitung
{
private int c = 8;
public int getVAR()
{
return this.c;
}
}
class Lat1003
{
public static void main(String[] args)
{
int hasil;
hitung tambah = new hitung();
System.out.println("Nilai C = " + tambah.getVAR());
}
}
Maka dengan cara menambahkan method getVAR, sekarang variabel c, yang bersifat public bisa
diakses.
© 2009 – Frieyadie
143
Gambar 9.3. Hasil Pengaksesan Variabel Private
Menggunakan modifier private adalah cara utama suatu object mengencapsulaesi dirinya.
9.3.3 Akses Public
Dalam beberapa hal, anda mungkin ingin variabel atau metoda dalam suatu kelas untuk dengan
sepenuhnya tersedia bagi kelas lain yang ingin menggunakan. Sebagai contoh, class warna di
dalam paket java.awt, mempunyai variabel-variabel publik untuk warna-warna umum seperti
hitam. Variabel ini digunakan apabila suatu class ingin gunakan warna hitam, dan tidak perlu
punya kendali akses sama sekali.
proses kedalam sistem, hal ini berguna untuk menghindari interferensi dari luar sistem dan juga
lebih untuk menyederhakanan sistem itu sendiri.
Modifier public membuat suatu variabel atau metoda dengan sepenuhnya dapat diakses oleh
semua kelas. Kita sudah sering menggunakannya di dalam tiap-tiap aplikasi yang kita tertulis
sejauh ini, dengan statemen seperti berikut:
public static void main(String[] args)
{
//code here ...
}
Method main(), haruslah bersifat public, karena tidak akan bisa dipanggil oleh Java Interpreter
untuk menjalankan class. Oleh karena itu subclass menerima warisan, semua variabel dan
method dari suatu class.
144
© 2009 – Frieyadie
9.3.4 Akses Protected
Protected digunakan untuk membatasi variabel dan metoda untuk digunakan oleh dua kelompok
berikut, yaitu :

Sub Class dari satu Class

Class-class lain di dalam paket yang sama
Tingkat kendali akses ini bermanfaat jika kita ingin membuat itu lebih mudah untuk subclass
untuk diterapkan sendiri. Akses protected memberi subclass untuk menolong variabel atau
metoda, ketika suatu class yang bukan hubungannya berusaha untuk menggunakan hal tersebut.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* -------------------------------Nama File : Paket1.java
Folder
: c:\LatihanJava\Latpack
Author
: Frieyadie
----------------------------------- */
Package Latpack
public class Paket1
{
protected int a = 75;
public void info()
{
System.out.println("Ini Kelas Paket1");
}
}
Simpan dengan nama Packet1.java, kemudian compilelah file Paket1.java. Selanjutnya buatlah
class yang kedua, seperti dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* -------------------------------Nama File : Paket2.java
Folder
: c:\LatihanJava\Latpack
Author
: Frieyadie
----------------------------------- */
Package Latpack
public class Paket2
{
public void info()
{
System.out.println("Ini Kelas Paket2");
}
}
Simpan dengan nama Packet2.java, kemudian compilelah file Paket2.java. Selanjutnya buatlah
class yang ketiga, seperti dibawah ini:
© 2009 – Frieyadie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
145
/* -------------------------------Nama File : Lat1004.java
Folder
: c:\LatihanJava
Author
: Frieyadie
----------------------------------- */
import Latpack.Paket1;
import Latpack.Paket2;
public class Lat1004
{
public static void main(String[] args)
{
Paket1 objekPaket1 = new Paket1();
objekPaket1.info();
System.out.println("Nilai A = " + objekPaket1.a);
Paket2 objekPaket2 = new Paket2();
objekPaket2.info();
}
}
Penjelasan :
Pada program Paket1.java, terdapat deklarasi variabel
protected int a = 75;
Kemudian pada program Lat1004.java, terdapat pemanggilan secara langsung variabel a, dari
program Lat1004.java,
System.out.println("Nilai A = " + objekPaket1.a);
maka dalam hal ini, jika dicompile, maka akan terjadi error, seperti dibawa ini :
Gambar 9.4. Error pada Pengaksesan Langsung
Solusi yang bisa dilakukan yaitu dengan cara membuat method untuk pengaksesan variabel yang
menggunakan modifier proteced();
146
© 2009 – Frieyadie
9.4
Latihan
1. Buatlah program untuk menghitung volume Silinder. Gunakan konsep Enkapsulasi. Nilai
Radius diinput melalui keyboard.
2. Buatlah program untuk menghitung penjumlahan, pengurangan, perkalian dan pembagian
dengan mengunakan konsep Enkapsulasi. Nilai Satu dan Dua diinput.
3. Buatlah program untuk menghitung nilai akhir dan mencari nilai grade dengan cara
Pewarisan. Gunakan Konsep Enkapsulasi. Ketentuan lainnya nilai UTS dikali dengan 40%
untuk mendapatkan nilai murni UTS dan untuk mendapatkan nilai murni UAS yaitu 60%
dikali dengan nilai UAS.
Bab 10:
Package dan Interface
10.1 Kopetensi Dasar
Pada pembahasan Bab 10 ini penulis mengajak mendiskusikan mengenai Package dan Interface
pada Bahasa Pemrograman Java. Kopetensi dasar secara umum, agar mahasiswa/i atau pembaca
bisa mendeskripsikan dapat memahami menggunakan Package dan Interface pada bahasa
pemrograman Java.
Penulis berharap, diakhir pembahasan, para pembaca bisa :

Melakukan Pendeklarasian pembuatan Package dan Interface

Penggunaan Package dan Interface.
10.2 Package
Package berisi beberapa class-class yang terkait dalam tujuan, lingkup, atau yang disebabkan
oleh inheritance. Package akan lebih bermanfaat apabila, digunakan pada proyek-proyek aplikasi
yang besar dengan banyak class yang mungkin saling dihubungkan dengan inheritance. Sehingga
akan lebih menguntungkan dikelola didalam package.
10.2.1 Memulai Membuat Package
Untuk membuat package, diawali dengan kata kunci package kemudian diikuti dengan nama
packagenya. Berikut bentuk umum penulisan package :
package nama_package;
public class nama_class
{
//tubuh class
}
© 2009 – Frieyadie
147
148
© 2009 – Frieyadie
Dalam pembuatan package ini, yang perlu diperhatikan semua file yang dikelompokan dalam
package, harus disimpan didalam folder yang nama foldernya sama dengan nama packagenya.
Misalnya nama package nya LatPackage, berarti nama foldernya juga LatPackage.
Untuk latihan pertama pembuatan package, anda bisa mengikuti beberapa langkah seperti
dibawah ini :
1. Buatlah folder dengan nama LatPackage didalam folder latihan anda. Misalnya :
c:\LatihanJava\LatPackage.
2. Selanjutnya buatlah program, seperti dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* ----------------------------------------Nama File : Paket1.java
Folder
: c:\LatihanJava\LatPackage
Author
: Frieyadie
-------------------------------------------- */
package LatPackage;
public class Paket1
{
protected int a = 85;
public int getnilai()
{
return a;
}
public void info()
{
System.out.println("Ini Class Paket1");
}
}
Simpanlah file Paket1.java ini didalam folder LatPackage, yang telah anda buat diatas.
(c:\LatihanJava\LatPackage\Paket1.java)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* ----------------------------------------Nama File : Paket2.java
Folder
: c:\LatihanJava\LatPackage
Author
: Frieyadie
-------------------------------------------- */
package LatPackage;
public class Paket2
{
public void info()
{
System.out.println("Ini Class Paket2");
}
}
© 2009 – Frieyadie
149
Simpanlah file Paket2.java ini didalam folder LatPackage, yang telah anda buat diatas.
(c:\LatihanJava\LatPackage\Paket2.java).
Jika dilihat dari kedua contoh program diatas, diawal penulisan program terdapat perintah:
packate LatPackage;
Perintah ini menyatakan bahwa program Paket1.java dan Paket2.java, dikelompokan dalam
package bernama LatPackage dan kedua program tersebut dideklarasikan secara public.
10.2.2 Menggunakan Package
Untuk menggunakan anggota-anggota paket, hanya paket yang dideklarasikan secara public yang
dapat diakses dari luar paket di mana mereka itu buat.
Untuk menggunakan kelas dalam sebuah paket, anda dapat menggunakan salah satu dari tiga
teknik berikut:
1. Jika class yang akan digunakan didalam paket java.lang, misalnya System atau Date, maka
kita bisa secara langsung menggunakan nama class sebagai rujukan keclass tersebut.
2. Jika kelas yang akan menggunakan beberapa paket, anda dapat merujuk ke kelas dengan
memberi nama secara lengkap, termasuk nama paket, misalnya, java.awt.Font.
3. Untuk kelas-kelas yang sering digunakan dari paket lainnya, kita dapat mengimpor setiap
kelas atau seluruh paket kelas. Setelah kelas atau paket telah diimpor, kita dapat merujuk ke
kelas dengan nama kelasnya.
Untuk menggunakan package-package yang telah dibuat diatas, dengan menggunakan perintah :
import nama_package;
Berikut penggunaan package yang telah kita buat diatas.
1
2
3
4
5
6
7
8
9
10
11
/* ----------------------------------------Nama File : Lat1001.java
Folder
: c:\LatihanJava
Author
: Frieyadie
-------------------------------------------- */
import LatPackage.Paket1;
import LatPackage.Paket2;
public class Lat1001
{
public static void main(String[] args)
150
12
13
14
15
16
17
18
19
20
21
© 2009 – Frieyadie
{
Paket1 objekPaket1 = new Paket1();
objekPaket1.info();
System.out.println("Nilai A = " + objekPaket1.getnilai());
Paket2 objekPaket2 = new Paket2();
objekPaket2.info();
}
}
Kemudian simpanlah dengan nama Lat1001.java didalam folder LatihanJava pada driver C:
(c:\LatihanJava\Lat1001.java). Compile dan jalankan program Lat1001.java, maka akan tampil
seperti dibawah ini.
Gambar 10.1. Hasil Program Lat1001.java
10.3 Interface
Interface adalah satu kontrak dalam wujud koleksi metoda dan deklarasi-deklarasi tetap. Bila
suatu kelas menerapkan interface, maka hal tersebut untuk menerapkan semua metoda yang
dideklarasikan didalam interface.
Interface sering digunakan sebagai pengganti kelas abstrak walaupun tidak ada implementasi
secara default untuk menerima inheritance yaitu, tidak ada field-field dan tidak ada
implementasi-implementasi metoda secara default. Seperti kelas-kelas abstrak publik, interface
adalah jenis-jenis publik secara khusus, sehingga secara normal dideklarasikan di dalam file-file
dengan sendirinya, yaitu dengan nama yang sama sebagai interface dan nama file java.
Inteface pada java merupakan satu koleksi perilaku abstrak yang dapat diadopsi oleh kelas
manapun tanpa menerima inheritance dari suatu superclass.
© 2009 – Frieyadie
151
10.3.1 Membuat Interface
Untuk membuat interface, dengan cara mendeklarasikannya sama seperti mendeklarasikan class.
Pendeklarasian interface terlebih dahulu dengan kata kunci interface, seperti dibawah ini:
public interface nama_interface
{
//tubuh interface
}
Penjelasan :

Public bertujuan bahwa interface bisa diakses oleh class manapun, apabila tidak
dideklarasikan secara public, maka hanya bisa diakses oleh class-class yang berada didalam
satu paket yang sama saja.

Tubuh Inteface, berisikan konstanta dan method yang berada didalam interface.
Berikut contoh mendeklarasikan dan membuat interface.
interface Trayek
{
public static final String PERGI = "Blok M";
public static final String PULANG = "Ciledug";
}
public abstract void tarikpergi();
public abstract void tarikpulang();
10.3.2 Menggunakan Interface
Untuk menggunakan interface pada sebuah class, anda bisa dengen menggunakan kata kunci
implement, dengan bentuk penulisan seperti dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
/* ----------------------------------------Nama File : Lat1002.java
Folder
: c:\LatihanJava
Author
: Frieyadie
-------------------------------------------- */
interface Trayek
{
public static final String PERGI = "Blok M";
public static final String PULANG = "Ciledug";
public abstract void tarikpergi();
public abstract void tarikpulang();
152
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
© 2009 – Frieyadie
}
class Bus implements Trayek
{
private String statusBus = "Ciledug";
public void tarikpergi()
{
if(this.statusBus.equals(PULANG))
{
this.statusBus = PERGI;
System.out.println("Narik Ke Blok M");
}
else
{
System.out.println("Sudah Narik Ke Blok M");
}
}
public void tarikpulang()
{
if(this.statusBus.equals(PERGI))
{
this.statusBus = PULANG;
System.out.println("Narik Ke Ciledug");
}
else
{
System.out.println("Sudah Narik Ke Ciledug");
}
}
}
class Lat1002
{
public static void main(String[] args)
{
Bus MetroMini = new Bus();
MetroMini.tarikpergi();
MetroMini.tarikpergi();
MetroMini.tarikpulang();
MetroMini.tarikpulang();
}
}
Penjelasan Program :

Pada baris 6 – 13, telah dideklarasikan sebuah interface dengan nama Trayek. Pada interface
Trayek ini, terdapat pendeklarasian konstanta, yaitu PERGI dan PULANG. Konstanta ini
dapat dipergunakan secara langsung pada class Bus, seperti contoh pada pengimpelentasian
method tarikpergi() :
this.statusBus = PERGI;

Pada barus 15 – 45, telah dideklarasikan sebuah class dengan nama Bus menggunakan
interface Trayek.
© 2009 – Frieyadie
153
class Bus implements Trayek

Kompilasi dan Jalankan program Lat1002.java diatas, maka akan tampil seperti gambar
dibawah ini :
Gambar 10.2. Hasil program Lat1002.java
10.4 Latihan
1. Buatlah Program hitung luas dan keliling lingkaran. Buatlah sebuah package, yang
digunakan untuk melakukan proses perhitungan luas dan keliling lingkaran tersebut. Nilai
Radius diiinput dari main method (program utamanya).
2. Buatlah program untuk menhitung nilai akhir. Buatlah sebuah package, yang akan digunakan
untuk menghitung nilai akhir tersebut. Nilai-Nilai yang diinput yaitu : Nilai Tugas Mandiri,
Nilai Quis dan Nilai Ujian. Adapun ketentuan persentasi nilai sebagai berikut :



Nilai Murni Tugas Mandiri didapat dari 25% Nilai Tugas Mandiri
Nilai Murni Quis didapat dari 30% Nilai Quis
Nilai Murni Ujian didapat dari 45% Nilai Ujian
154
© 2009 – Frieyadie
Lembar ini sengaja dikosongkan
Bab 11:
Penanganan Eksepsi
11.1 Kopetensi Dasar
Pada pembahasan Bab 11 ini penulis mengajak mendiskusikan mengenai penanganan Eksepsi
pada Bahasa Pemrograman Java. Kopetensi dasar secara umum, agar mahasiswa/i atau pembaca
bisa mendeskripsikan dapat memahami penanganan Eksepsi pada bahasa pemrograman Java.
Penulis berharap, diakhir pembahasan, para pembaca bisa :

Melakukan Penanganan Eksepsi

Menggunakan try, throw dan catch untuk mendeteksi, menandai adanya dan penanganan
eksepsi secara berturut-turut.
11.2 Apa Itu Penanganan Eksepsi
Eksepsi adalah suatu indikasi masalah yang terjadi selama pelaksanaan program atau eksekusi
program. Nama "Exception" menyiratkan bahwa masalah jarang terjadi jika “aturan” suatu
statemen secara normal dilaksanakan dengan tepat, maka eksepsi digunakan untuk “mengatur”
masalah yang terjadi.
Penanganan eksepsi memberdayakan para programmer untuk membuat aplikasi-aplikasi yang
dapat memecahkan atau menangani eksepsi-eksepsi. Dalam banyak kesempatan, menangani
Eksepsi mengijinkan suatu program untuk melanjut jalannya program, seolah-olah tidak ada
masalah.
© 2009 – Frieyadie
155
156
© 2009 – Frieyadie
11.3 Memulai Penanganan Eksepsi
Didalam penanganan eksepsi ini, ada hal yang perlu diketahui, yaitu menangkap eksepsi. Untuk
menangkap eksepsi dengan menggunakan pernyataan try. Bentuk Penulisan memiliki 2(dua)
bentuk penulisan.
a. Bentuk penulisan Penanganan Eksepsi yang pertma :
try
{
//blok penangkap eksepsi
}
catch(parameter Eksepsi)
{
//blok jika terjadi eksepsi
}
Berikut contoh Penanganan Eksepsi seperti dibawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* -------------------------------Nama File : Lat1101.java
Author
: Frieyadie
----------------------------------- */
import java.util.Scanner;
class Lat1101
{
public static void main(String[] args)
{
int a, b;
double c=0;
Scanner input = new Scanner(System.in);
System.out.print("Nilai A = ");
a = input.nextInt();
System.out.print("Nilai B = ");
b = input.nextInt();
try
{
c = a / b;
}
catch (Exception e)
{
System.err.println("\nTidak Bisa Dibagi 0");
}
System.out.println("\nNilai C = " + c);
}
}
© 2009 – Frieyadie
157
Penjelasan Program :
Pada blok try, terdapat proses perhitungan, dimana untuk menangkap apakah pembagian tersebut
sesuai atau tidak, disini nilai pembagi tidak diperkenankan bernilai 0 (nol).
Abila nilai pembagi bernilai 0 (nol), maka terjadi eksepsi. Selanjutnya pada blok catch yang akan
dijalankan dengan menampilkan pesan “Tidak Bisa dibagi 0”.
Berikutnya kompilasilah dan jalankan program diatas, maka akan tampil seperti dibawah ini :
Gambar 11.1. Pemasukan Data Secara Normal
Berikutnya coba anda masukan nilai b sebagai pembagi dengan nilai 0 (nol), maka akan tampil
seperti dibawah ini:
Gambar 11.2. Terjadi Eksepsi pada saat nilai b dimasukan dengan 0 (nol)
b. Bentuk penulisan Penanganan Eksepsi yang pertma :
try
{
//blok penangkap eksepsi
}
catch(tipeEksepsi ObjekEksepsi)
{
//blok jika terjadi eksepsi
}
157
158
© 2009 – Frieyadie
finally
{
//blok akhir yang akan dieksekusi setelah blok try dan catch
}
Pernyataan finally bermanfaat diluar eksepsi. Hal ini dapat melakukan clean-up kode setelah
pernyataan return, break atau continue didalam perulangan. Berikut contoh program dengan
pemakaian pernyataan finally.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* -------------------------------Nama File : Lat1102.java
Author
: Frieyadie
----------------------------------- */
import java.util.Scanner;
class Lat1101
{
public static void main(String[] args)
{
int a, b;
double c=0;
Scanner input = new Scanner(System.in);
System.out.print("Nilai A = ");
a = input.nextInt();
System.out.print("Nilai B = ");
b = input.nextInt();
try
{
c = a / b;
}
catch (Exception e)
{
System.err.print("\nTidak Bisa Dibagi 0 atau ");
System.err.println(e.getMessage());
}
finally
{
System.err.print("\nPembagian telah Dilakukan ... ");
}
System.out.println("\nNilai C = " + c);
}
}
Berikut hasil eksekusi program Lat1102.java.
© 2009 – Frieyadie
159
Gambar 11.3. Hasil Pembagian Pertama
Dilihat dari eksekusi program Lat1102.java, diatas proses pembagian dilaksanakan secara
normal, dan blok finally juga dijalankan dan ditampilkan. Berikut hasil eksekusi dengan
pemasukan data, yang tidak diinjinkan.
Gambar 11.4. Hasil Pembagian Kedua
Dari pemasukan data Nilai A = 48 dan Nilai B = 0, maka blok catch, dijalankan dan blok finnaly
juga tetap dilakankan. Hal ini menunjukan bahwa finnaly, akan selalu dijalankan, walaupun
waktu terjadi eksepsi maupun tidak terjadi eksepsi.
11.4 Multi Catch
Java mengijinkan penggunaan multi catch, yang bisa mengetahui adanya kemungkinankemungkinan kesalahan dan jenis kesalahan yang akan terjadi. Class yang digunakan untuk
penanganan eksepsi yaitu Throwable, class ini adalah class tertinggi untuk penanganan eksepsi.
Class Throwable terdapat 2(dua) subclass, yaitu Error dan Exception.
Subclass Error, biasanya digunakan untuk penanganan kesalahan seperti :
159
160
© 2009 – Frieyadie
a. OutOfMemmoryError (Error karena Kehabisan Memori)
b. StackOverflowError (Error karena Tumpukan Melebihi Kapasitas)
Subclass Exception, biasanya digunakan untuk penanganan kesalahan seperti :
a. IOExcetion (Kesalahan pada Input/Output)
b. InterruptedException (Kesalahan adanya Interupsi Program).
c. NumberFormatExcetion (Kesalahan pada Format Angka)
Masih banyak sekali subclass Exception, mungkin anda bisa baca lebih lanjut pada Java
Document. Berikut contoh penerapan Multi Catch.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* -------------------------------Nama File : Lat1103.java
Author
: Frieyadie
----------------------------------- */
import java.util.Scanner;
class Lat1103
{
public static void main(String[] args)
{
String a;
int b;
Scanner input = new Scanner(System.in);
System.out.print("Masukan Suatu Nilai = ");
a = input.next();
try
{
b = Integer.parseInt(a);
System.out.println("Nilai
yang anda input adalah Benar, berupa
Angka");
}
catch (NumberFormatException e)
{
System.out.println("Oops! Salah, itu sih " + e.getMessage());
}
catch (Exception e)
{
System.out.println("Input/output error");
System.out.println(e.getMessage());
}
catch (Throwable e)
{
System.out.println("Program interrupted");
System.out.println(e.getMessage());
}
}
}
© 2009 – Frieyadie
161
Pada program diatas, digunakan untuk melakukan pengecekan, apakah nilai yang diinputkan
tersebut berupa angka atau String. Terlihat pada catch terakhir terdapat class Throwable, yang
bertujuan untuk menangkap eksepsi lain yang tidak tertangkap pada eksepsi yang diletakkan
atasnya. Berikut hasil eksekusi program jika nilai yang dimasukan benar.
Gambar 11.5. Hasil Pemasukan Data Benar
Berikut hasil eksekusi program jika nilai yang dimasukan salah.
Gambar 11.6. Hasil Pemasukan Data Salah
11.5 Melempar Eksepsi
Untuk keperluan melempar eksepsi ini java menyediakan pernyataan throw, untuk keperluan ini.
Berikut bentuk penulisan pernyataan throw.
throw variabelObjek;
Variabel Objek adalah variabel objek yang berupa suatu class eksepsi. Pada saat penggunaan
throw, maka pembacaannya dengan menggunakan try dan catch. Berikut contoh penerapannya:
1
2
3
4
5
6
7
8
/* -------------------------------Nama File : Lat1104.java
Author
: Frieyadie
----------------------------------- */
import java.util.Scanner;
class Lat1104
161
162
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
© 2009 – Frieyadie
{
public static void main(String[] args)
{
String a;
int b;
Scanner input = new Scanner(System.in);
System.out.print("Masukkan Suatu Nilai = ");
a = input.next();
try
{
b = Integer.parseInt(a);
System.out.println("Nilai yang anda input Sudah Benar ");
}
catch (NumberFormatException nf)
{
nf = new NumberFormatException();
throw(nf);
}
}
}
Penjelasan Program :
Pada baris program 21, terdapat pernyataaan :
b = Integer.parseInt(a);
Pernyataan tersebut adalah menyatakan penkonversiaan nilai String ke integer. Eksepsi yang ada
pada catch yaitu NumberFormatException.
Pada baris 21, terdapat pernyataan :
nf = new NumberFormatException();
Pernyataan tersebut untuk mengganti keterangan kesepsi, dan pernyataan
throw(nf);
Berguna untuk melakukan melemparkan eksepsi. Hasil dari program Lat1104.java diatas, seperti
gambar dibawah ini, jika nilai yang dimasukan berupa string.
Gambar 11.7. Hasil Pemasukan Berupa Data String
© 2009 – Frieyadie
163
11.6 Penggunaan throws Pada Method
Kata kunci throws, digunakan untuk menginformasikan, kemungkinan method akan terjadi
eksepsi. Berikut bentuk penulisan penggunaan throws pada method.
public namaMethod(parameter)throws jenisException
{
Blok method dengan eksepsi
}
Beriku contoh program pennggunaan throws pada mehtod.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* -------------------------------Nama File : Lat1105.java
Author
: Frieyadie
----------------------------------- */
class KelasAja
{
public void MetodePertama()
{
System.out.println("Kelas Pertama Tidak Menggunakan Eksepsi!");
}
public int MetodeKedua(int f) throws NumberFormatException
{
return f + 5;
}
}
class Lat1105
{
public static void main(String[] args)
{
int hasil=0;
KelasAja ObjekKelas = new KelasAja();
ObjekKelas.MetodePertama();
//penggunaan metode dengan eksepsi
try
{
hasil = ObjekKelas.MetodeKedua(5);
}
catch (NumberFormatException e)
{
System.out.println("Adanya Kesalahan");
}
System.out.println("Nilai Hasil dengan throws = "+hasil);
}
}
Hasil dari program Lat1105.java diatas, seperti gambar dibawah ini:
163
164
© 2009 – Frieyadie
Gambar 11.8. Hasil program Lat1105.java
Download