pengenalan java

66
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

Upload: isukepri

Post on 10-Mar-2016

236 views

Category:

Documents


3 download

DESCRIPTION

pengenalan java, andria gutama, konsep oop, variabel dalam java

TRANSCRIPT

Page 1: Pengenalan Java

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

Page 2: Pengenalan Java

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

Page 3: Pengenalan Java

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

Page 4: Pengenalan Java

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

Page 5: Pengenalan Java

andriagutama.com

Bab 22. Java GUI : Table with Vector.......................................................................................................................................65

5/66

Page 6: Pengenalan Java

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

Page 7: Pengenalan Java

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

Page 8: Pengenalan Java

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

Page 9: Pengenalan Java

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

Page 10: Pengenalan Java

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

Page 11: Pengenalan Java

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

Page 12: Pengenalan Java

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

Page 13: Pengenalan Java

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

Page 14: Pengenalan Java

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

Page 15: Pengenalan Java

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

Page 16: Pengenalan Java

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

Page 17: Pengenalan Java

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

Page 18: Pengenalan Java

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

Page 19: Pengenalan Java

andriagutama.com

41 }42 }

Array multidimensi sebenarnya adalah Array yang Elementnya adalah Array, seperti contoh program di

atas.

19/66

Page 20: Pengenalan Java

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

Page 21: Pengenalan Java

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

Page 22: Pengenalan Java

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

Page 23: Pengenalan Java

andriagutama.com

12 }13 System.out.println("");14 }15 }16 }

23/66

Page 24: Pengenalan Java

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

Page 25: Pengenalan Java

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

Page 26: Pengenalan Java

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

Page 27: Pengenalan Java

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

Page 28: Pengenalan Java

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

Page 29: Pengenalan Java

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

Page 30: Pengenalan Java

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

Page 31: Pengenalan Java

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

Page 32: Pengenalan Java

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

Page 33: Pengenalan Java

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

Page 34: Pengenalan Java

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

Page 35: Pengenalan Java

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

Page 36: Pengenalan Java

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

Page 37: Pengenalan Java

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

Page 38: Pengenalan Java

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

Page 39: Pengenalan Java

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

Page 40: Pengenalan Java

andriagutama.com

Bab 15. Java Package

Package memperlihatkan struktur dari beberapa file dalam suatu program Java.

40/66

Page 41: Pengenalan Java

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

Page 42: Pengenalan Java

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

Page 43: Pengenalan Java

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

Page 44: Pengenalan Java

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

Page 45: Pengenalan Java

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

Page 46: Pengenalan Java

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

Page 47: Pengenalan Java

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

Page 48: Pengenalan Java

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

Page 49: Pengenalan Java

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

Page 50: Pengenalan Java

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

Page 51: Pengenalan Java

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

Page 52: Pengenalan Java

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

Page 53: Pengenalan Java

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

Page 54: Pengenalan Java

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

Page 55: Pengenalan Java

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

Page 56: Pengenalan Java

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

Page 57: Pengenalan Java

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

Page 58: Pengenalan Java

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

Page 59: Pengenalan Java

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

Page 60: Pengenalan Java

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

Page 61: Pengenalan Java

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

Page 62: Pengenalan Java

andriagutama.com

public java.awt.Dimension getPrefferedSize(){

return new java.awt.Dimension(picture.getIconWidth(), picture.getIconHeight());}

}}

62/66

Page 63: Pengenalan Java

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

Page 64: Pengenalan Java

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

Page 65: Pengenalan Java

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

Page 66: Pengenalan Java

andriagutama.com

}

66/66