Prosedur dan fungsi
Transcript of Prosedur dan fungsi
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 :
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.