Bab 5: OVEERLOADING, OVERRIDING, DAN EXCEPTION



OVEERLOADING, OVERRIDING, DAN EXCEPTION

 Tujuan :
1.       Agar mahasiswa dan mempar aktekkan kosep overloading dan overriding.
2.       Agar mahasiswa memahami perbedaan overloading dan overriding. 
3.       Agar mahasiswa memahami dan mempratekan penggunaan exception. 

DASAR TEORI
A.      OVERLOADING

        Overloading adalah suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan satu nama method untuk beberapa method yang memiliki parameter masukan yang berbeda 9 tipe maupun jumlah parameter). Overloading memodifikasi secara horizontal method maupun konstruktor milik kelas super, maupun kelas yang sama.
B.      OVERRIDING 
       Overriding adalah suatu kemampuan dalam bahasas berorientasi objek untuk mengubah implementasi (menimpa) suatu method yang dimiliki oleh kelas super ketika kelas super terebut diturunkan. Overriding memodifikasi secara vertical method milik kelas super. Ada dua alas an mengapa melakukan overriding:

1.       Mendifinisikan kembali method kelas induk secara total.

2.       Menambahkan bahaviour tertentu pada method kelas induk

Memodikasi hak akses pada overriding sangat berpengaruh. Perhatikan table di bawah ini untuk lebih jelasnya:


Akses method SuperClass
default
protected
public
Dioveride ke akses method SubClass
privite
dilarang
dilarang
dilarang
default
boleh
dilarang
dilarang
protected
boleh
boleh
dilarang
public
boleh
boleh
boleh

C.      EXCEPTION 
       Exception merupakan suatu objek erro khusus yang dibuat ketika terjadi kesalahan pada suatu program. Setelah suatu objek exception dibuat oleh java, objek tersebut dikirim ke program, proses ini disebut thorowing an exception. Objek exception tersebut kemudian diterima oleh program, dan penangana exception selanjutnya terserah pada program.

                Penanganan exception dalam java dibuat dengan menuliskan kode program eception handling pada source code. Exception handling berguna untuk mencegah program menjadi “hang”. Kode program exception handling secara umum terdiri dari 3 bagaian yaitu try, catch dan finally.

                 Kategori erro dalam program :

1.       Syntax error

Error yang terjadi apabila java compiler menemukan kesalahan pada syntax atau aturan-aturan lainya pada program.

2.       Runtime error

Error yang terjadi karena kesalahan logika pemprograman. Misalnya hasil pembagian dua buah blangan diberi tipe data int. hal ini menyebabkan hasil tidak valid karena ada bagian koma decimal yang akan  hilang.

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 desimal yang akan hilang.

LANAGKAH-LANGKAH PRATIKUM

 A. Membuat 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+ " sisiMiring = " +sisisMiring);


       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) ;


  }


}
OUTPUTNYA
bukan fungsi utama

B.  MembuatProgram MainSegiTiga.java
class MainSegiTigs {


  public static void main (String [] args) {


        new SegiTiga(7);


        new SegiTiga(4,7);


  }


}
OUTPUTNYA


Variabael = segitiga sama sisi


Panjang = 7.8


Hasil = 21.0





2variabel = segitiga sama kaki


Panjang = 4.0 sisi miring = 7.0


Hasil = 18.0


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


  }


}
OUTPUTNYA
Method milik class overriding dijalankan

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


  }


}
OUTPUTNYA
Method yang sudah Overriding dijalankan


Method pemanggil MethodAsli dijalankan


Method milik class Overriding dijalankan

 E.  Membuat Program TanpaException.java
class TanpaException {


   public static void main (String [] args) {


         int Nilai = Integer.parseInt (args[0]) ;


         System.out.println("Nilai yang dimasukkan : " +Nilai);


   }


}
OUTPUTNYA
Exception in thead “main” java.lang.ArrayindexOutOfBoundsException: 0


             at TanpaException.main<TanpaException.java:3>

F.  Membuat 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 dimaksukan : " +Nilai);


         }


         catch (Exception e) {


                System.out.println("pasti yang diinput bukan Integer");


         }


         finally {


                System.out.println("blok finally tetap dilakukan");


         }


   }


}
OUTPUTNYA
pasti diinputkan bukan integer


blok finally tetap dilakukan

G.  Membuat Program 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");


   }


}
OUTPUTNYA
Sebelum pembian


Terjadi pembagian nol


Sesudah pembagian

H.  Membuat Program TesInput.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("masukan data : ");


               Input = "salah";


         }


         finally {


               System.out.println("Data yang anda masukan adalah " +Input);


         }


   }


}
OUTPUTNYA
Masukan data :


Data yang anda masukan adalah salah

Komentar

Postingan populer dari blog ini

Bab 3: INFORMATION HIDING, INHERITANCE, ENCAPSULATION DAN POLYMORPHISM