andriagutama.com
Mari Belajar Java!!!
By Andria Gutama
2005-2008
Mahasiswa Politeknik Batam
Jurusan Teknik Informatika
2009-2011
Mahasiswa Fakultas Teknik Universitas Maritim Raja Ali Haji (FT Umrah)
Jurusan Teknik Perangkat Lunak
2008-now 2011
Program Analyst PT Citra Tubindo Tbk Batam
1/66
andriagutama.com
Pendahuluan
Semua orang yang ingin mempelajari Java selalu mengatakan kalau Java adalah bahasa yang susah,
sulit, nggak manusiawi, dan lain sebagainya.
Baca dan ikuti semua contoh program Java dalam buku ini, dan Anda akan menyadari bahwa Java
adalah bahasa pemrograman yang mudah untuk dipelajari, sekaligus bahasa pemrograman yang
canggih!!
Mari Belajar Java!!!!
*Semua program di tulisan ini telah dicoba oleh Penulis
PenulisAndria Gutama
2/66
andriagutama.com
Daftar IsiBab 1. Mengenal Java.................................................................................................................................................................5
1.1. Platform Independent......................................................................................................................................................51.2. Library............................................................................................................................................................................51.3. Object Oriented...............................................................................................................................................................5
Bab 2. Instalasi Java....................................................................................................................................................................62.1. Instalasi JDK di Lingkungan Linux................................................................................................................................62.2. Instalasi JDK di Lingkungan Windows..........................................................................................................................62.3. Tes Hasil Instalasi...........................................................................................................................................................7
Bab 3. Java Hello World!!...........................................................................................................................................................83.1. Kompilasi Source Code..................................................................................................................................................83.2. Interpretasi Byte Code....................................................................................................................................................8
Bab 4. Struktur Program Java......................................................................................................................................................9Bab 5. Konstruktor dan Method dalam Java.............................................................................................................................11Bab 6. Tipe Data, Statement dan Ekspresi................................................................................................................................14
6.1. Variabel dan Tipe Data..................................................................................................................................................146.2. Statement......................................................................................................................................................................156.3. Ekspresi.........................................................................................................................................................................156.4. Blok...............................................................................................................................................................................15
Bab 7. Array dalam Java............................................................................................................................................................167.1. Deklarasi Array.............................................................................................................................................................167.2. Mengakses Element dalam Array.................................................................................................................................167.3. Contoh Program............................................................................................................................................................16
Bab 8. Control Flow Statement.................................................................................................................................................198.1. Decision Making...........................................................................................................................................................198.2. Looping.........................................................................................................................................................................20
Bab 9. Exception Handling.......................................................................................................................................................23Bab 10. Java Input Output Operation (1)..................................................................................................................................30
10.1. Byte Streams...............................................................................................................................................................30Bab 11. Java Input Output Operation (2)..................................................................................................................................32
11.1. Character Stream.........................................................................................................................................................32Bab 12. Java Input Output Operation (3)..................................................................................................................................34Bab 13. Java Input Output Operation (4)..................................................................................................................................36Bab 14. Java Input Output Operation (5)..................................................................................................................................38Bab 15. Java Package................................................................................................................................................................40Bab 16. Java Inheritance...........................................................................................................................................................41Bab 17. Java Collections...........................................................................................................................................................45Bab 18. Java Collections (2) HashMap.....................................................................................................................................50Bab 19. Operasi Database.........................................................................................................................................................54Bab 20. Java GUI : Frame.........................................................................................................................................................60Bab 21. Java GUI : Frame With Grid Layout............................................................................................................................63Bab 22. Java GUI : Table with Vector.......................................................................................................................................65
3/66
andriagutama.com
Daftar Contoh ProgramBab 1. Mengenal Java.................................................................................................................................................................6Bab 2. Instalasi Java....................................................................................................................................................................7Bab 3. Java Hello World!!...........................................................................................................................................................9
Contoh Program : HelloWorld.java.......................................................................................................................................9Bab 4. Struktur Program Java....................................................................................................................................................10
Contoh Program : Belajar.java.............................................................................................................................................10Bab 5. Konstruktor dan Method dalam Java.............................................................................................................................12
Contoh Program : BangunRuang.java.................................................................................................................................12Bab 6. Tipe Data, Statement dan Ekspresi................................................................................................................................15Bab 7. Array dalam Java............................................................................................................................................................17
Contoh Program : ContohArray.java...................................................................................................................................18Bab 8. Control Flow Statement.................................................................................................................................................20
Contoh If Then.....................................................................................................................................................................20Contoh If Then Else.............................................................................................................................................................20Contoh If Then Else.............................................................................................................................................................20Contoh Switch Case.............................................................................................................................................................21Contoh perulangan While....................................................................................................................................................21Contoh Perulangan Do While..............................................................................................................................................22Contoh Perulangan For........................................................................................................................................................22Contoh Program : TabelPerkalian.java................................................................................................................................22
Bab 9. Exception Handling.......................................................................................................................................................24Contoh Program : Exception2.java......................................................................................................................................26
Bab 10. Java Input Output Operation (1)..................................................................................................................................30Contoh Program : BacaTulis.java........................................................................................................................................30
Bab 11. Java Input Output Operation (2)..................................................................................................................................32Contoh Program : BacaTulis2.java......................................................................................................................................32
Bab 12. Java Input Output Operation (3)..................................................................................................................................34Contoh Program : BacaTulis3.java......................................................................................................................................34
Bab 13. Java Input Output Operation (4)..................................................................................................................................36Contoh Program : BacaTulis4.java......................................................................................................................................36
Bab 14. Java Input Output Operation (5)..................................................................................................................................38Contoh Program : BacaTulis5.java......................................................................................................................................38
Bab 15. Java Package................................................................................................................................................................40Bab 16. Java Inheritance...........................................................................................................................................................41
Contoh Program : Kendaraan.java.......................................................................................................................................41Contoh Program : Mobil.java..............................................................................................................................................42Contoh Program : Uji.java...................................................................................................................................................43
Bab 17. Java Collections...........................................................................................................................................................45Contoh Program : Person.java.............................................................................................................................................45Contoh penggunaan Vector..................................................................................................................................................46Contoh Program : UsingVector.java....................................................................................................................................46Contoh Penggunaan Stack...................................................................................................................................................47Contoh Program : UsingStack.java......................................................................................................................................47
Bab 18. Java Collections (2) HashMap.....................................................................................................................................50Contoh Program : Person.java.............................................................................................................................................50Contoh Program : UsingHashMap.java...............................................................................................................................51
Bab 19. Operasi Database.........................................................................................................................................................54Contoh Program : Query.java..............................................................................................................................................54Contoh Program : InputDataMhs.java.................................................................................................................................57
Bab 20. Java GUI : Frame.........................................................................................................................................................60Bab 21. Java GUI : Frame With Grid Layout............................................................................................................................63
4/66
andriagutama.com
Bab 22. Java GUI : Table with Vector.......................................................................................................................................65
5/66
andriagutama.com
Bab 1. Mengenal Java
Java adalah bahasa Pemrograman berorientasi Objek (PBO) / object oriented programming (OOP) yang
dikembangkan oleh Sun Microsystem sejak tahun 1991. Bahasa ini dikembangkan mirip dengan bahasa
C++, namun dirancang untuk lebih mudah digunakan dan platform independent, yaitu dapat dijalankan
di berbagai sistem operasi dan arsitektur komputer. Java juga dirancang untuk pemrograman di internet.
1.1. Platform Independent
Program yang ditulis dengan menggunakan bahasa Java dapat dipindahkan dengan mudah ke berbagai
sistem operasi dan berbagai arsitektur komputer. Anda tidak perlu merubah source code Java di
platform lain. Anda hanya perlu mengkompilasi source code tersebut. Hasil kompilasi tersebut akan
menghasilkan file .class yang disebut dengan Java Bytecode. Java Bytecode tersebut akan dieksekusi
oleh Java Virtual Machine (JVM) yang ada pada suatu platform.
Kompiler dan interpreter untuk program Java dinamakan Java Development Kit (JDK) yang bisa
didownload gratis di http://java.sun.com. Anda membutuhkan JDK untuk mengembangkan aplikasi
Java, tetapi Anda hanya membutuhkan Java Runtime Environment (JRE) jika hanya ingin menjalankan
aplikasi Java.
1.2. Library
Java memiliki dukungan library yang sangat kaya untuk mempermudah Anda dalam mengembangkan
aplikasi Java.
1.3. Object Oriented
Java adalah bahasa pemrograman berorientasi objek. Java mewarisi konsep orientasi objek dari C++
namun mengurangi aspek-aspek kerumitan pada C++ tanpa mengurangi kekuatannya.
6/66
andriagutama.com
Bab 2. Instalasi Java
Di artikel sebelumnya kita telah mengenal sedikit tentang bahasa pemrograman Java. Selanjutnya mari
kita menginstalasi aplikasi-aplikasi yang dibutuhkan untuk pemrograman Java.
2.1. Instalasi JDK di Lingkungan Linux
Berikut adalah langkah-langkah untuk instalasi JDK di Linux Mint 8 (berhubung Saya menggunakan
Linux Mint 8 )
1. Buka shell Anda, login sebagai root dan ketik perintah
#apt-get install sun-java6-jdk
atau
#apt-get install openjdk6
2. Setelah selesai, paket Java akan terinstal di lokasi ‘/usr/lib/jvm/java-1.6.0-openjdk’ atau di
lokasi ‘/usr/lib/jvm/java-6-sun’
3. Buat soft link program 'Java' dan 'Javac' agar dapat diakses dari mana saja (sesuaikan dengan
versi Java dan lokasi instalasinya)
#ln -s /usr/lib/jvm/java-1.6.0-openjdk/bin/java /usr/bin/java#ln -s /usr/lib/jvm/java-1.6.0-openjdk/bin/javac /usr/bin/javac
Langkah di atas bisa dilakukan bila komputer Anda terhubung ke internet. Jika tidak, maka Anda harus
mendownload terlebih dahulu (di komputer lain yang terhubung dengan internet tentunya) dari situs
OpenJDK dari http://openjdk.java.net.
2.2. Instalasi JDK di Lingkungan Windows
Download terlebih dahulu aplikasi J2SDK dari http://java.sun.com. Instalasi di Windows tidak terlalu
susah koq, tinggal Next-Next aja sampai ketemu Finish…
Selanjutnya Anda harus mengubah setting classpath Anda. Klik kanan ikon My Computer dari desktop
Anda, dan pada bagian Environment Variables, edit/tambahkan entri classpath dan tambahkan entri
berikut (Tambahkan titik koma aja di belakangnya) :
;
7/66
andriagutama.com
Selanjutnya, edit atau tambahkan entri path dan tambahkan entri berikut (Sesuaikan dengan lokasi
instalasi program JDK di komputer Anda):
;C:\Program Files\java\jdk\jdk1.6.0.0\bin\
2.3. Tes Hasil Instalasi
Untuk mengetahui apakah instalasi JDK telah berhasil atau tidak, buka shell atau command prompt,
dan ketik perintah
java -versionjavac -version
Apabila belum berhasil, restart terlebih dahulu komputer Anda.
8/66
andriagutama.com
Bab 3. Java Hello World!!
Mari membuat aplikasi pertama Java. Buka editor teks favorit Anda dan ketik program seperti di bawah
ini:
Contoh Program : HelloWorld.java
1 //HelloWorld.java
2 public class HelloWorld
3 {
4 public static void main(String[] args)
5 {6 System.out.println("Hello Java World!!");7 }8 }
Simpan file di atas dengan nama HelloWorld.java (sesuai dengan nama class).
3.1. Kompilasi Source Code
Buka shell atau command prompt Anda, dan ketikkan perintah:
javac HelloWorld.java
3.2. Interpretasi Byte Code
Buka shell atau command prompt Anda, dan ketikkan perintah:
java HelloWorld
9/66
andriagutama.com
Bab 4. Struktur Program Java
Setiap bahasa pemrograman pasti memiliki struktur bahasa, begitu juga dengan bahasa Java.
Contoh Program : Belajar.java
01 //Belajar.java
02 public class Belajar
03 {04 String nama;
05 int nilai;
06 public Belajar()
07 {08 System.out.println("Hi! Selamat belajar JAVA");09 }
10 public void salam()
11 {12 System.out.println("Hi! Selamat belajar JAVA");13 }
14 public int kaliDua(int a)
15 {
16 return a*2;
17 }
18 public float kaliDua(float a)
19 {
20 return a*2;
21 }
22 public static void main(String[] args)
23 {24 Belajar belajar;
25 belajar=new Belajar();
26 belajar.salam();
27 int a=5;
28 int b=belajar.kaliDua(a);
29 System.out.println("Nilai sekarang : "+a);30 System.out.println("Nilai sekarang : "+b);31 }32 }
Lihat contoh program di atas. File di atas harus disimpan dengan nama “Belajar.java” sesuai dengan
nama public class nya. Baris 6 disebut dengan konstruktor, ciri dari konstruktor adalah tidak memiliki
tipe dan namanya sama dengan nama class. Konstruktor adalah bagian program yang pertama kali
10/66
andriagutama.com
dipanggil saat pembuatan objek.
Baris 4 dan 5 disebut dengan attribute/state/member variabel. Attribute adalah variabel yang dimiliki
oleh suatu class dan dapat diakses oleh bagian class manapun dalam class yang sama.
Baris 10 disebut dengan method. Method merupakan perilaku dari suatu class/ objek. Pada contoh
program di atas, terdapat method bernama “salam” dengan tipe “void”. Pada baris 14 terdapat method
bernama “kaliDua” dengan tipe Integer. Perbedaan antara method bertipe void dengan tipe lainnya
adalah, method bertipe void tidak mengembalikan nilai.
Suatu method dapat memiliki parameter atau tidak sama sekali. Berbeda dengan bahsa pemrograman
seperti C di mana tidak boleh ada nama fungsi yang sama, bahasa Java membolehkan suatu fungsi/
method didefinisikan berulang kali pada class yang sama, dengan catatan memiliki jumlah atau susunan
parameter yang berbeda. Seperti contoh di atas, terdapat dua method bernama “kaliDua” tetapi
dibolehkan karena memiliki susunan parameter yang berbeda tipe. Hal ini disebut dengan overloading.
Baris 22 terdapat method dengan nama “main”. Method ini adalah method yang pertama kali dipanggil
saat menjalankan suatu aplikasi Java.
Baris 24 dan 25 adalah statement untuk menciptakan instance atau objek dari suatu class. Pada program
di atas, dideklarasikan suatu variabel dengan nama “belajar” dengan tipe “Belajar”, di mana variabel
“belajar” merupakan instance dari class “Belajar”.
Baris 28 adalah cara memanggil method suatu class. Method dari suatu class dapat dipanggil bila kita
telah membuat instance dari class tersebut.
11/66
andriagutama.com
Bab 5. Konstruktor dan Method dalam Java
Mari kita mencoba membuat suatu aplikasi sederhana dalam Java. Sederhana aja koq, cuman aplikasi
untuk menghitung luas dan volume suatu bangun ruang aja.
Contoh Program : BangunRuang.java
01 //BangunRuang.java
02 public class BangunRuang
03 {04 //attribute
05 float panjang;
06 float lebar;
07 float tinggi;
08
09 //konstruktor standar
10 public BangunRuang()
11 {12 this.panjang=0;13 this.lebar=0;14 this.tinggi=0;15 }16
17 //konstruktor untuk kubus
18 public BangunRuang(float panjang)
19 {20 this.panjang=panjang;21 this.lebar=panjang;22 this.tinggi=panjang;23 }24
25 //konstruktor untuk balok
26 public BangunRuang(float panjang, float lebar, float tinggi)
27 {28 this.panjang=panjang;29 this.lebar=lebar;30 this.tinggi=tinggi;31 }32
33 //method untuk hitung volume
34 public float hitungVolume()
35 {
12/66
andriagutama.com
36 float volume=this.panjang * this.lebar * this.tinggi;
37 return volume;
38 }39
40 //method untuk hitung luas
41 public float hitungLuas()
42 {
43 float luas=((2*this.panjang*this.lebar)+(2*this.panjang*this.tinggi)+(2*this.lebar*this.tinggi));
44 return luas;
45 }46
47 //main program
48 public static void main(String[] args)
49 {50 BangunRuang bangunruang;
51 bangunruang = new BangunRuang(5); // kubus
52 System.out.println("Luas bangun ruang : "+bangunruang.hitungLuas());
53 System.out.println("Volume bangun ruang : "+bangunruang.hitungVolume());
54
55 bangunruang = new BangunRuang(10,7,5); // balok
56 System.out.println("Luas bangun ruang : "+bangunruang.hitungLuas());
57 System.out.println("Volume bangun ruang : "+bangunruang.hitungVolume());
58 }59 }
Compile aplikasi di atas dengan perintah:
javac BangunRuang.java
Dan jalankan aplikasi di atas dengan perintah:
java BangunRuang
Penjelasan:
Program di atas memiliki 3 konstruktor. Di artikel sebelumnya telah Saya jelaskan bahwa konstruktor
adalah bagian program yang pertama kali dipanggil saat penciptaan objek baru.
Konstruktor pertama(baris10) adalah konstruktor standar (tanpa parameter). Anda tidak perlu
mendefinisikan konstruktor standar apabila di dalam program tersebut tidak terdapat konstruktor lain.
13/66
andriagutama.com
Dalam contoh ini, kita perlu mendefinisikan konstruktor standar karena terdapat lebih dari satu
konstruktor.
Konstruktor kedua(baris 18) adalah konstruktor yang memiliki satu parameter dengan tipe float.
Konstruktor tersebut Saya definisikan sebagai konstruktor untuk bangun ruang kubus. Perlu
diperhatikan bahwa konstruktor dalam satu class SELALU memiliki nama yang sama, tetapi HARUS
memiliki jumlah atau susunan parameter yang berbeda.
Konstruktor ketiga(baris 26) adalah konstruktor yang memiliki tiga parameter masing-masing bertipe
float. Konstruktor tersebut Saya definisikan sebagai konstruktor untuk bangun ruang balok.
Program di atas memiliki 2 method yaitu “hitungLuas” dan “hitungVolume” yang masing-masing
mengembalikan nilai dengan tipe float.
Di bagian program utama(mulai baris 48), terdapat deklarasi objek BangunRuang(baris 50) dan
pembuatan objek BangunRuang(baris 51).
Pada baris 51, konstruktor yang dipanggil pada saat pembuatan objek adalah konstruktor dengan satu
parameter, dengan kata lain, konstruktor untuk bangun ruang kubus.
Pada baris 55, kembali kita membuat objek BangunRuang, kali ini dengan menggunakan konstruktor
yang memiliki 3 parameter, dengan kata lain, konstruktor untuk bangun ruang balok.
14/66
andriagutama.com
Bab 6. Tipe Data, Statement dan Ekspresi
Tipe data, statement dan ekspresi adalah bagian yang penting dalam suatu bahasa pemrograman, begitu
juga dengan bahasa Java.
6.1. Variabel dan Tipe Data
Variabel adalah tempat untuk menyimpan suatu nilai atau objek, dan setiap variabel memiliki tipenya
masing-masing. Setiap variabel harus dideklarasikan terlebih dahulu sebelum digunakan.
int a;
Di atas adalah contoh mendeklarasikan suatu variabel dengan nama “a” dengan tipe data “int” atau
Integer.
int a=1;
Contoh di atas adalah contoh mendeklarasikan suatu variabel, sama seperti contoh sebelumnya, hanya
saja pada contoh ini, deklarasi variabel sekaligus dengan inisiasi, atau pengisian nilai ke suatu variabel.
Perlu diingat bahwa bahasa Java adalah bahasa yang case-sensitive, dengan kata lain, variabel “int a”
akan dibanggap berbeda dengan “int A”. Dan Anda tidak boleh menggunakan kata-kata kunci dalam
bahasa Java sebagai nama variabel.
Ada banyak tipe data primitif dalam bahasa Java, antara lain sebagai berikut:
• byte
• short
• int
• long
• float
• double
• char
• boolean
Selain itu, ada juga tipe data String yang sebenarnya berasal dari class String.
15/66
andriagutama.com
byte varByte;
short varShort=0;
int varInt=0;
float varFloat=0;
long varLong=0;
double varDouble=0;
char varChar='a';
boolean varBoolean=true;
String nama="andria gutama";
6.2. Statement
Statement adalah bagian program manapun dalam program Java yang diakhiri dengan tanda semikolon
“;”. Contoh:
int a;
a=100;System.out.println(a);
6.3. Ekspresi
Ekpresi adalah bagian program manapun dalam bahasa Java yang mengandung operator dan variabel.
Contoh:
int a=100*100;
a+=200;
Ekspresi sendiri adalah suatu statement.
6.4. Blok
Blok adalah bagian program yang diawali dan diakhiri dengan tanda “{” dan “}”. Contoh:
if(a==b){}
16/66
andriagutama.com
Bab 7. Array dalam Java
Yup, mari kita membahas tentang Array. Udah pada tau donk Array itu apaan? Array adalah mekanisme
penyimpanan variabel, dimana kita bisa menyimpan banyak nilai dalam satu nama variabel saja,
tentunya dengan tipe yang sama.
Gambar di samping menunjukkan visualisasi suatu variabel Array. Anggota dari suatu Array disebut
dengan Element, dan kita bisa mengakses suatu Element melalui Index nya.
Ketika kita mendeklarasikan suatu Array dengan panjang 10, maka Array tersebut akan memiliki 10
Element dengan index dimulai dari 0 sampai dengan 9.
7.1. Deklarasi Array
Bagaimana cara mendeklarasikan suatu Array? Perhatikan contoh berikut:
int[] varArray;varArray = new int[10];
Contoh di atas adalah deklarasi Array dengan tipe Integer dengan jumlah Element 10
int[] varArray = new int[10];
Sama aj sich dengan contoh pertama, cuman yang ini agak dipersingkat aja….
int[] varArray = {1,2,3,4,5,6,7,8,9,0};
Kalau yang ini, deklarasi sekaligus dengan inisiasi Element Array, sehingga panjang Array adalah sama
dengan jumlah Element yang dideklarasikan.
7.2. Mengakses Element dalam Array
Suatu Element dalam Array bisa diakses melalui index nya.
varArray1[0]=0;varArray1[1]=1;varArray1[2]=2;varArray1[3]=3;varArray1[4]=4;
7.3. Contoh Program
Berikut contoh program penggunaan Array dalam Java
17/66
andriagutama.com
Contoh Program : ContohArray.java
01 //ContohArray.java
02 public class ContohArray
03 {
04 public static void main(String[] args)
05 {06 int[] varArray1;
07 varArray1 = new int[10];
08
09 int[] varArray2 = new int[10];
10
11 int[] varArray3 = {1,2,3,4,5,6,7,8,9,0};12
13 varArray1[0]=0;14 varArray1[1]=1;15 varArray1[2]=2;16 varArray1[3]=3;17 varArray1[4]=4;18
19 System.out.println(varArray3[0]);20 System.out.println(varArray3[1]);21 System.out.println(varArray3[2]);22 System.out.println(varArray3[3]);23 System.out.println(varArray3[4]);24 System.out.println("Jumlah Elemen Array : "+varArray3.length);25
26 //Array multidimensi27 int[][] varArray4 = {28 {1,2,3,4,5},29 {2,4,6,8,10},30 {3,6,9,12,15}31 };32
33 for(int i=0;i<varArray4.length;i++)
34 {
35 for(int j=0;j<varArray4[i].length;j++)
36 {37 System.out.print(varArray4[i][j]+",");38 }39 System.out.println("");40 }
18/66
andriagutama.com
41 }42 }
Array multidimensi sebenarnya adalah Array yang Elementnya adalah Array, seperti contoh program di
atas.
19/66
andriagutama.com
Bab 8. Control Flow Statement
Control Flow Statement mengatur alur eksekusi program kita melalui proses Decision Making (If Then,
If Then Else, Switch), Looping (For, While, Do While) dan Branching (Break, Continue, Return).
8.1. Decision Making
Contoh If Then
1 if(a%2 == 0)
2 {3 System.out.println("Bilangan genap");4 }
Contoh If Then Else
1 if(a%2 == 0)
2 {3 System.out.println("Bilangan genap");4 }else5 {6 System.out.println("Bilangan ganjil");7 }
Contoh If Then Else
01 int nilai=75;
02 char grade;
03
04 if(nilai >=90)05 {06 grade='A';
07 }else if(nilai >= 80)
08 {09 grade='B';
10 }else if(nilai >= 70)
11 {12 grade='C';
13 }else if(nilai >= 60)
14 {15 grade='D';16 }else17 {
20/66
andriagutama.com
18 grade='E';19 }
Contoh Switch Case
01 int month=8;
02 String monthStr=null;03
04 switch(month)05 {
06 case 1 : monthStr="Januari"; break;
07 case 2 : monthStr="Februari"; break;
08 case 3 : monthStr="Maret"; break;
09 case 4 : monthStr="April"; break;
10 case 5 : monthStr="Mei"; break;
11 case 6 : monthStr="Juni"; break;
12 case 7 : monthStr="Juli"; break;
13 case 8 : monthStr="Agustus"; break;
14 case 9 : monthStr="September"; break;
15 case 10 : monthStr="Oktober"; break;
16 case 11 : monthStr="November"; break;
17 case 12 : monthStr="Desember"; break;
18 default : monthStr="Invalid Month"; break;
19 }
8.2. Looping
Looping adalah… perulangan:D Satu atau beberapa statement diulang beberapa kali selama suatu
kondisi masih terpenuhi. Gunakan kata kunci ‘break’ untuk keluar dari looping, dan kata kunci
‘continue’ untuk skip satu kali proses perulangan
Contoh perulangan While
1 int i=0;
2 while(i<10)3 {4 System.out.println(i);5 i++;6 }
1 int i=0;
2 while(true)
21/66
andriagutama.com
3 {4 System.out.println(i);
5 if(i==4) break; //Tanpa di break, looping ini akan terus berlanjut tanpa henti
6 i++;7 }
Contoh Perulangan Do While
1 int i=0;
2 do{3 System.out.println(i);4 i++;5 }while(i<10);
Contoh Perulangan For
1 for(int i=0;i<10;i++)
2 {3 System.out.println(i);4 }
1 int i=0;
2 for(;;)3 {4 System.out.println(i);5 if(i==4) continue;6 if(i==10) break;7 i++;8 }
Contoh Program : TabelPerkalian.java
01 //TabelPerkalian.java
02 public class TabelPerkalian
03 {
04 public static void main(String[] args)
05 {
06 for(int i=1;i<=10;i++)
07 {
08 for(int j=1;j<=10;j++)
09 {10 System.out.print(i*j);11 if(j<10) System.out.print(",");
22/66
andriagutama.com
12 }13 System.out.println("");14 }15 }16 }
23/66
andriagutama.com
Bab 9. Exception Handling
Bahasa Java menggunakan exception untuk menangani kesalahan(error) dan kejadian-kejadian yang
menyebabkan jalannya program tidak sesuai dengan yang diharapkan.
Exception adalah suatu kejadian (event) yang muncul pada saat aplikasi sedang berjalan. Ketika suatu
method mengalami error, method tersebut akan membuat suatu objek(disebut dengan exception object)
dan sistem akan mencari kode yang akan digunakan untuk menangani error tersebut. Perilaku dari
suatu method ketika membuat exception object disebut dengan throwing an exception. Sedangkan kode
yang menangani exception disebut dengan exception handler.
Bentuk umum dari exception handling adalah sebagai berikut:
01 try{02 //statement yg akan dieksekusi....03 }catch(NamaException variabelException1)04 {05 //exception handler, kode yang menangani exception 1....06 }07 catch(NamaException variabelException2)08 {09 //exception handler, kode yang menangani exception 2....10 }11 catch(NamaException variabelException3)12 {13 //exception handler, kode yang menangani exception 3....14 }15 finally{16 //exception handler yang pasti akan dieksekusi17 }
Apa sich keuntungan penggunaan exception handling?
Sebagai contoh, kita ambil potongan kode untuk membaca dan menulis ke suatu file text:
01 bacaTulisFile02 buka file103 cek kapasitas file104 alokasi memory untuk membaca file05 baca file1 ke memory06 tutup file1
24/66
andriagutama.com
07
08 buka file209 alokasi memory untuk menulis ke file210 tulis ke file211 tutup file2
Potongan kode yang sederhana, tetapi ternyata setiap statement di atas itu memiliki banyak kesalahan
yang mungkin muncul:
• Bagaimana jika file1 tidak ada?
• Bagaimana jika memori yang tersedia tidak cukup untuk membaca file1?
• Bagaimana bila pembacaan dari file1 gagal?
• Bagaimana bila file1 gagal ditutup?
• Bagaimana bila file2 gagal dibuka atau diciptakan?
• Bagaimana bila file2 gagal ditulis?
• Bagaimana bila file2 gagal ditutup?
Berikut potongan kode di atas bila dilengkapi dengan exception handling:
01 bacaTulisFile02 try{03 buka file104 cek kapasitas file105 alokasi memory untuk membaca file06 baca file1 ke memory07 tutup file108
09 buka file210 alokasi memory untuk menulis ke file211 tulis ke file212 tutup file213 }catch(buka file1 gagal) { ... }14 catch(cek kapasitas file1 gagal) { ... }15 catch(alokasi memory utk membaca file1 gagal) { ... }16 catch(baca file1 gagal) { ... }17 catch(tutup file1 gagal) { ... }18 catch(buka file2 gagal) { ... }19 catch(alokasi memory utk menulis ke file2 gagal) { ... }20 catch(tulis ke file2 gagal) { ... }
25/66
andriagutama.com
21 catch(tutup file2 gagal) { ... }
Ternyata, penggunaan exception handling mampu :
• Memisahkan antara kode utama dengan kode penanganan kesalahan
• Pengelompokan jenis kesalahan dengan tepat, dan apa yang harus dilakukan untuk menangani
kesalahan tersebut
Oke, berikut contoh penggunaan exception handling yang sederhana:
Contoh Program : Exception2.java
001 //Exception2.java
002 import java.io.*;
003
004 public class Exception2
005 {
006 public int bagiBilangan() throws Exception
007 {
008 int hasil=0;
009 int pembagi=0;
010 int dibagi=0;
011 try{
012 BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
013 System.out.print("Bilangan dibagi : ");014 dibagi=Integer.parseInt(buf.readLine());015 System.out.print("Bilangan pembagi : ");016 pembagi=Integer.parseInt(buf.readLine());017 hasil=dibagi/pembagi;018 }catch(Exception e) {}019
020 if(pembagi==0) throw new Exception("ERR2");
021 return hasil;
022 }023
024 public char inputNilai() throws Exception
025 {
026 float nilai=0;
027 char grade=0;
028 try{
26/66
andriagutama.com
029 BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
030 System.out.print("Masukkan nilai : ");031 nilai=Float.parseFloat(buf.readLine());032 if(nilai>90)033 {034 grade='A';035 }
036 else if(nilai>75)
037 {038 grade='B';039 }
040 else if(nilai>65)
041 {042 grade='C';043 }
044 else if(nilai>50)
045 {046 grade='D';047 }048 else049 {050 grade='E';051 }052 }catch(Exception e) {}053
054 //if(nilai<0 || nilai>100) throw new Exception("Nilai tidak boleh kurang dari 0 atau lebih dari 100!!");
055
056 if(nilai<0 || nilai>100) throw new Exception("ERR1");
057
058 return grade;
059 }060
061 public void inputNIM() throws Exception
062 {063 String nim=null;064 try{
065 BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
066 System.out.print("Masukkan NIM : ");067 nim=buf.readLine();068 }catch(Exception e) {}
27/66
andriagutama.com
069
070 if(nim.length()!=12) throw new Exception("NIM Harus 12 digit!!");
071 }072
073 public static void main(String[] args)
074 {
075 boolean ulang= false;
076 Exception2 exc = new Exception2();
077 do {
078 try{
079 char grade=exc.inputNilai();
080 System.out.println("Grade : "+grade);081 ulang=false;082 }catch(Exception e){
083 if (e.getMessage().equals("ERR1"))
084 {085 ulang=true;086 //System.out.println(e.getMessage());087 }088 }
089 }while (ulang);
090
091 ulang=false;
092 do {
093 try{094 exc.inputNIM();095 ulang=false;096 }catch(Exception e){097 ulang=true;098 System.out.println(e.getMessage());099 }
100 }while (ulang);
101
102 ulang=false;
103 do {
104 try{
105 int hasil=exc.bagiBilangan();
106 System.out.println("Hasil bagi : "+hasil);107 ulang=false;108 }catch(Exception e){
109 if (e.getMessage().equals("ERR2"))
110 {
28/66
andriagutama.com
111 ulang=true;112 //System.out.println(e.getMessage());113 }114 }
115 }while (ulang);
116 }117 }
Pada contoh di atas, program akan kembali ke proses inputNIM(baris 94) jika panjang NIM tidak sama
dengan 12 karakter. Program juga akan kembali ke proses bagiBilangan(baris 105) jika bilangan
pembagi yang Anda masukkan adalah bilangan 0.
29/66
andriagutama.com
Bab 10. Java Input Output Operation (1)
Operasi input output (I/O) adalah operasi paling dasar dalam semua bahasa pemrograman. Sebenarnya
dari artikel-artikel sebelumnya Saya udah ngebahas tentang operasi I/O sich, seperti proses mencetak
sesuatu ke layar yang sebenarnya adalah proses output, dan proses menerima input dari keyboard yang
sebenarnya adalah proses input.
Bahasa pemrograman Java membuat proses I/O menjadi lebih sederhana. Maksudnya seperti ini, untuk
semua proses I/O Anda hanya memerlukan satu class untuk proses input (dan sumber input bisa dari
mana saja) dan satu class untuk proses output (dan tujuan output, juga. bisa ke mana saja). Semua class
yang diperlukan untuk proses I/O ada di dalam paket java.io
10.1. Byte Streams
Byte Stream adalah proses I/O per 8 bit atau 1 byte. Semua class byte stream diturunkan dari class
InputStream dan OutputStream. Contoh penggunaan Byte Stream
Contoh Program : BacaTulis.java
01 //BacaTulis.java
02 import java.io.*;
03
04 public class BacaTulis
05 {
06 public static void main(String[] args)
07 {08 FileInputStream baca=null;09 FileOutputStream tulis=null;10 try{
11 baca=new FileInputStream("dokumen.txt");
12 tulis=new FileOutputStream("tujuan.txt");
13 int c;
14 while((c=baca.read()) != -1)15 {16 tulis.write(c);17 }18 baca.close();19 tulis.close();20 }catch(IOException e){
30/66
andriagutama.com
21 System.out.println(e.getMessage());22 }finally{23 try{24 if(baca!=null) baca.close();25 if(tulis!=null) tulis.close();26 }catch(IOException e)27 {28 System.out.println(e.getMessage());29 }30 }31 }32 }
Sebelumnya dibuat dulu yah, file ‘dokumen.txt’ dan lokasinya sama dengan lokasi file hasil kompilasi
dari program di atas. Sedangkan file ‘tujuan.txt’ aka dibuat otomatis bila belum ada.
Isi aja file ‘dokumen.txt’ dengan sembarang kata dan kalimat. Program di atas akan membaca file
‘dokumen.ttx’ dan menulis hasil pembacaan ke file ‘tujuan.txt’
31/66
andriagutama.com
Bab 11. Java Input Output Operation (2)
11.1. Character Stream
Selain menggunakan Byte Stream, kita juga bisa melakukan proses input output dengan menggunakan
Character Stream. Berikut contohnya:
Contoh Program : BacaTulis2.java
01 //BacaTulis2.java
02 import java.io.*;
03
04 public class BacaTulis2
05 {
06 public static void main(String[] args)
07 {08 FileReader baca=null;09 FileWriter tulis=null;10 try{
11 baca=new FileReader("dokumen.txt");
12 tulis=new FileWriter("tujuan.txt");
13 int c;
14 while((c=baca.read()) != -1)15 {16 tulis.write(c);17 }18 baca.close();19 tulis.close();20 }catch(IOException e){21 System.out.println(e.getMessage());22 }finally{23 try{24 if(baca!=null) baca.close();25 if(tulis!=null) tulis.close();26 }catch(IOException e)27 {28 System.out.println(e.getMessage());29 }30 }31 }32 }
32/66
andriagutama.com
Sama seperti contoh sebelumnya, file ‘dokumen.txt’ harus ada terlebih dahulu, dan terletak di lokasi
yang sama dengan file hasil kompilasi program di atas.
33/66
andriagutama.com
Bab 12. Java Input Output Operation (3)
Proses input output pada artikel-artikel sebelumnya adalah proses input output tanpa menggunakan
buffer, sehinggan proses input output langsung ke device yang bersangkutan.
Bila proses input output memerlukan atau menghasilkan file yang kecil, tentu saja tidak menjadi
masalah. Tetapi bagaimana bila memerlukan atau menghasilkan file yang besar? Tentu saja akan
memberatkan penggunaan resource hardware:D
Oleh karena itu, diperlukan penggunaan buffer sehingga proses input output tidak langsung ke device,
tetapi melewati buffer terlebih dahulu. Langsung aja contohnya:
Contoh Program : BacaTulis3.java
01 //BacaTulis3.java
02 import java.io.*;
03
04 public class BacaTulis3
05 {
06 public void tulis() throws java.io.IOException
07 {08 BufferedReader baca=null;09 PrintWriter tulis=null;10 try{
11 baca=new BufferedReader(
12 new FileReader("dokumen.txt")
13 );
14 tulis=new PrintWriter(
15 new BufferedWriter(
16 new FileWriter("tujuan.txt")
17 )18 );19 String c=null;20 while((c=baca.readLine()) != null)21 {22 tulis.println(c);23 }24 baca.close();25 tulis.close();26 }catch(IOException e){
34/66
andriagutama.com
27 System.out.println(e.getMessage());28 }finally{29 //try{30 if(baca!=null) baca.close();31 if(tulis!=null) tulis.close();32 //}catch(IOException e)33 //{34 // System.out.println(e.getMessage());35 //}36 }37 }38
39 public static void main(String[] args)
40 {41 try{
42 new BacaTulis3().tulis();
43 }catch(IOException e)44 {45 System.out.println(e.getMessage());46 }47 }48 }
Contoh di atas, pembacan dan penulisan dari dan ke file adalah perbaris file, tidak seperti Byte Stream
ata Character Stream yang pembacaan dan penulisannya per byte atau per karakter.
35/66
andriagutama.com
Bab 13. Java Input Output Operation (4)
Masih tentang proses input output, berikut contoh program yang menerima input dari keyboard, dan
menulis nya ke suatu file text. Cekidot!!
Contoh Program : BacaTulis4.java
01 //BacaTulis4.java
02 import java.io.*;
03
04 public class BacaTulis4
05 {
06 public void tulis() throws java.io.IOException
07 {08 BufferedReader baca=null;09 PrintWriter tulis=null;10 try{11 //input dari keyboard12 String c=null;13 String namafile=null;14
15 System.out.println("Masukkan kalimat yang ingin disimpan ke file text:");
16 baca=new BufferedReader(new InputStreamReader(System.in));
17 c=baca.readLine();18
19 System.out.println("Masukkan namafile:");20 namafile=baca.readLine();21
22 tulis=new PrintWriter(
23 new BufferedWriter(
24 new FileWriter(namafile)
25 )26 );27
28 tulis.println(c);29
30 baca.close();31 tulis.close();32 }catch(IOException e){33 System.out.println(e.getMessage());34 }finally{
36/66
andriagutama.com
35 //try{36 if(baca!=null) baca.close();37 if(tulis!=null) tulis.close();38 //}catch(IOException e)39 //{40 // System.out.println(e.getMessage());41 //}42 }43 }44
45 public static void main(String[] args)
46 {47 try{
48 new BacaTulis4().tulis();
49 }catch(IOException e)50 {51 System.out.println(e.getMessage());52 }53 }54 }
37/66
andriagutama.com
Bab 14. Java Input Output Operation (5)
Berikut contoh proses input output dengan menggunakan class Scanner. Scanner menggunakan
karakter white space seperti karakter tab, ganti baris dan lain-lain untuk memisah-misah String hasil
pembacaan.
Contoh Program : BacaTulis5.java
01 //BacaTulis5.java
02 import java.io.*;
03 import java.util.*;
04
05 public class BacaTulis5
06 {
07 public void tulis() throws java.io.IOException
08 {09 Scanner baca=null;10 PrintWriter tulis=null;11 try{
12 baca=new Scanner(
13 new BufferedReader(
14 new FileReader("dokumen.txt")
15 )16 );
17 tulis=new PrintWriter(
18 new BufferedWriter(
19 new FileWriter("tujuan.txt")
20 )21 );22 String c=null;23 while(baca.hasNext())24 {25 tulis.println(baca.next());26 }27 baca.close();28 tulis.close();29 }catch(IOException e){30 System.out.println(e.getMessage());31 }finally{32 //try{33 if(baca!=null) baca.close();
38/66
andriagutama.com
34 if(tulis!=null) tulis.close();35 //}catch(IOException e)36 //{37 // System.out.println(e.getMessage());38 //}39 }40 }41
42 public static void main(String[] args)
43 {44 try{
45 new BacaTulis5().tulis();
46 }catch(IOException e)47 {48 System.out.println(e.getMessage());49 }50 }51 }
39/66
andriagutama.com
Bab 15. Java Package
Package memperlihatkan struktur dari beberapa file dalam suatu program Java.
40/66
andriagutama.com
Bab 16. Java Inheritance
Dalam bahasa pemrograman Java, suatu class bisa diturunkan dari class lainnya, dan class tersebut
akan mewarisi atribut dan method dari class yang diturunkan.
Class yang diturunkan dari class lain disebut class turunan / sub class / child class. Sedangkan class
yang menurunkan ke class lain disebut super class / parent class.
Dalam Java, semua class merupakan turunan dari class Object, sehingga Object merupakan superclass
dari semua class dalam Java (dan Object tidak memiliki parent class, dalam arti lain, class Object
adalah hirarki tertinggi dalam struktur class Java). Setiap class hanya memiliki satu dan hanya satu
super class secara langsung.
Kapan kita perlu menggunakan inheritance? Kadang kala kita ingin membuat suatu class, dan sudah
ada class lain yang memiliki kode yang kita inginkan. Kita cukup membuat suatu class baru yang
diturunkan dari class tersebut. Dengan melakukan ini, class baru tersebut akan memiliki atribut dan
method yang sama dengan parent class nya.
Selanjutnya dari sub class, kita bisa menambahkan sifat yang lebih spesifik yang dimiliki oleh sub class
yang tidak dimiliki oleh parent class.
Contoh Program : Kendaraan.java
01 package umum;
02
03 //Kendaraan.java
04 public class Kendaraan {
05
06 private int roda;
07 public boolean mesin;
08 protected String nama;
09
10 public Kendaraan(){
11 roda = 0;12 mesin = false;13 nama = "Kendaraan";14 }
41/66
andriagutama.com
15
16 public Kendaraan (int roda, boolean mesin, String nama){
17 this.roda = roda;18 this.mesin = mesin;19 this.nama = nama;20 }21
22 public void setRoda(int roda){
23 this.roda = roda;24 }25
26 public int getRoda(){
27 return roda;
28 }29
30 public void setNama(String nama){
31 this.nama = nama;32 }33
34 public String getNama(){
35 return nama;
36 }37
38 }
Simpan file di atas dengan nama Kendaraan.java dan simpan di dalam folder umum (Karena file di atas
terdapat di dalam package umum). Kompilasi file di atas dengan perintah ‘javac
umum/Kendaraan.java’
Contoh Program : Mobil.java
01 package umum;
02
03 //Mobil.java
04 public class Mobil extends Kendaraan{
05
06 private String merek;
07
08 public Mobil(){
09 super(4, true, "Mobil");10 }11
42/66
andriagutama.com
12 public void setMerek(String merek){
13 this.merek = merek;14 }15
16 public String getMerek(){
17 return merek;
18 }19
20 public void setting(int roda, boolean mesin, String nama, String merek){
21 setRoda(roda);22 this.mesin = mesin;23 setNama(nama);24 setMerek(merek);25 }26
27 }
Simpan file di atas dengan nama Mobil.java dan simpan di dalam folder umum (Karena file di atas
terdapat di dalam package umum). Kompilasi file di atas dengan perintah ‘javac umum/Mobil.java’.
Lihat baris no. 9 pada contoh di atas. Statement tersebut menjelaskan penggunaan kata ’super’ untuk
menggunakan konstruktor yng terdapat pada parent class.
Contoh Program : Uji.java
01 //Uji.java
02 public class Uji{
03
04 public static void main( String[] args){
05 umum.Mobil xenia = new umum.Mobil();
06 xenia.setMerek("Xenia");07 System.out.println(xenia.getNama());08 System.out.println(xenia.getMerek());09
10 umum.Mobil toyota = new umum.Mobil();
11 toyota.setMerek("Toyota");12 umum.Kendaraan tes = toyota;13
14 System.out.println(tes.getNama());15 System.out.println(tes.getMerek());16 }17
43/66
andriagutama.com
18 }
Simpan file di atas dengan nama Uji.java dan diletakkan tepat di atas folder ‘umum’. Kompilasi file di
atas:
javac Uji.javajava Uji
Pasti Anda mendapat pesan error bukan?? Hehe… Coba lihat baris 15. Tes adalah objek dengan tipe
Kendaraan tetapi memanggil method getMerek dari class Mobil, tentu saja error donk. Karena
getMerek adalah method yang spesifik dimiliki oleh class Mobil.
Komentari baris 15, dan coba kompilasi sekali lagi.
44/66
andriagutama.com
Bab 17. Java Collections
Collection seperti ArrayList, Stack, Vector dan HashMap bisa kita ibaratkan seperti Array, hanya saja
pada Array, kapasitasnya bersifat statis. Sedangkan Collection lebih bersifat dinamis. Sama seperti
Array, elemen dalam suatu Collection bisa diakses melalui indexnya.
Contoh Collection antara lain adalah ArrayList, Vector, Stack dan HashMap.
Contoh Program : Person.java
01 package collections;
02
03 //Person.java
04 public class Person
05 {
06 private String name;
07 private char gender;
08 private int age;
09
10 public Person()
11 {12 }13
14 public Person(String name, char gender, int age)
15 {16 this.name=name;17 this.gender=gender;18 this.age=age;19 }20
21 //setter
22 public void setName(String name)
23 {24 this.name=name;25 }26
27 public void setGender(char gender)
28 {29 this.gender=gender;30 }31
45/66
andriagutama.com
32 public void setAge(int age)
33 {34 this.age=age;35 }36
37 //getter
38 public String getName() { return this.name; }
39
40 public char getGender() { return this.gender; }
41
42 public int getAge() { return this.age; }
43 }
Sebelumnya buat terlebih dahulu class Person seperti di atas. Karena terdapat di dalam package
‘collections’, Anda diharuskan untuk membuat folder dengan nama ‘collections’ dan simpan file di atas
dengan nama ‘Person.java’ ke dalam folder tersebut.
Contoh penggunaan Vector
Contoh Program : UsingVector.java
01 package collections;
02
03 //UsingVector.java
04 import java.util.Vector;
05 import java.util.Enumeration;
06 import collections.Person;
07
08 public class UsingVector
09 {
10 public static void main(String[] args)
11 {
12 Person person1=new Person("Francesc Fabregas", 'M', 23);
13 Person person2=new Person("Samir Nasri", 'M', 22);
14 Person person3=new Person("Robin Van Persie", 'M', 23);
15 Person person4=new Person("Thomas Vermaelen", 'M', 24);
16 Person person5=new Person("Jack Wilshere", 'M', 23);
17 Person person6=new Person("Theo Walcott", 'M', 23);
18 Person temp=new Person();
19
20 //use Vector
46/66
andriagutama.com
21 Vector<Person> vector=new Vector<Person>();
22 //Vector<Person> vector=new Vector<Person>(10,2);23 // 10 : initial capacity24 // 2 : increment25 vector.add(person1);26 vector.add(person2);27 vector.add(person3);28 vector.add(person4);29 vector.add(person5);30 vector.add(person6);31
32 Enumeration<Person> items=vector.elements();33
34 System.out.println("Using Vector :");35 while(items.hasMoreElements())36 {37 temp = items.nextElement();38 System.out.println("Nama : "+temp.getName());39 System.out.println("Gender : "+temp.getGender());40 System.out.println("Age : "+temp.getAge()+"\n");41 }42 }43 }
Simpan file di atas dengan nama ‘UsingVector.java’ dan disimpan ke dalam folder ‘colelctions’.
Jalankan perintah berikut untuk mengkompilasi dan menjalankan program di atas.
javac collections/UsingVector.javajava collections/UsingVector
Contoh di atas menunjukkan penggunaan Vector, dan untuk membaca objek-objek yang terdapat dalam
Vector, digunakan Enumeration
Contoh Penggunaan Stack
Stack adalah kelas turunan dari Vector yang mengimplementasikan LIFO (Last In First Out). LIFO bisa
dianalogikan seperti tumpukan buku. Jika kita menumpuk buku, maka yang kita letakkan terakhir kali
otomatis akan berada di tumpukan paling atas, dan yang kita ambil pertama kali bukan?
Contoh Program : UsingStack.java
01 package collections;
47/66
andriagutama.com
02
03 //UsingStack.java
04 import java.util.Stack;
05 import collections.Person;
06
07 public class UsingStack
08 {
09 public static void main(String[] args)
10 {
11 Person person1=new Person("Havier Hernandez", 'M', 23);
12 Person person2=new Person("Wayne Rooney", 'M', 22);
13 Person person3=new Person("Michael Owen", 'M', 23);
14 Person person4=new Person("Dimitar Berbatov", 'M', 24);
15 Person person5=new Person("Ryan Giggs", 'M', 23);
16 Person person6=new Person("Park Ji Sung", 'M', 23);
17 Person temp=new Person();
18
19 //use Stack
20 Stack<Person> stack=new Stack<Person>();
21 stack.push(person1); // push masukin ke dalam Stack22 stack.push(person2);23 stack.push(person3);24 stack.push(person4);25 stack.push(person5);26 stack.push(person6);27
28 System.out.println("Using Stack :");
29 for(int i=1;i<=stack.capacity();i++)
30 {31 try{32 temp=stack.pop(); // pop keluarin dari Stack33 System.out.println("Nama : "+temp.getName());34 System.out.println("Gender : "+temp.getGender());35 System.out.println("Age : "+temp.getAge()+"\n");36 }catch(java.util.EmptyStackException e) {}37 }38 }39 }
Simpan file di atas dengan nama ‘UsingStack.java’ dan disimpan ke dalam folder ‘collections’.
Jalankan perintah berikut untuk mengkompilasi dan menjalankan program di atas.
48/66
andriagutama.com
javac collections/UsingStack.javajava collections/UsingStack
Stack juga bisa menggunakan Enumerasi seperti contoh Vector di atas dengan cara yang sama. Apabila
kita menggunakan metode ‘pop’, maka objek dalam Stack ‘dikeluarkan’ dari dalam Stack, dengan kata
lain objek tersebut tidak lagi berada di dalam Stack.
49/66
andriagutama.com
Bab 18. Java Collections (2) HashMap
HashMap, hampir sama seperti Vector pada artikel sebelumnya, hanya saja pada HashMap, ia
mengimplementasikan suatu ‘key’ untuk memperoleh suatu objek yang berada di dalam suatu
HashMap. Key tersebut harus bersifat unik sehingga mampu dijadikan sebagai pembeda bagi setiap
objek yang terdapat di suatu HashMap.
Contoh berikut tetap menggunakan class ‘Person’ yang ada pada artikel sebelumnya, tetapi dengan
sedikit modifikasi sehingga masing-masing objek ‘Person’ memiliki nomor telepon.
Contoh Program : Person.java
01 package collections;
02
03 //Person.java
04 public class Person
05 {
06 private String name;
07 private char gender;
08 private int age;
09 private String mobile;
10
11 public Person()
12 {13 }14
15 public Person(String name, char gender, int age)
16 {17 this.name=name;18 this.gender=gender;19 this.age=age;20 }21
22 public Person(String name, char gender, int age, String mobile)
23 {24 this.name=name;25 this.gender=gender;26 this.age=age;27 this.mobile=mobile;28 }
50/66
andriagutama.com
29
30 //setter
31 public void setName(String name)
32 {33 this.name=name;34 }35
36 public void setGender(char gender)
37 {38 this.gender=gender;39 }40
41 public void setAge(int age)
42 {43 this.age=age;44 }45
46 public void setMobile(String mobile)
47 {48 this.mobile=mobile;49 }50
51 //getter
52 public String getName() { return this.name; }
53
54 public char getGender() { return this.gender; }
55
56 public int getAge() { return this.age; }
57
58 public String getMobile() { return this.mobile; }
59 }
Karena class ‘Person’ terdapat dalam package ‘collections’, maka simpan file tersebut dengan nama
‘Person.java’ dan diletakkan di dalam folder ‘collections’ (Sepertinya sering banget yah Saya
mengulang-ulang kata-kata ini, selanjutnya Saya akan menulis artikel tentang package di Java biar gak
ngulang-ngulang kayak gini:)).
Contoh Program : UsingHashMap.java
01 package collections;
02
51/66
andriagutama.com
03 //UsingHashMap.java
04 import collections.Person;
05 import java.util.HashMap;
06 import java.util.Set;
07
08 public class UsingHashMap
09 {
10 public static void main(String[] args)
11 {
12 Person person1=new Person("Theo Walcott",'M',23,"08566827xxxx");
13 Person person2=new Person("Robin Van Persie",'F',23,"08566827xxxx");
14 Person person3=new Person("Andrei Arshavin",'M',23,"08566827xxxx");
15 Person temp=new Person();
16
17 HashMap<String, Person> mapKu = new HashMap<String, Person>();
18
19 //Masukin ke HashMap20 mapKu.put(person1.getName(), person1);21 mapKu.put(person2.getName(), person2);22 mapKu.put(person3.getName(), person3);23
24 //Ambil isi HashMap : Salah satu aja25 temp=mapKu.get("Andrei Arshavin");26 System.out.println("Name : "+temp.getName());27 System.out.println(" Gender : "+temp.getGender());28 System.out.println(" Age : "+temp.getAge());29 System.out.println(" Mobile : "+temp.getMobile()+"\n");30
31 //Ambil semuanya32 Set<String> myKeySet=mapKu.keySet();33
34 System.out.println("Isi semuanya :");35 for(String name : myKeySet)36 {37 temp=mapKu.get(name);38 System.out.println("Name : "+temp.getName());39 System.out.println(" Gender : "+temp.getGender());40 System.out.println(" Age : "+temp.getAge());41 System.out.println(" Mobile : "+temp.getMobile());42 }43 }44 }
52/66
andriagutama.com
HashMap di atas menggunakan nama lengkap sebagai ‘key’ nya … Yang sebenarnya kurang tepat
dijadikan sebagai ‘key’ mengingat ada beberapa orang yang memiliki nama yang sama. Tapi contoh di
atas sudah cukup untuk menggambarkan penggunaan HashMap.
53/66
andriagutama.com
Bab 19. Operasi Database
Java memiliki kemampuan untuk mengakses database. Java mengakses database dengan menggunakan
fitur JDBC (Java Database Connectivity).
Kita akan mencoba membuat program untuk mengakses database MySQL. Download driver JDBC
untuk MySQL dari http://dev.mysql.com/downloads/connector/j/. Copy file hasil download tersebut
(biasanya berekstensi .jar) ke folder library java Anda ('C:\Program Files\Java\Jdk\Jre\Lib\Ext' untuk
lingkungan Windows atau '/usr/share/java' untuk lingkungan Linux).
Login ke MySQL, buat database baru dengan nama 'db_belajar' dan buat satu tabel dengan nama
't_mhs' seperti berikut:
CREATE DATABASE db_belajar;USE db_belajar;CREATE TABLE t_mhs(
id int not null primary key auto_increment,nim text not null,nama text not null
);
Contoh Program : Query.java
package Belajar;
import java.sql.*;
public class Query {
public String dbHost; public String dbUsername; public String dbUserpass; public String dbName; public String sql;
//driver public String driverMySQL; public String url; public boolean conn; public Connection con; public ResultSet rs; public ResultSetMetaData md; public Statement stmt;
public Query() { //database configuration this.dbHost="localhost"; this.dbUsername="root"; this.dbUserpass=""; this.dbName="db_belajar"; }
54/66
andriagutama.com
public Query(String dbHost, String dbUsername, String dbUserpass, String dbName) { this.dbHost=dbHost; this.dbUsername=dbUsername; this.dbUserpass=dbUserpass; this.dbName=dbName; }
// membuka koneksi ke database public void connectToDb() { this.conn=false; this.driverMySQL="org.gjt.mm.mysql.Driver";
try{ Class.forName(this.driverMySQL).newInstance(); this.conn=true; }catch(Exception ex) { System.out.println(ex.getMessage()); }
if(this.conn) { try{ this.con=null; this.stmt=null; this.rs=null; this.md=null; this.url="jdbc:mysql://"+this.dbHost+"/"+this.dbName+"?user="+this.dbUsername+"&password="+this.dbUserpass; }catch(Exception ex) { System.out.println(ex.getMessage()); } } }
// menjalankan query select public void executeQuery(String sql) {
if(this.conn){
this.sql=sql;try{
this.con=DriverManager.getConnection(this.url);this.stmt=con.createStatement();this.rs=stmt.executeQuery(this.sql);this.md=this.rs.getMetaData();
}catch(Exception ex){
System.out.println(ex.getMessage());}
} }
// menjalankan query insert atau update atau delete public void executeQuery(String sql,boolean update) {
if(this.conn){
this.sql=sql;try{
this.con=DriverManager.getConnection(this.url);this.stmt=con.createStatement();int rs=stmt.executeUpdate(this.sql);
55/66
andriagutama.com
}catch(Exception ex){
System.out.println(ex.getMessage());}
} }
// mengembalikan jumlah baris dari hasil query public int getNumRows() {
int row=0;if(this.conn){
try{this.rs.last();row=rs.getRow();
}catch(Exception ex){
System.out.println(ex.getMessage());}
}
return row;}
// mengembalikan hasil query dalam bentuk array 2 dimensi public String[][] querySelect() { String[][] column=null; if(this.conn) {
try{this.rs.last();int row=rs.getRow();int col=this.md.getColumnCount();column=new String[row][col];
int i=0;this.rs.beforeFirst();while(this.rs.next()){
for(int j=0;j<col;j++){
column[i][j]=this.rs.getString(j+1);}i++;
}}catch(Exception ex){
System.out.println(ex.getMessage());}
}
return column; }
// mengembalikan hasil query berupa 1 nilai public String querySingle() { String column=null;
if(this.conn){
try{this.rs.beforeFirst();
if(this.rs.next())
56/66
andriagutama.com
{ column=this.rs.getString(1); }
}catch(Exception ex){
System.out.println(ex.getMessage());}
}
return column; }
// menutup koneksi database public void closeDb() {
if(this.conn){
try{this.rs.close();this.stmt.close();this.con.close();
}catch(Exception ex){
System.out.println(ex.getMessage());}
} }
}
Contoh Program : InputDataMhs.java
package Belajar;
import Belajar.Query;
public class InputDataMhs{public InputDataMhs(){
this.mainMenu();}
public static void main(String[] args){
new Belajar.InputDataMhs();}
public void mainMenu(){
int menu=0;System.out.println("+-------------------------+");System.out.println("| Data Mahasiswa |");System.out.println("+-------------------------+");System.out.println(" 1. Tambah Data");System.out.println(" 2. Lihat Data");System.out.println(" 3. Keluar");System.out.println("+-------------------------+");System.out.print(" Masukkan pilihan Menu : ");
java.io.BufferedReader buf = new java.io.BufferedReader(new java.io.InputStreamReader(System.in)
);try{
menu = Integer.parseInt(buf.readLine());System.out.print("");
}catch(Exception e) {}
57/66
andriagutama.com
//switch caseswitch(menu){
case 1 : this.tambahData();break;
case 2 : this.lihatData();break;
case 3 : this.keluar();break;
default : this.mainMenu();break;
}}
public void tambahData(){
String nim=null;String nama=null;java.io.BufferedReader buf = new java.io.BufferedReader(
new java.io.InputStreamReader(System.in));
System.out.println("+-------------------------+");System.out.println("| Tambah Data Mahasiswa |");System.out.println("+-------------------------+");System.out.print(" Nama : ");try{
nama = buf.readLine();System.out.print("");
}catch(Exception e) {}System.out.print(" NIM : ");try{
nim = buf.readLine();System.out.print("");
}catch(Exception e) {}
this.simpanData(nim,nama);System.out.println("Data berhasil dimasukkan!!");
this.mainMenu();}
public void simpanData(String nim,String nama){
Query query = new Query();query.connectToDb();String sql = "INSERT INTO t_mhs(nim,nama) VALUES('"+nim+"','"+nama+"')";query.executeQuery(sql,true);query.closeDb();
}
public void lihatData(){
System.out.println("+-------------------------+");System.out.println("| Lihat Data Mahasiswa |");System.out.println("+-------------------------+");
Query query = new Query();query.connectToDb();String sql = "SELECT id,nim,nama FROM t_mhs ORDER BY nim ASC";query.executeQuery(sql);String[][] column = query.querySelect();for(int i=0; i<column.length; i++) {
System.out.println(" "+column[i][1]+" - "+column[i][2]);}
58/66
andriagutama.com
query.closeDb();
this.mainMenu();}
public void keluar(){
System.exit(0);}
}
Letakkan kedua file tsb ke dalam folder 'Belajar' karena kedua file tersebut berada di dalam package
'Belajar'.
Selanjutnya, dari atas folder 'Belajar', jalankan perintah berikut untuk mengkompilasi dan menjalankan
aplikasi:
javac Belajar/InputDataMhs.javajava Belajar.InputDataMhs
59/66
andriagutama.com
Bab 20. Java GUI : Framepackage gui1;
public class TestBorderLayout extends javax.swing.JFrame { public TestBorderLayout() { this.setLayout(new java.awt.BorderLayout()); //javax.swing.JLabel label1 = new javax.swing.JLabel("Test 1"); //label1.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED)); //this.add(label1, java.awt.BorderLayout.NORTH);
//add menu bar//file menujavax.swing.JMenuBar menuBar = new javax.swing.JMenuBar();javax.swing.JMenu menuFile = new javax.swing.JMenu("File");menuFile.setMnemonic('F');javax.swing.JMenuItem itemNew = new javax.swing.JMenuItem("New");itemNew.setMnemonic('N');itemNew.addActionListener(
new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {
javax.swing.JOptionPane.showMessageDialog(null, "Anda meng-klik menu File-New");}
});javax.swing.JMenuItem itemExit = new javax.swing.JMenuItem("Exit");itemExit.setMnemonic('E');itemExit.addActionListener(
new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {
dispose();System.exit(0);
}}
);
//about menujavax.swing.JMenu menuAbout = new javax.swing.JMenu("About");menuAbout.setMnemonic('A');
menuFile.add(itemNew);menuFile.add(itemExit);
menuBar.add(menuFile);menuBar.add(menuAbout);
60/66
andriagutama.com
this.add(menuBar, java.awt.BorderLayout.NORTH);
javax.swing.JLabel label2 = new javax.swing.JLabel("Test 2"); label2.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED)); this.add(label2, java.awt.BorderLayout.WEST);
//javax.swing.JLabel label3 = new javax.swing.JLabel("Test 3"); //label3.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED)); //this.add(label3, java.awt.BorderLayout.CENTER);
javax.swing.JLabel label4 = new javax.swing.JLabel("Test 4"); label4.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED)); this.add(label4, java.awt.BorderLayout.EAST);
//javax.swing.JLabel label5 = new javax.swing.JLabel("Test 5"); //label5.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED)); //this.add(label5, java.awt.BorderLayout.SOUTH);
javax.swing.JPanel panel1 = new javax.swing.JPanel(new java.awt.FlowLayout()); panel1.add(new javax.swing.JButton("Send")); panel1.add(new javax.swing.JButton("Cancel")); this.add(panel1, java.awt.BorderLayout.SOUTH); } public static void main(String[] args) { TestBorderLayout frame2 = new TestBorderLayout(); frame2.setTitle("Test Frame"); frame2.setSize(new java.awt.Dimension(400,200)); frame2.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); frame2.setVisible(true); }
class ImagePane1 extends javax.swing.JPanel {
javax.swing.ImageIcon picture;
public ImagePane1(javax.swing.ImageIcon icon){
picture = icon;}
public void paint(java.awt.Graphics g){
super.paintComponent(g);picture.paintIcon(this, g, 0, 0);
}
61/66
andriagutama.com
public java.awt.Dimension getPrefferedSize(){
return new java.awt.Dimension(picture.getIconWidth(), picture.getIconHeight());}
}}
62/66
andriagutama.com
Bab 21. Java GUI : Frame With Grid Layoutpackage gui1;
import java.awt.event.ActionEvent;
/** * * @author andria */public class TestGridLayout extends javax.swing.JFrame {
private javax.swing.JButton btn1;private javax.swing.JButton btn2;private javax.swing.JButton btn3;private javax.swing.JButton btn4;
public TestGridLayout() {this.setTitle("Test Grid Layout");this.setLayout(new java.awt.GridLayout(2, 3, 5, 5));this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);this.setSize(600, 400);
btn1 = new javax.swing.JButton("click here");btn2 = new javax.swing.JButton("click here");btn3 = new javax.swing.JButton("click here");
//btn3 = new javax.swing.JButton(new javax.swing.ImageIcon(this.getClass().getResource("/gui1/images/bubble_64.png")));btn4 = new javax.swing.JButton("click here");
btn1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {javax.swing.JOptionPane.showMessageDialog(null, "Hai!!");
}}
);btn2.addActionListener(
new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {
javax.swing.JOptionPane.showMessageDialog(null, "Nama saya");}
});btn3.addActionListener(
new java.awt.event.ActionListener() {
63/66
andriagutama.com
public void actionPerformed(ActionEvent e) {javax.swing.JOptionPane.showMessageDialog(null, "Andria Gutama");
}}
);btn4.addActionListener(new ButtonHandler());
this.add(btn1);this.add(btn2);this.add(btn3);this.add(btn4);
}
public static void main(String[] args){
new TestGridLayout().setVisible(true);}
private class ButtonHandler implements java.awt.event.ActionListener{
public void actionPerformed(java.awt.event.ActionEvent e){
dispose();System.exit(0);
}}
}
64/66
andriagutama.com
Bab 22. Java GUI : Table with Vectorimport java.util.Vector;
public class TestTable extends javax.swing.JFrame{
public TestTable(){
this.setTitle("Test Table");this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);this.setLayout(new java.awt.BorderLayout());this.setSize(500, 200);
//VectorVector<String> column = new Vector<String>();column.add("Nama");column.add("No Telp");column.add("Alamat");
Vector<String> v1 = new Vector<String>();v1.add("Robin Van Persie");v1.add("085668277822");v1.add("Batam Center");
Vector<String> v2 = new Vector<String>();v2.add("Jack Wilshere");v2.add("08566642442");v2.add("Batam Center");
Vector<Vector> v = new Vector<Vector>();v.add(v1);v.add(v2);
//JTablejavax.swing.JTable table1 = new javax.swing.JTable(v, column);javax.swing.JScrollPane pane1 = new javax.swing.JScrollPane(table1,
javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
//pane1.add(table1);this.getContentPane().add(pane1);
}
public static void main(String[] args){
new TestTable().setVisible(true);}
65/66
andriagutama.com
}
66/66