Daftar Menu


video pembelajaran

Senin, 08 Mei 2023

P7_Mengenal procedure dan function pada Delphi

 

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:

Gambar 7.2 Program Kombinasi

 

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.


Video pembelajaran



Tugas:

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?


Kisi-Kisi UTS: 
1. Manipulasi visibilitas komponen
2. Membuat batasan input
3. Menggunakan message dialog dalam program
4. Percabangan dan perulangan

sebagai contoh lihat video-video terbaru di chanel berikut : https://www.youtube.com/@AlatPeraga/videos

Tidak ada komentar:

Posting Komentar

Silahkan Meninggalkan Pesan