Jumat, 27 Mei 2011

Kondisi Pada Pascal


TUJUAN :

1. Memahami kondisi pada penggunaan if then dalam turbo pascal
2. Mahasiswa dapat menyebutkan macam-macam statemenpenyeleksian kondisi.
3. Mahasiswa dapat menjelaskan bentuk umum dari statemen kondisi IF
4. Mahasiswa dapat membuat contoh program sederhana dengan menggunakan statemen kondisi IF

Percabangan I : If ….. Then …. Else …..
Pernyataan percabangan/kendali/bersyarat merupakan pernyataan yang akan mengeksekusi suatu pernyataan yang mengikutinya bila suatu persyaratan dipenuhi. Salah satu pernyataan kendali untuk pengambilan keputusan dalam Pascal adalah pernyataan If … Then … Else …

Bentuk umum :
IF kondisi THEN
Statemen 1
ELSE
Statemen 2

dimana :
kondisi : ungkapan boolen yang menghasilkan nilai benar atau salah
statemen 1, statemen 2 : pernyataan-pernyataan tunggal/majemuk. Dalam Pascal, pernyataan majemuk adalah kumpulan dari beberapa pernyataan yang diawali dengan kata baku BEGIN dan diakhiri oleh kata baku END, yang dianggap sebagai sebuah pernyataan tunggal.
Maksudnya : bila kondisi bernilai TRUE (benar) maka akan dikerjakan statemen 1 dan statemen 2 dilewati, sedangkan jika kondisi bernilai FALSE (salah) maka akan dikerjakan statemen 2 dan statemen 1 dilewati.
Untuk pernyataan IF yang berkalang (ada pernyataan IF yang lain dalam pernyataan IF), ELSE selalu berpasangan dengan dengan IF yang terletak sebelum dan yang paling dekat dengan ELSE tersebut, serta terletak dalam blok pernyataan yang sama.

Contoh 1 : Program untuk mencari akar persamaan kuadrat di bawah ini
Program PersamaanKuadrat;
uses crt;
var a,b,c,d,x1,x2 :real;
begin
clrscr;
writeln(‘Menghitung akar-akar persamaan kuadrat’);
writeln(‘Nilai a,b,c dimasukkan dengan jeda spasi’);
write(‘Masukkan nilai a,b,c:’);
readln(a,b,c);
d:=b*b-4*a*c;
if d<0 then writeln(‘tidak ada akar real’)
else
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln(‘x1 =’,x1:6:2);
writeln(‘x2 =’,x2:6:2);
end;
readln;
end.

Contoh Hasil Eksekusi :
- jika d = 0
Menghitung akar-akar persamaan kuadrat
Nilai a,b,c dimasukkan dengan jeda spasi
Masukkan nilai a,b,c:1 4 2
x1 = -0.59
x2 = -3.41

- jika d < 0 :
Menghitung akar-akar persamaan kuadrat
Nilai a,b,c dimasukkan dengan jeda spasi
Masukkan nilai a,b,c:1 2 6
tidak ada akar real

Catatan :
1. Di dalam IF boleh ada IF (pernyataan IF yang berkalang)
2. Jika diinginkan kondisi = FALSE tidak mengerjakan apa-apa, maka ELSE tidak perlu dituliskan.
3. Pernyataan ELSE tidak diakhri dengan ; (titik koma) begitu pula baris pernyataan sebelum ELSE.

Percabangan II : Case ….. Of …..
Pernyataan CASE …. OF …. Digunakan untuk pengambilan keputusan jika terdapat lebih dari dua alternatif jawaban yang tersedia.

Bentuk umum :
CASE ungkapan OF
Label 1 : Statemen 1
Label 2 : Statemen 1
………..
………..
………..
Label n : Statemen n
END;

dimana :
ungkapan : dapat berupa sembarang ungkapan yang memberikan hasil integer, char, boolean atau tipe terbilang (kecuali real).
Label : konstanta yang mempunyai tipe yang sama dengan ungkapan Statemen : pernyataan yang mengikuti berupa rangkaian instruksi yang harus dikerjakan jika nilai konstanta dalam label sama dengan nilai variable Maksudnya jika ungkapan bernilai label 1, maka dikerjakan statemen1, jika bernilai label 2 akan dikerjakan statemen 2 dan seterusnya.
Pernyataan CASE …. OF …. boleh diikuti ELSE. Perlu diketahui, ELSE dalam pernyataan CASE …. OF …. Hanya bersifat pilihan, dalam artian boleh disertakan boleh tidak. Jika ELSE disertakan, pernyataan yang mengikuti ELSE akan dieksekusi hanya bila nilai dari syarat-pemilih tidak ada dalam semua label.

Contoh 1 :
Program nilai_ujian;
uses crt;
var nama : string[25];
nim : string[8];
nilai: integer;
begin
clrscr;
write(‘Masukkan nama mahasiswa : ‘);
readln(nama);
write(‘Masukkan nomor induk mahasiswa : ‘);
readln(nim);
write(‘Masukkan nilai ujian : ‘);
readln(nilai);
writeln;
case nilai div 10 of
10,9 : writeln(‘Nilai huruf = A’);
8 : writeln(‘Nilai huruf = B’);
7 : writeln(‘Nilai huruf = C’);
6 : writeln(‘Nilai huruf = D’);
5,4,3,2,1,0 : writeln(‘Nilai huruf = E’);
end;
readln;
end.

Contoh 2 :
Program konversi;
uses crt;
var
menit, jam, kaki, meter, fahrenheit, celcius : real;
pilihan :char;
begin
clrscr;
writeln(‘Pilihan konversi:’);
writeln(’1) Menit ke jam’);
writeln(’2) Kaki ke meter’);
writeln(’3) Derajat Fahrenheit ke Celcius’);
write(‘pilihan ? ‘);
readln(pilihan);
case pilihan of
’1′ : begin
write(‘menit= ‘);
readln(menit);
jam:=menit/60;
writeln(‘nilai ini sama dengan ‘,jam:4:1,’
jam’);
readln;
end;
’2′ : begin
write(‘kaki= ‘);
readln(kaki);
meter:=0.3048*kaki;
writeln(‘nilai ini sama dengan ‘,meter:4:1,’
meter’);
readln;
end;
’3′ : begin
write(‘Derajat Fahrenheit = ‘);
readln(fahrenheit);
celcius:=5/9*(fahrenheit-32);
writeln(‘nilai ini sama dengan ‘,Celcius:4
:1,’ Celcius’);
readln;
end;
else writeln(‘Tidak melakukan konversi’);
end;
end.

KalanG I : For … To … Do… dan For … Downto … Do…
Salah satu ciri bahasa pemrograman adalah adanya perintah-perintah yang harus dikerjakan berulang-ulang. Pengulangan ini sering disebut dengan kalang. Dalam bahasa Pascal ada beberapa perintah untuk membuat kalang, yaitu:

FOR … TO … DO… dan FOR … DOWNTO … DO…
Bentuk umum :
FOR pengubah:=ungkapan1 TO ungkapan2 DO Statemen; dan FOR pengubah:=ungkapan1 DOWNTO ungkapan2 DO Statemen;

dimana,
pengubah : suatu pengubah yang disebut pengubah kendali, dapat berupa pengenal dari tipe integer, char, boolean atau tipe terbilang.
ungkapan1 : nilai awal pengubah
ungkapan2 : nilai akhir pengubah
Beberapa aturan yang harus dipenuhi :
- Pengubah, ungkapan1 dan ungkapan2 harus mempunyai tipe data yang sama
- Pada kalang TO ungkapan1
- Pada kalang DOWNTO ungkapan1>ungkapan2

Contoh 1 : Program untuk menghitung jumlah n bilangan pertama dan jumlah
kuadrat n bilangan pertama
Program jumlahKuadrat;
Uses crt;
Var jumlah, jmlkuadrat,i,n : integer;
begin
clrscr;
Write(‘Banyak n bilangan yang akan diproses’);
readln(n);
jumlah:=0;
jmlkuadrat:=0;
for i:=1 to n do
begin
jumlah:=jumlah+i;
jmlkuadrat:=jmlkuadrat + i*i;
writeln(‘Jumlah ‘,i:2,’ bilangan pertama
= ‘,jumlah:5);
writeln(‘Jumlah Kuadrat ‘,i:2,’ bilangan pertama
= ‘,jmlkuadrat:5);
end;
readln;
end.

Contoh 2 : Mencetak abjad dengan urutan terbalik dari z…a
Program tulisabjad;
Uses crt;
Var karakter : char;
Bahasa Pemrograman Pascal
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
64
begin
clrscr;
for karakter:= ‘z’ downto ‘a’ do
write(karakter:2);
readln;
end.

Contoh 4 :
Bilangan Fibonacci memiliki rumusan : Fi = Fi-1 + Fi-2 Suku ke-1 merupakan penjumlahan bilangan Fibonacci suku ke-(i-1) dan suku ke- (i-2), dengan bilangan pada suku pertama dan suku kedua didefinisikan sama dengan satu.
Program Fibonacci;
Uses crt;
Var i,n,f,f1,f2 : integer;
begin
clrscr;
writeln(‘Ingin mencetak bilangan Fibonacci’);
write(‘sampai suku ke-’);
readln(n);
writeln;
writeln(‘Suku ke- 1 = ‘,1);
writeln(‘Suku ke- 2 = ‘,1);
f1 :=1; f2:=1;
for i:=3 to n do
begin
f:=f1+f2;
writeln(‘Suku ke- ‘,i:2,’ = ‘,F:3);
f2:=f1; f1:=f;
end;
readln;
end.

Kalang II : While .… Do…. dan Repeat …. Until ….
Selain membuat kalang dengan FOR….TO.…DO.… dan FOR..… DOWNTO … DO … ada bentuk kalang yang lebih umum yaitu : WHILE … DO …. yang bentuk umumnya adalah sebagai berikut :
WHILE kondisi DO
Statemen

dimana,
kondisi : adalah ungkapan boolean yang digunakan sebagai syarat agar statemen dikerjakan berulang kali
statemen : adalah pernyataan tunggal atau pernyataan majemuk yang akan diproses ulang.

Contoh 1 : Jumlah deret n bilangan asli pertama
Program Jumlah_Deret;
Uses crt;
Var n, jumlah, pencacah : integer;
begin
clrscr;
Writeln(‘Menghitung jumlah 1 + 2 + 3 + … + n’);
write(‘n = ? ‘);
readln(n);
pencacah:=1;
jumlah:=0;
while pencacah <= n do
begin
jumlah:=jumlah+pencacah;
pencacah:=pencacah + 1;
end;
writeln;
writeln(‘Jumlah deret = ‘,jumlah:5);
readln;
end.

Selain membuat kalang dengan 3 cara di atas masih ada cara lain untuk membuat kalang, yaitu dengan perintah REPEAT …. UNTIL yang bentuk umumnya adalah sebagai berikut :
REPEAT
…………
Statemen
………….
UNTIL kondisi

dimana,
statemen : adalah pernyataan tunggal atau pernyataan majemuk yang akan diproses ulang.
Kondisi : adalah ungkapan boolen sebagai syarat agar pernyataan diproses ulang.
Catatan : Salah satu statemen diantara repeat dan until harus ada yang bias merubah nilai kondisi sehingga kalang bisa berhenti

Contoh 2 :
Mengganti kalang WHILE … DO …. Dari contoh 1 dengan kalang REPEAT …. UNTIL …..
Program Jumlah_Deret;
Uses crt;
Var n, jumlah, pencacah : integer;
begin
clrscr;
Writeln(‘Menghitung jumlah 1 + 2 + 3 + … + n’);
write(‘n = ? ‘);
readln(n);
pencacah:=0;
jumlah:=0;
repeat
begin
jumlah:=jumlah+pencacah;
pencacah:=pencacah + 1;
end;
until pencacah = n+1;
writeln;
writeln(‘Jumlah deret = ‘,jumlah);
readln;
end.

Contoh 3 :
Program untuk menghitung mean dan standar deviasi dari sejumlah data masukkan non negatif dan berhenti apabila masukkan data adalah -1.
Program Mean_StdDev;
Uses crt;
Const neg=-1;
Var bilangan, total1, total2, mean, std : real;
n : integer;
begin
clrscr;
total1:=0.0;
total2:=0.0;
n:=0;
writeln(‘Masukkan data non negatif, dan untuk
mengakhiri masukkan angka -1′);
readln(bilangan);
repeat
n:=n+1;
total1:=total1+bilangan;
total2:=total2+bilangan*bilangan;
writeln(‘Masukkan data non negatif, dan untuk
mengakhiri masukkan angka -1′);
readln(bilangan);
until bilangan=neg;
mean:= total1/n;
std:=sqrt(total2/(n-1)-sqr(total1)/(n*(n-1)));
writeln(‘Mean = ‘,mean:7:2);
writeln(‘Deviasi Standar = ‘,std:8:3);
readln;
end.


0 komentar:

Posting Komentar