modul3 bru 03

27
MODUL PERULANGAN TUJUAN Setelah melakukan pratikum , diharapkan praktikan dapat: 1. Mengetahui cara mendefinisikan dan menggunakan LABEL dalam pe- mograman pascal. 2. Menggunakan statemen GOTO untuk percabangan tak bersyarat dalam program. 3. Menggunakan statemen FOR-DO dan FOR-DOWNTO-DO untuk pengulangan dalam program. 4. Menggunakan statemen WHILE-DO untuk perulangan dalam program. 5. Menggunakan statemen REPEAT-UNTIL untuk perulangan dalam program PENDAHULUAN Di dalam bahasa Pascal, dikenal tiga macam perulangan, yaitu dengan menggunakan statemen For, While-Do, dan Repeat-Until. 1. STRUKTUR PERULANGAN FOR Perulangan dengan statemen For digunakan untuk mengulang pernyataan(statemen) atau satu blok pernyataan(statemen) berulang kali sejumlah yang ditentukan. Perulangan dengan statemen For dapat berbentuk perulangan positif, perulangan negative dan perulangan tersarang. PEMROGRAMAN PASCAL 47

Upload: zukrinurmustapa

Post on 24-Jun-2015

793 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: MODUL3 BRU 03

MODUL

PERULANGAN

TUJUAN

Setelah melakukan pratikum , diharapkan praktikan dapat:1. Mengetahui cara mendefinisikan dan menggunakan LABEL dalam pe-

mograman pascal.2. Menggunakan statemen GOTO untuk percabangan tak bersyarat dalam

program.3. Menggunakan statemen FOR-DO dan FOR-DOWNTO-DO untuk

pengulangan dalam program.4. Menggunakan statemen WHILE-DO untuk perulangan dalam program.5. Menggunakan statemen REPEAT-UNTIL untuk perulangan dalam program

PENDAHULUAN

Di dalam bahasa Pascal, dikenal tiga macam perulangan, yaitu dengan

menggunakan statemen For, While-Do, dan Repeat-Until.

1. STRUKTUR PERULANGAN FOR

Perulangan dengan statemen For digunakan untuk mengulang

pernyataan(statemen) atau satu blok pernyataan(statemen) berulang kali sejumlah

yang ditentukan. Perulangan dengan statemen For dapat berbentuk perulangan

positif, perulangan negative dan perulangan tersarang.

a. Perulangan Positif (For-To-Do)

Perulangan positif adalah perulangan dengan penghitung (counter) dari

kecil ke besar atau dengan kata lain pertambahannya positif. Perulangan positif

dapat dibentuk dengan menggunakan statemen For-To-Do.

Bentuk Umum :

PEMROGRAMAN PASCAL 47

For variable-kontol := nilai awal To nilai akhir Do statemen

Page 2: MODUL3 BRU 03

Contoh 1 :

Algoritma :

i. Mulaiii. Masukkan bilangan niii. Set jumlah 0iv. Set i 1v. Untuk i 1 sampai n lakukan hitung jumlah jumlah + ivi. Tampilkan hasil jumlahvii. Selesai

PEMROGRAMAN PASCAL 48

i = awal,awal+1,awal+2,…,akhir

Perintah yang dijalankan

Page 3: MODUL3 BRU 03

Flowchart

Simpan contoh1 pada E:\PK\Sesi\CTH3_1

b. Perulangan Negatif (For-DownTo-Do)

Perulangan negative adalah perulangan dengan penghitung (counter) dari

besar ke kecil atau dengan kata lain pertambahannya negative. Perulangan

negative dapat dibentuk dengan statemen For-DownTo-Do.

Bentuk Umum :

PEMROGRAMAN PASCAL 49

For variable-kontol := nilai awal DownTo nilai akhir Do statemen

Mulai

Bilangan n

Jumlah 0

i 1 to n do

i 0

Jumlah jumlah + i

Jumlah

Selesai

Page 4: MODUL3 BRU 03

Contoh 2 :

Buatlah algoritma dan flowchartnya !

Simpan contoh 2 pada E:\PK\Sesi\CTH3_2

PEMROGRAMAN PASCAL 50

i = awal,awal-1,awal-2,…,akhir

Perintah yang dijalankan

Page 5: MODUL3 BRU 03

c. Perulangan For Tersarang (Nested Loop)

Perulangan For tersarang adalah perulangan For yang berada di dalam

perulangan For lainnya. Perulangan yang lebih dalam akan diproses terlebih

dahulu sampai habis, kemudian perulangan yang lebih luar baru akan

bertambah, mengerjakan perulangan yang lebih dalam lagi mulai dari nilai awal

dan seterusnya.

Contoh 4 :

Buatlah algoritma dan flowchartnya !

Simpan contoh 4 pada E:\PK\Sesi\CTH3_4

PEMROGRAMAN PASCAL 51

Page 6: MODUL3 BRU 03

CONTOH STRUKTUR FOR :

1. Buatlah program pengulangan sebanyak 5 kali dan menampilkan hasil operasi penjumlahan a = 1 + i (i menyatakan pengulangan ke-i).

Program Pengulangan;Uses crt;Var a,i : integer;Begin Clrscr; For i:=1 to 5 do Begin Writeln('Pengulangan ke ',i); a:= 1 + i; Writeln('a = 1 + ',i,' = ',a); Writeln; End; Readln;End.

2. Buatlah program menampilkan karakter dari karakter ‘a’ sampai ‘m’.

Program Pengulangan_untuk_Karakter;Uses crt;Var i : Char;Begin Clrscr; For i := 'a' to 'm' do Begin Write(' ',i); End; Readln;End.

3. Buatlah program untuk menghitung faktorial n.

Ilustrasi : n! = 1x2x3x…x n, dimana n>0

0! = 1

Program Faktorial;{Menghitung n! untuk n bilangan bulat tak negatif}Var n,fak,i :integer;Begin Write('Masukkan nilai n : '); Readln(n); Fak:=1; For i:=1 to n do

PEMROGRAMAN PASCAL 52

Page 7: MODUL3 BRU 03

Begin Fak:=fak * i; End; Writeln('Nilai faktorial dari n adalah ',fak); readln;end.

4. Buatlah program untuk menampilkan table hasil perkalian 1x1 sampai 1x10, 2x1

sampai 2x10, 3x1 sampai 3x10, 4x1 sampai 4x10, dan 5x1 sampai 5x10.

Program Menampilkan_Hasil_Perkalian;Uses crt;Var K,Op :integer;Begin Clrscr; Writeln(' Tabel hasil Perkalian '); Writeln('--------------------------------------'); For K:=1 to 10 do Begin For Op:=1 to 5 do Begin Write(Op:2,'x',K:2,' = ',(Op*K):2,' '); End; Writeln; End; Writeln('--------------------------------------'); Readln;End.

5. Buatlah program menampilkan volum balok dengan menggunakan perintah perulangan For.

Program Volum_Balok;Uses crt;Var P,L,T,V : real; Balok_ke,n : integer;Begin Write('Jumlah balok : ');readln(n); For Balok_ke := 1 to n do Begin Write('Panjang : ');readln(P); Write('Lebar : ');readln(L); Write('Tinggi : ');readln(T); V:=P*L*T; Writeln('Volum : ',V:10:2); End; Readln;End.

PEMROGRAMAN PASCAL 53

Page 8: MODUL3 BRU 03

2. STRUKTUR PERULANGAN WHILE-DO

Statemen While-Do digunakan untuk melakukan proses perulangan suatu

pernyataan (statemen) atau blok pernyataan(statemen) terus menerus selama

kondisi ungkapan-logika pada While masih bernilai benar (terpenuhi). Statemen

While-Do biasa dipakai untuk melakukan pengulangan yang jumlahnya tidak

diketahui didepan.

Bentuk Umum :

PEMROGRAMAN PASCAL 54

While ungkapan logika DoBegin

Pernyataan End;

Ungkapan logika

Pernyataan

Tidak

Ya

Page 9: MODUL3 BRU 03

Contoh 5 :

Algoritma :

i. Mulai

ii. Masukkan bilangan n

iii. Set jumlah 0

iv. Set i 1

v. Selama i ≤ n lakukan

Hitung jumlah jumlah + i

i i+1

vi. Tampilkan hasil jumlah

vii. Selesai

PEMROGRAMAN PASCAL 55

Page 10: MODUL3 BRU 03

Flowchart :

Simpan contoh 5 pada E:\PK\Sesi\CTH3_5

PEMROGRAMAN PASCAL 56

Mulai

Bilangan n

Jumlah 0

i 0

Jumlah jumlah+i

i i + 1

Jumlah

Selesai

i ≤ n Ya

Tidak

Page 11: MODUL3 BRU 03

CONTOH STRUKTUR WHILE-DO :

1. Buatlah program untuk menampilkan n bilangan pertama dari Barisan Fibonaci.

Barisan Fibonaci berbentuk barisan 1 1 2 3 5 8 13 21 34 55 89 144 …

Program Barisan_Fibonaci;Var s1,s2,i,a,n : integer;Begin write('Masukan banyak suku barisan : '); readln(n); s1:=1; {suku pertama} s2:=1; {suku kedua} i:=3; If n=1 then writeln (s1,' ',s2) Else Begin write(s1,' ',s2); while i<=n do Begin a:=s1; s1:=s2; s2:=a+s1; write(' ',s2); i:=i+1; end; writeln; end; readln;end.

2. Buatlah program menghitung penjumlahan dari suatu bilangan bulat (1/x).

Misalkan jumlah deret tersebut adalah S. Sebelum penjumlahan, S diinisialisasi

dengan 0. Setiap kali membaca x, harus diperiksa apakah x = 0. Jika x = 0, maka

proses pengulangan berhenti, tetapi jika tidak, maka jumlahkan S dengan (1/x).

Unuk menghentikan proses penginputan, input bilangan (x) = 0.

Program Penjumlahan_Deret_Pecahan;Uses crt;Var x : integer; S : real;Begin Clrscr; S:=0; Write('Masukkan Bilangan Bulat : ');Readln(x); While x <> 0 do Begin S := S + (1/x); Write('Masukkan Bilangan Bulat : ');readln(x);

PEMROGRAMAN PASCAL 57

Page 12: MODUL3 BRU 03

End; {Inputkan angka 0 untuk menghentikan proses input} Writeln('Jumlah deret pecahan tersebut = ',S:8:2); Readln; End.

3. Buatlah program melakukan dua pengulangan, yang pertama dengan statemen For

yang menampilkan teks ‘Contoh Pengulangan’ sebanyak 5 kali. Pengulangan

kedua menggunakan statemen While-do untuk menampilkan nilai dari fungsi Sin

sebanyak 10 kali.

Program Pengulangan;Uses crt;Var i :integer; a,b,x:real;Begin Clrscr; For i:= 1 to 5 do writeln('Contoh Pengulangan'); Writeln; x:=1; While x<2 do Begin b:=x*30; a:=sin(b*pi/180); writeln('Sin(',b:2:0,') = ',a:5:2); x:=x+0.1; end; Readln;end.

4. Buatlah program dengan nama ‘Luas_Dibawah_Kurva’ untuk menghitung

hampiran luas di bawah kurva pada suatu selang tertentu.

Permasalahan

Untuk menghitung luas daerah di bawah kurva dapat digunakan aturan

bujursangkar yang membagi daerah di bawah kurva menjadi beberapa partisi

dengan lebar yang sama (katakana delta). Persamaan kurvanya adalah fungsi

. Luas daerah dibawah kurva fungsi tersebut dapat

dinyatakan dalam bentuk :

PEMROGRAMAN PASCAL 58

Page 13: MODUL3 BRU 03

Yang mana a dan b berturut-turut merupakan batas bawah dan batas atas dari

bentuk integral di atas dan nilai untuk x [a,b]. Dengan metode

bujursangkar diperoleh hampiran untuk luas daerah di bawah kurva f(x)

adalah :

Petunjuk

- Input : a dan b

- Output : luas

- Algoritma :

i) Delta = (b-a)/100 {dibagi atas 100 partisi}

ii) Inisialisasi : x = a dan luas = 0

iii) Buat pengulangan selama x < b dan lakukan perhitungan

x = x + delta

tinggi = x2+2x+1

luas_partisi = delta*tinggi

luas = luas + luas_partisi

Program Menghitung_Luas_Daerah_Dibawah_Kurva;Uses crt;Var a,b,x,delta,tinggi,luas_partisi,luas : real;Begin Clrscr; write('Input batas bawah : ');readln(a); write('Input batas atas : ');readln(b); delta := (b-a)/100; x:=a; luas:=0; while x<b do begin x:=x+delta; tinggi:=x*x+2*x+1; luas_partisi:=delta*tinggi; luas:=luas+luas_partisi; end; writeln('Luas daerah dibawah kurva adalah : ',luas:10:2); readln;end.

PEMROGRAMAN PASCAL 59

Page 14: MODUL3 BRU 03

3. STRUKTUR PERULANGAN REPEAT-UNTIL

Repeat-Until digunakan untuk mengulang (Repeat) statemen atau blok

statemen sampai (Until) kondisi Ungkapan yang diseleksi di Until salah (tidak

terpenuhi). Repeat biasa dipakai untuk menangani perulangan yang jumlahnya

belum pasti, tetapi paling tidak dikerjakan sekali (Pada While, ada kemungkinan

bagian pernyataan tidak dijalankan sama sekali).

Bentuk Umumnya :

Perbedaan antara struktur Repeat-Until dengan struktur While-Do

1. Paling sedikit statemen-statemen di dalam perulangan Repeat-Until diproses

satu kali, karena seleksi kondisi ada pada statemen Until yang terletak di

bawah. Sedang pada struktur While-Do paling sedikit dikerjakan nol kali,

karena seleksi kondisi ada pada statemen While-Do yang terletak di atas,

PEMROGRAMAN PASCAL 60

RepeatPernyataan1;Pernyataan2;

Pernyataann;

Until ungkapan;

Pernyataan

Ungkapan

Ya

Tidak

Page 15: MODUL3 BRU 03

sehingga kalau kondisi tidak terpenuhi maka tidak akan masuk ke dalam

lingkungan perulangaannya.

2. Pada Repeat-Until dapat tidak dipergunakan blok statemen (tidak diperlukan

Begin dan End untuk menunjukkan batas perulangannya), karena batas

perulangannya sudah ditunjukkan oleh Repeat sampai dengan Until (Repeat

dan Until sebagai pengganti Begin dan End). Sedangkan pada While-Do jika

pernyataan (statemen) lebih dari satu maka pernyataan tersebut harus diapit

dengan Begin dan End.

3. Pada Repeat-Until pengulangan justru dilakukan selama kondisi ungkapan

bernilai salah, dan dan berlaku sebaliknya pada Statemen While-Do.

Contoh 6 :

Algoritma :

viii. Mulai

ix. Masukkan bilangan n

x. Set jumlah 0

xi. Set i 1

PEMROGRAMAN PASCAL 61

Page 16: MODUL3 BRU 03

xii. Ulangi

Hitung jumlah jumlah + i

i i+1

Sampai i > n.

xiii. Tampilkan hasil jumlah

xiv. Selesai

Flowchart :

Simpan contoh 6 pada E:\PK\Sesi\CTH3_6

PEMROGRAMAN PASCAL 62

Mulai

Bilangan n

Jumlah 0

i 0

Jumlah jumlah+i

i i + 1

Jumlah

Selesai

i ≤ n

Ya

Tidak

A

Page 17: MODUL3 BRU 03

CONTOH STRUKTUR REPEAT-UNTIL :

1. Buatlah program mengkonversi suhu dari Celcius ke Fahrenheit.

Fahrenheit = ((9/5)*Celcius) +32.

Program Mengkonversi_Suhu_dari_Celcius_ke_Fahrenheit;Uses crt;Var Celcius,Fahrenheit : real;Begin Clrscr; writeln('--------------------'); writeln('Celcius Fahrenheit'); writeln('--------------------'); celcius:=0; repeat fahrenheit:=((9/5)*celcius)+32; writeln(celcius:8:2,fahrenheit:8:2); celcius:=celcius+0.5; until celcius>5; writeln('---------------------'); readln;end.

2. Buatlah tabel untuk menampilkan hubungan antara nilai sisi-sisi suatu segitiga

siku-siku (Teorema Phytagoras).

C2 = A2+B2

Tabel yang akan dihasilkan berupa nilai-nilai panjang sisi miring C untuk nilai-

nilai sisi A dari 1 sampai 3 dengan kelipatan 1 dan untuk sisi B dari 0 sampai 25

dengan kelipatan 5.

Program Teorema_phytagoras;Var A,B,C : real;Begin writeln('-----------------------------'); writeln('Sisi A Sisi B Sisi C'); writeln('-----------------------------'); A:=1; Repeat B:=0; Repeat C:=sqrt(A*A + B*B); writeln(A:6:2, B:10:2, C:12:2); B:=B+5; Until B>25;

PEMROGRAMAN PASCAL 63

Page 18: MODUL3 BRU 03

A:=A+1; Until A>3; writeln('------------------------------'); readln;End.

3. Buatlah simulasi menu program untuk menghitung luas atau keliling lingkaran.

Program Simulasi_Menu_Program;Uses crt;var no_menu :integer; r,L,K :real;Begin Clrscr; Repeat {Cetak menu} writeln; writeln(' Menu '); writeln('1.Menghitung Luas lingkaran'); writeln('2.Menghitung keliling lingkaran'); writeln('3.Keluar program'); writeln; writeln('Masukan pilihan anda 1/2/3 : '); writeln; write('Masukkan pilihan anda');readln(no_menu); if no_menu=1 then begin write('masukkan jari-jari = ');readln(r); L:=Pi*r*r; writeln('Luasnya adalah = ',L); end; if no_menu=2 then begin write('masukkan jari-jari = ');readln(r); K:=2*Pi*r; writeln('Kelilingnya adalah = ',L); end; if no_menu=3 then write('Keluar program'); until no_menu=3; readln; end.

PEMROGRAMAN PASCAL 64

Page 19: MODUL3 BRU 03

4. Buatlah program untuk menghitung jumlah kemunculan bilangan genap, dimana

bilangan bulat (x) diinput dari keyboard. Untuk menghentikan proses

penginputan, input bilangan bulat(x) = 9999.

Program Jumlah_Kemunculan_Bilangan_Genap;{Menghitung Jumlah Kemunculan Data Bilangan Genap}Uses crt;Var x : integer; {bilangan bulat yang dibaca} nx : integer; {jumlah kemunculan data bilangan genap}

Begin Clrscr; nx:=0; write('masukkan bilangan bulat x : ');readln(x); repeat begin If x mod 2 = 0 then {x adalah bilangan genap} nx := nx + 1; write('masukkan bilangan bulat x : ');readln(x); end; {Inputkan angka 9999 untuk menghentikan proses input} until x=9999; writeln('Jumlah bilangan genap adalah = ',nx); Readln; end.

PEMROGRAMAN PASCAL 65

Page 20: MODUL3 BRU 03

LATIHAN :

1. Buatlah program untuk menampilkan dan mengalikan n buah bilangan ganjil

pertama.

Petunjuk :

Input banyak barisan (n) dari keyboard

Set Bil = 1, Beda = 2, dan Kali = 1

Untuk i = 1 s/d n

- Kali = Kali * Bil

- Bil = Bil + Beda

2. Buatlah program untuk menghitung deret pecahan berikut :

1 – 1/3 + 1/5 – 1/7 + 1/9 + … ±1/n, dimana n bilangan bulat positif.

Ilustrasi : setiap pecahan a/b terdiri atas pembilang a, dan penyebut b.

Perhatikan keteraturan deret tersebut, penyebut pada tiap suku bertambah 2

dari penyebut sebelumnya. Tanda suku berselang-seling, positif, negative,

positif, negative, dst. Tanda positif adalah suku ke-i ganjil, dan tanda negative

untuk suku ke-i genap. Bilangan ganjil dan genap dapat ditentukan dengan

operator mod. Setiap penyebut suku ke-i dapat ditulis dalam rumus :

Suku ke-i = 1/p ; p = 1,3,…,N

Pengulangan dilakukan selama p ≤ n.

3. Buatlah program untuk menghitung nilai total dan nilai rata-rata.

PEMROGRAMAN PASCAL 66

Page 21: MODUL3 BRU 03

4. Buatlah program untuk menampilkan tabel sinus untuk sudut 0 sampai 180

dengan kelipatan 10.

Petunjuk :

Set derajat = 0 dan Nomor = 1

Ulangi perintah

- Radian = (derajat/180) * pi

- Hasil = sin(radian)

- Nomor = Nomor +1

- Derajat = Derajat +1

Sampai derajat > 180

Output :

<<<<< Tabel Sinus >>>>

Nomor Sudut Sin(sudut)

PEMROGRAMAN PASCAL 67