16.04.2014 Views

Pertemuan 2 Operasi String - iLab

Pertemuan 2 Operasi String - iLab

Pertemuan 2 Operasi String - iLab

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!