BAB 6
Class Dasar , Exception Heandling
Teori Class
Dasar
Dalam pemrograman, suatu string
adalah objek. Ada dua kelas string yang akan dibahas yaitu kelas String dan
kelas StringBuffer.
Kelas String
Kelas
String memodelkan deretan karakter. Kelas ini terdapat dalam java.lang.
Sesuai
dengan kuantitas constructornya, ada 7 cara untuk membuat objek String:
String(); //
cara1
String(String
value); // cara2
String(char
value[]); // cara3
String(byte
ascii[], int hibyte); // cara4
String(char
value[], int offset, int count); // cara5
String(byte
ascii[], int hibyte, int offset, int count); //cara6
String(StringBuffer
buffer); // cara7
Contoh
penggunaan Constructor tersebut :
String aString1
= new String(); // cara1
String aString2
= new String(”haii…”); // cara2
char aArray[] =
{’H’,’E’,’L’,’L’,’O’};
String aString3
= new String(aArray); // cara3
String aString4
= new String(aArray,0,4); // cara5
System.out.println(aString4);
// HELL
Ada 33 method yang digunakan untuk
melakukan 8 macam operasi pada kelas
String, yaitu :
1. int length;
2. char charAt(int index);
3. boolean startsWith(String prefix);
4. boolean startsWith(String prefix, int tooffset);
5. boolean endsWith(String suffix);
6. int indexOf(int i);
7. int indexOf(int i, int mulaiIndex);
8. int
indexOf(String str);
9. int indexOf(String str, int mulaiIndex);
10. int lastIndexOf(int i);
11. int lastIndexOf(int i, int mulaiIndex);
12. int lastIndexOf(String str);
13. int lastIndexOf(String str, int mulaiIndex);
14. String substring(int mulaiIndex);
15. String substring(int mulaiIndex, int sampaiIndex);
16. boolean equals(Object anObject);
17. boolean equalsIgnoreCase(String aString);
18. int compareTo(String str);
19. int compareTo(Object anObject);
20. String concat(String s);
21. String replace(char oldChar, char newChar);
22. String trim();
23. String toLowerCase();
24. String toUpperCase();
25. static String valueOf(Object anObject);
26. static String valueOf(char ch[]);
27. static String valueOf(char ch[], int
offset, int count);
28. static String valueOf(boolean b);
29. static String valueOf(char ch);
30. static String valueOf(int i);
31. static String valueOf(long l);
32. static String valueOf(float f);
33. static
String valueOf(double d);
Ada 8 operasi pada kelas String, yaitu :
1.
Membuat dan menginisialisasi String
String saran =
”Raihlah scjp”;
String saran =
new String(”Raihlah scjp”);
2.
Membaca character dalam String
int len =
saran.length(); // 12
char
ch = saran.charAt(3); // h
3.
Membandingkan dua String
String s1 = new
String(”abcd”);
String s2 = new
String(”abcdz”);
System.out.println(s1.equals(s2));
// true
System.out.println(s1.equalsIgnoreCase(”ABCFJ”);//true
System.out.println(s1.compareTo(s2);
hasilnya
0, jika s1 sama dengan s2
hasilnya
< 0, jika s1 < s2
hasilnya
> 0, jika s1 > s2
Catatan
:
Membandingkan
nilai-nilai di attribute int, long, float, dan double, harus
mengunakan
operator ==, namun operator ini tidak berlaku untuk objekobjek
milik
kelas String. Jika contoh di atas dilakukan s1==s2, maka
hasilnya
selalu
false.
4.
Mengubah character kecil menjadi capital
String s1 = new
String(”Raihlah scjp \n”);
String s2 =
s2.trim(); // Raihlah scjp (tanpa spasi)
System.out.println(s2.toLowerCase());
System.out.println(s2.toUpperCase());
5.
Concatenation dua String
String s1 = new
String(”Saya belajar j2se”);
String s2 = new
String(s1+ ” sendiri”);
String s3 = new
String(s2+ ” di rumah”);
System.out.println(s3);
6.
Mencari character dan substring
String aString =
new String(”Nilai objek milik kelas String”);
int index1 =
aString2.indexOf(’a’);
// index1 berisi
posisi ’a’
int index2 =
aString.indexOf(’a’,index1+1);
// index2 berisi
posisi kemunculan kedua huruf ’a’
int index3 =
aString.indexOf(”String”);
// index3 berisi
lokasi karakter ’S’ pada aString
int index4 =
aString.indexOf(”i”);
// index4 berisi
lokasi karakter i pada aString
boolean hasil1 =
aString.startWith(”Nilai”); // true
boolean hasil =
aString.endsWith(”String”); // true
7.
Mengambil suatu substring
String strAsli =
new String(”Saya belajar j2se”);
String strBaru1
= strAsli.substring(12);
// strBaru1
berisi string mulai index ke-12, ”j2se””
String strBaru2
= strAsli.substring(5,11);
// strBaru2
berisi string mulai index ke-5 sampai index ke-11
// isinya
”belajar”
8.
Menggantikan suatu character dalam String
String strBaru3
= strAsli.replace(’S’,’m’);
System.out.println(strBaru3);
//
“maya belajar j2se”
Teori Singkat Exception Heandling
Pendahuluan
Error
(kesalahan) dalam pemrograman dibagi dalam tiga katagori yaitu syntax
error (muncul saat kompilasi), run time error, dan logic
error (ketika output belum
sesuai
dengan yang diharapkan).
Exception digunakan sebagai sarana untuk melaporkan jenis kondisi
kesalahan
saat
program dijalankan, dan mengendalikannya agar run time error tersebut tidak
mengakibatkan eksekusi dihentikan
(statement setelahnya tetap dieksekusi).
Jenis-Jenis
Exception
Dalam
java, exception merupakan objek dari subkelas yang diturunkan dari
kelas
Throwable. Kelas Throwable ini
terdapat dalam package java.lang.object.
Kelas
ini mengandung dua sub kelas berikut :
a. Kelompok
Kelas Error
Error
ini bersifat fatal sehingga sistem tidak dapat dimanipulasi, contoh kelas:
LinkageError, VirtualMachineError, dan AWTError.
b. Kelompok
Kelas Exception
Jenis
error ini masih dapat diantisipasi dengan menyisipkan statement tambahan
untuk
mendeteksi statement penyebab dan jenisnya.
Ada
kelompok RuntimeException
yang diperiksa oleh interpreter, apakah
akan
ditangani
atau dilempar, namun ada pula exception yang tidak diperiksa interpreter.
Disamping
itu programmer dibolehkan membuat exception sendiri dengan cara
extends
atau implements kelas Exception.
Tabel Checked Exception
Exception Deskripsi
1
ClassNotFoundException Kelas tidak ditemukan
2
CloneNotSupportedException
Melakukan clone objek yang tidak
mengimplementasikan
interface Cloneable
3
IllegalAccessException Pengaksesan
ke kelas ditolak
4
InstantiationException
Menciptakan objek dari kelas abtract ataupun dari
interface
5
InterruptedException
Thread telah diinterupsi oleh thread lain
6
NoSuchFieldException
Field yang diminta tidak ada
7 NoSuchMethodException Method yang diminta tidak ada
Tabel Uncheked Exception
Exception Deskripsi
1
AritmaticException Kesalahan Aritmatik seperti pembagian dengan nol
2
ArrayIndexOutBoundsException
Index
array di luar batas
3
ArrayStoreException
Pemberian nilai ke elemen array tidak sesuai dengan tipenya
4
ClassCastException
Cast yang tidak sah
5
IllegalArgumentException
Argument illegal
6
IllegalMonitorStateException
Operasi monitor illegal seperti menunggu di thread yang tidak
terkunci
7
IllegalStateException
Lingkungan atau aplikasi state yang tidak benar
8
IllegalThreadStateException
Operasi yang diminta tidak kompatibel dengan state thread saat
itu
9
IndexOutOfBoundException
Indeks di luar batas
10
NegativeArraySizeException
Array diciptakan dengan ukuran negatif
11
NullPointerException
Penggunan null yang tidak sah
12
NumberFormatException
Konversi yang tidak sah dari string ke format numerik
13
SecurityException
Melanggar aturan security
14
StringIndexOutOfBounds Index di luar batas string
15
UnsupportedOperationException Ditemukan
operasi yang tidak didukung
Mengantisipasi Exception
Diperlukan
tiga langkah berikut ini untuk mengantisipasi exception :
a.
Mendeklarasikan Exception
Bentuk
umum :
[modifier]
returntype namaMethod() throws tipeException{
}
Contoh
:
public void
operasiMatematika() throws IOException,
ClassNotFoundException
{
}
public void
beriPinjaman() throws TolakException{
}
Menampilkan Pesan Exception
Beberapa
method standard yang dapat digunakan untuk menampilkan pesan
exception
merupakan anggota dari kelas java.lang.Throwable.
Method
Pesan Exception Deskripsi
1
getMessage()
Mengembalikan nilai string yang berisi
pesan
rinci tentang objek Throwable yang
mengalami
exception
2
toString() Mengembalikan nilai string yang berisi
pesan singkat tentang objek yang mengalami
exception
3
getLocalizedMessage()
Menampilkan
pesan exception lokal (yang terjadi pada subkelas saja)
4
printStackTrace()
Method ini bersifat void, dan hanya mencetak informasi tentang
objek Throwable
Program Exception pada Java .
package
exception_java;
import
java.util.Scanner;
public
class Main
{
public static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
byte password;
try
{
System.out.println("Internet
Stikom Banyuwangi");
System.out.print("Password
:");
password = input.nextByte();
}
catch(Exception e)
{
System.out.println("Password
Anda salah...");
}
}
}
Program Exception pada C++ .
using
namespace std;
int
main(int argc, char *argv[])
{
try
{
int password;
cout<<"Internet Stikom
Banyuwangi"<<endl;
cout<<"Password : ";
if(!(cin>>password))
{
throw password ;
}
}
catch(int a)
{
cout<<"Password Anda
Salah.."<<endl;
}
cout<<endl;
return 0;
}
Program Exception pada C-Sharp .
using System;
namespace exception
{
class Program
{
public static void Main(string[] args)
{
byte nme;
try
{
Console.WriteLine("Internet Stikom
Banyuwangi");
Console.Write("Password :
");
nme = Convert.ToByte(Console.ReadLine());
}
catch(Exception)
{
Console.WriteLine("Password
salah..");
Console.WriteLine();
}
Console.Write("Press any key to
continue . . . ");
Console.ReadKey(true);
}
}
}