280 likes | 413 Views
Function, Procedure, Unit. Function. Function adalah merupakan sebuah penggalan program yang terpisah dan program uama dan berfungsi sebagai sebuah program bagian dan program utama . Dalam penulisan fungsi harus diikuti dengan tipe datanya. Function ( Tanpa Parameter).
E N D
Function Functionadalahmerupakansebuahpenggalanprogram yang terpisahdan program uamadanberfungsisebagaisebuah program bagiandan program utama. Dalampenulisanfungsiharusdiikutidengantipedatanya.
Function (Tanpa Parameter) FUNCTION nama_function: type data; Begin …Nama_function:= hasil; End;
Function (Dengan Parameter) FUNCTION nama_function(variabel : type data) : type data; Begin …Nama_function:= hasil; End;
Function (Tanpa Parameter) Begin ShowMessage(FloatToStr(nilai)); end; Functionnilai:real; begin nilai:=1000; End;
Function (1 Parameter) functiondiskon(total:real):real; begin diskon:=total*0.1; End;
Function (1 Parameter) var diskonnya, total : real; begin total := StrToFloat(edit1.Text); diskonnya := diskon(total); ShowMessage (FloatToStr(diskonnya)); end;
Function (2 Parameter) functionhitung(a,b: integer): integer; begin hitung := a+b; end;
Function (2 Parameter) var x,y,c : integer; begin x:=StrToInt(edit1.text); y:=StrToInt(edit2.text); c:=hitung(x,y); edit3.text:=IntToStr(c); end;
Latihan Function var i,x,y,n: integer; faktorial:real; Begin x:=StrToInt(editA.text); y:=StrToInt(editB.text); n:=x+y; faktorial:=1; for i:=2 to n do faktorial:=faktorial*I; ShowMessage(FloatToStr(faktorial)); end;
functionfaktorial(x,y:integer):real; var i,n:integer; fak :real; begin n:=x+y; fak:=1; for i:=2 to n do begin fak:=fak*i; end; faktorial:=fak; end;
var x,y: integer; f:real; Begin x:=StrToInt(editA.text); y:=StrToInt(editB.text); f:=faktorial(x,y); ShowMessage(FloatToStr(f)); end;
Latihan Function functionBunga(a,b,c:real):real; begin Bunga := a*(b/100)*(c/12); end; functionbulanan(a,b,c:real):real; begin bulanan := (a/c)+(b/c); end;
Latihan Function var a,b,c,d,e,f: real; begin a := strtofloat(edit1.Text); b := strtofloat(edit2.Text); c := strtofloat(edit3.Text); d := bunga(a,b,c); e := bulanan(a,d,c); edit4.Text := FloatToStr(e); edit4.Text := FormatFloat('#,#0.00',e); f := a+d; edit5.text := floattostr(f); edit5.Text := FormatFloat('#,#0.00',f); end;
Procedure • Procedure dengan function tidak jauh berbeda. • Procedure tidak mengembalikan nilai.
Procedure FUNCTIONnama_function(variabel : type data) : type data; Begin …Nama_function:= hasil; End; PROCEDUREnama_procedure(variabel : type data); Begin … End;
Procedure procedurepesan; begin showMessage('Test procedure'); end;
Procedure PROCEDUREkuadrat (nilai : integer); varhasil : integer; Begin hasil := nilai * nilai; ShowMessage (IntToStr(hasil)); End; • var • angka:integer; • begin • angka := StrToInt(edit1.text); • kuadrat(angka); • end;
Unit Padadasarnya UNIT adalahsebuah file yang berisikan PROCEDURE / FUNCTION yang dapatdigunakanoleh program secaraeksternal(add on). Secaradefault Lazarus akanmembuat unit untukmenyimpansemuakode program yang adadiCode Editor (Unit1.pas).
Unit Dibuat agar PROCEDURE / FUNCTION yang dibuatdapatdigunakanpada project yang berbedatanpaharusmengetikkanulang, makaIetakkan PROCEDURE / FUNCTION tersebutkedalamsebuah file unit.
Unit Interface Berisikanheader dari PROCEDURE / FUNCTION yang akandituliskandibawahnya. Bagianinilah yang menghubungkan PROCEDURE / FUNCTION yang adadengan project yang menggunakannya (bersifat global). Implementation Tempatmendefinisikan PROCEDURE / FUNCTION secaralengkap.
function total(jml:integer;harga:real):real; begin total:=jml*harga; end; functiondiskon (ttl : real) : real; Begin IF ttl > 100000 THEN diskon := ttl * 0.1; End; functionjumlah (ttl, dsk : real) : real; Begin jumlah := ttl - dsk; End;
var harga, total_belanja, diskon_belanja: real; jumlah_dibayar : real; jumlah_barang : integer; begin jumlah_barang := StrToInt(edit1.Text); harga := StrToFloat(edit2. Text); total_belanja := total(jumlah_barang,harga); diskon_belanja := diskon(total_belanja); jumlah_dibayar := jumlah(total_belanja,diskon_belanja); edit3.Text := FloatToStr(total_belanja); edit4. Text := FloatToStr(diskon_belanja); edit5.Text := FloatToStr(jumlah_dibayar); End;
Unit Pindahkan Function2 tsbke unit tersendiri. • Buat unit baru, simpandengannama uJual.pas • Pindahkan function2 dibagian interface dan implementation. • Panggil unit di form lain.
Unit unitujual; interface function total(jml:integer;harga:real):real; function diskon (ttl : real) : real; function jumlah (ttl, dsk : real) : real;
implementation function total(jml:integer;harga:real):real; begin total:=jml*harga; end; functiondiskon (ttl : real) : real; Begin IF ttl > 100000 THEN diskon := ttl * 0.1; End; functionjumlah (ttl, dsk : real) : real; Begin jumlah := ttl - dsk; End;