Jumat, 15 Maret 2019

Pertemuan 6. OVERLOADING, OVERRIDING DAN EXCEPTION

OVERLOADING, OVERRIDING DAN EXCEPTION
A.    OVERLOADING
Overloading adalah suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan satu nama method untuk beberapaa method yang memiliki parameter masukan yang berbeda (tipe maupun jumlah parameter).
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. Ada dua alasan dilakukanya Overriding :
1.      Mendefinisikan kembali method kelas induk scara total.
2.      Menambahkan behaviour tertentu pada method kelas induk.

C.     EXCEPTION
Exception merupakan objek error khusus yang dibuat ketika terjadi kesalahan pada suatu program. Setelah objek exception dibuat oleh java, objek tersebut dikirimkan ke program, proses ini disebut throwing an exception. Penanganan exception dalam java dibuat dengan menuliskan kode program ecxception handling pada source kode, yang berguna untuk mencegah program menjadi “hang”.  Kode program exception handling terdiri dari 3 bagian yaitu : try, cacth dan finally.
Kategori error dalamprogram :
1.      Syntax error : Error yang terjadi apabila java compiler menemukan kesalahan pada syntax.
2.      Runtime error : Error yang terjadi karena faktor eksternal, se[perti adanya pembagian denagan nol, input yang tidak sesuai dengan type yang dimainta.

3.      Logic error : Error karena kesalahan pemrograman. Seperti hasil pembagia dua buah bilangan diberi type data int. Ini akan menyebabkan hasil tidak valid karena ada bagian koma desimal yang akan hilang.

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 ("\n2Variable = 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);
}
}

B.   MEMBUAT PROGRAM MainSegita.java
class MainSegiTiga {
public static void main (String[] args) {
new SegiTiga(7);
new SegiTiga(4,7);
}
}

OUTPUT :

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


 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 :

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


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 diimasukkan  " +Nilai);
}
catch(Exception e) {
System.out.println("Pasti yang diinput bukan Integer");
}
finally {
System.out.println("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");
}
}

OUTPUT :

H.    MEMBUAT PROGRAM TesInputData.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 ("Masukkan data : ");
Input = "Salah";
}
finally {
System.out.println ("Data yang anda masukkan adalah "+Input);
}
}
}

Kesimpulan :
*Overloading bisa memiliki nama method yang sama dalam satu kelas, sedangkan Overriding memiliki nama method yang sama tapi berbeda kelasnya. Yang membedakan hanya pada jumlah parameternya.

Tidak ada komentar:

Posting Komentar