Modul V

MODUL V

Tujuan
• Mahasiswa memahami penggunaan pernyataan FOR
• Mahasiswa memahami penggunaan pernyataan WHILE
• Mahasiswa memahami penggunaan pernyataan REPEAT

Ada kalanya Anda ingin mengulangi pernyataan yang sama lebih dari satu kali. Sebagai contoh misalkan Anda ingin mencetak kalimat STTI RESPATI sebanyak 10 kali, maka pernyataan yang yang mungkin Anda tulis seperti berikut ini :
Kode Program Keterangan
Begin
Writeln(‘STTI RESPATI STTI RESPATI ‘+
‘STTI RESPATI STTI RESPATI’+
‘STTI RESPATI STTI RESPATI’+
‘STTI RESPATI STTI RESPATI’+
‘STTI RESPATI STTI RESPATI’);
End. Awal program
Cetak string STTI RESPATI 10 x

Akhir program

Atau
Kode Program Keterangan
Begin
Writeln(‘STTI RESPATI’);
Writeln(‘STTI RESPATI’);
Writeln(‘STTI RESPATI’);
Writeln(‘STTI RESPATI’);
Writeln(‘STTI RESPATI’);
Writeln(‘STTI RESPATI’);
Writeln(‘STTI RESPATI’);
Writeln(‘STTI RESPATI’);
Writeln(‘STTI RESPATI’);
Writeln(‘STTI RESPATI’);
End. Awal program
Cetak STTI RESPATI 1x

Cetak STTI RESPATI 10x
Akhir program

Misalkan Anda disuruh mencetak kata STTI RESPATI sebanyak 1000x, Apa yang mesti Anda lakukan ? Apakah mengetik kata STTI RESPATI sebanyak 1000x ? Masalah di atas dapat diatasi dengan menggunakan pernyataan perulangan (loop) : FOR, WHILE atau REPEAT yang telah disediakan Pascal.

1. Pernyataan FOR
Pernyataan perulangan For digunakan untuk mengulangi dengan lompat-lompat satu. Lompatan bisa ke positip (nilai naik satu) ataupun negatip (nilai turun satu).
a. Pernyataan FOR Menaik
B.U : For := NilaiAwal To NilaiAkhir Do

Ket : For : kata cadang
Pengenal : pengenal yang telah dideklarasikan di bagian Var dan harus bertipe Integer (integer, byte, shortInt, word ataupun Longint)
Nilai Awal : Nilai Awal perulangan. Nilai awal dapat dalam bentuk ekspresi asal bernilai Integer. Bila Nilai Awal lebih besar dari Nilai Akhir maka pernyataan tidak akan dikerjakan.
Nilai Akhir : Nilai Akhir perulangan. Nilai akhir dapat dalam bentuk ekspresi asal bernilai Integer.
Pernyataan : Pernyataan yang akan diulang. Bila pernyataan lebih dari satu baris, maka pernyataan harus diawali kata cadang begin dan diakhiri kata cadang end.

Kasus I. Dari permasalahan sebelumnya, maka untuk mecetak STTI RESPATI sebanyak 10x dapat kita gunakan pernyataan FOR positip seperti kode berikut ini:
Kode Program Keterangan
Program CetakSTTI10x;
Uses Crt;
Var
L : Byte;
Begin
Clrscr;
For L:= 1 To 10 Do
Writeln(‘STTI RESPATI’);
Readln;
End. Judul program
Deklarasi unit crt
Deklarasi variabel

Awal program
Bersihkan layar output
Ulangi L mulai dari 1 s/d 10
Cetak STTI RESPATI
Tunggu penekanan tombol Enter
Akhir program

b. Pernyataan For Menurun
B.U : For := NilaiAwal DownTo NilaiAkhir Do

Ket : For : kata cadang
Pengenal : pengenal yang telah dideklarasikan di bagian Var dan harus bertipe Integer (integer, byte, shortInt, word ataupun LongInt)
Nilai Awal : Nilai Awal perulangan. Nilai awal dapat dalam bentuk ekspresi asal bernilai Integer. Bila Nilai Awal lebih kecil dari Nilai Akhir maka pernyataan tidak akan dikerjakan.
Nilai Akhir : Nilai Akhir perulangan. Nilai akhir dapat dalam bentuk ekspresi asal bernilai Integer.
Pernyataan : Pernyataan yang akan diulang. Bila pernyataan lebih dari satu baris, maka pernyataan harus diawali kata cadang begin dan diakhiri kata cadang end.

Kasus II. Dari permasalahan sebelumnya, maka untuk mecetak STTI RESPATI sebanyak 10x dapat kita gunakan pernyataan FOR negatip seperti kode berikut ini:
Kode Program Keterangan
Program CetakSTTI10x;
Uses Crt;
Type
Cacah = 1..10;
Var
L : Cacah;
Begin
Clrscr;
For L:= 10 DownTo 1 Do
Writeln(‘STTI RESPATI’);
Readln;
End. Judul program
Deklarasi unit crt
Deklarasi tipe

Deklarasi variabel

Awal program
Bersihkan layar output
Ulangi L mulai dari 10 s/d 1
Cetak STTI RESPATI
Tunggu penekanan tombol Enter
Akhir program

Kasus III. Anda disuruh memasukkan suatu Angka. Angka yang Anda masukkan menyatakan banyaknya karakter * yang akan dicetak.
Kode Program Keterangan
Program Cetak*;
Uses Crt;
Label
Ulangi;
Var
Cacah,L : LongInt;
Jawab : Char;
Begin
Ulangi:
Clrscr;
Write(‘Banyak karakter * yang dicetak : ‘);
Readln(Cacah);
For L:=1 To Cacah Do
Writeln(L,’*’);
Writeln;
Write(‘Cetak karakter Lagi : ‘);
Readln(Jawab);
IF Upcase(Jawab)=’Y’ Then Goto Ulangi;
End. Judul program
Deklarasi unit crt
Deklarasi label

Deklarasi variabel

Awal program
Label ulangi
Bershihkan layar output
Input Cacah

Ulangi mulai dari 1 s/d Cacah

Cetak baris baru

Input Jawab
Jika Jawab = Y locat ke label Ulangi
Akhir program

Kasus IV. Tabel di bawah ini adalah data penduduk pulau XXX mulai tahun 2000 s/d 2005.
Tahun Jumlah Penduduk
2000
2001
2002
2003
2004
2005 200000
230000
240000
250000
300000
350000

Anda disuruh untuk membuat diagram batang horizontal seperti gambar di bawah ini :

JUMLAH PENDUDUK PULAU XXX
THN. 2000 s/d 2005

Tahun
2000 : ░░░░░░░░░░░░░░░░░░░░
2001 : ░░░░░░░░░░░░░░░░░░░░░░░
2002 : ░░░░░░░░░░░░░░░░░░░░░░░░
2003 : ░░░░░░░░░░░░░░░░░░░░░░░░░
2004 : ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
2005 : ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Ket : ░ 10000 Jiwa

Langkah – Langkah penyelesaian kasus di atas dapat seperti berikut ini :
1. Mulai
2. I = 2000
3. Tentukan JlhPenduduk. Mis JlhPenduduk= 200000
4. Skala = JlhPenduduk Div 10000
5. For I:= 1 To Skala Do
Cetak ░
6. I = I +1
7. Jika I := NilaiAwal To NilaiAkhir Do
For :=NilaiAkhir DownTo NilaiAwal Do

2. For := NilaiAwal To NilaiAkhir Do
Begin
For :=NilaiAkhir DownTo NilaiAwal Do
Begin

End;

:= NilaiAwal To NilaiAkhir Do
Begin
For :=NilaiAkhir DownTo NilaiAwal Do
Begin

For := NilaiAwal To Nilai Akhir Do

End;

Do

Ket :
: ekspresi yang menghasilkan nilai boolean (true/false)
: pernyataan yang akan dikerjakan bila kondisi bernilai benar. Bila pernyataan lebih dari 1 baris, maka pernyataan tersebut harus diapit kata cadang begin dan end.

Kasus VI. Menampilkan bilangan genap atau ganjil dari 1 s/d 100.
Kode Program Keterangan
Program GenapGanjil;
Uses Crt;
Const
Ganjil =’Bilangan Ganjil 1 s/d 100’;
Genap=’Bilangan Genap 1 s/d 100’;
Var
I : Byte;
Jawab : Char;
Begin
Clrscr;
Jawab=’’;
While Not (Jawab In [‘P’,’p’,’L’,’l’]) Do
Begin
Write(‘Tampilkan Bilangan Gena[p]/Ganji[l] ? ’);
Readln(Jawab);
End;
If Upcase(Jawab)=’P’ Then
Begin
Writeln(Genap);
I:=1;
While I 0) Then
Write(I:5)
Inc(I);
End;
End;
End; Judul program
Deklarasi unit
Deklarasi konstanta

Deklarasi variabel

Awal program
Bersihkan layar output
Jawab = ‘’
Bila tidak Jawab bernilai P p L l maka
Awal blok while
Cetak string
Input jawab
Akhir blok while
Jika jawab diubah menjadi huruf besar nilainya P maka
Awal blok P
Cetak konstanta genap
I =1
Bila I Do
While Do
While Do

Ket :
: ekspresi yang menghasilkan nilai boolean (true/false)
: pernyataan yang akan dikerjakan bila kondisi bernilai benar. Bila pernyataan lebih dari 1 baris, maka pernyataan tersebut harus diapit kata cadang begin dan end.

Seperti nested for , maka dengan pernyataan while juga Pascal memungkinkan kita membuat nested while (while di dalam while). Penggunaan while di dalam while tergantung dari permasalahan yang dijumpai. Hal mendasar yang penting diingat bahwa while yang terdalam akan dikerjakan terlebih dahulu sampai selesai.

Kasus VII. Selama Anda tidak menekan suatu tombol, tampilkalah teks berjalan STTI RESPATI YOGYAKARTA Jurusan Sistem Informasi Dari Kanan Layar Ke Kiri Layar Output.
Kode Program Keterangan
Program TeksJalan;
Uses Crt;
Const
Teks =’STTI RESPATI Yogyakarta Jurusan Sistem Informasi’;
Selesai =’Tekan Sembarang Tombol –> Keluar’;
Var
I : 0..79;
J,PjgTeks : Byte;
Sem : String[100];
Begin
TextBackGround(Blue);
clrscr;
TextColor(white);
GotoXY(80-Length(Selesai),24);
write(Selesai);
PjgTeks:=Length(Teks);
While Not KeyPressed Do
Begin
J:=1; I:=79;
While Not KeyPressed Do
Begin
IF J

Until

Kasus VIII. Tentukanlah jumlah deret berikut ini :

Kode Program Keterangan
Program Deret1;
Uses crt;
Var
I : Byte;
Jlh : Real;
Begin
Clrscr;
Write(‘Masukkan N : ‘);
Readln(N);
I:=1;
Jlh:=0;
Repeat
Jlh:=Jlh+1/I;
Inc(I);
Until (I>N)
Writeln(‘Jumlah Deret Adalah : ‘,Jlh:8:4);
ReadKey;
End. Judul program
Deklarasi unit
Deklarasi variabel

Awal program
Bersihkan layar output
Cetak string
Masukkan nilai N
I =1
Jlh = 0
Ulangi
Jlh = jlh + 1/I
I = I + 1
Sampai nilai I > N
Cetak Jlh
Tunggu penekanan sembarang tombol
Akhir program

b. Repeat Di Dalam Repeat (Nested Repeat)
B. U : Repeat

Repeat

Until

Until

4. Gabungan For, While atau Repeat
Bentuk-bentuk penggabungan pernyataan For, While maupun Repeat harus mengikuti aturan dasar pada bahasan sebelumnya. Dengan demikian bila terdapat pernyataan For di dalam While maka harus jelas akhir dari pernyataan For tersebut. Berikut ini beberapa bentuk penggabungan pernyataan For, While maupun Repeat.
1. For := NAW To NAK Do
Begin
While Do
Begin

Repeat

Until
End;
End;

2. While Do
Begin
While Do
Begin
For := NAK DownTo NAW Do
Begin

Repeat

Until
End;
End;
End;

5. Beberapa Prosedur Yang Berkaitan Dengan Pernyataan Perulangan
a. Break  keluar dari pernyataan perulangan tempat prosedur break berada
Pada keadaan normal, semua perulangan akan dikerjakan dari awal sampai akhir. Namun, bila suatu saat kita menginginkan mengakiri perulangan tersebut dapat digunakan prosedur break. Selain dari pada prosedur break ini sebenarnya kita juga dapat menggunakan pernyataan goto, tetapi penggunaan pernyataan ini tidak dianjurkan
Kode Program Keterangan
Program KeluarPaksa;
Uses crt;
Var
K,l : Byte;
Begin
For k:= 1 To 5 Do
Begin
For l:= 1 to k Do
Begin
If l = 3 then break;
Write(‘*’);
End;
Writeln;
End;
End. Judul program
Pengarah kompiler
Deklarasi variabel

Awal program
Ulangi k dari 1 s/d 5
Awal blok perulangan k
ulangi l dari 1 s/d k
Awal blok perulangan l
Jika l = 3 maka keluar dari blok perulangan l
cetak karakter * tanpa ganti baris
ganti baris
akhir blok perulangan l
akhir blok perulangan k
akhir program

b. Continue  kembali ke kondisi pernyataan berulangan tempat prosedur continue berada
Kode Program Keterangan
Program KembaliKeKondisi;
Uses crt;
Var
K : Byte;
Begin
For k:= 1 To 100 Do
Begin
If (k mod 2 = 0) then continue;
Writeln(i:5);
End;
End. Judul program
Pengarah kompiler
Deklarasi variabel

Awal program
Ulangi k dari 1 s/d 100
Awal blok perulangan k
Jika K dibagi 2 sisa baginnya 0 (bil. Genap) maka kembali ke for k
Cetak I dengan lebar tempat 5 karakter
Akhir blok perulangan l
akhir program
Tugas

1. Buatlah program untuk menentukan deret fibonacci berikut ini :
1 1 2 3 5 8 13 21 …
2. Tentukanlah jumlah deret berikut ini dimana N = 100

3. Buatlah program dengan memanfaatkan perulangan untuk menampilkan sekilas info tentang STTI RESPATI Yogyakarta Jurusan Sistem Informasi. Program harus memberikan informasi yang jelas serta tampilan animasi yang baik. Program akan berhenti bila pengguna menekan tombol karakter B (Berhenti). Dan bila tidak ada tombol ditekan selama 5 detik maka program aktif kembali.

No comments yet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: