materi iii - struktur perulangan looping

10

Click here to load reader

Upload: frans

Post on 13-Jun-2015

2.027 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Materi III - Struktur Perulangan Looping

MATERI I I I

STRUKTUR KONTROL PERULANGAN (LOOPING)

Materi Praktikum

Pemograman Bahasa C++ dengan Struktru Kontrol Perulangan (Looping)

Durasi

180 menit

TIU/TIK

1. Pendahuluan 2. Instruksi Switch dan Break (kelanjutan conditional) 3. Instruksi Perulangan FOR dan Continue 4. Instruksi Perulangan WHILE 5. Instruksi Perulangan DO-WHILE

Referensi

1. Diktat dan Literatur 2. Schildt, C++: The Complete Reference Third Edition, McGraw-Hill, 1998

Page 2: Materi III - Struktur Perulangan Looping

Bagi

an I.

PEN

DA

HU

LUA

N

I . PENDAHULUAN

Meskipun kita telah mampu mendefinisikan permasalahan kita dalam bentuk percabangan (if-conditional), terkadang hal tersebut tidaklah cukup. Misalnya kita telah memilih salah satu alternatif yang ada, namun apabila alternatif tersebut tidak sesuai dengan yang diharapkan, kita perlu kembali ke langkah-langkah sebelumnya untuk mencari alternatif lain. Pada bagian inilah kita menggunakan proses perulangan, atau dalam bahasa pemrograman bisa disebut dengan looping. Selain untuk menyelesaikan permasalahan di atas, looping dapat digunakan untuk menghasilkan program agar dapat berjalan lebih efektif. Andaikata kita perlu menuliskan nomor urut dari no.1 hingga no.100. Tanpa menggunakan looping, maka kita perlu menuliskannya satu per satu. Hal tersebut tentu banyak menyita waktu, energi, dan filesize. Akan tetapi, bila kita menggunakan looping, maka setidaknya hanya butuh beberapa baris perintah untuk mencapai tujuan tersebut. Dalam Bahasa C++, instruksi yang paling umum digunakan adalah instruksi FOR, instruksi WHILE, dan instruksi DO-WHILE. Seluruh proses dapat dilakukan oleh ketiga instruksi tersebut. Namun, instruksi ’for’ umumnya digunakan untuk proses looping dimana jumlah perulangannya diketahui, sedangkan instruksi ’while’ dan ’do-while’ digunakan apabila proses perulangan bergantung pada suatu kondisi.

II . SWITCH DAN BREAK

Sebelum kita masuk ke materi utama yaitu mengenai pengulangan / looping, kita akan melanjutkan materi sebelumnya mengenai conditional di bab 2 ini, yaitu mengenai switch. Sebenarnya switch tidak jauh berbeda dengan sintaks if – else sebelumnya. Instruksi SWITCH adalah suatu instruksi yang ditujukan untuk mengeksekusi salah satu statement dari sejumlah statement yang ada. Untuk lebih jelasnya, jalankan program di bawah ini.

INPUT DATA #1: #include <iostream> #include <conio.h> using namespace std; int main() { int kode; cout << "Perasan Anda Hari Ini\n"; cout << "1=BAHAGIA 2=SENANG 3=BIASA SAJA \n"; cout << "4=SEDIH 5=KESAL 6=MARAH \n\n"; cout << "Perasaan Anda [1....6]: "; cin >> kode; //proses seleksi switch (kode) { case 1: cout << "BAHAGIA"; break; case 2: cout << "SENANG"; break; case 3: cout << "BIASA SAJA"; break; case 4: cout << "SEDIH"; break; case 5: cout << "KESAL"; break; case 6: cout << "MARAH"; break; default: cout << "Maaf kode Anda salah"; break; } getch(); return 0; }  

Page 3: Materi III - Struktur Perulangan Looping

Bagi

an

OUTPUT DATA #1:  Perasan Anda Hari Ini 1=BAHAGIA   2=SENANG   3=BIASA SAJA 4=SEDIH     5=KESAL    6=MARAH  Perasaan Anda [1....6]: 2 SENANG  

KETERANGAN

switch (kode) kata ’kode’ merupakan nama variabel yang akan nilainya akan dicocokkan dengan nilai pada case yang ada. Apabila nilai kode tersebut cocok dengan salah satu case yang ada, maka statement di dalam case tersebut akan dieksekusi.

case 2: cout << ”SENANG”; Jika variabel kode kita masukkan nilai ”2”, maka program akan mencari case yang sesuai, yakni ”case 2” kemudian menjalankan statement di dalamnya. Apabila seluruh statement telah dieksekusi maka harus dituliskan instruksi break.

break; Instruksi ini bertujuan untuk keluar dari suatu blok, dalam hal ini adalah blok switch. Maksud penggunaan disini adalah agar proses switch berakhir setelah menjalankan statement yang diperlukan. Atau dapat diartikan pula perintah break ini untuk membatasi antara case satu dengan case lainnya.

default Apabila nilai dari variabel yang dicocokkan tidak ada dalam pilihan case, maka statement yang dijalankan adalah yang berada di dalam instruksi default ini. Dapat dianalogikan default ini sama dengan else pada contoh percabangan.

III . INSTRUKSI PERULANGAN FOR DAN CONTINUE

INSTRUKSI FOR

Sekarang kita masuk ke materi utama mengenai pengulangan dari bab ini sampai bab terakhir. Seperti yang telah dibahas sebelumnya, instruksi for umumnya digunakan bila jumlah perulangan telah kita ketahui. Bentuk umum dari instruksi for :

for ([inisiasi_counter]; [syarat_perulangan]; [update_counter])

{

…..statement-statement yang akan diulang….

}

Bila kita melihat bentuk di atas, terdapat 3 parameter yang perlu kita tentukan :

inisiasi_counter Bagian ini bertujuan untuk menentukan variabel apa yang akan digunakan untuk menjadi variabel utama untuk melakukan perulangan. Nilai dari variabel ini akan berubah seiring dengan proses perulangan yang terjadi.

syarat_perulangan Bagian ini untuk menentukan batas dari perulangan tersebut. Pada saat kapan proses perulangan akan berakhir ditentukan pada bagian. Umumnya bagian ini diisi dengan suatu pernyataan yang melibatkan variabel counter.

Page 4: Materi III - Struktur Perulangan Looping

Bagi

an II

I. IN

STR

UK

SI P

ERU

LAN

GA

N F

OR

dan

con

tinue

update counter Bagian ini bertujuan untuk mengubah nilai daripada counter. Apakah nilai counter ditambahkan (increment) setiap kali perulangan terjadi atau justru mengalami penurunan nilai (decrement).

Namun perlu untuk diketahui bahwa ketiga parameter tersebut bersifat optional, dengan kata lain tidak wajib dijelaskan. Ada beberapa kasus dimana kita melakukan deklarasi dengan cara berbeda, tidak sesuai dengan bentuk di atas.

Sebagai bahan latihan, misalkan kita akan membuat suatu program dari algoritma di bawah ini:

Berikut adalah input programmnya :

INPUT DATA #2: #include <iostream> #include <conio.h> using namespace std; int main() { int batas = 10; int nomor; for (nomor =1; nomor <= batas; nomor ++) { cout << nomor << "\n"; } getch(); return 0; }  

OUTPUT DATA #2: 1 2 3 4 5 6 7 8 9 10 

START

batas = 10

for nomor = 1 to batas

CETAK : nomor

Nomor

START

Page 5: Materi III - Struktur Perulangan Looping

Bagi

an II

I. IN

STR

UK

SI P

ERU

LAN

GA

N F

OR

dan

con

tinue

Lebih mudah dibandingkan mengetikkan satu per satu, kan ? Bentuk daripada for bisa bermacam-macam. Berikut adalah contoh dari bentuk tipe bersarang :

INPUT DATA #3: #include <iostream> #include <conio.h> using namespace std; int main() { int naik; int turun; for (naik =1; naik <= 5; naik ++) { cout << "\n" << naik << " "; for (turun =6; (turun-naik) >= 1; turun --) { cout << "*" ; } } getch(); return 0; }  

OUTPUT DATA #3:  1 ***** 2 **** 3 *** 4 ** 5 *   Contoh di atas melibatkan proses increment dan decrement. Pada for tingkat kedua, nilai syarat_perulangan bergantung pada nilai di for yang pertama. Bentuk seperti program diatas umumnya banyak digunakan untuk membentuk grafik sederhana dalam bahasa C++

CONTINUE

Jika tadi kita menggunakan break untuk menghentikan proses pada blok tersebut dan keluar dari blok tersebut, instruksi continue pun melakukan hal yang serupa, yaitu tidak menjalankan proses-proses yang berada setelah continue, namun justru langsung melanjutkan proses di luar blok. Berikut contohnya :

INPUT DATA #4: #include <iostream> #include <conio.h> using namespace std; int main() { int data; for (data =1; data <= 10; data ++) { if (data %2 != 0) continue; cout << data << " "; } getch(); return 0; } 

Page 6: Materi III - Struktur Perulangan Looping

Bagi

an IV

. IN

STR

UK

SI P

ERU

LAN

GA

N W

HIL

E

OUTPUT DATA #4:  2 4 6 8 10  

KETERANGAN

Proses pertama adalah menjalankan proses for. Saat data bernilai 1, proses dilanjutkan dengan mengecek apakah modulus dari 1 dibagi 2 adalah 0. Kondisi menjadi true sehingga proses continue dijalankan dan perintah cout dilewat (tidak dieksekusi).

Selanjutnya proses for dilanjutkan. Sekarang nilai data menjadi 2 dan kembali dicek. Karena kondisi bernilai false, maka instruksi continue tidak dijalankan dan menyebabkan perintah cout berjalan. Di layar akhrnya menampilkan nilai dari data, yaitu 2.

IV. INSTRUKSI PERULANGAN WHILE

Instruksi lain yang dapat digunakan untuk menjalankan proses looping adalah instruksi while :

while ( syarat_perulangan )

{

…..statement-statement yang akan diulang….

}

Langsung saja kita coba untuk menggunakan instruksi WHILE dan membandingkannya dengan INPUT DATA #2 :

INPUT DATA #5: #include <iostream> #include <conio.h> using namespace std; int main() { int batas = 10; int nomor; nomor = 1; while (nomor <= batas) { cout << nomor << "\n"; nomor ++; } getch(); return 0; }

OUTPUT DATA #5: 1 2 3 4 5 6 7 8 9 10 

Page 7: Materi III - Struktur Perulangan Looping

Bagi

an IV

. IN

STR

UK

SI P

ERU

LAN

GA

N W

HIL

E

KETERANGAN

Hasil yang dikeluarkan akan sama dengan proses pada OUTPUT DATA #2, namun bentuk programnnya berbeda.

Jika kita lihat dengan lebih teliti, inisiasi_counter, syarat_perulangan dan update_counter sebenarnya masih terdapat dalam instruksi WHILE ini, hanya saja bentuknya berbeda.

Setelah nilai 1 di-assign pada variabel nomor, kemudian instruksi WHILE memeriksa apakah syarat_perulangan masih memenuhi. Jika kondisi bernilai true, maka statement perulangan akan dijalankan dan bila telah selesai maka akan diperiksa kembali hingga pada akhirnya proses perulangan akan berhenti ketika syarat_perulangan tidak terpenuhi lagi.

Namun ada yang harus diperhatikan dalam penggunaan WHILE ini. Bayangkan apa yang terjadi apabila statement

      nomor ++;   tidak kita tulis dalam program kita. Proses perulangan akan terus terjadi tanpa henti. Apabila proses yang dijalankan termasuk hal yang kompleks, maka hal ini dapat membuat komputer kita crash. Agar lebih tertantang, coba jalankan program ini dan pahami setiap langkah yang berjalan :

INPUT DATA #6: //Menghitung Jumlah Deret Angka #include <iostream> #include <conio.h> using namespace std; int main() { int bawah, atas; int total=0; cout << "Masukkan bilangan batas bawah : "; cin >> bawah; cout << "Masukkan bilangan batas atas : "; cin >> atas; if ((bawah >=0) && (atas >=0) && (bawah <= atas)) { while (bawah <= atas) { total += bawah; bawah ++; } cout << "Total Jumlah Deret Angka = " << total; } else cout << "Data Anda tidak valid"; getch(); return 0; }

OUTPUT DATA #6:  Masukkan bilangan batas bawah : 5 Masukkan bilangan batas atas : 10 Total Jumlah Deret Angka = 45  

Page 8: Materi III - Struktur Perulangan Looping

Bagi

an V

. IN

STR

UK

SI P

ERU

LAN

GA

N D

O-W

HIL

E

Coba tebak hasil apakah yang akan keluar dari input program seperti di bawah ini :

INPUT DATA #7: //Menghitung Mundur #include <iostream> #include <conio.h> using namespace std; int main() { int n; cout << "Masukkan angka awal : "; cin >> n; while (n>0){ cout << n << ", "; --n; } cout << "FIRE!\n"; getch(); return 0; }

V. INSTRUKSI PERULANGAN DO-WHILE

Bentuk terakhir untuk melakukan perulangan adalah dengan menggunakan instruksi DO-WHILE. Pada dasarnya instruksi ini tidak jauh berbeda dengan instruksi WHILE. Hal utama yang membedakan kedua instruksi ini adalah pada DO-WHILE statement akan dieksekusi terlebih dahulu tidak peduli apakah syarat_perulangan tidak memenuhi kemudian baru diperiksa syaratnya. Intinya, pada instruksi DO-WHILE setidaknya statement telah dieksekusi satu kali.

do

{

…..statement-statement yang akan diulang….

}

while ( syarat_perulangan );

Contohnya adalah sebagai berikut :

INPUT DATA #8: #include <iostream> #include <conio.h> using namespace std; int main() { int batas = 20; int nomor; nomor = 11; do { cout << nomor << "\n"; nomor ++; } while (nomor <= batas); getch(); return 0; }

Page 9: Materi III - Struktur Perulangan Looping

Bagi

an

OUTPUT DATA #8: 11 12 13 14 15 16 17 18 19 20 

Bandingkan dengan input pada program di bawah ini :

INPUT DATA #9: #include <iostream> #include <conio.h> using namespace std; int main() { int batas = 5; int nomor; nomor = 11; do { cout << nomor << "\n"; nomor ++; } while (nomor <= batas); getch(); return 0; }

OUTPUT DATA #9: 11  

KETERANGAN

Inilah yang membedakan antara WHILE dan DO-WHILE. Meskipun sejak pertama kali inisiasi syarat_perulangan sudah tidak memenuhi (11 ≤ 5), namun karena instruksi berupa DO-WHILE, maka program tetap akan mengeksuki statement tersebut satu kali sebelum akhirnya proses perulangan berakhir.

VI. HASIL CAPAIAN

1. Mahasiswa mengetahui dan memahami jenis-jenis instruksi perulangan dan fungsinya 2. Mahasiswa mampu menuliskan instruksi perulanan untuk mencapai hasil yang diinginkan 3. Mahasiswa mampu menerjemahkan permasalahan dalam bentuk struktur perulangan dalam bahasa C++.

Page 10: Materi III - Struktur Perulangan Looping

Bagi

an V

II. A

NA

LISA

DA

N T

UG

AS

VII. ANALISA DAN TUGAS

Perhatikan Tabel Perkalian di bawah ini : Tugas Anda adalah :

a. Buatlah tabel perkalian diatas dengan menggunakan Bahasa C++ b. Tabel Perkalian dibuat dengan dua cara :

- Menggunakan instruksi FOR - Menggunakan instruksi WHILE

c. Nilai tambah diberikan apabila dalam program Anda memiliki nilai kreativitas dan melibatkan instruksi

SWITCH. CATATAN : Untuk lebih mudah memahaminya, terlampir contoh program ”Materi III – Tabel Perkalian (sample).exe” Tugas dikumpulkan kepada asisten. (format file *.cpp. Berikan Nama dan NIM anda pada bagian atas program).

X  1  2  3  4  5  6  7  8  9  10 

1  1  2  3  4  5  6  7  8  9  10 

2  2  4  6  8  10  12  14  16  18  20 

3  3  6  9  12  15  18  21  24  27  30 

4  4  8  12  16  20  24  28  32  36  40 

5  5  10  15  20  25  30  35  40  45  50 

6  6  12  18  24  30  36  42  48  54  60 

7  7  14  21  28  35  42  49  56  63  70 

8  8  16  24  32  40  48  56  64  72  80 

9  9  18  27  36  45  54  63  72  81  90 

10  10  20  30  40  50  60  70  80  90  100