menggunakan do .. while   7 comments

Posted at 9:35 pm in Uncategorized

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 skrensyut proses
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).

penjelasan program sudah ada di contoh sebelumnya.

untuk berbagi:
  • Facebook
  • MySpace
  • Print this article!
  • Digg
  • Turn this article into a PDF!
  • del.icio.us
  • Google Bookmarks
  • E-mail this story to a friend!
  • StumbleUpon
  • Technorati

Written by admin on May 2nd, 2009

7 partisipasi untuk 'menggunakan do .. while'

abonemen komentar via RSS or TrackBack to 'menggunakan do .. while'.

  1. klo return fungsinya bwt apa??

    [Reply]

    Syahrul Fadli

    3 May 09 at 1:26 am

  2. http://java.lyracc.com/belajar/java-untuk-pemula/tipe-keluaran

    tuh baca sendiri pembahasan na…bhs indo lhooo,
    ktimbang gw kasi yg bhs inggris malah mkin bingung dahh…


    kalau masih susah ngertinya… baca lagi, baca lagi, baca lagi, baca lagi, baca lagi, dan baca lagi plus coba lagi, coba lagi, dan coba lagi …..dijamin bisa ngerti ….. admin

    … masih dari admin

    
    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 skrensyut proses
    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

    [Reply]

    Rockes13

    3 May 09 at 5:10 am

  3. thank’s ya bosssssssss,blog kamu sangat membantu

    [Reply]

    ariz

    26 May 09 at 5:58 am

  4. kalo gabungin array ama looping gmn caranya y?
    buatn contoh dunk
    thx y

    [Reply]

    Rockes13 Reply:

    udh bnyak mass contoh” nya yg udh kami posting…silahkan mass cek di halaman Home kami,

    [Reply]

    nanda

    13 Aug 09 at 11:37 am

  5. gimana yaa cara ngukur running time pake java… help

    [Reply]

    Rockes13 Reply:

    running time utk apa yah…?? bisa tulung lebih diperjelas…mungkin mas bisa skalian kasi contoh Algoritma na…

    [Reply]

    bardin

    9 Sep 09 at 4:36 am

dah baca ikut nulis juga boss