Delphi: Mengakses Field pada DataSet

Mengakse Field Pada Datas Set

Pada sesi ini akan dibahas berbagai cara mengakses field pada obyek DataSet. Delphi memberikan beberapa Cara membaca nilai pada suatu field. Cara mana yang sebaiknya digunakan sangat tergantung oleh kebutuhan dan tentu saja gaya pemrograman seseorang. Berikut ada beberapa contoh cara membaca data atau nilai dari suatu field. Pada contoh ini akan diakses field Judul pada tabel Buku yang akan ditampung pada variabel Judul_Buku;

Properti Fields

Pada properti Fields suatu field dapat diakses berdasarkan urutan kolom pada tabel dimana field pertama berindex 0, field kedua berindex 1, dan seterusnya. Kelebihan metode ini adalah kode program yang sigkat. Contoh:

Judul_Buku := Tabel1.Fields[1].AsString;

Properti FieldByName

Pada properti FieldByName suatu field dapat diakses berdasarkan nama fieldnya, kelebihan metode ini adalah anda tidak perlu menghafalakan urutan kolom. Selain itu penggunaan properti ini memudahkan dalam pemahaman program. Contoh:

Judul_Buku := Tabel1.FieldsByName['Judul'].AsString;

 Komponen Table

Field dapat diakses sebagai bagian langsung dari komponen Table.  Contoh:

Judul_Buku := Tabel1['Judul'].AsString;

 Properti FieldValues

Penggunaanya mirip dengan properti FieldByName, dimana nama kolom dituluskan secara eksplisit hanya saja tanpa menggunakan Properti As.

Judul_Buku := Tabel1.FieldValues['Judul'];

Properti As

Pada saat anda mengakses nilai suatu field, anda dapat menggunakan sederetan properti As untuk menangani nilai field pada record aktif bergantung pada tipedatanya.

Properti Tipe Data
AsBoolean Boolean
ASDateTime TDateTime
AsFloat Double
AsInteger Longint
AsString String
AsVariant Variant

Properti As dapat digunakakan pada saat membaca atau mengubah nilai pada suatu field.

Latihan

Berikut ini akan dibuat program manajemen data buku.

Strukur Tabel

Buat tabel Buku dengan struktur tabel sebagai berikut:

Struktur Tabel Buku

Struktur Tabel Buku

Isi Data

Isi Tabel Buku

Isi Tabel Buku

Desain Form

Pada desain form ini menggunakan Komponen:

  • Label1. Label2, Label3, Label4, Label5, Label6, untuk keterangan entri data
  • Edit1, Edit2, Edit3, Edit4, Edit5, dan  Edit6 untuk entri data buku
  • UpDown1 dan UpDown2, untuk menaikkan atau menurunkan nilai Tahun dan No Rak
  • GroupBox, untuk mengelompokkan area Pencarian
  • RadioButton1, RadioButton2 untuk memilih field pencarian (Kode Buku atau Judul)
  • Button1, Button2, Button3, Button4, Button5,  Button6, untuk tombol Tambah, Edit, Batal, Hapus, dan Tutup Serta Cari
  • Table1 untuk mengakses database dan tabel
  • DataSource1 untuk dapat mengases tabel pada Tabel1
  • DBNavigator1 untuk navigasi perpindahan record aktif
  • DbGrid1. untuk menampilkan data dalam bentuk lajur
Desain Form Data Buku

Desain Form Data Buku

Kode Program


procedure TfrmDataBuku.Button3Click(Sender: TObject);
begin
 Edit1.ReadOnly:=True;
 Edit2.ReadOnly:=True;
 Edit3.ReadOnly:=True;
 Edit4.ReadOnly:=True;
 Edit5.ReadOnly:=True;
 Edit6.ReadOnly:=True;

 Edit1.Clear;
 Edit2.Clear;
 Edit3.Clear;
 Edit4.Clear;
 Edit5.Clear;
 Edit6.Clear;

 Button1.Caption:='&Tambah';
 Button2.Caption:='&Edit';

 Button1.Enabled:= True;
 Button2.Enabled:= True;
 Button3.Enabled:= False;
 Button4.Enabled:= True;
 DBGrid1.Enabled:= True;
 DBNavigator1.Enabled:= True;
 GroupBox1.Enabled:=True;
end;

procedure TfrmDataBuku.FormCreate(Sender: TObject);
Var
 Year, Month, Day : Word;

begin
 DecodeDate(Date(), Year, Month, Day);
 UpDown1.Max := Year;
 UpDown1.Position:= Year;

 Button3Click(Sender); //menjalankan kode pada tombol batal
end;

procedure TfrmDataBuku.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
 Edit5.Text:= IntToStr(UpDown1.Position )
end;

procedure TfrmDataBuku.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
 Edit6.Text:=IntToStr(UpDown2.Position)
end;

procedure TfrmDataBuku.Button1Click(Sender: TObject);
begin
 if Button1.Caption='&Tambah' then
 begin
 Button1.Caption:='&Simpan';
 Button2.Enabled:=False;
 Button3.Enabled:=True;
 Button4.Enabled:=False;
 Edit1.Clear;
 Edit2.Clear;
 Edit3.Clear;
 Edit4.Clear;
 Edit5.Text:=IntToStr(UpDown1.Position);
 Edit6.Text:=IntToStr(UpDown2.Position);
 Edit1.SetFocus;

 Edit1.ReadOnly:=False;
 Edit2.ReadOnly:=False;
 Edit3.ReadOnly:=False;
 Edit4.ReadOnly:=False;
 Edit5.ReadOnly:=False;
 Edit6.ReadOnly:=False;
 end
 else
 begin
 Table1.Append;
 Table1.FieldByName('Kode_Buku').AsString:=Edit1.Text;
 Table1.FieldByName('Judul').AsString:=Edit2.Text;
 Table1.FieldByName('Pengarang').AsString:=Edit3.Text;
 Table1.FieldByName('Penerbit').AsString:=Edit4.Text;
 Table1.FieldByName('Tahun').AsString:=Edit5.Text;
 Table1.FieldByName('No_Rak').AsString:=Edit6.Text;
 Table1.Post;
 Button3Click(Sender); //menjalankan kode pada tombol batal
 end;
end;

procedure TfrmDataBuku.Button2Click(Sender: TObject);
begin
 if Button2.Caption='&Edit' then
 begin
 Button2.Caption:='&Update';
 Button1.Enabled:=False;
 Button3.Enabled:=True;
 Button4.Enabled:=False;
 DBGrid1.Enabled:=False;
 DBNavigator1.Enabled:=False;
 GroupBox1.Enabled:=False;

 Edit1.ReadOnly:=False;
 Edit2.ReadOnly:=False;
 Edit3.ReadOnly:=False;
 Edit4.ReadOnly:=False;
 Edit5.ReadOnly:=False;
 Edit6.ReadOnly:=False;

 Edit1.Text:=Table1.FieldByName('Kode_Buku').AsString;
 Edit2.Text:=Table1.FieldByName('Judul').AsString;
 Edit3.Text:=Table1.FieldByName('Pengarang').AsString;
 Edit4.Text:=Table1.FieldByName('Penerbit').AsString;
 Edit5.Text:=Table1.FieldByName('Tahun').AsString;
 UpDown1.Position:=Table1.FieldByName('Tahun').AsInteger;
 Edit6.Text:=Table1.FieldByName('No_Rak').AsString;
 UpDown2.Position:=Table1.FieldByName('No_Rak').AsInteger;
 end
 else
 begin
 Table1.Edit;
 Table1.FieldByName('Kode_Buku').AsString:=Edit1.Text;
 Table1.FieldByName('Judul').AsString:=Edit2.Text;
 Table1.FieldByName('Pengarang').AsString:=Edit3.Text;
 Table1.FieldByName('Penerbit').AsString:=Edit4.Text;
 Table1.FieldByName('Tahun').AsString:=Edit5.Text;
 Table1.FieldByName('No_Rak').AsString:=Edit6.Text;
 Table1.Post;
 Button3Click(Sender); //menjalankan kode program pada tombol batal

 end;

end;

procedure TfrmDataBuku.Button4Click(Sender: TObject);
begin
 if MessageDlg('Apakah Anda yakin menghapus?',mtConfirmation,
 [mbYes,mbNo],0 )=mrYes Then
 Table1.Delete;
end;

procedure TfrmDataBuku.Button6Click(Sender: TObject);
begin
if RadioButton1.Checked then
 begin
 Table1.Setkey;
 Table1.FieldByName('Kode_Buku').AsString := Edit7.Text;
 if not Table1.GotoKey then
 ShowMessage('Kode Buku yang dicari tidak ditemukan');
 end
 else
 begin
 if not Table1.Locate('Judul',Edit7.Text,[loPartialKey]) then
 ShowMessage('Kode Buku yang dicari tidak ditemukan');

 end;
end;

procedure TfrmDataBuku.RadioButton1Click(Sender: TObject);
begin
 Edit1.Clear;
end;


Tuliskan komentar anda

Komentar

Tinggalkan Balasan