Pengulangan/Looping
Salah satu struktur pengulangan yang telah dipelajari adalah Ulang…Akhir-Ulang. Bentuknya adalah seperti
berikut:
ULANG SELAMA (kondisi)
Pernyataan-1
…
Pernyataan-2
AKHIR-ULANG
Dalam hal ini, bagian pernyataan-1 hingga pernyataan-2 akan dijalankan secara terus-menerus selama
kondisi bernilai TRUE.
Bentuk seperti di atas jika ditranslasikan menjadi bahasa C/C++ dapat menggunakan pernyataan while.
Bentuknya adalah seperti berikut:
while (kondisi)
{
pernyataan_1;
…
pernyataan_2;
}
Seandainya dalam tanda “{}” hanya terdapat satu pernyataan, maka tanda “{}” dapat dihilangkan. Contoh:
while (kondisi)
pernyataan;
Catatan: Kondisi pada C/C++ dapat berupa ekspresi yang menghasilkan nilai TRUE atau FALSE dan harus
ditulis dalam tanda kurung “()”.
Algoritma:
masukkan(m,n)
r ← sisa_pembagian(m,n)
ULANG SELAMA r≠0
m←n
n←r
r ← sisa_pembagian(m,n)
AKHIR-ULANG
tampilkan(n)
Program:
//Kode sumber: fpb.c
1
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
#include <stdio.h>
int main()
{
int m, n, r;
printf(“Masukkan m: ”);
scanf(“%d”, &m);
printf(“Masukkan n: ”);
scanf(“%d”, &n);
r = m % n;
while (r != 0)
{
m = n;
n = r;
r = m % n;
}
printf(“FPB: %d\n”, n);
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int m, n , r;
r = m % n;
while (r != 0)
{
m = n;
n = r;
r = m % n;
}
cout << “FPB: ” << n << endl;
return 0;
}
Contoh F.2. Membuat algoritma untuk menampilkan 6 baris yang berisi string yang sama
Algoritma:
bil ← 1
ULANG SELAMA bil ≤ 6
2
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
Program:
Program di atas dapat dikonversi menjadi pemrograman C/C++ seperti berikut ini:
//Kode sumber: EnamBaris.c
#include <stdio.h>
int main()
{
int bil;
bil = 1;
while (bil <= 6)
{
printf(“Selamat Belajar C/C++ \n”);
bil = bil + 1;
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int bil = 1;
Contoh F.3. Membuat algoritma dan program untuk menampilkan bilangan ganjil yang terletak antara 1 –
10.
Algoritma:
bil ← 1
ULANG SELAMA bil ≤ 10
tampilkan(bil)
bil ← bil + 2
AKHIR-ULANG
Program:
//Kode sumber: BilanganGanjil10.c
#include <stdio.h>
3
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
int main()
{
int bil = 1;
while (bil <= 10)
{
printf(“%d ”, bil);
bil = bil + 2;
}
printf(“\n”);
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int bil = 1;
while (bil <= 10)
{
cout << bil << “ ”;
bil = bil + 2;
}
cout << endl;
return 0;
}
Contoh F.4. Membuat algoritma dan program untuk menampilkan deret angka 10 – 1.
Algoritma:
bil ← 10
ULANG SELAMA bil ≥ 1
tampilkan(bil)
bilt ← bil – 1
AKHIR-ULANG
Program:
//Kode sumber: DeretMenurun.c
#include <stdio.h>
int main()
{
int bil = 10;
while (bil >= 1)
{
printf(“%d\n”, bil);
bil = bil -1;
}
return 0;
}
4
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
#include <iostream>
using namespace std;
int main()
{
int bil = 10;
while (bil >= 1)
{
cout << bil << endl;
bil = bil -1;
}
return 0;
}
Contoh F.5. Membuat algoritma dan program untuk menampilkan hasil dari persamaan:
Dimana n adalah bilangan yang dimasukkan dari keyboard.
Algoritma:
masukkan(n)
jum ← 0
pencacah ← 0
ULANG SELAMA pencacah ≤ n
jum ← jum + pencacah
pencacah ← pencacah + 1
AKHIR-ULANG
tampilkan(jum)
Program:
//Kode sumber: JumlahN.c
#include <stdio.h>
int main()
{
int n, pencacah, jum;
printf(“n = ”);
scanf(“%d”, &n);
jum = 0;
pencacah = 1;
while (pencacah <= n)
{
jum = jum +pencacah;
pencacah = pencacah + 1;
}
printf(“Jumlah = %d\n”, jum);
return 0;
}
5
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
#include <iostream>
using namespace std;
int main()
{
int n, pencacah, jum;
cout << “n = ”;
cin >> n;
jum = 0;
pencacah = 1;
Contoh F.6. Menghitung π. Nilai π dapat diperoleh melalui pendekatan sebagai berikut:
Untuk n yang bernilai 100 atau lebih.
Algoritma:
masukkan(n)
bil ← 1
jum ← 0
ULANG SELAMA bil ≤ n
jum ← jum + 1 / (bil x bil)
pencacah ← pencacah + 1
AKHIR-ULANG
pi ← akar(jum x 6)
tampilkan(pi)
Program:
//Kode sumber: MenghitungPi.c
#include <stdio.h>
#include <math.h>
int main()
{
int n, bil;
double jum, pi;
printf(“n = ”);
6
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
scanf(“%d”, &n);
jum = 0;
bil = 1;
while (bil <= n)
{
jum = jum + 1.0 / (bil * bil);
bil = bil + 1;
}
pi = sqrt(jum * 6);
printf(“pi = %lf\n”, pi);
return 0;
}
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n, bil;
double jum, pi;
cout << “n = ”;
cin >> n;
jum = 0;
bil = 1;
while (bil <= n)
{
jum = jum + 1.0 / (bil * bil);
bil = bil + 1;
}
pi = sqrt(jum*6);
cout << “pi = ” << pi << endl;
return 0;
}
Contoh F.7. Membuat algoritma dan program yang meminta n buah bilangan bulat yang dimasukkan dari
keyboard dan kemudian menampilkan rata-rata dari keseluruhan bilangan tersebut.
Algoritma:
masukkan(n)
jum ← 0
pencacah ← 0
ULANG SELAMA pencacah ≤ n
masukkan(bil)
jum ← jum + bil
pencacah ← pencacah + 1
AKHIR-ULANG
7
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
rata_rata ← jum / n
tampilkan(rata_rata)
Program:
//Kode sumber: RatarataNBilangan.c
#include <stdio.h>
int main()
{
int n, pencacah;
double bil, jum, rata_rata;
jum = 0;
pencacah = 1;
while (pencacah <= n)
{
printf(“Bilangan %d = ”, pencacah);
scanf(“%lf”, &bil);
#include <iostream>
using namespace std;
int main()
{
int n, pencacah;
double bil, jum, rata_rata;
jum = 0;
pencacah = 1;
while (pencacah <= n)
{
cout << “Bilangan ” << pencacah << “ = ”;
cin >> bil;
Contoh F.8. Membuat algoritma dan program yang meminta sebuah bilangan bulat yang dimasukkan dari
keyboard dan kemudian menampilkan deret berikut jika yang dimasukkan adalah 50:
Angka terakhir yang ditampilkan dalam deret harus lebih kecil atau sama dengan bilangan yang
dimasukkan dari keyboard.
Algoritma:
masukkan(n)
pencacah ← 1
nilai ← 1
ULANG SELAMA nilai < n
tampilkan(nilai)
nilai ← nilai + pencacah
pencacah ← pencacah + 1
AKHIR-ULANG
Program:
//Kode sumber: Deret1.c
#include <stdio.h>
int main()
{
int n, pencacah, nilai;
pencacah = 1;
nilai = 1;
while (nilai <= n)
{
printf(“%d ”, nilai);
nilai = nilai +pencacah;
pencacah = pencacah + 1;
}
printf(“\n”);
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int n, pencacah, nilai;
cin >> n;
pencacah = 1;
nilai = 1;
while (nilai <= n)
{
cout << nilai << “ ”;
nilai = nilai + pencacah;
pencacah = pencacah + 1;
}
cout << endl;
return 0;
}
Algoritma:
nilai ← 100000000
ULANG SELAMA nilai ≥ 1
Tampilkan(nilai)
nilai ← nilai / 10
AKHIR-ULANG
Program:
//Kode sumber: Deret2.c
#include <stdio.h>
int main()
{
long int nilai;
nilai = 100000000;
while (nilai >=1)
{
printf(“%ld\n”, nilai);
nilai = nilai / 10;
}
return 0;
}
10
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
#include <iostream>
using namespace std;
int main()
{
long int nilai;
nilai = 100000000;
while (nilai >= 1)
{
cout << nilai << endl;
nilai = nilai / 10;
}
return 0;
}
Contoh F.10. Membuat algoritma dan program yang meminta suatu string dimasukkan dari keyboard dan
kemudian menghitung dan menampilkan jumlah karakter yang terdapat pada string tersebut.
Algoritma:
Masukkan(string)
indeks ← 0
ULANG SELAMA string[indeks] ≠ NULL
Indeks ← indeks + 1
AKHIR-ULANG
Tampilkan(“Jumlah karakter = ”, indeks)
Program:
//Kode sumber: JumlahString.c
#include <stdio.h>
int main()
{
char string[80];
int indeks;
indeks = 0;
while (string[indeks] != ‘\0’)
{
indeks = indeks + 1;
}
printf(“Jumlah karakter = %d\n”, indeks);
return 0;
}
#include <iostream>
using namespace std;
int main()
{
11
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
char string[80];
int indeks;
indeks = 0;
while (string[indeks] != ‘\0’)
{
indeks = indeks + 1;
}
cout << “Jumlah karakter = ” << indeks << endl;
return 0;
}
Contoh F.11. Membuat algoritma dan program untuk membalik suatu string yang dimasukkan dengan
keyboard kemudian menampilkan string yang telah dibalikkan tersebut.
Algoritma:
Masukkan(string)
indeks ← panjang(string) – 1
ULANG SELAMA indeks >= 0
tampilkan(string[indeks])
indeks = indeks – 1
AKHIR-ULANG
Program:
//Kode sumber: MembalikString.c
#include <stdio.h>
#include <string.h>
int main()
{
char string[80];
int indeks;
indeks = strlen(string)-1;
while (indeks >= 0)
{
printf(“%c”, string[indeks]);
indeks = indeks-1;
}
printf(“\n”);
return 0;
}
#include <iostream>
12
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
#include <string.h>
using namespace std;
int main()
{
char string[80];
int indeks;
indeks = strlen(string)-1;
while (indeks >= 0)
{
cout << string[indeks];
indeks = indeks-1;
}
cout << “\n”;
return 0;
}
13
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
Contoh F.12. Membuat algoritma dan program dengan memanfaatkan bentuk UNTUK…AKHIR-UNTUK
untuk menampilkan 6 buah baris yang berisi string “Selamat Belajar C/C++”.
Algoritma:
UNTUK bil ← 1 s.d. 6
Tampilkan(“Selamat Belajar C/C++”)
AKHIR-UNTUK
Program:
//Kode sumber: EnamBarisFor.c
#include <stdio.h>
int main()
{
int bil;
for (bil=1; bil<=6; bil++)
{
printf(“Selamat Belajar C/C++ \n”);
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int bil;
for (bil=1; bil<=6; bil++)
{
cout << “Selamat Belajar C/C++” << endl;
}
return 0;
}
Algoritma:
jum ← 0
UNTUK bil ← 1 s.d. 99
jum ← jum + bil / (bil + 1)
AKHIR-UNTUK
Tampilkan(jum)
14
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
Program:
//Kode sumber: MenghitungDeretPecahan.c
#include <stdio.h>
int main()
{
int bil, pencacah;
double jum;
for (bil=1; bil<=99; bil++)
{
jum = jum + (double) bil / (bil + 1);
}
printf(“Jumlah = %lf\n”, jum);
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int bil, pencacah;
double jum;
for (bil=1; bil<=99; bil++)
{
jum = jum + (double) bil / (bil + 1);
}
cout << “Jumlah = ” << jum << endl;
return 0;
}
Algoritma:
Masukkan(n)
Hasil ← 1
UNTUK bil ← n s.d. 1 LANGKAH -1
Hasil ← Hasil * bil
AKHIR-UNTUK
Tampilkan(Hasil)
Program:
//Kode sumber: faktorial.c
#include <stdio.h>
int main()
{
int bil, n;
long int hasil;
printf(“n = ”);
scanf(“%d”, &n);
15
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping
hasil = 1;
for (bil=n; bil>=1; bil--)
{
hasil = hasil * bil;
}
printf(“n! = %d”, hasil);
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int bil, n;
long int hasil;
cout << “n = ”;
cin >> n;
hasil = 1;
for (bil=n; bil>=1; bil--)
{
hasil = hasil * bil;
}
cout << “n! = ” << hasil << endl;
return 0;
}
16
Barita Bram Ardiwinata Putra, S.T.