untuk melaksanakan fungsi tertentu yang menghasilkan suatu nilai untuk dikembalikan ke program utama.
Fungsi pada hakekatnya serupa dengan
prosedur dalam pelaksanaannya, tetapi harus mengembalikan suatu nilai ke program yang menggunakan fungsi. Prosedur hanya bisa mengembalikan nilai melalui parameter input/optput. Fungsi nama_fungsi(parameter formal) tipe_hasil {spesifikasi fungsi} Deklarasi {variabel lokal} Deskripsi {langkah/proses yg dilakukan oleh fungsi} .......... .......... return hasil, f(x) = x2 + 8x +10
Function F (input x:real ) real
{menghitung nilai fungsi f(x)= x2 + 8x +10} Deklarasi real x Deskripsi y x*x+8*x+10; return y; Function Kabisat(input th:integer) boolean {true jika th adalah kabisat, false jika tidak} Deklarasi {tidak ada} Deskripsi if(th mod 4=0 and th mod 100 ≠0) or (th mod 400=0) then return true {th kabisat} else return false {bukan th kabisat} endif Function NamaBulan(input bln:integer) string {mengembalikannama bulan berdasarkan nomor bulan} Deklarasi Nama : string Deskripsi case bln 1:Nama “Januari” 2:Nama “Februari” 3:Nama “Maret” ............... endcase return Nama Function Fak ( input n:integer) integer Deklarasi i,f : integer Deskripsi f 1 for i 1 to n do f f*i endfor return f Fungsi diakses dengan memanggil namanya dari program pemanggil, diikuti dengan daftar parameter aktual (bila ada) Algoritma Tahun Kabisat {program untuk menentukan apakah suatu tahun merupakan tahun kabisat atau bukan} Deklarasi tahun:integer function Kabisat(input th:integer) boolean Deskripsi read (tahun) if Kabisat (tahun) then write (“tahun kabisat”) else write (“bukan tahun kabisat”) endif Algoritma Bulan {memanggil fungsi untuk menampilkan nama bulan} Deklarasi bulan:integer function NamaBulan(input bln:integer) string Deskripsi write (“bulan:”) read (bulan): nama_bulan NamaBulan (bulan);
Function NamaBulan(input bln:integer) string
{mengembalikannama bulan berdasarkan nomor bulan} Deklarasi Nama : string Deskripsi case bln 1:Nama “Januari” 2:Nama “Februari” 3:Nama “Maret” ............... endcase return Nama Jawab : Fungsi digunakan apabila modul program mengembalikan sebuah nilai, sementara prosedur digunakan bila modulmenghasilkan efek netto dari sekumpulan aksi. (Namun kadang tidak jelas).
“pemilihan apakah sebuah modul direalisasikan
sebagai fungsi atau prosedur bergantung pada kebutuhan dan seni memprogram”. Function Maks (inp a,b Procedure Maks (inp a,b :integer) integer :integer, output Deklarasi maks:integer) Deskripsi Deklarasi Deskripsi if a ≥ b then if a ≥ b then return a maks a else else return b maks b endif endif Procedure HitungRataRata Function RataRata (inp (inp Ndata :int, out :real) Ndata:int) real Deklarasi Deklarasi x,i , jumlah: integer x,i , jumlah: integer Deskripsi Deskripsi jumlah 0 jumlah 0 for i 1 to Ndata do for i 1 to Ndata do read (x) read (x) jumlah jumlah+x jumlah jumlah+x endfor endfor U jumlah/Ndata return jumlah/Ndata