Prosedur adalah pendefinisian suatu langkah dengan
melalui tahap-tahap tertentu. Sedangkan fungsi itu adalah sebuah transformasi
akibat dari pemetaan suatu nilai ke nilai lain. Tujuan dari fungsi dan prosedur
adalah untuk mempermudah pemrogram dalam memprogram suatu program. Tujuan lain
dari prosedur adalah untuk mempersingkat suatu program. Misalnya saja kita akan
melakukan langkah yang sama namun secara berulang-ulang. Kita tak perlu untuk
menulis algoritmanya secara berulang-ulang. Yang perlu untuk kita lakukan
adalah dengan menuliskannya dalam sebuah prosedur atau pun fungsi, sehingga
ketika kita membutuhkannya kita tinggal memanggil prosedur atau fungsi tersebut
dalam program yang kita buat. Hal lain yang perlu diperhatikan dalam pembuatan
fungsi dan prosedur adalah parameternya. Fungsi dan prosedur memiliki
parameter. Parameter ada dua jenis yaitu parameter formal dan yang satunya
adalah parameter actual.
Untuk parameter actual adalah parameter yang digunakan untuk memanggil prosedur
ataupun fungsi, sedangkan parameter formal adalah parameter yang ada pada
fungsi atau prosedur. Antara parameter formal dan actual ini akan saling
berasosiasi, jadi urutan dan jumlahnya pun harus sama dan harus diperhatikan.
Berikut ini adalah penjelasan terpisah untuk fungsi dan untuk prosedur :
1. Fungsi
Pada fungsi ini parameter formal dan actual dibutuhkan. Fungsi sendiri
menghasilkan suatu nilai dengan tipe hasil sesuai dengan apa yang telah
didefinisikan oleh pemrogram. Fungsi ini akan selalu mengupdate dan
menghasilkan suatu nilai.
Berikut ini akan saya berikan contoh sebuah program yang menggunakan fungsi
dalam pascal :
Program pakai;
Uses crt;
Var
A,b,c : integer;
Function jumlah(u,t:integer):integer;
Begin
u:=u+1;
t:=t+1;
jumlah:=u+t;
End;
Begin
Clrscr;
Readln(a);
Readln(b);
c:=jumlah(a,b);
writeln(‘hasilnya adalah ’,c);
Readln;
End.
Dalam contoh program diatas coba anda perhatikan
baik-baik. Untuk pemanggilan fungsi itu diassign(dimasukkan) ke dalam variable
c, karena hasil dari suatu fungsi itu sendiri merupakan sebuah nilai.
Untuk cara pemanggilan fungsi ada 2 cara. Misalnya
yaitu :
1) variable:=nama_fungsi(parameterinputan)
2)writeln(nama_fungsi(parameterinputan))
Sedangkan sintaks untuk mendefinisikan fungsinya
adalah sebagai berikut:
Function
nama_fungsi(parameterinput:tipeparameter):tipehasil;
Tracking
program_pakai
Misalnya saya memberikan inputan pertama 3, sedangkan yang kedua adalah 2,
maka artinya nilai a=3, dan b=2.
Kemudian memanggil fungsi jumlah. Dalam fungsi jumlah ini menggunakan parameter
input berupa variable a dan variable b yang telah memiliki nilai 3 dan 2.
Masing-masing parameter input/ parameter actual akan berasosiasi dengan
parameter formal sesuai dengan urutannya
Kemudian variable a akan berasosiasi dengan variable u pada fungsi, sedangkan
variable b akan berasosiasi dengan variable t pada fungsi.
Maka u=a dan t=b, u bernilai 3, dan t bernilai 2. Nilai u adalah u+1, maka
nilai u adalah 3+1 yaitu 4, sedangkan nilai t adalah t+1, maka nilai t adalah
2+1 yaitu 3.
Fungsi jumlah memiliki hasil yang bertipe integer. Hasil dari fungsi jumlah
tersebut adalah u+t
Maka fungsi jumlah bernilai 4+3 yaitu 7;
Kembali ke program utama, variable c diassignkan(diisikan) dengan fungsi
jumlah, itu berarti bahwa c = jumlah, maka c = 7, maka dilayar akan dioutputkan
hasilnya yaitu angka 7.
2. Prosedur
Didalam prosedur untuk membuatnya kita bisa menggunakan parameter yang berupa
parameter input/output, atau parameter input saja. Bisa juga tanpa parameter.
Kalau dalam fungsi harus ada parameternya, maka dalam prosedur tidak
menggunakan parameterpun tidak apa.
Mengenai jenis parameter dalam pascal ada dua jenis. Yang pertama itu adalah
parameter input saja, kemudian yang kedua adalah parameter input/output.
Maksudnya adalah :
**Parameter input : parameter yang menerima inputa dari sebuah variable, namun
parameter ini tidak mengubah ataupun mengupdate nilai.
**Parameter input/output : parameter yang menerima dua tugas sekaligus, yaitu
sebagai penerima inputan sekaligus sebagai pengupdate nilai.
Penulisan sintax dalam pascalnya untuk membuat prosedur adalah :
Procedure nama_prosedur(variabelinput:tipevariabel
; var variabelinputoutput:tipevariabel);
Catatan: Kata var dalam sintax diatas menunjukkan
bahwa variable tersebut berfungsi sebagai parameter input output. Atau sering
disebut I/O.
Sedangkan sintax pascal untuk memanggilnya adalah sebagai berikut:
Nama_prosedur(parameter aktual);
Untuk lebih jelasnya perhatikan program dibawah ini
:
Program ubah;
Uses crt;
Var
First:integer;
Second:integer;
Procedure ganti1(var a,b:integer);
Var
Temp:integer;
Begin
temp:=a;
a:=b;
b:=temp;
writeln(a,’-‘,b);
End;
Procedure ganti2(a,b:integer);
Var
Temp:integer;
Begin
temp:=a;
a:=b;
b:=temp;
writeln(a,’-‘,b);
End;
Begin
Clrscr;
Readln(first);
Readln(second);
Ganti1(first,second);
Ganti2(first,second);
Writeln(first,’-‘,second);
Readln;
End.
Misalnya saya memberikan inputan first dengan angka 1, kemudian second saya
inputkan angka 2,
Maka akan muncul outputan dilayar :
2-1
1-2
2-1
Agar lebih jelas sebaiknya ditracking saja
Pertama first diinputkan 1, second diinputkan 2, maka nilai first adalah 1 dan
second nilainya 2.
Kemudian memanggil prosedur ganti1, variable first berasosiasi dengan variable
a sedangkan second akan berasosiasi dengan variable b, maka nilai a=1, b=2.
Nilai ditukar dan dioutputkan, maka nilai a menjadi 2 dan b menjadi 1. Setelah
itu nilai dioutputkan dan muncul dilayar 2-1.
Kemudian karena parameter parameter formal ada tulisan var nya, maka variabel
yang ada dibelakang kata var dalam parameter formal tersebut bertipe input
output, maka nilai dari a dan b akan diupdate.
Karena nilai a dan b menjadi 2 dan 1 maka a beasosiasi dengan first dan b
berasosiasi dengan second, sehingga nilai first menjadi 2, dan second menjadi
1.
Pemanggilan prosedur ganti1 selesai.
Sekarang kita dapatkan nilai first=2 dan second=1.
Kemudian memanggil prosedur ganti2.
Maka first akan berasosiasi dengan a sedangkan second akan berasosiasi dengan
b.
Setelah itu nilai a dalam prosedur ganti2 menjadi 2 sedangkan b menjadi 1.
Maka berikutnya a dan b akan ditukar dalam prosedur tersebut, sehingga nilai a
adalah 1 dan b adalah 2.
Kemudian dioutputkan kelayar dan hasilnya adalah 1-2.
Karena tidak ada kata var di dalam parameter formal di prosedur ganti2 maka
nilai a = 1 dan b=2 hanya berlaku dalam prosedur ganti 2 itu saja, dan nilai
tidak akan diupdate, sehingga variabel first dan second nilainya tetap tidak
berubah seperti pada saat sebelum memanggil prosedur ganti2, yaitu first tetap
2 dan second tetap 1.
Pemanggilan prosedur selesai, kemudian akan dilanjutkan dengan mengoutputkan
nilai first dan second, maka akan mengoutputkan tulisan 2-1 pada layar.