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

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

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

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

Output :
Masukan angka genap saja
MAsukan angka: 3
java.lang.Exception: Angka harus genap!
        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");
    }
}

Output :

ini class yang error!
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");
    }
    }
 
  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)

Comments

Popular posts from this blog

Rangkuman Java : Membuat Tabel pada JAVA

Rangkuman JAVA : iReport

Rangkuman JAVA : Koneksi database SQL