4.1 Array
Array merupakan
sebuah variabel yang dapat menampung lebih dari satu data. Array ini dapat
diibaratkan seperti lemari yang mempunyai sekat-sekat dimana setiap sekat dalam
istilah array disebut dengan elemen, dapat menampung satu data. Setiap elemen
dalam array diberi identitas dengan istilah index dimana elemen pertama diberi
index 0, elemen kedua diberi index 1, dst. Data yang ditampung pada setiap
elemen harus mempunyai tipe data yang sejenis.
Bila anda ingin
mengolah data berupa data nilai misalnya 60, 50, 90, 70, dan 80 dimana anda
ingin memperoleh hasil yaitu jumlah nilai, rata-rata nilai, standard deviasi
maka pengolahan data tersebut lebih tepat menggunakan array supaya kode
programnya lebih sederhana. Tetapi ada kalanya untuk data tertentu misalnya
matrik harus diselesaikan dengan array.
Seperti layaknya
variabel, array juga harus dideklarasikan sebelum digunakan. Sintaks untuk
mendeklarasikan array statis adalah :
var <NamaArray> : array [BatasAwal..BatasAkhir] of <TipeData>;
Contoh :
var
DataNilai : array[1..100] of Integer; {array dimensi satu}
Matrik_A : array[1..5, 1..10] of Integer; {array
dimensi dua}
Gaya_B : array[1..5, 1..10, 1..15] of Real; {array
dimensi tiga}
Pada array
DataNilai maksud dari [1..100] adalah
untuk menentukan elemen-elemennya yang dimulai dari index 0 s/d 99, dan dituliskan
sbb. :
DataNilai[0];
DataNilai[1];
---
---
DataNilai[99];
sehingga
kapasitasnya untuk menampung data maksimum 100 data.
Sedangkan array
Matrik_A maksud dari [1..5, 1..10]
adalah untuk menentukan elemen-elemennya dimulai dari index 0 s/d 4 pada dimensi
pertama dan pada dimensi kedua dimulai dari index 0 s/d 9, dan dituliskan sbb.
:
Matrik_A[0,0]; Matrik_A[0,1] ; -- -- Matrik_A[0,9];
Matrik_A[1,0]; Matrik_A[1,1] ; -- -- Matrik_A[1,9];
-- -- -- -- --
-- -- -- -- --
Matrik_A[4,0]; Matrik_A[4,1] ; -- -- Matrik_A[4,9];
sehingga
kapasitasnya untuk menampung data maksimum 50 data.
Untuk
mendeklarasikan array dinamis adalah :
var <NamaArray> : array of <TipeData>;
Contoh :
var
pjual : array of Integer;
N : Integer;
begin
N := 5;
SetLength(pjual, N);
---
end;
Pada contoh
diatas procedure SetLength(pjual, N) adalah untuk menentukan elemen-elemen
array. Bila variabel N diisi dengan 5 maka indexnya dimulai dari 0 s/d 4
sehingga kapasitasnya maksimum 5 data. Tetapi bila variabel N diisi dengan 50
maka indexnya dimulai dari 0 s/d 49 dan kapasitas maksimumnya 50 data. Jadi
kapasitas array ini sangat tergantung kepada variabel N.
Contoh program
array :
procedure
TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := '';
Edit2.Text := '';
Edit3.Text := '';
end;
procedure
TForm1.Button2Click(Sender: TObject);
var
nilai : Array of Integer; i, N : Integer;
jumlah, rata2, std, sigma : Real;
begin
N := StrToInt(InputBox('Input','Banyaknya
Data',''));
SetLength(nilai,N);
For i:=1 To N Do
nilai[i-1] := StrToInt(InputBox('Input
Data','ke ' + IntToStr(i),''));
jumlah := 0;
For i:=1 To N Do jumlah
:= jumlah + nilai[i-1];
rata2 := jumlah/N;
sigma := 0;
For i:=1 To N Do
sigma := sigma + sqr(nilai[i-1]-rata2);
std := sqrt(sigma/N);
Edit1.Text := FloatToStr(jumlah);
Edit2.Text := FloatToStr(rata2);
Edit3.Text := FloatToStr(std);
end;
procedure
TForm1.Button3Click(Sender: TObject);
begin
Application.Terminate;
end;
4.2 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. Untuk
lebih jelasnya perhatikan gambar 4.1 dibawah ini.
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 4.2 dibawah ini.
4.3 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 pada gambar 4.3 dibawah ini.
Pada diatas dapat dilihat 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 faktorial 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 Button2Click. Untuk menggunakannya, dipanggil dengan menyebutkan namanya
dan parameternya, seperti dibawah ini :
Faktor1(N,X);
Faktor1(N-R,Y);
Faktor1(R,Z);
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
diatas 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.
4.4 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
menun-jukkan perbedaan lain antara function dengan user procedure.
Pada 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 :
X := Fakor2(N);
Y := Fakor2(N-R);
Z := Fakor2(R);
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.
Create : Abednego,S.T
Tidak ada komentar:
Posting Komentar