Anda di halaman 1dari 16

Pemrograman C/C++ Pengulangan/Looping

Pengulangan/Looping

F.1. Memahami Bentuk Ulang…Akhir-Ulang dan Translasi ke Program C/C++

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 “()”.

Contoh F.1. Program untuk memperoleh faktor persekutuan terbesar (FPB).

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;
}

//Kode sumber: fpb.cpp

#include <iostream>
using namespace std;
int main()
{
int m, n , r;

cout << “Masukkan m: ”;


cin >> m;

cout << “Masukkan n: ”;


cin >> n;

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

tampilkan(“Selamat Belajar C/C++”)


bil ← bil + 1
AKHIR-ULANG

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;
}

//Kode sumber: EnamBaris.cpp

#include <iostream>
using namespace std;
int main()
{
int bil = 1;

while (bil <= 6)


{
cout << “Selamat belajar C/C++ \n”;
bil = bil +1;
}
return 0;
}

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;
}

//Kode sumber: BilanganGanjil10.cpp

#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

//Kode sumber: DeretMenurun.cpp

#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

//Kode sumber: JumlahN.cpp

#include <iostream>
using namespace std;
int main()
{
int n, pencacah, jum;

cout << “n = ”;
cin >> n;

jum = 0;
pencacah = 1;

while (pencacah <= n)


{
jum = jum +pencacah;
pencacah = pencacah + 1;
}
cout << “Jumlah = ” << jum << endl;
return 0;
}

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;
}

//Kode sumber: MenghitungPi.cpp

#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;

printf(“Jumlah data = ”);


scanf(“%d”, &n);

jum = 0;
pencacah = 1;
while (pencacah <= n)
{
printf(“Bilangan %d = ”, pencacah);
scanf(“%lf”, &bil);

jum = jum + bil;


pencacah = pencacah + 1;
}
rata_rata = jum / n;
printf(“Rata-rata = %lf\n”, rata_rata);
return 0;
}

//Kode sumber: RatarataNBilangan.cpp

#include <iostream>
using namespace std;
int main()
{
int n, pencacah;
double bil, jum, rata_rata;

cout << “Jumlah data = ”;


cin >> n;

jum = 0;
pencacah = 1;
while (pencacah <= n)
{
cout << “Bilangan ” << pencacah << “ = ”;
cin >> bil;

jum = jum + bil;


pencacah = pencacah + 1;
}
rata_rata = jum / n;
cout << “Rata-rata = ” << rata_rata << endl;
return 0;
8
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping

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;

printf(“Nilai pembatas = ”);


scanf(“%d”, &n);

pencacah = 1;
nilai = 1;
while (nilai <= n)
{
printf(“%d ”, nilai);
nilai = nilai +pencacah;
pencacah = pencacah + 1;
}
printf(“\n”);
return 0;
}

//Kode sumber: Deret1.cpp

#include <iostream>
using namespace std;
int main()
{
int n, pencacah, nilai;

cout << “Nilai pembatas = ”;


9
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping

cin >> n;

pencacah = 1;
nilai = 1;
while (nilai <= n)
{
cout << nilai << “ ”;
nilai = nilai + pencacah;
pencacah = pencacah + 1;
}
cout << endl;
return 0;
}

Contoh F.9. Membuat algoritma dan program untuk menampilkan deret:


100000000
10000000
1000000
100000
10000
1000
100
10
1

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;
}

//Kode sumber: Deret2.cpp

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;

printf(“Masukkan suatu string: ”);


gets(string);

indeks = 0;
while (string[indeks] != ‘\0’)
{
indeks = indeks + 1;
}
printf(“Jumlah karakter = %d\n”, indeks);
return 0;
}

//Kode sumber: JumlahString.cpp

#include <iostream>
using namespace std;
int main()
{
11
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping

char string[80];
int indeks;

cout << “Masukkan suatu string: ”;


cin >> string;

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;

printf(“Masukkan suatu string: ”);


gets(string);

indeks = strlen(string)-1;
while (indeks >= 0)
{
printf(“%c”, string[indeks]);
indeks = indeks-1;
}
printf(“\n”);
return 0;
}

//Kode sumber: MembalikString.cpp

#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;

cout << “Masukkan suatu string: ”;


cin >> string;

indeks = strlen(string)-1;
while (indeks >= 0)
{
cout << string[indeks];
indeks = indeks-1;
}
cout << “\n”;
return 0;
}

E.2. Memahami Bentuk UNTUK…AKHIR-UNTUK dan Translasi ke Program C/C++

Bentuk UNTUK…AKHIR-UNTUK juga digunakan untuk menangani pengulangan. Contoh penggunaannya


adalah sebagai berikut:
UNTUK variabel ← awal s.d. akhir LANGKAH langkah
Pernyataan_1

Pernyataan_2
AKHIR-UNTUK
Bentuk di atas melakukan pengulangan terhadap Pernyataan_1 hingga Pernyataan_2 yang dimulai dari
variabel “awal” hingga variabel yang memiliki nilai tidak lebih dari “akhir”. Klausa LANGKAH menentukan
kenaikan terhadap nilai variabel untuk setiap iterasi berikutnya. Bagian LANGKAH bersifat opsional, jika tidak
disebutkan, maka kenaikan terhadap variabel adalah sebesar 1.
Pada C/C++, bentuk tersebut dapat ditranslasikan dengan menggunakan for. Pernyataan for yang setara
dengan bentuk UNTUK…AKHIR-UNTUK adalah seperti berikut:
for (variabel=awal; variabel<=akhir; variabel=variabel+langkah)
{
Pernyataan_1;

Pernyataan_2;
}
Tanda “{}” dapat ditiadakan jika pada bagian tersebut hanya terdapat satu pernyataan.
Catatan:
Pada C/C++, bentuk seperti “variabel = variabel + langkah” dapat ditulis menjadi “variabel += langkah”
Bentuk yang setara dengan += antara lain: -=, *=, /=, %=
Bentuk seperti “variabel = variabel + 1” dapat ditulis menjadi “variabel++”

13
Barita Bram Ardiwinata Putra, S.T.
Pemrograman C/C++ Pengulangan/Looping

Bentuk seperti “variabel = variabel – 1” dapat ditulis menjadi “variabel--”

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;
}

//Kode sumber: EnamBarisFor.cpp

#include <iostream>
using namespace std;
int main()
{
int bil;
for (bil=1; bil<=6; bil++)
{
cout << “Selamat Belajar C/C++” << endl;
}
return 0;
}

Contoh F.13. Membuat algoritma dan program untuk menghitung

   
   
  

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;
}

//Kode sumber: MenghitungDeretPecahan.cpp

#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;
}

Contoh F.14. Membuat algoritma dan program untuk menghitung faktorial.

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;
}

//Kode sumber: Faktorial.cpp

#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.

Anda mungkin juga menyukai