Anda di halaman 1dari 77

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.

net
Halaman 1

Pemrograman Java
Oleh: Rosihan Ari Yuana, S.Si, M.Kom
(http://blog.rosihanari.net)

Tentang Java
Java adalah bahasa pemrograman dan platform komputasi pertama kali dirilis oleh Sun
Microsystems pada tahun 1995. Java merupakan teknologi yang mendasari kekuatan program
untuk utilitas, permainan, dan aplikasi bisnis. Java beralan pada lebih dari !5" uta komputer
pribadi di seluruh dunia, dan pada miliaran perangkat di seluruh dunia, termasuk ponsel dan
perangkat #$.

Salah satu karakteristik Java adalah portabilitas, yang berarti bah%a program komputer yang
ditulis dalam bahasa Java harus dialankan secara sama, pada setiap hard%are & platform sistem
operasi. Hal ini dicapai dengan menyusun kode bahasa Java ke sebuah Java bytecode. 'engguna
aplikasi biasanya menggunakan Java (untime )nvironment *J()+ diinstal pada mesin mereka
sendiri untuk menalankan aplikasi Java, atau dalam bro%ser %eb untuk applet Java.

,ntuk pembuatan dan pengembangan aplikasi berbasis Java diperlukan Java -evelopment .it
*J-.+, dimana saat ini pemilik lisensi dari J-. adalah /racle 0orporation yang telah secara resmi
mengakuisisi Sun Microsystem pada a%al tahun 1"1". 2da beberapa Java platform untuk
keperluan development, yaitu3
4 Java S) *Standard )dition+, yang khusus digunakan untuk pengembangan aplikasi4
aplikasi pada '0 atau %orkstation.
4 Java M) *Micro )dition+, yaitu khusus digunakan untuk pengembangan aplikasi4aplikasi
yang ada di perangkat mobile spt H', smartphone, '-2, tablet dsb.
4 Java )) *)nterprise )dition+, yaitu khusus digunakan untuk pengembangan aplikasi skala
besar *enterprise+, dan aplikasi %eb berbasis ava.
Instalasi Java Development Kit
-alam tutorial ini hanya akan dibahas pengembangan aplikasi Java yang nantinya digunakan khusus di
'0&%orkstation. Sehingga untuk keperluan ini, kita cukup menggunakan Java S) sebagai J-. nya.
'erangkat yang dibutuhkan untuk pembuatan aplikasi Java3
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman

4 !a"a (S# $ Stan%ar% #%ition) De"elopment Kit.
J-. adalah suatu paket perangkat yang digunakan untuk membangun aplikasi, applet, dan
komponen menggunakan bahasa Java. 5erikut ini perangkat yang ada di dalam sebuah J-.3
development tools , Java runtime environtment *J()+, library, Java -5 *Java relational database+,
demo aplikasi dan applet, serta contoh4contoh program.
4 !a"a De"elopment &D# *6ntegrated -evelopment )nvironment+, misal3 7et5eans atau eclipse.


5erikut ini langkah instalasinya3
1. ,nduh keduanya *J-. dan 7et5eans+ sekaligus di3
http3&&%%%.oracle.com&technet%ork&ava&avase&do%nloads&inde8.html
1. 'ilih J-. 9 7etbeans

:. 'ilih platform sistem operasi yang sesuai

.eterangan3
;indo%s 8<= adalah untuk sistem operasi ;indo%s <= bit.
=. Jalankan instalasi J-. dan 7etbeans hasil do%nload

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '


.lik 7)>#


'ilih ?6 accept the terms in the license agreement, 6nstall J,nit@, .lik 7)>#
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman (


#entukan '2#H untuk lokasi instalasi J-..


#entukan '2#H untuk 7et5eans 6-)
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman )


.eterangan3 Hilangkan tanda cek pada ?0heck for updates@

5. .lik 67S#2AA dan tunggu sampai instalasi selesai
Membuat Program Java Pertama
'ada bab ini kita akan mencoba membuat program Java untuk yang pertama kalinya.
Example 1:
'rogram ini nanti hanya sekedar menampilkan sebuah pesan ?Hello ;orld@. 5erikut ini langkah
pembuatannya3
1. Jalankan *et+eans


#ampilan a%al 7et5eans
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,


1. .lik menu B6A) C 7); '(/J)0#, setelah itu akan muncul '(/J)0# ;6D2(- yang memudahkan
2nda untuk membuat Java 'roect
:. 'ada bagian 02#)E/(6)S, pilih J2$2, pada bagian '(/J)0# pilih J2$2 2''A602#6/7


=. .lik 7)>#
5. 5eri nama 'roectnya, misalnya3 0ontoh1, serta tentukan path untuk menyimpan proectnya.
-alam contoh ini, misalnya file proect disimpan di -3&Java2pp. 'astikan folder ?Java2pp@
tersebut sudah dibuat sebelumnya.


<. .lik B676SH
F. Setelah itu 7et5eans secara otomatis menyiapkan sebuah source program yang sudah lengkap
strukturnya, dan tinggal 2nda tambahkan beberapa perintah sesuai keinginan pada bagian

// TODO code application logic here

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -



#empat menyisipkan perintah yang diinginkan

!. Selanutnya silakan tambahkan perintah berikut ini, untuk menampilkan pesan ?Hello ;orld@.
System.out.println("Hello World");
Sehingga tampilan source 0ontoh1.ava menadi sbb3


9. 0ek apakah ada tanda seru %arna merah di sisi sebelah kiri source. Jika tanda ini muncul maka
menandakan ada sintaks yang salah pada baris tersebut.


0ontoh tampilan pesan kesalahan pada suatu baris program.
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman .

,ntuk mengetahui apa kesalahannya, cukup dekatkan saa kursor pada tanda seru %arna merah
tersebut.


,ntuk melihat ada tidaknya kesalahan sintaks, bisa uga dilakukan proses 0/M'6A), dengan cara
mengklik menu (,7 C 0/M'6A). 'roses 0/M'6A) hanya bisa dilakukan sekali saa.
1". .ita bisa melihat tampilan program Java yang sudah dibuat dengan mengklik menu (,7 C (,7
'(/J)0#.



11. Setelah kita melihat hasil running aplikasi Java kita, selanutnya kita melakukan proses 5,6A-
supaya dihasilkan file aplikasi Java yang e8ecutable. Hasil proses 5,6A- ini berupa file G.ar.
,ntuk melakukan proses 5,6A- suatu proect, caranya klik (,7 C 5,6A- '(/J)0#. Hasil dari
proses 5,6A- proect ini *G.ar+, secara otomatis akan tersimpan di folder ?dist@, dalam contoh ini
di dalam direktori D:/!a"aApp/0ontoh1/%ist.
Sedangkan source code nya sendiri tersimpan di direktori D:/!a"aApp/0ontoh1/sr1.

11. Selanutnya, file Java )8ecutable Bile *G.ar+ bisa kita eksekusi via command prompt dengan
perintah
java -jar "D:/JavaApp/Contoh1/dist/Contoh1.jar"



.eterangan3
,ntuk pembuatan aplikasi Java dengan E,6 *Eraphics ,ser 6nterface+ akan dibahas pada bab yang lain.
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 2

Tipe Data Dalam Java
Sebagai mana bahasa pemrograman yang lain, di dalam Java uga dikenal istilah tipe data. #ipe data ini
digunakan untuk pengalokasian memory guna menyimpan nilai&valuenya.
-i dalam Java, ada beberapa tipe data sebagai berikut3
3ipe Data Range nilai Keterangan
5yte 411! ... 11F 5ilangan bulat
Short 4:1F<! ... :1F<F 5ilangan bulat
6nt 4 11=F=!:<=! ... 11=F=!:<=F 5ilangan bulat
Aong 4911::F1":<!5=FF5!"! ... 911::F1":<!5=FF5!"F 5ilangan bulat
Bloat 5ilangan riil
-ouble 5ilangan riil
0har .arakter
String String *beberapa karakter+
5oolean true&false 4

5erikut ini contoh program Java untuk menyimpan nilai beberapa tipe data3
Example 2:
Misalkan kita buat proect dengan nama ?0ontoh:@. Aangkahnya adalah3
1. .lik 7); '(/J)0#



1. 'ilih J2$2 pada 0ategories dan J2$2 2''A602#6/7 pada 'roects.
:. 6sikan nama proectnya dengan nama ?0ontoh:@



=. .emudian tulis kode berikut ini
package contoh3;

public class Contoh3 {
public static void main(String[] args) {
// deklarasi variabel dan tipe datanya
int gajiPokok;
float potonganGaji, gajiBersih;
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 14

String namaKaryawan, kodeKaryawan;
char golDarah;

// assignment nilai pada setiap variabel
kodeKaryawan = "K00001";
namaKaryawan = "ROSIHAN ARI YUANA";
golDarah = 'A';
gajiPokok = 3000000;
potonganGaji = (float) 0.2;
gajiBersih = gajiPokok - (potonganGaji * gajiPokok);

// tampilkan output
System.out.println("KODE KARYAWAN : "+kodeKaryawan);
System.out.println("NAMA KARYAWAN : "+namaKaryawan);
System.out.println("GOL DARAH : "+golDarah);
System.out.println("GAJI POKOK : Rp. "+gajiPokok);
System.out.println("GAJI BERSIH : Rp. "+gajiBersih);
}
}
/utput dari proect ini adalah sbb3


Operator di Java
/perator adalah suatu simbol atau tanda yang digunakan untuk mengoperasikan dua value atau lebih
untuk mendapatkan hasil.
Jenis-jenis Operator di Java
5erikut ini beberapa enis operator yang dikenal dalam bahasa Java
Operator Aritmatika
Simbol Operator Keterangan
9 'enumlahan
4 'engurangan
G 'erkalian
& 'embagian
H Modulus *sisa hasil bagi+

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 11

Operator Logika
Simbol Operator Keterangan
I Aogika 27-
J Aogika /(
K Aogika >/(
L Aogika 7/#

Operator IncrementDecrement
Simbol Operator Keterangan
99 $alue bertambah 1
44 $alue berkurang 1

Operator !elasional
Simbol Operator Keterangan
M
Aebih kecil dari
N
Aebih besar dari
NO
Aebih besar atau sama dengan dari
MO
Aebih kecil atau sama dengan dari
O O
Sama dengan
LO
#idak sama dengan

Operator Majemuk
Simbol Operator Keterangan
9O 0ontoh3 a 9O 1, ekuivalen dg a O a 9 1
4O 0ontoh3 a 4O 1, ekuivalen dg a O a 4 1
GO 0ontoh3 a GO 1, ekuivalen dg a O a G 1
&O 0ontoh3 a &O 1, ekuivalen dg a O a & 1
HO 0ontoh3 a HO 1, ekuivalen dg a O a H 1

Konsep Pemrograman Dalam Java "#$
'emrograman Java menggunakan konsep 'emrograman 5erorientasi /byek *'5/+ atau /bect /riented
'rogramming *//'+. Semua program Java merupakan suatu obyek. -asar4dasar //' meliputi istilah
berikut ini3
4 0lass
4 /bect
4 2ttribute
4 Method

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1

Secara umum, //' adalah teknik yang memfokuskan desain program pada obyek dan class berdasarkan
pada skenario di dunia nyata. Sebagai contoh, misalkan mobil. Sebuah mobil secara umum tentunya
memiliki beberapa karakteristik, yaitu misalnya memiliki seumlah roda, memiliki %arna, memiliki
beberapa pintu dsb. Selanutnya mobil ini bisa terdapat berbagai macam merek, misalnya mobil SuPuki
)rtiga, #oyota 2vanPa dsb. Sebuah mobil tentunya uga bisa dialankan, baik mau maupun mundur atau
dihentikan. -alam //', mobil tersebut identik dengan 0lass, mobil SuPuki )rtiga, 2vanPa dll itu
merupakan obyek. Jumlah roda, %arna mobil, umlah tempat duduk dll identik dengan atribut dari suatu
obyek, serta proses untuk mengendalikan mobil *mau, mundur dan berhenti+ itu dalam //' identik
dengan method dari suatu obyek.
Manfaat dari pemrograman yang menggunakan teknik //' ini adalah kebebasan pengembangan,
meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan
meningkatkan penggunaan kembali soft%are.
%lass
0lass adalah model dari suatu obyek yang menelaskan karakteristik *sifat+ serta fungsi yang dimiliki dari
suatu obyek. 0lass merupakan %adah *tempat+ yang digunakan untuk menciptakan suatu obyek. -engan
kata lain sebuah 0lass merupakan blueprint dari suatu obyek.
5erikut ini adalah aturan pembuatan class dalam Java3
public class namaclass
{
.
.
}
2turan pemberian nama class3
4 -imulai dengan huruf, atau tanda Q atau tanda R
4 #idak boleh menggunakan reserved %ord dalam Java
4 #idak boleh memuat operator aritmatika
4 5ersifat case sensitive
/leh karena itu, ika diperhatikan ketika membuat proect baru, maka secara otomatis akan dibuat class
sesuai nama proectnya. Misalkan 2nda membuat proect baru dengan nama ?proect1@, maka secara
otomatis akan dibuat class dengan nama ?'roect1@.
public class Project1 {
.
.
.
}
-alam sebuah proect, kita dapat membuat lebih dari satu class sebanyak kebutuhan.
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1'

Atribut
2tribut adalah elemen data dari suatu class. 2tribut menyimpan informasi tentang class. 2tribut dapat
diartikan sebagai data, variabel, properti atau sebuah field.
Met&od
Method adalah sebuah function atau fungsi yang ada dalam suatu class. Setiap method memiliki tugas
sendiri. -i dalam Java ada 1 enis method yaitu void dan non void method. Method $oid adalah method
yang tidak mengembalikan nilai, sedang non void method adalah method yang mengembalikan suatu
nilai.
Jika 2nda perhatikan pula ketika membuat proect baru misalnya ?proect1@, maka akan di dalam class
?proect1@ ini akan dibuat pula method dengan nama main*+.
public class Project1 {

public static void main(String[] args) {
.
.
}
}
Method main*+ dalam suatu class menunukkan method tersebut adalah method utama yang akan
dialankan pertama kali ketika program Java dialankan. .husus method main*+, perlu diberikan ?static@
setelah modifiernya.
'ada suatu class, kita bisa membuat method berapapun semau kita.
'erlu diingat uga bah%a di dalam Java, beberapa class itu bisa digabung atau disimpan menadi satu
dalam sebuah paket atau package ika diperlukan. Hal ini dimaksudkan untuk memudahkan pengelolaan
class saa.
Example 3:
Sebagai contoh dari penerapan konsep //' dalam pemrograman Java, misalkan kita akan membuat
sebuah program untuk menumlahkan dua buah bilangan.
,ntuk langkah a%al, kita desain terlebih dahulu bentuk class untuk penumlahan bilangan tersebut.
Misalkan kita buat class dengan nama ?operasi5ilangan@. -i dalam class tersebut, misalkan kita buat
atribut yaitu ?bilangan1@ dan ?bilangan1@, merupakan kedua bilangan yang akan dioperasikan, serta ?hasil@
yang merupakan hasil dari operasi kedua bilangan. Selanutnya di dalam class ?operasi5ilangan@ tersebut
kita buat sebuah method ?umlah@ untuk menumlahkan kedua bilangan, serta method untuk
menampilkan hasil operasi bilangan.
Sesuai desain class tersebut, sekarang kita implementasikan di Java. 5erikut ini langkah4langkahnya3
1. .lik 7); '(/J)0#

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1(



1. 'ilih ?J2$2@ pada 0ategories, dan ?Java 2pplication@ pada ?'roect@
:. Misalkan untuk 7ama 'roect, kita beri nama ?contoh1@



=. Setelah pembuatan proect ?contoh1@ ini berhasil, maka secara otomatis akan muncul package
dengan nama ?contoh1@




5. Selanutnya, kita buat 0lass dengan nama ?operasi5ilangan@ dalam package ?contoh1@ tersebut
yaitu dengan mengklik kanan pada nama package nya, lalu pilih 7);, dan pilih J2$2 0A2SS



<. 6sikan ?operasi5ilangan@ pada isian nama class yang akan dibuat

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1)



F. Setelah membuat class ?operasi5ilangan@, maka secara otomatis Java akan membuat file dengan
nama ?operasi5ilangan.ava@ pada direktori proect. 0lass ?operasi5ilangan@ ini terletak dalam
package ?contoh1@. -an tugas kita kemudian akan menulis kode dalam class operasi5ilangan
tersebut.



!. #ulislah kode berikut ini di dalam class operasi5ilangan
public class operasiBilangan {

// deklarasi atribut atau properties
public int bilangan1;
public int bilangan2;
private int hasil;

// method jumlah()
public void jumlah()
{
this.hasil = this.bilangan1 + this.bilangan2;
}

// method tampilHasil()
public void tampilHasil()
{
System.out.println("Hasil operasi bilangan : " + this.hasil);
}
}
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1,

.eterangan3
4 5ilangan1, bilangan1 dan hasil merupakan atribut atau properties dari class
operasi5ilangan. Sedangkan umlah*+ dan tampilHasil*+ adalah methodnya.
4 'erhatikan, di depan atribut atau method ada ?public@ atau ?private@. Jika diberikan
?public@ maka atribut atau method tersebut bisa diakses dari class manapun *ika
terdapat lebih dari satu class+. 7amun ika ?private@, maka atribut atau method hanya
bisa diakses di dalam class itu saa. Selain ?public@ dan ?private@ sebuah atribut atau
method bisa uga diset dengan sifat ?protected@ yang artinya hanya bisa diakses dalam
class itu saa ata class lain yang masih dalam satu package yang sama. .eterangan
?public@, ?private@ dan ?protected@ dalam //' disebut modifier yang digunakan untuk
menentukan aksesibilitas method atau atribut.
4 'erintah ?this.@ digunakan untuk mengakses atribut atau method yang ada dalam class
tersebut.

9. .emudian, di class ?0ontoh1@ nya *di file ?0ontoh1.ava@+ kita tulis kode program sebagai berikut
public class Contoh2 {

public static void main(String[] args) {

operasiBilangan op1 = new operasiBilangan();

op1.bilangan1 = 10;
op1.bilangan2 = 20;
op1.jumlah();
op1.tampilHasil();

}
}

.eterangan3

'erintah
operasiBilangan op1 = new operasiBilangan();
digunakan untuk instantisasi, yaitu proses membuat obyek baru dengan nama ?op1@. /byek ini
termasuk dalam class ?operasi5ilangan@.

'erintah
op1.bilangan1 = 10;
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1-

adalah mengeset atribut ?bilangan1@ pada obyek ?op1@ dengan suatu nilai. -emikian uga dengan
perintah
op1.bilangan2 = 20;
'erintah
op1.jumlah();
dimaksudkan untuk menalankan method umlah*+ yaitu menumlahkan kedua nilai atribut
?bilangan1@ dan ?bilangan1@ pada obyek ?op1@.
Sedangkan perintah
op1.tampilHasil();
digunakan untuk menalankan method tampilHasil*+ yaitu menampilkan hasil penumlahan.

1". ,ntuk melihat hasil output program, 2nda bisa mengcompilenya dahulu kemudian menalankan
(,7 '(/J)0#. 2dapun outputnya adalah sbb3



-alam sebuah program, kita bisa membuat instantisasi beberapa obyek dari class yang sama.
Example 4 :
5erikut ini contoh yang merupakan pengembangan dari proect ?contoh1@.
public class Contoh2 {
public static void main(String[] args) {

// instantisasi obyek op1
operasiBilangan op1 = new operasiBilangan();

op1.bilangan1 = 10;
op1.bilangan2 = 20;
op1.jumlah();
op1.tampilHasil();

// instantisasi obyek op2
operasiBilangan op2 = new operasiBilangan();

op2.bilangan1 = 30;
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1.

op2.bilangan2 = 25;
op2.jumlah();
op2.tampilHasil();

}
}
-alam contoh di atas, dibuat 1 obyek dari class yang sama yaitu ?op1@ dan ?op1@. 2dapun hasil output
dari program ini adalah


,ntuk mengecek apakah suatu class yang sudah dibuat itu betul atau tidak, atau bisa tidak diakses dari
class lain, kita bisa melihat dari tool tips yang muncul ketika menulis kode program.
Sebagai contoh, misalkan di file ?0ontoh1.ava@ ini kita tuliskan ?op1.@ maka ika muncul tool tips seperti
gambar di ba%ah ini

Sang menandakan bah%a atribut dan method yang ada dalam class ?operasi5ilangan@ bisa diakses.
2tribut dan method yang muncul dalam tool tips hanyalah yang diset sebagai ',5A60 saa, sedangkan
yang '(6$2#) tidak muncul. 'erhatikan, bah%a atribut ?hasil@ yang sebelumnya kita set '(6$2#) dalam
class ?operasi5ilangan@ tidak muncul dalam tool tips.
Jika struktur penulisan class itu benar, maka secara otomatis class4class tersebut dapat diakses dari class
lainnya dalam package yang sama. 7amun, ika kita ingin melakukan instantisasi obyek dari suatu class
yang class tersebut berasal dari package yang berbeda, maka perlu ditambahkan perintah3
import namapackage.namaclass;
sebelum kode classnya.
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 12

Example 5:
Sebagai contoh, misalkan kita akan membuat package baru dalam proect ?0ontoh1@ dengan nama
?paketku@. -i dalam package ?paketku@ ini nanti kita buat class dengan nama ?classku@. Selanutnya di
dalam class ?classku@ dibuat sebuah method dengan nama ?cetakHello;orld@ untuk menampilkan pesan
?Hello ;orld@.
2dapun 0ara membuat package baru dalam proect ?0ontoh1@ ini adalah dengan mengklik kanan pada
?Source 'ackage@, lalu pilih 7); C J2$2 '20.2E)

.emudian isikan nama package yang akan dibuat, yaitu ?paketku@


Setelah package ?paketku@ dibuat, kita buat class dengan nama ?classku@. 0aranya adalah dengan
mengklik kanan pada package ?paketku@, pilih 7); C J2$2 0A2SS.



Aalu isikan nama class yang akan dibuat yaitu ?classku@
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 4


Selanutnya buat method cetakHello;orld*+ di dalam class ?classku@ yang sudah terbentuk sbb3
public class classku {

public void cetakHelloWorld()
{
System.out.println("Hello World");
}

}
.emudian, misalkan di method main*+ dalam class ?0ontoh1@ kita akan lakukan instantisasi suatu obyek
dari class ?classku@ ini, maka sebelum proses instantisasi ini dilakukan terlebih dahulu tambahkan
perintah
import paketku.classku;
sebelum class ?0ontoh1@ nya *dalam file ?0ontoh1.ava@+. 'erhatikan gambar berikut.

Setelah kita tambahkan perintah import, barulah kita bisa lakukan proses instantisasi suatu obyek dari
class ?classku@. Misalkan3
package contoh2;
import paketku.classku;

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1

public class Contoh2 {

public static void main(String[] args) {

// instantisasi obyek op1
operasiBilangan op1 = new operasiBilangan();

op1.bilangan1 = 10;
op1.bilangan2 = 20;
op1.jumlah();
op1.tampilHasil();

// instantisasi obyek op2
operasiBilangan op2 = new operasiBilangan();

op2.bilangan1 = 30;
op2.bilangan2 = 25;
op2.jumlah();
op2.tampilHasil();

// instantitasi obyek kelas dari class classku
classku kelas = new classku();

kelas.cetakHelloWorld();

}
}
Mengapa sebelum instantisasi obyek ?kelas@ yang termasuk class ?classku@ ini perlu dilakukan import dari
package ?paketku@T Sa... karena class ?0ontoh1@ ini beda package dengan class ?classku@ di mana class
?0ontoh1@ ini ada di dalam package ?contoh1@ sedangkan class ?classku@ ada dalam package ?paketku@.
2dapun output dari program Java di atas adalah


-alam kedua contoh sebelumnya, method yang dibuat dalam sebuah class merupakan void method
*method yang tidak mengembalikan nilai+. -alam contoh ini akan ditunukkan method yang non void.
Example 6:
'erhatikan kembali proect ?0ontoh1@ sebelumnya. Sekarang kita akan modifikasi class ?operasi5ilangan@
nya sebagai berikut3
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman

public class operasiBilangan {
public int bilangan1;
public int bilangan2;

private int jumlah()
{
int hasil;
hasil = this.bilangan1 + this.bilangan2;
return hasil;
}

void tampilHasil()
{
System.out.println("Hasil operasi bilangan : "+ this.jumlah());
}
}
-alam class ?operasi5ilangan@ tersebut, method umlah*+ tidak lagi merupakan void method. -alam
contoh tersebut, method umlah*+ misalkan kita buat '(6$2#). .emudian di method tampilHasil*+
terdapat perintah untuk memanggil method umlah*+ tersebut.
Selanutnya, di class ?0ontoh1@ *contoh1.ava+ kita uga sedikit modifikasi programnya karena method
umlah*+ tidak bisa lagi diakses karena bersifat '(6$2#).
public class Contoh2 {

public static void main(String[] args) {

// instantisasi obyek op1
operasiBilangan op1 = new operasiBilangan();

op1.bilangan1 = 10;
op1.bilangan2 = 20;
op1.tampilHasil();

// instantisasi obyek op2
operasiBilangan op2 = new operasiBilangan();

op2.bilangan1 = 30;
op2.bilangan2 = 25;
op2.tampilHasil();

classku kelas = new classku();
kelas.cetakHelloWorld();

}
}
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '

Hasil outputnya pun akan diperoleh sama seperti sebelumnya yaitu


Sebuah method dapat pula memuat satu atau lebih parameter. 'erhatikan contoh berikut ini.
Example 7:
-alam contoh ini kita sedikit memodifikasi class ?classku@ pada proect ?0ontoh1@ dengan menambahkan
method cetakString*+. #ambahkan method cetakString*+ berikut ini pada class ?classku@
public class classku {

public void cetakHelloWorld()
{
System.out.println("Hello World");
}

// method cetakKata() dengan parameter
public void cetakKata(String kata)
{
System.out.println(kata);
}
}
-alam method cetak.ata*+ tersebut sebuah parameter ?kata@ bertipe data String. 7ilai parameter ?kata@
tersebut selanutnya akan ditampilkan ke layar.
.emudian, di method main*+ di class ?0ontoh1@ coba kita tambahkan perintah sbb3
kelas.cetakKata("Hallo apa kabar??");
Sehingga menadi
public class Contoh2 {

public static void main(String[] args) {

// instantisasi obyek op1
operasiBilangan op1 = new operasiBilangan();

op1.bilangan1 = 10;
op1.bilangan2 = 20;
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman (

op1.tampilHasil();

// instantisasi obyek op2
operasiBilangan op2 = new operasiBilangan();

op2.bilangan1 = 30;
op2.bilangan2 = 25;
op2.tampilHasil();

classku kelas = new classku();
kelas.cetakHelloWorld();
// memanggil method cetakKata dg parameter
kelas.cetakKata("Hallo apa kabar??");
}
}
Hasil outputnya adalah3


Jika sebuah method memiliki lebih dari 1 parameter, maka setiap parameternya dipisahkan dengan
koma *,+ contohnya3
public void cetakKata(String kata1, String kata2)
{
.
.
}

'oal Lati&an
1. 5uat proect Java dengan nama ?suhu@. 2plikasi Java yang akan dibuat ini akan mengkonversi
suhu dari celcius ke satuan suhu yang lain. ,ntuk keperluan ini, buatlah class ?konversiSuhu@.
Aalu buatlah atribut&properties dan method pada class tsb sbb3

*ama Atribut Si5at 3ipe Data Keterangan
0elcius 'ublic Bloat 7ilai suhu dalam celsius
Hasil 'rivate Bloat Hasil konversi suhu

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman )

*ama metho% Si5at Metho% 3ipe Data
Return 6alue
Keterangan
c#o(*+ 'ublic *non void+ Bloat Mengkonversi 0elcius ke (eamur
c#o.*+ 'ublic *non void+ Bloat Mengkonversi 0elcius ke .elvin
c#oB*+ 'ublic *non void+ Bloat Mengkonversi 0elcius ke
tampilkanHasil*+ 'ublic *void+ 4 Menampilkan hasil konversi

.emudian hitunglah hasil konversi suhu dari celcius berikut ini ke (eamur, .elvin dan
Bahrenheit3
4 :" celcius
4 =5 celcius
4 5".5 celcius
4 11" celcius

.eterangan3
4 ,ntuk setiap nilai suhu celcius, buatlah obyek tersendiri.
4 ,ntuk formula konversi suhu, silakan buka
http3&&id.%ikipedia.org&%iki&(umusQkonversiQsuhu

1. 5uat proect Java dengan nama ?luas$olume@. Setelah package ?luasvolume@ otomatis terbuat,
selanutnya buat : buah class dengan nama ?operasi@ *operasi.ava+, ?luas@ *luas.ava+, dan
?volume@ *volume.ava+. .emudian buat atribut dan method untuk masing4masing class dengan
ketentuan sbb3

0lass3 operasi

*ama Atribut Si5at 3ipe Data Keterangan
bil1 'ublic Bloat 5ilangan pertama yg akan
dioperasikan
bil1 'ublic Bloat 5ilangan kedua yg akan
dioperasikan
hasil 'ublic Bloat Hasil operasi kedua bilangan

*ama metho% Si5at Metho% 3ipe Data
Return 6alue
Keterangan
diumlahkan*+ 'ublic *non void+ Bloat Menumlahkan 1 bilangan
dikurangi*+ 'ublic *non void+ Bloat Mengurangi 1 bilangan
dikalikan*+ 'ublic *non void+ Bloat Mengalikan 1 bilangan
dibagi*+ 'ublic *non void+ Bloat Membagi 1 bilangan
dipangkatkan1*+ 'ublic *non void+ Bloat Memangkatkan 1 suatu bilangan



Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,

0lass3 luas

*ama Atribut Si5at 3ipe Data Keterangan
Auas 'rivate Bloat Auas suatu bangun

*ama metho% Si5at Metho% 3ipe Data
Return 6alue
Keterangan
luas'ersegi*sisi+ 'ublic *void+ 4 Hitung luas persegi
luasAingkaran*r+ 'ublic *void+ 4 Hitung luas lingkaran
luasSegitiga*a, t+ 'ublic *void+ 4 Hitung luas segitiga
luas'ersegi'anang*p, l+ 'ublic *void+ 4 Hitung luas ps. 'anang
tampilAuas*+ 'ublic *void+ 4 Menampilkan luas bangun

.eterangan3 Eunakan class ?operasi@ untuk mengoperasikan bilangan dalam perhitungan
luasnya.

0lass3 volume

*ama Atribut Si5at 3ipe Data Keterangan
$olume 'rivate Bloat $olume suatu bangun ruang

*ama metho% Si5at Metho% 3ipe Data
Return 6alue
Keterangan
vol.ubus*sisi+ 'ublic *void+ 4 Hitung vol kubus
vol5ola*r+ 'ublic *void+ 4 Hitung vol bola
vol5alok*p, l, t+ 'ublic *void+ 4 Hitung vol balok
vol.erucut*r, t+ 'ublic *void+ 4 Hitung vol kerucut
vol#abung*r, t+ 'ublic *void+ 4 Hitung vol tabung
tampil$olume*+ 'rivate *void+ 4 Menampilkan vol bgn ruang

.eterangan3 Eunakan class ?operasi@ untuk mengoperasikan bilangan dalam perhitungan
luasnya.

Selanutnya, a%ablah pertanyaan ini dengan menggunakan program Java yang 2nda buat3

4 Hitung luas bangun persegi, ika diketahui panang sisi 5.! satuan panang
4 Hitung luas segitiga, ika diketahui panang alas 1".: satuan panang dan tingginya F.!<
satuan panang
4 Sebuah drum dengan diameter <5.! cm dan tinggi 11=.F< cm diisi penuh air. Selanutnya
sebuah drum yang lebih kecil berukuran diameter :".F1 cm dan tinggi !F.:1 cm
dimasukkan ke dalam drum yang lebih besar tadi, hingga ada air yang tumpah ke luar.
Hitunglah berapa liter air yang tumpah. *.et3 untuk semua operasi bilangan, gunakan
class ?operasi@+
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -


:. Sebuah arsitek ingin memperkirakan berapa biaya yang diperlukan untuk membangun sebuah
rumah. 5erikut ini adalah bahan material utama yang dibutuhkan untuk membangun rumah
tersebut3

4 'asir 3 5"" m
:
*harga (p 11"."""&m
:
+
4 Semen 3 F" sak *harga (p 9"."""&sak+
4 5atu45ata 3 1".""" buah *harga (p 5""&buah+
4 .ayu kalimantan 3 :"" m
:
*harga (p 1""."""&m
:
+
4 5atu kali untuk pondasi 3 1"" buah *harga (p 1"""&buah+
4 Eenting 3 5"" buah *harga (p 1"""&buah+

5uatlah program Java untuk menghitung berapa biaya yang diperlukan untuk membangun
rumah tersebut, dengan terlebih dahulu merancang class4classnya, serta atribut dan method
nya.

=. Sebuah mobil akan melakukan peralanan dari kota 2 ke kota B. ,ntuk menuu ke kota B, mobil
harus mele%ati beberapa kota yaitu 5, 0, - dan ) dengan arak sebagai berikut3

.ota 2 ke 5 3 =5 km
.ota 5 ke 0 3 51 km
.ota 0 ke - 3 :! km
.ota - ke ) 3 1"= km
.ota ) ke B 3 9: km

Jika konsumsi bensin untuk mobil tersebut adalah 1 liter untuk tiap 9 km, maka hitunglah berapa
liter yang dibutuhkan mobil untuk3
4 5eralan dari kota 2 ke B
4 5eralan dari kota 5 ke )
4 5eralan dari kota 2 ke B, kemudian kembali lagi ke kota 5
4 5eralan dari kota 2 ke B C ) C - C 0 C - C ) C - C ) C B
5uatlah program Java untuk mena%ab persoalan di atas, dengan terlebih dahulu merancang
class, atribut dan method nya.
Input dan Output dalam Java
-alam bagian ini akan dibahas cara membaca data input melalui console serta menampilkan outputnya
uga melalui console.
Input Data via %onsole
,ntuk keperluan input data via console, perlu kita buat class khusus.
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman .

Example 8:
Sebagai contoh, berikut ini adalah sebuah pembuatan program Java untuk perhitungan gai karya%an
yang beberapa datanya diinput le%at console3
1. 5uat 'roect dengan nama ?ga7i8ar9a:an@, untuk package nya uga diberi nama ?ga7i8ar9a:an@
1. 5uat class ?input0onsole@ yang disimpan dalam file input0onsole.7a"a


dengan isi kode sbb3
input0onsole.7a"a
import java.io.*;
public class inputConsole {

// membaca data string
public String bacaString()
{
BufferedReader bfr = new BufferedReader(new
InputStreamReader(System.in), 1);
String string = "";
try
{
string = bfr.readLine();
}
catch (IOException ex)
{
System.out.println(ex);
}
return string;
}
// membaca data integer
public int bacaInt()
{
return Integer.parseInt(bacaString());
}
// membaca data float
public float bacaFloat()
{
return Float.parseFloat(bacaString());
}
// membaca data long integer
public long bacaLong()
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 2

{
return Long.parseLong(bacaString());
}

}
Secara umum, di dalam class ?input0onsole@ tersebut, mekanisme method4method untuk
membaca input dalam berbagai tipe data itu adalah membaca setiap input dalam bentuk string
kemudian input string tersebut diubah ke tipe data yang bersesuaian.
:. Selanutnya buat beberapa kode di ba%ah ini pada class Eaikarya%an
public class Gajikaryawan {

public static void main(String[] args) {

String nama, kodekar;
int gapok, jmlanak;
float gaber, tunjanak;

inputConsole input1 = new inputConsole();
// input kode karyawan
System.out.print("KODE KARYAWAN : ");
kodekar = input1.bacaString();
// input nama karyawan
System.out.print0;("NAMA KARYAWAN : ");
nama = input1.bacaString();
// input gaji pokok karyawan
System.out.print("GAJI POKOK : ");
gapok = input1.bacaInt();
// input jumlah anak
System.out.print("JML ANAK : ");
jmlanak = input1.bacaInt();

// hitung tunjangan anak -> setiap anak 10% dari gaji pokok
tunjanak = (float) ((float) gapok * 0.1 * jmlanak);
// hitung gaji bersih = gaji pokok + tunj anak
gaber = gapok + tunjanak;

// output
System.out.println("NAMA KARYAWAN : "+nama+"("+ kodekar +")");
System.out.println("GAJI BERSIH : Rp. "+gaber);

}
}

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '4

Output (ia %onsole
Secara umum perintah untuk menampilkan output ke layar console adalah
System.out.println(string);
atau
System.out.print(string);
'erbedaan keduanya adalah ika dengan println*+ setelah menampilkan suatu string ke output console,
maka teradi perpindahan baris pada pointernya. Sedangkan untuk System.output.print*+ tidak teradi
perpindahan baris pointernya.
Mengatur Digit Presisi )ilangan !iil "*loat$
Secara default, Java akan menampilkan bilangan riil atau float dalam bentuk 15 digit di belakang koma,
misalnya3
System.out.print(22./7);
akan muncul hasil di layar, bilangan :.1=1!5F1=1!5F1=:
Selanutnya bagaimana ika kita ingin membatasi digit presisi di belakang komanya, misalnya hanya :
digit saaT 0aranya adalah dengan memanfaatkan built in class ?-ecimalBormat@ yang sudah tersedia
dalam Java. 5erikut ini contohnya3
Example 9:
0ontoh program Java untuk menampilkan : digit di belakang koma untuk bilangan 'i *11&F+
import java.text.DecimalFormat;
public class Contoh2 {

public static void main(String[] args) {
// membuat obyek dari class DecimalFormat untuk 3 digit presisi
DecimalFormat jmldigit = new DecimalFormat("0.000");
System.out.println("Bilangan Pi: " + jmldigit.format(22./7));
}
}

0lass -ecimalBormat ada dalam suatu package Java dengan nama ?ava.te8t.-ecimalBormat@ sehingga di
bagian atas program perlu ditambahkan perintah3
import java.text.DecimalFormat;
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '1

Input Data (ia +,I "+rap&ics ,ser Inter-ace$
Selain via console, input data uga bisa dilakukan via E,6. -i dalam Java, untuk membuat aplikasi
berbasis E,6 bisa menggunakan S;67E sebagai package nya, sehingga di dalam program perlu
melakukan import dengan perintah sebagai berikut3
import javax.swing.*;
5erikut ini contoh kode Java untuk menerima input melalui form E,6 kemudian outputnya melalui
console.
Example 10:
0ontoh program Java yang menerima input berupa nama *string+ kemudian menampilkan nama yang
tadi diinputkan via console.
import javax.swing.*;
public class Contoh2 {

public static void main(String[] args) {

String nama;
nama = JOptionPane.showInputDialog("Masukkan nama Anda");
System.out.println("Hallo selamat datang, " + nama);
}
}
#ampilan dari kode di atas setelah dirunning adalah sbb3

dan outputnya3


Example 11:
0ontoh program Java untuk menumlahkan dua buah bilangan integer yang diinput melalui E,6
kemudian menampilkan hasilnya via Message -ialog.
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '

import javax.swing.*;
public class Contoh2 {

public static void main(String[] args) {

int bil1;
int bil2;
int hasil;
// baca nilai bilangan ke-1
bil1 = Integer.parseInt(JOptionPane.showInputDialog("Masukkan
bilangan pertama"));
// baca nilai bilangan ke-2
bil2 = Integer.parseInt(JOptionPane.showInputDialog("Masukkan
bilangan kedua"));
// jumlahkan kedua bilangan
hasil = bil1 + bil2;
// tampilkan hasil penjumlahannya via message dialog
JOptionPane.showMessageDialog(null, "Hasil penjumlahannya:
"+hasil);
}
}
2dapun tampilan program Java tersebut adalah sebagai berikut3


Lati&an
1. #ambahkan beberapa method di class ?input 0onsole@ untuk membaca input dalam bentuk tipe
data short dan double
1. 5uatlah proect Java untuk menghitung banyaknya masing4masing pecahan uang (p 1"".""", (p
5".""", (p 1".""", (p 1".""" dan (p 5.""" dari sebuah nilai uang. Sebagai contoh misalkan
umlah uangnya (p. 1.1!".""" maka umlah pecahannya (p 1"".""" adalah 11, pecahan (p
5".""" adalah 1, pecahan (p 1".""" adalah 1, pecahan (p 1".""" adalah 1 dan pecahan (p
5.""" nya adalah ". 6nput program adalah umlah nilai uang yang akan dicari pecahannya.
(ancanglah terlebih dahulu class, atribut dan method4methodnya.
:. Seseorang dengan tinggi badan 1!" cm ingin mengukur tinggi sebuah pohon yang berarak 1"
meter di depan posisi orang tersebut berdiri. Jika sudut pandang orang tersebut terhadap titik
tertinggi pohon adalah :"
o
, maka hitunglah tinggi pohoh dengan aplikasi Java yang 2nda buat.
6nput program adalah arak pohon dengan orang, tinggi orang, dan sudut pandang orang
terhadap titik tertinggi pohon.
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ''


'etunuk3
Eunakan method4method built in dari Java berikut ini untuk perhitungan trigonometrinya
4 Math.sin*8+ 3 menghitung nilai sinus 8 dlm radian *return value3 double+
4 Math.cos*8+ 3 menghitung nilai cosinus 8 dlm radian *return value3 double+
4 Math.tan*8+ 3 menghitung nilai tangen 8 dlm radian *return value3 double+

.eterangan3
6nput dan output program menggunakan E,6





























Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '(

'truktur Kontrol Proses
Struktur kontrol proses bertuuan untuk dapat menentukan urutan statement&perintah yang akan
dikerakan atau diproses. Struktur kontrol proses ini antara lain3
'truktur Kontrol Kondisional
Struktur kontrol ini untuk menyatakan proses yang berbentuk persyaratan&kondisional.
'tatement I*
#ata cara penulisan statement 6B3
if (syarat)
{
statement;
statement;
.
.
}
bisa uga berbentuk sebagai berikut
if (syarat)
{
statement;
statement;
.
.
}
else
{
statement;
statement;
.
.
}
atau bisa uga berbentuk
if (syarat1)
{
statement;
statement;
.
.
}
else if (syarat2)
{
statement;
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ')

statement;
.
.
}
else if (syarat3)
{
statement;
statement;
.
.
}
.
.
else
{
statement;
statement;
.
.
}

'tatement '.IT%/
Struktur penulisan statement S;6#0H adalah sebagai berikut3
switch(ekspresi)
{
case variabel1 : statement;
statement;
.
.
break;
case variabel2 : statement;
statement;
.
.
break;
.
.
default : statement;
statement;
.
.
}
'truktur Kontrol Perulangan "Looping$
Struktur kontrol perulangan digunakan untuk mengatur proses yang dialankan secara berulang4ulang.
5erikut ini beberapa statement yang dapat digunakan untuk mengatur proses perulangan3
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ',

'tatement *O!
2turan penulisan *synta8+ nya adalah3
for(ekspresiawal; syarat; ekspresiakhir)
{
statement;
statement;
.
.
}
'tatement ./IL0
2turan penulisannya3
while(syarat)
{
statement;
statement;
.
.
}
'tatement DO ./IL0
2turan penulisanya3
do
{
statement;
statement;
.
.
}
while (syarat);
Example 12.
-alam contoh ini, kita akan membuat sebuah proect untuk menentukan gai bersih karya%an dengan
ketentuan3
Eai bersih O gai pokok 9 tunangan istri 9 tunangan anak C potongan
-i mana tunangan istri diberikan sebesar 1"H dari gai pokok, dan tunangan anak adalah 5H dari tiap
anak. Sedangkan potongannya adalah 5H dari total gai pokok dan tunangan4tunangan.
'ertama kita buat dahulu proect dengan nama misalnya3 ?proectEai@
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '-


Selanutnya kita desain class, method dan atributnya sbb3
7ama 0lass3 ?gai@
*ama Atribut Si5at 3ipe Data Keterangan
kode.arya%an 'ublic String .ode karya%an
nama.arya%an 'ublic String 7ama karya%an
gaipokok 'ublic Bloat Eai pokok karya%an
statusMenikah 'ublic 0har Status menikah ?S@ atau ?7@
ml2nak 'ublic 6nteger Jumlah anak

*ama metho% Si5at Metho% 3ipe Data
Return 6alue
Keterangan
hitung#un6stri*char s+
s3 status menikah *y&n+
'ublic *non void+ Bloat Menghitung tunangan istri
hitung#un2nak*int n+
n3 umlah anak
'ublic *non void+ Bloat Menghitungan tunangan anak
hitungEai5ersih*+ 'ublic *non void+ Bloat Menghitung gai bersih
hitung'otongan*+ 'ublic *non void+ Bloat Menghitung potongan

.emudian kita implementasikan desain di atas ke dalam bentuk coding di dalam class ?gai@
ga7i.7a"a
package projectgaji;

public class gaji {

// deklarasi untuk atribut class 'gaji'
public String kodekaryawan;
public String namakaryawan;
public float gajiPokok;
public char statusMenikah;
public int jmlAnak;


// deklarasi untuk method dari class 'gaji'
public float hitungTunjIstri(char s)
{
float tunjIstri = 0;
if (s == 'y')
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '.

{
tunjIstri = (float) (0.1 * this.gajiPokok);
}

return tunjIstri;
}

public float hitungTunjAnak(int n)
{
float tunjAnak;
tunjAnak = (float) (n * 0.05 * this.gajiPokok);
return tunjAnak;
}

public float hitungPotongan()
{
float jmlPotongan;
jmlPotongan = (float) (0.05 * (this.gajiPokok +
this.hitungTunjAnak(this.jmlAnak) +
this.hitungTunjIstri(this.statusMenikah)));
return jmlPotongan;
}

public float hitungGajiBersih()
{
float gaber;
gaber = (float) (this.gajiPokok +
this.hitungTunjAnak(this.jmlAnak) +
this.hitungTunjIstri(this.statusMenikah) - this.hitungPotongan());
return gaber;
}

}
Sedangkan berikut ini isi dari method main*+ dalam class proectEai nya.
;ro7e1t<a7i.7a"a
package projectgaji;

public class ProjectGaji {

public static void main(String[] args) {

gaji g1 = new gaji();

g1.kodekaryawan = "K001";
g1.namakaryawan = "ROSIHAN ARI";
g1.statusMenikah = 'y';
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '2

g1.jmlAnak = 3;
g1.gajiPokok = 2500000;


System.out.println("=============================================");
System.out.println("KODE KARYAWAN : "+g1.kodekaryawan);
System.out.println("NAMA KARYAWAN : "+g1.namakaryawan);
System.out.println("STATUS MENIKAH : "+g1.statusMenikah);
System.out.format("GAJI POKOK : Rp %10.1f \n", g1.gajiPokok);

System.out.println("=============================================");
System.out.format("TUNJANGAN ISTRI : Rp %10.1f \n",
g1.hitungTunjIstri(g1.statusMenikah));
System.out.format("TUNJANGAN ANAK : Rp %10.1f \n",
g1.hitungTunjAnak(g1.jmlAnak));
System.out.format("POTONGAN : Rp %10.1f \n",
g1.hitungPotongan());

System.out.println("=============================================");
System.out.format("GAJI BERSIH : Rp %10.1f \n",
g1.hitungGajiBersih());
System.out.println("=============================================");
}
}
.eterangan3
'erintah System.out.format*+ digunakan untuk memformat tampilan, khususnya untuk pengaturan
bilangan yang dalam contoh di atas digunakan untuk memformat tampilan bilangan riil dengan 1 digit
angka di belakang koma *H1".1f+. 'erintah ini sebagai alternatif cara untuk memformat tampilan output
selain yang pernah di bahas di bab sebelumnya.
Sedangkan berikut ini tampilan output dari program Javanya



Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman (4

Example 13
-alam contoh ini, akan sedikit dimodifikasi proect dari #=ample 1 sebelumnya yaitu dengan
menambahkan modul untuk simulasi umlah angsuran pinaman karya%an per bulan sampai
pinamannya lunas. 2dapun besaran angsuran pinaman perbulannya tergantung golongan karya%annya
dengan ketentuan sbb3
4 Jika golongannya 666a, maka angsuran perbulannya (p 5".""",4
4 Jika golongannya 666b, maka angsuran perbulannya (p 1"".""",4
4 Jika golongannya 666c, maka angsuran perbulannya (p 15".""",4
-ari simulasi umlah ansuran per bulan tersebut akan diketahui sampai berapa bulan pinaman seorang
karya%an lunas.
,ntuk mengimplementasikan hal ini, kita coba tambahkan 1 atribut dalam class ?gai@ yaitu
public float totPinjaman;
public String gol;
dimana ?tot'inaman@ menunukkan umlah total pinaman yang dipinam seorang karya%an, dan ?gol@
adalah golongan seorang karya%an.
Selanutnya, kita buat method simulasiAngsuran;in7aman() dalam class ?gai@ sebagai berikut
public void simulasiAngsuranPinjaman()
{
float angsuran = 0, totalAngsuran = 0;
int bulan;
if ("IIIa".equals(this.gol))
{
angsuran = (float) 50000;
}
else if ("IIIb".equals(this.gol))
{
angsuran = (float) 100000;
}
else if ("IIIc".equals(this.gol))
{
angsuran = (float) 150000;
}

// menampilkan total pinjaman
System.out.format("TOTAL PINJAMAN : Rp %10.1f \n",
this.totPinjaman);

// menampilkan angsuran perbulannya
bulan = 0;
while (totalAngsuran < this.totPinjaman)
{
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman (1

totalAngsuran += angsuran;
bulan++;
System.out.format("ANGSURAN S/D BLN KE-%2d : Rp %10.1f \n",
bulan, totalAngsuran);
}

}
.eterangan3
Maksud dari statement
if ("IIIa".equals(this.gol))
{
....
}
dari method di atas adalah membandingkan nilai dari string this.gol apakah sama dengan ?666a@ atau
tidak, ika sama maka akan menalankan statement di dalam blok 6B nya.
Setelah itu kita bisa panggil method simulasi2ngsuran'inaman*+ tersebut di method main*+ nya dengan
terlebih dahulu menset golongan dan total pinaman si karya%an. Misalnya3
public static void main(String[] args) {

gaji g1 = new gaji();

g1.kodekaryawan = "K001";
g1.namakaryawan = "ROSIHAN ARI";
g1.statusMenikah = 'y';
g1.jmlAnak = 3;
g1.gajiPokok = 2500000;

// setting golongan karyawan
g1.gol = "IIIc";
// setting total pinjaman
g1.totPinjaman = 1750000;


System.out.println("==============================================");
System.out.println("KODE KARYAWAN : "+g1.kodekaryawan);
System.out.println("NAMA KARYAWAN : "+g1.namakaryawan);
System.out.println("STATUS MENIKAH : "+g1.statusMenikah);
System.out.format("GAJI POKOK : Rp %10.1f \n", g1.gajiPokok);

System.out.println("==============================================");
System.out.format("TUNJANGAN ISTRI : Rp %10.1f \n",
g1.hitungTunjIstri(g1.statusMenikah));
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman (

System.out.format("TUNJANGAN ANAK : Rp %10.1f \n",
g1.hitungTunjAnak(g1.jmlAnak));
System.out.format("POTONGAN : Rp %10.1f \n",
g1.hitungPotongan());

System.out.println("==============================================");
System.out.format("GAJI BERSIH : Rp %10.1f \n",
g1.hitungGajiBersih());

System.out.println("==============================================");

// memanggil method simulasiAngsuranPinjaman()
g1.simulasiAngsuranPinjaman();
}
2dapun hasil atau output dari program ini adalah


Lati&an
1. -ari hasil terakhir proect yang ada di )8ample 1:, ubahlah sistem penggaian karya%annya
dengan ketentuan bah%a besarnya gai pokoknya tergantung golongannya3

<O>O*<A* <A!& ;OKOK
666a (p. 1.5"".""",4
666b (p 1.!5".""",4
666c (p 1.1"".""",4
666d (p 1.:5".""",4
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ('


-engan demikian, golongan karya%an akan menentukan besarnya gai bersih setiap karya%an.

1. -ari hasil terakhir >atihan *o 1 sebelumnya, tambahkan method baru dengan nama
simulasiAngsuranRumah(). Method ini nantinya digunakan untuk mensimulasikan umlah
angsuran sampai dengan bulan tertentu, hingga lunas. 2dapun ketentuan umlah angsuran tiap
bulannya tergantung golongan karya%an yaitu3

<O>O*<A* A*<S?RA* ;#R +?>A*
666a 5H dari gai pokok
666b FH dari gai pokok
666c 1"H dari gai pokok
666d 15H dari gai pokok

:. -engan menggunakan hasil Aatihan 7o 1 di atas, tentukan berapa lama %aktu *dalam bulan+
yang diperlukan karya%an4karya%an berikut ini supaya angsuran rumahnya lunasT

KOD# KARY *AMA KARY <O> @AR<A R?MA@
.""1 J/./ S)#62;27 666b (p 11"t
.""1 (,-6 H2(#/7/ 666c (p 1=5t
."": 52S, H2(J/7/ 666a (p 1<5t













Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ((

%onstructor
-i dalam //', ada istilah ?constructor@. ?0onstructor@ ini melekat pada suatu class, yang dengannya kita
bisa menset beberapa nilai atribut sekaligus dari suatu obyek ketika proses instansiasi. Jika sebelumnya
setiap kita ingin menset nilai atribut dari sebuah obyek, maka prosesnya adalah instansiasi baru set nilai
atribut, namun dengan ?constructor@ ini kedua langkah tersebut bisa diadikan dalam satu langkah saa.
Example 14
5erikut ini contoh constructor yang ada dalam sebuah class. 'erhatikan contoh class ?operasi@ berikut ini
public class operasi {

public int bil1;
public int bil2;
public int hasil;

private void jumlahkan()
{
this.hasil = this.bil1 + this.bil2;
}

public void tampilhasil()
{
System.out.println("Hasil penjumlahannya : " + this.hasil);
}

}
2pabila kita ingin menumlahkan 1 bilangan misalnya 1" dan 1", maka kita lakukan perintah sbb3
operasi op1 = new operasi();
op1.bil1 = 10;
op1.bil2 = 20;
op1.jumlahkan();
op1.tampilhasil();
Selanutnya, misalkan kita buat constructor sbb3
public class operasi {

public int bil1;
public int bil2;
public int hasil;

// constructor class operasi
public operasi(int x, int y)
{
this.bil1 = x;
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ()

this.bil2 = y;
}

public void jumlahkan()
{
this.hasil = this.bil1 + this.bil2;
}

public void tampilhasil()
{
System.out.println("Hasil penjumlahannya : " + this.hasil);
}

}
Setelah dibuat constructor, kita dapat memberikan perintah berikut ini
operasi op1 = new operasi(10, 20);
untuk proses instansiasi sekaligus menset atribut bil1 dan bil1 nya. Sehingga secara umum perintah
untuk menumlahkan dua bilangannya adalah sbb3
operasi op1 = new operasi(10, 20);
op1.jumlahkan();
op1.tampilhasil();

Lati&an
1. 5uatlah proect dengan nama ?bangun-atar@ untuk mencari luas dan keliling beberapa buah
bangun datar. -i dalam proect tersebut, buatlah sebuah class dengan nama ?persegi'anang@
dan ?segi#iga@. #entukan constructor yang tepat untuk class4class tersebut. -alam setiap class,
buat method dengan nama ?hitungAuas@ dan ?hitung.eliling@.
1. 5uatlah proect dengan nama ?deret@ untuk menampilkan deret aritmatika. Selanutnya buat
class dengan nama ?aritmatika@ dengan constructor a *suku a%al+, b *selisih+, dan n *umlah
suku+. .emudian buat method tampil-eret*+ untuk menampilkan deret aritmatikanya.





Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman (,

Larik "Arra1$
Seperti halnya bahasa pemrogaman yang lain, di dalam Java uga ada penggunaan 2rray. -i dalam ava
nomor indeks suatu array dimulai dari ".
5erikut ini cara mendeklarasikan sebuah array dengan n buah elemen
tipedata[] namaarray = new tipedata[n];
Sebagai contoh, perhatikan perintah berikut ini untuk membuat array dengan nama arrayku bertipe
data integer dengan umlah elemennya 1".
int[] arrayku = new int[10];
Example 15
5erikut ini contoh penggunaan array dalam bentuk string. Misalkan diberikan 5 buah data string berupa
nama karya%an, selanutnya program Java akan menampilkan panang karakter untuk setiap nama
karya%an tersebut.
'ertama, buatlah proect dengan nama ?arrayString@
Selanutnya buat class dengan nama ?operasistring@, lalu buat method sbb3
package arraystring;
public class operasistring {
// method untuk mencari panjang suatu string x
public int panjangstring(String x)
{
return x.length();
}
}
.emudian, buat class dengan nama ?stringku@
package arraystring;

public class stringku {

// atribut untuk menyimpan 5 nama karyawan berupa array
public String[] nama = new String[5];

// method untuk menampilkan nama setiap karyawan dan pjg
// karakternya
public void tampildata()
{
int i;

for(i=0; i<this.nama.length; i++)
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman (-

{
operasistring os1 = new operasistring();
System.out.println("Nama Karyawan: " + this.nama[i] + "
(Panjang string : " + os1.panjangstring(this.nama[i]) + ")");
}
}
}
#erakhir kita buat program berikut ini di main class nya
package arraystring;
public class ArrayString {
public static void main(String[] args) {
// instansiasi obyek
stringku str = new stringku();
// set nama setiap karyawan ke dalam array
str.nama[0] = "Rosihan Ari Yuana";
str.nama[1] = "Dwi Amalia Fitriani";
str.nama[2] = "Faza Fauzan Khosiyarrohman";
str.nama[3] = "Nada Hasanah";
str.nama[4] = "Muh. Ahsani Taqwim";
// panggil method untuk menampilkan data
str.tampildata();
}
}
2dapun output dari proect di atas adalah


Example 17
5erikut ini contoh penggunaan array untuk proses pengolahan data karya%an. -alam proect ini
nantinya, user diminta memasukkan umlah karya%an yang mau dientri. .emudian aplikasi meminta
memasukkan data 76. *nomor induk karya%an+, nama karya%an, dan gai pokok untuk setiap karya%an.
Selanutnya, seluruh data karya%an ini akan ditampilkan dalam bentuk tabel dan ditambahkan informasi
berupa rata4rata besar gai pokoknya.
,ntuk kasus ini, silakan membuat proect dengan nama ?array.arya%an@
.emudian, buat class untuk kepentingan input data via console seperti yang pernah di bahas di bab
sebelumnya.
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman (.

0lass ?my6nput@
package arraykaryawan;
import java.io.*;

public class myInput {

// membaca data string
public String bacaString()
{
BufferedReader bfr = new BufferedReader(new
InputStreamReader(System.in), 1);
String string = "";
try
{
string = bfr.readLine();
}
catch (IOException ex)
{
System.out.println(ex);
}
return string;
}
// membaca data integer
public int bacaInt()
{
return Integer.parseInt(bacaString());
}

}
Selanutnya, kita buat class ?data.arya%an@
package arraykaryawan;

public class dataKaryawan {

// atribut untuk NIK (nomor induk karyawan) berupa array string
// max 100 data
private String[] nik = new String[100];
// atribut untuk nama karyawan berupa array string
// max 100 data
private String[] nama = new String[100];
// atribut untuk gaji pokok karyawan berupa array int
// max 100 data
private int[] gapok = new int[100];
// atribut untuk banyak karyawan
public int n;

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman (2

// method untuk menyimpan NIK x pada data array karyawan ke-i
public void setNIK(int i, String x)
{
this.nik[i] = x;
}

// method unt menyimpan nama karyawan x pd data array karyawan ke-i
public void setNama(int i, String x)
{
this.nama[i] = x;
}

// method unt menyimpan gapok x pd data array karyawan ke-i
public void setGapok(int i, int x)
{
this.gapok[i] = x;
}

// method untuk menghitung rata2 gapok dari n karyawan
public float rerataGapok()
{
int sum = 0, i;
for(i=0; i<this.n; i++)
{
sum += this.gapok[i];
}
return sum/this.n;
}

// method untuk menset atribut jumlah karyawan sejumlah x
public void setJmlKaryawan(int x)
{
this.n = x;
}

// method untuk menampilkan data karyawan
public void tampilData()
{
int i;

System.out.println("================================================");
System.out.println("NIK NAMA KARYAWAN GAJI
POKOK");
System.out.println("================================================");
for(i=0; i<this.n; i++)
{
System.out.println(String.format("%-5s %-35s Rp %10d",
this.nik[i], this.nama[i], this.gapok[i]));
}
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman )4


System.out.println("================================================");
System.out.println("Rata-rata gaji Pokok dari " + this.n + "
karyawan adalah Rp " + this.rerataGapok());
}
}
.eterangan3
Bormat specifier %-35s digunakan untuk mengatur posisi string supaya rata kiri, dengan space :5
karakter.
#erakhir, di bagian main class kita buat sebagai berikut3
package arraykaryawan;

public class ArrayKaryawan {

public static void main(String[] args) {

int i;
// instansiasi obyek dataKar dari class dataKaryawan
dataKaryawan dataKar = new dataKaryawan();
// instansiasi obyek input1 dari class myInput
myInput input1 = new myInput();
// input jumlah karyawan
System.out.print("Berapa jumlah karyawan : ");
// set jumlah karyawan ke atribut n dari obyek dataKar
dataKar.setJmlKaryawan(input1.bacaInt());

// looping untuk proses input data karyawan
for(i=0; i<dataKar.n; i++)
{
System.out.println("Karyawan ke-"+(i+1));
System.out.print("Masukkan NIK : ");
// set nilai atribut nik dalam array
dataKar.setNIK(i, input1.bacaString());
System.out.print("Masukkan Nama Karyawan : ");
// set nilai atribut nama dalam array
dataKar.setNama(i, input1.bacaString());
System.out.print("Masukkan Gaji Pokok : ");
// set nilai atribut gapok dalam array
dataKar.setGapok(i, input1.bacaInt());
}

// tampil data
dataKar.tampilData();
}
}
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman )1

5erikut ini tampilan proect ketika dialankan


Selanutnya bagaimana ika array nya merupakan array 1 dimensiT 5erikut ini adalah cara
pendeklarasiannya
tipedata[][] namaarray = new tipedata[n][m];
di mana n adalah umlah elemen untuk baris, dan m adalah untuk umlah elemen kolom.
-i ba%ah ini adalah contoh pendeklarasian suatu variabel bertipe data array ?contoharray@ bertipe data
float dengan umlah elemen 1" 8 1"U
float[][] contoharray = new float[10][20];

Example 18
5erikut ini contoh program Java untuk menumlahkan 1 buah matriks 2 dan 5 dengan ukuran masing4
masing 1 8 :.
5uat proect baru dengan nama ?matriks@
.emudian buat class dengan nama ?operasi@
package matriks;

public class operasi {

// deklarasi matriks A, B, C dengan ukuran 2x3 bertipe integer
private int[][] matriksA = new int[2][3];
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman )

private int[][] matriksB = new int[2][3];
private int[][] matriksC = new int[2][3];

// set elemen matriks A
public void isimatriksA()
{
this.matriksA[0][0] = 2;
this.matriksA[0][1] = 3;
this.matriksA[0][2] = 1;
this.matriksA[1][0] = -4;
this.matriksA[1][1] = 0;
this.matriksA[1][2] = -1;
}

// set elemen matriks B
public void isimatriksB()
{
this.matriksB[0][0] = 1;
this.matriksB[0][1] = 2;
this.matriksB[0][2] = 1;
this.matriksB[1][0] = -3;
this.matriksB[1][1] = 0;
this.matriksB[1][2] = -5;
}

// jumlahkan setiap elemen matriks A dan B, simpan di matriks C
public void jumlahkan()
{
this.matriksC[0][0] = this.matriksA[0][0] +
this.matriksB[0][0];
this.matriksC[0][1] = this.matriksA[0][1] +
this.matriksB[0][1];
this.matriksC[0][2] = this.matriksA[0][2] +
this.matriksB[0][2];
this.matriksC[1][0] = this.matriksA[1][0] +
this.matriksB[1][0];
this.matriksC[1][1] = this.matriksA[1][1] +
this.matriksB[1][1];
this.matriksC[1][2] = this.matriksA[1][2] +
this.matriksB[1][2];
}

// method untuk menampilkan matriks A, B atau C
public void tampilmatriks(char namamatriks)
{
int i, j;

if (namamatriks == 'A')
{
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman )'

for(i=0; i<matriksA.length; i++)
{
for(j=0; j<matriksA[i].length; j++)
{
System.out.print(String.format("%4d",
this.matriksA[i][j]));
}
System.out.println();
}
}
else if (namamatriks == 'B')
{
for(i=0; i<matriksB.length; i++)
{
for(j=0; j<matriksB[i].length; j++)
{
System.out.print(String.format("%4d",
this.matriksB[i][j]));
}
System.out.println();
}
}
else if (namamatriks == 'C')
{
for(i=0; i<matriksC.length; i++)
{
for(j=0; j<matriksC[i].length; j++)
{
System.out.print(String.format("%4d",
this.matriksC[i][j]));
}
System.out.println();
}
}
}
}
Selanutnya di class utama ?Matriks@ buat coding berikut ini
package matriks;

public class Matriks {

public static void main(String[] args) {

operasi op1 = new operasi();
// panggil method untuk menset nilai matriks A
op1.isimatriksA();
System.out.println("MATRIKS A");
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman )(

// panggil method untuk tampilkan matriks A
op1.tampilmatriks('A');
// panggil method untuk menset nilai matriks B
op1.isimatriksB();
System.out.println("MATRIKS B");
// panggil method untuk tampilkan matriks B
op1.tampilmatriks('B');
// panggil method untuk menjumlahkan matriks A dan B
op1.jumlahkan();
System.out.println("MATRIKS C");
// panggil method untuk tampilkan matriks C
op1.tampilmatriks('C');
}
}

Lati&an
1. -engan menggunakan array, buat proect Java untuk menampilkan bilangan maksimum,
minimum, dan rata4rata dari beberapa bilangan yang diinput melalui console.
1. -alam )8ample 1F, silakan dimodifikasi untuk menampilkan data karya%an yang memiliki gai
pokok paling rendah dan paling tinggi
:. #ambahkan method dalam )8ample 1! untuk mencari pengurangan matriksnya
=. 2nalog dengan )8ampe 1!, kembangkan program Java nya sehingga bisa melakukan
penumlahan dan pengurangan untuk sembarang matriks m 8 n









Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ))

Pe2arisan "In&eritance$
-i dalam Java, sifat suatu class dapat diturunkan atau di%ariskan pada sebuah class lain. 6stilah sifat
yang di%ariskan ini adalah atribut atau method. 0lass yang sifatnya di%ariskan ini dinamakan superclass,
dan class yang sifatnya me%arisi class lain dinamakan subclass.
'e%arisan ini merupakan keuntungan dalam '5/ karena suatu sifat atau method yang didefinisikan
dalam suatu superclass dapat di%ariskan pada semua subclassnya. Sehingga di dalam subclass tersebut
tidak perlu menulis kode program lagi untuk method tersebut.
Example 19
Misalkan diberikan sebuah class dengan nama ?kendaraan@ sbb3
public class kendaraan {

public int jmlRoda;
public int jmlSeat;
public String nama;

public void tampilJmlRoda()
{
System.out.println(this.nama + " jumlah rodanya: " +
this.jmlRoda);
}

public void tampilJmlSeat()
{
System.out.println(this.nama + " jumlah seat: " +
this.jmlSeat);

}

}
Selanutnya kita buat class di file yang lain yang merupakan turunan atau %arisan dari class ?kendaraan@
tersebut dengan nama ?kereta2pi@. -alam hal ini class ?kendaraan@ disebut superclass, dan ?kereta2pi@
adalah subclass.
public class keretaApi extends kendaraan {

public int jmlGerbong;

public void tampilJmlGerbong()
{
System.out.println(this.nama + " jumlah gerbongnya " +
this.jmlGerbong);
}

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ),

}
'erhatikan, di dalam class ?kereta2pi@ terdapat atribut tambahan yaitu ?mlgerbong@ dan method
?tampilJmlEerbong@.
Sekarang, bagaimana cara menggunakan kedua class tersebutT 'erhatikan contohnya berikut ini
public static void main(String[] args) {

kendaraan ob1 = new kendaraan();
ob1.nama = "Kijang Innova";
ob1.jmlRoda = 4;
ob1.jmlSeat = 6;
ob1.tampilJmlRoda();
ob1.tampilJmlSeat();

keretaApi ob2 = new keretaApi();
ob2.nama = "KA. Argo Lawu";
ob2.jmlRoda = 100;
ob2.jmlSeat = 500;
ob2.jmlGerbong = 20;
ob2.tampilJmlGerbong();
ob2.tampilJmlRoda();
ob2.tampilJmlSeat();

}
'erhatikan contoh di atas, bah%a obyek ?ob1@ dari instansiasi class ?kereta2pi@ bisa diset atribut4
atributnya seperti halnya ?ob1@, demikian uga method4methodnya. .husus atribut ?mlEerbong@ dan
method ?tampilJmlEerbong*+@ hanya dimiliki oleh class ?kereta2pi@ saa.
Keterangan:
Semua atribut dan method dari superclass yang memiliki modifier ?public@ akan bisa langsung di%ariskan
pada subclassnya, demikian uga ?protected@ namun dengan syarat subclass dan superclass nya berada
dalam package yang sama.
Example 20
-alam contoh ini, kita sedikit modifikasi program di )8ample 19 yaitu dengan menambahkan constructor
dengan sebuah parameter untuk setting atribut nama kendaraan pada class ?kendaraan@ nya.
public class kendaraan {

public int jmlRoda;
public int jmlSeat;
public String nama;

// constructor kendaraan
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman )-

public kendaraan(String x)
{
this.nama = x;
}

public void tampilJmlRoda()
{
System.out.println(this.nama + " jumlah rodanya: " +
this.jmlRoda);
}

public void tampilJmlSeat()
{
System.out.println(this.nama + " jumlah seat: " +
this.jmlSeat);

}
}
Jika di dalam class ?kendaraan@ terdapat constructor, maka begitu uga di class %arisannya yaitu
?kereta2pi@. -alam contoh ini, misalkan kita buat constructor dengan tambahan 1 parameter, yaitu
untuk setting atribut tipe .2. Sedangkan 1 parameternya lagi untuk nama kendaraan.
public class keretaApi extends kendaraan {

public int jmlGerbong;
public String tipeKA;

// constructor keretaApi
public keretaApi(String x, String y)
{
super(x);
this.tipeKA = y;
}

public void tampilJmlGerbong()
{
System.out.println(this.nama + " jumlah gerbongnya " +
this.jmlGerbong);
}

public void tampilTipeKA()
{
System.out.println(this.nama + " adalah jenis kereta " +
this.tipeKA);
}
}
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ).

'erhatikan contructor dalam class ?kereta2pi@ tersebut.
public keretaApi(String x, String y)
{
super(x);
this.tipeKA = y;
}
'erintah super*8+ menunukkan bah%a parameter 8 ini terkait dengan parameter ?nama kendaraan@ dari
constructor class kendaraan. Sedangkan parameter y nya untuk setting atribut tipe .2 nya. 5erikut ini
contoh pemanggilan class4class nya dalam implementasi.
public static void main(String[] args) {

kendaraan ob1 = new kendaraan("Kijang Innova");
ob1.jmlRoda = 4;
ob1.jmlSeat = 6;
ob1.tampilJmlRoda();
ob1.tampilJmlSeat();

keretaApi ob2 = new keretaApi("KA. Argo Lawu", "Executive");
ob2.jmlRoda = 100;
ob2.jmlSeat = 500;
ob2.jmlGerbong = 20;
ob2.tampilJmlGerbong();
ob2.tampilJmlRoda();
ob2.tampilJmlSeat();
ob2.tampilTipeKA();
}
2dapun outputnya adalah sbb3

Selanutnya bagaimana ika kita ingin supaya sebuah class tidak bisa dibuat subclass atau class
turunannya lagiT 0aranya hanya dengan menambahkan kata kunci ?final@, contoh3
public final class kendaraan {
.
.
}

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman )2

Overriding Met&od
Misalkan kita memiliki sebuah superclass sebagai berikut
public class superclass1 {

public int atribut1;
public int atribut2;

public void method1()
{
System.out.println("Ini adalah hasil method1() superclass");
}

}
.emudian kita buat beberapa subclass dari superclass di atas, yaitu
public class subclass1 extends superclass1 {

public void method1()
{
System.out.println("Ini adalah hasil method1() subclass1");
}

}
-an
public class subclass2 extends superclass1 {

public void method1()
{
System.out.println("Ini adalah hasil method1() subclass2");
}
}
Jika diperhatikan, maka baik di superclass maupun di subclass1 dan subclass1 terdapat method dengan
nama yang sama yaitu method1*+. -alam hal ini, method1*+ yang ada di subclass1 dikatakan overriding
method dari method1*+ yang ada di superclass1. -emikian uga untuk method1*+ yang ada di subclass1.
Jika suatu obyek diinstasiasikan dari class subclass1, dan kemudian obyek tersebut diberikan method
method1*+ maka akan memanggil method1*+ yang ada dalam subclass1 tersebut karena sudah
mengoverride method1*+ yang ada di superclass1.
5erikut ini contoh implementasinya untuk beberapa obyek dari class yang berbeda.

Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,4

public static void main(String[] args) {

superclass1 ob1 = new superclass1();
subclass1 ob2 = new subclass1();
subclass2 ob3 = new subclass2();

// memanggil method1 dari superclass1
ob1.method1();
// memanggil method1 dari subclass1
ob2.method1();
// memanggil method1 dari subclass2
ob3.method1();

}
2kan menghasilkan output3













Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,1

Polimor-isme
6stilah polimorfisme secara umum adalah suatu materi yang bisa memiliki banyak bentuk. -alam '5/,
istilah polimorfisme adalah kemampuan untuk mendefinisikan karakteristik subclass4subclass secara
unik.
,ntuk contoh gambaran dari kemampuan polimorfisme dalam Java ini, adalah tinau kembali
superclass1, subclass1 dan subclass1 dari bab O"erri%ing Metho%.
Selanutnya di main method nya, kita buat seperti ini3
public static void main(String[] args) {

superclass1 ob1, ob2, ob3;

ob1 = new superclass1();
ob2 = new subclass1();
ob3 = new subclass2();

ob1.method1();
ob2.method1();
ob3.method1();

}
'erhatikan pada perintah3
superclass1 ob1, ob2, ob3;
Meskipun kita definisikan ob1, ob1, dan ob: sebagai tipe data superclass1 yang sama, namun method
method1*+ yang dipanggil dari tiap4tiap obyek melalui perintah
ob1.method1();
ob2.method1();
ob3.method1();
menghasilkan output yang berbeda Cbeda3

Hal ini dikarenakan sebelum pemanggilan method method1*+ untuk setiap obyeknya, terlebih dahulu
kita instansiasi masing4masing obyeknya untuk class yang berbeda3
ob1 = new superclass1();
ob2 = new subclass1();
ob3 = new subclass2();
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,

Penanganan 03ception
)8ception adalah peristi%a yang teradi ketika proses running program yang mengakibatkan program
berhenti, ditandai dengan munculnya pesan error.
Sebagai contoh, misalkan kita punya program Java sbb3
public static void main(String[] args) {

int bilBulat;
bilBulat = Integer.parseInt(JOptionPane.showInputDialog("Masukkan
bilangan bulat"));
}
}
.etika program sederhana di atas dialankan, maka akan meminta masukan sebuah bilangan bulat
*integer+. 7amun, apa yang akan teradi ika yang dimasukkan bukan bilangan bulatT

2tau

Maka selanutnya akan muncul pesan error )8ception sbb3

,ntuk mengantisipasi munculnya )8ception tersebut, kita bisa melakukan penanganan dengan
statement
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,'

try
{
...
}
catch (namaexception var)
{
...
}
.eterangan3
4 ?namae8ception@ nantinya diisikan dengan nama e8ception yang muncul, dalam contoh
kasus sebelumnya yang merupakan nama e8ception adalah ?*umberAormat#=1eption@
4 Secara umum, kita bisa menggunakan key%ord ?#=1eption@ pada ?namae8ception@ untuk
menangkap semua e8ception yang teradi. .ey%ord ?)8ception@ adalah top level dari
semua e8ception.


Sedangkan ?var@ diisikan dengan sembarang nama variabel.
-engan statement try4catch di atas, maka pesan error e8ception tidak akan muncul namun akan
digantikan dengan pesan atau prosedur lain yang kita tuliskan dalam bagian 1at1h.
5erikut ini contoh penanganan )8ception dari kasus sebelumnya.
try
{
bilBulat = Integer.parseInt(JOptionPane.showInputDialog("Masukkan
bilangan bulat"));
}
catch (NumberFormatException e)
{
JOptionPane.showMessageDialog(null, "Input salah");
}
-engan penanganan di atas, maka ketika input yang dimasukkan bukan bilangan bulat maka akan
muncul pesan ?6nput Salah@.
5lok try4catch uga dapat berbentuk sbb3
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,(

try
{
...
}
catch (exception1 var1)
{
...
}
catch (exception2 var2)
{
...
}
.
.
catch (exceptionn varn)
{
...
}
5lok try4catch uga dapat diletakkan di sembarang struktur control, misalnya dalam looping.
public static void main(String[] args) {

int bil1, bil2;

// selama input untuk bil1 bukan bilangan bulat
// maka akan terus mengulang input
while (true)
{
try
{
bil1 =
Integer.parseInt(JOptionPane.showInputDialog("Masukkan Bilangan 1
(Integer)"));
break;
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "Bukan bilangan
integer");
}
}

// selama input untuk bil2 bukan bilangan bulat
// maka akan terus mengulang input

while (true)
{
try
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,)

{
bil2 =
Integer.parseInt(JOptionPane.showInputDialog("Masukkan Bilangan 2
(Integer)"));
break;
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "Bukan bilangan
integer");
}
}

JOptionPane.showMessageDialog(null, "Hasil penjumlahannya: " +
(bil1+bil2));

}
















Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,,

)ekerja Dengan +,I "+rap&ics ,ser Inter-ace$

-engan E,6, tampilan interface aplikasi menadi lebih user friendly dan menarik. Java menyediakan dua
class untuk E,6 antara lain3 2;# *2bstract ;indo%ing #oolkit+ yang ada dalam package ava.a%t dan
S;67E yang ada dalam package ava8.s%ing.
-alam modul ini hanya akan dibahas mengenai class S;67E saa mengingat S;67E merupakan
pengembangan dari 2;#. ,ntuk membuat proect Java dengan menggunakan interface E,6 cukup
mudah sekali dengan memanfaatkan 7)#5)27S. .ita cukup meletakkan komponen4komponen E,6
seperti #e8tBield, Aabel, 0ombo5o8, (adio5utton dll yang diinginkan ke dalam sebuah container *bisa
berupa Brame atau 'anel+, kemudian kita bisa berikan event pada komponen tersebut. )vent di dalam
E,6 adalah suatu action yang akan teradi ketika sebuah komponen diberikan sebuah trigger *pemicu+.
Sebagai contoh misalkan kita ingin supaya suatu proses teradi ketika sebuah tombol diklik melalui
mouse, maka kita bisa memberikan event Mouse0lick pada tombol tersebut.
Example 21:
Misalkan akan dibuat sebuah proect untuk membuat kalkulator sederhana dengan menggunakan E,6.
>ang8ah 8eB1 (0R#A3# ;RO!#03):
5uat proect baru dengan nama ?Kal8ulator@
>ang8ah 8eB (+?A3 ARAM#):
5uat Brame untuk meletakkan komponen4komponen E,6. -engan cara klik kanan pada package, pilih
7); C JBrame Borm

Selanutnya beri nama class untuk Bramenya, misalnya3 5rameKal8ulator
>ang8ah 8eB' (>#3AKKA* KOM;O*#*):
Selanutnya proses pengaturan tata letak komponen pada frame yang sudah dibuat. .omponen4
komponen yang bisa diletakkan di frame atau container secara umum ada dalam palette
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,-




,ntuk meletakkan komponen ke dalam frame cukup klik pada komponennya, lalu drop pada framenya.
atau bisa uga 2nda lakukan klik komponen, lalu drag ke arah frame.
Silakan 2nda atur tampilan komponen pada frame seperti berikut

.eterangan3
-alam frame di atas, terdapat beberapa komponen yang diletakkan yaitu : buah label, : buah te8tfield
dan 1 buah button.
Semua komponen yang kita letakkan dalam frame memiliki nama sendiri4sendiri yang unik, secara
default 7et5eans akan memberi nama masing4masing komponen yang bisa dilihat dibagian 72$6E2#/(
Brame
'alette
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,.




Sebagai contoh, misalkan untuk tombol yang ada dalam Brame di atas, nama komponennya adalah
J5utton1. Sedangkan kotak isian *#e8tBield+ untuk memasukkan bilangan pertama, nama komponennya
adalah #e8tBield1, dst.
Bungsi dari 7avigator uga dapat digunakan untuk melihat letak suatu komponen berada di dalam
container yang mana. Sebagai contoh perhatikan tampilan 7avigator sbb3

'ada struktur hirarki yang tampak pada navigator di atas, JBrame merupakan top level container, di
dalamnya ada 1 tombol *Jbutton1+ dan sebuah container dengan nama J'anel1. -i dalam J'anel1
terdapat komponen Jscroll'ane1 yang uga merupakan sebuah container., yang mana di dalamnya
terdapat komponen dengan Jte8t2rea1.


7avigator
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman ,2

>ang8ah 8eB( (?+A@ ;RO;#R3&#S KOM;O*#*)
,bah properties masing4masing komponen sesuai yang diinginkan. 'roperties di sini adalah segala sifat
yang melekat dari sebuah obyek komponen, misalnya %arna background, enis font, ukuran font dsb.
,ntuk mengubah properties dari suatu komponen, caranya dengan klik kanan pada komponen yang
akan diubah propertiesnya, lalu pilih ?'roperties@. Selanutnya akan muncul beberapa properties dari
komponen yang bisa diubah. Sebagai contoh akan diubah properties #)># dari komponen Aabel1
menadi ?5ilangan 1@

Sekarang ubah properties #)># pada tiap4tiap komponen sehingga diperoleh tampilan sbb3

>ang8ah 8eB) (+?A3 #6#*3):
Setelah tata letak komponen dan pengaturan propertiesnya sudah dilakukan berikutnya adalah
memberikan event pada komponennya. Sebagai contoh, misalnya kita ingin setelah user mengisikan
angka dan kotak isian bilangan 1 dan 1 kemudian akan muncul hasil penumlahannya ketika si user
mengklik tombol 9. Sesuai skenario ini, kita akan tambahkan sebuah event pada tombol 9 ini yaitu
menampilkan hasil penumlahan bilangan yang dipicu ketika tombol tersebut diklik.
,ntuk membuat event mouse klik pada suatu komponen caranya klik kanan komponennya, lalu pilih
)$)7#S C M/,S) 4 M/,S)0A60.)-
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -4


Selanutnya, ketikkan kode pada tempat yang di sediakan

.etikkan kode berikut ini
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

// deklarasi variabel
float bil1, bil2, hasil;

// baca nilai float dari komponen jTextField1
bil1 = Float.parseFloat(jTextField1.getText());
// baca nilai float dari komponen jTextField2
bil2 = Float.parseFloat(jTextField2.getText());
// jumlahkan
hasil = bil1 + bil2;

// tampilkan hasil ke komponen jTextField3
jTextField3.setText(String.valueOf(hasil));

}
>ang8ah 8eB, (3AM;&>KA* ARAM# 6&A MA&* 0>ASS)
Setelah event diberikan pada komponen, terakhir kita lakukan instansiasi untuk frame yang tadi telah
kita buat dalam main class nya.
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -1

Sisipkan kode berikut ini pada class ?.alkulator@ dalam file ?.alkulator.ava@
public class Kalkulator {

public static void main(String[] args) {

// instansiasi dari class frameKalkulator
frameKalkulator kalkulator1 = new frameKalkulator();
// tampilkan frame
kalkulator1.setVisible(true);

}
}
,ntuk melihat hasilnya, silakan alankan programnya.

Sebuah method dari event yang telah kita berikan pada suatu komponen bisa dihapus apabila tidak adi
digunakan dengan cara, klik kanan komponen yang akan dihapus event nya, pilih properties kemudian
pilih )vents

.emudian hapus nama event yang telah dibuat

Setelah dihapus menadi


Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -

-alam contoh sebelumnya, kita sudah mengenal apa itu event Mouse0licked, yaitu event yang teradi
ketika suatu klik mouse dilakukan pada komponen tersebut. Selain Mouse0licked, masih ada beberapa
event lain yang terkait dengan mouse yaitu
Mouse)ntered 3 ketika posisi kursor mouse mengenai komponen
Mouse)8ited 3 ketika posisi kursor mouse keluar dari komponen
Mouse'ressed 3 ketika tombol mouse ditekan pada komponen
Mouse(eleased 3 ketika tombol mouse dilepaskan *setelah ditekan+ pada komponen
,ntuk melihat efek beberapa event terkait dengan mouse di atas, perhatikan contoh proect berikut ini3
Example 22:
5uatlah proect baru, kemudian buat Brame dalam class ?Arame8u@ , sisipkan beberapa komponen serta
aturlah tata letaknya sbb3

Selanutnya ubah propertiesnya sehingga tampilannya seperti di atas.
.emudian tambahkan event Mouse#ntere% pada tombolnya, dan tulis kodenya berikut ini3
private void jButton1MouseEntered(java.awt.event.MouseEvent evt) {
// menampilkan pesan ke textarea
jTextArea1.setText("ini efek dari event MouseEntered);
}
.emudian tambahkan event Mouse#=ite% pada tombolnya, dengan kode berikut ini3
private void jButton1MouseExited(java.awt.event.MouseEvent evt) {
jTextArea1.setText("ini efek dari event MouseExited\");
}

#ambahkan event Mouse;resse%, pada tombol, dan tulis kode ini3
'anel
#e8t2rea
5utton
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -'

private void jButton1MousePressed(java.awt.event.MouseEvent evt) {
TextArea1.setText("ini efek dari event MousePressed");
}
#ambahkan event MouseRelease%, pada tombol, dan tulis kode ini3
private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {
jTextArea1.setText("ini efek dari event MouseReleased");
}
#erakhir, angan lupa lakukan instansiasi pada main class supaya frame bisa muncul ketika proect di run.
Selanutnya alankan program, dan perhatikan beberapa efek dari event tersebut.


Example 23:
-alam contoh ini, kita akan membuat proect yang di dalamnya terdapat beberapa komponen lainnya
yaitu #e8t2rea, Menu, dan (adio5utton.
-esainlah sebuah frame dengan tampilan sebagai berikut

Menu 5ar
Menu 6tem
Menu 6tem
Menu
#e8t 2rea
(adio 5utton
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -(


,ntuk membuat tombol short cut menu, caranya cukup mendouble click ?shortcut@ pada sub menu yang
ingin ditambahkan short cutnya.

.emudian tentukan short cut nya dengan memilih tombol yang dikehendaki

Selanutnya, supaya di antara beberapa komponen radio button tersebut hanya bisa dipilih salah satu
maka radio button harus dimasukkan ke dalam 5utton Eroup. /leh karena itu, tambahkan komponen
5utton Eroup ke dalam frame.

.emudian untuk memasukkan radio button4radio button ke dalam button group tersebut caranya, klik
kanan pada komponen 5utton Eroup melalui 7avigator, dan pilih 0ustomiPe 0ode

Selanutnya tambahkan kode berikut ini
buttonGroup1 = new javax.swing.ButtonGroup();
buttonGroup1.add(jRadioButton1);
buttonGroup1.add(jRadioButton2);
buttonGroup1.add(jRadioButton3);
buttonGroup1.add(jRadioButton4);
5erikutnya tambahkan event4event pada komponen berikut ini3
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -)

.omponen 3 Menu6tem1 *menu ?5ersihkan@+
)vent 3 action'erfomed
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt)
{
// membersihkan text area
jTextArea1.setText("");
}
.omponen 3 Menu6tem1 *menu ?,bah C ;arna Merah@+
)vent 3 action'erfomed
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt)
{
// mengubah warna text area menjadi merah
jTextArea1.setBackground(Color.red);
}
.omponen 3 Menu6tem: *menu ?,bah C ;arna .uning@+
)vent 3 action'erfomed
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt)
{
// mengubah warna text area menjadi kuning
jTextArea1.setBackground(Color.yellow);
}
.omponen 3 Menu6tem= *menu ?.eluar@+
)vent 3 action'erfomed
private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt)
{
// menampilkan konfirmasi
int hasil = JOptionPane.showConfirmDialog(this, "Apakah Anda
yakin mau keluar?", "Konfirmasi", JOptionPane.OK_CANCEL_OPTION);

// jika yang dipilih OK, maka program EXIT
if (hasil == JOptionPane.OK_OPTION)
{
System.exit(0);
}
}
.omponen 3 (adio5utton1 *(adio button 4 2rial+
)vent 3 action'erfomed
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -,

private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent
evt)
{
// mengubah font Text Area menjadi Arial, Plain, size 12 pt
Font huruf = new Font("Arial", Font.PLAIN, 12);
jTextArea1.setFont(huruf);
}
.omponen 3 (adio5utton1 *(adio button C#imes 7e% (oman+
)vent 3 action'erfomed
private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent
evt)
{
// mengubah font Text Area menjadi Times New Roman, Plain, size 12 pt
Font huruf = new Font("Times New Roman", Font.PLAIN, 12);
jTextArea1.setFont(huruf);
}
.omponen 3 (adio5utton: *(adio button 4 $erdana+
)vent 3 action'erfomed
private void jRadioButton3ActionPerformed(java.awt.event.ActionEvent
evt)
{
// mengubah font Text Area menjadi Verdana, Plain, size 12 pt
Font huruf = new Font("Verdana", Font.PLAIN, 12);
jTextArea1.setFont(huruf);
}
.omponen 3 (adio5utton= *(adio button C 0ourier 7e%+
)vent 3 action'erfomed
private void jRadioButton4ActionPerformed(java.awt.event.ActionEvent
evt)
{
// mengubah font Text Area menjadi Courier New, Plain, size 12 pt
Font huruf = new Font("Courier New", Font.PLAIN, 12);
jTextArea1.setFont(huruf);
}

Example 24:
'ada contoh ini, proect yang kita buat adalah membuat aplikasi perhitungan gai karya%an dengan
tampilan sbb3
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman --


.eterangan3
.omponen yang diberikan event pada proect ini adalah (adio 5utton *Menikah dan 5elum Menikah+,
yaitu event Mouse0licked. Jika yang dipilih adalah Menikah, maka #e8tBield untuk mengisi Jumlah 2nak
aktif sehingga user bisa mengisikan umlah anaknya. Sedangkan ika yang dipilih 5elum Menikah, maka
#e8tBield Jumlah 2nak akan diisi " dan dinonaktifkan sehingga user tidak bisa mengisi umlah anaknya.
)vent uga diberikan pada button Hitung Eai 5ersih, yaitu Mouse0licked yang nantinya akan melakukan
proses perhitungan gai.
,ntuk lebih detilnya, silakan mengunduh file proect nya di
http://rosihanari.net/tutorial/pro7e1tBga7i.Cip
dan silakan dipelaari sendiri 34+
Lati&an
1. #inau kembali )8ample 11, tambahkan button untuk melakukan operasi pengurangan, perkalian
dan pembagian. .emudian buat event pada button4button tersebut. ,sahakan tidak teradi
kemungkinan )rror yang disebabkan oleh )8ception.
1. 'ada )8ample 1=, modifikasi proectnya supaya user tidak bisa memasukkan umlah anak berupa
bilangan real atau negatif. Jika umlah anak berupa bilangan real, maka akan muncul )8ception.