FUNGSI
(FUNCTION)
KONSEP
Ø Subprogram
yang memberikan/mengembalikan (return) sebuah nilai dari tipe tertentu (tipe
dasar atau bentukan).
Ø Diakses
dengan memanggil namanya.
Ø Dapat
memiliki parameter formal yang selalu bersifat sebagai parameter masukan.
PENDEFINISIAN FUNGSI
Ø Memiliki
struktur yang sama dengan prosedur yaitu bagian header, deklarasi, dan
definisi.
Bentuk pendefinisian fungsi :
function NamaFungsi(input daftarparameter,
jika ada)®
tipe
{Spesifikasi fungsi,menjelaskan apa
yang dilakukan dan yang dikembalikan fungsi}
DEKLARASI :
{semua
nama peubah}
DEFINISI :
{urutan
instruksi/aksi}
return ekspresi
end function
Contoh 1:
function Hitung_Nilai_Maks (input
a,b : integer) ®
integer
{Menghitung nilai maksimal antara
dua bilangan}
DEKLARASI :
maks : integer
DEFINISI :
if
a > b then
maks
¬ a
else
maks
¬ b
return
maks
end function
Contoh 2 :
function Faktorial (input
bil:integer) ®
integer
{Mencari hasil factorial bilangan,
bilangan ³
0}
DEKLARASI:
i,fak
: integer
DEFINISI :
fak¬1
for i¬1 to bil do
fak ¬
fak * i
endfor
return
fak
end function
Contoh 3 :
function Pangkat_bil(input bil,
n:integer) ®
integer
{Mencari hasil pangkat bil sebanyak
n kali}
DEKLARASI :
hasil,i
: integer
DEFINISI :
hasil¬1
for
i¬1 to n do
hasil¬hasil * bil
endfor
return
hasil
end function
PEMANGGILAN FUNGSI
Seperti
prosedur, fungsi diakses dengan cara memanggil namanya dari program pemanggil
seperti program utama atau subprogram lainnya diikuti dengan daftar parameter
aktual jika ada.
Karena
fungsi menghasilkan nilai, maka nilai tersebut dapat diproses dengan dua cara,
yakni :
Ø Nilai ditampung dalam sebuah peubah yang bertipe sama dengan
tipe fungsi.
peubah ¬ NamaFungsi(parameter aktual, jika ada)
Sebagai
contoh :
·
y¬Pangkat_bil(5, 3)
·
h¬Faktorial(6)
Ø Nilai langsung dimanipulasi seperti pada contoh berikut :
·
write(Pangkat_bil(5, 3))
·
if Faktorial(6) > 50 then
write(‘Sukses’)
endfor
Contoh 4 (Pemanggilan
Fungsi):
Algoritma Hitung_Nilai_Maks
{Menghitung nilai maksimal antara
dua bilangan dengan menggunakan fungsi}
DEKLARASI :
a,b
: integer
function
Hitung_Nilai_Maks(input a, b : integer)®
integer
DEFINISI :
read(a,
b)
write(Hitung_Nilai_Maks(a,
b))
End Algoritma
Contoh 5 :
Algoritma Hitung_Faktorial
{Mencari hasil factorial bilangan
yang lebih besar atau sama dengan 0 dengan menggunakan fungsi}
DEKLARASI
:
Bilangan :
integer
function Faktorial (input bil:integer) ® integer
DEFINISI :
Read(Bilangan)
Write(‘Hasil Faktorial dari ‘, Bilangan,‘= ’,
Faktorial(Bilangan))
End Algoritma
Contoh 6 :
Algoritma Hitung_Pangkat_Bilangan
{Mencari hasil pangkat bil sebanyak
n kali dengan menggunakan fungsi}
DEKLARASI :
Bilangan : integer
Pangkat : integer
function
Pangkat_bil(input bil, n:integer) ®
integer
DEFINISI :
Read(Bilangan)
Read(Pangkat)
If
(Bilangan = 0) then
Write(‘Hasil
pangkat adalah 0’)
Else
Write(‘Hasil
pangkat adalah ’, Pangkat_bil(Bilangan, Pangkat))
End
for
End Algoritma