Wednesday, October 31, 2007

bentuk perulangan dan penyeleksian kondisi

BENTUK PERULANGAN DAN PENYELEKSIAN KONDISI


Tujuan
1. Memberikan penjelasan dan contoh mengenai penyeleksian kondisi dengan :
1.1. Statement If - Then
1.2. Statement If – Then - Else
1.3. Statement Case - Of
2. Memberikan penjelasan mengenai struktur perulangan dengan statement For, termasuk didalamnya :
2.1. Pengertian dan contoh perulangan statement For Positif.
2.2. Pengertian dan contoh perulangan statement For Negatif.
2.3. Pengertian dan contoh perulangan tersarang (Nested Loop).
3. Memberikan Penjelasan dan contoh mengenai struktur perulangan dengan statement While – Do termasuk didalamnya penjelasan mengenai While-Do tersarang (nested While-Do).
4. Memberikan penjelasan dan contoh mengenai perulangan dengan Statement Repeat-Until termasuk di dalamnya penjelasan mengenai Repeat –Until tersarang .

Materi
Bentuk – bentuk Perulangan

Dalam hampir setiap program yang kompleks mutlak memerlukan suatu perulangan dan percabangan. Tujuan perulangan disini adalah untuk mengulang statement atau blok statement berulang kali sesuai sejumlah yang ditentukan pemakai. Dalam materi ini akan memberikan gambaran konsep dasar dari pengertian diatas.

percabangan
If - Then
Statemen if ….then akan menguji suatu proses / ungkapan, bila bernilai benar(true) maka akan dieksekusi pada statemen yang berada pada blok statemen in, taetapi jika bernilai salah maka blok statemen ini akan dilompati. Secara umum statemen ini dapat digambarkan seperti flowchart dibawah ini:

Contoh Program :
Program if_then;
Var
nilai : inteer;
Begin
Write (‘masukkan nilai: ‘);
Read(nilai);
If nilai> 50 then
Write (‘nilai yang dimasukkan lebih besar 50’);
End.


ÿ If - Then - Else
Statemen if ….then …. Else akan memiliki pengujian yang sedikit erbeda dengan statemen if…. Then. Pada suatu proses / ungkapan , bila bernilai benar(true) maka akan dieksekusi pada statemen yang berada pada blok dibawahnya kata cadangan if, tetapi jika bernilai salah (False) maka blok dibawah kata cadagan ELSE akan dieksekusi. Secara umum statemen ini dapat digambarkan seperti flowchart dibawah ini:

Contoh Program :

Program if_then;
Var
nilai : inteer;
Begin
Write (‘masukkan nilai: ‘);
Read(nilai);
If nilai> 50 then
Write (‘nilai yang dimasukkan lebih besar 50’)
Else
Write ('nilai yang dimasukkan kurang dari 50')
End.

Case - Of

Struktur Case – Of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mempunyai tipe sama dengan selector. Statement yang mempunyai case label yang bernilai sama dengan case label yang bernilai sama dengan nilai selector akan diproses sedang statemen yang lainya tidak.
Bentuk struktur dari Case - Of:
Case Variabel Kondisi Of
Case – Label 1; Statement 1;
Case – Label 2; Statement 2;
Case – Label 3; Statement 3;
Case – Label 4; Statement 4;
........
........
Case – Label n ; Statement n ;
End ; { end dari case }
Daftar Case label dapat berupa konstanta, range dari konstanta
yang bukan bertipe real.

Contoh program ;
Program nilai;
Var
nil : Char ;
Begin
Write ('Nilai Numerik yang didapat :');
Readln (nil);
Case nil Of
'A': Writeln ('Sangat Baik’);
'B': Writeln('Baik’);
'C': Writeln('Cukup');
'D': Writeln('Kurang');
'E': Writeln('Sangat Kurang');
End.

hasil :
Nilai Numerik yang didapat : B →Input
Baik

Perulangan For.
Perulangan dengan statemen For digunakan untuk mengulang statemen atau suatu blok statemen berulang kali. Perulangan dengan statemen For dapat berupa perunlangan positif dan perulangan negatif.


Perulangan For positif
contoh :
perulangan positif untuk satu statement :
Uses Crt;
Var
i : Integer;
Begin
For i := 1 To 5 Do Writeln ('SMA LOKA’);
END.

Maka bila program diatas dicompile hasilnya :
SMA LOKA
SMA LOKA
SMA LOKA
SMA LOKA
SMA LOKA

Penjelasan : Berati statemen SMA LOKA akan diulang sebanyak 5 kali yaitu dengan menghitung nilai i dari i ke 1 sampai nilai i terakhir yaitu i ke 5.

Contoh 1 dengan menggunakan blok statement:
cara penulisannya dengan pada awal blok diawali dengan Begin dan pada akhir blok diakhiri dengan End;
Uses Crt;
Var
i : Integer;
Begin
For i:= 1 To 5 Do
Begin
Writeln ('PIKMI CLEdS MALANG'); { blok statement }
End;
End.

Contoh 2 :
Penggunaan perulangan For dalam blok statement untuk membuat tabel
Uses Crt;
Var
a,jumlaah,kali : Integer;
Begin
Writeln('--------------------------------------');
Writeln(' a a+a a*a ');
Writeln('--------------------------------------');
For a := 1 To 5 Do
Begin
Jumlah:= a+a;
Kali:=a*a;
Writeln(a:4,Jumlah:10,Kali:15);
End;
Writeln ('-------------------------------------');
End.
maka hasilnya :
-------------------
a a+a a*a
-------------------
1 2 1
2 4 4
3 6 9
4 8 16
5 10 25
-------------------

Perulangan For negatif
Perulangan negatif adalah perulangan dengan menghitung (counter) dari besar ke kecil.
Statement yang digunakan adalah For-DownTo-Do

contoh :
Uses Crt;
Var
i : Integer;
Begin
For i := 5 DownTo 1 Do Write (i:3);
End.

Hasil :
5 4 3 2 1

Perulangan For tersarang
Perulangan For tersarang adalah perulangan For yang berada pada perulangan yang 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 awalnya dan seterusnya.
Contoh :
Var
a,b : Integer;
Begin
For a := 1 To 3 Do
Begin
For b := 1 To 2 Do Write (a :4,b:2);
Writeln;
End;
End.

Hasil :
1 1 1 2
2 1 2 2
3 1 3 2

Perulangan While - Do
Penyeleksian kondisi digunakan untuk agar program dapat menyeleksi kondisi, sehingga program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari kondisi yang diseleksi tersebut. Perulangan While – Do tidak dilakukan jika kondisi tidak terpenuhi. Secara umum statemen ini dapat digambarkan seperti flowchart dibawah ini:
Contoh :
Uses Crt;
Var i : Integer;
Begin
i := 0;
While <>

Perulangan While – Do tersarang
Perulangan While – Do tersarang (nested While - Do) merupakan perulangan While – Do yang satu di dalam perulangan While – Do yang lainnya.

Contoh :
Uses Crt;
Var
a, b : Integer;
Begin
ClrScr;
a:=1;
b:=1;
While a <>Perulangan Repeat - Until.
Repeat – Until digunakan untuk mengulang statement-statemen atau blok statement sampai (Until) kondisi yang diseleksi di Until tidak terpenuhi. Secara umum statemen ini dapat digambarkan seperti flowchart dibawah ini:
Contoh :
Var
i : Integer;
Begin
i:=0;
Repeat
i:= i+1;
Writeln (i);
Until i=5;
End.

hasil :
1
2
3
4
5

Repeat – Until tersarang
Repeat – Until tersarang adalah suatu perulangan Repeat - Until yang satu berada didalam perulangan Repeat – Until yang lainnya.

Contoh :
Var
a,b,c : Real;
Begin
Writeln('========================================');
Writeln(' sisi A sisi B Sisi C ');
Writeln (' =======================================');
a:= 1;
Repeat { perulangan luar }
b := 0;
Repeat{ perulangan dalam }
c:=Sqrt (a*a+b*b);
Writeln (a:6:2, b:9:2, c:9:2);
b:=b+5;
Until b>25; { berhenti jika b lebih besar dari 5 untuk perulangan dalam }
a:=a+1;
Until a>3; { berhenti jika a lebih besar dari 3 untuk perulangan luar }
Writeln(' =======================================');
End.

Soal Latihan
Buatlah program untuk soal dibawah ini dengan tampilan sebagus mungkin (gunakan perintah Window, Textcolor dll). Jumlah suku sesuai dengan input dari keyboard.
1. Buat deret hitung 3,7,11,15,......................=?
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.
2. Buat tabel deret bergoyang 1,-2,4,-8,...........=?
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.
3. Buat deret suku harmonis 1,1/2,1/3,.............=?
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.
4. Buat deret fibbonaci 1,1,2,3,5,.....................=?
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.
5. Buat deret seperti berikut 1,-2,3,-4,.............=?
Program akan berhenti jika pada pertanyaan "Hitung Lagi [Y/T] ?" diisi huruf T.

Array
Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut.

Contoh:
Var
Untai : array[1..50] of Integer;
Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe integer.

Contoh Program :
Program Contoh_Array_Input;
Uses Crt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
Readln;
End.

Array Dua Dimensi
Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.

1 2
1 2 3
Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini .




Contoh Program:

Program Deklarasi_Array_Dua_Dimensi;
Uses Crt;
Var Tabel : Array[1..3,1..2] of Integer; i,j : Integer;
Begin
ClrScr;
Tabel[1,1]:=1;
Tabel[1,2]:=2;
Tabel[2,1]:=3;
Tabel[2,2]:=4;
Tabel[3,1]:=5;
Tabel[3,2]:=6;
For I := 1 to 3 Do
Begin
For J:= 1 to 2 Do
Begin
Writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
End;
End;
Readln;
End.

Prosedur dan fungsi
Konsep subprogram atau modul merupakan konsep yang sangat beranfaat dalam menyusun sebuah program yang benar, yaitu membagi masalah yang besar menjadi masalah-masalah kecil yang diselesaikan dalam sebuah subprogram. Jika subprogram telah benar untuk memecahkan masalah-masalah kecil, maka diharapkan dalam penyusunan program yang besar, program dapat lebih disederhanakan sehingga memudahkan memecahkan masalah utama.
Dalam pascal ada 2 macam subprogram, yaitu prosedur (procedur) dan Fungsi (function).

Procedure
Prosedur mempunyai struktur yang sama dengan struktur program, yaitu terdiri dari nama prosedur, deklarasi-deklarasi dan bagian utama dari prosedur itu sendiri. Di dalam prosedur tersebut, dimungkinkan ada prosedur lagi yang strukturnya sama.
Misalnya diketahui sebuah program sebagai berikut:

Uses crt;
PROCEDURE tulis(x,y:integer;s:string);
begin
gotoxy(x,y);
write(s);
end;

begin
tulis(10,2,’hello world’);
end.


Function
Sebenarnya secar prinsip, fungsi sama seperti prosedur. Perbedaan fungsi dan prosedur adalah fungsi dapat langsung memberikan nilai kembali senangkan proceduru harus menggunakan parameter penuh agar dapat mengembalikan suatu nilai.

FUNCTION jumlah(n:integer):integer;
BEGIN
IF n=1 THEN
jumlah:=1;
ELSE
jumlah:=jumlah(n-1)+n;
END;

BEGIN
writeln(jumlah(3));
END.

Pustaka

http://www.ilmukomputer.com/
http://www.toki.com/
modul pascal UMM

*materi Extra SMA Negeri 1 Sumberpucung

Materi Pascal

Beberapa Statemen Turbo Pascal

Statemen adalah perintah untuk pengerjaan program pascal. Statemen terletak di bagian deklarasi statemen dengan diawali oleh kata cadangan BEGIN dan diakhiri dengan kata cadangan END. Akhir dari setiap statemen diakhiri dengan titik koma [;]. Statemen statemen dalam bahasa Pascal terdiri dari pernyataan yang berupa fungsi dan prosedur yang telah disediakan sebagai perintah standar Turbo Pascal.

1.Statemen-statemen yang digunakan untuk input/output.

Read/Readln [prosedur].
Perintah ini digunakan untuk memasukkan [input] data lewat keyboard ke dalam suatu variabel.
Sintaks: Read/Readln(x);
Keterangan : x = variabel.
Read = pada statemen ini posisi kursor tidak pindah ke baris selanjutnya.
Readln = pada statemen ini posisi kursor akan pindah ke baris selanjutnya setelah di input.

Write/Writeln [prosedur].
Digunakan untuk menampilkan isi dari suatu nilai variable di layar.
Write/Writeln= statement ini digunakan untuk mencetak variable ke dalam monitor

Contoh :
Program input;
Uses Crt;
Var nama : String;
NIS, Kls : String;

Begin
Clrscr;
Writeln ('masukkan data anda ');
Writeln ('------------------------------');
Write ('NIS anda : ');
Readln (NIS);
Write ('nama anda : ');
Readln (nama);
Write ('Kelas: ');
Readln (Kls);
End.


Bila program dijalankan maka akan tampil:

masukkan data anda
------------------------------
nama anda : ( di input )
NIS anda : ( di input )
Kelas:(di input)

2. Statemen-statemen yang digunakan untuk pengaturan letak layar.

 ClrScr [prosedur].
Perintah ini digunakan untuk membersihkan layar.
sintaks: ClrScr; →[Clear screen] (lihat contoh diatas)

 GotoXY[prosedur].
Untuk menempatkan posisi kursor pada layar.
Sintaks: GotoXY(X, Y: Byte);
Keterangan : X = sumbu X (posisi horisontal)
Y = sumbu Y (posisi vertikal)

Contoh :
Program input;
Uses Crt;
Begin
Clrscr;
Gotoxy(12,3);Writeln ('KERJASAMA');
Gotoxy(10,4);Writeln ('PIKMI CLAdS');
Gotoxy(18,5);Writeln ('DAN');
Gotoxy(3,6);Writeln ('SMA N 1 SUMBERPUCUNG');
End.

Bila dijalankan hasilnya adalah:

KERJASAMA
PIKMI CLAdS
DAN
SMA N 1 SUMBERPUCUNG


3. Statemen-statemen untuk perhitungan aritmatik.

 Abs [fungsi].
Memberikan nilai mutlak dari suatu argumen.
Sintaks: ABS(x);

 ArcTan[fungsi].
Memberikan nilai dari fungsi arctangent dari perhitungan goniometri.
Sintaks: ArcTan (x);
dimana x dapat bertipe real atau integer dan akan menghasilkan nilai bertipe real.

 Cos [fungsi].
Memberikan nilai dari fungsi Cosinus.
Sintaks: Cos (x);

 Sin [fungsi].
Memberikan nilai dari fungsi Sinus.
Sintaks: Sin (x);

Contoh
Program input;
Uses Crt;
Var X : REAL;

Begin
Clrscr;
Writeln ('PROGRM MENCARI NILAI ABSOLUT, SIN, COS, TANGEN ');
Writeln ('==============================================');
Write ('MASUKKAN NILAI X : '); Readln (X);
Writeln('1 Absolut = ',Abs(x):9:3);
Writeln('2 Sinus = ',Sin(x):9:3);
Writeln('3 Cosinus = ',Cos(x):9:3);
Writeln('4 Tangen = ',ArcTan(x):9:3);
End.

 Exp [fungsi].
Menghitung nilai pangkat dari bilangan e (bilangan alam),
yaitu sebesar x.
Sintaks: Exp (x);

 Frac [fungsi].
Untuk mendapatkan nilai pecahan dari suatu bilangan.
Sintaks: Frac (x);

 Int [fungsi].
Memberikan nilai integer (bilangan bulat) dari suatu variabel
dengan membuang bilangan di belakang koma.
Sintaks: Int (X);

 Ln [fungsi].
Digunakan untuk menghitung nilai logaritma alam (natural
logarithm) dari nilai x.
Sintaks: Ln (x);

 Sqr [fungsi].
Digunakan untuk menghitung nilai pangkat kuadrat dari suatu
bilangan.
Sintaks: Sqr (x);

 Sqrt (fungsi).
Digunakan untuk menghitung nilai akar dari suatu bilangan.
Sintaks: Sqrt (x);

Contoh :
Program Aritmatik;
Uses Crt;
Var x : Real;
Begin
Clrscr;
Write('Masukkan nilai dari X = ');
Readln (x);
If x <0>
Writeln('Nilai X = ',x:5:2);
Writeln ('Nilai logaritma alamnya = ',LN(x):9:3);
Writeln ('Nilai integernya = ',INT(x):5:2);
Writeln ('Nilai fraksionalnya = ',FRAC(x):5:2);
Writeln ('Nilai X dipangkatkan = ',SQRT(x):9:3);
Writeln ('Nilai X diakarkan = ',SQRT(x):9:3);
End.
Hasilnya :
masukkan nilai dari X = -2.5
Nilai X = 2.50
Nilai logarima alamnya = 0,196
Nilai integernya = 2.00
Nilai fraksionalnya = 0.50
Nilai X dipangkatkan = 6.250
Nilai X diakarkan = 1.581

Soal Latihan
1. Soal I
Buatlah program dibawah ini
1. Mengubah derajat temperatur, dari derajat Celcius ke derajat Fahreinheit dan Reamur (derajat Celcius diinput)
2. Menghitung Luas dan Keliling lingkaran, dengan jari-jari diketahui (diinput).
3. Menghitung Luas dan Keliling segitiga sembarang yang diketahui ke tiga sisinya.
4. Mencari nilai Sinus, Cosinus, dan Tangen dengan sudut diinput.
5. Mencari akar dan kuadrat dari suatu nilai (nilai diinput).

Pustaka
http://www.ilmukomputer.com/
http://www.toki.or.id/
modul pascal UMM

* materi extra SMA Negeri 1 Sumberpucung