Debugging dan Exception
2.4. Debugging dan Exception
Ketika kita menjalankan program dari Delphi IDE (misalnya dengan menekan tombol F9), berarti kita menjalankan program tersebut dalam metode Delphi debugger. Ketika terjadi error, maka program akan berhenti dan menunjuk ke baris di mana terjadi error. Hal ini merupakan hal yang normal sesuai dengan kebutuhan kita akan fasilitas debugger.
Tetapi ketika kita jalankan contoh program untuk menjalankan exception di atas, kita mungkin akan sedikit bingung dengan berhentinya program pada baris di mana terjadi exception.
Bila kita ingin tahu apakah exception tersebut sudah tertangani dengan benar, kita dapat menjalankan file
exe‐ nya melalui Window Explorer. Atau kita dapat mematikan secara sementara Stop on Delphi
Exception yang dapat kita tampilkan dari menu Tools – Debugger Option pada page Language Exception, seperti tampak pada gambar berikut ini.
Gambar 3‐ 2. Debugger Options
2.5. Class Reference
Variabel bertipe class reference adalah variabel yang mengacu kepada definisi dari kelas tersebut. Variabel jenis ini dapat digunakan bila kita ingin memanggil class method atau constructor dari suatu kelas melalui variabel. Perlu diingat bahwa variabel class reference bukanlah variabel bertipe objek, tetapi variabel yang mengacu kepada tipe kelas. Perhatikan contoh berikut ini.
Kita mempunyai sebuah kelas dengan tipe TMyClass. Selanjutnya kita definisikan sebuah class reference dengan nama TMyClassRef, sebagai berikut :
type
TMyClassRef = class of TMyClass;
Page 64
Selanjutnya kita dapat mendefinisikan sebuah variabel dengan tipe class reference sebagai berikut ini.
var AnObject : TMyClass; // variabel bertipe objek AClassRef : TMyClassRef; // variabel bertipe class reference
begin AnObject := TMyClass.Create; // variabel bertipe objek
// dapat di-assign dengan instance dari objek tersebut
AClassRef := TMyClass; // variabel bertipe class reference
// harus di-assign dengan tipe kelas …
Kita dapat memanggil class method ataupun constructor melalui variabel yang sudah kita definisikan di atas dengan contoh sebagai berikut :
AnObject := AClassRef.Create;
Delphi menyediakan banyak sekali class reference diantaranya : TClass = class of TObject;
TComponentClass = class of TComponent; TFormClass = class of TForm;
Page 65
Bab ini membahas tentang penerapan dari uraian‐ uraian yang tercantum dalam bab 2 dan bab 3 dalam tiga buah contoh program.
La t iha n 0 1 : Aplik a si Se de rha na
Pada latihan ini kita membuat sebuah program kalkulator sederhana.
1. Mulailah dengan meng‐ klik pada menu File ‐ > New Application.
2. Selanjutnya kita mendesain tampilan aplikasi. Delphi menyediakan sebuah form Designer kosong untuk kita gunakan dalam mendesain aplikasi, gunakan juga Component Palette untuk mengambil komponen yang dibutuhkan, dan desainlah sebagai berikut dengan menggunakan Object Inspector :
3. Sekarang kita melengkapi property komponen. Pada Object Inspector lakukan pengaturan property menurut tabel berikut ini :
Komponen
Property
Value
Form1
Caption
Latihan
Label1
Caption
Data 1
Label2
Caption
Data 2
Label3
Caption
Hasil
Edit1
Name
EdData1
Text
Page 66
4. Sehingga menghasilkan tampilan seperti ini :
5. Menggunakan Event yang sesuai untuk menuliskan perintah program, untuk program kali ini kita hanya menggunakan Event onClick pada tombol [Kali] dan tombol [Selesai]. Caranya mudah, klik 2x pada tombol [Kali], sehingga Delphi menunjukkan kita lokasi untuk pengetikan pada Unit Editor sebagai berikut ini :
procedure TForm1.Button1Click(Sender : TObject);
begin
EdHasil.Text := FloatToStr(StrToFloat(EdData1.Text) *
StrToFloat(EdData2.Text));
end;
6. Gunakan cara yang sama untuk tombol [Selesai], klik 2x pada tombol tersebut, lalu ketikkan sebagai berikut :
procedure TForm1.Button2Click(Sender : TObject);
7. Simpan aplikasi yang kita buat dengan cara meng‐ klik menu File ‐ > Save All. Berturut‐ turut Delphi akan meminta nama file untuk menyimpan Unit dan dilanjutkan dengan meminta nama file untuk menyimpan Project. Simpanlah nama unit Anda dengan “Ulatihan01” dan project Anda dengan nama
“Platihan01”.
Page 67
8. Selesai melakukan penyimpanan, kita lanjutkan dengan melakukan kompilasi sekaligus menjalankan program. Adapun caranya melalui menu Run ‐ > Run.
La t iha n 0 2 : M e nggu na k a n K ondisiona l
Pada latihan kali ini kita akan membuat sebuah program perhitungan nilai mahasiswa. Dalam hal ini, input program adalah nilai‐ nilai UTS dan UAS, output program berupa grade nilai dalam abjad A, B, C, D, atau E.
1. Mulailah dengan meng‐ klik pada menu File ‐ > New ‐ > Application.
2. Pada Form Designer, dengan menggunakan komponen dari palette standard, berikut ini :
Desainlah form Anda seperti ini :
3. Aturlah property tiap komponen dengan mengikuti tabel berikut :
Font.Style.fsBold
Font.Style.fsBold
Font.Style.fsBold
True
Label1
Caption
UTS 1
Label2
Caption
UTS 2
Page 68
Hasil akhir desain Anda akan menjadi seperti di bawah ini :
4. Untuk menuliskan skrip program, Anda harus meng‐ klik 2x pada tombol [Hitung], lalu ketikkan listing di bawah ini :
procedure TForm1.Button1Click(Sender : TObject); var uts1, uts2, uas, na : real;
b1, b2, b3 : real; grade : string;
begin
//……mengambil data nilai…….. uts1 := StrToFloat (Edit1.Text); uts2 := StrToFloat (Edit2.Text); uas := StrToFloat (Edit3.Text);
//…..mengambil data persen bobot…. na := uts1*b1 + uts2*2 + uas*3; //…..menentukan grade nilai….. if (na >= 80) then grade := ‘A’ else if (na >= 60) and (na < 80) then grade := ‘B’ else if (na >= 60) and (na < 70) then grade := ‘C’ else if (na >= 50) and (na < 60) then grade := ‘D’
else
grade := ‘E’;
Page 69
//…..menampilkan output……. Edit7.Text := FloatToStr(na); Edit8.Text := grade;
end;
5. Dan skrip terakhir, Anda lakukan klik 2x pada tombol [Selesai], lalu ketikkanlah :
procedure TForm1.Button2Click (Sender : TObject);
6. Simpanlah program dengan nama unit “Ulatihan02” dan nama Project “Latihan02”.
7. Kompilasi program Anda dengan menggunakan menu Run ‐ > Run.
La t iha n 0 3 : M e ngguna k a n I t e ra si
Latihan kali ini adalah membuat program yang mengilustrasikan cara melakukan perhitungan secara berulang/iterasi. Untuk contoh, kita menggunakan perhitungan yang sangat familiar yaitu perhitungan trigonometri.
1. Mulailah dengan meng‐ klik pada Menu File ‐ > New ‐ > Application.
2. Pada Form designer, dengan menggunakan komponen dari Palette Standard dan Palette Additional berikut :
Page 70 Page 70
3. Klik 2x pada komponen chart1, lalu pada dialog editing chart1, tambahkan data series1 :
4. Aturlah property tiap komponen dengan mengikuti tabel berikut :
Data Input
Font.Style.fsBold
Sudut Awal
Label2
Caption
Jumlah Data
Label3
Caption
Interval
Label4
Caption
Total
Label5
Caption
Grade
Edit1
Text
Edit2
Text
Edit3
Text
Button1
Caption
Sinus
Button2
Caption
Cosinus
Button3
Caption
Selesai
Page 71
5. Dalam latihan kali ini, kita menggunakan beberapa variabel yang bersifat global, artinya dapat digunakan pada semua procedure yang berada di dalam unit latihan ini. Maka deklarasi variabel harus Anda letakkan sebagai berikut :
private
( Private declarations )
public
( Public declarations )
end; var
Form1 : TForm1; I, ndat : integer; teta0, step : real; ceksin : Boolean; x, y : array [0..360] of real;
6. Untuk menuliskan skrip perintah program, klik 2x pada tombol [Sinus], lalu ketiklah :
procedure TForm1.Button1Click (Sender : TObject);
begin
teta0 := StrToFloat (Edit1.Text); ndat := StrToInt (Edit2.Text); step := StrToFloat (Edit3.Text); Series1.Clear; x[0] := teta0; for i := 0 to ndat do
begin
y[i] := sin(x[i]*3.14/180); Series1.AddXY( x[i],y[i] , ‘ ‘ , clRed ); X[i+1] := x[i] * step;
end;
Chart1.Title.Text.Clear; Chart1.Title.Text.Add(‘Grafik Trigonometri’); Chart1.Title.Font.Style := [fsBold]; Chart1.LeftAxis.Title.Caption := ‘Nilai Sinus’; ceksin := True; UpdateValue; //User define procedure
end;
7. Kemudian klik 2x pada tombol [Cosinus], lalu ketikkan :
procedure TForm1.Button2Click (Sender : TObject);
begin
teta0 := StrToFloat (Edit1.Text); ndat := StrToInt (Edit2.Text); step := StrToFloat (Edit3.Text); Series1.Clear; x[0] := teta0; for i := 0 to ndat do
begin
y[i] := cos(x[i]*3.14/180); Series1.AddXY( x[i],y[i] , ‘ ‘ , clRed ); X[i+1] := x[i] * step;
Page 72 Page 72
Chart1.Title.Text.Clear; Chart1.Title.Text.Add(‘Grafik Trigonometri’); Chart1.Title.Font.Style := [fsBold]; Chart1.LeftAxis.Title.Caption := ‘Nilai Cosinus’; ceksin := True; UpdateValue; //User define procedure
end;
8. Pada latihan kali ini kita juga membuat sebuah user define procedure (prosedur sendiri), yang kita tempatkan sebelum posisi end terakhir dari unit. Ketikkan sintaks berikut :
procedure TForm1.UpdateValue;
var
I : integer;
begin
StringGrid1.ColCount := 3; StringGrid1.RowCount := ndat+1; StringGrid1.Cells[0,0] := ‘ 1 ‘; StringGrid1.Cells[1,0] := ‘X ( i )’; StringGrid1.Cells[2,0] := ‘Y ( i )’; x[ 0 ]:= teta0; for i := 0 to ndat do
begin
if ceksin then y [ i ] := sin(x [ i ]*3.14/180)
else
y [ i ] := cos(x [ i ]*3.14/180); x[i+1] := x[i] + step StringGrid1.Cells[0, i+1] := IntToStr(i); StringGrid1.Cells[1, i+1] := FloatToStr(x[i]); StringGrid1.Cells[2, i+1] := formatFloat(‘#0.000’, y[i]);
end;
end ; agar unit mengenalnya, perhatikan cara penulisannya dan letakkan header procedure tersebut pada
barisan deklarasi berikut :
procedure Button2Click ( Sender : TObject ); procedure Button3Click ( Sender : TObject ); procedure UpdateValue;
private
( Private declarations )
public
( Public declarations )
end;
9. Lalu terakhir, klik 2x pada tombol [Selesai], dan ketiklah :
procedure TForm1.Button3.Click ( Sendet : TObject );
begin
Close;
end;
Page 73
10. Simpan program Anda, dengan nama unit “Ulatihan03” dan nama Project “Latihan03”. Lalu jalankan dengan menekan F9, sehingga Anda akan diperoleh hasil sebagai berikut :
Page 74
Aplikasi database memungkinkan user berinteraksi dengan informasi yang tersimpan dalam sebuah database. Tidak seperti bahasa pemrograman yang lain, Delphi memberikan banyak pilihan teknologi kepada Software Engineer dalam membangun dan mengembangkan aplikasi database. Dengan banyaknya pilihan tersebut, Software Engineer dapat mengembangkan aplikasi dengan mekanisme akses data yang paling tepat menurut kebutuhan.