Minggu, 04 November 2012

OVERLOADING, OVERRIDING dan EXCEPTION


A.      OVERLOADING
Overloading adalah suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan satu nama method untuk beberapa method yang memiliki parameter masukan yang berbeda (tipe maupun parameter). Overloading memodifikasi secara horizontal method maupun konstructor milik class super, maupun class yang sama.

B.      OVERRIDING
Overriding adalah suatu kemampuan dalam bahasa berorientasi objek untuk mengubah implementasi (menimpa) suatu method yang dimiliki oleh class super ketika class super tersebut diturunkan. Overriding memodifikasi secara vertical method milik kelas super.
Ada dua alasan mengapa melakukan overriding :
1.       Mendefensikan kembali method kelas induk secara total.
2.       Menambah behavior tertentu pada method kelas induk.

C.      EXCEPTION
Exception merupakan suatu objek error khusus yang dibuat ketika terjadi kesalahan pada suatu program. Setelah suatu objek exception dibuat oleh Java, objek tersebut dikirimkan ke pogram, proses ini disebut throwing an exception.
Penanganan exception dalam Java dibuat dengan menuliskan kode program exception handling pada source code. Exception handling berguna untuk mencegah program menjadi “hang”. Kode program exception handling secara umum terdiri dari 3 bagian yaitu try, catch dan finally.
Kategori error dalam program :
1.       Syntax error
     Error yang terjadi apabila java compiler menemukan kesalahan pada syntax atau aturan-aturan lainnya pada program.
2.       Runtime error
      Error yang terjadi karena factor eksternal, seperti adanya pembagian dengan nol, input yang tidak sesuai dengan tipe yang diminta dan sebagainya. Kondisi ini dikenal sebagai exception.
3.       Logic error
     Error yang terjadi karena kesalahan logika pemrograman. Misalnya hasil pembagian dua buah bilangan diberi tipe data int. hal ini menyebabkan hasil tidak valid karena ada bagian koma decimal yang akan hilang.

Blok suatu exception :

try {
            //kode-kode program yang mungkin dapat menimbulkan exception
}

catch (JenisException1 e) {
            /*kode-kode program yang harus dilakukan apabila terjadi exception
            JenisExceptioin1*/
}

catch (JenisException2 e) {
            /*boleh terdapat lebih dari satu blok catch untuk menangani exception yang berbeda*/
            /*kode-kode program yang harus dilakukan apabila terjadi exception
            JenisExceptioin1*/
}

finally {
            //finally bersifat opsional (boleh tidak menggunakan blok finally)
            /*kode-kode yang tetap dilakukan baik terjadi exception maupun tidak terjadi exception*/
}


LANGKAH-LANGKAH PRAKTIKUM

Contoh Program SegiTiga.java
class SegiTiga {
            public SegiTiga(double panjang) {
                        System.out.println("\nVariabel = segitiganya sama sisi");
                        System.out.println("Panjang = " +panjang);
                        keliling(panjang);
            }

            public SegiTiga(double panjang, double sisiMiring) {
                        System.out.println("\n2Variabel = segitiganya sama kaki");
                        System.out.println("panjang = " +panjang+ " sisi miring = " + sisiMiring);
                        keliling(panjang, sisiMiring);
            }

            public void keliling(double panjang) {
                        tampilkanHasil(panjang*3);
            }

            public void keliling(double p, double sM) {
                                    tampilkanHasil(2*sM+p);
            }

            protected void tampilkanHasil(double h) {
                        System.out.println("Hasil = " +h);
            }
}


Contoh Program MainSegiTiga.java
class MainSegiTiga {
            public static void main(String [] args) {
                        new SegiTiga(7);
                        new SegiTiga(4,7);
            }
}


Contoh Program OverRiding.java
class OverRiding {
            public void MethodAsli() {
                        System.out.println("Method milik class OverRiding dijalankan");
            }

            public static void main(String [] args) {
                        OverRiding O = new OverRiding();
                        O.MethodAsli();
            }
}


Contoh Program SubOverRiding.java
class SubOverRiding extends OverRiding{
            public void MethodAsli() {
                        System.out.println("Method yang sudah OverRiding dijalankan");
            }

            public void MethodAsliSuper() {
                                    System.out.println("Method pemanggil MethodAsli dijalankan");
                                    super.MethodAsli();
            }

            public static void main(String [] args) {
                        SubOverRiding SO = new SubOverRiding();
                        SO.MethodAsli();
                        SO.MethodAsliSuper();
            }
}


Contoh Program TanpaException.java
class TanpaException {
            public static void main(String [] args) {
                        int Nilai = Integer.parseInt (args[0]);
                        System.out.println("Nilai yang dimasukkan : " +Nilai);
            }
}


Contoh Program CobaException.java
class CobaException {
            public static void main(String [] args) {
                        int nilai = 0;
                        try {
                                    int Nilai = Integer.parseInt (args[0]);
                                    System.out.println("Nilai yang dimasukkan : " +Nilai);
                        }
                        catch(Exception e) {
                                    System.out.println("Pasti yang di input bukan Integer");
                        }
                        finally {
                                    System.out.println("Blok finally tetap dilakukan");
                        }
            }
}


Contoh Program PembagianNol.java
class PembagianNo1 {
            public static void main(String [] args) {
                        System.out.println("Sebelum pembagian");
                        try {
                                    System.out.println(5/0);
                        }
                        catch(Throwable T) {
                                    System.out.println("Terjadi pembagian nol");
                        }
                                    System.out.println("Sesudah pembagian");
                        }
            }


Contoh Program TesInputData.java
import java.io.*;
class TesInputData {
            public static void main(String [] args) {
                        BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
                        String Input = "";
                        try {
                                    System.out.println("Masukkan data : ");
                                    Input = "Salah";
                        }
                        finally {
                                    System.out.println("Data yang anda masukkan adalah " +Input);
                        }
            }
}

Tidak ada komentar:

Posting Komentar