Senin, 09 Desember 2013

OVERLOADING, OVERRIDING, DAN EXCEPTION


Pembahasan

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 jumlah paramater). Overloading memodifikasi secara horisontal method maupun konstruktor milik kelas super, maupun kelas yang sama.

Dalam sebuah kelas diperbolehkan ada lebih dari satu method dengan nama yang sama dengan catatan methods dapat dibedakan berdasarkan banyaknya parameter atau tipe data parameter formal.

    Overloading method dapat digunakan ketika kita mempunyai operasi yang sama namun berbeda implementasinya. Yang terpenting dalam melakukan ini, nama method harus sama, tapi mempunyai parameter yang berbeda. Terserah berbeda dari segi tipe datanya atau jumlah parameternya.Tergantung kebutuhan untuk implementasi dan nilai kembaliannya. Jadi yang perlu diingat saat melakukan overloading method:
v  Nama method sama
v  Parameter berbeda (baik tipe maupun jumlahnya)
v  Tipe data nilai kembalian dapat berbeda atau sama
Overloading itu mendeklarasikan lebih dari satu kali dengan syarat-syarat tertentu. baik overloading method ataupun konstruktor.
B. OVERRIDING
  Overriding adalah suatu kemampuan dalam bahasa berorientasi objek untuk mengubah implementasi (menimpa) suatu method yang dimiliki oleh kelas super ketika kelas super tersebut diturunkan. 
Ada dua alasan mengapa melakukan overriding :
1
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 program, proses ini disebut Throwing an exception.

   Setelah sebuah metode melemparkan exception, sistem runtime akan berusaha mencari sesuatu untuk menangani exception tersebut. Maksud dari "sesuatu" yang menangani exception adalah daftar metode yang sudah diurutkan yang sudah dipanggil agar sampai ke motode dimana error terjadi. Daftar metode tersebut biasanya disebut call stack (tumpukan pemanggilan).
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.

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