Membuat File "Error Report" Untuk Menyimpan Info Error Pada Aplikasi Yang Dibuat Menggunakan Delphi

بسم الله الرحمن الرحيم
السلام عليكم

Alhamdulillah, sahabatku semua akhirnya si Utuh Al-Fakir kembali mau berbagi ilmu.
Sekarang saya akan berbagi tentang bagaimana membuat file untuk merekam pesan error yang terjadi pada aplikasi ini. Mengapa perlu direkam ? Ketika kita mendistribusikan aplikasi yang kita buat ke konsumen, pasti tidak lepas dari error, sekecil apapun. Untuk keperluan maintenance atau pemeliharaan aplikasi yang kita buat, tentu kita perlu mengetahui apa saja yang terjadi selama aplikasi dipakai. Salah satu cara untuk mengetahui segala kekurangan pada aplikasi kita yaitu dengan mengetahui apa saja error yang terjadi ketika konsumen memakai aplikasi kita. Untuk itu maka perlu bagi programmer menyertakan file khusus untuk menyimpan informasi-informasi saat aplikasi terjadi kesalahaan atau error.
Dalam tulisan kali ini, saya akan menjelaskan bagaimana cara membuat file info untuk merekam error pada aplikasi. Sangat sederhana ternyata, kita cukup mengambil pesan error, kemudian pesan tersebut kita simpan dalam sebuah file. Dalam tulisan ini saya beri nama file "error_report.bak"
Adapun langkah-langkahnya adalah sebagai berikut :
1. Buat procedure untuk menyimpan info error
procedure saveErrorToFile();
2. Buat procedure untuk menambahkan informasi error ke dalam file error_report.bak
procedure tambahIsiFile();
3. Buat procedure untuk membuat file error_report.bak
procedure buatIsiFile();

Untuk lebih mudah, buat procedure di atas skrip "private"
Lebih lengkap di bawah ini :
    procedure saveErrorToFile();
    procedure tambahIsiFile();
    procedure buatIsiFile();
  private
    { Private declarations }
  public
    { Public declarations }
  end;


Tambahkan variabel pesan dengan tipe string dan variabel errorFile dengan tipe TextFile
var
  Form1: TForm1;
  errorFile : TextFile;
  pesan : string;


Kemudian ketik isi dari 3 procedure tersebut di bawah skrip "implementation"
implementation

{$R *.dfm}

procedure TForm1.buatIsiFile();
begin
//
AssignFile(errorFile,ExtractFilePath(Application.ExeName)+'error_report.bak');
{$I-}Rewrite(errorFile){$I+};
Writeln(errorFile,'at : '+FormatDateTime('dd/mm/yyy hh:nn:ss',Now())+'-'+pesan);
CloseFile(errorFile);
end;

procedure TForm1.tambahIsiFile();
begin
//
AssignFile(errorFile,ExtractFilePath(Application.ExeName)+'error_report.bak');
Append(errorFile);
Writeln(errorFile,'at : '+FormatDateTime('dd/mm/yyy hh:nn:ss',Now())+'-'+pesan);
CloseFile(errorFile);
end;


pada skrip "Writeln(errorFile,'at : '+FormatDateTime('dd/mm/yyy hh:nn:ss',Now())+'-'+pesan); ", boleh anda tambahkan nama form, agar kita dapat mengetahui pada form mana error terjadi
Writeln(errorFile,'at : '+FormatDateTime('dd/mm/yyy hh:nn:ss',Now())+'-'+pesan);

4. Lanjutkan skrip ini :
procedure TForm1.saveErrorToFile();
begin
if not FileExists('error_report.bak') then
  begin
    buatIsiFile();
  end
else
  begin
    tambahIsiFile();
  end;
end;


5. Tambahkan 3 komponen TEdit dan 1 tombol
6. Kemudian pada event tombol onClick, ketik skrip berikut :
try
  Edit3.Text := IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));
except
  on e : Exception do
  begin
    MessageBox(0,PChar('Terjadi Kesalahan Proses'),PChar('Kesalahan'),MB_OK+MB_TASKMODAL+MB_ICONERROR);
    pesan := e.Message;
    saveErrorToFile();
    exit;
  end;
end;
7. Jalankan aplikasi, klik tombol maka akan terjadi error
8. Simpan project
9. Tutup aplikasi dan tutup IDE Delphi
10. Jalankan file exe dari aplikasi yang kita buat tadi
11. Ketika tombol diklik maka akan terjadi error
12. Lihat pada folder aplikasi kita, akan ada file error_report.bak
Nah, file ini lah yang menyimpan pesan error tadi.
Untuk lebih jelas, berikut skrip lengkap dari aplikasi tersebut :


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure saveErrorToFile();
    procedure tambahIsiFile();
    procedure buatIsiFile();
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  errorFile : TextFile;
  pesan : string;
implementation

{$R *.dfm}

procedure TForm1.buatIsiFile();
begin
//
AssignFile(errorFile,ExtractFilePath(Application.ExeName)+'error_report.bak');
{$I-}Rewrite(errorFile){$I+};
Writeln(errorFile,'at : '+FormatDateTime('dd/mm/yyy hh:nn:ss',Now())+'|'+Name+'->'+pesan);
CloseFile(errorFile);
end;

procedure TForm1.tambahIsiFile();
begin
//
AssignFile(errorFile,ExtractFilePath(Application.ExeName)+'error_report.bak');
Append(errorFile);
Writeln(errorFile,'at : '+FormatDateTime('dd/mm/yyy hh:nn:ss',Now())+'|'+Name+'->'+pesan);
CloseFile(errorFile);
end;

procedure TForm1.saveErrorToFile();
begin
if not FileExists('error_report.bak') then
  begin
    buatIsiFile();
  end
else
  begin
    tambahIsiFile();
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
try
  Edit3.Text := IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));
except
  on e : Exception do
  begin
    MessageBox(0,PChar('Terjadi Kesalahan Proses'),PChar('Kesalahan'),MB_OK+MB_TASKMODAL+MB_ICONERROR);
    pesan := e.Message;
    saveErrorToFile();
    exit;
  end;


Silakan unduh file demo di sini
Sekian dulu yang bisa Al-Fakir sampaikan, salah khilaf mohon dimaafkan sahabat. Mohon kritik dan saran dari pengunjung, terima kasih
السلام عليكم







Comments

Popular posts from this blog

Membuat File Resource (*.res)