Array dan Blok Eksepsi
ARRAY DAN BLOK EKSEPSI
Array
Array adalah sebuah container yang
berisi nilai dengan satu tipe data. Di Java, Anda dapat membuat berbagai array
dengan tipe data tertentu. Berbagai operasi dasar dapat Anda lakukan terhadap array
seperti menginisiasi array, mengakses nilai array, mencari
panjang array, dan menimpanya dengan nilai baru pada indeks tertentu.
public static void main (String[]
args){
int[] arr = {10,
20, 30, 40, 50};
System.out.println("Panjang array :
"+arr.length);
for (int i = 0; i < arr.length; i++){
System.out.println("elemen baris
ke ["+i+"] adalah "+arr[i]);
}
}
Output :
Panjang array : 5
elemen baris ke [0] adalah 10
elemen baris ke [1] adalah 20
elemen baris ke [2] adalah 30
elemen baris ke [3] adalah 40
elemen baris ke [4] adalah 50
Panjang array : 5
elemen baris ke [0] adalah 10
elemen baris ke [1] adalah 20
elemen baris ke [2] adalah 30
elemen baris ke [3] adalah 40
elemen baris ke [4] adalah 50
Array 2 Dimensi/ Array Multidimensi
Array 2 Dimensi atau bisa disebut
juga Array Multi Dimensi ,adalah versi lanjut dari Array biasa ,yang merupakan
sebuah deretan atau susunan , nama-nama variable (element), yang memiliki tipe data sama dalam struktur
list atau daftar, yang dapat diakses secara baris dan kolom, berdasarkan
element/indexnya.
Seperti halnya pada matriks di
pelajaran matematika,yang mungkin kalian pernah pelajari . Jika kita ingin
menggunakan Array 2 Dimensi ,kita bisa menggunakan simbol [ ] [ ] ,
saat kita menginisialisasi nilai yang ada pada variable. Sebagai contoh ,
kalian bisa melihat gambar dibawah , Contoh dari Array 2 Dimensi di bahasa
pemrograman Java.
public static void main (String[] args){
int[][] arr = {{10, 20, 30},{40, 50, 60},{70, 80, 90}};
int baris = 3;
int kolom = 3;
for (int i = 0; i < kolom; i++){
for (int j = 0; j < baris; j++){
System.out.println("elemen baris ke ["+i+"]["+j+"] adalah "+arr[i][j]);
}
}
}
int[][] arr = {{10, 20, 30},{40, 50, 60},{70, 80, 90}};
int baris = 3;
int kolom = 3;
for (int i = 0; i < kolom; i++){
for (int j = 0; j < baris; j++){
System.out.println("elemen baris ke ["+i+"]["+j+"] adalah "+arr[i][j]);
}
}
}
Output :
elemen baris ke [0][0] adalah 10
elemen baris ke [0][1] adalah 20
elemen baris ke [0][2] adalah 30
elemen baris ke [1][0] adalah 40
elemen baris ke [1][1] adalah 50
elemen baris ke [1][2] adalah 60
elemen baris ke [2][0] adalah 70
elemen baris ke [2][1] adalah 80
elemen baris ke [2][2] adalah 90
Eksepsi java
Keadaan tidak normal yang muncul pada suatu bagian
program pada saat dijalankan.Penanganan eksepsi di java membawa pengelolaan
kesalahan program saat dijalankan kedalam orientasi-objek. Eksepsi java adalah
objek yang menjelaskan suatu keadaan eksepsi yang muncul pada suatu bagian
program.
/*
Contoh disini saya akan membuat sebuah eror program
dengan array, dalam program saya inputkan array dengan jumlah baris 5 , tetapi
dalam looping pemanggilan array saya lakukan 8 kali, ketika pemanggilan array
tidak sesuai dengan jumlah array maka sistem akan terjadi error. ketika ada
error maka blok eksepsi akan bekerja.
*/
public static void main (String[] args){
int[] arr = {10,20,30,40,50};
int n = 8;
for (int i = 0; i < n; i++){
try{
System.out.println("Array index "+i+" = "+arr[i]);
}catch(Exception e){
System.out.println(e);
}
}
int n = 8;
for (int i = 0; i < n; i++){
try{
System.out.println("Array index "+i+" = "+arr[i]);
}catch(Exception e){
System.out.println(e);
}
}
}
Output :
Array index 0 = 10
Array index 1 = 20
Array index 2 = 30
Array index 3 = 40
Array index 4 = 50
java.lang.ArrayIndexOutOfBoundsException: 5
java.lang.ArrayIndexOutOfBoundsException: 6
java.lang.ArrayIndexOutOfBoundsException: 7
Array index 0 = 10
Array index 1 = 20
Array index 2 = 30
Array index 3 = 40
Array index 4 = 50
java.lang.ArrayIndexOutOfBoundsException: 5
java.lang.ArrayIndexOutOfBoundsException: 6
java.lang.ArrayIndexOutOfBoundsException: 7
Throw
Pernyataan throw digunakan untuk
secara eksplisit melemparkan suatu eksepsi. Pertama kita harus mendapatkan
penanganan dalam suatu instance
throwable, melalui suatu parameter kedalam bagian catch, atau
dengan membuatnya
menggunakan operator new. Aliraneksekusi akan segera terhenti setelah
pernyataan throw, dan pernyataanselanjutnya tidak akan dicapai. Blok try
terdekat akan diperiksa untuk melihat jika telah memiliki bagian catch
yang cocok dengan tipe instance Throwable. Jika tidak ditemukan yang
cocok, maka pengaturan dipindahkan ke pernyataan tersebut. Jika tidak, maka
blok pernyataan try selanjutnya
diperiksa, begitu seterusnya sampai penanganan eksepsi terluar
menghentikan program dan mencetak penelusuran semua tumpukan sampai
pernyataan throw.
/*
Contoh disini saya akan membuat sebuah eror program ,
dalam program saya inputan harus berupa angka genap , ketika inputan yang
dimasukan ganjil maka program akan mengenalinya sebagai error.
*/
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int angka;
System.out.println("Masukan angka genap saja");
try{
System.out.print("MAsukan angka: ");
angka = input.nextInt();
if(angka %2 != 0){
throw new Exception("Angka harus genap!");
}else{
System.out.println("Sesuai perintah");
}
}catch(Exception e){
e.printStackTrace();
}
}
Scanner input = new Scanner(System.in);
int angka;
System.out.println("Masukan angka genap saja");
try{
System.out.print("MAsukan angka: ");
angka = input.nextInt();
if(angka %2 != 0){
throw new Exception("Angka harus genap!");
}else{
System.out.println("Sesuai perintah");
}
}catch(Exception e){
e.printStackTrace();
}
}
Output :
Masukan angka genap saja
MAsukan angka: 3
MAsukan angka: 3
java.lang.Exception: Angka harus genap!
at x.main(x.java:25)
at x.main(x.java:25)
Throws
Kata kunci throws digunakan untuk
mengenali daftar eksepsi yang mungkin di-throw oleh suatu method. Jika tipe
eksepsinya adalah error, atau RuntimeException, atau suatu subclassnya, aturan
ini tidak berlaku, karena tidak diharapkan sebagai bagian normal dari kerja
program.
Jika suatu method secara eksplisit
men-throws suatu intans dari Exception atau subclassnya, diluar
RuntimeException, kita harus mendeklarasikan tipenya dengan pernyataan throws.
public class contohThrows {
public static void main(String[] args){
try{
kelas.kelasError();
}catch(Exception e){
e.printStackTrace();
}
}
}
class kelas{
static void kelasError() throws ClassNotFoundException{
System.out.println("ini class yang error!");
throw new ClassNotFoundException("class ditemukan");
}
}
public static void main(String[] args){
try{
kelas.kelasError();
}catch(Exception e){
e.printStackTrace();
}
}
}
class kelas{
static void kelasError() throws ClassNotFoundException{
System.out.println("ini class yang error!");
throw new ClassNotFoundException("class ditemukan");
}
}
Output :
ini class yang error!
java.lang.ClassNotFoundException: class ditemukan
at kelas.kelasError(trows.java:24)
java.lang.ClassNotFoundException: class ditemukan
at kelas.kelasError(trows.java:24)
at trows.main(trows.java:14)
Finally
Saat suatu eksepsi dilemparkan, alur
program dalam suatu method membuat jalur yang cenderung tidak linier melalui
method tersebut, melompati baris-baris tertentu, bahkan mungkin akan keluar
sebelum waktunya pada kasus dimana tidak ada bagian catch yang cocok.
Kadang-kadang perlu dipastikan bahwa bagian program yang diberikan akan
berjalan, tidak perduli eksepsi apa yang terjadi dan ditangkap. Kata kunci
finally dapat digunakan untuk menentukan bagian program seperti itu.
Setiap try membutuhkan
sekurang-kurangnya satu bagian catch atau finally yang cocok. Jika kita tidak
mendapatkan bagian catch yang cocok, maka bagian finally akan dieksekusi
sebelum akhir program, atau setiap kali suatu method akan kembali ke pemanggilnya,
melalui eksepsi yang tidak dapat ditangkap, atau melalui pernyataan return,
bagian finally akan dieksekusi sebelum kembali ke method kembali.
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int angka = 0;
System.out.println("Masukan angka genap saja");
try{
System.out.print("Masukan angka: ");
angka = input.nextInt();
if(angka %2 != 0){
throw new Exception("Angka harus genap!");
}else{
System.out.println("Sesuai perintah");
}
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("angka "+angka+" yang diproses dalam finally");
}
}
Scanner input = new Scanner(System.in);
int angka = 0;
System.out.println("Masukan angka genap saja");
try{
System.out.print("Masukan angka: ");
angka = input.nextInt();
if(angka %2 != 0){
throw new Exception("Angka harus genap!");
}else{
System.out.println("Sesuai perintah");
}
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("angka "+angka+" yang diproses dalam finally");
}
}
Output :
Masukan angka genap saja
Masukan angka: 5
angka 5 yang diproses dalam finally
java.lang.Exception: Angka harus genap!
at x.main(x.java:23)
Masukan angka: 5
angka 5 yang diproses dalam finally
java.lang.Exception: Angka harus genap!
at x.main(x.java:23)
Comments
Post a Comment