Home » , » Konstruksi Do.. While pada program java

Konstruksi Do.. While pada program java

Posted by Kamar Pekick on Sunday 18 March 2018

Konstruksi do .. while pada java serupa dengan repeat until pada Pascal

do {

} while(logical expression)
logical expression: ekspresi yang hasilnya true atau false.
misalnya (i<10) atau lebih kompleks (berat>70 & tinggi<160)

contoh 1: tebak angka
Sekaligus memperkenalkan cara input dari keyboard dengan class Scanner
Program akan berhenti meminta input jika angka yang diketik 0 (nol) atau lebih besar dari 1000. Atau jika tebakan jitu

import java.util.Scanner;

public class TebakAngka {


static Scanner sc = new Scanner(System.in);


public static void main(String[] args) {

int angkaSembunyi = 1000;

int tebakan;


do {

System.out.print(“tebakan anda: “);

tebakan = sc.nextInt();

if (tebakan==angkaSembunyi)

{ System.out.println(“tebakan anda jitu !!! “);

break; // keluar dari loop

}

} while ((tebakan <= 0) || (tebakan > angkaSembunyi));

System.out.println(“trimzzz sudah menebak “);

}

}

contoh di atas masih belum aman karena jika input dari keyboard bukan angka, program akan error! Wanted!!!contoh yang ada pencegah run time error/exception

contoh satu lagi … dengan tambahan mengunakan sub-routine
Program berikut akan berulang-ulang meminta nilai angka dan dikonversi menjadi nilai huruf. Program akan berhenti jika input 0 atau > 100 (atau minus).

import java.util.Scanner;

public class KonversiNilaiAngka {


static char nilaiHuruf(int nilai)

{

char nhuruf;

if (nilai >= 90)

nhuruf = ‘A’;

else if (nilai >= 80)

nhuruf = ‘B’;

else if (nilai >= 70)

nhuruf = ‘C’;

else if (nilai >= 60)

nhuruf = ‘D’;

else

nhuruf = ‘E’;

return nhuruf;

}


public static void main(String[] args) {

int nilaiAngka;

char nh;


Scanner sc = new Scanner(System.in);


do {

System.out.print(“nilai : “);

nilaiAngka = sc.nextInt();

nh=nilaiHuruf(nilaiAngka); // nh menerima “return”

System.out.println(“Nilai : “+nilaiAngka+” “+nh);

} while ((nilaiAngka > 0) && (nilaiAngka <= 100));

System.out.println(” while loop selesai”);

}

}


contoh screen prosesnya

nilai : 45

Nilai : 45 E

nilai : 78

Nilai : 78 C

nilai : 95

Nilai : 95 A


catatan

while ((nilaiAngka > 0) && (nilaiAngka <= 100)); gaya C, C++

dan

while ((nilaiAngka > 0) & (nilaiAngka <= 100));

sama saja


supaya contoh hitung upah makin terang, kita coba lagi dengan do .. while


import javax.swing.*;


class HitungUpah

{

static String InputString(String s1)

{ return JOptionPane.showInputDialog(s1); }

static int InputInteger(String s1)

{

int i;

String x=JOptionPane.showInputDialog(s1);

try {

i=Integer.parseInt(x);

}

catch(Exception e){ i=100; }

return i;

}


public static void main(String[] args)

{

String nama;

int jam_kerja,jam_lembur,upah_per_jam,lembur_per_jam,gol,

upah,upah_lembur;

do

{

nama=InputString(“Karyawan”);

gol=InputInteger(“Golongan”);

if (gol==100) continue;

if(gol<1 | gol>5) break;

jam_kerja=InputInteger(“JamKerja”);

if (jam_kerja==100) continue;

if(jam_kerja > 40)

{ jam_lembur=jam_kerja-40;

jam_kerja=40; }

else

{jam_lembur=0;}

switch (gol) {

case 1 : upah_per_jam=2000; lembur_per_jam=3000; break;

case 2 : upah_per_jam=2500; lembur_per_jam=4000; break;

case 3 : upah_per_jam=3500; lembur_per_jam=5000; break;

case 4 : upah_per_jam=5000; lembur_per_jam=7000; break;

case 5 : upah_per_jam=7500; lembur_per_jam=9000; break;

default : upah_per_jam=0; lembur_per_jam=0; break;

}

upah=jam_kerja*upah_per_jam;

upah_lembur=jam_lembur*lembur_per_jam;

System.out.println(nama+”\t”+upah+”\t”+upah_lembur);

//

// silakan modifikasi tampilan data input dan hasil hitung

//

} while (gol<1000);

}

}


Why 1000?

yang membuat loop selesai adalah jika bilangan selain 1 s.d.5 diisi pada saat input golongan. Kalau while(gol<4), nanti pada setelah ada input golongan 5, loop selesai. while(gol>0) atau while(gol<6) akan berfungsi sama dengan while(gol<1000).

Thanks for reading & sharing Kamar Pekick

Previous
« Prev Post

0 komentar:

Post a Comment

Search Postingan

My Art Painting