Sabtu, 05 November 2011

PERTEMUAN VI

OVERLOADING, OVERRIDING DAN EXCEPTION

1.      OVERLOADING
Adalah suatu kemampuan dalam bahasa berorientasi objek  untuk menggunakan suatu nama method untuk beberapa method yang memiliki parameter masukan yang berbeda (tipe maupun jumlah parameter). Overloading memodifikasi secara horisontal method maupun konstruktor milik kelas super, maupun kelas yang sama.
lebih Jelasnya Overloading secara singkat :
·         Nama Method Boleh Sama , Tapi Jumlah Parameter Mesti berbeda
·         Nilai Yang Di Return Harus memiliki Tipe yang sama
·           Dengan menggunakan kemampuan overload java, kita dapat memiliki lebih dari 1 method dengan nama yang sama di dalam suatu class. [1&2]
·           Method yang dioverload dan yang mengoverload sebenarnya adalah method-method yang benar-benar berbeda. Mereka hanya memiliki kesamaan nama saja. [1]
·           Constructor dapat dioverload. [2]
·           Aturan overload : [2]
1.      Method yang mengoverload HARUS merubah argument list
2.      Method yang mengoverload BOLEH merubah return type
3.      Method yang mengoverload BOLEH merubah access modifier
4.      Method yang mengoverload BOLEH melempar checked exception yang lebih luas atau baru sama sekali dari method yang dioverload.
5.      Suatu method dapat dioverload di class tersebut atau di subclassnya.
·           Method yang mengoverload HARUS merubah argument list [2]. Aturan ini adalah satu-satunya syarat agar dapat terjadi overload [1].
Syarat argument list berbeda adalah salah satu dari 2 hal berikut : [1]
1.      Jumlah argument berbeda
2.      Jumlah argument sama, akan tetapi urut-urutan tipe datanya adalah berbeda.


2.      OVERRIDING
Adalah suatu kemampuan dalam berorientasi objek untuk mengubah  implementasi (menimpa) suatu method yang dimiliki oleh kelas super ketika kelas super tersebut diturunkan. Overriding  memodifikasi secara vertikal method milik kelas super. Ada dua alasan mengapa melakukan overriding :
·         Mendefenisiksn kembali method kelas induk secara total.
·         Menambah behaviour tertentu pada method kelas induk.



3.      EXCEPTION
Merupakan suatu objek error khusuh yang dibuat ketika terjadi kesalahan pada suatu program. Setelah suatu objek exception dibuat oleh java, objek tersebut dikirim ke program, proses ini di sebut throwing an exception. Objek exception tersebut kemudian diterima oleh program, dan penanganan exception selanjutnya terserah pada program.
Penanganan exception dalam java dibuat dengan menuliskan kode program exception handling pada source kode. Exception handling berguna untuk mencegah program menjadi “hang”. Kode program ini secara umum terdiri dari 3 bagian yaitu\, catch dan finally.
1.    Kategori error dalam program :
·       Synteax error
Error yang tejadi apabila java compiler menemukan kesalahan pada syntax atau aturan-aturan lainnya pada program
·       Runtime error
Error yang terjadi karena faktor eksternal, seperti adanya pembagian dengan nol, input yang tidak sesuai dengan type yang diminta dan sebagainya. Kondisi ini dikenal sebagai exception
·       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 dua buah bilangan diberi tipe  data int. hal ini mnyebabkan hasil tidak valid karena ada bagian koma desimal yang akan hilang.

Contoh program :
A.    SegiTiga.java

class SegiTiga {
   public SegiTiga(double panjang) {
        System.out.println("\nVariabel = segitiganya sam 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);
   }
}
Hasilnya :



B.    MainSegiTiga.java

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



Hasilnya :







 

C    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();
    }
}



Hasilnya :







D.    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();
    }
}




Hasilnya :










 
E.    TanpaException.java

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



Hasilnya :







F.    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 diimasukkan : " +Nilai);
          }
          catch(Exception e) {
              System.out.println("Pasti yang diinput bukan Integer");
          }
          finally {
              System.out.println("Blok finally tetap dilakukan");
          }
     }
}



Hasilnya :




 

G.    PembagianNol.java

class PembagianNol {
    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");
    }
}





Hasilnya :







H.    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);
         }
     }
}



Hasilnya :
















Tidak ada komentar:

Posting Komentar