Banner Java

Perulangan do-while

Perulangan do-while merupakan variasi dari perulangan while. Adapun sintaksis penulisan perulangan do-while adalah sebagai berikut:

do {
   // loop body
   pernyataan;
} while (ekspresiboolean);
pernyataan berikutnya;

Di perulangan while, program akan mengevaluasi ekspresiboolean di permulaan perulangan while sebelum mengeksekusi pernyataan atau blok pernyataan dari perulangan while. Jika hasil evaluasi ekspresiboolean bernilai boolean false, maka pernyataan atau blok pernyatan perulangan while tidak dieksekusi. Untuk perulangan do-while, proses evaluasi ekspresiboolean dilakukan setelah terlebih dahulu mengeksekusi pernyataan atau blok pernyataan. Di dalam perulangan do-while, pernyataan atau blok pernyataan akan dieksekusi minimal satu kali. Ketika perulangan do-while berakhir, eksekusi program akan menuju ke pernyataan berikutnya setelah klausa while.

Penggunaan braces di perulangan do-while sebenarnya tidak begitu diperlukan. Namun demikian, sebagian besar programer Java tetap menyertakan braces ini untuk menghindari kebingungan antara perulangan while dan do-while yang mempunyai hanya satu pernyataan untuk dieksekusi. Sebagai contoh, baris pertama perulangan while adalah sebagai berikut:

while (ekspresiboolean)

sedangkan perulangan do-while tanpa menggunakan braces dengan pernyataan tunggal akan nampak sebagai berikut:

do
   pernyataan;
while (ekspresiboolean);

Kedua bentuk pernyataan perulangan di atas akan membingungkan programer Java yang mungkin salah menginterpretasikan baris terakhir yaitu while (ekspresiboolean) sebagai perulangan while yang berisi pernyataan kosong. Untuk menghindari kebingungan yang mungkin timbul dan untuk membuat jelas antara perulangan while dan do-while di dalam kode program, perulangan do-while yang hanya mempunyai satu pernyataan, tetap ditulis dengan menggunakan braces.

do {
   pernyataan;
} while (ekspresiboolean);

Bagan alir perulangan do-while berikut ini menjelaskan bahwa ekspresiboolean tidak dievaluasi sebelum pernyataan atau blok pernyataan perulangan do-while dieksekusi minimal sekali. Hal ini dikarenakan proses evaluasi perulangan do-while berada di bawah pernyataan atau blok pernyataan yang dieksekusi.

Contoh berikut ini adalah program menghitung nilai rata-rata dengan cara menjumlahkan nilai yang diinput oleh pengguna aplikasi dan kemudian membagi jumlah tersebut dengan banyaknya nilai yang diinput. Program sedikit berbeda karena menggunakan sentinel value yaitu nilai 0 sebagai pertanda akhir proses penginputan nilai dan keluar dari perulangan do-while. Sentinel value merupakan nilai input khusus yang menandakan akhir dari proses input.

// Nama file : NilaiRata22
// Menampilkan nilai rata-rata siswa

// mengimpor Java predifined class
import javax.swing.JOptionPane;
import java.text.DecimalFormat;

// Deklarasi kelas NilaiRata22
public class NilaiRata22 {
   
   public static void main(String[] args) {
      
      int data;
      int perulangan = 0, jumlah = 0;
      double rata2;
  
      // Input data sampai nilai input 0
      do {
         
         // input data selanjutnya  
         String strData = JOptionPane.showInputDialog(null,
            "Masukkan nilai siswa (integer)" +
            "\nInput program berakhir jika nilai input 0", "Nilai Siswa",
            JOptionPane.QUESTION_MESSAGE);

         data = Integer.parseInt(strData);
         jumlah += data;
         if (data != 0)
            perulangan += 1;
      } while (data != 0);

      // Membuat obyek dari kelas DecimalFormat
      DecimalFormat duaAngka = new DecimalFormat("0.00");

      rata2 = (double) jumlah / perulangan;

      // Menampilkan hasil
      JOptionPane.showMessageDialog(null, "Jumlah nilai dinput : " + perulangan +
         "\nTotal nilai diinput : " + jumlah + "\nNilai rata-rata : " +
         duaAngka.format(rata2), "Nilai Rata-rata", JOptionPane.INFORMATION_MESSAGE);

      // Mengakhiri program GUI
      System.exit(0);
   }
}

Baca artikel terkait lainnya:

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.