Anda di halaman 1dari 5

*Function*

*Fungsi adalah bagian dari program yang dibuat terpisah untuk melaksanakan fungsi
tertentu yang menghasilkan suatu nilai untuk dikembalikan ke program utama.*

Oleh karena itu suatu fungsi *akan memiliki tipe data tertentu apakah integer, boolean,
string, longint, real, dll.*

Berikut ini bentuk umum dari pendefinisian sebuah fungsi.

Function NamaFungsi (parameter1 : tipe_data, parameter2: tipe_data, . . .) : tipe_data;


Const {daftar konstanta lokal}
Var {daftar pendeklarasian variabel lokal}
Begin
{kode program yang akan ditulis}
...
Nama Fungsi := nilai_kembalian; {ingat baris ini}
End;

Berikut ini contoh pendefinisian fungsi sederhana yang akan mengalikan dua buah
bilangan bulat.

Function Kali (x, y : integer) : longint;


Begin
Kali := x * y;
End;

Kita juga dapat mendeklarasikan variabel lokal untuk menyimpan nilai sebelum akhirnya
dikembalikan lagi ke fungsi, misalnya seperti kode di bawah ini.

Function Kali (x, y : integer) : longint;


Var
Hasil : longint;
Begin
Hasil := x * y;
Kali := Hasil;
End;

*Pemanggilan Fungsi*

Fungsi diakses dengan cara memanggil namanya dari program pemanggil, diikuti dengan
daftar parameter aktual (bila ada). Oleh karena fungsi menghasilkan sebuah nilai maka
pada saat pemanggilannya juga dapat ditampung ke dalam suatu variabel.

Berikut ini contoh pemanggilan fungsi di atas.

Program Kali;
Var A : longint;

Function Kali (x, y : integer) : longint;


Begin
Kali := x * y; {rumus perkalian}
End;
Begin
A := Kali (10, 5);
Writeln(‘Hasil Perkalian :’,A);
End.

*Contoh 1 : fungsi dng nilai Integer*

*Algoritma*

*Dalam Program Pascal*

program maksimum;
uses crt;
var a,b:integer;

function maks(x,y:Integer):Integer ;
begin
if x<y then maks:=y else maks :=x;
end;

begin
clrscr;
write('a : ');ReadLn(a);
Write('b : ');ReadLn(b);
WriteLn('nilai maks : ',maks(a,b));
writeln('Press enter to continue');
readln;
end.

*Contoh 2: Fungsi dengan nilai boolean*

*Algoritma*

Program GenapGanjil;
Var
X : integer;

Function Genap(n : integer) : boolean;


Begin
Genap = (n mod 2) = 0
end

Begin {main program}


Read(x)
if Genap(x)
then write(‘Genap’)
else write(‘Ganjil’)
endif

*Dalam Program Pascal*

Program GenapGanjil;
uses crt;
Var
X : integer;
Function Genap(n : integer) : boolean;
Begin
Genap := (n mod 2) = 0;
end;
Begin
clrscr;
write('masukkan bilangan : ');Readln(x);
if Genap(x)
then writeln('Genap')
else writeln('Ganjil');
writeln('Press enter to continue');
readln;
end.

*Contoh 3: Function dng nilai string*

*Algoritma*

*Dalam Program Pascal*


Program NamaBulan;
uses crt;
var x:integer;
Function NamaBln(bln : integer) : string ;
{mengembalikan nama bulan berdasarkan nomor bln}
var nama : string;
begin
case (bln) of
1 : nama := 'Januari';
2 : nama := 'Februari';
3 : nama := 'Maret';
4 : nama := 'April';
end;
NamaBln:=nama;
end;
begin
clrscr;
read(x);
writeln(NamaBln(x));
writeln('Press enter to continue');
readln;
end.

*Latihan Membuat program dengan fungsi*.

Program GenapGanjil;
uses crt;
Var X : integer;

Function Genap(n : integer) : boolean;


Begin
if (n mod 2) = 0
then genap:=true else genap:=false;
end;

Begin
clrscr;
write('masukkan bilangan : ');Readln(x);
if Genap(x)
then writeln('Genap')
else writeln('Ganjil');
writeln('Press enter to continue');
readln;
end.

*SOAL*
*Modifikasi program genap/ganjil diatas menjadi program memerika tahun kabisat
dengan menggunakan function*.

Sebelum kita Membuat program kita harus paham Rumus untuk menentukan tahun kabisat
adalah sebagai berikut

1. Jika angka tahun itu tidak habis dibagi 400, tidak habis dibagi 100 akan tetapi habis
dibagi 4, maka tahun itu merupakan tahun kabisat. Atau dalam algortima sbb: If ((n
mod 4) = 0) and ((n mod 100) <> 0) and (n mod 400) <> 0 )
2. Jika angka tahun itu habis dibagi 400, maka tahun itu sudah pasti tahun kabisat.
(dalam algoritma If n mod 400 = 0)

Merupakan tahun kabisat bila memenuhi syarat sbb:


If ((n mod 4) = 0) and ((n mod 100) <>0) and ((n mod 400)<>0)
OR
if (n mod 400) = 0

Bila kedua algoritma diatas digabungkan, algoritmanya menjadi

If ((n mod 4) = 0) and ((n mod 100) <>0) or ((n mod 400) = 0)

*Modifikasi program genap/ganjil diatas menjadi program memerika tahun kabisat


dengan menggunakan function dng output seperti diatas*.

*Bagi yang sudah selesai, silahkan source program di share di group ini*

Anda mungkin juga menyukai