Modul 5 Perulangan
Transcript of Modul 5 Perulangan
5. Materi 5: Perulangan5.1. Sekilas tentang perulangan
Struktur perulangan secara umum terdiri dari dua bagian yaitu:
- Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali.
- Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk
melaksanakan pengulangan.
- Badan (body) pengulangan, yaitu bagian program yang diulang
- Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan
Bahasa C++ menyediakan tiga sintaks untuk membuat perulangan yaitu: for.
while, dan do-while
5.2. Perulangan dengan for
Statement for mempunyai bentuk umum sebagai berikut:
for(exp1; exp2; exp3) statement;atau:
for(exp1; exp2; exp3){
statement1;statement2;…….
}exp1 adalah bagian inisialisasi, yaitu suatu ungkapan yang memberikan nilai awal suatu
variable untuk perulangan. Variable ini jug disebut dengn indeks atau loop-control
variable. Misalnya x = 1.
exp2 adalah bagian kondisi, yaitu ungkapan yang menunjukkan suatu kondisi yang
harus dipenuhi agar perulangan masih dapat terus dilakukan. Misalnya x < 10.
exp3 menunjukkan increment atau decrement, yaitu ungkapan yang merubah nilai-nilai
variable pengontrol perulanngan setiap saat perulangan dilakukan (misalnya x++
menunjukkan nilai x akan ditambah satu setiap perulangan dilakukan).
Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal,
syarat looping dan perubahannya. Selama kondisi terpenuhi, maka pernyataan akan
terus dieksekusi.
Contoh, program untuk menuliskan kata hello world sebanyak sepuluh kali:
Output:
Infinite Loop
Untuk membuat infinite loop dapat dilakukan dengan menggunakan “for-
loop”, dengan menghilangkan ketiga parameter (exp1, exp2, exp3) yang ada pada for
loop. Untuk keluar dari loop dapat digunakan statement break.\
Contoh Infinite Loop:
for ( ; ; ) printf(“Saintek UIN ! \n”);
Program tersebut akan menampilkan kalimat: “Saintek UIN !” terus menerus tanpa
henti (infinite). Untuk menghentikannya Anda bisa menggunakan Ctrl + Break atau
Ctrl + C atau tekan Ctrl + Alt + Del atau tekan Tombol Reset.
5.3. While
Pernyataan while merupakan salah satu pernyataan yang berguna untuk
memproses suatu pernyataan atau beberapa pernyataan beberapa kali. Pernyataan while
memungkinkan statemen-statemen yang ada didalamnya tidak diakukan sama sekali.
Sintaks :while (exp) statements;
atau :while(exp){statement1;statement2;…..….
}
exp adalah ekspresi boolean yang menghasilkan nilai True (satu) atau False (nol).
Statement di-eksekusi berulang-ulang selama exp tidak Nol.Pengetesan exp dilakukan
SEBELUM statements dilaksanakan.
Contoh, program untuk menampilkan angka 1 hingga 10 menggunakan perulangan
while:
Output:
5.4. Do-while
Pernyataan do…while mirip seperti pernyataan while, hanya saja pada do…
while pernyataan yang terdapat didalamnya minimal akan sekali dieksekusi.
Sintaks :do{
< statements >;} while(exp);
- Selama nilai exp true maka statement dieksekusi berulang-ulang.
- Pengetesan exp dilakukan SETELAH meng-eksekusi statement.
- Pada konstruksi while, statement atau blok statement mungkin tidak akan pernah
dilaksanakan, bila nilai ekspresi boolen (exp) bernilai False, karena sebelum
konstruksi pengulangan dimasuki nilai ekspresi boolean (exp) terlebih dahulu diuji.
- Pada konstruksi do-while statement atau blok statement pasti dikerjakan paling
sedikit satu kali, karena ekspresi boolean baru diuji pada akhir blok pengulangan.
Beberapa cara untuk menghentikan pengulangan, ini dapat dilakukan dengan
menambah:
1. Sentinel atau Pembatas dengan kode khusus (misalkan user harus menekan karakter x
untuk keluar dari program).
2. Pertanyaan, Apakah pengulangan akan dilanjutkan.
Contoh penggunaan do-while pada pemilihan menu. Menu akan tampil terus jika user
salah menekan tombol untuk memilih menu.#include <iostream.h>#include <conio.h>
using namespace std;
int main(){ int menu; do { system("cls"); cout << "*******************************" << endl; cout << "* SELAMAT DATANG DI PROGRAMKU *" << endl; cout << "* *" << endl; cout << "* silahkan pilih menu: *" << endl; cout << "*******************************" << endl << endl;
cout << "1. Input Data" << endl; cout << "2. Lihat Data" << endl; cout << "3. Hapus Data" << endl; cout << "4. Edit Data" << endl; cout << "5. EXIT" << endl << endl; cout << "pilih menu: "; cin >> menu; } while (menu > 5 || menu < 1);
Lanjut dihalaman berikutnya
Output:
Pada program diatas jika user memasukkan angka lebih besar dari 5 atau kurang dari 1
maka program akan kembali lagi menampilkan tampilan menu awal.
Kode system("cls"); digunakan untuk membersihkan layar.
5.5. Contoh Perulangan
1. Menghitung pangkat
Problem: program untuk menghitung pangkat suatu bilangan. Program akan
meminta dua input dari user, m dan n. Bilangan m akan menjadi bilangan yang
akan dipangkatkan, dan n menjadi pangkat.
Solve: menggunakan perulangan dengan pseudo code berikut:
hasil = 1;
for(i=0;i<n;i++) hasil *= m;
Program:
switch(menu) { case 1: cout << "menu input data dipilih"; break; case 2: cout << "menu lihat data dipilih"; break; case 3: cout << "menu hapus data dipilih"; break; case 4: cout << "menu edit data dipilih"; break; case 5: exit(0); }
getch();}
Output:
2. Menghitung faktorial
Problem: program untuk menghitung nilai faktorial suatu bilangan (N). Contoh
3! = 3 x 2 x 1 = 6
Solve: menghitung faktorial dapat menggunakan perulangan menurun:
faktorial = 1;
for(i=N;i>=1;i--) faktorial *= i;
Program:
Output:
3. Menghitung nilai rata-rata dari sejumlah bilangan yang dimasukkan user.
Problem: program untuk menghitung nilai rata-rata dari sejumlah N bilangan
yang ditentukan user.
Solve: input program adalah N. Rata-rata dihitung dengan rumus: jumlah
seluruh bilangan dibagi N.
Program:
Output:
/*program menghitung rata-rata*/
#include <iostream.h>#include <conio.h>
using namespace std;
int main(){ int bil, N; double jumlah, rata_rata; cout << "jumlah input: "; cin >> N; jumlah = 0; for(int i=0;i<N;i++) { cout << "input bilangan ke-" << (i+1) << ": "; cin >> bil; jumlah += bil; } rata_rata = jumlah / N; cout << "Jumlah seluruh bilangan = " << jumlah << endl; cout << "Rata-rata = " << jumlah << " / " << N << " = " << rata_rata; getch();}
5.6. Exercise
1. Buatlah program untuk menjumlahkan seluruh bilangan ganjil dari 1 hingga 100.
2. Buatlah program untuk menampilkan deret fibonacci sebanyak N yang
dimasukkan user.
Deret fibonacci: 1 1 2 3 5 8 .....
3. Suatu program memiliki 4 menu, yaitu: (O) open file, (S) save file, (E)edit file,
dan (X) exit. Masukan user adalah pilihan menu yang diwakili dengan karakter
O, S, E, dan X. Karakter yang dimasukkan menu tidak harus huruf besar, user
juga dapat menginputkan huruf kecil. Menu akan terus berulang jika user tidak
menginputkan salah satu dari 4 karakter tersebut. Buatlah programnya.
4. Buatlah program dengan menggunakan perulangan untuk menampilkan
piramida dengan tinggi yang di tentukan user.
Contoh bentuk piramida dengan tinggi = 3
* ********
5. Buatlah program login, dimana user akan menginputkan username dan
password. Jika user salah memasukan username dan password lebih dari 3 kali,
maka program akan menampilkan pesan “KESEMPATAN ANDA HABIS”. Isi
username dan password sudah default yaitu untuk username adalah “namauser”
dan isi password adalah “12345”.
6. Buatlah program untuk menampilkan bilangan prima antara 1 hingga 100.
7. Buatlah program untuk menghitung perpangkatan dua bilangan. Input ada dua
bilangan yaitu, bilangan dan pangkat. Misalkan bilangan = 5. Pangkat = 2. Maka
program akan menghitung 5 pangkat 2 dan akan menampilkan hasilnya, yaitu 25