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}

5 thoughts on “Prosedur & Fungsi di Pascal

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