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