Anda di halaman 1dari 11

MODUL 7

Looping C++

7.1 Pengantar
Mungkin ada situasi, ketika Anda perlu mengeksekusi blok kode beberapa kali. Secara
umum, pernyataan dieksekusi secara berurutan: Pernyataan pertama dalam suatu fungsi
dieksekusi terlebih dahulu, diikuti oleh yang kedua, dan seterusnya.
Bahasa pemrograman menyediakan berbagai struktur kontrol yang memungkinkan jalur
eksekusi yang lebih rumit.
Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau sekelompok
pernyataan beberapa kali dan berikut ini adalah pernyataan umum dari pernyataan loop di
sebagian besar bahasa pemrograman.

Gambar 7.1 Looping Umum


Bahasa pemrograman C++ menyediakan jenis loop berikut untuk menangani persyaratan
looping.
7.2 While Loop C++
Pernyataan while loop berulang kali mengeksekusi pernyataan target selama kondisi yang
diberikan benar.
1. Sintaks
Sintaks dari while loop di C++ adalah
while(kondisi) {
pernyataan;
}
Di sini, pernyataan dapat berupa pernyataan tunggal atau blok pernyataan. Kondisi
dapat berupa ekspresi apa pun, dan true adalah nilai apa pun yang bukan nol. Loop
berulang saat kondisinya benar.

50 Zaiful Bahri,S.Si.,M.Kom
MODUL 7
Looping C++

Ketika kondisi menjadi salah, kontrol program lewat ke baris segera setelah loop.
2. Flow Diagram

Gambar 7.2 Flow Diagram While


Di sini, poin kunci dari while loop adalah bahwa loop mungkin tidak akan pernah
berjalan. Ketika kondisi diuji dan hasilnya salah, blok kode perulangan akan dilewati
dan pernyataan pertama setelah perulangan while akan dieksekusi.
3. Contoh 7.1
Coding 7.1
#include <iostream>
using namespace std;
int main () {
int a = 10;
while( a < 20 ) {
cout << "Nilai a: " << a <<" ";
a++;
}
return 0;
}
Output
Nilai a:10 11 12 13 14 15 16 17 18 19

7.3 For Loop C++


for loop adalah struktur kontrol pengulangan yang memungkinkan Anda menulis loop
secara efisien yang perlu dieksekusi beberapa kali.
1. Sintaks
Sintaks for loop pada C++ adalah:

Zaiful Bahri,S.Si.,M.Kom 51
MODUL 7
Looping C++

for ( init; condition; increment ) {


statement(s);
}
Berikut adalah aliran kontrol dalam for loop
• Langkah init dijalankan terlebih dahulu, dan hanya sekali. Langkah ini
memungkinkan Anda untuk mendeklarasikan dan menginisialisasi variabel kontrol
loop apa pun. Anda tidak perlu membuat pernyataan di sini, selama titik koma
muncul.
• Selanjutnya, kondisinya dievaluasi. Jika benar, maka badan perulangan akan
dieksekusi. Jika salah, badan perulangan tidak dieksekusi dan aliran kendali
melompat ke pernyataan berikutnya tepat setelah perulangan for.
• Setelah tubuh for loop dieksekusi, aliran kontrol melompat kembali ke pernyataan
kenaikan. Pernyataan ini dapat dikosongkan, selama titik koma muncul setelah
kondisi.
• Kondisi tersebut kini dievaluasi kembali. Jika benar, loop dieksekusi dan proses
berulang (body of loop, kemudian langkah kenaikan, dan kemudian kondisi lagi).
Setelah kondisi menjadi salah, perulangan for berakhir.
2. Flow Diagram

Gambar 7.3 Flow Diagram For Loop


52 Zaiful Bahri,S.Si.,M.Kom
MODUL 7
Looping C++

3. Contoh 7.2

Coding 7.2
#include <iostream>
using namespace std;

int main () {
// eksekusi for loop
for( int a = 10; a < 20; a = a + 1 ) {
cout << "Nilai a: " << a <<" “;
}

return 0;
}
Output
Nilai a:10 11 12 13 14 15 16 17 18 19

4. Contoh 7.3
Coding 7.3
#include <iostream>
using namespace std;

int main () {
// eksekusi for loop
for( int a = 10; a > 4; a = a - 1 ) {
cout << "Nilai a: " << a <<" “;
}

return 0;
}
Output
Nilai a:10 9 8 7 6 5

7.4 Do ... Loop


Tidak seperti perulangan for dan while, yang menguji kondisi perulangan di bagian
atas perulangan, perulangan do ... while memeriksa kondisinya di bagian bawah
perulangan.
Perulangan do ... while mirip dengan perulangan while, kecuali bahwa
perulangan do... while dijamin akan dieksekusi setidaknya satu kali.
1. Sintaks
Sintaks do ... while loop dalam C++ adalah:
do {
pernyataan;
}
while( kondisi );

Zaiful Bahri,S.Si.,M.Kom 53
MODUL 7
Looping C++

Perhatikan bahwa ekspresi kondisional muncul di akhir loop, sehingga pernyataan


dalam loop dieksekusi satu kali sebelum kondisi diuji.
Jika kondisinya benar, aliran kontrol melompat kembali untuk melakukan, dan
pernyataan dalam loop dieksekusi lagi. Proses ini berulang sampai kondisi yang
diberikan menjadi salah.
2. Flow Diagram

Gambar 7.4 Flow Diagram Do ... While


3. Contoh 7.4
Coding 7.4
#include <iostream>
using namespace std;
int main () {

int a = 10;

do {
cout << "Nilai a: " << a <<" ";
a = a + 1;
} while( a < 16 );

return 0;
}
Output
Nilai a:10 11 12 13 14 15

54 Zaiful Bahri,S.Si.,M.Kom
MODUL 7
Looping C++

7.5 Nested Loop


Sebuah loop dapat bersarang di dalam loop lain. C++ memungkinkan setidaknya 256 level
bersarang.
1. Sintaks
a. Nested Loop For
Sintaks untuk pernyataan for loop bersarang di C++ adalah sebagai berikut

for( init; kondisi; kenaikan ) {


untuk ( init; kondisi; increment ) {
pernyataan;
}
pernyataan; // Anda dapat memasukkan lebih banyak
pernyataan.
}

b. Nested Loop While


Sintaks untuk pernyataan loop while bersarang di C++ adalah sebagai berikut:

while(kondisi) {
while(kondisi) {
pernyataan;
}
pernyataan; // Anda dapat memasukkan lebih banyak
pernyataan.
}

c. Nested Loop Do ... While


Sintaks untuk pernyataan do... while loop bersarang di C++ adalah sebagai berikut

do {
pernyataan; // Anda dapat memasukkan lebih banyak
pernyataan.
do {
pernyataan;
} while( kondisi );

} while( kondisi );

Zaiful Bahri,S.Si.,M.Kom 55
MODUL 7
Looping C++

2. Contoh 7.5
Program berikut menggunakan loop for bersarang untuk menemukan bilangan prima
dari 2 hingga 50.
Coding 7.5
#include <iostream>
using namespace std;
int main () {
int i, j;

for(i = 2; i<50; i++) {


for(j = 2; j <= (i/j); j++)
if(!(i%j)) break; // jika faktor ditemukan, bukan prima
if(j > (i/j)) cout << i << " prima\n";
}

return 0;
}
Output
2 prima
3 prima
5 prima
7 prima
11 prima
13 prima
17 prima
19 prima
23 prima
29 prima
31 prima
37 prima
41 prima
43 prima
47 prima

7.6 Soal-Soal Latihan


1. Tulislah sebuah program yang dapat menampilkan sebarisan bilangan selang-seling
dengan jumlah dua input sama dengan a + b - 1 yang bergantung pada nilai input dua
data tipe integer a dan b. Di man nilai a kurang dari atau sama dengan b.
Input Input Input
1 10 3 12 66
Output Output Output
19 28 37 46 55 311 410 59 68 77 6 5

2. Tulisalah sebuah program yang dapat menampilkan segitiga bintang dengan input
sebuah bilangan integer.
Input Input Input
5 3 8

56 Zaiful Bahri,S.Si.,M.Kom
MODUL 7
Looping C++

Output Output Output


* * *
* * * * * *
* * * * * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * *
* * * * * * *
* * * * * * * *

3. Tulislah sebuah ptogram untuk menampilkan segitiga bintang denan inupt sebuah data
tipe integer.
Input Input Input
5 3 8
Output Output Output
&**** &** &*******
&&*** &&* &&******
&&&** &&&*****
&&&&* &&&&****
&&&&&***
&&&&&&**
&&&&&&&*

4. Tulislah sebuh program untuk menampilkan piramida angka yang tergantung pada
input sebuah data tipe integer.
Input Input Input
5 3 8
Output Output Output
1 1 1
121 121 121
12321 12321 12321
1234321 1234321
123454321 123454321
12345654321
1234567654321
123456787654321

5. Tulislah sebuah program yang dapat menampilkan beberapa barisan dengan sebuah
input data tipe integer dengan ketentuan baris pertama adalah angka 1, baris kedua
angka 2 dan 4 dan bari ketiga angka 3 6 dan 9, dan seterusnya yang dipisahkan dengan
spasi.
Input Input Input
6 3 8
Output Output Output
1 1 1
2 4 2 4 2 4

Zaiful Bahri,S.Si.,M.Kom 57
MODUL 7
Looping C++

3 6 9 3 6 9 3 6 9
4 8 12 16 4 8 12 16
5 10 15 20 25 5 10 15 20 25
6 12 18 24 30 36 6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64

6. Perhatikan kode program berikut:


#include<iostream>
int main(){
int n,i,j;
cin>>n;
j=n-1;
for(i=j;i<=2;i--){
n=i % n;
}
cout<<n;
}
Jika program diatas dieksekusi, maka outputnya adalah...?
A. 94 dan 6
B. 100 dan 5
C. 10 dan 14
D. Salah semua
E. Program tak berhenti

7. Perhatikan kode program berikut:


#include<iostream>
int main(){
int n,i,j;
cin>>n;
j=n-1;
for(i=j;i<=2;i--){
n=i % n;
}
cout<<n;
}
Jika program diatas dieksekusi dan n = 97, maka outputnya adalah...?
A. 96
B. 97
C. 2
D. 1
E. Salah semua

58 Zaiful Bahri,S.Si.,M.Kom
MODUL 7
Looping C++

8. Perhatikan kode program berikut:


#include<iostream>
using namespace std;
int main(){
int n,i;
cin>>n;
i=0;
while(i<n){
i=i+4;
if (i<n){
for(int j=1;j<=4;j++){
cout<<"*";
}
}
}
}
Jika program diatas dieksekusi dan n = 20, maka outputnya adalah...?
A. 24
B. 8
C. 16
D. 12
E. 30

9. Perhatikan kode program berikut:


#include<iostream>
using namespace std
int main(){
for(int i=1;i<=n;i++)
fo(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
cout<<''Hello');
}
}
}
}
Dengan sembarang harga n > 0, keluaran 'Hello' akan dicetak berulang-ulang
dalam sejumlah baris yang
A. merupakan konstanta
B. merupakan fungsi kuadrat dari n
C. merupakan fungsi linier dari n
D. merupakan fungsi pangkat empat dari n
E. merupakan fungsi kubik (pangkat 3) dari n

Zaiful Bahri,S.Si.,M.Kom 59
MODUL 7
Looping C++

10. Perhatikan kode program berikut:


#include<iostream>
using namespace std
int main(){
for(int i=1;i<=n;i++)
fo(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
cout<<''Hello');
}
}
}
}
Berapakah nilai Init sehingga program di atas menghasilkan output x tertulis
90 ?
A. 9
B. 45
C. 11
D. 10
E. 0

60 Zaiful Bahri,S.Si.,M.Kom

Anda mungkin juga menyukai