Membuat stopwatch
Procedure tform1.formcreate(sender:tobejct);
Begin
Timer1.interval:=1;
End;
Procedure tform1.button1click(sender:tobejct);
Begin
If button1.caption=’Start’ then
Begin
Awal:=time; // awal : tdatetime; pada variabel global
Edit1.text:=TimeToStr(Time)
Button1.caption:=’Stop’;
End
Else If button1.caption=’Stop’ then
Button1.caption:=’Selesai’;
Else
Application.termenate;
End;
Procedure tform1.timer1timer(sender:tobejct);
Var slama:string;
Begin
If button1.caption=’Stop’ then
Begin
Akhir:=time; // akhir : tdatetime; pada variabel global
Edit2.text:=TimeToStr(akhir);
Lama:=(akhir-awal)*100000; // lama : real; pada variabel global
Str(lama:12:2,slama);
Edit3.text:=slama;
End;
End;
Komponen Delphi
1.Project
Sekumpulan form, unit, dan beberapa hal lain dalam program aplikasi (program aplikasi itu sendiri).
2.Form
Suatu object yang dipakai sebagai tempat bekerja program aplikasi.
3.Unit
Modul kode program. Unit dapat berisi kumpulan function atau procedure yang dipakai project.
4.Program
Program dibangun dari satu unit atau lebih. Program akan mengatur form dan unit serta menjalankannya. Pendeknya, kalau unit form dipakai untuk mengelola form, maka program dipakai untuk mengelola project.
4.Properties
Mendefinisikan atribut atau setting suatu object, misalnya menentukan warna object, ukuran object dan lain-lain.
5.Event
Peristiwa atau kejadian yang diterima oleh suatu object, misalnya klik, drag dan lain-lain.
6.Metode
Procedure atau perintah yang melekat pada suatu object, misalnya object dataset mempunyai metode untuk menggerakkan petunjuk record.
7.Pilihan editor kode program
Menu tools -> editor options
-Code completion
Untuk membantu menyelesaikan pengetikan kode program.
Atau mengetik suatu pernyataan, diikuti tombol Ctrl+Spasi untuk menampilkan pilihan-pilihan.
-Code parameters
Untuk menampilkan parameter pada metode yang diketik.
-Tooltip Expression Evalution
Untuk proses debugging
-Tooltip Symbol Insight
Menampilkan informasi deklerasi pada semua identifier yang ditunjuk mouse.
Tipe Data
1.Tipe Integer
Tipe Rentang nilai Byte
Byte 0..255 1
Word 0..65535 2
Longword 0..4294967295 4
ShortInt -128..127 1
SmallInt -32768..32767 2
LongInt -2147483648..2147483647 4
Integer -2147483648..2147483647 4
Cardinal 0.. 4294967295 4
Int64 -263..263-1 8
“Sebaiknya gunakan Int64 untuk unjuk kerja yang lebih baik“
2.Tipe Real
Tipe Rentang nilai Byte
Real48 2.9×10-39..1.7×1038 6
Single 1.5×10-45..3.4×1038 4
Double 5.0×10-324..1.7×10308 8
Extended 3.6×10-4951..1.1×104932 10
Comp -263+1..263-1 8
Currency -922337203685477.5808..
922337203685477.5807 8
“Tipe Double ekuivalen dengan tipe Real yang umum dipakai dan Tipe Currency termasuk fixed-point (tidak ditulis ax10b yang mempunyai sifat meminimalkan kesalahan penghitungan pembulatan untuk nilai mata uang“
3.Tipe Boolean
Tipe Byte
Boolean 1
ByteBool 1
WordBool 2
LongBool 4
“Sebaiknya gunakan tipe Boolean. Tipe yang lain hanya digunakan untuk menjaga kompatibilitas, yaitu jika program akan dihubungkan dengan program dalam bahasa lain atau dengan bagian windows yang menggunakan tipe yang sama“
4.Tipe Character
Tipe Isi Byte
Char 1 karakter ANSI (8 bit) 1
AnsiChar 1 karakter ANSI (8 bit) 1
WideChar 1 karakter Unicode (16 bit) 2
5.Tipe String
Tipe Isi Maksimal Byte
ShortString 256 karakter 2 s.d. 256
AnsiString 231 karakter 4 s.d. 2GB
WideString 230 karakter 4 s.d. 2GB
“Gunakan tipe String yang umum dipakai. Pada saat kompilasi, tipe string akan otomatis dianggap sebagai AnsiString jika direktif adalah {$H+} atau dianggap ShortString jika direktif adalah {$H-}.
Jika tidak menggunakan direktif maka dianggap default {$H+}“
6.Tipe Array
Variabel tunggal yang dapat dipakai menyimpan sekumpulan data sejenis.
Contoh:
Var Bulan:array[1..12] of AnsiString;
Begin
Bulan[1]:=’Januari’;
Bulan[2]:=’Pebruari’;
Edit1.text:=Bulan[1];
Edit2.text:=Bulan[2];
7.Tipe Record
Untuk menyimpan sekumpulan data yang mungkin berbeda tipe, tetapi saling berhubungan.
Contoh:
Type RecBrg=Record
Kode : AnsiString[6];
Nama : AnsiString[30];
Hsatuan : Currency;
End;
Var Barang:RecBrg;
Begin
Barang.kode:=’PS.001’;
Barang.nama:=’Pensil 2B’;
Barang.hsatuan:=2500;
End.
8.Tipe Terenumerasi dan Subrange
Untuk menyatakan data berurutan yang tipe sama.
Contoh enumerasi:
Type warna=(merah, biru, hijau, kuning);
Var warnacat:warna;
Contoh subrange:
Type
warnaku=biru..orange;
hurufbesar=’A’..’Z’;
Nilai=0..100;
Var
Warnacat:warnaku;
Nilaiujian:nilai;
Nilaiakhir:hurufbesar;
9.Tipe ordinal
Tipe ordinal terdiri atas tipe integer, character, boolean, enumerated dan subrange tipe. Tipe ordinal mempunyai sifat terurut.
Function Hasil Keterangan
Ord(n) n misal n=3, hasil=3
Pred(n) n-1 misal n=3, hasil=2
Succ(n) n+1 misal n=3, hasil=4
High(n) nilai tertinggi tipe data n misal n adalah integer, hasil = 2147483647
Low(n) nilai terendah tipe data n misal n adalah integer, hasil = -2147483648
10.Konstanta
Suatu nilai yang bersifat tetap.
Contoh:
Const DisAng=0.1;
11.Variabel
Suatu tempat yang dialokasikan dalam memori yang diberi nama (sebagai pengenal) untuk menampung suatu data.
12.Operator
Untuk memanipulasi dan mengolah data.
Operator hierarki
@, not first tertinggi
*,/,div,mod,and,shl,shr,as kedua
+,-,or,xor ketiga
=,<>,<,>,<=,>=,in,is keempat
12.1.Operator Penugasan (Assignment)
Simbol dengan :=
12.2.Operator Aritmatika
*,/,div,mod,+,-
Pangkat:
A:=2; b:=3;
a:=exp(b*ln(a)); // 23 = 8
12.3.Operator Relasi
=,<>,<,>,<=,>=
12.4.Operator Logika
Not, And, Or, Xor
Kontrol Program
1.Pengulangan
– While data[i] <> x do i:=i+1; // pengulangan satu pernyataan
– While not eof (inputfile) do // pengulangan satu blok pernyataan
Begin
Readln(inputfile,line);
Proses(line);
End;
– Repeat
k:=i mod j;
i:=j;
j:=k;
Until j=0;
– For x:=listbox1.items.count-1 downto 0 do
Listbox1.items[x]:=uppercase(listbox1.items[x]);
– For c:=red to blue do check(c);
2.Percabagan bersyarat
– if j=0 then
Exit
Else
Hasil:=i/j;
– case warnaku of
merah :x:=1;
hijau :x:=2;
biru :x:=3;
kuning, orange, hitam : x:=0;
end;
3.Percabagan tidak bersyarat
– begin
Label awal;
A:=A+2;
If (a<100) then goto awal;
End;
4.Pernyataan
– break; // keluar dari pengulangan
– exit; // keluar dari suatu blok program (procedure atau function)
5.Percabangan
– try
x:=y/z;
except
on EzeroDivide do HandleZeroDivide;
on Eoverflow do HandleOverflow;
on EmathError do HandleMathError;
else
HandleAllOthers;
end;
“Jika terdapat kesalahan pada pernyataan di bawah try, maka program langsung melompat ke pernyataan except dan melaksanakan pernyataan di bawahnya”
“Struktur ini akan bekerja hanya jika pilihan Stop on Delphi Exceptions yang terdapat pada tab Language Exceptions dalam menu tools, debugger options tidak diberi tanda pilih”
– try
…//proses file F
Finally
Closefile(F);
end;
“Pernyataan Finally selalu dilaksanakan”
6.Function dan Procedure
Procedure akan ditulis sebagai satu pernyataan yang berdiri sendiri, sedangkan function ditulis di sebelah kanan pernyataan lain atau ditulis sebagai suatu nilai yang dimasukkan ke dalam variabel.
1.Str // procedure untuk mendapatkan nilai string
Contoh:
Begin
I:=1500;
Str(I:8:2, S);
From1.caption:=S;
End;
2.StrToCurr // function untuk mendapatkan nilai currency
Contoh:
Var I:currency;
S:string;
Begin
S:=’1500’;
I:=StrToCurr(S);
End;
3.StrToDate // function untuk mendapatkan nilai Tdatetime
Contoh:
Var
Adate : tdatetime;
Days : Array [1..7] of string;
Begin
Days[1]:=’sunday’;
Days[2]:=’monday’;
Adate := StrToDate(edit1.text);
ShowMessage(edit1.text+’ is a ‘+days[DayOfWeek(Adate)];
End;
4.StrToFloat // function untuk mendapatkan nilai extended
5.StrToInt // function untuk mendapatkan nilai integer
6.Uppercase // function untuk mendapatkan huruf besar
7.Lowercase // function untuk mendapatkan huruf kecil
8.Val // procedure untuk mendapatkan nilai numerik dari string
Contoh:
Var I, Code : integer;
Begin
Val(edit1.text, i ,code);
If code<>0 then
ShowMessage(‘error pada posisi:’+IntToStr(code))
Else
ShowMessage(‘nilai:’+IntToStr(i));
End;
9.DateToStr // function untuk mendapatkan nilai string dari data bertipe Tdatetime
Contoh:
Procedure tform1.button1click(sender:tobject);
Begin
Label1.caption:=’today is:’+DateToStr(date());
End;
10.Format // function untuk mendapatkan nilai string dari data array
Code Keterangan
d argumen atau data yang diformat harus bertipe integer
u sama dengan d, tetapi tidak menghasilkan tanda positif atau negatif
e argumen harus bertipe floating-point
f sama dengan e, tetapi tidak menggunakan angka eksponen
g menggunakan format yang paling mungkin antara e dan f
n argumen harus bertipe floating-point, tidak menggunakan angka eksponen, menggunakan pemisah ribuan dan desimal
m argumen harus bertipe floating-point, menggunakan format currency
p argumen harus bertipe pointer, hasilnya berupa 8 karakter string yang menunjukkan nilai pointer dalam heksa desimal
s argumen harus bertipe string atau Pchar
x argumen harus bertipe integer, hasilnya berupa string dalam bentuk heksa desimal
Contoh:
Format(‘%8.2f’,[123.456]);
Edkurs.text:=Format(‘%25.2n’,[kurs]);
Edhbeli.text:=Format(‘%12.2m’,[nhbeli]);
11.Pos // function untuk mencari string didalam string lain
Contoh:
X:=Pos(‘ab’,’abcdef’); // x berisi 1
X:=Pos(‘cde’,’abcdef’); // x berisi 3
X:=Pos(‘ba’,’abcdef’); // x berisi 0
12.Copy // function untuk mengambil sebagian string dari string lain
Contoh:
A:=’bandung kota kembang’;
B:=copy(A,2,10); // B berisi andung kot
7. Interaksi dengan delphi lewat VCL (Visual Compenent Library)
1. Menghapus tanda koma
Contoh:
Procedure tform1.edkurschange(sender:tobject);
Var
Kurs, jumlah, rupiah : currency;
Skurs, sjumlah : string[30];
Begin
Skurs:=edkurs.text;
//buang tanda koma
While pos(‘.’, skurs)>0 do
Delete(skurs, pos(‘.’, skurs),1);
Sjumlah:=edjumlah;
//buang tanda koma
While pos(‘.’, sjumlah)>0 do
Delete(sjumlah, pos(‘.’, sjumlah),1);
If length(sjumlah)>0 then
Jumlah:=StrToCurr(sjumlah)
Else
Jumlah:=0;
Kurs:StrToCurr(skurs);
Rupiah:=kurs*jumlah;
Edrupiah.text:=format(‘%m’, [rupiah]);
End;