A. OVERLOADING
Overloading adalah suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan satu nama method untuk beberapa method yang memiliki parameter secara horizontal method maupun konstruktor milik kelas super, maupun kelas yang sama.
B.OVERRIDING
Overriding adalah suatu kemampuan dalam bahasa berorientasi objek untuk kelas super tersebut. Overriding memodifikasi secara vertikal method milik kelas super. Ada 2 alasan mengapa melakukan overriding :
1. Mendefenisikan kembali method kelas induk secara total.
2. Menambahkan behavior tertentu pada method kelas induk.
(Nb : Terjadi dalam kelas induk & kelas anak dan tidak boleh ada perbedaan parameter)
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. 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 code. Exception handling berguna untuk mencegah program menjadi “hang”. Kode program exception handling secara umum terdiri 3 bagian yaitu try, catch dan finally.
Kategori error dalam program :
1. Syntax error
Error yang terjadi apabila java compiler menemukan kesalahan pada syntax atau aturan-aturan lainnya pada program.
2.Runtime error
Error yang terjadi karena faktor eksternal, seperti adanya pembagian dengan nol, input yang tidak sesuai dengan tipe yang diminta dan sebagainya. Kondisi ini dikenal sebagai exception.
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.
Blok suatu exception :
try {
//kode-kode program yang mungkin dapat menimbulkan exception
}
catch (JenisException1 e) {
/*kode-kode program yang harus dilakukan apabila terjadi exception
JenisException1*/
}
catch (JenisException2 e) {
/*boleh terdapat lebih dari satu blok catch untuk menangani exception yang berada*/
/*kode-kode program yang harus dilakukan apabila terjadi exception
JenisException1*/
}
finally {
//finally bersifat opsional (boleh tidak menggunakan blok finally)
/*kode-kode yang tetap dilakukan baik terjadi exception maupun tidak terjadi exception*/
}
LANGKAH - LANGKAH PRAKTIKUM
A. MEMBUAT PROGRAM SegiTiga.java
class SegiTiga {
public SegiTiga (double panjang) {
System.out.println("\nVariabel1 = segitiganya sama sisi");
System.out.println("Panjang = " +panjang);
keliling(panjang);
}
public SegiTiga(double panjang, double sisiMiring) {
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);
Nb : Tidak memiliki output, karena tidak memiliki fungsi utama, yaitu :
public static void main(String [] args) {
B. MEMBUAT PROGRAM MainSegiTiga. java
class MainSegiTiga {
public static void main(String [] args) {
new SegiTiga(7);
new SegiTiga(4,7);
}
}
Output:
Variabel = segitiga sama sisi
Panjang = 7.0
Hasil = 21.01
2 variabel = segitiga sama kaki
Panjang = 4.0
Sisi miring = 7.0
Hasil = 18.0
C. MEMBUAT PROGRAM Overriding.java
class SubOverRiding extends {
public void MethodAsli() {
System.out.println("Method milik class OverRiding dijalankan");
}
public static void main(String [] args) {
OverRiding O = new OverRiding();
O. MethodAsli();
}
}
Output:
Method ini 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();
}
}
Output:
Method yang sudah Overriding dijalankan
Method memanggil Method Asli dijalankan
Method milik class Overriding dijalankan
E. MEMBUAT PROGRAM CobaException.java
class CobaException {
public static void main (String [] args) {
int Nilai = Integer.parseInt (args[0]);
System.out.println("Nilai yang dimasukkan : " +Nilai);
}
}
- Klik star ➡ run lalu ketik cmd untuk membuka command prompt
- Ketik perintah cd (change directory) untuk menuju direktori untuk menuju direktori tempat TanpaException. class berada
- Ketik java TanpaException 50 untuk menjalankan program.
Output:
Exception in thread “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 dimasukkan : " +Nilai);
catch(Exception e) {
System.out.println("Pasti yang diinput bukan Integer");
}
finally {
System.out.println("Blok finally tetap dilakukan");
}
}
}
Output :
Pasti diinput bukan integer
Blok finally 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");
}
}
Output:
Sebelum pembagian
terjadi pembagian nol
sesudah pembagian
H. MEMBUAT PROGRAM TesInputData.java
impor 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);
}
}
}
Output:
Data yang anda masukkan adalah salah