Monday, October 15, 2007

Statement - statetement control Flow

Java menyediakan statement-statement control flow sebagai berikut :

Jenis statement

Keyword

Looping

while, do-while, for

Decision making

if…else if… else…, switch-case

Exception handling

try-catch-finally, throw, throws

Branching

break, continue, return, label:


Syntax-syntax dasar untuk statement-statement control flow pada Java adalah sbb :

while (kondisi) {

}

do {

} while (kondisi)

for ([inisialisasi]; [terminator]; [pertambahan]) {

}

dengan inisialisasi adalah kondisi awal loop, terminator adalah kondisi berhenti loop (diuji di awal loop), dan pertambahan adalah nilai increment/decrement counter tiap loop. Ketiga komponen ini bersifat optional.

if (kondisi1) {

}

//else if bersifat optional

[else if (kondisi2) {

}]

else {

}

switch (variabel) {

case nilai1 : {

….

[break];

}

case nilai2 : {

….

[break];

}

… //case nilai-nilai lain

default : {

….

[break];

}

}

Statement switch-case melakukan percabangan berdasarkan suatu variabel integer atau character, bukan berdasarkan ekspresi kondisi. Keyword break sebenarnya bersifat optional, karena hanya merupakan pembatas antar case. Tanpa break, statemen yang sama untuk nilai case yang berbeda tidak perlu ditulis ulang.

try {

} catch (exception_type exception_name) {

….

}

[catch (exception_type exception_name) {

….

}]

finally {

….

}

Java menyediakan suatu mekanisme yang dikenal sebagai exception untuk menangani error. Jika saat runtime ditemui error, maka program “melemparkan” exception, sehingga program diinterupsi dan mencari exception handler (mekanisme penangan error). Statemen control flow try-catch-finally digunakan untuk menangani exception ini. Fungsi masing-masing komponen control flow ini adalah :

ü try : mengidentifikasi blok pernyataan dimana exception mungkin diperoleh

ü catch : mengidentifikasi exception tertentu dan apa yang harus dilakukan untuk menanganinya.

ü finally : mengidentifikasi blok pernyataan yang dieksekusi, baik ada exception atau tidak.

Statemen break dan continue dapat dibagi menjadi dua macam, yaitu tanpa label dan dengan label (label pada java ditandai dengan syntax Nama_label : ….). Fungsi break adalah untuk menghentikan eksekusi sebuah blok program, misalnya untuk memaksa keluar dari sebuah loop. Keyword continue digunakan untuk melewatkan sisa statemen pada iterasi loop yang sedang dijalankan, dan melanjutkan sisa loop. Statemen return digunakan untuk mengakhiri method yang sedang berlangsung. Statemen return dapat dibagi dua, yaitu return yang mengembalikan nilai ke method dan return yang tidak mengembalikan nilai.

Program 4 – myControlFlow.java

import java.io.*;

class MyControlFlow

{

public static void main (String[] args)

{

try

{

BufferedReader variables = new BufferedReader(new InputStreamReader(System.in));

int op1, op2;

System.out.print("Masukkan nilai operand 1 : ");

op1 = (new Integer(variables.readLine())).intValue();

System.out.print("Masukkan nilai operand 2 : ");

op2 = (new Integer(variables.readLine())).intValue();

//Cek apakah op1 > / < / == op2

if (op1 > op2)

{

System.out.print("Operand 1 (" + op1 + ") ");

System.out.println("lebih besar dari operand 2 (" + op2 + ")");

}

else if (op1 <>

{

System.out.print("Operand 1 (" + op1 + ") ");

System.out.println("lebih kecil dari operand 2 (" + op2 + ")");

}

else

{

System.out.print("Operand 1 (" + op1 + ") ");

System.out.println("sama dengan dari operand 2 (" + op2 + ")");

}

} catch(IOException IOE)

{

System.err.println("Kesalahan IO");

}

catch(NumberFormatException NFE)

{

System.err.println("Angka, bukan huruf!");

}

}

}

Program 5 – myControlFlow2.java

import java.io.*;

class MyControlFlow2

{

public static void main(String args[])

{

if (args.length != 1)

{

System.err.print("Cara pemakaian : ");

System.err.println("$ java myControlFlow2 ");

System.exit(1);

}

String str1 = args[0];

int idx = 0;

for (int i = 0; i <>

{

System.out.println(i + " " + str1);

}

System.out.println("\n");

do

{

System.out.println("Karakter ke-" + idx + " : " + str1.charAt(idx));

idx++;

} while (idx <>

}

}

No comments: