Algoritma dan Pemrograman II MATERI 6 Function Blok function hamper sama dengan blok procedure, hanya fungsi harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dan fungsi. Tipe tersebut ditulis pada akhir deklarasi fungsi yang didahuli dengan titik koma, sebagai berikut : Function identifier (daftar-parameter) : tipe; Blok function sama dengan blok procedure yang diawali dengan kata cadangan begin dan diakhiri dengan kata cadangan end dan titik koma. CONTOH : Program Fungsi_1; Uses Crt; Var X, Y : integer; Function Hitung(Var A,B : integer): integer; Begin Hitung := A + B; End; Begin Clrscr; Write ('Nilai X = '); Readln(X); Write ('Nilai Y = '); Readln(Y); Writeln; Writeln(X,' + ',Y,' = ',Hitung(X,Y)); Readln; End. Function Tanpa Parameter Suatu function yang tanpa parameter berarti nilai balik yang akan dihasilkannya merupakan nilai yang sudah pasti. Parameter digunakna untuk memberikan imput pada fungsi dan fungsi akan memberikan hasil balik sesuai dengan parameter yang diberikannya. Sedangkan pada function yang tidak mempunyai parameter, maka function tersebut tidak dapat diatur dari modul yang menggunakannya, karena tidak ada parameter yang dikirimkan. Dengan demikian function yang tanpa menggunakan parameter jarang dipergunakan. CONTOH : Program Fungsi_2; Uses Crt; Function Garis: String; Begin Garis-Garis := '-------------------------'; End; R. Denny Ari Wibowo, S.Kom hal. 1 Algoritma dan Pemrograman II Begin Clrscr; Writeln(Garis); Writeln('STMIK BINA NUSANTARA JAYA'); Writeln(Garis); Readln; End. Parameter Dalam Function Sama denganprocedure, parameter dalam function dapat dikirimkan secara nilai atau secara acuan. CONTOH (Parameter Secara Nilai) : Program Fungsi_3; Var Nilai1, Nilai2 : Real; Function Garis: String; Begin Garis := '----------------------'; End; Function Terbesar(X,Y : Real) : Real; Begin IF X > Y Then Tertinggi := X Else Tertinggi := Y; End; Begin Clrscr; Writeln(Garis); Writeln('MENCARI NILAI TERBESAR'); Writeln(Garis); Write ('Nilai Pertama = '); Readln(Nilai1); Write ('Nilai Kedua = '); Readln(Nilai2); Writeln(Garis); Writeln ('Nilai Terbesar Adalah = ', Terbesar(Nilai1,Nilai2):0:0); Readln; End. CONTOH (Parameter Secara Acuan) : Program Fungsi_3; Uses Crt; Var X, Y, Z : Byte; Function Hitung(Var A,B,C : Real) : Real; Begin Hitung := A + B; C := A * B; End; Begin Clrscr; Write ('Nilai X = Write ('Nilai Y = Writeln; Writeln (X,' + ', Writeln (X,' * ', Readln; End. R. Denny Ari Wibowo, S.Kom '); Readln(X); '); Readln(Y); Y , ' = ', Hitung(X,Y,Z)); Y , ' = ', Z); hal. 2 Algoritma dan Pemrograman II Function Memanggil Function Yang Lain Suatu function dapat juga memanggil function yang lainnya. Function yang dipanggil letaknya harus berada di atas function yang memanggil. CONTOH Program Fungsi_5; Uses Crt; Function Fungsi_2(Y : Byte) : Byte; Begin Fungsi_2 := Y * 2; End; Function Fungsi_1(X : Byte) : Byte; Begin Fungsi_1 := Fungsi_2(X) + 5; End; Begin Clrscr; Writeln (Fungsi_1(3)); Readln; End. Function Tersarang Function tersarang merupakan function yang letaknya berada di dalam function yang lainnya. CONTOH Program Fungsi_6 Uses Crt; Function Fungsi_1(X : Byte) : Byte; Function Fungsi_2(Y : Byte) : Byte; Begin Fungsi_2 := Y * 2; End; Begin Fungsi_1 := Fungsi_2(X) + 5; End; Begin Clrscr; Writeln (Fungsi_1(3)); Readln; End. PUSTAKA Jogiyanto H. M., Turbo Pascal 5.0, Jilid 1, Andi Offset, Yogyakarta, 1999. R. Denny Ari Wibowo, S.Kom hal. 3 Algoritma dan Pemrograman II PRAKTEK 1. Buatlah program dengan output sebagai berikut, dengan menggunakan function (gunakan parameter nilai) : -----------------------------Program Persegi Panjang -----------------------------Masukkan Panjang = ..... Masukkan Lebar = ..... Luas Persegi Panjang -----------------------------Luas = ..... Keliling Persegi Panjang -----------------------------Keliling = ..... 2. Buatlah program perpangkatan (XY), menggunakan function. Gunakan proses perulangan didalam function, untuk menghasilkan pangkat ! 3. Buatlah program menggunakan function, untuk mencari jumlah n bilangan positif yang pertama ! R. Denny Ari Wibowo, S.Kom hal. 4