Posted by : smkn1blitar Jumat, 09 Januari 2015

       Statement dalam source file ( file sumber ) pada umumnya dijalankan dari atas ke bawah dalam urutan kemunculan mereka. Control Flow Statement mampu memecah aliran eksekusi dengan menggunakan pengambilan keputusan (decision ) , perulangan ( loop ), dan percabangan atau yang dikenal degan istilahjump , sehingga memungkinkan program kita untuk dieksekusi secara kondisional dengan blok kode tertentu. Bagian ini menjelaskan statement pengambilan keputusan / decision statement (if-then, if-then-else, switch), statementperulangan / loop statement (for, while, do-while), dan jump statement (break, continue, return) yang didukung bahasa pemrograman Java.

a. If-then, if-then-else, dan switch statements ( decision statements )
1) If-then statement
       If-then statement adalah yang paling dasar dari semua control flow statements. Ini memberitahu program kita untuk menjalankan bagian tertentu dari kode hanya jika test tertentu bernilai true. Misalnya, class Bicycle dapat memungkinkan rem untuk mengurangi kecepatan sepeda itu hanya jika sepeda sudah bergerak. Contoh penerapannya adalah sebagai berikut padamethodeapplyBrakes :
void applyBrakes() {

    // the "if" clause: bicycle must be moving
    if (isMoving){
        // the "then" clause: decrease current speed
        currentSpeed--;
    }
}
       Jika test ini dievaluasi ke false (berarti bahwa sepeda tidak bergerak), kontrol akan melompat ke akhir statement if-then.
Dalam kasus ini, penggunaan braces ( { } ) bersifat opsional asalkan setelahklausa “then” hanya berisi satu statement.
void applyBrakes() {
    // same as above, but without braces
    if (isMoving)
        currentSpeed--;
}
       Menentukan kapan harus menghilangkan braces adalah masalah selera pribadi. Menghilangkan pemakaiannya dapat membuat kode lebih rapuh. Jika statement kedua kemudian ditambahkan ke klausa "then", kesalahan umum akan lupa untuk menambahkan brace baru yang diperlukan. Compilertidak dapat menangkap kesalahan ini, kita hanya akan menerima hasil yang tidak sesuai.
2)  If-then-else statements
       If-then-else statement menyediakan jalur sekunder eksekusi ketika sebuah klausa "if" dievaluasi ke false. Kita bisa menggunakan pernyataan if-then-else dalam metode applyBrakes untuk mengambil beberapa tindakan jika rem diterapkan saat sepeda tidak bergerak. Dalam hal ini, tindakannya adalah hanyauntuk mencetak pesan kesalahan yang menyatakan bahwa sepeda telah berhenti.

void applyBrakes() {
    if (isMoving) {
        currentSpeed--;
    } else {
        System.err.println("The bicycle has " + "already stopped!");
    }
}

       Sebagai contoh lain, program di bawah ini, IfElseDemo, memberikan grade yang didasarkan pada nilai skor test A untuk skor 90% atau lebih, B untuk skor80% atau lebih namun masih dibawah 90%, dan seterusnya.
class IfElseDemo {
    public static void main(String[] args) {
        int testscore = 76;
        char grade;
        if (testscore >= 90) {
            grade = 'A';
        } else if (testscore >= 80) {
            grade = 'B';
        } else if (testscore >= 70) {
            grade = 'C';
        } else if (testscore >= 60) {
            grade = 'D';
        } else {
            grade = 'F';
        }
        System.out.println("Grade = " + grade);
    }
}

Output dari program ini adalah:
    Grade = C
       Kita mungkin telah memperhatikan bahwa nilai testscore dapat memenuhi lebih dari satu expression dalam statement majemuk: 76> = 70 dan 76> = 60. Namun, setelah kondisi terpenuhi, statement yang tepat dijalankan (grade = 'C';) dan kondisi yang tersisa tidak dievaluasi.

3)  Switch Statement
       Berbeda dengan statement if-then dan if-then-else, switch statement dapat memiliki sejumlah jalur eksekusi yang memungkinkan. Switch dapat bekerja dengan tipe data byte, short, char, dan int. Ia juga mampu bekerja dengan tipe data enumerated, class String, dan beberapa class khusus yang membalut tipe data primitif tertentu ( char, byte, short, dan Integer ).
       Contoh kode berikut, class SwitchDemo, dideklarasikan sebuh tipe data int yang nilainya menyatakan bulan. Kode berikut menampilkan nama bulan tersebut, berdasarkan nilai dari month, dengan menggunakan pernyataan switch.

public class SwitchDemo {
    public static void main(String[] args) {

        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        System.out.println(monthString);
    }
}

Dalam hal ini, August akan dicetak ke output standard.
       Badan statement switch dikenal sebagai switch block. Sebuah statement di switch blok dapat diberi label dengan satu atau lebih case atau label default. Statement switch mengevaluasi expression, kemudian mengeksekusi semua statement yang mengikuti label case yang cocok.
       Kita juga bisa menampilkan nama bulan seperti kasus diatas dengan menggunakan statement if-then-else:
nt month = 8;

if (month == 1) {
    System.out.println("January");
} else if (month == 2) {
    System.out.println("February");
}
...  // dan seterusnya

       Memutuskan kapan penggunaan statement if-then-else atau statement switch didasarkan pada pembacaan dan expression bahwa statement tersebut bersifat pengujian. Sebuah statement if-then-else dapat menguji expression berdasarkan beberapa nilai atau kondisi, sedangkan pernyataan switch menguji expression yang  didasarkan hanya pada satu bilangan bulat, nilai enumerated, atau object String.
       Hal lain yang menarik adalah statement break. Setiap statement break mengakhiri lampiran pernyataan switch. Control Flow berlanjut dengan statement pertama setelah blok switch. Statement break diperlukan karena tanpa mereka, statement dalam blok switch mengalir melalui semua statement setelah label case yang di cocokkan secara berurutan, terlepas dari expression label case berikutnya, sampai statement break ditemui.

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog

Popular Post

Blogger templates

Diberdayakan oleh Blogger.

- Copyright © INFORMATION SYSTEM -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -