f_pengulangan
Post on 04-Jul-2015
54 Views
Preview:
TRANSCRIPT
Pemrograman C/C++ Pengulangan/Looping
1
Barita Bram Ardiwinata Putra, S.T.
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
Pemrograman C/C++ Pengulangan/Looping
2
Barita Bram Ardiwinata Putra, S.T.
#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
Pemrograman C/C++ Pengulangan/Looping
3
Barita Bram Ardiwinata Putra, S.T.
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>
Pemrograman C/C++ Pengulangan/Looping
4
Barita Bram Ardiwinata Putra, S.T.
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; }
Pemrograman C/C++ Pengulangan/Looping
5
Barita Bram Ardiwinata Putra, S.T.
//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; }
Pemrograman C/C++ Pengulangan/Looping
6
Barita Bram Ardiwinata Putra, S.T.
//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 = ”);
Pemrograman C/C++ Pengulangan/Looping
7
Barita Bram Ardiwinata Putra, S.T.
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
Pemrograman C/C++ Pengulangan/Looping
8
Barita Bram Ardiwinata Putra, S.T.
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;
Pemrograman C/C++ Pengulangan/Looping
9
Barita Bram Ardiwinata Putra, S.T.
}
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 = ”;
Pemrograman C/C++ Pengulangan/Looping
10
Barita Bram Ardiwinata Putra, S.T.
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
Pemrograman C/C++ Pengulangan/Looping
11
Barita Bram Ardiwinata Putra, S.T.
#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() {
Pemrograman C/C++ Pengulangan/Looping
12
Barita Bram Ardiwinata Putra, S.T.
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>
Pemrograman C/C++ Pengulangan/Looping
13
Barita Bram Ardiwinata Putra, S.T.
#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++”
Pemrograman C/C++ Pengulangan/Looping
14
Barita Bram Ardiwinata Putra, S.T.
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)
Pemrograman C/C++ Pengulangan/Looping
15
Barita Bram Ardiwinata Putra, S.T.
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);
Pemrograman C/C++ Pengulangan/Looping
16
Barita Bram Ardiwinata Putra, S.T.
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; }
top related