Rabu, 21 Desember 2011

ALGORITMA Prosedur & Fungsi di Pascal

Prosedur & Fungsi di Pascal

Prosedur dan fungsi dibuat agar pengerjaan suatu program menjadi lebih mudah dan lebih terorganisir. Dengan adanya fungsi maupun prosedur, pelacakan kesalahan(debugging) pun akan lebih mudah dilakukan.
Prosedur dan fungsi sebenarnya tidak jauh berbeda, prosedur bisa dibilang sebagai fungsi yang tidak mengembalikan nilai. Hasil penghitungan dari prosedur biasanya disimpan pada parameter output prosedur tersebut.
Berikut ini beberapa contoh prosedur dan fungsi:
1.Hitung Luas Segitiga
procedure HitLuasSegi3ver1(alas:real;tinggi:real;var luas:real);
{prosedur untuk menghitung luas segitiga, dengan parameter masukan alas dan tinggi, serta parameter keluaran luas}
begin
luas:= alas*tinggi/2;
end;
atau bisa juga:
procedure HitLuasSegi3ver2;
{prosedur untuk menghitung luas segitiga, dengan parameter masukan alas dan tinggi, serta parameter keluaran luas}
var
luas:real;
begin
write(“Alas  : “);readln(alas);
write(“Tinggi: “);readln(tinggi);
luas:=alas*tinggi/2;
writeln(“Luas segitiga adalah”,luas);
end;
versi 1 dan versi 2 di atas sebenarnya melakukan hal yang sama, tapi ver2 tidak menggunakan parameter input maupun output sehingga sangat bergantung pada program di mana ia digunakan, sementara ver1 lebih independen.
Prosedur di atas dapat juga dituliskan sebagai fungsi, berikut contohnya:
function HitLuasSegi3(alas:real;tinggi:real):real;
{fungsi untuk menghitung luas suatu segitiga}
begin
HitLuasSegi3 :=  alas*tinggi/2;
end;
Jadi bisa kita buat skema umum penulisan prosedur dan fungsi sebagai berikut:
procedure nama_prosedur(nama_parameter_input:tipe_data; var nama_parameter_output:tipe_data );
var
{variabel lokal}
begin
…..
…..
end;
untuk fungsi:
function nama_fungsi(nama_parameter_input:tipe_data):tipe_data_keluaran;
var
{variabel lokal}
begin
….
….
end;
2.Tukar Nilai antara dua peubah
procedure TukarNilai(var a:integer;var b:integer);
{prosedur ini bertujuan untuk menukar nilai dari kedua variabel. contoh: awal,a=5 dan b=9. akhir,a=9 dan b=5}
var
temp:integer {tempat sementara untuk menampung nilai}
begin
temp:= a;
a:= b;
b:= temp;
end;
Pada contoh prosedur di atas, parameter a dan b adalah parameter masukan sekaligus keluaran. Jadi nilai awal yang dilewatkan ke prosedur tersebut akan digunakan dalam perhitungan, dan hasil perhitungan akan disimpan ke parameter tersebut lagi. Mengenai algoritma dari program di atas, mirip dengan menukar isi dari dua buah ember dengan memanfaatkan ember ketiga yang masih kosong, awalnya ember a dituangkan ke ember temp, ember b ke ember a, dan ember temp ke ember b,   akhirnya kini a berisi nilai b dan sebaliknya.
Untuk penggunaan prosedur dan fungsi dalam program utama, kita harus nilai menuliskannya sebelum blok/daerah program utama, yaitu sebelum kata kunci begin.
Kali ini kita akan memanfaatkan prosedur dan fungsi di atas ke dalam sebuah program:
program DemoFungPro;
var
pil:integer;
nilai1,nilai2:integer; {nilai yang akan ditukarkan isinya}
procedure HitLuasSegi3;
{prosedur untuk menghitung luas segitiga, dengan parameter masukan alas dan tinggi, serta parameter keluaran luas}
var  {variabel lokal}
alas,tinggi:real;
luas:real;
begin
write(“Alas  : “);readln(alas);
write(“Tinggi: “);readln(tinggi);
luas:=alas*tinggi/2;
writeln(“Luas segitiga adalah”,luas);
end;
procedure TukarNilai(var a:integer;var b:integer);
{prosedur ini bertujuan untuk menukar nilai dari kedua variabel. contoh: awal,a=5 dan b=9. akhir,a=9 dan b=5}
var
temp:integer {tempat sementara untuk menampung nilai}
begin
temp:= a;
a:= b;
b:= temp;
end;
begin   {program utama}
writeln(“Menu:”);
writeln(“1.Hitung Luas segitiga”);
writeln(“2.Tukar nilai dari dua peubah”);
write(“Masukkan pilihan Anda: “); readln(pil);
case pil of
1: begin
HitLuasSegi3;
end;
2: begin
write(“Nilai pertama: “);readln(nilai1);
write(“Nilai kedua  : “);readln(nilai2);
TukarNilai(nilai1,nilai2);
writeln(“nilai pertama:”,nilai1,” dan nilai kedua: “,nilai2);
end;
end;
end. {akhir program utama}

1 komentar: