OVERRIDING, OVERLOADING DAN EXCEPTION
OVERLOADING
Overloading adalah suatu kemampun dalam bahasa berorientasi objek untuk menggunakan suatu nama metod yang memiliki parameter masukan yang berbeda (tipe maupun jumlah parameter).
1. mendefinisikan method dengan nama sama dalam satu class.
2. Konsep sering di gunakan dalam penggunaan constructor.
Dalam pemrograman Java, mungkin kita seringkali menginginkan pembuatan lebih dari satu method dengan nama sama tetapi dengan daftar parameter yang berbeda. Ini disebut overloading method. Overloading method digunakan untuk melayani sifat polimorfik Java. Contoh berikut ini adalah versi class Point yang menggunakan overloading method untuk menghasilkan konstuktor alternatif yang membuat beberapa nilai default untuk koordinat x dan y.
Contoh programnya :
class Point {
int x;
int y;
Point(int x, int y) {
this.x = x;
this.y = y;
}
Point() {
x = -1;
y = -1;
}
}
class PointCreateAlt {
public static void main(String args[] ) {
Point p = new Point();
System.out.println("x = " + p.x +" y =" + p.y);
}
}
OVERRIDING
Overriding adalah suatu kemampuan dalam bahasa berorientasi objek untuk mengubah implementasi (menimpah) suatu method yang dimiliki oleh kelas super ketika kelas super ketika kelas super tersebut diturunkan.overriding memodifikasi secara vertikal method milik kelas super. Ada dua alasan mengapa melakukan overriding:
1. Mendefinisikan kembali ke method kelas induk secara total
2. Menamah behaviour tertentu pada method kelas induk.
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.
Contohnya :
class Kendaraan {
..............
public String getJenis() {
System.out.println(“Harga BBM turun”);
}
}
class Motor extends Kendaraan {
..............
public String getJenis() {
System.out.println(“Harga BBM premium 4000 rupiah”);
}
}
NB dari contoh program di atas dapat di jelaskan sebagai berikut:
* class motor mengextends class kendaraan
* class motor melakukan override method di kendaraan namun berbeda implementasi
Kesimpulan:
* Override method merupakan method yang sama persis dengan method yang sudah ada di super kelasnya, biasanya perbedaannya adalah pada implementasi (program body)
* Overidding tidak bisa dilakukan dalam kelas itu sendiri
* Jadi Overidding kerat kaitannya dengan inheritance (pewarisan)
EXCEPTION
Kesalahan atau eror sering terjadi pada saat membuat program, ini yang membuat kesal para pemula programmer untuk itu menghindari dari kesalahan atau eror Java menyediakan fasilitas berupa mekanisme penanganan exception. Bisa di kata kan bahwa Exception adalah singkatan dari Exceptional Events atau dalam bahasa indonesianya kesalahan (error) yang terjadi pada saat pembuatan program dan saat runtime, mengakibatkan gangguan pada alur exekusi.
Kesalahan dalam program java terdapat beberapa tipe sebagai contoh kesalahan pembagian 0, mengakses elemen di luar jangkauan array dan input yang tidak benar. Exception merupakan sebuah subclasses baik secara langsung atau tidak langsung, sehingga exception di bagi 2 kategori class yaitu : Error Class dan Exception Class
Exception menunjukkan bahwa class tersebut dapat di terima oleh user program. Tetapi Exception class di gunakan untuk memperbaiki beberapa kesalahan pada kode program sebagai contoh Exception adalah pembagi oleh 0 dan error pada saat array melakukan tindakan di luar jangkauan. Error class menpunyai fungsi untuk menangani kesalahan atau error yang sering muncul pada saat program di jalankan. Tetapi kesalahan pada program merupakan di luar control user karena kemunculan di sebabkan oleh run-time environment. Sebagai contoh out of memory dan harddisk carsh.
Pada dasarnya, Exception merupakan subkelas dari kelas java.lang.Throwable. “Bukalah dokumentasi java untuk lebih menyakinkan anda”. Karena Exception adalah sebuah kelas maka hakikatnya ketika program berjalan dan muncul sebuah bug atau kesalahan maka bugtersebut dapat dianggap sebuah object. Sehingga ketika object ini di tampilkan di layar maka java akan secara otomatis memanggil method toString yang terdapat dalam objectbertipe Exception ini. Java memberikan akses kepada developer untuk mengambil objectbug yang terjadi ini dengan mekanisme yang dikenal Exception Handling. Exception handlingmerupakan fasilitas di java yang memberikan flexibilitas kepada developer untuk menangkapbug atau kesalahan yang terjadi ketika program berjalan. Contoh Exception Handling akan dibahas pada bagian berikutnya.
Perbedaan antara Class Error dan Class Exception di java
Seperti yang telah dijelaskan diatas bahwa kelas Exception merupakan kelas turunan dari kelas Throwable di package Java.Lang. Selain Exception, java.lang.Throwable juga memilikisubclass yaitu class Error. Tentu, kita bertanya-tanya, sebetulnya apa sih perbedaan antaraclass Error dengan class Exception.
Penjelasan dari Class Error :
“An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions” (JDK 5.0Documentation)
Penjelasan dari class Exception :
“The class Exception and its subclasses are a form of Throwable that indicates conditions that a reasonable application might want to catch. “ (JDK 5.0 Documentation)
Seperti dari penjelasan yang diberikan oleh JDK Documentation, maka dapat kita lihat bahwaerror dan exception pada dasarnya berbeda. Error merupakan masalah yang muncul tapi tidak ada alasan yang kuat untuk menangkapnya. Sedangkan Exception merupakan kesalahan kecil yang muncul dan ingin diperlakukan sesuai keinginan developer.
LANGKAH-LANGKAH PRAKTIKUM
SEGITIGA
class SegiTiga {
public SegiTiga(double panjang) {
System.out.println("\nVariable = segitiganya sama sisi");
System.out.println("Panjang = " +panjang);
keliling(panjang);
}
public SegiTiga(double panjang, double sisiMiring) {
System.out.println("\2Variable = 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);
}
}
MAINSEGITIGA
class MainSegiTiga {
public static void main (String [] args) {
new SegiTiga(7);
new SegiTiga(4,7);
}
}
Hasil Eksekusi Main Segitiga
OverRiding
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();
}
}
Hasil Eksekusi OverRiding
SubOverRiding
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();
}
}
Hasil Eksekusi SuOverRiding
Tanpa Exception
class TanpaException {
public static void main (String [] args) {
int Nilai = Integer.parseInt (args[0]);
System.out.println("Nilai yang dimasukkan : " +Nilai);
}
}
Hasil eksekusi Tanpa Exception
Coba Exception
class CobaExceptiion {
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 diinput bukan Integer");
}
finally {
System.out.println("Blok finally tetap dilakukan");
}
}
}
Hasil eksekusi Coba Exception
Pembagian Nol
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");
}
}
Hasil eksekusi Pembagian Nol
TesInputData
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);
}
}
}
Hasil Eksekusi TesInputData
Tidak ada komentar:
Posting Komentar