SELAMAT DATANG
DI WILAYAH TERITORIAL
KEKUASAAN SAYA
^_^

Jumat, 02 November 2012

Overloading,Overriding Dan Exception Pada Pemrograman Java

Membuat Program Overriding.java class OverRiding { public void MethodAsli () { System.out.println("Method Milik class OverRiding dijalankan"); } public static void main (String [] arqs) { OverRiding O = new OverRiding(); O.MethodAsli(); } } output : 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 [] arqs) { SubOverRiding SO= new SubOverRiding (); SO.MethodAsli(); SO.MethodAsliSuper(); } } output : Overloading dan Overriding, keduanya merupakan class yang memiliki nama method yang sama. Namun pada overloading dan overriding memiliki kesamaan dan perbedaan yang dapat dilihat dari parameternya. A. OVERLOADING 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 horizontal method maupun konstruktor milik kelas super, maupun kelas yang sama. 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. Overriding memodifikasi secara vertikal method milik kelas super. Ada dua alasan mengapa melakukan overriding : 1. Mendefenisikan kembali method kelas induk secara total. 2. Menambahkan behaviour 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. Kategori error dalam program : 1. Syntax error 2. Runtime error 3. Logic error Bahan 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+ " 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); } } output: B. Membuat Program MainSegiTiga.java Class MainSegitiga { Public static void main(string [] arqs) { new Segitiga(7); new Segitiga(4, 7); } } output : Keterangan : Baris 2, 3 dan 4 di dapat dari perintah new Segitiga(7); yang artinya memanggil konstruktor Segitiga yang memiliki 1 parameter pada class Segitiga yang mana perintah pertama dari konstruktor Segitiga adalah System.out.println("\nVariabel = segitiganya sama sisi"); yakni menampilkan kalimat Variabel = segitiganya sama sisi. Kemudian perintah keduanya adalah System.out.println("panjang = " +panjang); yakni menampilkan kata panjang = 7, yang sebelumnya adalah kembali pada perintah new Segitiga(7); yaitu memasukkan nilai 7 pada parameter panjang, sehingga didapat hasil : panjang = 7 dari perintah kedua. Pada perintah ketiga adalah keliling(panjang); yakni memanggil method keliling yang memilki 1 parameter, untuk mengirimkan nilai 7 pada parameter panjang, sedangkan perintah dari method keliling itu sendiri adalah tampilkanHasil (panjang*3); yakni memanggil method tampilkanHasil dengan mengirim panjang*3 pada paremeter h, yang mana perintah dari method tampilkanHasil adalah System.out.println("Hasil = " +h); yakni menampilkan kalimat Hasil = 7*3, sehingga didapat hasil = 21. Baris 5, 7 dan 8 di dapat dari perintah new Segitiga(4,7); yang artinya memanggil konstruktor Segitiga yang memiliki 2 parameter pada class Segitiga yang mana perintah pertama dari konstruktor Segitiga adalah System.out.println("\n2Variabel = segitiganya sama kaki"); yakni menampilkan kalimat 2Variabel = segitiganya sama kaki. Kemudian perintah keduanya adalah System.out.println("panjang = " +panjang+ " sisi miring = " +sisiMiring); yakni menampilkan kata panjang = 4 sisi miring = 7, yang sebelumnya adalah kembali pada perintah new Segitiga(4,7); yaitu memasukkan nilai 4 pada parameter panjang dan nilai 7 pada parameter sisiMiring, sehingga didapat hasil : panjang = 4 sisi miring = 7 dari perintah kedua. Pada perintah ketiga adalah keliling(panjang, sisiMiring); yakni memanggil method keliling yang memilki 2 parameter, untuk mengirimkan nilai 4 pada parameter panjang dan nilai 7 pada parameter sisiMiring, sedangkan perintah dari method keliling itu sendiri adalah tampilkanHasil (2*sM+p); yakni memanggil method tampilkanHasil dengan mengirim perintah 2*sM+p pada parameter h, yang mana perintah dari method tampilkanHasil adalah System.out.println("Hasil = " +h); yakni menampilkan kalimat Hasil = 2*7+4, sehingga didapat hasil = 18 Membuat Program CobaException.java class CobaException { public static void main (String [] arqs) { int nilai=0; try { int Nilai = Integer.parseInt (arqs[0]) ; System.out.println ("Nilai yang dimasukkan : "+Nilai); } catch(Exception e) { System.out.println("Pasti yang diinput bukan Integer"); } finally { System.out.println("Blok finally tetap dilakukan"); } } } output : 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"); } } output : Membuat Program TesInputData.java import java.io.*; class TextInputData { public static void main (String [] arqs) { 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); } } } output : catatan : Perbedaan antar override dengan overload Override Mendefinisikan method dengan nama sama pada class yang berbeda. Konsep dapat di manfaatkan dalam beberapa kasus inheritance, di mana menginginkan penamaan method dengan nama sama namunberbeda dalam impelementasinya. Overload mendefinisikan method dengan nama sama dalam satu class. Konsep sering di gunakan dalam penggunaan constructor.

1 komentar: