C++ - Perulangan for, while, do-while, continue, dan break
By
Rachmat Santoso
—
Rabu, 05 April 2017
—
Cplusplus
C++ - Contoh ProgramPerulangan for, while, do-while, continue, dan break |
Ketika melakukan pemrograman, pada kondisi tertentu suatu blok kode perlu dijalankan beberapa kali. Sebagai contoh yang paling sederhana apabila kita ingin membuat string “Hello World!” sebanyak sepuluh kali. Cara pertama, kita bisa melakukannya dengan mengulang penulisan blok kode berkali-kali.
...
cout<<"Hello World!"<<endl;
cout<<"Hello World!"<<endl;
cout<<"Hello World!"<<endl;
cout<<"Hello World!"<<endl;
cout<<"Hello World!"<<endl;
cout<<"Hello World!"<<endl;
cout<<"Hello World!"<<endl;
cout<<"Hello World!"<<endl;
cout<<"Hello World!"<<endl;
cout<<"Hello World!"<<endl;
...
Namun ada cara kedua yang lebih sederhana, yaitu dengan
menggunakan perulangan atau juga biasa disebut “Looping”. Pada bahasan kali ini
akan dibahas tentang perulangan for, while, dan do-while. Dengan menggunakan
suatu perulangan ada beberapa keuntungan, salah satunya adalah menghindari
untuk menuliskan blok kode berulang kali yang seharusnya bisa disederhanakan/disingkat
dengan menggunakan perulangan, sehingga tentunya juga akan mengurangi waktu
pembuatan program(efektif & efesien).
Perulangan for, while, do-while
for
“Bentuk perulangan for digunakan untuk
melakukan eksekusi pada suatu blok kode dalam jumlah tertentu.”
Bentuk penulisan for
for(ungkapan1; ungkapan2; ungkapan3)
{
pernyataan;
pernyataan;
...
}
Keterangan:
- ungkapan1 = pernyataan inisialisasi (dijalankan pertama dan hanya sekali )
- ungkapan2 = kondisi/syarat perulangan dilakukan
- ungkapan3 = pernyataan control untuk perulangan (sebagai
pengatur variabel yang digunakan di dalam ungkapan1)
- pernyataan,
pernyataan,... = blok
kode yang dijalankan ketika kondisi perulangan terpenuhi
Berikut adalah contoh program for:
/*
Looping for, while, do-while,
continue, dan break
Microsoft Visual Studio
Express 2012
[RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
//looping dengan for 10x
for(int i = 0; i < 10; i++){
cout<<"Hello World!"<<endl;
}
_getche();
return 0;
}
Output for
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
PENJELASAN
Alur :
ungkapan1 (int i = 0) dijalankan pertama dan
hanya satu kali. Selanjutnya ungkapan2 (i < 10;) dijalankan, kondisi dicek. Jika bernilai benar pernyataan cout<<"Hello World!"<<endl; dijalankan. Selanjutnya ungkapan3 (i++) dijalankan, nilai i di-increment.
Selanjutnya, langsung ke ungkapan2 (i < 10;), jika benar pernyatan cout<<"Hello World!"<<endl; dijalankan. Selanjutnya ungkapan3 (i++) dijalankan, nilai i di-increment. Begitu seterusnya sampai kondisi/syarat pada ungkapan2 bernilai salah.
Jadi, ketika nilai i masih bernilai 0,1,2,3,4,5,6,7,8,9 perulangan akan
dijalakan sehingga membuat cout<<"Hello World!"<<endl; ditampilkan di layar
sebanyak 10x (sepuluh kali).
*Walaupun
program di atas juga dapat dibuat dengan menggunakan perulangan while dan
do-while. Namun untuk tujuan seperti program di atas lebih umum digunakan
perulangan bentuk for.
while
“Bentuk perulangan
while digunakan untuk melakukan eksekusi pada suatu blok kode selama kondisi
bernilai benar.”
Bentuk penulisan while
while (kondisi/persyaratan)
{
pernyataan;
pernyataan;
...
}
Berikut adalah contoh program while:
/*
Looping for, while, do-while,
continue, dan break
Microsoft Visual Studio
Express 2012
[RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
//looping dengan while
char pilih='n';
while(pilih != 'x'){
cout<<"HI! Ini pernyataan di dalam while"<<endl;
cout<<"\nKeterangan:"<<endl;
cout<<"- karakter 'x' untuk keluar dari looping"<<endl;
cout<<"- karakter lainnya untuk looping"<<endl;
cout<<"\nMasukkan karakter : ";
cin>>pilih;
cout<<endl;
}
cout<<endl;
cout<<"Keluar dari looping. Ini pernyataan di luar
while."<<endl;
_getche();
return 0;
}
Output while
HI! Ini pernyataan di dalam while
Keterangan:
- karakter 'x' untuk keluar dari looping
- karakter lainnya untuk looping
Masukkan karakter : a
HI! Ini pernyataan di dalam while
Keterangan:
- karakter 'x' untuk keluar dari looping
- karakter lainnya untuk looping
Masukkan karakter : x
Keluar dari looping. Ini pernyataan di luar while.
PENJELASAN
Pada program di atas, kondisi perulangannya adalah while(pilih != 'x') (dibaca: selama input/nilai dari pilih tidak sama dengan 'x'). Jadi ketika
input program di atas adalah 'a', maka perulangan akan dijalankan lagi karena
kondisi benar ('a' tidak sama dengan 'x').
do-while
“Bentuk perulangan do-while digunakan untuk
melakukan eksekusi pada suatu blok kode selama kondisi bernilai benar.”
Bentuk penulisan do-while
do
{
pernyataan;
pernyataan;
...
} while (kondisi/persyaratan);
Penting!
Berbeda dengan perulangan while, pada perulangan bentuk
do-while perulangan dijalankan terlebih dahulu baru kemudian dicek kondisi/syarat
perulangannya. Sehingga pada bentuk do-while setidaknya ada 1x (satu kali)
perulangan dijalankan. Sedangkan perulangan pada bentuk while dapat tidak dijalankan
sama sekali jika kondisi/persyaratan bernilai salah.
Perhatikan output dari program while dan do-while di bawah
ini!
Berikut adalah contoh program while:
/*
Looping for, while, do-while,
continue, dan break
Microsoft Visual Studio
Express 2012
[RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
//looping dengan do-while
int bil = 10;
while(bil < 5){
cout<<"HI! Pernyataan di dalam while ini tidak pernah
dijalankan, karena kondisi salah"<<endl;
}
cout<<endl;
cout<<"Keluar dari looping. Ini pernyataan di luar
while."<<endl;
_getche();
return 0;
}
Output
Keluar dari looping. Ini pernyataan di luar while.
Berikut adalah contoh program do-while:
/*
Looping for, while, do-while,
continue, dan break
Microsoft Visual Studio
Express 2012
[RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
//looping dengan do-while
int bil = 10;
do{
cout<<"HI! Pernyataan di dalam do-while tetap ini
dijalankan, walaupun kondisi salah."<<endl;
}
while(bil < 5);
cout<<endl;
cout<<"Keluar dari looping. Ini pernyataan di luar
do-while."<<endl;
_getche();
return 0;
}
Output
HI! Pernyataan di dalam do-while tetap ini dijalankan, walaupun kondisi salah.
Keluar dari looping. Ini pernyataan di luar do-while.
Keluar dari looping. Ini pernyataan di luar do-while.
PENJELASAN
Pada
bentuk while pernyataan di dalam perulangan tidak pernah dijalakan karena
kondisi bernilai salah. Sedangkan pada bentuk do-while pernyataan cout<<"HI! Pernyataan di dalam do-while tetap
ini dijalankan, walaupun kondisi salah."<<endl; ini dijalankan
walaupun kondisi tidak sesuai/ bernilai salah. Seperti yang telah dijelaskan
sebelumnya, hal ini terjadi karena pengecekan kondisi dilakukan setelah
pernyataan pada perulangan dijalankan.
Pernyataan continue dan break
continue
“Pernyataan continue digunakan untuk
melanjutkan pada iterasi selanjutnya dari looping yang sedang berlangsung,
melakukan pengecekan kondisi selanjutnya.”
Berikut adalah contoh program penggunaan continue:
/*
Looping for, while, do-while,
continue, dan break
Microsoft Visual Studio
Express 2012
[RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int bil = 1;
while(bil<=10 ){
if(bil % 2 == 0)
{
//penggunaan continue
bil++;
continue;
}
cout<<"Nilai bil : "<<bil<<endl;
bil++;
}
_getche();
return 0;
}
Output continue
Nilai bil : 1
Nilai bil : 3
Nilai bil : 5
Nilai bil : 7
Nilai bil : 9
Nilai bil : 3
Nilai bil : 5
Nilai bil : 7
Nilai bil : 9
PENJELASAN
Perhatikan flowchart continue dan break dan perhatikan
hasil output program di atas. Terlihat bahwa jika bil % 2 == 0 (bilangan genap) maka pernyataan bil++; dan continue; akan dijalankan, sehingga membuat program
akan melanjutkan ke iterasi berikutnya yang menyebabkan cout<<"Nilai bil : "<<bil<<endl; setelah pernyataan continue tidak dijalankan. Akibatnya membuat
bilangan genap tidak pernah ditampilkan pada layar.
break
“Pada C++ terdapat dua penggunaan break. Pertama, untuk
keluar dari pernyataan switch. Kedua, digunakan untuk keluar/mengakhiri suatu
blok perulangan.”
Catatan: Apabila kita menggunakan loop bersarang, artinya
ada looping di dalam looping, jika break diletakkan pada looping yang terdalam,
maka break hanya akan mengakhiri/keluar dari looping dimana break diletakkan (yaitu looping yang
terdalam saja).
/*
Looping for, while, do-while,
continue, dan break
Microsoft Visual Studio
Express 2012
[RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int bil = 1;
while(bil<=10 ){
if(bil == 8)
{
break;
}
cout<<"Nilai bil : "<<bil<<endl;
bil++;
}
_getche();
return 0;
}
Output break
Nilai bil : 1
Nilai bil : 2
Nilai bil : 3
Nilai bil : 4
Nilai bil : 5
Nilai bil : 6
Nilai bil : 7
Nilai bil : 2
Nilai bil : 3
Nilai bil : 4
Nilai bil : 5
Nilai bil : 6
Nilai bil : 7
PENJELASAN
Perhatikan flowchart continue dan break dan perhatikan hasil output
program di atas. Terlihat bahwa output hanya sampai 7.
Hal ini disebabkan oleh if(bil == 8), jadi
ketika bil bernilai 8 maka pernyataan break; dijalankan
yang membuat perulangan/looping diakhiri dan iterasi selanjutnya tidak pernah
dijalankan.
Catatan : Hati-hati ketika menyetel kondisi pada perulangan! Pastikan perulangan berhenti pada suatu kondisi tertentu (bernilai false pada kondisi tertentu). Apabila tidak, akan terjadi infinite loop yaitu looping yang tidak terhingga (tidak pernah berakhir), yang akan memakan resource dari komputer anda dan apabila dibiarkan terus menerus bukan tidak mungkin menjadikan komputer menjadi "freeze".
[RS]
Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?
Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).
Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.
Terima kasih