0% found this document useful (0 votes)
61 views

Membuat Database: Pemrograman Client-Server (Badiyanto, S.Kom., M.Kom)

This document discusses how to create a database and tables in MySQL using SQL statements. It also discusses creating a Delphi application to connect to the database and perform CRUD operations on tables using ADO components like TADOConnection, TADOQuery, and TADOTable. Functions are created in a data module to populate combo boxes from database tables and retrieve data. Forms are created to allow adding, editing, and viewing record data from tables.

Uploaded by

Eko Ardiansyah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

Membuat Database: Pemrograman Client-Server (Badiyanto, S.Kom., M.Kom)

This document discusses how to create a database and tables in MySQL using SQL statements. It also discusses creating a Delphi application to connect to the database and perform CRUD operations on tables using ADO components like TADOConnection, TADOQuery, and TADOTable. Functions are created in a data module to populate combo boxes from database tables and retrieve data. Forms are created to allow adding, editing, and viewing record data from tables.

Uploaded by

Eko Ardiansyah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

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

You might also like