Apa yang akan kamu lakukan saat disuruh mencetak kalimat berulang-ulang?
Misalnya:
Tolong tampilkan kalimat "Tutorial Pemrograman C++!"
sebanyak 10x ke layar!
Mungkin kamu akan menggunakan cout
sebanyak 10 kali seperti ini:
#include <iostream>
using namespace std;
int main(){
cout << "Tutorial Pemrograman C++!" << endl;
cout << "Tutorial Pemrograman C++!" << endl;
cout << "Tutorial Pemrograman C++!" << endl;
cout << "Tutorial Pemrograman C++!" << endl;
cout << "Tutorial Pemrograman C++!" << endl;
cout << "Tutorial Pemrograman C++!" << endl;
cout << "Tutorial Pemrograman C++!" << endl;
cout << "Tutorial Pemrograman C++!" << endl;
cout << "Tutorial Pemrograman C++!" << endl;
cout << "Tutorial Pemrograman C++!" << endl;
return 0;
}
Hasilnya:
Apakah boleh seperti ini?
Ya, boleh-boleh saja.
Tapiโฆ
Bagaimana kalau nanti mau menampilkan sebanyak 1000
kali.
Pasti capek donk ngetiknya.
Karena itu, kita harus menggunakan perulangan.
Perulangan akan membantu kita mengeksekusi kode yang berulang-ulang, berapapun yang kita mau.
Ada empat macam bentuk perulangan pada C.
Secara umum, dibagi menjadi dua kelompok.
Yaitu: counted loop dan uncounted loop.
Perbedaanya:
- Counted Loop merupakan perulangan yang jelas dan sudah tentu banyak kali perulangannya.
- Sedangkan Uncounted Loop, merupakan perulangan yang tidak jelas berapa kali ia harus mengulang.
https://www.instagram.com/p/Bc51hBNHsyD/embed/captioned/?cr=1&v=14&wp=658&rd=https%3A%2F%2Fwww.petanikode.com&rp=%2Fcpp-perulangan%2F#%7B%22ci%22%3A0%2C%22os%22%3A2625.2999999821186%2C%22ls%22%3A1417.2999999821186%2C%22le%22%3A2573.5%7D
Perulangan yang termasuk dalam Counted Loop:
- Perulangan For
Perulangan yang termasuk dalam Uncounted Loop:
- Perulangan While
- Perulangan Do/While
Mari kita bahas satu per satuโฆ
1. Blok Perulangan For
Perulangan for
merupakan perulangan yang termasuk dalam couted loop, karena sudah jelas berapa kali ia akan mengulang.
Bentuknya kodenya seperti ini:
for(int i = 0; i < 10; i++){
printf("Perulangan ke-%i\n", i);
}
Yang perlu diperhatikan adalah kondisi yang ada di dalam kurung setelah kata for
.
Kondisi ini akan menentukan:
- Hitungan akan dimulai dari
0
(i = 0
); - Hitungannya sampai berapa? Sampai
i < 10
; - Lalu di setiap perulangan
i
akan bertambah+1
(i++
).
Variabel i
pada perulangan for
berfungsi untuk menyimpan nilai hitungan.
Jadi setiap perulangan dilakukan nilai i
akan selalu bertambah satu. Karena kita menentukannya di bagian i++
.
Contoh program loop dengan for:
#include <iostream>
using namespace std;
int main(){
for(int i = 0; i < 10; i++){
printf("Perulangan ke-%i\n", i);
}
return 0;
}
Ini hasil outputnya:
Apakah nama variabelnya harus selalu i
?
Tidak.
Kita juga bisa menggunakan nama lain.
Misalnya:
#include <iostream>
using namespace std;
int main(){
for(int counter = 0; counter < 10; counter += 2){
printf("Perulangan ke-%i\n", counter);
}
return 0;
}
Pada contoh tersebut, kita melakukan perulangan dimulai dari nol 0
. Lalu di setiap perulangan nilai variabel couter
akan ditambah 2 (counter+=2
).
Hasilnya:
Bagaimana kalau counter perulangannya dimulai dari akanga yang lebih besar sampai yang ke paling kecil?
Ini biasanya kita buat saat ingin menghitung mundurโฆ
Caranya gampang.
Kita tinggal isi nilai counter dengan nilai terbesarnya.
Misalnya kita akan mulai hitungan dari 10
sampai ke 0
.
Maka nilai counter
, kita isi awalnya dengan 10
.
Lalu di kondisi perbandingannya, kita berikan counter > 0
. Artinya perulangan akan dilakukan selama nilai counter lebih besar dari 0
.
Lalu kita kurangi (-1
) nilai counter di setiap perulangan (counter--
).
for(int counter = 10; counter > 0; counter--){
printf("Perulangan ke-%i\n", counter);
}
Hasilnya:
Mengapa tidak sampai nol (0
)?
Karena kondisi yang kita berikan counter > 0
. Apabila counter
bernilai 0
, maka kondisi ini akan menjadi false
.
Kecuali kita menggunakan operator lebih besar sama dengan (>=
), maka jikaย counter
ย bernilaiย 0
, kondisi akan menjadiย true
.
2. Perulangan While pada C++
Perulangan while
merupakan perulangan yang termasuk dalam perulangan uncounted loop.
Perulangan while
juga dapat menjadi perulangan yang counted loop dengan memberikan counter di dalamnya.
Bentuk flow chart-nya sama seperti flow chart for.
Untuk memahami perulangan iniโฆ
โฆmari kita coba lihat contohnya:
#include <iostream>
using namespace std;
int main(){
char ulangi = 'y';
int counter = 0;
// perulangan while
while(ulangi == 'y'){
printf("Apakah kamu mau mengulang?\n");
printf("Jawab (y/t): ");
cin >> ulangi;
// increment counter
counter++;
}
printf("\n\n----------\n");
printf("Perulangan Selesai!\n");
printf("Kamu mengulang sebanyak %i kali.\n", counter);
return 0;
}
Hasilnya:
Coba perhatikan blok kode while
:
// perulangan while
while(ulangi == 'y'){
printf("Apakah kamu mau mengulang?\n");
printf("Jawab (y/t): ");
cin >> ulangi;
// increment counter
counter++;
}
Di sanaโฆ Perulangan akan terjadi selama variabel ulangi
brenilai y
.
Lalu kita menggunakan fungsi scanf()
untuk mengambil input.
Selama kita menjawab y pada input, maka perulangan akan terus dilakukan.
Tapi kalau kita jawab yang lain, maka perulangan akan dihentikan.
Karena kondisi perulangannya tidak terpenuhi.
3. Perulangan Do/While pada C++
Perulangan do/while
sama seperti perulangan while
.
Perbedaanya:
Perulangan do/while
akan melakukan perulangan sebanyak 1
kali terlebih dahulu, lalu mengecek kondisi yang ada di dalam kurung while
.
Flow chart perulangan do/while:
Bentuk kodenya seperti ini:
do {
// blok kode yang akan diulang
} while (<kondisi>);
Jadi perbedaanya:
Perulangan
do/while
akan mengecek kondisi di belakang (sesudah mengulang), sedangkanwhile
akan mencek kondisi di depan atau awal (sbelum mengulang).
Mari kita coba lihat contohnya:
#include <iostream>
using namespace std;
int main(){
char ulangi = 'y';
int counter = 0;
do {
printf("Apakah kamu mau mengulang?\n");
printf("Jawab (y/t): ");
cin >> ulangi;
// increment counter
counter++;
} while(ulangi == 'y');
printf("\n\n----------\n");
printf("Perulangan Selesai!\n");
printf("Kamu mengulang sebanyak %i kali.\n", counter);
return 0;
}
Contoh tersebut sama seperti contoh pada perulangan while
.
Saat perulangan pertama, cobalah untuk membatalkan perulangannya dengan menjawab t
.
Maka hasilnya:
4. Perulangan Bersarang (Nested Loop)
Di dalam blok perulangan, kita juga dapat membuat perulangan.
Ini disebut dengan nested loop atau perulangan bersarang atau perulangan di dalam perualangan.
Mari kita coba lihat contohnya:
#include <iostream>
using namespace std;
int main(){
for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++){
printf("Perulangan ke (%d, %d)\n", i, j);
}
}
return 0;
}
Hasilnya:
Pada perulangan tersebut, kita menggunakan dua perulangan for
.
Perulangan pertama menggunakan variabel i
sebagai counter, sedangkan perultangan kedua menggunakan variabel j
sebagai counter.