BRU 125 A BRU 160 A BRU 80 A Single pole distribution blocks
MODUL3 BRU 03
-
Upload
zukrinurmustapa -
Category
Documents
-
view
798 -
download
9
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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