Anda di halaman 1dari 28

1

Java Foundations
6-2:
loop while dan do-while

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
adalah merek dagang dari pemiliknya masing-masing.

2
Tujuan
• Pelajaran ini akan membahas tujuan berikut:
−Menggunakan loop while dalam program Java (prapengujian)
−Menggunakan loop do-while dalam program Java
(pascapengujian)
−Memahami bahwa satu tipe loop mungkin lebih
menguntungkan daripada yang lain

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 3
adalah merek dagang dari pemiliknya masing-masing.

3
Berapa Kali Harus Mengulang?
• Dalam beberapa situasi, Anda tidak tahu berapa kali
harus mengulangi sesuatu
• Artinya, Anda mungkin perlu mengulangi beberapa
kode hingga terjadi kondisi tertentu

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 4
adalah merek dagang dari pemiliknya masing-masing.

4
Berapa Kali Harus Mengulang?
• Mari kita lihat contohnya:
−Anggaplah Anda harus menulis program untuk memasukkan
nilai ujian dan menemukan rata-ratanya, tetapi Anda mungkin
tidak tahu berapa banyak ujian yang diperlukan
−Daripada memaksa pengguna menghitungnya lebih dulu,
Anda dapat memberi mereka kesempatan untuk
memasukkan satu nilai, kemudian memasukkan -1 untuk
menunjukkan entri sudah selesai

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 5
adalah merek dagang dari pemiliknya masing-masing.

5
Loop while
• Dalam situasi semacam itu, Anda harus menggunakan
loop while
• Fungsinya sama dengan ini:
−Loop while terus menjalankan blok pernyataan saat kondisi
tertentu true

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 6
adalah merek dagang dari pemiliknya masing-masing.

6
Sintaks Loop while
• Pernyataan while mengevaluasi ekspresi boolean
• Pernyataan dalam kurung kurawal dijalankan selama
ekspresi boolean true
while (<boolean expression>) {
<statement(s)> ;
}//end while

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 7
adalah merek dagang dari pemiliknya masing-masing.

7
Loop Prapengujian
• Loop prapengujian mengevaluasi kondisi sebelum loop
dijalankan
• Jika kondisi adalah false, loop akan berhenti, atau
mungkin tidak pernah dijalankan
• Loop for dan while, serta loop prapengujian

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 8
adalah merek dagang dari pemiliknya masing-masing.

8
Skenario Hitung Mundur
• Mari tulis skenario Hitung Mundur yang dibahas dalam
pelajaran sebelumnya dengan menggunakan loop
while:
Apa yang kita ketahui Nama Teknis Kode
Kapan loop dimulai … Ekspresi int i = 10;
Inisialisasi
Lanjutkan looping jika … Ekspresi Bersyarat i >= 0;
Setelah setiap loop … Ekspresi Pembaruan i--;
Kode untuk diulangi Pernyataan Kode System.out.println(i);

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 9
adalah merek dagang dari pemiliknya masing-masing.

9
Skenario Hitung Mundur: Loop while
public class CountDownWhile {

public static void main(String[] args) {


int i = 10;
System.out.println("Countdown to Launch!");

while (i >= 0) {
System.out.println(i);
i--;
}//end while

System.out.println("Blast Off!");
}//end method main
}//end class CountDownWhile

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 10
adalah merek dagang dari pemiliknya masing-masing.

10
Beberapa Loop while Tidak Pernah Dijalankan
• Mungkin saja isi loop tidak akan pernah dijalankan
• Jika kondisinya demikian, ekspresi boolean sudah false
• Contoh:
public class WhileLoopExample {
public static void main(String args[]) {
int num = 0;
System.out.println("Let's count to 10!");
while (num > 10) {
num = num + 1;
System.out.println("Number: " + num);
}//end while
System.out.println("We have counted to 10! Hurrah!");
}//end method main
}//end class WhileLoopExample

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 11
adalah merek dagang dari pemiliknya masing-masing.

Dalam contoh slide, nilai awal num adalah 0 dan ekspresi boolean adalah num > 10,
bukan num < 10.Ini sudah salah sejak awal, karena 0 tidak akan pernah lebih besar dari 10.
Loop while mengevaluasi ekspresi boolean, num > 10,menemukan bahwa ekspresi ini salah,
dan mencetak:

Let's count to 10!


We have counted to 10! Hurrah!

11
Terjebak dalam Loop Infinite
• Anda akan terjebak dalam loop while jika menulis
kondisi boolean yang tidak akan pernah dievaluasi ke
false
• Kami menyebut ini loop infinite karena tidak pernah
dijalankan
• Jika ini terjadi, loop Anda akan dijalankan selamanya
atau hingga Anda mengirim perintah interupsi
• Anda harus menghindari menulis loop infinite dan
selalu memverifikasi ekspresi boolean untuk
memastikan loop akan dihentikan seperti seharusnya

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 12
adalah merek dagang dari pemiliknya masing-masing.

12
Mari Kembali ke Skenario Hitung Mundur
• Bagaimana jika kita secara tidak sengaja menulis i++
dan bukan i-- dalam loop while?
int i = 10;
System.out.println("Countdown to Launch!");
while (i >= 0) {
System.out.println(i);
i++;
}//end while
System.out.println("Blast Off!");

• Loop ini akan terus menambahkan 1 sampai i,


menjaga nilainya lebih dari 10 selamanya
• Ini adalah loop inifinite karena kondisi Boolean selalu
true, dan program ini terus berjalan
Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 13
adalah merek dagang dari pemiliknya masing-masing.

13
Menggunakan Loop while dan Class Pemindai
• Loop while sering digunakan bersama input dengan
menggunakan class Pemindai
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int sum = 0;

System.out.println("Enter a number (-1 to quit): ");


int num = console.nextInt();
while (num != -1) {
sum = sum + num;
System.out.println("Enter a number (-1 to quit): ");
num = console.nextInt();
}//end while

System.out.println("The sum is " + sum);


}//end method main

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 14
adalah merek dagang dari pemiliknya masing-masing.

Lihat slide berikutnya untuk hasil dari kode ini.

14
Menggunakan Loop while dan Class Pemindai
• Contoh:
− Sebuah program yang menanyakan angka kepada pengguna hingga
pengguna mengetik -1, kemudian mengeluarkan penjumlahannya
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int sum = 0;

System.out.println("Enter a number (-1 to quit): ");


int num = console.nextInt();
while (num != -1) {
sum = sum + num;
System.out.println("Enter a number (-1 to quit): ");
num = console.nextInt();
}//end while

System.out.println("The sum is " + sum);


}//end method main

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 15
adalah merek dagang dari pemiliknya masing-masing.

Contoh slide menghasilkan output berikut:


Enter a number (-1 to quit):
20
Enter a number (-1 to quit):
40
Enter a number (-1 to quit):
-1
The sum is 60

15
Latihan 1
• Buat proyek baru dan tambahkan file
SquareRootWhile.java ke proyek
• Modifikasi SquareRootWhile.java agar
menggunakan loop while untuk berulang kali meminta
pengguna mengetikkan angka hingga pengguna
mengetik bilangan positif, kemudian mengomputasi
akar kuadratnya
• Output yang diharapkan: Type a non-negative integer: -5
Invalid number, try again: -1
Invalid number, try again: 11
The square root of 11 is 3.166

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 16
adalah merek dagang dari pemiliknya masing-masing.

16
Loop Pascapengujian:
• Loop pascapengujian mengevaluasi kondisinya di
bagian bawah loop, bukan di bagian atas
• Loop do-while merupakan loop pascapengujian

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 17
adalah merek dagang dari pemiliknya masing-masing.

17
Loop do-while
• Loop do-while merupakan loop while dimodifikasi yang
memungkinkan Anda menjalankan loop sekali,
sebelum menguji kondisi boolean
• Sintaks:
do{
<statement(s)>
}while(<condition>);

Loop do-while memerlukan titik koma setelah kondisi di akhir loop

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 18
adalah merek dagang dari pemiliknya masing-masing.

Jika kondisi adalah false, loop tetap akan dijalankan setidaknya satu kali, tetapi akan berhenti
pada akhir loop. Oleh karena itu, pernyataan dalam blok tugas selalu dijalankan setidaknya
sekali.

18
Skenario Hitung Mundur: Loop do-while
public static void main(String[] args) {

int i = 10;
System.out.println("Countdown to Launch!");

do {
System.out.println(i); Dijalankan sekali sebelum
i--; mengevaluasi kondisi
}while (i >= 0);

System.out.println("Blast Off!");
}//end method main

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 19
adalah merek dagang dari pemiliknya masing-masing.

Output:
Countdown to Launch!
10
9
8
7
6
5
4
3
2
1
0
Blast Off!

19
Latihan 2
• Tambahkan file SumofNums.java ke proyek yang
Anda buat untuk latihan 1
• Teliti SumofNums.java, yang menjumlahkan urutan
10 bilangan bulat yang dimasukkan oleh pengguna
• Dapatkah Anda menerapkan hal yang sama dengan
menggunakan loop do-while?

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 20
adalah merek dagang dari pemiliknya masing-masing.

20
Standar untuk Loop Dibandingkan dengan Loop While
• Perbedaan di antara dua loop ini:
• Dalam loop for:
− Pernyataan inisialisasi, kondisi, dan penambahan semuanya
digabungkan dalam satu baris, yang memudahkan loop
dipahami dan diterapkan

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 21
adalah merek dagang dari pemiliknya masing-masing.

21
Standar untuk Loop Dibandingkan dengan Loop While
• Perbedaan di antara dua loop ini:
• Dalam loop while:
−Inisialisasi dilakukan sebelum awal loop
−Pernyataan bersyarat selalu diletakkan di awal loop
−Pernyataan penambahan dapat digabungkan dengan kondisi
atau dimasukkan ke dalam isi loop

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 22
adalah merek dagang dari pemiliknya masing-masing.

Dalam tiga slide berikutnya, Anda melihat contoh loop while di bagian atas slide. Di bagian
bawah, Anda melihat logika yang sama yang diterapkan menggunakan loop for standar.
Tiga elemen penting loop while loop juga ada dalam hal loop for, tetapi di tempat yang
berbeda.
1. Penghitung (i) dinyatakan dan dimulai di luar loop while di baris 1.
2. Penghitung tersebut dinaikkan di loop while di garis 4.
3. Ekspresi boolean yang menentukan jumlah pengulangan loop dalam kurung untuk loop
while di baris 2.
Dalam loop for, ketiga elemen muncul dalam tanda kurung, seperti yang ditunjukkan pada
slide.
Output untuk setiap pernyataan sama.

22
Membandingkan Penghitung Inisialisasi
Loop while
int i = 10;
while (i >= 0) {
System.out.println(i);
i--;
}// //end while
System.out.println("Blast Off!");

Memulai
penghitung

Loop for
for (int i = 10; i >= 0; i--) {
System.out.println(i);
}//end for
System.out.println("Blast Off!");

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 23
adalah merek dagang dari pemiliknya masing-masing.

23
Membandingkan Ekspresi Boolean
Loop while
int i = 10;
while (i >= 0) {
System.out.println(i);
i--;
}//end while
System.out.println("Blast Off!");

ekspresi
boolean
Loop for
for (int i = 10; i >= 0; i--) {
System.out.println(i);
}//end for
System.out.println("Blast Off!");

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 24
adalah merek dagang dari pemiliknya masing-masing.

24
Membandingkan Penghitung Penambahan
Loop while
int i = 10;
while (i >= 0) {
System.out.println(i);
i--;
} //end while
System.out.println("Blast Off!");

Penghitungan
penambahan
Loop for
for (int i = 10; i >= 0; i--) {
System.out.println(i);
}//end for
System.out.println("Blast Off!");

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 25
adalah merek dagang dari pemiliknya masing-masing.

25
Loop Mana yang Saya Gunakan?
Jenis Loop Definisi Kapan Harus Menggunakan
Loop prapengujian yang diulangi Gunakan saat Anda tidak yakin mengenai
hingga kondisi yang ditentukan berapa kali loop harus dijalankan atau
while
false bahkan apakah loop memang harus
dijalankan
Loop pascapengujian loop yang Gunakan saat Anda tahu bahwa kode harus
menjalankan loop sebelum dijalankan sedikitnya sekali dan mungkin
do-while pengujian kondisi, lalu ulangi lebih, bergantung pada kondisi
hingga kondisi false

Loop yang berisi penghitung Gunakan bila Anda perlu menjalankan loop
awal, dan meningkatkan dalam jumlah tertentu, atau bila Anda perlu
penghitung setiap kali loop menambahkan melalui serangkaian data.
for dijalankan. Berulang hingga Penghitung juga dapat digunakan sebagai
kondisi adalah false indeks untuk mengakses item satu data
dalam satu waktu

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 26
adalah merek dagang dari pemiliknya masing-masing.

26
Rangkuman
• Dalam pelajaran ini, Anda seharusnya sudah belajar
cara:
−Menggunakan loop while dalam program Java (prapengujian)
−Menggunakan loop do-while dalam program Java
(pascapengujian)
−Memahami bahwa satu tipe loop mungkin lebih
menguntungkan daripada yang lain

Hak Cipta © 2022, Oracle dan/atau afiliasinya. Oracle, Java, dan MySQL adalah
JFo 6-2 merek dagang terdaftar dari Oracle dan/atau afiliasinya. Nama lain mungkin
loop while dan do-while 27
adalah merek dagang dari pemiliknya masing-masing.

27
28

Anda mungkin juga menyukai