Baik untuk memulai toturial kali ini kita membuat satu projek Delphi. Kita akan lebih banyak menggunakan script editor untuk membuat database.
FFieldData=^TFieldData; TFieldData=record index:integer; Name:String[100]; Value:Integer; end;
TDataBase=class private FList:TList; procedure SetFieldData(Index:integer;Data:TFieldData); function GetFieldData(Index:integer):TFieldData; function Counter:Integer; public constructor Create; destructor Destroy;override; function Add(Data:TFieldData):integer; procedure Delete(Index:Integer); procedure SaveToFile(Filename:string); procedure LoadFromFile(Filename:string); procedure Clear; property Count:integer read Counter; property Item[Index:Integer]:TFieldData read GetFieldData write SetFieldData;default; end;
constructor adalah untuk mempersiapkan memori dan membuat sebuah database begitu juga destructor untuk membebaskan memory yang telah digunakan dan menghapus database. isilah pada masing-masing dengan syntax berikut :
constructor TDataBase.Create; begin inherited Create; FList:=TList.Create; end; destructor TDataBase.Destroy; begin FList.Free; inherited Destroy; end;
Kemudian function Add adalah fungsi untuk menambahkan record ke dalam database, gunakan script berikut
function TDatabase.Add(Data:TFieldData):integer; var P:FFieldData; begin New(P); P^:=Data; result:=FList.Add(P); end;
Procedure delete dan procedure clear adalah untuk menghapus record data dari database dimana delete dapat mengapus per record data sedangkan clear untuk menghapus seluruh record data.
procedure TDatabase.Delete(index:integer); begin FList.Delete(Index); end; Procedure TDatabase.Clear; begin FList.Clear; end;
procedure savetofile merupakan cara untuk menyimpan semua record data ke dalam sebuah file di komputer dan procedure loadfromfile merupakan cara untuk membuka file database yang sudah dibuat tersebut. Perhatikan script di bawah ini. Proses penyimpanan menggunakan Tfilestream sehingga data yang disimpan dikompress dan menjadi file binary.
procedure TDatabase.SaveToFile(Filename:string); var Data:TFieldData; i,n:integer; F:TFileStream; begin F:=TFileStream.Create(filename,fmcreate or fmopenwrite); try n:=Counter; F.WriteBuffer(n,sizeof(n)); for i:=0 to n-1 do begin Data:=GetFielddata(i); F.WriteBuffer(Data,sizeof(Data)); end; finally f.Free; end; end; procedure TDatabase.LoadFromFile(Filename:string); var Data:TFieldData; i,n:Integer; F:TFileStream; begin F:=TFileStream.Create(Filename,fmopenread); try F.ReadBuffer(n,sizeof(n)); for i:=0 to n-1 do begin F.ReadBuffer(Data,sizeof(data)); Add(Data); end; finally F.Free; end; end;
Kemudian pada property item merupakan cara mengakses dan merubah record data yakni dengan menggunakan link GetFieldData dan SetFieldData. Jadi property ini bekerja pada function-function tersebut.
procedure TDatabase.SetFieldData(Index:integer;Data:TFieldData); var P:FFieldData; begin P:=FList[Index]; P^:=Data; FList[Index]:=P; end; function TDatabase.GetFieldData(Index:integer):TFieldData; var P:FFieldData; begin P:=FList[index]; result:=P^; end;
Sedangkan pada property count menggunakan link ke function counter yang berfungsi untuk mengetahui jumlah record data yang sudah tersimpan di dalam database. Prehatikan script berikut
function TDatabase.Counter:integer; begin result:=FList.Count; end;
Sekarang kita coba implementasikan class database tersebut dalam sebuah projek Delphi. Tambahkanlah 6 button , 3 edit, memo, savedialog dan opendialog. Sehingga seperti berikut :
- Button 1 diisi untuk melakukan penambahan record data ke dalam database yang sudah dibuat.
- Button 2 diisi untuk menghapus record data satu demi satu.
- Button 3 untuk menghapus semua data dalam database
- Button4 adalah untuk mengedit isi dari database melalui edit1, edit2, dan edit3
- Button 5 adalah button yang berfungsi untuk menyimpan database ke dalam file
- Button6 berfunngsi untuk membuka file database yang suddah disimpan.
Sebelum mengisi semua button kita harus mengaktifkan database pada saat form dibuat. Dan membebaskan database saat form ditutup. Buatlah sebuah variable global untuk databasenya. Untuk lebih lengkapnya perhatikan script berikut :
var DataBase:TDatabase; procedure TForm1.FormCreate(Sender: TObject); begin Database:=TDatabase.Create; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Database.Destroy; end;
Proses untuk menampilkan seluruh isi database bisa menggunakan script tambahan, sebagai contoh tambahkan procedure showdata pada private dari class form dan isilah script berikut :
procedure TForm1.ShowData; var Data:TFieldData; i:integer; begin memo1.Lines.Clear; for i:=0 to Database.Count-1 do begin Data:=Database[i]; memo1.Lines.Add(format('%d'#9'%100s'#9'%d',[Data.index,data.Name,data.Value])); end; end;
Sekarang isi masing-masing button dengan perintah berikut:
- Button 1 yang memberikan contoh bagaimana cara menambahkan data ke dalam database dengan script berikut:
procedure TForm1.Button1Click(Sender: TObject); var data:TFieldData; begin Data.index:=0; data.Name:='Data 1'; data.Value:=120; Database.Add(Data); Data.index:=1; data.Name:='Data 2'; data.Value:=130; Database.Add(Data); Data.index:=2; data.Name:='Data 3'; data.Value:=140; Database.Add(Data); Data.index:=3; data.Name:='Data 4'; data.Value:=150; Database.Add(Data); ShowData; end;
- Button 2 merupakan contoh bagaimana cara menghapus record data dari database satu demi satu. Isilah seperti script berikut
procedure TForm1.Button2Click(Sender: TObject); begin Database.Delete(0); ShowData; end;
- Button 3 berisi contoh bagaimana mennghapus seluruh isi dari database.
procedure TForm1.Button3Click(Sender: TObject); begin Database.Clear; showdata; end;
- Button 4 berisi bagaimana cara mengedit seubah record data.
procedure TForm1.Button4Click(Sender: TObject); var index:integer; data:TFieldData; begin index:=strtoint(edit1.Text); Data:=Database[index]; Data.Name:=edit2.Text; Data.Value:=strtoint(edit3.Text); Database[index]:=Data; showdata; end;
- Button 5 berisi contoh bagaimana cara menyimpan database ke dalam sebuah file
procedure TForm1.Button5Click(Sender: TObject); begin savedialog1.Filter:='Data|*.dba'; if savedialog1.Execute then begin Database.SaveToFile(changefileext(savedialog1.FileName,'.dba')); end; end;
- Button 6 berisi contoh bagaimana cara membuka file database yang sudah tersimpan sebelumnya.
procedure TForm1.Button6Click(Sender: TObject); begin opendialog1.Filter:='Data|*.dba'; if opendialog1.Execute then begin Database.LoadFromFile(opendialog1.FileName); showdata; end; end;
Jika berhasil maka hasilnya sebagai berikut :
Lihat pula video untuk tutorial ini.
Tidak ada komentar:
Posting Komentar