1.
Dasar Teori
a.
Event
Procedure
Event procedure
adalah procedure dari setiap event komponen. Event procedure akan dijalankan
pada waktu terjadi event pada komponen. Sebagai contoh terjadi event click pada
Button1 maka event procedure Button1Click akan dijalankan.
procedure
TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
end;
Bentuk sebuah
event procedure adalah sebagai berikut :
Procedure
T<NamaForm>.<Nama_Objek><NamaEvevt(parameter);
begin
<pernyataan>
---
<pernyataan>
end;
Untuk membuat
sebuah event procedure adalah pertama pilih komponen, lalu pada object
inspector pilih tab event, kemudian klik event yang diinginkan, lalu klik ganda
pada kolom sebelah kanan seperti yang ditunjukkan pada gambar 7.1 dibawah ini.
Gambar 7.1 Komponen Object Inspector
b.
User
Procedure
User procedure
adalah procedure yang dibuat (didefinisikan) sendiri oleh pembuat program.
Pernyataan-pernyataan didalam user procedure sama halnya dengan event
procedure. Perbedaannya adalah user
procedure akan dijalankan bila dipanggil dengan namanya, sedangkan event
procedure akan dijalankan bila terjadi suatu event terhadap komponen. Biasanya user
procedure dipanggil dari event procedure, tetapi dapat juga dipanggil dari user
procedure yang lain.
Event procedure
biasanya selalu ada dalam program aplikasi, sedangkan user procedure belum
tentu ada karena sifatnya optional. Alasan utama memakai user procedure adalah
untuk kode program yang diperlukan secara berulang-ulang. Agar kode program
tersebut tidak dituliskan secara berulang-ulang maka digunakan user procedure.
Tetapi untuk kode program yang tidak diperlukan secara berulang-ulang dapat
juga memakai user procedure dengan tujuan agar program lebih terstruktur dan
mudah dibaca.
Sintaks dari
sebuah user procedure adalah sebagai berikut:
Procedure
<NamaProcedure> (parameter);
<DeklarasiLokal>
Begin
<pernyataan>
---
<pernyataan>
End;
Untuk mengakses
atau memanggil sebuah user procedure adalah sebagai berikut:
<NamaProcedure>
(parameter);
Apabila
parameternya tidak ada, untuk memanggilnya adalah sebagai berikut:
<NamaProcedure>;
Berikut ini
adalah sebuah contoh untuk menghitung kombinasi dimana rumus untuk menghitung
kombinasi adalah:
dimana:
N
= Banyaknya data
R
= Banyaknya kombinasi
C
= Jumlah kombinasi yang terjadi
Dari rumus
diatas dapat dilihat bahwa untuk menghitung kombinasi diperlukan tiga kali
untuk menghitung faktorial oleh karena itu supaya program faktorial tidak
ditulis sebanyak tiga kali maka digunakan user procedure untuk menghitung
faktorial, seperti yang ditunjukkan dibawah ini.
procedure
Faktor1(N : Integer; Var Fak : Real);
var i : Integer;
begin
Fak
:= 1;
For
i:= 2 To N Do Fak := Fak*i;
end;
Pada skrip di
atas bahwa user procedure diberi nama Faktor1, dan ada dua parameter yang
diberi nama N dan Fak, dimana N adalah parameter input dan Fak adalah parameter
output. Parameter output harus memakai klausa var. Pemakaian jumlah parameter sesuai
dengan banyaknya input dan output. Dalam menghitung faktorial ada satu data
input yaitu berapa faktoria dan satu output yaitu hasil faktorial sehingga
digu-nakan sebanyak dua parameter dengan tipe sesuai dengan data input dan
hasil faktorial. Untuk memberikan nama
procedure dan parameter diberikan kebebasan
kepada pembuat program, tetapi hanya boleh menggunakan huruf, angka, dan garis
bawah.
Selanjutnya user
procedure tersebut digunakan dari procedure yang lain dalam hal ini dari event
procedure Button1Click. Untuk menggunakannya, dipanggil dengan menyebutkan
namanya dan parameternya, seperti dibawah ini:
procedure
TForm1.Button1Click(Sender: TObject);
var N,R :
Integer; C,X,Y,Z : Real;
begin
N
:= StrToInt(edit1.Text);
R
:= StrToInt(edit2.Text); Faktor1(N,X);
Faktor1(N-R,Y);
Faktor1(R,Z);
C
:= X/(Y*Z);
edit3.Text
:= FloatToStr(C);
end;
Dalam
pemanggilan ini alurnya adalah variabel N akan mengirim nilainya ke parameter
pertama (input) procedure Faktor1, dan hasilnya diterima oleh variabel X dari parameter
kedua (output) procedure Faktor1.
Contoh lain dari
user procedure adalah sebagai berikut:
type
TForm1
= class(TForm)
---
Procedure
edDataHapus;
---
private
{
Private declarations }
---
implementation
{$R
*.dfm}
Procedure
TForm1.edDataHapus;
Begin
Edit1.Text
:= '';
Edit2.Text
:= '';
End;
---
End.
Pada contoh di atas user procedure diberi nama
edDataHapus, dan sebelum nama tersebut didahului dengan nama formnya karena
kode programnya berkaitan dengan komponen. Procedure tersebut harus dideklarasikan
pada klausa type, lihat contoh diatas.
c.
Function
Pada dasarnya
funtion hampir sama dengan user procedure, perbedaannya adalah user procedure
dapat mengembalikan lebih dari satu nilai output, sedangkan function hanya
mengembalikan satu nilai output. Sintaks dari sebuah function adalah sebagai
berikut:
Function
<NamaFunction> (parameter) : <TipeData>;
<DeklarasiLokal>
Begin
<pernyataan>
---
<pernyataan>
End;
Parameter dari
suatu function adalah hanya parameter input. Parameter ini dapat lebih dari satu,
dapat juga tanpa parameter sama sekali. <TipeData> adalah untuk
menyatakan tipe data dari nama function.
Hal ini dinyatakan karena nama dari function berfungsi sebagai output.
Oleh karena itulah function hanya mengembalikan satu nilai output. Untuk mengakses
atau memanggil sebuah function sintaksnya sebagai berikut:
<NamaVariabelPenerima>
:= <NamaFunction> (parameter);
Dapat dilihat
dalam sintaks pemanggilan bahwa nama variabel penerima tidak dituliskan didalam
kurung sebagai parameter seperti dalam user procedure. Hal inilah yang
menunjukkan perbedaan lain antara function dengan user procedure.
Fuction
Faktor2(N : Integer): Real;
var i : Integer;
Fak : Real;
begin
Fak
:= 1;
For
i:= 2 To N Do Fak := Fak*i;
Faktor2
:=Fak;
end;
Pada skrip
diatas menunjukkan contoh dari sebuah function untuk menghitung faktorial dalam
rumus kombinasi. Function diberi nama Faktor2 dengan tipe data Real. Parameter
(input) yang hanya satu diberi nama N dengan tipe data Integer. Tipe data
parameter dan nama function disesuaikan dengan data input dan output. Nama
function dan parameter diberi kebebasan kepada
pembuat program, tetapi ketentuannya sama dengan memberikan nama variabel. Satu
pernyataan yang harus dibuat pada bagian akhir dari suatu function yaitu
mempertukarkan hasil perhitungan dari suatu function dengan nama function.
Dalam hal ini adalah Faktor2 := Fak.
Untuk memanggil
function tersebut dari event procedure Button2Click adalah:
procedure
TForm1.Button2Click(Sender: TObject);
var N,R :
Integer; C,X,Y,Z : Real;
begin
N:=StrToInt(edit1.Text);
R
:= StrToInt(edit2.Text);
Faktor2(N,X);
Faktor2(N-R,Y);
Faktor2(R,Z);
C
:= X/(Y*Z);
edit3.Text
:= FloatToStr(C);
end;
Dapat dilihat
dari pemanggilan tersebut bahwa nama variabel penerima yang ditulis terlebih
dahulu dalam hal ini X, lalu operator pemberian, kemudian nama function dan
parameternya didalam kurung. Alur pemanggilan ini adalah variabel N akan
mengirimkan nilainya ke parameter function, lalu hasil perhitungan function
diterima variabel penerima X dari nama function.
Pemanggilan
seperti diatas dapat disederhanakan sebagai berikut:
C := Faktor2(N)/(Faktor2(N-R)*Faktor2(R));
sehingga
variabel penerima X, Y, Z bisa tidak digunakan, dan menghemat memori. Maka
dalam contoh menghitung kombinasi walaupun kita dapat menggunakan user
procedure atau funtion, lebih efisien menggunakan function.
Jadi untuk
membuat suatu subrutin kita dapat menggunakan function atau user procedure
namun sebaiknya kita dapat melihat mana yang lebih efisien. Tetapi ada kalanya
kita tidak dapat menggunakan function misalnya kalau output yang dibutuhkan
lebih dari satu.
2.
Praktikum
Buatlah desain
form sebagai
seperti pada gambar 7.2 berikut:
Untuk
mengimplementasikan desain di atas, ketiklah script di eventnya:
procedure
Faktor1(N : Integer; Var Fak : Real);
var i : Integer;
begin
Fak
:= 1;
For
i:= 2 To N Do Fak := Fak*i;
end;
procedure
TForm1.Button1Click(Sender: TObject);
var N,R :
Integer;
C,X,Y,Z : Real;
begin
N
:= StrToInt(edit1.Text);
R
:= StrToInt(edit2.Text); Faktor1(N,X);
Faktor1(N-R,Y);
Faktor1(R,Z);
C
:= X/(Y*Z);
edit3.Text
:= FloatToStr(C);
end;
procedure
TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
end;
procedure
TForm1.Button3Click(Sender: TObject);
begin
close;
end;
B. Rangkuman
Event procedure adalah procedure dari setiap event komponen. Event procedure akan dijalankan pada waktu terjadi event pada komponen. Sedangkan User procedure adalah procedure yang dibuat (didefinisikan) sendiri oleh pembuat program. Pernyataan-pernyataan didalam user procedure sama halnya dengan event procedure. Perbedaannya adalah user procedure akan dijalankan bila dipanggil dengan namanya, sedangkan event procedure akan dijalankan bila terjadi suatu event terhadap komponen. Sedangkan function pada dasarnya funtion hampir sama dengan user procedure, perbedaannya adalah user procedure dapat mengembalikan lebih dari satu nilai output, sedangkan function hanya mengembalikan satu nilai output.
1. Pada materi SMA diperkenalkan adanya permutasi, kombinasi, permutasi siklik dll. apabila anda ingin membuat program untuk menghitung permasalahan tentang hal tersebut, bagaimana visual program tersebut dan program delphinya?
Tidak ada komentar:
Posting Komentar
Silahkan Meninggalkan Pesan