Indikator Pencapaian Kompetensi dan Tujuan Pembelajaran
IPK Pengetahuan
- Menjelaskan konsep error handling (penanganan kesalahan) dalam pemrograman aplikasi berorientasi obyek.
- Menjelaskan prosedur error handling (penanganan kesalahan)dalam pemrograman aplikasi berorientasi obyek.
- Menganalisis penanganan kesalahan (error handling) dalam pemrograman aplikasi berorientasi obyek.
- Menerapkan error handling (penanganan kesalahan)dalam pemrograman aplikasi berorientasi obyek.
- Merancang program aplikasi berorientasi obyek dengan penerapan error handling (penanganan kesalahan).
IPK Keterampilan
- Membuat kode program aplikasi berorientasi obyek yang menerapkan error handling (penanganan kesalahan).
- Menguji program aplikasi berorientasi obyek yang menerapkan error handling (penanganan kesalahan).
- Memperbaikipenanganan kesalahan(error handling) dalam program aplikasi berorientasi obyek.
- Memodifikasipenanganan kesalahan(error handling) dalam program aplikasi berorientasi obyek.
TujuanPembelajaran
Setelah melalui kegiatan diskusi, menggali informasi, presentasi dan tugas praktek diharapkan peserta didik akan dapat :- Siswa dapat Menjelaskan konsep penanganan error dalam PBO dengan benar.
- Siswa dapat Menjelaskan prosedur penanganan error dalam pemrograman aplikasi berorientasi obyek dengan baik.
- Menerapkan prosedur penanganan error dalam pemrograman aplikasi berorientasi obyek dengan baik
Materi Kegiatan Pembelajaran
Syntax Error, Runtime Error dan Logic Error
Syntax error
- Salah dalam menuliskan keyword Java
- Tidak menggunakan tanda kurung kurawal untuk pernyataan
- Tidak menggunakan tanda atau karakter yang sesuai, misalnya tidak menggunakan tanda ” “, untuk tipe data String.

Java mencoba untuk megisolasi error tersebut dengan cara menunjukkan baris dari kode dan terlebih dahulu karakter yang salah dalam baris tersebut.
Bagaimanapun juga, error belum tentu berada pada titik yang ditunjuk.
Kesalahan umum lainnya adalah dalam kapitalisasi, ejaan, penggunaan dari karakter khusus yang tidak benar, dan penghilangan dari pemberian tanda baca yang sebenarnya.
Runtime Error
Logic error
Logic error terjadi bila program berjalan dan tidak memberikan hasil seperti yang diinginkan.Misalnya anda membuat program konversi dari nilai centimeter ke nilai milimeter.
Runtime Error
Sebuah program yang berhasil dikompile belum tentu berhasil di jalankan. Inilah yang dinamakan Run time error, kesalahan ini tidak akan ditampilkan sampai kita menjalankan program tersebut. Hal ini bisa saja terjadi misalnya dikarenakan struktur yang di buat programmer tidak jelas atau mungkin tidak logis.
Exception Handling
1) Dasar Exception
Exception adalah
sebuah event yang menjalankan alur proses normal pada program. Event ini
biasanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program
kita berakhir tidak normal. Dalam bahasa java, ketika terjadi kesalahan,
otomatis akan dilemparkan sebuah objek yang disebut exception, yang kemudian dapat diproses lebih lanjut oleh method
yang siap menangani kesalahan tersebut.
Method tersebut dapat dipilih untuk menangani exception berdasarkan tipe tertentu.Exception dapat muncul tidak beraturan dalam suatu method, atau dapat juga dibuat secara menual dan nantinya melaporkan sejumlah keadaan kesalahan ke method yang memanggil.
2) Tipe-Tipe Exception
Beberapa exception
yang telah digunakan dalam begian-bagian terdahulu adalah ArithmeticException, FileNotFoundException, dan InputMisMatchException.
Masih banyak kelas
exception lain yang digunakan dalam java, antara lain NullPointerException,ClassNotFoundException,IOException,
RunTimeException, IndexOutOBoundsException, IllegalArgumentException
Kelas Throwable merupakan akar dari semua kelas exception.Semua kelas exception java mewarisi secara langsung atau tidak langsung dari Throwable. Kita bisa menciptakan kelas exception sendiri dengan cara mewarisi exception atau subclass exception.
Kelas-kelas exception dapat diklasifikasikan menjadi 3 tipe utama : error system, exception, dan exception runtime.
Error system dilempar oleh JVM dan direpresentasikan oleh kelas Error. Kelas error mendeskripsikan error internal. Error semacam ini jarang terjadi. Jika terjadi, kita dapat memberitahukan kepada user dan menghentikan program secara normal.
Kelas-kelas exception dapat diklasifikasikan menjadi 3 tipe utama : error system, exception, dan exception runtime.
Penanganan Exceptions
Untuk menangani exception dalam java, kita gunakan blok try-catch-throwthrows-finally. Apa yang kita lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini.
Bentuk umum dari blok try-catch-finally adalah :
Listing Program
try{
//tulis pernyataan yang dapat mengakibatkan
exception
//dalam blok ini
}
catch(
<exceptionType1><varName1> ){
//tulis aksi apa dari program Anda yang
dijalankan jika ada
//exception tipe tertentu terjadi
}
Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch. Kode dalam blok finally selalu di-eksekusi.
class ContohEksepsi1 {
public static void main(String[] args) {
int pembilang = 2;
int penyebut = 0;
try {
int hasil = pembilang/penyebut; // menimbulkan eksepsi
System.out.println("Hasil = " + hasil); // tidak dieksekusi
} catch (ArithmeticException ae) {
System.out.println("KESALAHAN: " +
"Terdapat pembagian dengan nol");
}
System.out.println("Statemen setelah blok try-catch");
}
}
class ContohEksepsi2 {
public static void main(String[] args) {
int pembilang = 2;
int penyebut = 0;
try {
int hasil = pembilang/penyebut; // SALAH
System.out.println("Hasil = " + hasil); // tidak dieksekusi
} catch (Exception e) {
System.out.println("KESALAHAN: " +
"Terdapat pembagian dengan nol");
}
System.out.println("Statemen setelah blok try-catch");
}
}
class ContohEksepsi3 {
public static void main(String[] args) {
int pembilang = 2;
int penyebut = 0;
try {
int hasil = pembilang/penyebut; // SALAH
System.out.println("Hasil = " + hasil); // tidak dieksekusi
} catch (Exception e) {
System.out.println(e.getMessage());
}
System.out.println("Statemen setelah blok try-catch");
}
}
class ContohEksepsi4 {
public static void main(String[] args) {
int pembilang = 2;
int penyebut = 0;
try {
int hasil = pembilang/penyebut; // SALAH
System.out.println("Hasil = " + hasil); // tidak dieksekusi
} catch (Exception e) {
e.printStackTrace(); // mencetak stack trace
}
System.out.println("Statemen setelah blok try-catch");
}
}
private static int i = 0;
public static void main(String[] args) {
while (true) {
try {
System.out.print("Pada saat i = " + i + ": ");
if (i++ == 0) {
throw new Exception(); // melempar eksepsi
}
System.out.println("Tidak terjadi eksepsi");
} catch (Exception e) {
System.out.println("Terdapat eksepsi");
} finally {
System.out.println("Statemen dalam blok finally\n");
if (i == 2) {
break; // pada saat i==2, pengulangan akan berhenti
}
}
}
}
}
/**
* @(#)RunTimeExceptionError.java
*
*
* @author
* @version 1.00 2019/9/10
*/
public class RuntimeExceptionTest {
public static void main(String[] args){
int i = Integer.parseInt("abc");
System.out.println("kode setelah exception");
}
}
Output yang muncul
--------------------Configuration:
<Default>--------------------
Exception in thread
"main" java.lang.NumberFormatException: For input string:
"abc"
at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at
java.lang.Integer.parseInt(Integer.java:615)
at
RuntimeExceptionTest.main(RuntimeExceptionTest.java:14)
Process completed.
Cara Menangkap Error
* @(#)RuntimeExceptionTestHandling.java
*
*
* @author
* @version 1.00 2019/9/10
*/
public class RuntimeExceptionTestHandling {
public static void main(String[] args){
int i = 0;
int k = 0;
try{
i = Integer.parseInt("50"); // mengkonversi string 50 menjadi angka integer 50 // perintahnya benar
k = Integer.parseInt("abcd"); // mengkonversi string abcd menjadi angka integer : tapi akan error
}
catch(NumberFormatException ex ) {
System.out.println("Disini ditampilkan pesan kesalahan ! : ");
System.out.println("============================ ");
ex.printStackTrace(); // menampilkan pesan kesalahan
}
System.out.println("kode setelah exception var i : "+i);
System.out.println("kode setelah exception var k : "+k);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class GetInputFromKeyboard {
public static void main(String[] args) {
//Create BufferedReader object from Standard input device.
//Standard input device is typically a keyborad.
BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );
//Prompt a user to enter his/her name
String name = "";
System.out.println("Please Enter Your Name:");
// Read data into name variable
name = dataIn.readLine(); }catch( IOException e ){
System.out.println("Error!");
} // Display the name System.out.println("Hello " + name +"!");
}
}
Tugas / Penilaian
Soal Error Handling.
- Dalam setiap pemrograman biasanya ada 3(tiga) jenis error, sebutkan dan jelaskan dua jenis kesalahan umum dalam PBO?
- Sebutkanlah istilah khusus di dalam penanganan error pada PBO ?
- Penanganan error dalam PBO dilakukan oleh suatu class. Sebutkan dan jelaskan class yang dimaksud tersebut ?
- Kelas Induk penanganan error mempunyai 3 (tiga) tipe kelas turunannya, sebutkan dan jelaskan ?
- Tuliskan block atau sintak umum penulisan penanganan error dalam format exception ?
A. Praktek
- Buatlah contoh penulisan penanganan error untuk eksepsi aritmatka.
- Buatlah contoh penulisan penanganan error untuk eksepsi catch (Exception e).
- Buatlah contoh penulisan penanganan error untuk eksepsi menampilkan pesan kesalahan (Exception e) dengan menampilkan e.getMessage()
- Buatlah contoh penulisan penanganan error untuk eksepsi menampilkan penelusuran kesalahan (e.printStackTrace())
- Buatlah contoh penulisan penanganan error melalui prosedur eksespsi finaly
Konsep penanganan kesalahan apa?
BalasHapusKesalahan sintak
HapusKesalahan tanda baca
Kesalahan logika pemrograman