Minggu, 06 November 2011

Laporan Praktek 6 (Overloading, Overriding, Exception)

Ehmmmmmmm……………………  JJJ
Temen-temen…. ketemu  lagi untuk penjelasan tentang bahasa pemrograman java. Pada pembahasan ini kita akan membahas tentang Overloading, Overriding dan Exception. Tapi sebelumnya kita mengetahui tentang apa itu pengertian Overloading, Overriding, dan Exception.
1.   Overloading
Overloading adalah suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan satu nama  method untuk beberapa method yang memiliki parameter yang masukannya berbeda (tipe maupun jumlah parameter). Atau dalam bahasa kita “Dalam sebuah kelas terdapat beberapa method yang namanya sama, yang membedakan hanya tipe data dan jumlah parameternya”.
2.  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.
Alasan melakukan overriding :
1.      Mendefenisikan kembalimethod kelas induk secara total
2.      Menambahkan behaviour tertentu pada method kelas induk.
3.  Exception
Exception merupakan suatu objek error khusus yang dibuat ketika terjadi kesalahan pada suatu program. Penanganan exception dalam java dibuat dengan menuliskan kode program exception handling pada source code. Exception handling berguna untuk  mencegah program “hang”. Kode program exception handling secara umum terdiri dari 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 sebagiannya. 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.
Untuk bisa lebih memahami tentang penggunaan Overloading, Overriding dan Exception ini, mari kita  melihat contoh program di bawah ini! 
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);
}
}


Penjelasan kode:
·         Memiliki 5 method yaitu: method dengan nama Segitiga ada 2, method dengan nama Keliling juga ada 2,  yang membedakan parameternya, dan method TampilkanHasil.
·         Kode program di atas menunjukkan adanya beberapa method yang namanya sama dalam sebuah kelas, seperti nama method segitiga dan keliling  yang berarti adanya Overloading pada kode program di atas.
Jika di jalankan hasilnya sbb:


class MainSegiTiga {
public static void main (String [] args) {
new SegiTiga(7);
new SegiTiga(4,7);
}
}
Penjelasan Kode:
·         Nama kelasnya adalah MainSegitiga.
·         MainSegitiga merupakan kelas utama yang menjalankan method yang terdapat di class segitiga yang ditandai dengan adanya void main yang berarti fungsi utama.
·         Method dengan nama Segitiga yang mempunyai  parameter satu (double panjang) dengan nilai yang diberikan = 7. Ketika dieksekusi maka perintah yang dijalankan adalah sebagai berikut :
System.out.println ("\nVariabel = segitiganya sama sisi");
System.out.println ("Panjang = "+panjang);
Dan akan menjalankan method :
public void keliling (double panjang) {
tampilkanHasil(panjang*3);
Panjang akan menampung  nilai 7, maka kelilingnya adalah 7 x  3 = 21.
·         Method Segitiga dengan parameter dua (double p, double sM) dengan nilai yang diberikan = 4 dan 7. Ketika dijalankan  maka perintah yang dijalankan adalah:
public SegiTiga (double panjang, double sisiMiring) {
System.out.println ("\n2Variabel = segitiganya sama kaki");
System.out.println ("Panjang = "+panjang+" sisi miring = "+sisiMiring);
keliling (panjang, sisiMiring);                                                   
·         Arti dari new Segitiga  adalah memanggil konstruktor Segitiga

Hasilnya adalah sbb :


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();
}
}
Penjelasan Kode:
·         Nama Kelasnya adaalah OverRiding
·         Memiliki fungsi utama yg ditandai dengan void main  yang berarti pada kode program di atas adanya nilai(value) dari hasil program di atas.
Hasilnya sbb:




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();
}
}
Program di atas adalah merupakan kelas turunan dari kelas OverRiding dengan nama kelas SubOverRiding yang di tandai dengan adanya kata extends . Yang berarti perintah method-method yang di turunkan dari kelas OverRiding akan di eksekusi pada kelas SubOverRiding.
Hasilnya akan tampil sbb:
e
            Program  dibawah  ini adalah contoh program TanpaException. Akan tetapi sebelum kita mengetik kode programnya kita harus melakukan tahapan sbb:
§  Klik start → run lalu ketik cmd untuk membuka command prompt
§  Ketik perintah cd (change directory) untuk menuju direktori tempat TanpaException.class berada
§  Ketik java TanpaException 50 untuk menjalankan program
class TanpaException {
public static void main (String [] args) {
int Nilai = Integer.parseInt (args[0]);
System.out.println("Nilai yang dimasukkan : " +Nilai);
}
}
Hasilnya sbb:


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");
}
}
}
Hasilnya sbb:

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:

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:


Itulah contoh-contoh program dari pembahasan tentang OverRiding, OverLoad dan Exception.
Semoga temen-temen semua bisa memahami dengan penjelasan yang saya berikan ya…….:)
Thank’s…… !!! JJJ

NB: Jika pada kode program tidak  ada kata void main, maka jika di eksekusi hasilnya tidak mempunyai nilai (value).

Tidak ada komentar:

Posting Komentar