FUNGSI DAN PROSEDUR


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.
Karena cukup panjang kalau saya jelaskan maka saya ambil contoh pada bahasa pascal saja.
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 asebuah 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.

Iklan

Tinggalkan Komentar

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s