Upload
cahyono-wibowo
View
227
Download
1
Embed Size (px)
DESCRIPTION
FUNGSI MATEMATIKA
Citation preview
FUNGSI
Fungsi Fungsi adalah sub program yang
memberikan/mengembalikan sebuah nilai dari tipe tertentu. Sebagaimana halnya prosedur, fungsi diakses dengan memanggil namanya.
Fungsi juga dapat mengandung daftar parameter formal. Parameter formal pada fungsi selalu berupa parameter masukan, karena parameter pada fungsi merupakan masukan yang digunakan oleh fungsi tersebut untuk menghasilkan nilai
Deklarasi fungsi
function NamaFungsi(daftar parameter masukan) :tipe datadeklarasideskripsi
Bagian Pernyataan
Pemanggilan Fungsi
Fungsi diakses dengan cara memanggil namanya dari program utama atau sub program lain, diikuti dengan daftar parameter aktual (jika ada).
Karena fungsi menghasilkan nilai, maka nilai tersebut dapat ditampung dalam suatu variabel (peubah) yang bertipe sama dengan tipe fungsi.(i). peubah := NamaFungsi(daftar parameter aktual);atau dimanipulasi langsung seperti :(ii) write(NamaFungsi(daftar parameter aktual));(iii) if NamaFungsi(daftar parameter aktual) > 0 then....(iv) y := 2* NamaFungsi(daftar parameter aktual) +3;
ContohFunction Maks(X,Y : integer) : integerDeskripsi
if X > Y then Maks Xelse Maks Yend if
Pemanggilan : Write(Maks(3,6)) ZMaks(4,5) If Maks(A,B) > 0 then… ZMaks(A,B) * 2
REKURSI Suatu subprogram tidak hanya bisa memanggil sub
program lain, tetapi juga bisa memanggil dirinya sendiri. Cara ini dikenal dengan sebutan rekursi.
Rekursi banyak dipakai pada persoalan yang dapat dipecahkan secara induktif. Misalnya untuk menghitung faktorial.
Pemecahan secara rekursif :0 ! = 1 (penghentian rekursi)jika m > 0, m ! = m x (m-1) ! (langkah induksi)
00
....4321,1
!
mm
jikajika
xmxxxm
Fungsi Rekursif Fungsi yang memanggil dirinya sendiri
disebut fungsi rekursif. Contoh fungsi rekursif untuk menghitung faktorial.
Function FaktorialR(m:byte) : longintdeskripsi
If m = 0 then FaktrialR 1else FaktorialR m * FaktorialR(m-1)
End if
Latihan
function move(input n : integer):integer;deklarasi if (n=1) then move 1 else
move 2*move(n-1)+1end if
Berapa move(8) ?
Latihanfunction Z (input ki, ka : integer):integerdeskripsiif ki<ka then Z Z(1,((ki+ka) div 2)-1) + Z( ((ki+ka) div 2 ) +1, ka)+1 else Z 1end if
Berapakah nilai Z(1,7) ?
Prosedur RekursifProcedure Balik (X : integer)Deklarasi Sisa : integerDeskripsi
write (X mod 10)Sisa X div 10;If Sisa <> 0 Then Balik(Sisa)
End if
Jika prosedur di atas dipanggil dengan Balik(1024) apa hasilnya ?
LatihanProcedure Star(input t : integer)deskripsi if (t<2) then write (‘*’) else star (t-1) star (t-2) end if
Berapa kali simbol ‘*’ dituliskan jika prosedur dipanggil dengan perintah Star(6) ?
Latihan
1. Lihat kembali Algoritma Euclidean untuk menghitung nilai FPB. Buatlah prosedur untuk menghitung nilai FPB berdasarlan Algoritma Euclidean, secara rekursif.
2. Buatlah fungsi rekursif dan non rekursif untuk menghitung nilai XN, dengan X bilangan riil dan N bilangan bulat