Aplikasi Alamat Teman (Bag. 3: Tambah Data)

Berikut ini kita akan membuat kode program untuk menambah data ke teman.mdb. Ada beberapa hal yang akan dilakukan sebelum melakukan penambahan data.


  1. User hanya boleh menambahkan data setelah menekan tombol tambah, jika belum maka edtNama, dan edtAlamat dalam keadaan disable. Setelah menekan tombol Tambah, maka tulisan tambah akan diganti dengan Simpan dan kata Tambah ditulis pada status bar
  2. Periksa apakah user mengisi nama dan alamat teman. Jika tidak tampilkan pesan kesalahan.
  3. Periksa apakah nama teman tersebut sudah pernah dimasukkan. Jika sudah, kita memperingatkan user apakah data tersebut mau dimasukkan atau tidak.
Sebelum sampai pada prosedure penambahan data, ada beberapa prosedur yang harus ditulis terlebih dahulu untuk mendukungnya. Prosedur tersebut adalah:
  1. Memberi nama obyek
  2. Prosedur mendapatkan obyek secara terprogram
  3. Prosedur menghapus kotak isian dari isian data lama
  4. men-disable atau enable kotak isian, tergantung pada saat user akan menambah/memperbaiki data atau tidak
Pada tutorial terdahulu, kita sudah membuat obyek-obyek yang diperlukan. Tapi masih ada satu kekurangannya. Obyek tersebut belum diberi nama. Semua obyek yang akan dimanipulasi oleh kode program kita harus diberi nama, sebaliknya, jika tidak dimanipulasi, anda boleh tidak memberi nama (dengan demikian akan menghemat 44 kb). Mari sekarang kita beri nama semua obyek: Lihat pada prosedur SetObyek, dan tambahkan kode program berikut:

//Nama tombol toolbar
tbTambah.Name := 'tbTambah';
tbEdit.Name := 'tbEdit';
tbTutup.Name := 'tbTutup';
//Nama kotak edit pemasukan data
edtNama.Name := 'edtNama';
edtAlamat.Name := 'edtAlamat';
//Nama obyek status bar
stbarKeterangan.Name := 'stbarKeterangan'


Jika anda download source code yang saya sertakan dibawah, atau anda akan mengetikkan sendiri kode program pada IDE Delphi. Anda pasti dapat melihat bahwa seluruh obyek yang kita pakai dibuat saat run time. Sehingga pada saat anda membuat program (design time) obyek-obyek tersebut belum ada. Lantas bagaimana membuat program yang memanipulasi edtNama, edtAlamat serta tombol toolbar ?
Hal pertama yang harus kita buat terlebih dahulu adalah bagaimana 'memegang' obyek. Setelah terpegang, kita dapat memanipulasi obyek tersebut. Kode program dibawah ini digunakan untuk memegang obyek tersebut.

function TFormOlahData.ObyekSetFocus(NamaObyek, NamaClass: String): TComponent;
var
i : Integer;
begin
Result := Nil;
for i:= 0 to self.ComponentCount - 1 do
begin
if (self.Components[i].ClassName = NamaClass) then
begin
if (self.Components[i]).Name = NamaObyek then
begin
Result := (self.Components[i]);
Exit;
end;
end;
end;
end;

Setiap obyek yang ditambahkan pada form, akan disimpan delphi dalam bentuk array. Sehingga jika kita mencari obyek pada suatu form, kita dapat menelusuri dari daftar array components. Kita dapat memeriksa mulai dari index 0 sampai componetCount - 1. Program diatas berguna mencari obyek dengan class tertentu dan nama obyek tertentu dan memberikan 'pegangan' pada pemanggil fungsi dengan tipe TComponent. 'Pegangan' ini nantikan yang dijadikan dasar untuk memanipulasi obyek tersebut, mulai dari memanfaatkan SetFocus, Mengisi obyek, ataupun hal lainnya.

Kode dibawah ini adalah kode program untuk membersihkan seluruh kotak isian. Ini dilakukan jika isian tersebut untuk menambahkan data, jika untuk memperbaiki data tidak perlu.

procedure TFormOlahData.SetClearEntry;
var i : Integer;
begin
for i:= 0 to self.ComponentCount - 1 do
begin
if self.Components[i].ClassType = TEdit then
begin
(self.Components[i] as TEdit).Text := EmptyStr;
end;
end;
end;
Kode program diatas mudah dipahami karena mirip dengan kode program untuk mencari pegangan obyek. Disini kode program bertugas mencari obyek yang akan dihapus atau diset isinya.

Seperti kita ketahui, seluruh obyek yang digunakan untuk memasukkan data ke database dalam aplikasi teman adalah class TEdit, sehingga nama class ini yang kita jadikan patokan untuk membuat membersihkan kotak edit . Jika kita temukan obyek yang class-nya TEdit maka obyek tersebut akan dibersihkan

Sekarang buat prosedure SetEntry seperti dibawah ini:

procedure TFormOlahData.SetEntry(Status: Boolean);
var i : Integer;
begin
for i:= 0 to self.ComponentCount - 1 do
begin
if self.Components[i].ClassType = TEdit then
begin
(self.Components[i] as TEdit).Enabled := Status;
end;
end;
end;
Kode program diatas hampir sama dengan kode program method SetClearEntry. Perbedaannya hanya terletak pada tujuannya. SetClearEntry bertujuan untuk membersihkan, sementara SetEntry untuk disable/enable kotak isian entry.
Kemudian tambahkan method

procedure TFormOlahData.SetClearEntry(Status: Boolean);
var i : Integer;
begin
for i:= 0 to self.ComponentCount - 1 do
begin
if self.Components[i].ClassType = TEdit then
begin (self.Components[i] as TEdit).Text := EmptyStr;
(self.Components[i] as TEdit).Enabled := Status;
end;
end;
end;

Sekarang tambahkan deklarasi prosedure: procedure tbTambahClick(Sender: TObject); di bagian deklarasi method private, sehingga bagian tersebut menjadi seperti dibawah ini:

private
procedure tbTambahClick(Sender: TObject);procedure SetObyek;
procedure SetEntry(Status: Boolean);
Kemudian buat kode program untuk method diatas sebagai berikut:
procedure TFormOlahData.tbTambahClick(Sender: TObject);
begin
//Hapus isian kode entry terdahulu
SetEntry(True);
//Focus pada obyek edtNama
TEdit(ObyekSetFocus('edtNama','TEdit')).SetFocus;
StatusEdit := keTambah;
//Menuliskan kata tambah data pad status bar
TStatusBar(ObyekSetFocus('stbarKeterangan','TStatusBar')).Panels[1].Text := 'Tambah Data';
end;
Program diatas jangan dikompile terlebih dahulu. Sebab pasti akan error. Saya menambahkan variabel bertipe enumerate: StatusEdit. Deklarasikan StatusEdit di var di atas deklarasi implementasi sebagai berikut:
StatusEdit: KodeEdit;

Kemudian tambahkan kode program dibawah ini dibawah deklarasi type sebagai berikut:

KodeEdit = (keTambah, keEdit, keBrowse);


Nilai KodeEdit akan menyatakan status kerja kita, nantinya pada saat menyimpan data, aplikasi kita akan melihat nilai pada variabel ini untuk melakukan tugasnya. Hal ini dilakukan karena menyimpan dan memperbaiki data mempunyai kode program yang berbeda.Kemudian tambahkan deklarasi prosedur tbBatalClick(Sender: TObject) pada bagian deklarasi private dan tambahkan method dibawah ini:

procedure TFormOlahData.tbBatalClick(Sender: TObject);
begin
//Hapus isian kode entry terdahulu
SetEntry(False);
StatusEdit := keBrowse;
TStatusBar(ObyekSetFocus('stbarKeterangan','TStatusBar')).Panels[1].Text := 'Browse Data';
end;


SetEntry(False) akan membuat kotak entry data menjadi disable kembali, kemudian variabel StatusEdit di beri nilai keBrowse. Ini adalah nilai default dari StatusEdit. Setelah itu kita menuliskan tulisan browse di status bar ketika kode berikut dieksekusi:

TStatusBar(ObyekSetFocus('stbarKeterangan','TStatusBar')).Panels[1].Text := 'Browse Data';
Sekarang tambahkan tombol simpan sehingga posisi tombol sebagai berikut:



Mula-mula tambahkan kode berikut pada prosedur SetObyek:

tbSimpan := TToolButton.Create(Self);
tbSimpan.Caption := '&Simpan';
tbSimpan.Parent := tbarTombol;
tbSimpan.OnClick := tbSimpanClick;
tbSimpan.Name := 'tbSimpan';

Kemudian tambahkan deklarasi variabel tbSimpan di bawah var, sehingga keseluruhan deklarasi var sebagai berikut:

var
FormOlahData : TFormOlahData;
stbarKeterangan : TStatusBar;
cbarTombol : TCoolBar;
tbarTombol : TToolBar;
tbTambah, tbEdit,
tbBatal, tbTutup,
tbSimpan : TToolButton;
edtNama, edtAlamat : TEdit;
lblNama, lblAlamat : TLabel;
StatusEdit : KodeEdit;

Dan tambahkan kode berikut pada SetEntry:

TToolButton(ObyekSetFocus('tbSimpan','TToolButton')).Enabled:= Status;

Setelah obyek tbSimpan terbentuk, kita sekarang membuat event handlers untuknya dengan menambahkan procedure tbSimpanClick(Sender: TObject); pada bagian deklrasi private dan membuat kode program event handler-nya sebagai berikut:

if KodeEdit = keTambah then
SimpanTambah
else
SimpanEdit;

Maksud dari kode ini sudah jelas, jika kode edit = keTambah, maka prosedure SimpanTambah yang akan dieksekusi, jika tidak maka prosedure SimpanEdit yang akan dieksekusi. Buat prosedure simpantambah dan prosedure simpanedit (tentu anda sudah bisa kan ?). Biarkan prosedure simpanedit kosong. Nanti kita akan membahasnya pada tutorial ke 4. Sedangkan prosedure SimpanTambah akan kita isi sebagai berikut:


Aplikasi Alamat Teman (Bag. 3: Tambah Data) Rating: 4.5 Diposkan Oleh: Good Dreamer

0 comments:

Posting Komentar

Diberdayakan oleh Blogger.