Membuat Database
CREATE DATABASE `kuliah`
Uses kuliah;
Membuat Tabel
CREATE TABLE `jenis_barang` (
`kd_jenis` CHAR(4) NOT NULL,
`jenis` VARCHAR(40) DEFAULT NULL,
PRIMARY KEY (`kd_jenis`)
) ENGINE=INNODB DEFAULT CHARSET=latin1
Isikan seperti tabel berikut :
Membuat Tabel barang
REATE TABLE `barang` (
`id` CHAR(5) NOT NULL COMMENT 'id
barang', `kd_jenis` CHAR(4) DEFAULT NULL,
`nama_barang` VARCHAR(30) NOT NULL COMMENT 'nama
barang', `satuan` VARCHAR(20) NOT NULL COMMENT 'satuan',
`harga` INT(11) NOT NULL COMMENT 'harga barang',
`stok` INT(11) NOT NULL COMMENT 'stok barang',
`user_id` INT(11) NOT NULL COMMENT 'is user',
PRIMARY KEY (`id`)
) ENGINE=INNODB
Buat Project Delphi
Create New->Application seperti gambar berikut:
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 1 | 10
Data Modul
Tambahkan data Modul dengan New data Modul seperti pada gambar berikut:
Tambahkan beberapa fungsi seperti pada kode program berikut:
unit UnitDm1.pas
unit UnitDm1;
interface
uses
SysUtils, Classes, DB, ADODB,
dialogs,forms,stdctrls,Controls;
type
TDM1 = class(TDataModule)
ADOConnection1: TADOConnection;
ADQRy1: TADOQuery;
ADOQJenis: TADOQuery;
ADOQyCombo: TADOQuery;
AQry: TADOQuery;
private
{ Private declarations
} public
{ Public declarations }
procedure setCombo(Sender:TObject;Tabel,NamaField,Kondisi,urut:string);
function getData(Kon:TADOConnection;NamaTabel,FieldHasil,
Kondisi:string):string;
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 2 | 10
end;
var
DM1: TDM1;
implementation
{$R *.dfm}
// fungsi ngsisi combo
// Cara pakai Dm1.setCombo(ComboBox2,'jenis_barang','jenis','','jenis');
//************************************************************************
procedure TDM1.setCombo(Sender:TObject;Tabel,NamaField,Kondisi,urut:string);
var sql:string;
Begin
sql:='SELECT '+namaField+' FROM
'+tabel; if length(Kondisi)<> 0 then
sql:=sql+' WHERE '+ Kondisi;
if length(urut) <> 0 then
sql:=sql+' ORDER BY
'+urut; ADOQyCombo.Close;
ADOQyCombo.SQL.Clear;
ADOQyCombo.SQL.Add(sql);
try
ADOQyCombo.Open
; except
showmessage('Gagal koneksi server Jalankan Ulang
....'); end;
(sender as
TcomboBox).Items.Clear; while not
ADOQyCombo.Eof do begin
(sender as
TcomboBox).Items.Add(ADOQyCombo.Fieldbyname(Namafield).AsString)
;
ADOQyCombo.Next;
end;
end;
// fungsi baca data/rekaman
// x:=Dm1.getData(dm1.ADOConnect1,'jenis_barang',
// 'kd_jenis','jenis='’’K0012’’’)
//***********************************************************************
*
function
TDM1.getData(Kon:TADOConnection;Nam
aTabel,FieldHasil,
Kondisi:string):string;
var sql:string;
begin
sql:='SELECT '+FieldHasil+' FROM '+NamaTabel+' WHERE
'+ kondisi;
AQry.Connection:=kon;
AQry.Close;
AQry.SQL.Clear;
AQry.SQL.Add(sql);
AQry.Open;
if AQry.RecordCount>0 then
begin
result:=
AQry.FieldByName(FieldHasil).AsString; end
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 3 | 10
else
begin
result :='';
end;
end;
begin
//Application.CreateForm(TDM1, DM1);
end.
unit UnitDm1.pas
Operasi ADOTable
Tambahkan form seperti pada gambar berikut:
Buatlah Rancangan Form seperti berikut:
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 4 | 10
Tambahkan seperti pada kode program berikut:
UnitBarang.pas
unit UnitBarang;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, DB, Grids, DBGrids;
type
TFormBarang = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
EditKode: TEdit;
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 5 | 10
EditNamaBrg: TEdit;
EditSatuan: TEdit;
EditStok: TEdit;
EditHarga: TEdit;
Panel1: TPanel;
BitBtnSimpan: TBitBtn;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure FormActivate(Sender: TObject);
procedure BitBtnSimpanClick(Sender: TObject);
procedure DBGrid1CellClick(Column:
TColumn); private
{ Private declarations
} procedure Kosongkan;
public
{ Public declarations
} end;
var
FormBarang: TFormBarang;
implementation
uses unitDm;
{$R *.dfm}
// Memanggil koneksi //
procedure TFormBarang.FormActivate(Sender:
TObject); begin
Dm.ADOTblBarang.Connection:=Dm.ADOConnPenjulan
; Kosongkan;
end;
//*****************************
// klik tombol simpam
//*************************
*
procedure TFormBarang.BitBtnSimpanClick(Sender:
TObject); begin
Dm.ADOTblBarang.TableName:='barang';
Dm.ADOTblBarang.Open;
Dm.ADOTblBarang.Append;
dm.ADOTblBarang.FieldByName('id').AsString:=EditKode.Text;
dm.ADOTblBarang.FieldByName('nama_barang').AsString:=EditNamaBrg.Text;
dm.ADOTblBarang.FieldByName('satuan').AsString:=EditSatuan.Text;
dm.ADOTblBarang.FieldByName('harga').AsInteger:=StrToInt(EditHarga.Text)
;
dm.ADOTblBarang.FieldByName('stok').AsInteger:=StrToInt(EditStok.Text);
dm.ADOTblBarang.Post;
MessageDlg('Data Sudah disimpan........',
mtInformation, [mbOk], 0);
Kosongkan;
EditKode.SetFocus;
Dm.ADOTable1.open;
end;
// mengosongkan isian
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 6 | 10
procedure TFormBarang.Kosongkan;
begin
EditKode.Text:='';
EditNamaBrg.Text:='';
EditStok.Text:='';
EditSatuan.Text:='';
EditHarga.Text:='';
end;
procedure TFormBarang.DBGrid1CellClick(Column:
TColumn); begin
EditKode.Text:=DBGrid1.DataSource.DataSet.fieldByName('id').AsString;
EditNamaBrg.Text:=DBGrid1.DataSource.DataSet.fieldByName('nama_barang').AsSt
r ing;
end;
end.
UnitBarang.pas
Menggunakan ADOQuery
Rancangan Form
Kode Program:
unit UnitBarang.pas
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 7 | 10
unit UnitBarang2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, ZConnection;
type
TFormBarang2 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
EditKode: TEdit;
EditNamaBrg: TEdit;
EditSatuan: TEdit;
EditStok: TEdit;
EditHarga: TEdit;
Panel1: TPanel;
BitBtnSimpan: TBitBtn;
Label6: TLabel;
ComboBox1: TComboBox;
Edit1: TEdit;
procedure BitBtnSimpanClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
procedure ComboBox2Change(Sender:
TObject); private
{ Private declarations }
procedure Kosongkan;
function getKode(jenis:string):String;
public
{ Public declarations
} end;
var
FormBarang2: TFormBarang2;
implementation
uses unitDm1;
{$R *.dfm}
// fungsi baca jenis barang
function TFormBarang2.getKode(jenis:string):String;
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 8 | 10
const p='''';
begin
dm1.ADOQJenis.Close;
dm1.ADOQJenis.SQL.Clear;
dm1.ADOQJenis.SQL.Add('SELECT kd_jenis FROM jenis_barang');
dm1.ADOQJenis.SQL.Add('WHERE jenis='+p+jenis+p);
dm1.ADOQJenis.Open;
if dm1.ADOQJenis.RecordCount>0 then
begin
result:= dm1.ADOQJenis.Fields[0].AsString
; end
else
result:='';
end;
procedure TFormBarang2.BitBtnSimpanClick(Sender: TObject);
begin
if EditKode.Text='' then
begin
MessageDlg('Kode tidak boleh kosong........', mtInformation,
[mbOk], 0);
EditKode.SetFocus;
exit;
end;
DM1.ADQRy1.Close;
DM1.ADQRy1.SQL.Clear;
DM1.ADQRy1.SQL.Add('INSERT INTO barang
(id,kd_jenis,nama_barang,satuan,stok,harga,user_id)');
DM1.ADQRy1.SQL.Add('VALUES(:id,:kd,:nama_barang,:satuan,:stok,:harga,:
user_id)');
DM1.ADQRy1.Parameters.ParamByName('id').Value:=EditKode.Text;
DM1.ADQRy1.Parameters.ParamByName('kd').Value:=getKode(ComboBox1.Text
) ;
DM1.ADQRy1.Parameters.ParamByName('nama_barang').Value:=EditNamaBrg.T
e xt;
DM1.ADQRy1.Parameters.ParamByName('satuan').Value:=EditSatuan.Text;
DM1.ADQRy1.Parameters.ParamByName('stok').Value:=StrToInt(EditStok.Te
x t);
DM1.ADQRy1.Parameters.ParamByName('harga').Value:=StrToInt(EditHarga.
T ext);
DM1.ADQRy1.Parameters.ParamByName('user_id').Value:=1;
DM1.ADQRy1.ExecSQL;
MessageDlg('Data Sudah Tersimpan........', mtInformation,
[mbOk], 0);
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 9 | 10
Kosongkan;
EditKode.SetFocus;
end;
procedure TFormBarang2.Kosongkan ;
begin
EditKode.Text:='';
EditNamaBrg.Text:='';
EditSatuan.Text:='';
EditStok.Text:='';
EditHarga.Text:='';
end;
procedure TFormBarang2.FormCreate(Sender: TObject);
begin
Kosongkan;
// mengisi kombo dengan fungsi
Dm1.setCombo(ComboBox1,'jenis_barang','jenis','','jenis');
end;
procedure TFormBarang2.ComboBox1Click(Sender:
TObject); begin
Edit1.Text:=getKode(ComboBox1.Text);
end;
end.
unit UnitBarang.pas
Cara mengisi kombo dari tabel
//ComboBox1.Items.Clear;
dm1.ADOQJenis.Close;
dm1.ADOQJenis.SQL.Clear;
dm1.ADOQJenis.SQL.Add('SELECT * FROM jenis_barang');
dm1.ADOQJenis.Open;
while not dm1.ADOQJenis.Eof do
begin
ComboBox1.Items.Add(dm1.ADOQJenis.fieldByName('jenis').AsString);
dm1.ADOQJenis.Next;
end;
Pemrograman Client- Server (Badiyanto, S.Kom., M.Kom) 10 | 10