Kamis, 14 April 2011

Function dan Peocedure di Delphi

Function (fungsi) dan prpcedure adalah suatu rutin yang biasanya dipakai sebagai alat untuk melakukan tugas tertentu dan/atau mendapatkan nilai tertentu. Kita sering menggunakan procedure yang berhubungan dengan event, seperti procedure untuk mengontrol program ketika tombol di tekan. Function dan procedure dapat dibuat sendiri oleh pemogram dan delphi juga menyediakan function dan procedure yang ditinggal pakai (built-in).
Pada dasarnya function dan procedure itu adalah sama, bedanya adalah function mempunyai nilai kembalian (return value) sedangkan procedure tidak mempunyai nilai kembalian (return value). Pada penulisannya procedure akan ditulis sebagai satu pernyataan yang berdiri sendiri, sedangkan function biasanya ditulis di sebelah kanan pernyataan lain atau ditulis sebagai suatu nilai yang dimasukkan kedalam variabel .

Dibawah ini adalah contoh Function dan procedure yang dibuat sendiri oleh pemogram :
1. Program untuk mencari nilai faktorial dari suatu bilangan dengan menggunakan function dan procedure

function Faktorial (number : Integer):Integer;
begin
if number = 0 then
number:=0
else if number = 1 then
Faktorial :=1
else Faktorial := number * Faktorial(number-1);
end;

procedure TForm1.Button1Click(Sender: TObject);
var n : Integer;
begin
n := StrToInt(edit1.Text);
edit2.Text := IntToStr(Faktorial(n));
end;


2. Program Konversi bilangan desimal ke biner dengan menggunakan Function dan Procedure 

function decToBin(desimal : integer) : string;
var hasilBagi, sisa : integer;
bin : char;
bilBiner : string;
begin
hasilBagi := desimal div 2;
bilBiner := '';

{ syarat perulangan : selama hasil bagi lebih besar sama dengan 1 }
while (hasilBagi >= 1) do
begin
sisa := desimal mod 2;
if (sisa = 0) then bin := '0'
else if (sisa = 1) then bin := '1';

{ menggabung sisa pada setiap perulangan untuk membentuk digit biner}
bilBiner := bin + bilBiner;
desimal := hasilBagi;
hasilBagi := desimal div 2;
end;
decToBin := '1' + bilBiner;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:=decToBin(strtoint(edit1.text));
end;

3. Program Konversi bilangan biner ke desimal dengan menggunakan Function dan Procedure 

{ function untuk menghitung a pangkat b}

function pangkat(a, b : integer) : integer;
var i, hasil : integer;
begin
hasil := 1;
for i:=1 to b do
begin
hasil := hasil * a;
end;
pangkat := hasil;
end;

{ function untuk menghitung konversi biner ke desimal }

function bin2Dec(biner : string) : integer;
var n, sum, i : integer;
begin
n := length(biner);
sum := 0;
for i:= n-1 downto 0 do
begin
if (biner[n-i] = '0') then sum := sum + 0 * pangkat(2, i)
else if (biner[n-i] = '1') then sum := sum + 1 * pangkat(2, i);
end;
bin2Dec := sum;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:=inttostr(bin2Dec(edit1.text));
end;
Sedangkan dibawah ini beberapa contoh function dan prosedure yang siap pakai (built-in) :
1. Str
Str berupa procedure, jadi tidak mempunyai kembalian. Procedure Str dipakai untuk mendapatkan nilai string dari suatu data numerik. Penulisannya sebagai berikut :

Str(X [: Width [: Decimal ]], var S);

X adalah data numerik bertipe integer atau real, tanda dalam kurung siku bersifat optional (pilihan), artinya boleh dipakai dan boleh juga tidak dipakai. Width menunjukkan tempat hasil yang disediakan dan Decimal menunjukkan lebar tempat desimalnya (angka dibelakang koma). S adalah variabel bertipe string untuk menyimpan hasil function dari Str. Jadi hasil fungsi disimpan dalam salah satu argumennya, bukan dalam nilai fungsinya.
Perhatikan contoh program dibawah ini :

Procedure Tform1.FormCreate(Sender: Tobject);
Var 
I : Single;
S : String;
Begin
I :=1500;
Str(I:8:2,S); //S berisi ‘ 1500.00’
Form1.Capton:=S; 
End;
2. StrToFloat
Function StrToFloat dipakai untuk mendapatkan nilai bertipe extended (salah satu tipe real) dari suatu data string. Bentuk penulisannya berikut ini :

StrToFloat(S: string);

S adalah data tipe string yang akan diambil nilai Extended-nya.

3. StrToInt
Function StrToInt dipakai untuk mendapatkan nilai integer suatu data string. Penulisannya seperti berikut ini :

StrToInt(S: string);

S adalah data tipe string yang akan diambil nilai integer-nya.

4. Pos
Pos berupa function yang dipakai untuk mencari string didalam string lain
Penulisannya sebagai berikut :

Pos(, );

Sebagai contohnya adalah potongan program berikut ini 

procedure TForm1.Button1Click(Sender: TObject);
var x1,x2,x3 : integer;
begin
x1:=Pos('def','abcdef');
x1:=Pos('da','abcdef');
x1:=Pos('bc','abcdef');

edit1.Text:=inttostr(x1); // hasilnya adalah 4
edit2.Text:=inttostr(x2); // hasilnya adalah 0
edit3.Text:=inttostr(x3); // hasilnya adalah 2
end;

Referensi :
1. Buku delphi “Belajar sendiri mengolah databases dengan borland delphi 7”
2. http://blog.rosihanari.net

Tidak ada komentar:

Posting Komentar