StripBandunk | Belajar Java Dasar

2011
Belajar Java Dasar

Eko Kurniawan Khannedy StripBandunk 9/1/2011

i

St ipB ndun | B l j

Daftar Isi
Daftar Isi ................................ ................................ ................................ ....................... ii 1 Persiapan ................................ ................................ ................................ ............... 1 1.1 1.2 1.3 1.4 2 Peralatan yang Diperlukan ................................ ................................ .............. 1 Java Development Kit ................................ ................................ ..................... 1 Java Runtime Environtment ................................ ................................ ............ 1 NetBeans IDE ................................ ................................ ................................ .. 1

Dasar-Dasar Bahasa Pemrograman Java ................................ ................................ 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Program Hello World ................................ ................................ ...................... 2 Tipe Data ................................ ................................ ................................ ........ 2 Variabel ................................ ................................ ................................ .......... 3 Operator ................................ ................................ ................................ ......... 3 Percabangan ................................ ................................ ................................ ... 6 Perulangan ................................ ................................ ................................ ..... 9 Array................................ ................................ ................................ ............. 12

3

Pemrograman Berorientasi Objek ................................ ................................ ........ 14 3.1 3.2 3.3 3.4 3.5 3.6 Object ................................ ................................ ................................ ........... 14 Class ................................ ................................ ................................ ............. 14 Paket ................................ ................................ ................................ ............ 32 Interface ................................ ................................ ................................ ....... 33 Inner Class ................................ ................................ ................................ .... 35 Kelas POJO / Java Bean ................................ ................................ ................. 38

4

Penanganan Kesalahan ................................ ................................ ........................ 40 4.1 4.2 4.3 4.4 4.5 4.6 Menangkap Kesalahan ................................ ................................ .................. 40 Penanganan Secara Bertingkat ................................ ................................ ..... 41 Melontarkan Exception ................................ ................................ ................. 41 Membuat Kelas Exception ................................ ................................ ............ 42 Membuat Kelas RuntimeException ................................ ............................... 43 Blok Finally ................................ ................................ ................................ ... 44

5

Kelas Kelas ................................ ................................ ................................ ........ 46

¥ ¤ £   ¡ ¡ ¡ ¡  ¡ ¡

¢

¡

 

J

s

ii

5.1 5.2 5.3

String ................................ ................................ ................................ ............ 46 Date................................ ................................ ................................ .............. 48 Calendar ................................ ................................ ................................ ....... 48

Tentang Penulis ................................ ................................ ................................ .......... 51

¦

St ipB ndun | B l j
¦ 

 ¦ © § § § § § §

¨

§

J

s

iii

1 Persiapan
1.1 Peralatan yang Diperlukan
Pada pelatihan Java Dasar ini, peralatan yang diperlukan adalah : 1. Java Development Kit versi 1.6 keatas. 2. Java Runtime Environtment versi 1.6 keatas. 3. NetBeans IDE versi 6.9 keatas.

1.2 Java Development Kit
Java Development Kit merupakan perangkat lunak yang digunakan untuk melakukan proses kompilasi dari kode Java menjadi bytecode yang dapat dimengerti dan dapat dijalankan oleh Java Runtime Environtment. Java Development Kit wajib terinstall pada komputer yang akan melakukan proses pembuatan aplikasi berbasis Java. Namun Java Development Kit tidak wajib terinstall di komputer yang akan menjalankan aplikasi yang dibangun menggunakan Java.

1.3 Java Runtime Environtment
Java Runtime Environtment merupakan perangkat lunak yang digunakan untuk menjalankan aplikasi yang dibangun menggunakan java. Versi JRE harus sama atau lebih tinggi dari JDK yang digunakan untuk membangun aplikasi agar aplikasi dapat berjalan sesuai dengan yang diharapkan.

1.4 NetBeans IDE
NetBeans IDE merupakan perangkat lunak yang digunakan untuk membangun perangkat lunak yang lain. NetBeans IDE dapat digunakan untuk membangun perangkat lunak berbasis Java Standard Edition, Java Enterprise Edition, Java Micro Edition, JavaFX, PHP, C/C++, Ruby, Groovy dan Python. 

   

St ipB ndun | B l j 
  

J

s

1

2 Dasar-Dasar Bahasa Pemrograman Java
2.1 Program Hello World
public class HelloWorld { public stati c void main(String[] args) { System.out.println("Hello World"); } }

Pada kode diatas, kita telah membuat sebuah program sederhana yang menampilkan tulisan Hello World pada console. Terdapat beberapa aturan dalam membuat program dalam Java yaitu : 1. Nama file harus sama dengan nama kelas program. Misal pada kode diatas nama kelasnya adalah HelloWorld, maka nama file harus HelloWorld.java. 2. Hanya boleh terdapat satu kelas public pada sebuah file. 3. Kelas yang menjadi program harus memiliki metode public static void main(String[] args) 4. Terminal pada Java menggunakan tanda ; (titik koma).

2.2 Tipe Data
Terdapat beberapa tipe data primitive yang ada di Java yaitu :
& &'$ $ & &% $

Tip t bool n ch byt sho t int long doubl flo t
$ &$ $ '& ' &

K t ng n true atau false Karakter -128 - 127 -32768 - 32767 -2147483648 - 2147483647 -9223372036854775808 - 9223372036854775807 4.9E-324 - 1.7976931348623157E308 1.4E-45 - 3.4028235E38

String bukanlah merupakan tipe data di Java, String merupakan Object. Namutn string memiliki keunikan yaitu String dapat langsung dibuat tanpa harus membuat Object. 

# "  

St ipB ndun | B l j 


!

J

s

2

Pembuatan sebuah variabel di Java terlihat pada kode dibawah ini. int nilai.% dan lain-lain 3. Syarat-syarat penamaan variabel adalah : 1. char indexNilai. enter. Untuk menambahkan nilai ke sebuah variabel. Tipevariabel namavariabel. indexNilai = 'A'. Tipe variabel dapat berupa tipe data atau kelas. Tidak boleh terdapat karakter unik seperti @. char indexNilai = µA¶. #. Atau dapat juga langsung saat pembuatan sebuah variabel. int nilai = 100. maka dapat terlihat pada kode dibawah ini. tab) 2. nilai = 100. char indexNilai. misal : int nilai.2.4 Operator Operator merupakan sebuah menghasilkan suatu nilai. Harus diawalai dengan huruf 2.3 Variabel Variabel merupakan sesuatu yang digunakan untuk menampung sebuah data. karakter khusus yang digunakan untuk () )3 )2) () ) St ipB ndun | B l j 0 ) ( 1 J s 3 . maka dapat menggunakan tanda = (sama dengan) . misal jika kita akan menambahkan nilai 100 pada variabel nilai dan A pada variabel indexNilai. Tidak boleh mengandung karakter putih (spasi.Sebuah variabel harus ada dalam sebuah kelas atau metode.

Hal ini dikarenakan dalam Java jika kita melakukan operasi pembagian dengan tipe data integer.out.4.1 Operator Aritmatika B BA@ @ A BA@ Op + * / % to Contoh : int a = 10.4. maka hasilnyapun akan integer. sehingga jika akan melakukan perkalian yang menghasilkan nilai koma. int b = 3. dan integer tidak dapat mengandung nilai koma dalam Java. a += 5.println(a). System. 45 59 585 45 5 St ipB ndun | B l j 6 5 4 7 J s K t ng n Penjumlahan Pengurangan Perkalian Pembagian Sisa pembagian K t ng n Pemberian nilai Penambahan bilangan Pengurangan bilangan Perkalian bilangan Pembagian bilangan Pemerolehan sisa bagi 4 . Hasil dari kode program diatas adalah 3 bukan 3. maka harus menggunakan tipe data double atau float.out.println(c).333. 2.2 Operator Penugasan E EDC C D EDC Op = += -= *= /= %= to Contoh int a = 10. System. int c = a / b.2.

println(a). misal : int a = 10. misal : boolean a = 10 == 100. maka dapat dengan mudah menggunakan karakter ++ untuk penambahan atau -. System.4. Maka hasilnya adalah 9. a--. 2. True jika operasi pembanding tersebut benar.untuk pengurangan. Jika akan melakukan penambahan atau pengurangan dengan nilai 1. dikarenakan a sebelumnya adalah 10. maka itu berarti a = 10 + 5. System. Hal ini dikarenakan a += 5 sama dengan a = a + 5.Hasil dari operasi += tersebut adalah 15. karena memang 10 tidak sama dengan 100. dan false jika operasi pembanding tersebut salah.out.4.println(a). 2.4 Operator Logika W WVU U V WVU Op && || to FG GQ GPG FG G St ipB ndun | B l j H G F I J s K t ng n Sama dengan Tidak sama dengan Lebih dari sama dengan Kurang dari sama dengan Lebih dari Kurang dari K t ng n Dan Atau 5 .out. Hasil dari program diatas adalah false.3 Operator Pembanding T TSR R S TSR Op == != >= <= > < to Hasil dari operasi pembanding adalah boolean.

1 Percabangan if Pernyataan if merupakan salah satu bentuk pernyataan yang berguna untuk mengambil keputusan terhadap sebuah kemungkinan.println(hasil).Operator logika digunakan untuk membentuk suatu keadaan dari dua atau lebih kondisi tertentu.out. 2. boolean hasil = 10 == 100 || 100 == 100. Bentuk pernyataan if berupa : if(kondisi){ // yang akan dijalankan } Contoh : XY Yc YbY XY Y St ipB ndun | B l j ` Y X a J s Op si 2 False True False True H sil False False False True Op rasi 2 False True False True Hasil False True True True 6 . f fed Op si 1 F ls F ls Tru Tru fed d f d f d d Hasil operasi logika dengan menggunakan || adalah sebagai berikut.5 Percabangan 2. operator logika biasanya digabungkan dengan operator pembanding.5. System. Hasil operasi logika dengan menggunakan && adalah sebagai berikut. Maka hasilnya adalah true. Hasil dari operator logika adalah boolean. d Op rasi 1 Fals Fals Tru Tru d d d d d Contoh.

2. Bentuk pernyataan if bersarang adalah sebaga berikut : if(kondisi1){ // perintah kondisi1 h 7 .out. misal nilai == 100. jika kondisi bernilai salah.5.out. maka hasilnya adalah tulisan Sepuluh karena kondisi pada if bernilai true. hal ini dikarenakan nilai bernilai 8. 2. if(nilai == 10){ System.2 Percabangan if-else Percabangan if-else merupakan percabangan yang sama dengan percabangan if namun memiliki kondisi false. }else{ System. Bentuk pernyataan if-else berupa : if(kondisi){ // jalankan jika kondisi true }else{ // jalankan jika kondisi false } Misal int nilai = 8. maka program tidak akan menghasilkan tulisan apa-apa. } Jika program diatas dijalankan.println("Sepuluh").3 Percabangan if bersarang Percabangan if bersarang merupakan gabungan beberapa if dan dapat pula digabung dengan if-else.println("Bukan Sepuluh"). } Jika program diatas dijalankan.println("Sepuluh"). maka hasilnya adalah tulisan Bukan Sepuluh . bukan 10.out. artinya jika kondisi pada if tidak terpenuhi maka perintah pada else akan dijalankan. if(nilai == 10){ System.StripBandun | B lajar Java Dasar g int nilai = 10.5.

} System. }else{ index = 'E'. Jika program diatas dijalankan. // hentikan case nilai2: // jalankan instruksi break. // hentikan case nilai4: // jalankan instruksi break. }else if(nilai >= 6){ index = 'C'. // hentikan default: p 8 .println(index).StripBandun | B lajar Java Dasar i }else if(kondisi2){ // perintah kondisi2 }else if(kondisi3){ // perintah kondisi3 }else{ // perintah jika semua kondisi tidak ada yang benar } Misal. int nilai = 6.5. }else if(nilai >= 7){ index = 'B'. if(nilai >= 8){ index = 'A'.4 Percabangan switch-case Percabangan switch-case merupakan percabangan yang kondisinya hanya dapat menggunakan perbandingan == (sama dengan). maka hasilnya adalah C . // hentikan case nilai2: // jalankan instruksi break. Bentuk pernyataan percabangan switch-case adalah sebagai berikut : switch(variabel){ case nilai1: // jalankan instruksi break.out. }else if(nilai >= 5){ index = 'D'. char index. 2.

StripBandun | B lajar Java Dasar q // jalankan instruksi break. diperlukan sebuah variabel.println("Hari Libur").out.out. jika sama. Bentuk pernyataan while seperti berikut ini : while(kondisi){ // isi instruksi } Misal : r 9 . default: System.1 Perulangan while Pernyataan while berguna untuk melakukan proses perulangan untuk sebuah kondisi. maka instruksi akan dijalankan sampai menemui tanda break. 2.println("Bukan Hari Libur"). dan terhenti ketika kondisi bernilai salah (false). // hentikan } Pada percabangan switch pertama. break. break.out. maka perulangan akan terus berjalan. case 7: System.println("Hari Tidak Diketahui").6. setelah itu bada bagian case dibandingkan.6 Perulangan 2. break. Misal : int hari = 5. maka program akan menghasilkan tulisan Bukan Hari Libur . } Jika program diatas dijalankan. selama kondisi tersebut bernilai benar (true). switch(hari){ case 1: case 2: case 3: case 4: case 5: case 6: System.

maka akan menghasilkan keluaran 100.println(jumlah). pada perulangan do-while. artinya walaupun kondisi salah. Jika program tersebut dijalankan.StripBandun | B lajar Java Dasar s int jumlah = 1.6. Misal. Dan saat jumlah bernilai 11. Bentuk pernyataan do-while sebagai berikut : do{ // insturksi }while(kondisi). maka minimal instruksi akan dijalankan sekali. // menaikkan jumlah } Jika program tersebut dijalankan.3 Perulangan for Perulangan for merupakan perulangan yang memiliki variabel untuk melakukan pengkondisian.6. do{ System.2 Perulangan do-while Perulangan do-while merupakan perulangan yang hampir mirip dengan perulangan while namun perbedaannya.out. jumlah++. dimana do-while pertama melakukan instruksi baru mengecek kondisi. hal ini dikarenakan proses do-while berbeda dengan while. maka perulangan akan terhenti dikarenakan kondisi bernilai false (11 <= 10) 2. maka hasilnya adalah tulisan dari no 1 sampai 10. berbeda dengan while dan do-while yang kita harus membuat t 10 . while(jumlah <= 10){ System. // naikkan jumlah }while(jumlah <= 10). sedangkan while pertama mengecek kondisi baru melakukan instruksi. 2.println(jumlah). int jumlah = 100. jumlah++. namun minimal isi instruksi akan dijalankan sekali.out.

6. i++){ System. pada perulangan for.6. } 2. i <= 100.out.println(i). if(i == 50){ break. v 11 .StripBandun | B lajar Java Dasar u sebuah variabel diluar untuk melakukan penkondisian. maksudnya adalah instruksi yang seharusnya dapat dilewat. } System. kondisi.out. penaikan/penurunan){ instruksi } Misal kita akan menampilkan angka dari 1 = 100.println(i).5 Perintah continue Perintah continue dapat digunakan untuk meloncati sebuah perulangan. i++){ if(i % 2 == 0){ continue. maka dapat menggunakan perulangan for. karena pada saat i mencapai 50. 2.println(i).4 Perintah break Perintah break merupakan perintah yang dapat digunakan untuk menghentikan proses perulangan. Misal. i++){ System. program dihentikan oleh perintah break. Bentuk pernyataan for seperti berikut : for(inisialisasi. i <= 100. ditempatkan sebuah blok untuk membuat variabel dan melakukan proses pengkondisian. misal jika kita membuat program seperti berikut : for(int i = 1. for(int i = 1. for(int i = 1.out. i <= 100. hal ini berarti instrukti tidak akan dijalankan. } } Maka program hanya akan menampilkan angka dari 1 sampai 50.

7. maka untuk melakukan proses manipulasi seperti menambahkan data ke Array. 2. sebelum array tersebut digunakan. TipeArray namaArray[]. maka perlu dibuat arraynya terlebih dahulu. short atau juga kelas seperti String dan yang lainnya. Dimana jumlah array merupakan jumlah data yang dapat ditampung oleh array. x 12 .2 Membuat Array Setelah mendeklarasikan Array. maka hasilnya akan terlihat seperti ini.1 Mendeklarasikan Array Untuk membuatan variabel array pun berbeda dengan membuat variabel biasanya yaitu sebagai berikut : TipeArray namaArray[]. maka hasilnya akan menampilkan angka-angka ganjil saja. 2. char. maka diperlukan sebuah indeks. namaArray = new TipeArray[jumlah]. dimana saat membuat sebuah array dengan jumlah data 5.StripBandun | B lajar Java Dasar w } Jika program diatas dijalankan.3 Memanipulasi Data dalam Array Setelah membuat Array.7. hal ini dikarenakan saat nilai i merupakan angka genap. Dimana tipe array dapat berupa tipe data biasa seperti int. 2. caranya dengan menggunakan perintah new.7 Array Array merupakan objek yang dapat digunakan untuk menyimpan sejumlah data. 2.Data yang dapat ditampung pada array dapat berupa tipe data ataupun kelas (objek). maka perintah continue membuat program tidak menampilkan angka genap. mengubah data di Array ataupun mengakses data dalam Array.7.

out. 4234.4 Array Multidimensi Java mendukung pembuatan array multidimensi maksudnya kita dapat menambahkan data array ke dalam sebuah array. 6867.StripBandun | B lajar Java Dasar y No 1 2 3 4 5 Artinya data ke 1 dapat diakses menggunakan indeks 0 dan seterusnya. System.println(a[1]). Dan untuk melakukan proses manipulasi data dalam array menggunakan indeks dapat digunakan dengan perintah : namaArray[indeks].out. € Indeks 0 1 2 3 4 13 . 2423.out. System. 564. a[0] a[1] a[2] a[3] a[4] = = = = = 234.out.println(a[3]). 2. System.println(a[4]). System. cara pembuatannya adalah sebagai berikut : TipeArray namaArray[][] = new TipeArray[jumlah][jumlah]. Misal : int a[] = new int[5].7.println(a[2]).println(a[0]). System.out.

} ‚ 14 . Jika dalam kelas tersebut memiliki sebuah fungsi (metode). artinya sebuah kelas dapat membuat beberapa object.Dan sebuah cetakan kue dapat membuat beberapa kue. kelas didefinisikan menggunakan kata kunci class.namaAtribut = value. maka dapat dipanggil menggunakan . Kelasobjek = new Kelas().1 Object Objek merupakan hasil dari sebuah kelas.Objek merupakan gabungan data dan fungsi.StripBandun | B lajar Java Dasar  3 Pemrograman Berorientasi Objek Pemrograman berorientasi objek merupakan pemrograman yang menjadikan objek sebagai komponen utama dalam sistem. dimana cara pembuatannya sama dengan pembuatan variabel. dimana kue dibuat menggunakan cetakan tersebut. Contoh kelas sederhana adalah sebagai berikut : class Manusia { String nama. 3. maka dapat dipanggil menggunakan . Jika dalam kelas yang dibuat objek tersebut terdapat atribut.namaFungsi(). dimana sebuah objek dibuat dari sebuah kelas. 3. (titik) dan diakhiri dengan () // memanggil fungsi objek. maka kelas adalah cetakan kuenya. (titik) // mengubah atribut objek. jika diibaratkan Objek adalah kue. Untuk membuat objek dalam Java diperlukan sebuah perintah new.2 Class Dalam Java.

// mengubah nama objek manusia manusia. Contoh pembuatan objek untuk kelas manusia adalah sebagai berikut : // membuat objek manusia Manusia manusia = new Manusia(). Contoh : class Manusia { String nama. Prosedur.StripBandun | B lajar Java Dasar ƒ Pada kode diatas. kelas manusia memiliki 2 buah metode yaitu ambilNama() dan hapusNama(). Dan nama merupakan atribut yang dimiliki kelas Manusia tersebut.1 Metode Dalam java terdapat dua buah metode 1. cara pembuatan sebuah fungsi adalah dengan cara menentukan nilai baliknya. cara pembuatan prosedur sama dengan fungsi namun bedanya. lalu membuat nama metodenya. Fungsi. 2. merupakan metode yang tidak memiliki nilai balik. } } Pada kode diatas. } // prosedur void hapusNama() { nama = "". nilai baliknya menggunakan kata kunci void. Dimana ambilNama() merupakan sebuah fungsi karena „ 15 .nama = "Eko Kurniawan Khannedy". 3. kelas yang telah dibuat adalah kelas Manusia.2. merupakan metode yang memiliki nilai balik jika metode tersebut dipanggil. // fungsi String ambilNama() { // untuk mengembalikan nilai gunakan kata kunci return return nama.

} void hapusNama() { nama = "". misal jika kita membuat sebuah metode untuk mengubah nama pada kelas Manusia. harus menggunakan kata kunci return.ubahNama("Eko Kurniawan Khannedy"). // mengambil nilai dari fungsi String nama = manusia. maka pasti kita memerlukan nama baru untuk menggantikan nama lama.2.nama = "Eko Kurniawan Khannedy".ambilNama().2 Parameter Parameter merupakan data yang dapat ditambahkan dari luar metode. Contoh parameter dapat terlihat pada kelas dibawah ini : class Manusia { String nama. Manusia manusia = new Manusia(). Untuk mengambil nilai balik dari fungsi dapat dilih at pada contoh sebagai berikut. diikuti nilai yang akan dikembalikannya. 3. // metode dengan parameter void ubahNama(String namaBaru){ nama = namaBaru. manusia. manusia.StripBandun | B lajar Java Dasar … mengembalikan nilai String. oleh karena itu diperlukan sebuah parameter nama baru untuk menggantikan nama tersebut. † 16 . } } Contoh penggunaannya adalah sebagai berikut : Manusia manusia = new Manusia(). sedangkan hapusNama() merupakan prosedur karena tidak mengembalikan nilai. Saat membuat sebuah fungsi maka untuk mengembalikan nilainya. } String ambilNama() { return nama.

alamat = alamatBaru. } // metode dengan satu parameter void ubahNama(String namaBaru){ nama = namaBaru. untuk menambahkan parameter. dipisahkan dengan menggunakan tanda .3 Kata Kunci this Kata kunci this digunakan dalam sebuah kelas dan digunakan untuk menyatakan objek sekarang. Contohnya : class Manusia { String nama. Contoh misal saat kita membuat sebuah parameter yang sama dengan nama atribut yang ada dalam sebuah kelas. manusia. 3. } String ambilNama() { return nama. } void hapusNama() { nama = "".ubahData("Eko". Sebuah metode dapat memiliki satu atau lebih parameter. Saat kode diatas dieksekusi. "Subang").2.StripBandun | B lajar Java Dasar ‡ String nama = manusia. maka variabel nama akan bernilai Eko Kurniawan Khannedy sesuai dengan nama baru yang telah tidambahkan lewat metode ubahNama(namaBaru). String alamatBaru){ nama = namaBaru. } } Contoh penggunaannya adalah sebagai berikut : Manusia manusia = new Manusia(). // metode dengan lebih dari satu parameter void ubahData(String namaBaru. String alamat. (koma). maka jika kita menggunakan ˆ 17 .ambilNama().

void ubahData(String nama. lalu saat kita memanggil nama atribut tersebut.out.alamat).println(manusia. "Subang"). } } Saat kita menggunakan kelas Manusia diatas pada program. alamat = alamat. String alamat){ this. Setelah dijalankan.out.println(manusia. maka diperlukan kata kunci this. }  18 . kenapa? Hal ini dikarenakan jika kita membuat sebuah parameter yang sama dengan nama atribut.nama). System. String alamat. String alamat.alamat = alamat. System. yang artinya nama dan alamat objek manusia tidak berubah menjadi Eko dan Subang . Manusia manusia = new Manusia(). maka sebenarnya bukan atribut yang kita panggil melainkan parameter.ubahData("Eko". maka perubahan tidak akan terjadi. class Manusia { String nama. } void ubahNama(String nama){ nama = nama. jadi untuk mengubah atr ibut yang namanya sama dengan parameter haruslah sebagai berikut. void ubahData(String nama.StripBandun | B lajar Java Dasar ‰ parameter tersebut untuk mengubah atribut pada kelas. String alamat){ nama = nama. Agar kesalahan tersebut tidak terjadi. maka program tersebut akan menghasilkan nilai null.nama = nama. yang digunakan untuk menyatakan objek tersebut. class Manusia { String nama. manusia. this.

} } Saat program sebelumnya dijalankan kembali.Gunanya visibilitas private adalah untuk menyembunyikan atribut. String alamat) { this.StripBandun | B lajar Java Dasar ‘ void ubahNama(String nama){ this. 3.Atribut. atribut nama menjadi private. } } Pada kode diatas. metode atau kelas. Contoh atribut yang menggunakan visibilitas private. metode ataupun kelas. void ubahData(String nama. atau kelas yang menggunakan visibilitas hanya dapat diakses oleh objek itu sendiri. this. sehingga hanya kelas Manusia ’ 19 .nama = nama. class Manusia { private String nama. String alamat. } void ubahNama(String nama) { this.4 Visibilitas Private dan Public Java mendukung 4 visibilitas yaitu : Visibilitas private public protected Tanpa Visibilitas Keterangan Hanya dapat diakses oleh kelas itu sendiri Dapat diakses oleh seluruh kelas Hanya dapat diakses oleh kelas itu sendiri dan kelas turunannya Hanya dapat diakses oleh kelas-kelas yang berada pada satu paket Saat ini akan dibahas tentang visibilitas private dan public.nama = nama. maka hasilnya tidak akan null lagi.nama = nama. Visibilitas private merupakan visibilitas yang dapat digunakan pada atribut. metode. untuk visibilitas protected akan dibahas setelah materi pewarisan dan untuk tanpa visibilitas akan dibahas setelah materi package .2.alamat = alamat.

metode atau kelas yang memiliki sifat public tersebut dapat diakses oleh kelas manapun dan dari package manapun.println(manusia. this. "Subang").StripBandun | B lajar Java Dasar “ itu sendiri yang bisa mengakses atribut nama.ubahData("Eko". metode dan kelas.nama = nama.alamat = alamat. } } Pada kode diatas. Visibilitas public merupakan visibilitas yang dapat diterapkan pada atribut. } void ubahData(String nama. } void ubahNama(String nama) { this. System. dikarenakan atribut tersebut bersifat private.out. sekarang kita dapat menggunakan metode ambilNama() public class HelloWorld { public static void main(String[] args) { Manusia manusia = new Manusia().println( manusia.Dengan visibilitas public. sehingga saat kelas lain mengakses atribut tersebut. maka atribut. kita akan menambah sebuah metode public yang bernama ambilNama() yang mengembalikan nama mahasiswa.nama ).out. manusia. } } Dengan demikian untuk mengakses atribut nama. Contoh.alamat). public class HelloWorld { public static void main( String[] args) { Manusia manusia = new Manusia().nama = nama. maka akan terjadi error ketike kelas HelloWorld mengakses atribut nama objek manusia. maka akan terjadi error. pada kode sebelumnya. String alamat) { this. class Manusia { private String na ma. System. public String ambilNama() { return nama. String alamat. ” 20 .

alamat = alamat.nama = nama. Contoh : class Manusia { private String nama. System. misal saat membuat sebuah objek manusia. public Manusia() { System.alamat).out. nama metode harus saya dengan nama kelas dan tidak mengembalikan nilai balik dan tidak pula menggunakan kunci void. } public String ambilNama() { return nama. this. Cara membuat metode konstruktor adalah. Konstruktor juga mendukun penggunakan parameter.println(³Objek Mahasiswa Dibuat!!!´). Misal jika kita membuat sebuah objek mahasiswa. Maka akan menampilkan tulisan Objek Mahasiswa Dibuat!!! . "Subang"). System. } void ubahData(String nama.ubahData("Eko". maka kita dapat menambahkan sebuah parameter nama di konstruktor seperti berikut. } } 3. } void ubahNama(String nama ) { this.StripBandun | B lajar Java Dasar • manusia. String alamat) { this.out. Manusia manusia = new Manusia(). – 21 .out.2.5 Konstruktor Konstruktor merupakan metode yang secara otomatis dipanggil ketika sebuah objek dipanggil.nama = nama. maka konstruktor tersebut akan otomatis dipanggil. maka nama namusia tersebut harus ditentukan.println( manusia. String alamat. } } Dengan demikian. saat membuat sebuah objek Mahasiswa.ambilNama() ).println(manusia.

String alamat) { this.StripBandun | B lajar Java Dasar — class Manusia { private String nama. } void ubahData(String nama. } public String ambilNama() { return nama. bisa berbeda jumlah parameternya ataupun bisa berbeda tipe data parameternya. public Manusia() { // tanpa parameter } public Manusia(String nama) { this.6 Overloading Konstruktor Overloading merupakan mekanisme dimana kita dapat membuat lebih dari satu buah konstruktor pada sebuah kelas. } } Dengan begitu.alamat = alamat.nama = nama. setiap konstruktor harus memiliki parameter yang berbeda. ˜ 22 . String alamat. maka kita harus menggunakan parameter nama Manusia manusia = new Manusia( "Eko Kurniawan" ). public Manusia(String nama) { this. class Manusia { private String nama. Misal kita akan mengubah kelas manusia tersebut menjadi memiliki dua konsturktor. } void ubahNama(String nama) { this. maka saat membaut objek manusia.nama = nama. this. String alamat.nama = nama.Namun dengan ketentuan. dimana konstruktor pertama kita dapat membuat objek manusia tanpa harus menggunakan nama dan konstruktor kedua kita harus menggunakan nama untuk membuat objek mahasiswa.2. 3.nama = nama.

d 23 . metode pertama menggunakan parameter nama dan metode kedua menggunakan parameter nama dan alamat.2.7 Overloading Metode Selain pada konstruktor. yaitu tanpa parameter dan menggunakan parameter nama. misal kita akan membuat dua buah metode ubah. public Manusia() { // tanpa parameter } public Manusia(String nama) { this.alamat = alamat. } } 3. overloading juga bisa dilakukan pada metode.nama = nama. this. private String alamat.nama = nama.nama = nama.StripBandun | B lajar Java Dasar ™ } public Strin g ambilNama() { return nama. } void ubahData(String nama. String alamat){ this. } public void ubah(String nama.nama = nama.alamat = alamat. String alamat) { this. kita dapat menggunakan dua cara untuk membuat objek dari kelas Mahasiswa. } public void ubah(String nama) { this. } } Dengan begitu. this.nama = nama. } void ubahNama(String nama) { this. class Manusia { private String nama. public class HelloWorld { public static void main(String[] args) { Manusia manusia1 = new Manusia(). Manusia manusia2 = new Manusia("Eko Kurniawan Khannedy").

manusia.StripBandun | B lajar Java Dasar e } } Dengan begitu. Lalu ada kelas Pegawai dengan atribut nip.2. public void ubahNip(String nip) { f 24 . private String alamat. public void ubahNama(String nama) { this.ubah("Eko Salah"). manusia.8 Pewarisan Kelas Pewarisan merupakan mekanisme dimana sebuah kelas dapat mewarisi seluruh atribut atau metode milik kelas lain dengan ketentuan tertentu. public class Orang { private String nama.nama = nama. untuk mengubah nama ataupun untuk mengubah alamat. } } 3. private String nama. Misal ada sebuah kelas Orang dengan atribut nama dan alamat. public class HelloWorld { public static void main(String[] args) { Manusia manusia = new Manusia(). kita dapat menggunakan metode ubah.alamat = alamat. } } public class Pegawai { private String nip. nama dan alamat. private String alamat. } public void ubahAlamat(String alamat) { this. } public String ambilAlamat() { return alamat. "Subang").ubah("Eko Kurnaiwan". } public String ambilNama() { return nama.

alamat = alamat.nip = nip. } public String ambilNama() { return nama.StripBandun | B lajar Java Dasar g this. karena semua atribut dan metode Orang ada di Pegawai namun tidak semua atribut dan metode Pegawai ada di kelas Orang. public class Pegawai extends Orang { private String nip. Dengan begitu kita hanya perlu mengubah kelas Pegawai menjadi sebagai berikut. ubahAlamat() dan ambilAlamat(). yaitu nama. Untuk mengatakan bahwa kelas X turunan dari kelas Y kita dapat menggunakan kata kunci extends. oleh karena itu lebih baik kelas tersebut digabungkan menggunakan pewarisan. yaitu Orang diturunkan menjadi Pegawai. } } h 25 . ubahNama().nama = nama. } public String ambilNip() { return nip. public void ubahNip(String nip) { this. Artinya banyak terjadi duplikasi kode.nip = nip. alamat. } public void ubahNama(String nama) { this. } } Pada kode diatas bisa bandingkan antara kelas Orang dan kelas Pegawai memiliki beberapa atribut dan metode yang sama. } public String ambilAlamat() { return alamat. } public void ubahAlamat(String alamat) { this. ambilNama(). } public String ambilNip() { return nip.

} public void contoh(){ String ambilnama = nama. karena Pegawai merupakan turunan dari Orang. kali ini kita akan membahas tentang visibilitas protected.ubahNama("Eko Kurniawan"). artinya hanya kelas Orang tersebut yang dapat mengakses atribut tersebut. maka pasti akan terjadi error. public void ubahNip(String nip) { this. walaupun kelas Pegawai merupakan turunan dari kelas Orang.ubahAlamat("Subang"). Atribut.9 Visibilitas protected Sebelumnya kita telah membahas tentang visibilitas private dan public. Misal pada kelas sebelumnya kita telah membuat kelas Orang dan Pegawai. namun sebenarnya Pegawai tersebut memilikinya. pegawai. visibilitas untuk atribut nama dan alamat adalah private. } } Jika kita menggunakan kode diatas untuk mengakses atribut nama dari kelas Orang.ubahNip("10106031"). public class Pegawai extends Orang { private String nip. } public String ambilNip() { return nip. pegawai.2. tetap saja kelas Pegawai tidak dapat mengakses atribut nama dan alamat dari kelas Orang.StripBandun | B lajar Java Dasar i Walaupun kelas Pegawai tidak memiliki atribut dan metode untuk nama dan alamat. sehingga seluruh sifat dari Orang ada pada Pegawai.nip = nip. Pada kelas Orang. public class Test { public static void main(String[] args) { Pegawai pegawai = new Pegawai(). metode atau kelas yang ditandai dengan visibilitas protected hanya dapat diakses oleh kelas itu sendiri dan turunannya. Namun jika kita mengubah visibilitas j 26 . } } 3. pegawai.

public void ubahNip(String nip) { this. } public String ambilNama() { return nama. public void ubahNama(String nama) { this. } public void ubahAlamat(String alamat) { this.nip = nip. Misal ada dua kelas yaitu Bayi dan Dewasa.alamat = alamat. overriding merupakan mekanisme dimana sebuah metode dapat dideklarasikan ulang pada kelas turunannya.StripBandun | B lajar Java Dasar k namamenjadi protected maka atribut nama dapat diakses oleh kelas turunannya. } public void contoh(){ // berhasil String ambilnama = nama. } public String ambilAlamat() { return alamat. protected String alamat.nama = nama. } } public class Pegawai extends Orang { private String nip. public cl ass Orang { protected String nama.10 Overriding Overriding tidak sama dengan overloading. pada kelas bayi tesebut terdapat metode lari() yang memerintahkan untuk lari. public class Bayi { l 27 .2. } public String am bilNip() { return nip. } } 3. String ambilalamat = alamat. yaitu kelas Pegawai.

3. artinya metode lari() yang dipanggil sebenarnya milik kelas Bayi yang pastinya tidak dapat berlari.out.println("Tidak Bisa :("). public class Dewasa extends Bayi{ } Setelah itu jika kita coba buat sebuah objek kelas Dewasa dan menyuruhnya lari. public class Dewasa extends Bayi { public void lari() { System. public class Test { public static void main(String[] args) { Dewasa dewasa = new Dewasa().StripBandun | B lajar Java Dasar m public void lari() { System. } } Maka jika program Test sebelumnya dijalankan kembali. maka kita harus menggubah metode lari() tersebut agar dapat berlari.11 Kata Kunci super Kata kunci super merupakan kata kunci yang digunakan untuk mengakses kelas parent (yang diturunkan). caranya adalah dengan melakukan pendeklarasian ulang (overriding). public class Dew asa extends Bayi { n 28 . artinya metode lari() milik kelas Dewasa yang dipanggil.out.2. } } Maka hasilnya adalah Tidak Bisa :( . misal jika kita menggunakan kata kunci super pada kelas Dewasa artinya super tersebut merujuk pada kelas Bayi.lari().println("Lari!!!!"). } } Setelah itu kelas Dewasa merupakan kelas turunan dari kelas Bayi. dewasa. Caranya adalah dengan membuat metode yang sama dengan metode yang diwarisinya. maka kelauarannya pasti Lari!!!! . Sekarang jika dianggap kelas Dewasa dapat berlari.

println("Lari!!!!"). } } public class Berumur extends Bernama{ private int umur. } } p 29 .lari(). public Bernama() { } public Bernama(String nama) { this. public Berumur() { } public Berumur(String nama.StripBandun | B lajar Java Dasar o public void lariBayi() { // mengakses metode lari milik Bayi super. } } Selain itu. } public int ambilUmur(){ return umur. int umur){ super(nama).out.umur = umur. public class Bernama { private String nama. } public String ambilNama(){ return nama. this. kata kunci super juga dapat digunakan untuk mengakses konstruktor milik kelas yang diwariskan.nama = nama. } public void lari() { System.

metode atau kelas sudah final.12 Kata Kunci final Kata kunci final merupakan kata kunci yang dapat digunakan untuk menandai bahwa suatu atribut. artinya tidak dapat diubah lagi. public class Co ntoh { private final String data = "Data". Misal kita membuat kelas abstract Hewan. Untuk membuat kelas abstract sama dengan membuat kelas biasanya.2. } } 3. maka atribut tersebut harus langsung dideklarasikan. namun diawali dengan kunci abstract pada kelasnya dan diawali dengan kata kunci abstract pada metode yang akan dibuat namun tidak akan dideklarasikan.data = data. } Jika tidak dideklarasikan langsung. maka akan terjadi kesalahan (error). Kucing. public class Contoh { private final String data = "Data".2. Atau jika kita melakukan pendeklarasian ulang atribut tersebut maka akan terjadi error. pendeklarasiannya terjadi pada kelas turunannya. t t Lo asi final Atribut Variab l Metode Kelas t s Jika kita menambahkan sebuah atribut dengan kata kunci final.StripBandun | B lajar Java Dasar q 3. Metode yang abstract tidak perlu berisikan deklarasinya. misal seperti ini. public void ubahData(String data){ // error this. lalu turunannya.13 Kelas Abstract Kelas abstract merupakan kelas dimana memiliki metode-metode namun tidak dideklarasikan. Kambing dan Anjing. Kelas hewan tersebut memiliki metode bicara() yang menyuruh Hewan r K t rangan Atribut tidak dapat dideklarasikan lagi Variabel tidak dapat dideklarasikan lagi Metode tidak dapat dideklarasikan (overriding) lagi Kelas tidak dapat diturunkan 30 .

} public class Anjing extends Hewan{ public void bicara() { System. maka kita buat metode bicara() tersebut menjadi abstract. Setiap kelas turunan memiliki deklarasi masing-masing yang unik dan dapat berbagi fungsionalitas yang sama dengan kelas parent (yang diturunkan).bicara(). } } Jika kelas turunan dari Hewan tidak mendeklarasikan metode bicara() maka akan terjadi error. public class Test { public static void main(String[] args) { Hewan hewan1 = new Anjing( ). Contoh polimorfisme adalah kelas Hewan yang sebelumnya telah dibuat.. 3..14 Polimorfisme Polimorfisme merupakan kemampuan untuk sebuah kelas memiliki banyak kelas turunan.2.println("Meong.StripBandun | Belajar Java Dasar u tersebut bicara(). hewan1. } } public class Kambing extends Hewan{ public void bicara() { System. namun karena setiap hewan biasanya berbeda nada bicaranya."). public abstract class Hewan { public abstract void bicara().out.println("Gog gog. 31 ...out. } } public class Kucing extends Hewan{ public void bicara() { System.").out..println("Embe.."). kecuali kelas tersebut juga kelas abstract.

maka diperlukan pengelompokkan jenis-jenis kelas dalam paket. public class Karyawan { public String nip. Untuk mendeklarasikan paket. hewan3.data aplikasi.bicara(). package aplikasi.database aplikasi. kita dapat menggunakannya langsung. untuk memberikan tingkatan pada paket kita dapat mengunakan tanda . } Jika kita akan menggunakan kelas dengan lokasi paket yang sama. kelas-kelas form bisa dimasukkan ke paket form. Nama paket tidak boleh diawali dengan nomor dan tidak boleh menganduk karakter unik dan spasi. misal.data. public String nama. Hewan hewan3 = new Kucing(). public String alamat.3 Paket Dalam Java. Penggunaan paket sangat dianjurkan agar kelas-kelas terlihat lebih teratur. hanya perlu menggunakan kunci package pada bagian atas file java diikuti nama paket. Paket aplikasi. maka kita perlu menggunakan import disertai lokasi paket dan nama kelasnya. beberapa kelas dapat digabungkan dalam sebuah unit bernama paket (package).form Folder /aplikasi/data/ /aplikasi/database/ /aplikasi/form/ Dianjurkan jika kita membangun sebuah sistem yang besar.StripBandun | Belajar Java Dasar v Hewan hewan2 = new Kambing(). hewan2. Misal untuk kelas-kelas tabel dapat di masukkan ke paket data.bicara(). (titik). dan lain-lain. 32 . namun jika kita akan menggunakan kelas dengan paket yang berbeda. } } 3. Paket biasanya bertingkat.

} } 3.program. yaitu default. sedangkan interface menggunakan implementasi (implements). } 3. metode atau kelas ditandai dengan visibiliti default. maka akan terjadi error. sedangkan pada interface harus semua metode abstrak. import aplikasi. Sebenarnya ada satu lagi visibility. 33 . public dan protected. metode atau kelas tersebut hanya dapat diakses oleh kelas-kelas yang ada dalam satu paket.1 Visibiliti Default Sebelumnya telah dibahas tentang visibiliti private. Jika akan diakses dari luar paket. Kelas abstrak dapat memiliki atribut.StripBandunk | Belajar Java Dasar package aplikasi.3. Interface hampir mirip dengan kelas abstrak. maka itu artinya atribut. public class Program { public static void main(String[] args) { Karyawan karyawan = new Karyawan(). Kelas abstrak digunakan oleh kelas lain menggunakan pewarisan (extends). Kelas abstrak bisa mengandung metode abstrak dan metode tidak abstrak.data. 2. namun ada beberapa perbedaan pada interface dan kelas abstrak. String nama. namun tidak menggunakan kata kunci default.data. public class Mahasiswa { String nim.Karyawan. Contoh visibiliti default : package aplikasi. 1.4 Interface Interface merupakan mekanisme dimana kita dapat menentukan metodemetode yang harus ada pada kelas. sedangkan interface tidak boleh memiliki atribut. 3. Jika sebuah atribut. melainkan tidak perlu menggunakan kata kunci (kosong).

2 Pewarisan Interface Dalam hal pewarisan interface. hanya yang membedakan adalah interface dapat mewarisi lebih dari satu interface. hanya yang membedakan adalah kata kunci yang digunakan bukan class melainkan interface. public interface Pukulan { void pukul().prototype. package aplikasi. sedangkan class hanya dapat mewarisi satu kelas. Contoh sederhana sebuah interface. public interface Aksi { void beraksi().prototype. sehingga kita dapat menghapusnya menjadi lebih sederhana seperti berikut.1 Mendeklarasikan Interface Interface mirip dengan Kelas. 3.4.prototype.prototype.4. seluruh metode yang ada dalam interface itu bersipat abstract dan public.StripBandunk | Belajar Java Dasar 3. package aplikasi. package aplikasi. } Perlu diingat bahwa metode dalam interface tidak dapat private. } package aplikasi. public interface Aksi { public abstract void beraksi(). } 34 . } Secara default. sama dengan class. public int erface Tendangan { void tendang().

println("Pukul"). Tendangan dan Pukulan. maka semua kelas yang mengimplementasi interface Aksi. public void ubahData(String data) { this. public class ContohAksi implements Aksi{ public void tendang() { System.program. misal. import aplikasi. package aplikasi.prototype.StripBandunk | Belajar Java Dasar package aplikasi.data = data. package aplikasi. } public String ambilData() { 35 .prototype. berbeda dengan extends.5 Inner Class Java mendukung pembuatan kelas di dalam kelas. } public void pukul() { System. 3.program. sebuah kelas dapat menggunakan beberapa interface menggunakan implements. public class Luar { private String data. } } Karena interface Aksi merupakan turunan dari interface Tendangan dan Pukulan. public interface Aksi extends Tendangan. Pukulan{ } 3. harus mendeklarasikan seluruh metode yang ada pada interface Aksi.out.4.println("Tendang"). Cara membuat kelas di dalam kelas sama dengan membuat kelas seperti biasanya.3 Menggunakan Interface Sebuah kelas dapat menggunakan interface melalui kata kunci implements.out.Aksi. hanya lokasinya berada dalam sebuah badan kelas.

prototype. } }. Penggunaan kelas anonimous ini biasa dilakukan ketika kita hanya akan membuat sebuah kelas yang hanya sekali pakai saja.out.2 Kata Kunci static Kata kunci static sebenarnya merupakan penyelewengan dari konsep pemrograman berorientasi objek.StripBandunk | Belajar Java Dasar return data. Contoh package aplikasi. public class Program { public static void main(Stri ng[] args) { Pukulan pukulan = new Pukulan() { public void pukul() { System. Padahal sebenarnya terdapat dua kelas. } public String ambilContoh() { return contoh.Pukulan.5. } } } 3.println("Pukul ah. import aplikasi. biasanya kelas ini dibuat ketika mendeklarasikan sebuah variabel. 3.Dengan menggunakan kata kunci static.5.").1 Anonymous Class Kelas anonimous merupakan kelas yang dideklarasikan tanda nama.program. kita dapat mengakses sebuah atribut atau metode dari kelas secara langsung tanpa 36 .contoh = contoh.. pukulan. kita hanya memiliki kelas Program.pukul(). public void ubahContoh(String contoh) { this. yaitu dengan kelas Anonymous yang merupakan turunan dari interface Pukulan.. } public class Dalam { private String contoh. } } Sekilas pada kode diatas.

program.program. int b) { int c = a * b. } } Perlu diingat jika metode static hanya dapat memanggil menggunakan atribut atau metode static lainnya.program. int b) { int c = a + b. public class Fung siMatematika { public static int kali(int a. } } Dengan begitu kita dapat langsung mengakses metode kali dan tambah tanpa membuat objek FungsiMatematika. sehingga kita dapat dengan mudah menggunakan metode-metode yang ada dalam kelas tersebut tanpa membuat objeknya. Kata kunci static biasanya digunakan jika kita akan membuat sebuah kelas utilitas. public class Program { public st atic void main(String[] args) { int a = 10. int b) { contoh(). return c. int c = FungsiMatematika.StripBandunk | Belajar Java Dasar harus membuat objek kelas tersebut. public class FungsiMatematika { public static int tambah(int a. seperti : package aplikasi. int c = a * b. maka akan terjadi error.Sehingga ini menyalahi aturan pemrograman berorientasi objek yang menyatakan bahwa untuk mengakses sebuah atribut atau metode harus melalui objek. artinya jika kita memanggil metode non static dalam metode static secara langsung. int b = 10. return c. } public static int kali(int a. package aplikasi. 37 . package aplikasi.kali(a. b). Misal.

Misal : Nama Atribut Nama Depan Nama Belakang Alamat Tanggal Lahir Contoh Atribut Panjang Sekali Penamaan namaDepan namaBelakang Alamat tanggalLahir contohAtributPanjangSekali Sedangkan untuk penamaan getter dan setternya pun mirip seperti punuk unta. } public void contoh(){ // hanya contoh } } 3. sedangkan metode setter digunakan untuk mengubah nilai atribut.Metode getter digunakan untuk mendapatkan nilai atribut tersebut.StripBandunk | Belajar Java Dasar return c. misal : Atribut namaDepan alamat tanggalLahir Getter getNamaDepan getAlamat getTanggalLahir Setter setNamaDepan setAlamat setTanggalLahir Namun ada beberapa pengecualian. dan alamat.Dimana atributnya bersifat private dan metode getter dan setter nya bersifat public.6 Kelas POJO / Java Bean Kelas POJO atau Java Bean merupakan kelas dimana sebuah kelas memiliki atribut dan memiliki metode getter dan setter. 38 . maka getter nya bisa diganti dari get menjadi is. Penamaan kelas POJO mirip seperti punuk unta. Atribut sudahMenikah nama Tipe Data boolean *semua tipe* Getter isSudahMenikah getNama Contoh kelas POJO Mahasiswa yang memiliki nim. jika tipe atributnya adalah boolean. package aplikasi.data. nama. Sehingga seperti ini.

nama = nama. public String getAlamat() { return alamat. private String nama. } public String getNama() { return nama.alamat = alamat.nim = nim. } public String getNim() { return nim. } } 39 . private String alamat.StripBandunk | Belajar Java Dasar public class Mahasiswa { private String nim. } public void setAlamat(String alamat) { this. } public void setNim(String nim ) { this. } public void setNama(String nama) { this.

yup dan kode diataspun dapat dikompile dengan baik. Namun jika kesalahannya tersebut adalah kesalahan saat berjalan.println(c). yaitu error karena terjadi pembagian 0.out.program. namun saat kesalahan tersebut terjadi.Oleh karena itu perlu dilakukan penanganan kesalahan. maka program akan berhasil berjalan.program. Biasanya kesalahan kompilasi dapat langsung terjadi ketika proses kompilasi sehingga proses kompilasi akan dibatalkan. try{ // isi yang memungkinkan error }catch(jenis error){ // dijalankan jika terjadi error } Misal pada kode sebelumnya kita telah membuat sebuah program yang melakukan proses pembagian 0 yang menyebabkan error. pertama kesalahan pada saat kompilasi ada pula kesalahan ada saat berjalan. Namun saat dijalankan. int c = 10 / b. package aplikasi. } } Sekilas mungkin tidak ada yang salah dengan kode diatas. public class Program { public static void main(String[] args) { int a = 10. 4. int b = 0. akan terjadi error. 40 . maka kita dapat menggunakan try catch.StripBandunk | Belajar Java Dasar 4 Penanganan Kesalahan Ada dua jenis kesalahan. maka program akan menjadi error.1 Menangkap Kesalahan Agar kesalahan yang terjadi dapat di ditangkap. System. Contoh kesalahan misalnya : package aplikasi. maka kita dapat melakukan penanganan kesalahnnya. dimana hasil dari pembagian 0 adalah tidak terdefinisikan.

2 Penanganan Secara Bertingkat Try catch tidak hanya dapat ditangani oleh satu kelas Exception. paling bawah haruslah kelas Exception yang paling tinggi.out. 4. Misal saat kita membuat sebuah kelas Mahasiswa. Kelas Throwable merupakan kelas kesalahan yang paling tinggi. } } } Jika program diatas dijalankan. public class Mahasiswa { 41 .3 Melontarkan Exception Kadang ada kalanya kita perlu membuat kesalahan.print("Ups. = 10 / b. maka nim wajib dimasukkan. package aplikasi. lalu jika nim tidak dimasukkan. } catch (Throwable e) { System. maka akan menghasilkan keluaran Ups.println(e. misal kelas Throwable.out. 4.StripBandunk | Belajar Java Dasar public class Program { public static try { int a int b int c void main(String[] args) { = 10. System. jadi kita dapat menangani seluruh kesalahan menggunakan kelas Throwable.out. = 0. System. dapat juga ditangani oleh beberapa kelas Exception seperti berikut : try{ // blok yang memungkinkan terjadi error }catch(jenis error 1){ // jika jenis error 1 terjadi }catch(jenis error 2){ // jika jenis error 2 terjadi }catch(jenis error 3){ // jika jenis error 3 terjadi } Penanganan secara beringkat harus bertingkat pula jenis kelas error nya.println(c). maka dianggap salah. terjadi error :/ by zero . terjadi error :").getMessage()).data.

} catch (Throwable e) { System.Mahasiswa. package aplikasi. public String getNim() { return nim.println(e. Untuk membuat kelas Exception.print("Ups.Error ini bisa dibilang compilation exception artinya wajib ditangani. import aplikasi. terjadi error :"). } } Untuk melontarkan kesalahan kita harus menggunakan kunci throw dan metode yang memungkinkan melontarkan kesalahan harus memiliki throws diikuti dengan kelas Exception nya. 42 . System.out.out.4 Membuat Kelas Exception Kelas Exception merupakan kelas error yang dapat digunakan untuk membangun kelas Exception yang harus ditangani.program. } this.nim = nim.data.StripBandunk | Belajar Java Dasar private Stri ng nim. kita hanya perlu membuat kelas turunan dari kelas Exception.getMessage()). } public void setNim(String nim) throws Throwable { if (nim == null) { throw new Throwable("Nim Harus Diisi"). maka harus ditangani kesalahannya menjadi seperti ini : package aplikasi. Dengan begitu jika kita akan mengubah nim.error.setNim(null). public class Program { public static void main(String[] args) { try { Mahasiswa mahasiswa = new Mahasiswa(). mahasiswa. } } } 4.

program. artinya error jenis ini tidak perlu langsung di catch.nim = nim. public class Mahasiswa { private String nim. 43 . tanpa menangkap errorpun. public class GakBolehKosong extends RuntimeException { public GakBolehKosong(String message) { super(message). } } Dengan demikian.StripBandunk | Belajar Java Dasar public class ErrorWajib extends Ex ception { public ErrorWajib(String message) { super(message).Kita dapat tidak menangkap error tersebut.error. } this.Untuk membuat error jenis ini. package aplikasi. kita dapat langsung memanggil metode setNim(nim) package aplikasi. } public void setNim(String nim) throws GakBolehKosong { if (nim == null) { throw new GakBolehKosong("Nim Harus Diisi").5 Membuat Kelas RuntimeException Kelas RuntimeException merupakan kelas error yang errornya terjadi ketika aplikasi berjalan.Mirip dengan pembagian dengan 0. public String getNim() { return nim.GakBolehKosong. import aplikasi. } } 4. kita dapat membuat kelas turunan dari RuntimeException.data. } } Misal kita ubah error pada nim kelas Mahasiswa menjadi error tersebut.

setNim("10106031").out.GakBolehKosong.data.out. public class Program { public static void main(String[] args) { try { Mahasiswa mahasiswa = new Mahasiswa().getMessage()).data.print("Terjadi Error : ").6 Blok Finally Blok finally merupakan blok yang selalu dijalankan pada proses try catch. System. mahasiswa.println(error. baik itu terjadi error ataupun tidak.error. } catch (GakBolehKosong error) { System. dan walaupun kita masukkan data salah : package aplikasi.print("Terjadi Error : ").error.println("Pasti Dijalankan").data. 44 . public class Program { public static void main(String[] args) { Mahasiswa mahasiswa = new Mahasiswa(). import aplikasi. } } } Jika program diatas dijalankan. mahasiswa.setNim(null). maka akan keluar tulisan Pasti Dijalankan .println(error.StripBandunk | Belajar Java Dasar import aplikasi.progr am.program.out. mahasiswa.getMessage()). import aplikasi. } catch (GakBolehKosong error) { System. import aplikasi.out.Mahasiswa. Blok finally terdapat pada bagian akhir try catch.Mahasiswa. System.setNim("10106031").out. import aplikasi.Mahasiswa. Contoh : package aplikasi. } finally { System. public class Program { public static void main(String[] args) { try { Mahasiswa mahasiswa = new Mahasiswa(). } } 4.GakBolehKosong.

walaupun program diatas error.out. } } } Maka blok finally akan selalu dijalankan.StripBandunk | Belajar Java Dasar } finally { System. 45 .println("Pasti Dijalankan").

Dikarenakan String merupakan kelas. Hasil dari perintah diatas adalah upper dari hehehe yaitu HEHEHE . String hasil = data. Contoh : String data = "hehehe". String data = new String().Namun kelas String memiliki keunikan yaitu kita dapat menggunakan String tanpa mendeklarasikannya terlebih dahulu.1 String Seperti yang telah dibahas pada materi tipe data. bahkan kita dapat menggabung dua buah string atau lebih. seperti menjadikan seluruh hurufnya besar (upper).println(hasil). Ada dua cara menggabungkan String. yaitu menggunakan tanda + (tambah) String hasil = "satu " + "dua " + "tiga " + "empat". String adalah sebuah kelas. kecil (upper) d an lain-lain. Jadi tidak perlu membuat sebuah String dahulu.1 Menggabungkan String String merupakan objek yang unik.toUpperCase().StripBandunk | Belajar Java Dasar 5 Kelas Kelas 5. 5.out. Atau dapat menggunakan metode concat agar lebih terlihat berorientasi objek. String bukanlah tipe data. String data = "hehehe". System. sehingga String pun memiliki banyak metode yang dapat kita gunakan untuk melakukan proses manipulasi String tersebut.1. String hasil = 46 .

out. } else { System.concat("dua ").StripBandunk | Belajar Java Dasar "satu ".1.program. String data2 = "abc". perbandingan == hanya dapat digunakan untuk membandingkan tipe data.println(data1 + " sama dengan " + data2).2 Membandingkan String Kadang ada kalanya kita melakukan perbandingkan string. jadi seharusnya membandingkan string adalah sebagai berikut.out. misal : package aplikasi. maka tidak dapat dibandingkan menggunakan tanda ==.concat("empat"). } } } Saat dijalankan. Lho kok?Padahal abc pasti sama dengan abc :( Kenyataanya adalah. if (data1 == data2) { System. String data2 = "abc". data1 = data1 + "c". 5. Untuk membandingkan objek maka kita harus menggunakan metode equals() milik kelas tersebut. data1 = data1 + "c".println(data1 + " tidak sama dengan " + data2). maka hasilnya adalah abc tidak sama dengan abc .concat("tiga "). tidak dapat digunakan untuk membandingkan kelas. if (data1.equals(data2) ) { 47 . public class Program { public static void main(String[] args) { String data1 = "a" + "b". package aplikasi.program. karena String adalah kelas. public class Program { public static void main(String[] args) { String data1 = "a" + "b".

yaitu Calendar.out.program.println(data1 + " tidak sama dengan " + data2). package aplikasi.Contoh membuat tanggal sekarang. Kelas Date berapa pada paket java. System.println(data1 + " sama dengan " + data2). 48 .StripBandunk | Belajar Java Dasar System.util. Cara membuat Calendar tidak melalui sebuah konstruktor. } else { System.Calendar. melainkan menggunakan metode static : package aplikasi. 5. maka hasilnya adalah abc sama dengan abc .println(date).out. import java. namun banyak metode-metode milik kelas Date yang sudah deprecated (tidak dianjurkan untuk digunakan).3 Calendar Calendar hampir mirip dengan Date.out.Date. public class Program { public static void main(String[] args) { Calendar calendar = Calendar. public class Program { public static void main(String[] args) { Date date = new Date(). } } } Jika program diatas dijalankan.util. } } Sayangnya walaupun Date merupakan representasi tanggal dalam Java. import java. kelas ini merupakan representasi tanggal dalam Java.program. oleh karena itu diperlukan kelas lain untuk melakukan manipulasi Date. 5.2 Date Date merupakan representasi untuk tanggal dalam Java.getInstance().util.

bulan dan tahun.3. detik.DAY_OF_MONTH Calendar. value).MILLISECOND Calendar.HOUR Calendar. 29).StripBandunk | Belajar Java Dasar } } 5. 49 .set(field. import java. maka kita dapat menggunakan metode set() : calendar.SECOND Calendar.program.MINUTE Calendar. hari.getInstance(). calendar. value yang dimasukkan bukanlah angka melainkan bulan yang ada dalam Calendar. baik itu menit.DECEMBER). calendar. Calendar. 1988).DAY_OF_YEAR Calendar.1 Mengubah Calendar Jika kita akan melakukan pengubah tanggal atau waktu sebuah calendar. calendar.YEAR Keterangan Mengubah data milisekon Mengubah data detik Mengubah data menit Mengubah data jam Mengubah data hari dalam bulan Mengubah data hari dalam minggu Mengubah data hari dalam tahun Mengubah data bulan Mengubah data tahun Contohnya : package aplikasi.DAY_OF_WEEK Calendar.MONTH.set(Calendar. public class Program { public static void main(String[] args) { Calendar calendar = Calendar.MONTH Calendar. Dimana field nya adalah : Field Calendar.set(Calendar.Calendar. misal Calendar. jam.YEAR.set(Calendar.DAY_OF_MONTH.DECEMBER. } } Untuk bulan.util.

Dimana field pada metode add() sama dengan field pada metode set().StripBandunk | Belajar Java Dasar 5. import java.program.add(field. } } Jika akan mengurai data.util.util. cukup memasukkan data negatif.add(Calendar. import java.DAY_OF_MONTH. public class Program { public static void main(String[] args) { Calendar calendar = Calendar. 50 . // mengurangi 10 hari calendar. formatnya adalah sebagai berikut : calendar.DAY_OF_MONTH.program. // menambah 10 hari calendar.getInstance().Calendar.2 Menambah dan Mengurangi Calendar Selain mengubah secara manual menggunakan set(). } } -10). 10). Contoh : package aplikasi.Calendar.getInstance(). public class Program { public static void main(String[] args) { Calendar calendar = Calendar. Calendar juga memiliki metode add() yang digunakan untuk menambah atau mengurangi data calendar tersebut.add(Calendar. misal : package aplikasi.3. value).

StripBandunk | Belajar Java Dasar Saat ini penulis menjabat sebagai Chief Exe utive Offi er di StripBandunk.khannedy@gmail. yaitu perusahaan yang bergerak di pengembangan teknologi informasi dan komunikasi. Penulis dapat dihubungi di : y y y :D echo. Penulis merupakan lulusan Universitas Komputer Indonesia. .com/khannedy http://facebook.com/khannedy } | | 51 y x x { z xz w Tentang Penuli Penulis bernama Eko urniawan hanned S om Lahir di kota Subang tanggal 29 Desember 1988 dan besar di kota Subang. Penulis aktif di berbagai komunitas teknologi dan saat ini penulis adalah Leader di komunitas Java User Group Bandun dan juga Moderator di komunitas NetBeans Indonesia.com http://twitter.

Sign up to vote on this title
UsefulNot useful