Anda di halaman 1dari 8

Java Flow Controls

Tujuan pembelajaran pada bab ini untuk mengetahui penggunaan bentuk-bentuk dari kendali
proses dalam java dan dapat mengetahui perbedaan penulisan sintak kendali proses. Sub pokok
bahasan meliputi Looping Statement (for, while dan do-while).
Struktur Kontrol Pengulangan (for, while, do-while)
Struktur kontrol pengulangan digunakan untuk mengendalikan proses yang terjadi secara
berulang-ulang.
for, digunakan untuk mengendalikan proses berulang dengan jumlah perulangan yang sudah
ditentukan sebelumnya. Pernyataan perulangan for akan menjalankan sekumpulan pernyataan-
pernyataan, dan kemudian mengulanginya lagi selama persyarataan terpenuhi. Bentuk ekspresi
for yaitu,

for (InitializationExpression; LoopCondition; StepExpression){

statement1;

statement2;

. . .

dimana:
- InitializationExpression, merupakan inisialisasi dari variabel loop.
- LoopCondition, merupakan kondisi membandingkan variabel loop dengan nilai batas.
- StepExpression, merupakan update pada variabel loop.

Contoh:
int i;
for( i = 0; i < 10; i++ ){
System.out.print(i);
}

while, merupakan pernyataan perulangan while akan menguji sebuah persyaratan dan
kemudian menjalankan sekumpulan pernyataan jika persyaratan terpenuhi. Usai menjalankan
kumpulan pernyataan, persyaratan akan diuji kembali, dan jika terpenuhi kumpulan peryantaan
akan dijalankan kembali, demikian seterusnya. Bentuk ekspresi while yaitu,
while( boolean_expression ){ Contoh:

statement1; int i = 4;
while ( i > 0 ){
statement2;
System.out.print(i);
. . .
i--;
}
}

do-while, merupakan pernyataan perulangan do-while setidaknya akan menjalankan


kumpulan pernyataan-pernyataan sebanyak satu kali, untuk kemudian menguji apakah
persyaratan terpenuhi. Jika persyaratan terpenuhi maka kumpulan pernyataan-pernyataan
dijalankan lagi, dan kemudian menguji kembali apakah persyaratan terpenuhi. Demikian
seterusnya, kumpulan pernyataan-pernyataan akan dijalankan berulang selama persyaratan
terpenuhi. Bentuk ekspresi do-while yaitu,
Contoh:
do{ do{
statement1; System.out.println(“hello”);
statement2;
} while (true);
. . .

}while( boolean_expression );

Statement Percabangan (break, continue, return)


statement pencabangan digunakan untuk mengatur redirection dari program.
• break, statement yang digunakan untuk mengatur jalannya eksekusi program.
• continue, statement yang digunakan untuk melewati bagian pengulangan pada loop.
• return, statement yang digunakan untuk keluar dari sebuah fungsi (method). Statement
return memiliki dua bentuk yaitu:
a. Memberikan nilai, untuk memberikan sebuah nilai, cukup berikan nilai (atau ekspresi
yang menghasilkan sebuah nilai) sesudah return.
Contoh:
return ++count;
atau
return "Hello";
b. Tidak memberikan nilai, yaitu ketika sebuah method void dideklariskan.
Contoh:
return;

Uji Coba:
Uji coba struktur kontrol pengulangan for,

public class LatFor


{
public static void main(String args[])
{
int bilangan = 5;

int hasil = 1;
for(int i=2;i<=bilangan;i++)
{
System.out.print(hasil + " * " + i + " = ");
hasil *= i;
System.out.println(hasil);
}
System.out.println( bilangan + " != " + hasil);
}

Uji Coba:
Uji coba struktur kontrol pengulangan while,

public class LatWhile


{
public static void main(String args[])
{
int bilangan = 5;
int x = 2;
int hasil = 1;

while(x<=bilangan)
{
System.out.print(hasil + " * " + x + " = ");
hasil = hasil*x;
System.out.println(hasil);
Uji Coba-5: x++;
}
System.out.println( bilangan + " != " + hasil);
}
}
Uji coba struktur kontrol pengulangan do-while,
public class LatDoWhile
{
public static void main(String args[])
{
int bilangan = 5;
int x = 2;
int hasil = 1;

do
{
System.out.print(hasil + " * " + x + " = ");
hasil = hasil*x;
System.out.println(hasil);
x++;
}
while(x<=bilangan);
System.out.println( bilangan + " != " + hasil);
}
}

Uji Coba:
Uji coba struktur kontrol percabangan break,
public class Latbreak {
public static void main(String[] args) {
String nama[] = {"seftin", "vega", "farah", "nabila”};
String cari = "farah";
boolean ketemu = false;

for( int i=0; i< nama.length; i++ ){


if( nama[i].equals( cari )){
ketemu = true;
break;}
}
if( foundName ){
System.out.println( cari + " Data Ada Dalam List!" );}
else{
System.out.println( cari + " Data Tidak Ada..." );}
}
}
Uji Coba:
Uji coba struktur kontrol percabangan continue,
public class Latcontinuous {
public static void main(String[] args) {
String nama[] = {"seftin", "vega", "farah", "nabila”};
int count = 0;
for( int i=0; i<nama.length; i++ ){
if( !names[i].equals("nabila") ){
continue; //skip next statement
}
count++;}
System.out.println("data ada" + count + " dalam list");
}
}
Studi Kasus 1:
Sebagai programmer Java, anda diminta untuk mengimplementasikan program Pembuatan
Nota untuk sebuah toko komputer. Program tersebut dapat melakukan pencatatan item-item
yang dipesan oleh Pembeli. Program dapat menerima input dari pengguna secara berulang-
ulang sampai pengguna melakukan pemberhentian untuk input data. Gunakan JOptionPane,
BufferedReader, atau Scanner (Pilih salah satu) sebagai input datanya. Adapun data yang
dicatat adalah banyaknya pemesanan untuk setiap item, nama barang, dan harga satuan.
Gambaran dari pencatatannya adalah sebagai berikut:
Item ke: Banyaknya Nama Barang Harga Satuan Sub Total
1 3 Mouse Logitech 150000 450000
2 2 Keyboard Sturdy 95000 190000
Total Harga 640000

Pembahasan:
public class PembuatanNota {
public static void main(String[] args) {
int count = 1;
int banyaknya, hargaSatuan, hargaTotal = 0;
int loop;
String namaBarang;
while (true) {
JOptionPane.showMessageDialog(null, "Item ke " + count);
namaBarang = JOptionPane.showInputDialog("Nama Barang: ");
banyaknya =
Integer.parseInt(JOptionPane.showInputDialog("Banyaknya
: "));
hargaSatuan = Integer.parseInt(JOptionPane.showInputDialog("Harga
Satuan: "));
loop = JOptionPane.showConfirmDialog(null, "Input Lagi? ",
"Konfirmasi", 1);
System.out.println(banyaknya+
"\t"+namaBarang+"\t\t"+(hargaSatuan*banyaknya));
hargaTotal=hargaTotal+(banyaknya*hargaSatuan);
count++;
if (loop != 0) {
break;
}
}
System.out.println("===========================================");
System.out.println("Total Harga: \t\t" + hargaTotal);
}
}
Studi Kasus 2
Pada studi kasus yang sama pada nomor 1, Anda diminta untuk membuat program yang dapat
melakukan rekapitulasi Pembeli dalam periode tertentu. Gunakan nested loop dengan
gambaran dari rekapitulasi tersebut adalah sebagai berikut:

Pembeli ke- Nama Item Banyak Harga


Nama Item Sub Total
Pembeli Ke: nya Satuan
1 1 Mouse
Andi 2 150000 300000
Logitech
2 Keyboard
1 95000 95000
Sturdy
2 Roni 1 Laptop HP 1 4500000 4500000
3 1 Headset
Rini 2 90000 180000
Wireless 888
Total Pemasukan 5075000

Pembahasan:

public class RekapitulasiPembelian {


public static void main(String[] args) {
int i = 1, j;
int innerLoop, outerLoop;
int banyaknya, hargaSatuan, hargaTotal, totalPemasukan;
String namaPembeli, namaBarang;

totalPemasukan=0;
while (true) {
namaPembeli = JOptionPane.showInputDialog("Masukkan Nama Pembeli ke "
+ i);
j = 1;
hargaTotal=0;
System.out.println("Nama Pembeli: " + namaPembeli);
while (true) {
namaBarang = JOptionPane.showInputDialog("Nama Item ke : " + j);
banyaknya =
Integer.parseInt(JOptionPane.showInputDialog("Banyaknya
: "));
hargaSatuan = Integer.parseInt(JOptionPane.showInputDialog("Harga
Satuan: "));
innerLoop = JOptionPane.showConfirmDialog(null, "Input Item Lagi?
", "Konfirmasi", 1);
System.out.println(banyaknya + "\t" + namaBarang + "\t\t" +
hargaSatuan + "\t\t" + (hargaSatuan *
banyaknya));
hargaTotal = hargaTotal + (banyaknya * hargaSatuan);
j++;
if (innerLoop != 0) {
break;
}
}
totalPemasukan = totalPemasukan + hargaTotal;
System.out.println("===============================");
System.out.println("Total Harga: \t\t" + hargaTotal);
System.out.println("\n\n");
outerLoop = JOptionPane.showConfirmDialog(null, "Input Pembeli Lagi?
", "Konfirmasi", 1);
if (outerLoop != 0) {
break;
}
i++;
}
System.out.println("=====================================");
System.out.println("Total Pemasukan: \t\t" + totalPemasukan);
}
}

Anda mungkin juga menyukai