Function Pertemuan 7 Jurusan Sistem Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Gunadarma 2015 Fungsi tanpa parameter Parameter dalam fungsi Fungsi Standar Aritmatika Fungsi Tersarang (Fungsi memanggil dirinya sendiri) Function Fungsi adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian dari pekerjaan program utama. Fungsi tidak hanya digunakan untuk mengelompokkan baris-baris perintah seperti prosedur, tetapi fungsi dapat menampung nilai yang disimpan dengan nama fungsi. Function Blok fungsi sama dengan blok prosedur, blok fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi fungsi menunjukkan tipe hasil dari fungsi. Fungsi merupakan modul program yang menghasilkan suatu kuantitas. Penulisan Header Function Header Function Tanpa Parameter Function nama : jenis hasil; Function <NamaFunction> : TipeData ; Contoh : Function Hitung : Integer; Function Nama : String; Function Check : Boolean; Header Function Tanpa Parameter Struktur Blok Program : Program <NamaProgram> Function <NamaFunction> : TipeData; Begin …… End; Begin …… End. Contoh Program Program Hitung; Var x,y:byte; Function Tambah:byte; Begin Tambah:=x+y; End; Function Kali:byte; Begin Kali:=x*y; End; Begin Writeln(‘X=‘); Readln(x); Writeln(‘Y=‘); Readln(y); Writeln(‘X+Y=‘, Tambah); Readln; Writeln(‘X*Y=‘, Kali); Readln; End. Penulisan Header Function Header Function Dengan Parameter Function nama(formal parameter : jenis) : jenis_hasil; Function <NamaFunction> (<Daftar Parameter>) : TipeData; Contoh : Function Hitung (a,b:byte) : integer; Function CheckPosisi (x,y:integer) : boolean; Header Function Dengan Parameter Struktur Blok Program Program <NamaProgram> Function <NamaFunction> (<Daftar Parameter>) : TipeData; Begin …… End; Begin …… End. Contoh Program Program Hitung; Function Tambah (x,y:byte) : byte; Begin Tambah:=x+y; End; Function Kali (x,y:byte) : byte; Begin Kali:=x*y; End; Var x,y:byte; Begin Writeln(‘X=‘); Readln(x); Writeln(‘Y=‘); Readln(y); Writeln(‘X+Y=‘, Tambah(x,y)); Writeln(‘X*Y=‘, Kali(x,y)); End. Function dan Procedure Pada fungsi nilai yang dikirim balik terdapat pada nama fungsinya. Pada prosedur pada parameter yang dikirim sebagai acuan. Nilai balik berada di nama fungsi maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya. Pada prosedur, nama prosedur tidak dapat digunakan langsung, yang dapat digunakan langsung adalah parameter yang mengandung nilai balik. Perbedaan Procedure dan Function Jika membuat suatu procedure maka harus dideklarasikan dengan reserved word “Procedure”. Jika membuat suatu function harus dideklarasikan dengan reserved word “Function” Functon harus dideklarasikan dengan typenya, sedangkan procedure tidak. Hal ini menunjukkan bahwa function dapat menampung nilai, sedang procedure tidak dapat menampung nilai. Persamaan Procedure dan Function Memecah sebuah program besar menjadi beberapa bagian/modul sehingga memudahkan pembagian tugas jika program dibuat oleh lebih dari 1 orang, dan mempermudah pengecekan kesalahan/error. Jika terdapat perintah yang sama yang akan dipakai dalam suatu program, maka sebaiknya perintah tersebut dipisahkan dalam suatu modul program dengan bantuan procedure, sehingga jika ingin memakainya kita hanya tinggal memanggil nama procedure tersebut. Mempermudah proses dokumentasi. Rekursif Fungsi atau prosedur bersifat rekursif berarti fungsi atau prosedur tersebut dapat memanggil dirinya sendiri. Contoh : Function Faktorial (nilai:integer) : integer; Function Fibonacci (n:integer) : integer; Function Reserse (num:integer); Contoh Program Rekursi Program BilanganFibonacci; F(0)=0; F(1)=1; F(n)=F(n-1)+F(n-2); untuk n>1 Function fibonacci (n:integer) : integer; Begin If n:=0 then fibonancci:=0; Else If n:=1 then fibonancci Else fibonnacci:=fibonacci (n-1)+fibonacci (n-2); End. Fungsi Standar Fungsi Standar Aritmatika Fungsi Standar Transfer Fungsi Standar Lainnya Fungsi Standar Aritmatika Fungsi Standar ABS Memutlakkan suatu nilai yang ditunjukkan oleh argumen x. Bentuk umum : ABS(x); Fungsi Standar EXP Menghitung nilai pangkat dari bilangan e yaitu sebesar ex. Hasilnya berupa nilai real. Bentuk umum : EXP(x:):real; Fungsi Standar LN Menghitung nilai logaritma alam (natiral logaritma) dari nilai x. Hasilnya berupa nilai real. Bentuk umum : LN(x):real; Fungsi Standar INT Menghasilkan nilai intreger dari x. Hasil dari fungsi adalah tipe real dengan nilai yang berupa pembulatan ke bawah (nilai pecahan dibuang) dari nilai x. Bentuk umum : INT(x:real):real; Fungsi Standar Aritmatika Fungsi Standar FRAC Mendapatkan nilai pecahan dari argumen x. Argumen x dapat bernilai real maupun integer dan hasil dari fungsi adalah real. Bentuk umum : FRAC(x):real; Fungsi Standar SQR Menghitung nilai pangkat kuadrat dari argumen x. Bentuk umum : SQR(x); Fungsi Standar SQRT Menghitung nilai akar dari argumen x, hasilnya berupa real. Bentuk umum : SQRT(x):real; Fungsi Standar PI, SIN, COS, ARCTAN Fungsi Standar Transfer Digunakan untuk merubah suatu nilai ke bentuk nilai lain. Fungsi Standar CHR Merubah nilai byte x ke bentuk karakter yang sesuai dengan kode ASCII. Bentuk umum : CHR(x:byte):char; Fungsi Standar ORD Merubah nilai x ke bentuk nilai longint yang sesuai dengan kode ASCII dan kebalikan dari fungsi CHR. Bentuk umum : ORD(x):longint; Fungsi Standar Transfer Fungsi Standar Round Membulatkan nilai dari real x ke nilai longint yang terdekat. Nilai pecahan sama dengan atau > 0.5 akan dibulatkan ke atas, < 0.5 dibulatkan ke bawah. Bentuk umum : ROUND(x:real):longint; Fungsi Standar Trunc Membulatkan nilai dari real x ke nilai longint terkecil atau membulatkan kebawah. Bentuk umum : TRUNC(x:real):longint; Fungsi Standar Lainnya Fungsi Standar Hi, Lo, Swap Fungsi Standar Random. Random [(range:word)]; Menghasilkan angka random berkisar dari nilai lebih besar atau sama dengan nol dan lebih kecil dari satu. Bila range tidak disebutkan hasil dari fungsi ini adalah real tetapi bila range disebutkan hasilnya adalah word. Fungsi Standar SizeOf. SizeOf(x):word; Menunjukkan besarnya byte yang digunakan oleh suatu variabel x, hasilnya berupa nilai word. Fungsi Standar UPCASE. UpCase(Ch:char):char; Merubah argumen suatu karakter yang ditunjukkan oleh Ch menjadi bentuk karakter huruf besar(upper case).