• Tidak ada hasil yang ditemukan

Overriding adalah suatu keadaan dimana method pada subclass menolak method pada parent class-nya.

Overriding mempunyai ciri-ciri sebagai berikut : 1. Nama method harus sama

2. Daftar parameter harus sama 3. Return type harus sama

Berikut ini contoh terjadinya overriding dimana

method Info() pada class Child meng-override methodInfo() pada classparent:

Method yang terkena override (overridden method) diharuskan tidak boleh mempunyai modifer yang lebih luas aksesnya dari method yang meng-override

Latihan

1. Buatlah kelas BEM (Badan Eksekutif Mahasiswa) yang merupakan kelas turunan dari Mahasiswa dan buatlah metodhmetodhnya.

2. Buatlah 1 objek untuk menginstantiasi kelas BEM (Badan Eksekutif Mahasiswa) dan

mengimplementasikan beberapa metodh yang telah Anda defnisikan dalam kelas BEM (Badan Eksekutif Mahasiswa).

3. Panggilllah objek yang telah Anda buat pada kelas Pecinta Alam dan BEM (Badan Eksekutif Mahasiswa) untuk bekerja sehingga tampil efek-efek polymorfsme

4. Buatlah Program seperti berikut :

Kompilasilah dan jalankan program tersebut. Apa hasil program tersebut? Analisalah hasil tersebut!

5. Salinlah program pada latihan 1 dengan nama KelasMobil2.java. Selanjutnya, ubahlah perintah

System.out.println("Warna : " + mobil_dia.warna);

System.out.println("Tahun : " + mobil_dia.tahun_produksi);

agar tidak menggunakan pemanggilan variabel instan untuk memperoleh warna dan tahun produksi. Sebagai pengganti, gunakan metode perolehWarna() dan

6. Salinlah program pada Latihan 1 dengan nama KelasMobil3. Modifkasilah program agar kelas Mobil memiliki variabel instan bernama merk (isinya seperti Suzuki, Honda, Mitsubishi, dsb). Selanjutnya, modifkasilah metode isiDataMobil sehingga secara berturut-turut dapat digunakan untuk mengisikan merk mobil, warna mobil, dan tahun produksi. Buatlah pula metode bernama

perolehMerk untuk mendapatkan merk mobil. Kemudian, dalam program utama, buatlah objek untuk mengisikan data berikut:

Merk : Honda Warna: Biru

Tahun produksi: 2003

Program juga bisa menampilkan ketiga informasi di atas dengan menggunakan metode.

7. Modifkasilah program pada latihan 4 sehingga data merk, warna, dan tahun produksi dapat dimasukkan dari

keyboard sewaktu program dieksekusi.

8. Memperlihatkan efek penggunakan private pada variabel instan. Modifkasilah kelas Mobil hasil Latihan 1 agar menjadi seperti berikut:

Perubahan sebenarnya hanya berupa tambahan dua kata private (dinyatakan dengan cetak tebal pada contoh di atas). Bila Anda menyimpan program ini dengan nama yang berbeda, jangan lupa mengubah nama kelas pada program utama!

Selanjutnya, cobalah untuk mengompilasi. Apa yang terjadi? Apa kesalahannya? Mengapa? Lalu, bagaimana kalau mau menampilkan informasi warna dan tahun produksi?

9. Latihan ini menunjukkan cara membuat konstruktor. Buatlah program berikut:

Kompilasilah dan jalankan. Perhatikan, apa bedanya dengan program pada Latihan 1?

10. Kembangkanlah agar program pada Latihan 6, memungkinkan overloading dengan bentuk:

mobil_ku = new Mobil("Honda","Hijau", 2004);

11. Modifkasilah program pada Latihan 7 agar kelas Mobil memiliki metode bernama infoMobil, yang digunakan untuk menampilkan data mobil. Atur pula agar variabel instan tidak bisa diakses di luar kelas Mobil.

12. Invoking parent class constructor (Employee1.java)

Coba compile program di bawah ini, jika terjadi error, jelaskan mengapa dan betulkan!

5

Exception Handling

Overview

Bab ini akan menjelaskan tentang Exception di Java, apa yang dimaksud dengan Exception, bagaimana menangkap

Exception. Serta akan dijelaskan throwing exception dan membuat user defne exception.

Tujuan

1. Mengetahui tentang Exception di Java. 2. Mengetahui kelas-kelas exception di Java

3. Mengetahui bagaimana Exception muncul dan cara menangkap Exception

4. Mengetahui cara melempar Exception

5. Mengetahui tentang User Defne Exception

Exception merupakan suatu kejadian yang tidak biasa atau event abnormal yang muncul ketika sedang menjalankan program. Exception merupakan runtime error. Ketika

Exception muncul maka akan melempar sebuah obyek

Exception, jika obyek yang dilempar ini tidak kitangani atau ditangkap maka akan mengakibatkan program diterminasi (berhenti), hal ini dapat menyebabkan program menjadi tidak handal. Untuk mengatasi hal ini dibutuhkan sesuatu untuk menangani Exception.

Exception mempunyai beberapa subclass. Tiap

subclassException akan dilempar dengan sebab sebab tertentu. Untuk menangani Exception dibutuhkan

Exception handling. Exception handling diimplementasikan di Java dengan keyword

o Try

Blok try digunakan untuk meletakkan code yang kemungkinan akan memunculkan Exception

o Catch

Blok catch digunakan sebagai Exception handler, blok ini akan menangkap Exception yang dilempar di dalam

blok try. Blok catch digunakan untuk

menspesifkasikan tipe Exception yang akan ditangani. Minimal 1 blok try mempunyai 1 blok catch, jadi 1 blok

try dapat mempunyai lebih dari 1 blok catch, hal ini dapat berlaku jika terdapat lebih dari 1 Exception yang akan dilempar didalam blok try.

o Finally

Blok fnally merupakan optional, boleh ada atau tidak. Satu blok try catch hanya 1 blok fnally. Blok fnally

diakses pada urutan terakir dalam blok try catch fnally, blok tetap diakses meskipun ada atau tidak ada

Exception.

o Throw

Statement throw digunakan untuk melempar

Exception secara eksplisit.

o Throws

Untuk mendaftar Exception-Exception yang akan dilempar statemen throw di dalam suatu method, jika

method tersebut tidak menyediakan Exception handling.

Contoh penggunaan Try Catch dan Finally public class ArrayException

{

public static void main (String[] args) { try { System.out.println("Your name is "+args[0]); }

catch (ArrayIndexOutOfBoundsException obj) {

System.out.println("Run the code with the argument"); } finally { System.out.println("Your school is TELKOM POLYTECHNIC"); } } }

Contoh penggunaan throw statement

public class ThrowingStatement {

static double root(double A,double B, double C) { double disc=0; try { if(A==0) { Exception Handling 65

throw new IllegalArgumentException("A can't be zero"); } else { disc = (B*B)-(4*A*C); if (disc<0) throw new IllegalArgumentException("Discriminant< 0"); } }//endtry catch(IllegalArgumentException obj) { System.out.println("Illegal Argument in : "+obj); } return ((-B + Math.sqrt(disc))/(2*A)); }

public static void main(String[] args) {

double Ans = root(0,2,4); }

}

User defned Exception merupakan Exception

yang didefnisikan oleh programmer sesuai dengan kebutuhan. User defned Exception yang dibuat harus menuruni (inheritance) method-method dari kelas

Exception.

Contoh UserdefnedException

class UserException extends Exception {

int num1,num2,sum;

UserException(int a,int b) {

num1 = a; num2 = b; sum = a + b; }

public String toString() {

return "UserException Caught: The sum of the numbers Exceeds 20.."; } } class UserExceptionDemo {

static void calculate(int a,int b) throws UserException { int sum; System.out.println("Calculate Method(" + a + "," + b +")"); sum=a+b; if(sum>20)

throws new UserException(a,b);

System.out.println("The Value of the sum of two numbers is:" + sum);

}

public static void main(String args[]) { try { calculate(15,7); calculate(12,1); }

catch (UserException Obja) { System.out.println("Caught:" + Obja); } } } Exception Handling 67

Latihan

1. Tipe Exception apa saja yang dapat ditangkap oleh handler

berikut?

catch (Exception e) { }

2. Modifkasi method cat dibawah agar bisa di compile public static void cat(File file) {

RandomAccessFile input = null; String line = null;

try {

input = new RandomAccessFile(file, "r"); while ((line = input.readLine()) != null)

{System.out.println(line); } return; } finally { if (input != null) { input.close(); } } }

3. Perhatikan kode berikut, lengkapi dan perbaiki kode berikut

import javax.swing.JOptionPane; public class Main {

public static void main(String[] args) {

// Enter the following values and see what Exception is caught.

// 0, 4, character, <no value> try {

String value = JOptionPane.showInputDialog(null, "Enter value:"); int divisor = Integer.parseInt(value);

System.out.println(3/divisor); }

System.out.println("After Exception."); }

}

Lengkapilah blok catch sehingga Exception yang mungkin muncul bisa ditangani.

4. Fungsi factorial biasanya didefnisikan untuk nilai yang tidak negatif, jika parameter bernilai negatif diterima oleh

method maka harus ada suatu reaksi. Hal ini bisa diatasi dengan mengembalikan hasil = 1, tetapi penanganan tersebut tidak sesuai karena yang salah adalah parameter inputannya. Maka diperlukan untuk melempar Exception

jika method menerima inputan berupa bilangan negatif.

public int factorial(int n) { int i=0; int result=1; while(i<n) { i=i+1; result*=i; } return result; }

Ubah method diatas sehingga method tersebut dapat

melempar sebuah Exception

java.lang.IllegalArgumentException. 5.

Diberikan kode berikut:

public class TestExceptions{

public static void main( String[] args ){ for( int i=0; true; i++ ){

System.out.println("args["+i+"]="+ args[i]);

} } }

Compile dan jalankan program TestExceptions. Keluarannya akan tampak seperti ini:

javac TestExceptions one two three args[0]=one

args[1]=two args[2]=three

Exception in thread "main"

java.lang.ArrayIndexOutOfBoundsException: 3 at TestExceptions.main(1.java:4)

Ubah program TestExceptions untuk menangani Exception, keluaran program setelah ditangkap

Exception-nya akan seperti ini:

javac TestExceptions one two three args[0]=one args[1]=two args[2]=three Exception caught: java.lang.ArrayIndexOutOfBoundsException: 3 Quiting...

6 Input/Output

Overview

Dalam bab ini akan dibahas tentang bagaimana cara melakukan pengaksesan data kedalam fle, baik melakukan proses pembacaan ataupun penulisan. Akan dibahas tentang pengaksesan data menggunakan stream dan random access fle.

Tujuan

1. Penggunaan file menggunakan kelas File. 2. Penggunaan byte stream.

3. Penggunaan character stream.

4. Pengaksesan dengan random-access file

Dokumen terkait