Pertemuan 2 Operasi String - iLab
Pertemuan 2 Operasi String - iLab
Pertemuan 2 Operasi String - iLab
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Pertemuan</strong> 2<br />
<strong>Operasi</strong> <strong>String</strong><br />
Objektif:<br />
1. Dapat mengerti dan menggunakan prosedur standar untuk operasi string<br />
2. Dapat mengerti dan menggunakan fungsi standar untuk opersi string<br />
| <strong>Pertemuan</strong> 2 28
P2.1 Teori<br />
Pengerjaan suatu string hanya mempunyai sebuah operator, yaitu ‘ + ‘. Bila<br />
operator ini digunakan untuk penambahan nilai numeric, maka akan berfungsi<br />
menjumlahkan dua buah nilai elemen numeric, tetapi pada string operator ini<br />
digunakan untuk merangkai dua buah elemen string menjadi sebuah string.<br />
Panjang maksimum suatu string yang diijinkan oleh Pascal adalah 255 karakter.<br />
Contoh :<br />
Const<br />
Jenis = ‘ Bahasa ’ ;<br />
Nama = ‘ Pascal ’ ;<br />
Var<br />
Sifat : string[10] ;<br />
Kalimat : string[80] ;<br />
Begin<br />
Sifat : = ‘ terstruktur ‘ ;<br />
Kalimat : = Jenis + ‘ ‘ + Nama + ‘ ‘ + ‘merupakan‘ + Jenis+ ’ ‘ + sifat;<br />
Writeln (kalimat) ;<br />
End.<br />
Output program :<br />
Bahasa Pascal merupakan bahasa terstruktur<br />
Dua buah string dikatakan sama bila nilai string yang pertama sama isi dan<br />
panjangnya dengan nilai string yang kedua. Blank dianggap nilai yang<br />
signifikan.<br />
| <strong>Operasi</strong> <strong>String</strong> 29
Prosedure Standar Untuk <strong>Operasi</strong> <strong>String</strong><br />
1. DELETE<br />
Digunakan untuk membuang sejumlah karakter tertentu (jumlah karakter yang<br />
dibuang ditunjukkan oleh nilai integer count) mulai dari posisi tertentu<br />
(ditunjukkan oleh nilai integer index) dari suatu nilai string ditunjukkan oleh<br />
pengenal variable string var s). Jika posisi index lebih besar dari panjang string<br />
s, maka tidak ada karakter yang akan terhapus.<br />
Bentuk Umum :<br />
Delete (var s : string, index : integer, count : integer);<br />
Contoh :<br />
Var<br />
Bahasa : string [12] ;<br />
Urutan , Posisi : integer ;<br />
Begin<br />
Bahasa : = ‘Turbo Pascal’ ;<br />
For Urutan : = 1 to 12 do<br />
Begin<br />
Posisi : = 14 – Urutan ;<br />
Delete (Bahasa, Posisi, 1);<br />
Writeln (Bahasa) ;<br />
End ;<br />
End.<br />
2. Prosedur Standar Insert<br />
Digunakan untuk menyisipkan suatu string (ditunjukkan oleh nilai string<br />
source), ke nilai string yang lainnya (ditunjukkan oleh nilai string var s) mulai<br />
dari posisi yang ditunjukkan oleh nilai integer index.<br />
| <strong>Operasi</strong> <strong>String</strong> 30
Bentuk Umum :<br />
Insert ( source : string , var s : string , index : integer );<br />
Contoh :<br />
Var<br />
Nama : string [30] ;<br />
Begin<br />
Nama : = ‘Pal’ ;<br />
Insert (‘sca’, Nama, 3) ;<br />
End.<br />
3. Prosedur Standar Str<br />
Digunakan untuk merubah nilai numeric (ditunjukkan oleh nilai x) menjadi nilai<br />
string (ditunjukkan oleh pengenal variable string var s). nilai x dapat berupa<br />
nilai numeric integer maupun nilai numeric real. Nilai width menunjukkan<br />
format panjang dari nilai utuh dan nilai decimals menunjukkan format dari<br />
panjang nilai dibelakang koma.<br />
Bentuk Umum :<br />
Str ( x [:width [: decimals]] , var s : string ) ;<br />
Contoh :<br />
Var<br />
Nilai1, Nilai2 : integer ;<br />
X1, x2 : string[5] ;<br />
Begin<br />
Nilai1 : = 1234 ;<br />
Nilai2 : = 567 ;<br />
Writeln (Nilai1 + Nilai2) ;<br />
| <strong>Operasi</strong> <strong>String</strong> 31
Str (Nilai1 : 4, x1) ;<br />
Str (Nilai2 ; 4, x2) ;<br />
Writeln (x1+ x2) ;<br />
End.<br />
4. Prosedur Standar Val<br />
Digunakan untuk mengkonversi suatu nilai string (ditunjukkan oleh nilai s)<br />
menjadi nilai numeric (ditunjukkan oleh nilai variable numeric v). S walaupun<br />
merupakan nilai string, tetapi harus berisi angka atau tanda plus / minus, bila<br />
tidak berarti salah dan letak kesalahannya ditunjukkan oleh nilai variable code.<br />
Nilai variable ini akan nol bila tidak mengandung kesalahan.<br />
Bentuk Umum :<br />
Val (s : string , v , var code) :<br />
Contoh :<br />
Var<br />
Nilai<strong>String</strong> : string[6] ;<br />
NilaiReal : real ;<br />
PosisiSalah : integer ;<br />
Begin<br />
Nilai<strong>String</strong> : = ‘123.A5’ ;<br />
Val (Nilai<strong>String</strong>, NilaiReal, PosisiSalah) ;<br />
Writeln (‘Nilai <strong>String</strong> =’, Nilai<strong>String</strong>) ;<br />
Writeln (‘Nilai Real =’, NilaiReal) ;<br />
Writeln (‘Posisi Salah =’, PosisiSalah);<br />
End.<br />
| <strong>Operasi</strong> <strong>String</strong> 32
Fungsi Standar <strong>Operasi</strong> <strong>String</strong><br />
1. Fungsi Standar Copy<br />
Digunakan untuk menyalin sejumlah karakter (jumlah karakter yang disalin<br />
ditunjukkan oleh nilai count) mulai dari posisi yang ditunjukkan oleh nilai<br />
integer index dari nilai string yang ditunjukkan oleh s.<br />
Bentuk Umum :<br />
Copy (s : string ; index : integer ; count : integer ) : string<br />
Contoh :<br />
Var<br />
Karakter : string[15];<br />
Begin<br />
Karakter : = ‘ABCDEFGHIJKLMNO’ ;<br />
Writeln (Karakter);<br />
Writeln (copy(Karakter, 5, 3));<br />
Writeln (copy(Karekter, 3, 10));<br />
End.<br />
2. Fungsi Standar ConCat<br />
Mempunyai operasi yang sama dengan operator string “+”, yaitu merangkai<br />
beberapa nilai string yang ditunjukkan oleh nilai string s1, s2, …, sn.<br />
Contoh program :<br />
Const<br />
Nama = ‘Pascal’ ;<br />
Lain = ‘dan keluarga’ ;<br />
Begin<br />
Writeln (Concat(‘Bahasa’, Nama, ‘untuk Anda’, lain)) ;<br />
End.<br />
| <strong>Operasi</strong> <strong>String</strong> 33
3. Fungsi Standar Pos<br />
Digunakan untuk mencari posisi letak dari suatu nilai string (ditunjukkan oleh<br />
Substr) yang ada didalam nilai string yang lain (ditunjukkan oleh s). Nilai yang<br />
dihasilkan adalah berupa nilai byte yang menunjukkan letaknya. Bila bernilai<br />
nol berarti nilai string yang dicari tidak ada.<br />
Bentuk Umum :<br />
Pos (Substr : string ; s : string) : byte ;<br />
Contoh program :<br />
Const<br />
Huruf = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’ ;<br />
Kar1 = ‘FGHI’ ;<br />
Kar2 = ‘F’ ;<br />
Kar3 = ‘JUGA’ ;<br />
Kar4 = ‘DCB’ ;<br />
Kar5 = ‘PQRST’ ;<br />
Begin<br />
Writeln (Huruf) ;<br />
Writeln ;<br />
Writeln (Kar1, ‘ada diposisi ke’, Pos(Kar1,Huruf)) ;<br />
Writeln (Kar2, ‘ada diposisi ke’, Pos(Kar2,Huruf)) ;<br />
Writeln (Kar3, ‘ada diposisi ke’, Pos(Kar3,Huruf)) ;<br />
Writeln (Kar4, ‘ada diposisi ke’, Pos(Kar4,Huruf)) ;<br />
Writeln (Kar5, ‘ada diposisi ke’, Pos(Kar5,Huruf)) ;<br />
End.<br />
| <strong>Operasi</strong> <strong>String</strong> 34
4. Fungsi Standar Length<br />
Digunakan untuk menghitung panjang atau jumlah karakter yang ada dinilai<br />
string yang ditunjukkan oleh s. hasil dari fungsi ini adalah nilai numeric integer<br />
positif.<br />
Contoh program :<br />
Var<br />
Nama : string[30] ;<br />
Begin<br />
Write (‘ Nama Anda :’ ) ;<br />
Readln (Nama) ;<br />
Writeln ( ‘Panjang nama Anda adalah ’, Length(Nama),’ karakter’);<br />
End.<br />
P2.2 Contoh Kasus<br />
Berikut adalah contoh program manipulasi string..<br />
Program Man_<strong>String</strong>;<br />
Uses Crt;<br />
Var s : <strong>String</strong>;<br />
l : Integer;<br />
h : <strong>String</strong>;<br />
Const a='Mudah';<br />
b=' Sekali';<br />
c=' Belajar';<br />
d=' Pascal';<br />
Begin<br />
ClrScr;<br />
s:= ConCat (a,b,c,d);<br />
Writeln (s);<br />
| <strong>Operasi</strong> <strong>String</strong> 35
h:=Copy (s,1,5);<br />
Writeln(h);<br />
l:= Length(s);<br />
Writeln ('Panjangnya string S : ',l);<br />
Writeln ('Posisi "Pascal" pada nilai S : ',POS('Pascal',s));<br />
readln;<br />
END.<br />
Langkah pengerjaan<br />
• Untuk membuka turbo pascal<br />
Buka command prompt, lalu ketikan perintah seperti di bawah ini..<br />
• Kemudian akan muncul jendela turbo pascal seeperti di bawah ini…<br />
• Kemudian ketikkan koding program<br />
| <strong>Operasi</strong> <strong>String</strong> 36
• Untuk mengkompile program tekan alt+f9 atau pilih compile pada menu<br />
• Untuk mengeksekusi program tekan ctrl+f9 atau pilih run pada menu<br />
• Kemudian akan muncul ouput<br />
P2.3 Latihan<br />
Tentukan hasil dari program berikut :<br />
1. PROGRAM LATIH1;<br />
VAR M, N: STRING[14];<br />
BEGIN<br />
M := ‘ESCHATOLOGICAL’;<br />
N := COPY (M,6,4);<br />
INSERT (‘L’, N, 3);<br />
WRITELN (N);<br />
| <strong>Operasi</strong> <strong>String</strong> 37
END.<br />
2. VAR A, B: STRING[10];<br />
BEGIN<br />
A := ‘MORGAN’;<br />
B := COPY (A, 2, 2);<br />
WRITELN (B);<br />
A := ‘CONCAT (A, B);<br />
WRITELN (A);<br />
END.<br />
3. VAR M, N: STRING[10];<br />
BEGIN<br />
M := ‘ABCDEFGHIK’;<br />
DELETE (M, 5, 2);<br />
INSERT (‘Z’, A, 2);<br />
WRITELN (COPY (A, 4, 3);<br />
END<br />
P2.4 Daftar Pustaka<br />
1. Ifada N, Diktat Mata Kuliah Algoritma Pemrograman, Bangkalan: Jurusan Teknik<br />
Informatika Universitas Trunojoyo, 2005.<br />
2. Munir R, Algoritma dan Pemrograman dengan Pascal dan C edisi Kedua, Bandung:<br />
Informatika, 2003.<br />
3. Jogiyanto H, Turbo Pascal, Yogyakarta Andi, 2006.<br />
4. Buku Seri diktat kuliah Algoritma & Pemrograman 2008<br />
| <strong>Operasi</strong> <strong>String</strong> 38
<strong>Pertemuan</strong> 3<br />
Penyeleksian Kondisi<br />
Objektif:<br />
1. Mengetahui macam-macam penyeleksian kondisi dalam pascal<br />
2. Mengerti statement kondisi IF dan Case<br />
| <strong>Pertemuan</strong> 3 39
P3.1 Teori<br />
Pada umumnya satu permasalahan yang komplek memerlukan suatu penyelesaian kondisi.<br />
Dengan menyeleksi suatu kondisi, maka selanjutnya dapat ditentukan tindakan apa yang<br />
harus dilakukan, tergantung pada hasil kondisi penyeleksian. Jadi suatu aksi hanya dikerjakan<br />
apabila persyaratan atau kondisi tertentu terpenuhi.<br />
Statement IF<br />
• Penyeleksian Satu Kasus, dengan menggunakan struktur IF-THEN:<br />
Pada penyeleksian satu kasus, kondisi akan diseleksi oleh statemen if. Bila kondisi<br />
bernilai benar (true), maka aksi sesudah kata then (dapat berupa satu atau lebih aksi)<br />
akan diproses. Bila kondisi bernilai salah (false), maka tidak ada aksi yang akan<br />
dikerjakan. Statemen endif adalah untuk mempertegas bagian awal dan bagian akhir<br />
struktur IF-THEN.<br />
IF<br />
kondisi?<br />
benar<br />
THEN<br />
salah<br />
Aksi<br />
Diagram Alir Struktur Penyeleksian Satu Kasus (IF-THEN)<br />
Struktur Penulisan IF-THEN :<br />
if kondisi then<br />
aksi<br />
| Penyeleksian Kondisi 40
• Penyeleksian Dua Kasus, menggunakan struktur IF-THEN-ELSE:<br />
Dalam struktur IF-THEN-ELSE, aksi1 akan dilaksanakan jika kondisi bernilai benar<br />
(true), dan jika kondisi bernilai salah (false) maka aksi2 yang akan dilaksanakan.<br />
Statemen else menyatakan ingkaran (negation) dari kondisi.<br />
salah<br />
IF<br />
kondisi?<br />
aksi2<br />
ELSE<br />
benar<br />
THEN<br />
aksi1<br />
Diagram Alir Struktur IF-THEN-ELSE<br />
Struktur penulisan IF-THEN-ELSE :<br />
if kondisi then<br />
aksi1<br />
else<br />
aksi2<br />
• Penyeleksian Tiga Kasus atau Lebih (Penyeleksian IF Tersarang)<br />
Untuk penyeleksian tiga kasus atau lebih juga menggunakan struktur IF-THEN-ELSE<br />
sebagaimana halnya permasalahan dua kasus.<br />
| Penyeleksian Kondisi 41
Diagram alir dari struktur tiga kasus IF-THEN-ELSE (tersarang)<br />
Struktur penulisan IF-THEN-ELSE tersarang :<br />
if kondisi1 then<br />
aksi1<br />
else<br />
if kondisi2 then<br />
aksi2<br />
else<br />
aksi3<br />
Statement CASE<br />
Struktur CASE-OF mempunyai suatu ungkapan logika yang disebut dengan selector dan<br />
sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang<br />
mempunyai tipe sama dengan selector. Statement yang mempunyai case label yang bernilai<br />
sama dengan case label yang bernilai sama dengan nilai selector akan diproses sedang<br />
statemen yang lainya tidak.<br />
.<br />
| Penyeleksian Kondisi 42
CASE Variabel Kondisi OF<br />
CASE- LABEL 1: STATEMENT 1;<br />
CASE- LABEL 2: STATEMENT 2;<br />
........<br />
CASE- LABEL N: STATEMENT N;<br />
END; { end dari case }<br />
Struktur Bahasa Pascal Untuk Seleksi CASE<br />
Kondisi1, kondisi2, … kondisiN dapat bernilai benar atau salah. Tiap kondisi diperiksa nilai<br />
kebenarannya mulai dari kondisi pertama sampai ditemukan kondisi yang benar. Jika kondisi<br />
ke-k benar, maka aksi ke-k dilaksanakan, selanjutnya keluar dari struktur CASE. Aksi yang<br />
dipasangkan dengan kondisi ke-k dapat lebih dari satu, karena itu ia berupa runtunan. Jika<br />
tidak ada satupun kondisi yang benar, maka aksi sesudah otherwise (optional) dikerjakan<br />
P3.2 Contoh Kasus<br />
Penggunaan IF-THEN<br />
Program kondisi_if_then<br />
Var<br />
nilai :real;<br />
ket : string [11];<br />
Begin<br />
Ket :=’ tidak lulus’;<br />
Write(‘ nilai yang didapat = ‘);<br />
Readln(nilai);<br />
If nilai > 60 then ket:=’lulus’;<br />
Writeln(ket);<br />
Readln;<br />
End.<br />
| Penyeleksian Kondisi 43
Penggunaan IF-THEN-ELSE<br />
Program kondisi_if_then_else<br />
Var<br />
nilai :real;<br />
Begin<br />
Write(‘ nilai yang didapat = ‘);<br />
Readln(nilai);<br />
If nilai > 60 then<br />
Writeln(’lulus’);<br />
else<br />
Writeln(‘tidak lulus’);<br />
Readln;<br />
End.<br />
Penggunaan IF-THEN-ELSE (tersarang)<br />
Program if_then_tersarang<br />
var<br />
nilai: integer;<br />
begin<br />
write('Masukkan nilai : '); readln(nilai);<br />
if nilai >= 82 then<br />
write ('Nilai A')<br />
else if nilai >= 72 then<br />
write ('Nilai B')<br />
else if nilai >= 56 then<br />
write ('Nilai C')<br />
else if nilai >= 41 then<br />
write ('Nilai D')<br />
else if nilai
P3.3 Latihan<br />
Kerjakan tugas-tugas di bawah ini sebelum praktikum dimulai.<br />
1. Jelaskan pada kondisi apa sebaiknya struktur seleksi if dan case digunakan! Apa<br />
perbedaan dari kedua struktur tersebut?<br />
2. Buatlah algoritma untuk menentukan bilangan terbesar dari tiga buah bilangan bulat<br />
yang dimasukkan melalui piranti masukan. (Asumsi: ketiga bilangan adalah bilangan<br />
yang berbeda)<br />
Contoh keluaran yang diinginkan;<br />
Masukkan bilangan pertama : 4<br />
Masukkan bilangan kedua : 2<br />
Masukkan bilangan ketiga : 7<br />
Bilangan yang terbesar adalah : 7<br />
3. Buatlah algoritma konversi dari nilai angka menjadi nama hari. (Asumsi: 1=Senin,<br />
2=Selasa, 3=Rabu, 4=Kamis, 5=Jumat, 6=Sabtu, 7=Minggu)<br />
Contoh keluaran yang diinginkan:<br />
Masukkan Angka yang menunjukkan hari : 1<br />
Hari yang anda pilih : Senin<br />
P3.4 Daftar Pustaka<br />
1 Ifada N, Diktat Mata Kuliah Algoritma Pemrograman, Bangkalan: Jurusan Teknik<br />
Informatika Universitas Trunojoyo, 2005.<br />
2 Munir R, Algoritma dan Pemrograman dengan Pascal dan C edisi Kedua, Bandung:<br />
Informatika, 2003.<br />
3 Jogiyanto H, Turbo Pascal, Yogyakarta Andi, 2006.<br />
| Penyeleksian Kondisi 45
<strong>Pertemuan</strong> 4<br />
Perulangan<br />
Objektif:<br />
1. Mengetahui macam-macam perulangan dalam Pascal<br />
2. Mengerti perulangan For, While Do, Repeat …Until<br />
| <strong>Pertemuan</strong> 4 46
P4.1 Teori<br />
Dalam Pascal dikenal adanya 2 tipe perulangan yaitu:<br />
• Iteration statement digunakan untuk melakukan perulangan sekumpulan<br />
statement (compound statement).<br />
• Loop (iteration) structure menggambarkan perulangan dari satu atau lebih<br />
instruksi<br />
Perulangan For<br />
Perulangan dengan statemen FOR digunakan untuk mengulang statemen atau<br />
suatu blok statemen berulang kali. Bentuk perulangan ini merupakan bentuk perulangan yang<br />
paling sederhana. Pengulangan dilakukan mulai dari suatu indeks awal, sampai dengan<br />
indeks akhir, misalnya: for i:=1 to 5 do writeln('Hello'); akan mencetak 5 kali kata hello.<br />
Perulangan dengan statemen FOR dapat berupa perulangan positif dan perulangan negatif.<br />
Perulangan FOR positif<br />
Contoh :<br />
Perulangan positif untuk satu statement :<br />
USES CRT;<br />
VAR<br />
i : INTEGER;<br />
BEGIN<br />
FOR i := 1 TO 5 DO WRITELN('STMIK GUNADARMA');<br />
END.<br />
Maka bila program diatas dicompile<br />
hasilnya :<br />
STMIK GUNADARMA<br />
STMIK GUNADARMA<br />
STMIK GUNADARMA<br />
STMIK GUNADARMA<br />
STMIK GUNADARMA<br />
Penjelasan : Berati statemen STMIK GUNADARMA akan diulang sebanyak 5 kali yaitu<br />
dengan menghitung nilai i dari i ke 1 sampai nilai i terakhir yaitu i ke 5.<br />
Contoh dengan menggunakan blok statement:<br />
Cara penulisannya dengan pada awal blok diawali dengan BEGIN dan pada akhir<br />
blok diakhiri dengan END;<br />
| Perulangan 47
USES CRT;<br />
VAR<br />
i : INTEGER;<br />
BEGIN<br />
FOR i:= 1 TO 10 DO<br />
BEGIN<br />
WRITELN('STMIK GUNADARMA'); { blok statement }<br />
END;<br />
END.<br />
Hasil yang akan didapat akan sama dengan contoh yang pertama, tapi yang harus diingat<br />
disini untuk penggunaan blok pada perulangan FOR biasanya mempunyai banyak statement<br />
(lebih dari 1 statement)<br />
Perulangan FOR negatif<br />
Perulangan negatif adalah perulangan dengan menghitung (counter) dari besar ke<br />
kecil. Statement yang digunakan adalah FOR-DOWNTO-DO<br />
Contoh :<br />
Hasil :<br />
USES CRT;<br />
VAR<br />
i : INTEGER ;<br />
BEGIN<br />
FOR i := 10 DOWNTO 1 DO WRITE(i:3);<br />
END.<br />
10 9 8 7 6 5 4 3 2 1<br />
Perulangan FOR tersarang<br />
Perulangan FOR tersarang adalah perulangan FOR yang berada pada perulangan yang<br />
lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis,<br />
kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan perulangan yang<br />
lebih dalam lagi mulai dari nilai awalnya dan seterusnya.<br />
Contoh :<br />
VAR<br />
a,b : INTEGER;<br />
BEGIN<br />
| Perulangan 48
FOR a := 1 TO 3 DO<br />
BEGIN<br />
FOR b := 1 TO 2 DO WRITE(a :4,b:2);<br />
WRITELN;<br />
END;<br />
END.<br />
Hasil :<br />
1 1 1 2<br />
2 1 2 2<br />
3 1 3 2<br />
Perulangan While Do<br />
Penyeleksian kondisi digunakan untuk agar program dapat menyeleksi kondisi,<br />
sehingga program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari<br />
kondisi yang diseleksi tersebut. Aksi dalam while akan dilakukan selama kondisi memiliki<br />
nilai true, dan aksi mungkin tidak dilakukan sama sekali jika di awal loop kondisi sudah<br />
bernilai false. Hal yang perlu diperhatikan dalam loop ini adalah kepastian bahwa loop akan<br />
berhenti (bahwa suatu saat kondisi akan bernilai false) atau dengan kata lain perulangan<br />
WHILE-DO tidak dilakukan jika kondisi tidak terpenuhi.<br />
Contoh :<br />
USES CRT;<br />
VAR i : INTEGER;<br />
BEGIN<br />
i := 0;<br />
WHILE i < 5 do<br />
BEGIN<br />
WRITE(i:3);<br />
INC(i); { sama dengan i:=i+1 }<br />
END;<br />
END.<br />
Hasilnya :<br />
0 1 2 3 4<br />
| Perulangan 49
Perulangan WHILE-DO tersarang<br />
Perulangan WHILE-DO tersarang (nested WHILE-DO) merupakan perulangan WHILE-<br />
DO yang satu di dalam perulangan WHILE-DO yang lainnya.<br />
Contoh :<br />
USES CRT;<br />
VAR<br />
a, b : INTEGER;<br />
BEGIN<br />
CLRSCR;<br />
a:=1;<br />
b:=1;<br />
WHILE a < 4 DO { loop selama a masih lebih kecil dari 4 }<br />
BEGIN<br />
a := a+1;<br />
WHILE b < 3 DO { loop selama b masih lebih kecil dari 3 }<br />
BEGIN<br />
WRITE(a:3,b:2);<br />
b:=b+1;<br />
END;<br />
END;<br />
READLN;<br />
END.<br />
Perulangan Repeat Until<br />
REPEAT-UNTIL digunakan untuk mengulang statement-statemen atau blok statement<br />
sampai (UNTIL) kondisi yang diseleksi di UNTIL tidak terpenuhi. Sintak dari statement ini<br />
adalah :<br />
Contoh<br />
VAR<br />
i : INTEGER;<br />
BEGIN<br />
i:=0;<br />
| Perulangan 50
REPEAT<br />
i:= i+1;<br />
WRITELN(i);<br />
UNTIL i=5;<br />
END.<br />
hasil :<br />
1<br />
2<br />
3<br />
4<br />
5<br />
REPEAT-UNTIL tersarang<br />
REPEAT-UNTIL tersarang adalah suatu perulangan REPEAT-UNTIL yang satu berada<br />
didalam perulangan REPEAT-UNTIL yang lainnya.<br />
Contoh :<br />
VAR<br />
a,b,c : REAL;<br />
BEGIN<br />
WRITELN('========================================');<br />
WRITELN(' sisi A sisi B Sisi C ');<br />
WRITELN(' =======================================');<br />
a:= 1;<br />
REPEAT { perulangan luar }<br />
b := 0;<br />
REPEAT { perulangan dalam }<br />
c:=SQRT(a*a+b*b);<br />
WRITELN(a:6:2, b:9:2, c:9:2);<br />
b:=b+5;<br />
UNTIL b>25; { berhenti jika b lebih besar dari 5 untuk<br />
perulangan dalam }<br />
a:=a+1;<br />
UNTIL a>3; { berhenti jika a lebih besar dari 3 untuk<br />
perulangan luar }<br />
WRITELN(' =======================================');<br />
END.<br />
| Perulangan 51
P4.2 Contoh Kasus<br />
Peggunaan perulangan FOR dalam blok statement untuk membuat tabel<br />
USES CRT;<br />
VAR<br />
a,b,c : INTEGER;<br />
bagi : REAL;<br />
BEGIN<br />
WRITELN('----------------------------------------------');<br />
WRITELN(' a a*a a*a*a 1/a ');<br />
WRITELN('----------------------------------------------');<br />
FOR a:= 1 TO 10 DO<br />
BEGIN<br />
| Perulangan 52
:= a*a;<br />
c:=a*a*a;<br />
bagi := 1/a;<br />
WRITELN(a:4,c:10,d:10,bagi:12:3);<br />
END;<br />
WRITELN('----------------------------------------------');<br />
END.<br />
maka hasilnya :<br />
----------------------------------------------<br />
a a*a a*a*a 1/a<br />
----------------------------------------------<br />
1 1 1 1.000<br />
2 4 8 0.500<br />
3 9 27 0.333<br />
4 16 64 0.250<br />
5 25 125 0.200<br />
6 36 216 0.167<br />
7 49 343 0.143<br />
8 64 512 0.125<br />
9 81 729 0.111<br />
10 100 1000 0.100<br />
----------------------------------------------<br />
P4.3 Latihan<br />
Buatlah program untuk soal dibawah ini dengan tampilan sebagus mungkin (gunakan<br />
perintah Window, Textcolor dll). Jumlah suku sesuai dengan input dari keyboard.<br />
1. Buat deret hitung 3,7,11,15,......................=?<br />
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.<br />
2.Buat deret ukur 3,9,27,................................=?<br />
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.<br />
3. Buat tabel deret bergoyang 1,-2,4,-8,...........=?<br />
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.<br />
4. Buat deret suku harmonis 1,1/2,1/3,.............=?<br />
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.<br />
5. Buat deret fibbonaci 1,1,2,3,5,.....................=?<br />
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.<br />
| Perulangan 53
6. Buat deret seperti berikut 1,-2,3,-4,.............=?<br />
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.<br />
P4.4 Daftar Pustaka<br />
1 Ifada N, Diktat Mata Kuliah Algoritma Pemrograman, Bangkalan: Jurusan Teknik<br />
Informatika Universitas Trunojoyo, 2005.<br />
2 Munir R, Algoritma dan Pemrograman dengan Pascal dan C edisi Kedua, Bandung:<br />
Informatika, 2003.<br />
3 Jogiyanto H, Turbo Pascal, Yogyakarta Andi, 2006.<br />
| Perulangan 54