Anda di halaman 1dari 9

FUNCTION

Fungsi sama seperti halnya dengan prosedur, namun tetap ada perbedaannya
yaitu fungsi mempunyai output dengan tipe variabel yang kita tentukan. Berbeda
dengan procedure yang bisa tidak menggunakan parameter, fungsi harus
menggunakan parameter dalam penggunaannya.
Bentuk umum Fungsi adalah sebagai berikut:
TipeData NamaFungsi (DaftarParameter){/*Code atau Badan
Prosedur*/return nilaireturn;}

Fungsi (Function) adalah suatu program terpisah dalam blok sendiri yang
berfungsi sebagai subprogram (program bagian). Pada fungsi, tipe data harus
dideklarasikan. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Tipe
tersebut ditulis pada akhir deklarasi fungsi yang didahului dengan titik koma,
sebagai berikut:
Function identifier(daftar-parameter): type;

1. Fungsi tanpa parameter


Fungsi yang tanpa parameter berarti nilai balik yang akan dihasilkan
merupakan nilai yang sudah pasti. Karena tidak menggunakan parameter,
maka hasil fungsi tersebut tidak dapat diatur dari modul yang
menggunakannya, karena tidak ada parameter yang dikirimkan. Fungsi tanpa
parameter jarang dipergunakan.

Example 1 :
type huruf = string [6];
function garis : huruf;
begin
clrscr;
garis := ‘======’;

Algoritma dan Pemrograman 70


end;
begin
writeln (garis);
writeln (‘Pascal’);
writeln (Garis);
readln;
end.

Output program :
======
Pascal
======

Note :
Fungsi “Garis” hanya menghasilkan nilai yang sudah pasti yaitu :
“======”.

2. Parameter dalam fungsi


Parameter dalam fungsi dapat dikirimkan secara nilai atau secara acuan.
Contoh penulisan parameter dengan pengiriman secara nilai :
function hitung (a, b : integer) : integer;

Example 2 :
function terbesar(x, y : real) : real;
begin
clrscr;
IF x > y THEN
terbesar := x
ELSE
terbesar := y;
end;

Algoritma dan Pemrograman 71


var
nilai1, nilai2 : real;
begin
write (‘Nilai pertama =’); readln (nilai1);
write (‘Nilai kedua = ‘ ); readln (nilai2);
writeln (‘Nilai terbesar adalah =’,terbesar (nilai1, nilai2) :9:3);
readln;
end.

Output program :
Nilai pertama = 12.356
Nilai kedua = 55.182
Nilai terbesar adalah = 55.182

3. Fungsi pangkat
Pascal tidak menyediakan fungsi untuk perpangkatan tinggi, yang ada
hanya fungsi standar Sqr, yaitu pemngkatan kuadrat saja. Bila akan
melakukan perpangkatan lebih dari pangkat dua, maka harus dibuat program
tersendiri.

4. Fungsi memanggil dirinya sendiri


Fungsi juga dapat memanggil dirinya sendiri. Proses fungsi memanggil
dirinya sendiri juga merupakan proses rekursi (recursion).

Example 3 :
function faktorial (nilai : integer) : real;
begin
clrscr;
IF nilai = 0 THEN
faktorial := 1
ELSE

Algoritma dan Pemrograman 72


faktorial : = Nilai * Faktorial (Nilai – 1 );
end;

var
n : integer;
begin
write (‘Berapa faktorial ?’);
readln (n);
writeln (n,‘faktorial =’,faktorial (n) :9:0);
readln;
end.

Output program :
Berapa factorial ? 5
5 faktorial = bbbbbb120
ket : b = blank

5. Fungsi memanggil fungsi yang lain


Suatu fungsi dapat juga memanggil fungsi yang lain. Fungsi yang
dipanggil letaknya harus berada di atas fungsi yag memanggil.

Example 4 :
function fungsi2 (y : integer) : integer;
begin
clrscr;
fungsi2 := y * 2;
end;
function fungsi1 (x : integer) : integer;
begin
fungsi1 := fungsi2 (x) + 5;
end;

Algoritma dan Pemrograman 73


begin
writeln (fungsi1(3));
readln;
end.

Example 5 :
Menghitung luas segitiga beberapa kali :
program tanpa_function;
uses crt;
var
p, l : integer;
begin
clrscr;
alas := 5;
tinggi := 3;
writeln ('Luas segitiga = ',alas * tinggi * 0.5);
alas := 2;
tinggi := 7;
writeln ('Luas segitiga = ',alas * tinggi * 0.5);
alas := 4;
tinggi := 6;
writeln ('Luas segitiga = ',alas * tinggi * 0.5);
readln;
end.

Jika menggunakan function


program dengan_function;
function luas(alas,tinggi : integer):single;
begin
clrscr;
luas := 0.5 * alas * tinggi;

Algoritma dan Pemrograman 74


end;
var
p, l : integer;
begin
alas := 5;
tinggi := 3;
writeln ('Luas segitiga = ',luas(alas,tinggi));
alas := 2;
tinggi := 7;
writeln ('Luas segitiga = ',luas(alas,tinggi));
alas := 4;
tinggi := 6;
writeln ('Luas segitiga = ',luas(alas,tinggi));
readln;
end.

Example 6 :
function hitung(var a, b : integer): integer;
begin
clrscr;
hitung := a + b;
end;
var
x, y : integer;
begin
write (’Nilai x ? ’); readln (x);
write (’Nilai y ? ’); readln (y);
writeln;
writeln (x,’ + ’,y,’ = ’, hitung (x, y));
readln;
end.

Algoritma dan Pemrograman 75


Exercise
1. Buatlah program bilangan finonacci yang kurang dari 100 dengan
menggunakan function !

2. Buatlah data nilai siswa suatu kelas dengan menggunakan if-then dan
gunakanlah function !

3. Buatlah output dari program dibawah ini


Input :
program fungsi1;
uses crt;
function luas (a, b : integer) : integer;
begin
clrscr;
luas := a * b;
end;
var
x, y : integer;
begin
clrscr;
writeln ('Program Menghitung Luas Persegi Panjang');
writeln;
write ('Masukkan panjang = '); readln (x);
write ('Masukkan lebar = '); readln (y);
writeln;
writeln ('Luas persegi panjang adalah = ',luas(x,y));
readln;
end.

Algoritma dan Pemrograman 76


4. Buatlah input dari output program dibawah ini !

Output program:
Masukkan rusuk :
6
Volume kubus dengan rusuk 6 adalah 216

5. Buatlah program menggunakan function untuk menampilkan deret bilangan


dari 1 sampai dengan nilai akhir deret, lalu tampilkan hasil penjumlahan deret
angka tersebut.

6. Buatlah program menggunakan function untuk menghitung nilai tukar rupiah


terhadap dollar.

7. Buatlah program menghitung total gaji menggunakan function, dengan


ketentuan sebagai berikut :
Total gaji seorang pegawai dipengaruhi oleh Gaji Pokok dan besarnya
tunjangan anak
Total Gaji = Gaji Pokok + Tunjangan Anak
Gaji Pokok ditentukan dari kepangkatan/Golongan

8. Buatlah output dari program berikut :


program function;
uses crt;
function faktor(bilangan : integer) : real;
begin
IF bilangan = 0 THEN faktor := 1
ELSE
faktor := faktor (bilangan - 1) * bilangan;
end;

Algoritma dan Pemrograman 77


var
n : integer;
begin
clrscr;
write (‘Berapa faktorial dari = ‘); readln (n);
writeln (n,’faktorial = ‘,faktor (n) :9:0);
readln;
end.

9. Buatlah sebuah program untuk menentukan suatu persamaan kuadrat dengan


menggunakan function!

10. Buatlah suatu program sederhana menggunakan function !

Algoritma dan Pemrograman 78

Anda mungkin juga menyukai