Modul 5 Perulangan

10
5. Materi 5: Perulangan 5.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.

Transcript of Modul 5 Perulangan

Page 1: 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:

Page 2: Modul 5 Perulangan

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.

Page 3: Modul 5 Perulangan

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.

Page 4: Modul 5 Perulangan

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

Page 5: Modul 5 Perulangan

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

Page 6: Modul 5 Perulangan

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:

Page 7: Modul 5 Perulangan

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

Page 8: Modul 5 Perulangan

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