Stopwatch, Tipe Data, Konversi Nilai, Format Nilai, Error Detection dan Function / Procedure

Referensi PBO 1 (Delphi)

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;

Share this

Leave a Reply

Your email address will not be published.