I. JUDUL PRAKTKUM: PERNYATAAN KONDISI DALAM TURBO PASCAL
II. TUJUAN PRAKTIKUM:
1. Untuk mengetahui jenis-jenis pernyataan kondisi yang ada pada program pascal.
2. Agar dapat melakukan penyeleksian kondisi pada bahasa pemograman pascal.
3. Mengetahui apa yang dimaksud dengan penyeleksian kondisi.
4. Mengetahui statement yang digunakan dalam pascal untuk melakukan penyeleksian suatu kondisi.
III.DASAR TEORI
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 boolean 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.
Struktur case of mempunyai suatu ungkapan logika yang dapat disebut selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mana mempunyai tipe yang sama dengan selector.Statemn yang mempunyai case label yang bernilai sama dengan nilai selector akan diproses sedangkan statemen yang lainnya tidak.
Perbedaan dengan struktur if adalah apabila statemen if menyeleksi suatu kondisi dan sudah terpenuhi ,setelah memproses statemen dalam lingkungan yang sudah terpenuhi tersebut,proses penyeleksian masih dilakukan terhadap statemen if berikutny yang lain.Sedangakan pada struktur case of apabila salah satu kondisi terpenuhi (nilai case label sama dengan nilai selector) dan statemen tersebut sudah diproses,selanjutnya statemen-statemen yang lainnya dalam lingkungan case tidak akan diseleksi lagi.
Struktur Case….-Of…Else
Adalah pengembangan dari struktur Case-Of….dan uga merupakan pengembangn dari standard pascal.Pada Struktur case of apabila tida ada kondisi yang terpenuhi maka tidak ada statemen didalam lingkungan case-of yang sudah diprosesnya.Dengan struktur Case-Of …Else,apabila tidak ada kondisi yang terpenuhi ,maka statemen didalam lingkungan case of adalah statemen yang da di Else.
Contoh 1 :Program nilai_ujian;
uses crt;l
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.
Pernyataan Bercabang
Pernyataan bercabang yaitu sebuah pernyataan berkondisi dimana terdapat satu atau lebih kondisi dan terdapat lebih dari satu ekpresi yang akan dilakukan terhadap hasil kondisi yang disyaratkan. Penjelasannya, bila sebuah kondisi terpenuhi maka program akan program akan melakukan ekspresi 1 dan bila tidak terpenuhi maka program akan melakukan ekspresi lain. Kondisi dalam pernyataan bercabang dapat lebih dari satu.
Sintaksnya ditulis sebagai berikut: #Pernyataan dengan dua kondisi If [kondisi] then [ekspresi_1] else [ekspresi_2]; #Pernyataan dengan tiga kondisi
If [kondisi_1] then [ekspresi_1]
else if [kondisi_2] then [ekspresi_2]
else [ekspresi_3];
#Pernyataan dengan labih dari tiga kondisi
If [kondisi_1] then [ekspresi_1]
Else if [kondisi_2] then [ekspresi_2]
……
Else if [kondisi_n] then [ekspresi_n]
Else [ekspresi_(n+1)];
Langsung saja kita berikan contoh sebagai berikut:
Pernyataan dengan dua kondisi Akan diminta sebuah input dari user, user akan diminta memasukkan nilai kuliahnya. Bila nilai yang dimasukkan lebih dari 50 maka ia dinyatakan lulus, dan sebaliknya bila kurang dari itu maka ia dinyatakan tidak lulus.
Programnya dapat dibuat kurang lebih sebagai berikut:
uses crt;
var input:integer;
begin write(’Masukkan nilai anda : ‘);readln(input);
if input>50 then writeln(’anda lulus’)
else writeln(’maaf anda belum lulus..silahkan mendalami lagi’);
readln;
end.
Pada program diatas, program terdapat dua kondisi, yaitu dimana kondisi nilai “input>50” terpenuhi atau bernilai true, dan kondisi bernilai false atau tidak terpenuhi. Pernyataan ‘lulus’ akan dilakukan bila kondisi nilai>50 terpenuhi, dan bila kondisi tersebut tidak terpenuhi maka akan dimunculkan pernyataan ‘tidak lulus’.
Pernyataan dengan lebih dari dua kondisi
Pada kasus dengan tiga kondisi ini, yaitu terdapat syarat pertama yang harus dipenuhi, syarat kedua yang terpenuhi, syarat ketiga dan seterusnya yang terpenuhi, atau tidak ada syarat yang terpenuhi. Untuk tiga kondisi diatas maka akan dilakukan ekspresi sesuai kondisinya. Pada struktur percabangan, syarat kedua akan dijalankan bila syarat pertama tidak terpenuhi. Bila syarat pertama sudah terpenuhi, maka program akan keluar dari blok percabangan. Begitupun selanjutnya, syarat ketiga dan seterusnya baru akan dijalankan bila syarat sebelumnya tidak terpenuhi, dan bila syarat terpenuhi maka kondisi selanjutnya diabaikan.
Contoh program akan ditampilkan sebagai berikut: Akan dimasukkan tiga buah bilangan dari keyboard. Dari tiga buah bilangan tersebut akan ditentukan mana bilangan yang terbesar.
uses crt; var a,b,c,max:integer;
begin write(’bilangan pertama : ‘);readln(a); write(’bilangan kedua : ‘);readln(b);
write(’bilangan ketiga : ‘);readln(c);
if (a>b)and(a>c) then max:=a else
if (b>a)and(b>c) then max:=b else
max:=c;
writeln(’bilangan terbesar adalah ‘,max);
readln; end.
Perhatikan program diatas, pada baris ke tujuh program akan memeriksa apakah a merupakan bilangan terbesar atau bukan. Untuk mengetahui apakah a merupakan bilangan terbesar atau bukan maka nilai a haruslah dibandingkan dengan kedua nilai yang lain yaitu b, dan c. Bila salah satu dari nilai b atau c tidak lebih besar dari a, maka dipastikan a bukanlah bilangan terbesar. Hal ini juga akan dilakukan pada nilai yang lain, bila ternyata nilai b juga diketahui bukan nilai yang terbesar maka dapat dipastikan juga bahwa c adalah nilai yang terbesar.
Catatan: pada kasus ini diasumsikan tidak ada nilai yang sama. Untuk kasus dengan terdapat dua nilai yang sama, agak mirip, namun bila pada proses terdapat dua nilai terbesar yang sama maka dianggap salah satunya adalah nilai terbesar.
Tidak ada komentar:
Posting Komentar