220 likes | 498 Views
FUNGSI / FUNCTION. ALGPROG II. FUNGSI. Fungsi hampir sama dengan prosedur, hanya fungsi harus dideklarasikan dengan tipenya. Tipe ditulis pada akhir deklarasi fungsi yang didahului dengan titik dua. FUNCTION identifier(daftar-paramater) : type;. Contoh Penulisan Fungsi.
E N D
FUNGSI / FUNCTION Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II ALGPROG II
FUNGSI • Fungsi hampir sama dengan prosedur, hanya fungsi harus dideklarasikan dengan tipenya. Tipe ditulis pada akhir deklarasi fungsi yang didahului dengan titik dua. FUNCTION identifier(daftar-paramater) : type; Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Contoh Penulisan Fungsi • Function faktorial (Var fak, hasil : integer) : integer; • Function pangkat (X,Y : real) : real; Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Contoh Penggunaan Var X, Y : integer; Function Hitung (Var A, B : integer) : integer; Begin Hitung := A + B; End; Begin write (‘Nilai X ?’); ReadLn (X); write (‘Nilai Y ?’); ReadLn (Y); WriteLn (X, ‘ tambah ‘, Y, ‘ = ‘, Hitung(X,Y)); End. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Perbedaan dengan Prosedur • Nilai yang dikirimkan balik terdapat pada nama fungsinya.. Kalau pada prosedur parameter yang dikirimkan secara acuan. • Karena nilai balik berada di nama fungsi, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya. • Atau bisa juga dipindahkan ke pengenal variabel lainnya. Hasil := Hitung (X,Y); WriteLn (Hasil); Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Fungsi tanpa Parameter Function garis : String; Begin Garis := '.......................'; End; Begin WriteLn (Garis); WriteLn ('Akademi Teknik Kupang'); WriteLn (Garis); End. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Parameter dalam Fungsi • By Value • By reference Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Fungsi by Value • Penulisan judul fungsi yang menggunakan parameter dengan pengiriman secara nilai adalah tampak sbb: FUNCTION Hitung(A,B : integer) : integer; Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Contoh Function Terbesar(X,Y : real) : real; Begin If X>Y Then Terbesar := X Else Terbesar := Y; End; Var Nilai1, Nilai2 : real; Begin write (‘Nilai Pertama ?’); ReadLn (Nilai1); write (‘Nilai Kedua ?’); ReadLn (Nilai2); WriteLn (‘Nilai terbesar adalah’); WriteLn (Terbesar(Nilai1,Nilai2); End. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Fungsi by Reference • Pengiriman by Reference akan mengakibatkan perubahan nilai parameter di fungsi juga merubah nilai parameter di program utama. FUNCTION Hitung(Var A,B :integer) integer; Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Contoh Function Hitung(Var A,B,C :integer) : Integer; Begin Hitung := A + B; C := A * B; End; Var X,Y,Z : Integer; Begin write (‘Nilai X ?’); ReadLn (X); write (‘Nilai Y ?’); ReadLn (Y); WriteLn (‘X ditambah Y =‘); WriteLn (Hitung(X,Y,Z); WriteLn (‘X dikali Y =‘); WriteLn (Z); End. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Latihan I • Buatlah program untuk menghitung pangkat suatu nilai. Hasil Program : Nilai yang dipangkatkan ? 1,5 Dipangkatkan dengan ? 3 1,500 pangkat 3 adalah 3,375 Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Jawaban uses wincrt; Var A:real; B : Integer; Function Pangkatkan(X: real; Y : integer) : real; Var Pangkat : Real; I : integer; Begin Pangkat := 1; For I := 1 to Y do Pangkat := Pangkat * X; Pangkatkan:= Pangkat; End; Begin WriteLn ('Nilai A:'); ReadLn (A); WriteLn ('Nilai B:'); ReadLn (B); WriteLn ('Pangkat'); WriteLn (Pangkatkan(A,B)); End. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Latihan II • Buatlah program untuk menghitung nilai Minimum dari 5 Bilangan. • Buatlah program untuk menghitung nilai Maksimum dari 5 Bilangan. • Buatlah program untuk menghitung rata-rata dari 5 Bilangan Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
JenisFungsi / Function • Fungsi yang memanggil dirinya sendiri • Fungsi memanggil fungsi lain • Fungsi di dalam Fungsi • Fungsi Tersarang • Fungsi Standar Pascal Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Rekursi – Memanggil dirinya sendiri • Fungsi Memanggil Dirinya Sendiri Proses fungsi memanggil dirinya sendiri juga merupakan proses recursion. • Contoh program : Var N : integer ; Function Faktorial (Nilai : integer ) : real ; Begin If Nilai = 0 Then Faktorial : = 1 Else Faktorial : = Nilai * Faktorial (Nilai – 1 ) ; End ; Begin Write (‘Berapa factorial ?’) ; Readln (N) ; Writeln (N, ‘faktorial =’, Faktorial(N) : 9 : 0 ) ; End. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Fungsi Memanggil Fungsi Lain • FungsiMemanggilFungsi Yang Lain Fungsi yang dipanggilletaknyaharusberadadiatasfungsi yang memanggilnya. • Contoh program : Function Fungsi2 (Y : integer) : integer ; Begin Fungsi2 : = Y * 2 ; End ; Function Fungsi1 ( X : integer ) : integer ; Begin Fungsi1 : = Fungsi2 (X) + 5 ; End ; Begin Writeln (Fungsi1(3)) ; End. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Fungsi Tersarang • FungsiTersarang Merupakanfungsi yang letaknyaberadadidalamfungsi yang lainnya. • Contoh program : Function Fungsi1 (X : integer ) : integer ; Function Fungsi2 ( Y : integer ) : integer ; Begin Fungsi2 : = Y * 2 ; End ; Begin Fungsi1 : = Fungsi2 (X) + 5 ; End ; Begin Writeln (Fungsi1 (3)) ; End. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Fungsi Standart Pascal • FungsiPangkat • Pascal tidakmenyediakanfungsiuntukperpangkatantinggi, yang adahanyafungsistandarSqr, yaitupemngkatankuadratsaja. Bilaakanmelakukanperpangkatanlebihdaripangkatdua, makaharusdibuat program tersendiri. • FungsiStandarAritmatika Ada Abs, ArcTan, Cos, Exp, Franc, Int, Ln, Pi, Sin, SqrdanSqrt Penjelasan : • Abs (x) ; Memutlakkansuatunilai yang ditunjukkanoleh argument x. dapatberupatipe real atau integer. • Exp (x : real ) : real ; Untukmenghitungnilaipangkat dari bilangan e. dapatberupa real atauinteger dan hasil dari fungsinyaadalah real. • Ln (x : real ) : real ; Untukmenghitungnilailogaritmaalamdarinilai x. tipedatanya real atau integer danhasilfungsinyaadalah real. • Int (x : real) : real ; Untukmenghasilkannilai integer dari x. hasildarifungsiadalahtipe real dengannilai yang berupapembulatankebawahdarinilai x. • Franc (x : real ) : real ; Untukmendapatkannilaipecahandari argument x. Argumen x dapatberbentuk real atau integer danhasilnyaadalah real. • Sqr (x) ; Untukmenghitungnilaipangkatkuadratdari argument x. • Sqrt (x : real ) : real ; Untukmenghitungnilaiakardari argument x. dapat real dan integer danhasildarifungsinyaadalah real. • Pi Akan menghasilkannilai PI sebesar 3, 14. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Fungsi Standart Pascal • FungsiStandar Transfer Digunakanuntukmerubahsuatunilaikebentuknilai yang lain. Yang tersediaadalahfungsistandarChr, Ord, Round dantrunc. Penjelasan : • Chr (x : byte) : char ; Untukmerubahnilaidari byte x kebentukkarakter yang sesuaidengankode ASCII. • Ord (x) : longint ; Untukmerubahnilai x kebentuknilailongint yang sesuaidengankode ASCII. Fungsiinikebalikandarifungsistandar Chr. • Round (x : real) : longint ; Untukmembulatkannilaidari real x kenilailongint yang terdekat. Bilanilaipecahansamadenganataulebihbesardari 0,5 akandibulatkankeatas, sedangkanbilainilaipecahanlebihkecildari 0,5 akandibulatkankebawah. • Trunc (x : real) : longint ; Untukmembulatkannilaidari real x kenilailongintterkecil, ataudengan kata lain membulatkankebawah. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II
Fungsi Standart Pascal • FungsiStandarLainnya Terdiridari : Hi, Lo, Random, SizeOf, Swap, UpCase, ParamCountdanParamStr. Penjelasan : • Hi (x) : byte ; Untukmengisi low order byte darihasilfungsidengan high order byte dariungkapan integer x. high order byte darihasilfungsiakanbernilai nol. Tipehasildarifungsiiniadalah byte. • Lo (x) : byte ; Untukmengisi low order byte darihasilfungsidengan low order byte dariungkapan integer x. high order byte darihasilfungsiakanbernilai nol. Tipehasildarifungsiiniadalah byte. • Swap (x) ; Untukmembalik bit-bit di low order byte menjadi high order byte dansebaliknyadariungkapan x. ungkapan x dapatberupatipe integer atau word. • Random [ (range : word ) ] ; Untukmenghasilkanangka random berkisardarinilailebihbesaratausamadengannoldanlebihkecildarisatu. Bila range tidakdisebutkan, hasildarifungsiiniadalah real. Bila range disebutkan, hasilnyaadalah word. • SizeOf (x) : word ; Untukmenunjukkanbesarnya byte yang digunakanolehsuatu variable x. hasilnyaadalah word. • UpCase (Ch : char ) : char ; Untukmerubah argument suatukarakter yang ditunjukkanolehChmenjadibentukkarakterhurufbesar ( upper case ). • ParamCount: word ; Untukmengetahuijumlah parameter yang dikirimkanlewatpromt DOS • ParamStr (index) : string ; Untukmenerima parameter yang dikirmkanlewatpromt DOS, index adalahungkapandengantipe word, danakanmenghasilkan parameter ke index yang dikirmkantersebut. Gerlan A. Manu, ST.,MKom - Algoritma & Pemrograman II