Procedure dan Fungsi
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 :
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))
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/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:
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;
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
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.
EmoticonEmoticon