Baik kali ini kita masuk kebagian procedure dan fungsi di pascal.
tapi sebelum membahas lebih jauh kita kenali dulu kira-kira apa sih perbedaan procedure dan fungsi di pascal.
perbedaannya yaitu.
1. Prosedur diawali dengan dengan kata procedure untuk mendeklarasikannya
contoh : procedure hitung_angka;
kalau fungsi di awali dengan kata function
function hitung_bilangan: integer;
2. Procedure tidak mengembalikan nilai ke program utama, sedangkan fungsi akan mengembalikan nilai ke program utama, itu sebabnya fungsi harus ada tipe datanya (integer, char atau string).
3. Procedure outputnya diletakkan di dalam procedure, kalau fungsi outputnya di letakkan di program utama.
4. Prosedur di panggil diprogram utama dengan menuliskan nama procedure tersebut di program utama. contoh :hitung_bilangan;
Fungsi di panggil dengan memasukkan ke suatu variabel. atau bisa juga dengan langsung menuliskannya di program utama.
contoh. hasil:= hitung_bilangan(a,b);
atau write('hasilnya adalah ', hitng_bilangan(a,b));
baik langsung saja ke contoh..
program aritha_pascal;
uses wincrt;
procedure nama;
var nm: string;
begin
write('masukkan nama anda ');
readln(nm);
write('haloo ', nm);
end;
begin
writeln('-======Program Procedure Input Nama======-');
nama;
end.
Procedure dengan parameter Input dan parameter Output
kalau kita lihat contoh program sebelumnya perintah input read(nama); dan output write(nama); berada di procedure yang sama. nah bagai mana caranya apabila kita membaca input di procedure a. kemudian menampilkannya di procedure b.
untuk melakukan itu kita membutuhkan yang namanya parameter. parameter ada 2 parameter input yang berfungsi sebagai inputan untuk procedure tesebut. dan yang kedua adalah parameter output. yang berufngsi untuk memberikan output pada variabel yang di parameterkan.
program aritha_pascal;
uses wincrt;
procedure inputnama (var nm:string);
begin
write('masukkan nama anda ');
readln(nm);
end;
procedure tampilnama (nm:string);
begin
write('haloo ',nm);
end;
var nama:string;
begin
writeln('-======Program Procedure Input Nama======-');
inputnama(nama);
tampilnama(nama);
end.
pada prosedur inputnama tulisan yang berwana merah (var nm:string) adalah parameter output (parameter by reference). dimana nama yang di inputkan di dalam procedur akan menjadi output pada program utama sehingga di program utama nama yang telah di inpukan tadi bisa digunakan. ciri2 parameter output adalah dengan adanya var pada (var nm:string)
sedangkan untuk parameter input tidak menggunakan var. lihat coding di procedure tampilnama yang berwana biru (nm:string) nah in adalah contoh parameter input (parameter by value)
contoh lain
program aritha_pascal;
uses wincrt;
procedure inputan(alas: integer; tinggi:integer; var luas:real);
begin
write('masukkan nilai alas : '); readln(alas);
write('masukkan nilai tinggi : '); readln(tinggi);
luas:= alas*tinggi/2;
end;
var a,t:integer;
luas : real;
begin
writeln('-======Program Procedure Luas segitiga======-');
writeln;
inputan(a,t,luas);
write('luas segitiga adalah : ', luas:0:2);
end.
Fungsi
program aritha_pascal;
uses wincrt;
function luassegitiga(alas: integer; tinggi:integer) : real;
var luas:real;
begin
luas:= alas*tinggi/2;
luassegitiga:= luas;
end;
var a,t:integer;
luas : real;
begin
writeln('-======Program Fungsi Luas segitiga======-');
writeln;
write('masukkan nilai alas : '); readln(a);
write('masukkan nilai tinggi : '); readln(t);
write('luas segitiga adalah : ', luassegitiga(a,t):0:2);
end.
tulisan yang berwarna merah adalah pemanggilan fungsi yang memberikan nilai luas dari segitiga.
kayaknya segitu aja deh ya contoh buat fungsi dan procedure. semoga bermanfaat :)