Kepada pengunjung Yang Terhormat

Saya harap anda bahagia dengan postingan di Blog ini. anda senang,saya Melayang

Sunday, 24 January 2021

Flow Control pada bahasa pemrograman java das7d5a54

 

Flow Control pada bahasa pemrograman java das7d5a54

Kontrol terhadap aliran eksekusi aplikasi adalah salah satu feature utama dari sebuah bahasa pemrograman.  Java  menyediakan  beberapa  cara  untuk  melakukan  kontrol  aliran  eksekusi aplikasi. if dan switch adalah dua jenis yang paling sering digunakan, selain itu ada mekanisme exception  yang  bisa  mempengaruhi  aliran  eksekusi  program. 

 

If

Statement  if digunakan  dalam  aplikasi  untuk mengatur  aliran  eksekusi  program  berdasarkan kondisi tertentu. Sintaks dasarnya adalah sebagi berikut :

int x = 10;

if(x == 10 ) {

  System.out.println("lakukan sesuatu di sini kalau kondisi di dalam if bernilai

true");

}

Kode di dalam kurung kurawal buka dan tutup akan dieksekusi kalau kondisi di dalam statement if bernilai true. Statement if bisa digabungkan dengan else, kode di dalam else akan dieksekusi kalau kondisi di dalam if bernilai false, contohnya :

int x = 11;

if(x == 10 ) {

  System.out.println("lakukan sesuatu di sini kalau kondisi di dalam if bernilai

true");

} else {

  System.out.println("lakukan sesuatu di sini kalau kondisi di dalam if bernilai

false");

}

Ada juga bentuk else if yang dirangkai untuk mengetes beberapa kondisi, seperti di bawah ini

int nilai = 78;

if(nilai < 40 ) {

  System.out.println("nilai < 40 =  D");

} else if (nilai >= 40 && nilai < 60) {

  System.out.println("nilai >= 40 && nilai < 60 = C");

} else if (nilai >= 60 && nilai < 70) {

  System.out.println("nilai >= 60 && nilai < 80 = B");

} else if (nilai >= 80 && nilai < 100) {

  System.out.println("nilai >= 80 && nilai <=100 = A");

} else {

  System.out.println("range nilai harus antara 0 - 100");

}

Tanda kurung kurawal tidak diperlukan kalau blok kode yang dieksekusi di dalam if hanya satu baris saja, tetapi praktek ini tidak dianjurkan karena menimbulkan kebingungan, misalnya :

int x = 0;

if(x >= 0)

  System.out.println("nilai positif");

Perhatikan  bahwa  kalau  if  tidak  diikuti  dengan  tanda  kurung  kurawal  maka  yang  dianggap sebagai  blok kode di dalam if adalah  satu statement tepat di setelah  if,  kalau  ada beberapa  statement setelah if, maka sisanya tidak dianggap bagian dari blok kode if. Contohnya :

int x = 0;

if(x >= 0)

  System.out.println("nilai positif");

  System.out.println("selalu dieksekusi. Bukan bagian dari blok kode if");

Kalau kode di atas dieksekusi, println kedua akan selalu dieksekusi apapun nilai kondisi di dalam if, hal ini karena println kedua bukan bagian dari blok kode untuk if.

 

Switch

Switch  biasanya  digunakan  kalau  kita  ingin  mengevaluasi  nilai  dari  sebuah  variabel  yang mempunyai banyak kemungkinan. Bentuk sintaks switch lebih singkat dan bersih dibanding kalau menggunakan if-else if-else. Hingga Java 6 switch hanya bisa digunakan kalau variabelnya bertipe angka atau enum. Berikut ini bentuk dasar dari switch :

int x = 10;

 

switch(x){

  case 1 :

    System.out.println("satu");

    break;

   case 2 :

     System.out.println("dua");

     break;

   default :

     System.out.println("bukan satu atau dua");

}

Dalam  switch  terdapat  konsep  yang  disebut  denga  fall-through,  konsep  ini  kalau  kita bayangkan  mirip  dengan  efek  domino,  kalau  kartu  pertama  rubuh  akan  menimpa  kartu berikutnya  menimpa kartu berikutnya lagi seterusnya hingga ada yang  menghentikan efek dominonya. Lihat kode di atas, terdapat keyword break yang digunakan untuk menghentikan fall-through. Kalau kita hilangkan break dari kode di atas, maka kalau ada satu kondisi dari case  yang  dipenuhi  maka  kode  di  dalam  case  di  bawahnya  akan  terus  dieksekusi  hingga ketemu break atau blok kode switch berakhir.  Agar memudahkan pemahaman tentang fall-through ini, coba buat kode seperti di bawah ini

dan coba eksekusi kodenya:

public class FallThrough{

  public static void main(String[] args){

    int x = 1;

    switch(x){

      case 1 :

        System.out.println("satu");

      case 2 :

        System.out.println("dua fall-through");

      case 3 :

        System.out.println("tiga fall-through");

      case 4 :

        System.out.println("empat fall-through");

      default :

  System.out.println("default fall-through");

    }

  }

}

Hasil eksekusinya :

$ javac FallThrough.java

$ java FallThrough

satu

dua fall-through

tiga fall-through

empat fall-through

default fall-through

$

Perhatikan  bahwa  setelah  kondisi  di  case  benar,  maka  semua  kode  di  dalam  case  akan dieksekusi hingga ketemu break atau blok kode switch berakhir. Kalau kita ubah sedikit kode di atas dengan meletakkan break di  dalam case 1 seperti di bawah ini :

public class FallThrough{

  public static void main(String[] args){

    int x = 1;

    switch(x){

      case 1 :

        System.out.println("satu");

        break; //stop fall-through dan keluar dari switch

 

 

      case 2 :

        System.out.println("dua fall-through");

      case 3 :

        System.out.println("tiga fall-through");

      case 4 :

        System.out.println("empat fall-through");

      default :

  System.out.println("default fall-through");

    }

  }

}

Maka hasil eksekusinya akan berbeda :

$ javac FallThrough.java

$ java FallThrough

satu

$

if dan switch adalah flow control yang digunakan kalau aplikasi berjalan dengan baik, artinya flow control oleh if dan switch digunakan untuk mengendalikan aliran eksekusi aplikasi kalau sema berjalan seperti yang dikehendaki. Java mempunyai cara untuk mengontrol aliran aplikasi kalau terjadi error di dalam aplikasi, namanya adalah exception. Kita bahas apa itu exception di bab berikutnya.

 

Exception

Aplikasi biasanya tidak pernah berjalan mulus 100% setiap waktu, justru banyak sekali kejadian dimana aplikasi mengalami kondisi yang tidak diinginkan, entah ada masalah dengan data yang tidak benar, input/output yang tiba-tiba terputus, koneksi ke database yang tidak lancar hingga error yang sengaja dibuat oleh user untuk mencari celah keamanan aplikasi. Kode yang ditulis untuk menghandle masalah dan membuat aplikasi tangguh dalam segala segala medan sangat penting perananya, bahkan menurut penelitian jumlahnya mencapai 80% dari total kode yang dibuat developer.

Mengingat pentingnya penanganan kesalahan, Java menyediakan feature penanganan kesalahan yang  elegan,  mudah  digunakan  dan   tepat  sasaran.  Feature  ini  disebut  dengan  exception handling, dengan feature ini kita tidak perlu mengetest hasil kembalian dari suatu fungsi untuk mengetahui apakah ada error apa tidak, dengan begitu pengecekan kesalahan bisa lebih elegan dan jelas.

Sintaks Exception

Keyword yang digunakan dalam exception handling ada tiga : try, catch, fnally, throw dan throws. Kita akan belajar bagaimana menggunakan try dan catch terlebih dahulu baru kemudian kita belajar tentang fnally. Contoh-contoh kode akan menggunakan beberapa class input/output untuk membaca fle, tidak perlu bingung bagaimana caranya menggunakan I/O, kita akan membahas I/O dalam satu bab tersediri,  yang penting  pahami dahulu  bagaimana sintaks exception handling serta best practicenyaSintaks penggunaan try dan catch adalah sebagai berikut ini :

try {

   //di sini adalah baris yang dilindungi oleh try,

   //letakkan kode yang potensial mengalami exception di sini

} catch(ClassException variabelException){

   //kalau terjadi exception lakukan sesuati

   //setidaknya lakukan logging

   //blok catch yang kosong bisa dikategorikan sebagai kode konyol dan mengerikan

   //pastikan ada kode untuk memberi keterangan tentang exception apa yang terjadi

} catch(ExceptionLain variabelException){  

 //idem

}

 

 

 

Kode di dalam try{} adalah kode yang melempar exception (throw), kalau kode di dalamnya berjalan normal dan tidak ada exception yang terjadi, eksekusi akan  sampai ke baris terakhir. Sebaliknya, kalau ada exception dengan tipe ClassException maka eksekusi akan loncat dalam blok catch pertama, kalau ada exception dengan tipe ExceptionLain maka eksekusi akan loncat ke dalam blok catch kedua.  Misalnya kita ingin membaca fle dari harddisk, kira-kira struktur kodenya akan seperti di bawah ini :

try{

  bukaFileDariHarddisk

  bacaFileBarisPerBaris

  tampilkanIsiFileKeConsole

} catch(IOException ex){

  tampilkanErrorDiLogDanConsole

}

Kalau kode untuk buka fle dari harddisk gagal, maka eksekusi langsung loncat ke catch, kode untuk baca baris dan menampilkan isi fle tidak akan dieksekusi. Dengan begitu, aplikasi tetap bisa berjalan dan tidak langsung keluar.  Sintaks exception berikutnya adalah try-catch-fnally. Ada tambahan satu blok kode lagi, yaitu fnally. Kalau kode di dalam try menimbulkan exception maka kode akan loncat ke dalam blok kode di catch, sedangkan kode di dalam fnally akan selalu dieksekusi baik exception terjadi di  dalam try atau tidak. Kode yang ada dalam fnally biasanya adalah kode untuk melepaskan resource, membersihkan variabel yang sudah tidak dipake lagi, bisa dibilang kode di fnally itu digunakan untuk bersih-bersih aplikasi agar tidak menggunakan resource yang sudah tidak diperlukan lagi. Sintaksnya adalah seperti di bawah ini :

 

try {

  //kode yang ada exception

} catch (ExceptionPertama ex){

  //handle exception dengan tipe ExceptionPertama

} catch (ExceptionKedua ex){

   //handle exception dengan tipe ExceptionKedua

} finally{

  //bersihkan resource yang dipakai, baik terjadi exception ataupun tidak

}

 

No comments:

Post a Comment

iklan popcash