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, [Link]., [Link]) 1 | 10
Data Modul
Tambahkan data Modul dengan New data Modul seperti pada gambar berikut:
Tambahkan beberapa fungsi seperti pada kode program berikut:
unit [Link]
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, [Link]., [Link]) 2 | 10
end;
var
DM1: TDM1;
implementation
{$R *.dfm}
// fungsi ngsisi combo
// Cara pakai [Link](ComboBox2,'jenis_barang','jenis','','jenis');
//************************************************************************
procedure [Link](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; [Link];
[Link];
[Link](sql);
try
[Link]
; except
showmessage('Gagal koneksi server Jalankan Ulang
....'); end;
(sender as
TcomboBox).[Link]; while not
[Link] do begin
(sender as
TcomboBox).[Link]([Link](Namafield).AsString)
;
[Link];
end;
end;
// fungsi baca data/rekaman
// x:=[Link](dm1.ADOConnect1,'jenis_barang',
// 'kd_jenis','jenis='’’K0012’’’)
//***********************************************************************
*
function
[Link](Kon:TADOConnection;Nam
aTabel,FieldHasil,
Kondisi:string):string;
var sql:string;
begin
sql:='SELECT '+FieldHasil+' FROM '+NamaTabel+' WHERE
'+ kondisi;
[Link]:=kon;
[Link];
[Link];
[Link](sql);
[Link];
if [Link]>0 then
begin
result:=
[Link](FieldHasil).AsString; end
Pemrograman Client- Server (Badiyanto, [Link]., [Link]) 3 | 10
else
begin
result :='';
end;
end;
begin
//[Link](TDM1, DM1);
end.
unit [Link]
Operasi ADOTable
Tambahkan form seperti pada gambar berikut:
Buatlah Rancangan Form seperti berikut:
Pemrograman Client- Server (Badiyanto, [Link]., [Link]) 4 | 10
Tambahkan seperti pada kode program berikut:
[Link]
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, [Link]., [Link]) 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 [Link](Sender:
TObject); begin
[Link]:=[Link]
; Kosongkan;
end;
//*****************************
// klik tombol simpam
//*************************
*
procedure [Link](Sender:
TObject); begin
[Link]:='barang';
[Link];
[Link];
[Link]('id').AsString:=[Link];
[Link]('nama_barang').AsString:=[Link];
[Link]('satuan').AsString:=[Link];
[Link]('harga').AsInteger:=StrToInt([Link])
;
[Link]('stok').AsInteger:=StrToInt([Link]);
[Link];
MessageDlg('Data Sudah disimpan........',
mtInformation, [mbOk], 0);
Kosongkan;
[Link];
[Link];
end;
// mengosongkan isian
Pemrograman Client- Server (Badiyanto, [Link]., [Link]) 6 | 10
procedure [Link];
begin
[Link]:='';
[Link]:='';
[Link]:='';
[Link]:='';
[Link]:='';
end;
procedure TFormBarang.DBGrid1CellClick(Column:
TColumn); begin
[Link]:=[Link]('id').AsString;
[Link]:=[Link]('nama_barang').AsSt
r ing;
end;
end.
[Link]
Menggunakan ADOQuery
Rancangan Form
Kode Program:
unit [Link]
Pemrograman Client- Server (Badiyanto, [Link]., [Link]) 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 [Link](jenis:string):String;
Pemrograman Client- Server (Badiyanto, [Link]., [Link]) 8 | 10
const p='''';
begin
[Link];
[Link];
[Link]('SELECT kd_jenis FROM jenis_barang');
[Link]('WHERE jenis='+p+jenis+p);
[Link];
if [Link]>0 then
begin
result:= [Link][0].AsString
; end
else
result:='';
end;
procedure [Link](Sender: TObject);
begin
if [Link]='' then
begin
MessageDlg('Kode tidak boleh kosong........', mtInformation,
[mbOk], 0);
[Link];
exit;
end;
[Link];
[Link];
[Link]('INSERT INTO barang
(id,kd_jenis,nama_barang,satuan,stok,harga,user_id)');
[Link]('VALUES(:id,:kd,:nama_barang,:satuan,:stok,:harga,:
user_id)');
[Link]('id').Value:=[Link];
[Link]('kd').Value:=getKode([Link]
) ;
[Link]('nama_barang').Value:=EditNamaBrg.T
e xt;
[Link]('satuan').Value:=[Link];
[Link]('stok').Value:=StrToInt([Link]
x t);
[Link]('harga').Value:=StrToInt(EditHarga.
T ext);
[Link]('user_id').Value:=1;
[Link];
MessageDlg('Data Sudah Tersimpan........', mtInformation,
[mbOk], 0);
Pemrograman Client- Server (Badiyanto, [Link]., [Link]) 9 | 10
Kosongkan;
[Link];
end;
procedure [Link] ;
begin
[Link]:='';
[Link]:='';
[Link]:='';
[Link]:='';
[Link]:='';
end;
procedure [Link](Sender: TObject);
begin
Kosongkan;
// mengisi kombo dengan fungsi
[Link](ComboBox1,'jenis_barang','jenis','','jenis');
end;
procedure TFormBarang2.ComboBox1Click(Sender:
TObject); begin
[Link]:=getKode([Link]);
end;
end.
unit [Link]
Cara mengisi kombo dari tabel
//[Link];
[Link];
[Link];
[Link]('SELECT * FROM jenis_barang');
[Link];
while not [Link] do
begin
[Link]([Link]('jenis').AsString);
[Link];
end;
Pemrograman Client- Server (Badiyanto, [Link]., [Link]) 10 | 10