Upload
aditya-widiatama
View
45
Download
0
Embed Size (px)
DESCRIPTION
Buku JAVA
Citation preview
5/22/2018 JAVA Tutorial - Rosihan Ari
1/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1
Pemrograman JavaOleh: Rosihan Ari Yuana, S.Si, M.Kom
(http://blog.rosihanari.net)
Tentang JavaJava 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 merekasendiri 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". 2da beberapa Java platform untuk
keperluan development, yaitu3
4 Java S) *Standard )dition+, yang khusus digunakan untuk pengembangan aplikasi4aplikasi pada '0 atau %orkstation.
4 Java M) *Micro )dition+, yaitu khusus digunakan untuk pengembangan aplikasi4aplikasiyang ada di perangkat mobile spt H', smartphone, '-2, tablet dsb.4 Java )) *)nterprise )dition+, yaitu khusus digunakan untuk pengembangan aplikasi skalabesar *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
5/22/2018 JAVA Tutorial - Rosihan Ari
2/77
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. erikut ini perangkat yang ada di dalam sebuah J-3development tools , Java runtime environtment *J()+, library, Java - *Java relational database+,
demo aplikasi dan applet, serta contoh4contoh program.
4 !a"a De"elopment &D#*6ntegrated -evelopment )nvironment+, misal3 7eteans atau eclipse.
erikut ini langkah instalasinya3
1. nduh keduanya *J- dan 7eteans+ sekaligus di3http3&&%%%.oracle.com&technet%ork&ava&avase&do%nloads&inde8.html
. 'ilih J- 7etbeans
:. 'ilih platform sistem operasi yang sesuai
eterangan3
;indo%s 8
5/22/2018 JAVA Tutorial - Rosihan Ari
3/77
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 Jnit@, lik 7)>#
5/22/2018 JAVA Tutorial - Rosihan Ari
4/77
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 7eteans 6-)
5/22/2018 JAVA Tutorial - Rosihan Ari
5/77
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@. erikut ini langkah
pembuatannya3
1. Jalankan *et+eans
#ampilan a%al 7eteans
5/22/2018 JAVA Tutorial - Rosihan Ari
6/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman
. lik menu B6A) C 7); '(/J)0#, setelah itu akan muncul '(/J)0# ;6D2(- yang memudahkan2nda 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. eri 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.
5/22/2018 JAVA Tutorial - Rosihan Ari
7/77
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 ;[email protected]("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 makamenandakan ada sintaks yang salah pada baris tersebut.
0ontoh tampilan pesan kesalahan pada suatu baris program.
5/22/2018 JAVA Tutorial - Rosihan Ari
8/77
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 6A-supaya dihasilkan file aplikasi Java yang e8ecutable. Hasil proses 6A- ini berupa file G.ar.
ntuk melakukan proses 6A- suatu proect, caranya klik (7 C 6A- '(/J)0#. Hasil dari
proses 6A- proect ini *G.ar+, secara otomatis akan tersimpan di folder ?dist@, dalam contoh ini
di dalam direktori D:!a"aApp0ontoh1%ist.
Sedangkan source code nya sendiri tersimpan di direktori D:!a"aApp0ontoh1sr.
1.Selanutnya, file Java )8ecutable Bile *G.ar+ bisa kita eksekusi via command prompt denganperintah
java -jar "D:/JavaApp/Contoh1/dist/Contoh1.jar"
eterangan3
ntuk pembuatan aplikasi Java dengan E6 *Eraphics ser 6nterface+ akan dibahas pada bab yang lain.
5/22/2018 JAVA Tutorial - Rosihan Ari
9/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 2
Tipe Data Dalam JavaSebagai 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
yte 41! ... 1F ilangan bulat
Short 4:F
6nt 4 1=F=!:Bloat ilangan riil
-ouble ilangan riil
0har arakterString String *beberapa karakter+
oolean true&false 4
erikut 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#
. 'ilih J2$2 pada 0ategories dan J2$2 2''A602#6/7 pada 'roects.:. 6sikan nama proectnya dengan nama ?0ontoh:@
=. emudian tulis kode berikut inipackage contoh3;
public class Contoh3 {
public static void main(String[] args) {
// deklarasi variabel dan tipe datanya
int gajiPokok;
float potonganGaji, gajiBersih;
5/22/2018 JAVA Tutorial - Rosihan Ari
10/77
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 Javaerikut ini beberapa enis operator yang dikenal dalam bahasa Java
Operator Aritmatika
Simbol Operator Keterangan
'enumlahan
4 'engurangan
G 'erkalian
& 'embagian
Modulus *sisa hasil bagi+
5/22/2018 JAVA Tutorial - Rosihan Ari
11/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 11
Operator Logika
Simbol Operator Keterangan
I Aogika 27-
Aogika /(
K Aogika >/(
L Aogika 7/#
Operator IncrementDecrement
Simbol Operator Keterangan
$alue bertambah 1
44 $alue berkurang 1
Operator !elasional
Simbol Operator Keterangan
Aebih kecil dari
N Aebih besar dari
NO Aebih besar atau sama dengan dari
O Aebih kecil atau sama dengan dari
O O Sama dengan
LO #idak sama dengan
Operator MajemukSimbol Operator Keterangan
O 0ontoh3 a O , ekuivalen dg a O a
4O 0ontoh3 a 4O , ekuivalen dg a O a 4
GO 0ontoh3 a GO , ekuivalen dg a O a G
&O 0ontoh3 a &O , ekuivalen dg a O a &
O 0ontoh3 a O , ekuivalen dg a O a
Konsep Pemrograman Dalam Java "#$
'emrograman Java menggunakan konsep 'emrograman erorientasi /byek *'/+ atau /bect /riented
'rogramming *//'+. Semua program Java merupakan suatu obyek. -asar4dasar //' meliputi istilah
berikut ini3
4 0lass4 /bect4 2ttribute4 Method
5/22/2018 JAVA Tutorial - Rosihan Ari
12/77
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 blueprintdari suatu obyek.
erikut ini adalah aturan pembuatan class dalam Java3
public class namaclass
{
.
.
}
2turan pemberian nama class3
4 -imulai dengan huruf, atau tanda Q atau tanda R4 #idak boleh menggunakan reserved %ord dalam Java4 #idak boleh memuat operator aritmatika4 ersifat 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.
5/22/2018 JAVA Tutorial - Rosihan Ari
13/77
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 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 ?operasiilangan@. -i dalam class tersebut, misalkan kita buat
atribut yaitu ?bilangan1@ dan ?bilangan@, merupakan kedua bilangan yang akan dioperasikan, serta ?hasil@
yang merupakan hasil dari operasi kedua bilangan. Selanutnya di dalam class ?operasiilangan@ 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. erikut ini langkah4langkahnya3
1. lik 7); '(/J)0#
5/22/2018 JAVA Tutorial - Rosihan Ari
14/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1
. 'ilih ?J2$2@ pada 0ategories, dan ?Java 2pplication@ pada ?'roect@:. Misalkan untuk 7ama 'roect, kita beri nama ?contoh@
=. Setelah pembuatan proect ?contoh@ ini berhasil, maka secara otomatis akan muncul packagedengan nama ?contoh@
5. Selanutnya, kita buat 0lass dengan nama ?operasiilangan@ dalam package ?contoh@ tersebutyaitu dengan mengklik kanan pada nama package nya, lalu pilih 7);, dan pilih J2$2 0A2SS
5/22/2018 JAVA Tutorial - Rosihan Ari
15/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1
F. Setelah membuat class ?operasiilangan@, maka secara otomatis Java akan membuat file dengannama ?operasiilangan.ava@ pada direktori proect. 0lass ?operasiilangan@ ini terletak dalam
package ?contoh@. -an tugas kita kemudian akan menulis kode dalam class operasiilangan
tersebut.
!. #ulislah kode berikut ini di dalam class operasiilanganpublic 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);
}
}
5/22/2018 JAVA Tutorial - Rosihan Ari
16/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1
eterangan3
4 ilangan1, bilangan dan hasil merupakan atribut atau properties dari classoperasiilangan. 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 classtersebut.
9. emudian, di class ?0ontoh@ nya *di file ?0ontoh.ava@+ kita tulis kode program sebagai berikutpublic 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 ?operasiilangan@.
'erintah
op1.bilangan1 = 10;
5/22/2018 JAVA Tutorial - Rosihan Ari
17/77
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 ?bilangan@ 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 :
erikut ini contoh yang merupakan pengembangan dari proect ?contoh@.
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;
5/22/2018 JAVA Tutorial - Rosihan Ari
18/77
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 obyek dari class yang sama yaitu ?op1@ dan ?op@. 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 ?0ontoh.ava@ ini kita tuliskan ?op1.@ maka ika muncul tool tips seperti
gambar di ba%ah ini
ang menandakan bah%a atribut dan method yang ada dalam class ?operasiilangan@ bisa diakses.
2tribut dan method yang muncul dalam tool tips hanyalah yang diset sebagai 'A60 saa, sedangkanyang '(6$2#) tidak muncul. 'erhatikan, bah%a atribut ?hasil@ yang sebelumnya kita set '(6$2#) dalam
class ?operasiilangan@ 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.
5/22/2018 JAVA Tutorial - Rosihan Ari
19/77
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 ?0ontoh@ 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 ?0ontoh@ ini adalah dengan mengklik kanan pada
?Source 'ackage@, lalu pilih 7); C J2$2 '202E)
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@
5/22/2018 JAVA Tutorial - Rosihan Ari
20/77
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 ?0ontoh@ 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 ?0ontoh@ nya *dalam file ?0ontoh.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;
5/22/2018 JAVA Tutorial - Rosihan Ari
21/77
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 a... karena class ?0ontoh@ ini beda package dengan class ?classku@ di mana class
?0ontoh@ ini ada di dalam package ?contoh@ 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 ?0ontoh@ sebelumnya. Sekarang kita akan modifikasi class ?operasiilangan@
nya sebagai berikut3
5/22/2018 JAVA Tutorial - Rosihan Ari
22/77
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 ?operasiilangan@ 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 ?0ontoh@ *contoh.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();
}
}
5/22/2018 JAVA Tutorial - Rosihan Ari
23/77
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 ?0ontoh@ 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 cetakata*+ tersebut sebuah parameter ?kata@ bertipe data String. 7ilai parameter ?kata@
tersebut selanutnya akan ditampilkan ke layar.
emudian, di method main*+ di class ?0ontoh@ 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;
5/22/2018 JAVA Tutorial - Rosihan Ari
24/77
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. uat proect Java dengan nama ?suhu@. 2plikasi Java yang akan dibuat ini akan mengkonversisuhu 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
5/22/2018 JAVA Tutorial - Rosihan Ari
25/77
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 :" celcius4 =5 celcius4 5".5 celcius4 1" celcius
eterangan3
4 ntuk setiap nilai suhu celcius, buatlah obyek tersendiri.4 ntuk formula konversi suhu, silakan buka
http3&&id.%ikipedia.org&%iki&(umusQkonversiQsuhu
. uat 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 ilangan pertama yg akan
dioperasikan
bil 'ublic Bloat ilangan kedua yg akan
dioperasikan
hasil 'ublic Bloat Hasil operasi kedua bilangan
*ama metho% Si5at Metho% 3ipe DataReturn 6alue
Keterangan
diumlahkan*+ 'ublic *non void+ Bloat Menumlahkan bilangan
dikurangi*+ 'ublic *non void+ Bloat Mengurangi bilangan
dikalikan*+ 'ublic *non void+ Bloat Mengalikan bilangan
dibagi*+ 'ublic *non void+ Bloat Membagi bilangan
dipangkatkan*+ 'ublic *non void+ Bloat Memangkatkan suatu bilangan
5/22/2018 JAVA Tutorial - Rosihan Ari
26/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman
0lass3 luas
*ama Atribut Si5at 3ipe Data KeteranganAuas '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 perhitunganluasnya.
0lass3 volume
*ama Atribut Si5at 3ipe Data Keterangan
$olume 'rivate Bloat $olume suatu bangun ruang
*ama metho% Si5at Metho% 3ipe Data
Return 6alue
Keterangan
volubus*sisi+ 'ublic *void+ 4 Hitung vol kubusvolola*r+ 'ublic *void+ 4 Hitung vol bola
volalok*p, l, t+ 'ublic *void+ 4 Hitung vol balok
volerucut*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 panang4 Hitung luas segitiga, ika diketahui panang alas 1".: satuan panang dan tingginya F.! 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);
}
}
5/22/2018 JAVA Tutorial - Rosihan Ari
30/77
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=!5F1=!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. erikut ini contohnya3
Example 9:
0ontoh program Java untuk menampilkan : digit di belakang koma untuk bilangan 'i *&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;
5/22/2018 JAVA Tutorial - Rosihan Ari
31/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '1
Input Data (ia +,I "+rap&ics ,ser Interace$
Selain via console, input data uga bisa dilakukan via E6. -i dalam Java, untuk membuat aplikasi
berbasis E6 bisa menggunakan S;67E sebagai package nya, sehingga di dalam program perlumelakukan import dengan perintah sebagai berikut3
import javax.swing.*;
erikut ini contoh kode Java untuk menerima input melalui form E6 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 E6
kemudian menampilkan hasilnya via Message -ialog.
5/22/2018 JAVA Tutorial - Rosihan Ari
32/77
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 tipedata short dan double
. uatlah proect Java untuk menghitung banyaknya masing4masing pecahan uang (p 1"".""", (p5".""", (p ".""", (p 1".""" dan (p 5.""" dari sebuah nilai uang. Sebagai contoh misalkan
umlah uangnya (p. 1.!".""" maka umlah pecahannya (p 1"".""" adalah 1, pecahan (p
5".""" adalah 1, pecahan (p ".""" 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 "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.
5/22/2018 JAVA Tutorial - Rosihan Ari
33/77
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 E6
5/22/2018 JAVA Tutorial - Rosihan Ari
34/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '
'truktur Kontrol ProsesStruktur 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;
5/22/2018 JAVA Tutorial - Rosihan Ari
35/77
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.
erikut ini beberapa statement yang dapat digunakan untuk mengatur proses perulangan3
5/22/2018 JAVA Tutorial - Rosihan Ari
36/77
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 tunangan istri tunangan anak C potongan
-i mana tunangan istri diberikan sebesar 1" dari gai pokok, dan tunangan anak adalah 5 dari tiap
anak. Sedangkan potongannya adalah 5 dari total gai pokok dan tunangan4tunangan.
'ertama kita buat dahulu proect dengan nama misalnya3 ?proectEai@
5/22/2018 JAVA Tutorial - Rosihan Ari
37/77
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
kodearya%an 'ublic String ode karya%an
namaarya%an 'ublic String 7ama karya%an
gaipokok 'ublic Bloat Eai pokok karya%an
statusMenikah 'ublic 0har Status menikah ?@ 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
hitungEaiersih*+ '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')
5/22/2018 JAVA Tutorial - Rosihan Ari
38/77
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.
;ro7et
5/22/2018 JAVA Tutorial - Rosihan Ari
39/77
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 *1".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
5/22/2018 JAVA Tutorial - Rosihan Ari
40/77
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".""",44 Jika golongannya 666b, maka angsuran perbulannya (p 1"".""",44 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 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)
{
5/22/2018 JAVA Tutorial - Rosihan Ari
41/77
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));
5/22/2018 JAVA Tutorial - Rosihan Ari
42/77
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%annyadengan ketentuan bah%a besarnya gai pokoknya tergantung golongannya3
O*
5/22/2018 JAVA Tutorial - Rosihan Ari
43/77
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.
. -ari hasil terakhir >atihan *o 1 sebelumnya, tambahkan method baru dengan namasimulasiAngsuranRumah(). 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*
5/22/2018 JAVA Tutorial - Rosihan Ari
44/77
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 sebelumnyasetiap 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
erikut 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 bilangan misalnya 1" dan ", 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;
5/22/2018 JAVA Tutorial - Rosihan Ari
45/77
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 bil nya. Sehingga secara umum perintah
untuk menumlahkan dua bilangannya adalah sbb3
operasi op1 = new operasi(10, 20);
op1.jumlahkan();
op1.tampilhasil();
Lati&an
1. uatlah proect dengan nama ?bangun-atar@ untuk mencari luas dan keliling beberapa buahbangun 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 ?hitungeliling@.
. uatlah proect dengan nama ?deret@ untuk menampilkan deret aritmatika. Selanutnya buatclass dengan nama ?aritmatika@ dengan constructor a *suku a%al+, b *selisih+, dan n *umlah
suku+. emudian buat method tampil-eret*+ untuk menampilkan deret aritmatikanya.
5/22/2018 JAVA Tutorial - Rosihan Ari
46/77
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 ".
erikut 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 15erikut 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 xpublic 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
5/22/2018 JAVA Tutorial - Rosihan Ari
47/77
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
erikut 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 ?arrayarya%an@
emudian, buat class untuk kepentingan input data via console seperti yang pernah di bahas di bab
sebelumnya.
5/22/2018 JAVA Tutorial - Rosihan Ari
48/77
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 ?dataarya%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;
5/22/2018 JAVA Tutorial - Rosihan Ari
49/77
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
5/22/2018 JAVA Tutorial - Rosihan Ari
50/77
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
5/22/2018 JAVA Tutorial - Rosihan Ari
51/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1
erikut ini tampilan proect ketika dialankan
Selanutnya bagaimana ika array nya merupakan array dimensiT erikut 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 "U
float[][] contoharray = new float[10][20];
Example 18
erikut ini contoh program Java untuk menumlahkan buah matriks 2 dan dengan ukuran masing4
masing 8 :.
uat 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];
5/22/2018 JAVA Tutorial - Rosihan Ari
52/77
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')
{
5/22/2018 JAVA Tutorial - Rosihan Ari
53/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman '
for(i=0; i
5/22/2018 JAVA Tutorial - Rosihan Ari
54/77
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.
. -alam )8ample 1F, silakan dimodifikasi untuk menampilkan data karya%an yang memiliki gaipokok 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
5/22/2018 JAVA Tutorial - Rosihan Ari
55/77
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 '/ 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);
}
5/22/2018 JAVA Tutorial - Rosihan Ari
56/77
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 ?ob@ 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
5/22/2018 JAVA Tutorial - Rosihan Ari
57/77
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);
}
}
5/22/2018 JAVA Tutorial - Rosihan Ari
58/77
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. erikut 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 finalclass kendaraan {
.
.
}
5/22/2018 JAVA Tutorial - Rosihan Ari
59/77
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 subclass1extends superclass1 {
public voidmethod1()
{
System.out.println("Ini adalah hasil method1() subclass1");
}
}
-an
public class subclass2extends superclass1 {
public voidmethod1()
{
System.out.println("Ini adalah hasil method1() subclass2");
}
}
Jika diperhatikan, maka baik di superclass maupun di subclass1 dan subclass 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 subclass.
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.
erikut ini contoh implementasinya untuk beberapa obyek dari class yang berbeda.
5/22/2018 JAVA Tutorial - Rosihan Ari
60/77
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
5/22/2018 JAVA Tutorial - Rosihan Ari
61/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 1
Polimorisme6stilah polimorfisme secara umum adalah suatu materi yang bisa memiliki banyak bentuk. -alam '/,
istilah polimorfisme adalah kemampuan untuk mendefinisikan karakteristik subclass4subclass secaraunik.
ntuk contoh gambaran dari kemampuan polimorfisme dalam Java ini, adalah tinau kembali
superclass1, subclass1 dan subclass 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, ob, 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();
5/22/2018 JAVA Tutorial - Rosihan Ari
62/77
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
5/22/2018 JAVA Tutorial - Rosihan Ari
63/77
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 contohkasus sebelumnya yang merupakan nama e8ception adalah ?*umberormat#=eption@
4 Secara umum, kita bisa menggunakan key%ord ?#=eption@ pada ?namae8ception@ untukmenangkap 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 ath.
erikut 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@.
lok try4catch uga dapat berbentuk sbb3
5/22/2018 JAVA Tutorial - Rosihan Ari
64/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman
try
{
...
}
catch (exception1 var1)
{
...
}
catch (exception2 var2)
{
...
}
.
.
catch (exceptionn varn)
{
...
}
lok 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
5/22/2018 JAVA Tutorial - Rosihan Ari
65/77
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));
}
5/22/2018 JAVA Tutorial - Rosihan Ari
66/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman
)ekerja Dengan +,I "+rap&ics ,ser Interace$
-engan E6, tampilan interface aplikasi menadi lebih user friendlydan menarik. Java menyediakan dua
class untuk E6 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 E6 cukup
mudah sekali dengan memanfaatkan 7)#)27S. ita cukup meletakkan komponen4komponen E6
seperti #e8tBield, Aabel, 0omboo8, (adioutton dll yang diinginkan ke dalam sebuah container *bisa
berupa Brame atau 'anel+, kemudian kita bisa berikan event pada komponen tersebut. )vent di dalam
E6 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 E6.
>ang8ah 8eB1 (0R#A3# ;RO!#03):
uat proect baru dengan nama ?Kal8ulator@
>ang8ah 8eB (+?A3 RAM#):
uat Brame untuk meletakkan komponen4komponen E6. -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
5/22/2018 JAVA Tutorial - Rosihan Ari
67/77
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 te8tfielddan 1 buah button.
Semua komponen yang kita letakkan dalam frame memiliki nama sendiri4sendiri yang unik, secara
default 7eteans akan memberi nama masing4masing komponen yang bisa dilihat dibagian 72$6E2#/(
Brame 'alette
5/22/2018 JAVA Tutorial - Rosihan Ari
68/77
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
Jutton1. 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
5/22/2018 JAVA Tutorial - Rosihan Ari
69/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman 2
>ang8ah 8eB (?+A@ ;RO;#R3S 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 ?ilangan 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 kemudian akan muncul hasil penumlahannya ketika si user
mengklik tombol . Sesuai skenario ini, kita akan tambahkan sebuah event pada tombol 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)-
5/22/2018 JAVA Tutorial - Rosihan Ari
70/77
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* RAM# 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.
5/22/2018 JAVA Tutorial - Rosihan Ari
71/77
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
5/22/2018 JAVA Tutorial - Rosihan Ari
72/77
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:
uatlah proect baru, kemudian buat Brame dalam class ?rame8u@ , 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
5/22/2018 JAVA Tutorial - Rosihan Ari
73/77
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 (adioutton.
-esainlah sebuah frame dengan tampilan sebagai berikut
Menu 5ar
Menu 6tem
Menu 6tem
Menu
#e8t 2rea
(adio 5utton
5/22/2018 JAVA Tutorial - Rosihan Ari
74/77
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 utton Eroup. /leh karena itu, tambahkan komponen
utton Eroup ke dalam frame.
emudian untuk memasukkan radio button4radio button ke dalam button group tersebut caranya, klik
kanan pada komponen utton 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);
erikutnya tambahkan event4event pada komponen berikut ini3
5/22/2018 JAVA Tutorial - Rosihan Ari
75/77
Ditulis oleh: Rosihan Ari Yuana, S.Si, M. Kom http://blog.rosihanari.net
Halaman -
omponen 3 Menu6tem1 *menu ?ersihkan@+
)vent 3 action'erfomed
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt)
{
// membersihkan text area
jTextArea1.setText("");
}
omponen 3 Menu6tem *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 EXITif (hasil == JOptionPane.OK_OPTION)
{
System.exit(0);
}
}
omponen 3 (adioutton1 *(adio button 4 2rial+
)vent 3 action'erfomed
5/22/2018 JAVA Tutorial - Rosihan Ari
76/77
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 (adioutton *(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 ptFont huruf = new Font("Times New Roman", Font.PLAIN, 12);
jTextArea1.setFont(huruf);
}
omponen 3 (adioutton: *(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 ptFont huruf = new Font("Verdana", Font.PLAIN, 12);
jTextArea1.setFont(huruf);
}
omponen 3 (adioutton= *(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("Cou