Contoh
Contoh
Aplikasi Gratis
Project
Kontak
Tentang
Search: typ Cari
Programming Learning
Free IT e-learning
Tutorial ini saya buat sebenarnya menanggapi banyaknya pertanyaan2 baik melalui ym ato email bahkan temen2
sendiri ada yg telepon menanyakan bagaimana caranya menyimpan data input dari aplikasi ke database dalam
1x klik maka akan menyimpan seluruh data yang tertampung sebelumnya, mungkin hal ini dapat diakali dengan
cara membuat suatu table temporary dan kemudian isi dari table temporary tersebut dimasukkan ke tabel
sebenarnya tapi saya bilang hal ini sangat merepotkan, sebelum memasuki topik utamanya, terlebih dahulu saya
akan menjelaskan tentang kegunaan penyimpanan data secara massal ini, mungkin bagi yang masih kuliah akan
mengalami hal ini ketika contohnya mengerjakan tugas membuat suatu aplikasi peminjaman dimana ketika satu
anggota dapat meminjam lebih dari 1 barang, nah disini akan dibahas cara untuk menyimpannya dalam 1 klik
saja. tentunya dengan menggunakan Delphi , sebelumnya diinformasikan bahwa tutorial ini
mengasumsikan temen-temen telah dapat mengkoneksikan antara aplikasi dengan database, database yang
akan dicontohkan yaitu adalah MySQL. apabila temen-temen belum dapat mengkoneksikannya maka alangkah
baiknya temen-temen membaca artikel sebelumnya
di https://programminglearning.wordpress.com/2009/05/02/delphi-koneksi-delphi-mysql-dengan-menggunakan-
zeos/ .
Sekarang kita akan memulai untuk proses pembuatannya, pertama kita siapkan terlebih dahulu rancangan
database dimana saya memberi nama databasenya “db_vcd”, saya tidak akan membuat aplikasi yang kompleks
melainkan hanya sesuai dengan topik yang dibahas, adapun rancangan database hanya melingkupi peminjaman
saja, untuk barang dan lainnya akan saya buat sebagai data statis. berikut ini adalah rancangannya tabelnya :
nah, selanjutnya kita membuat suatu form, disini untuk menyimpan data-data transaksi saya akan memakai
TStringGrid, berikut ini adalah rancangan formnya :
Berbeda dengan tutorial sebelumnya, sekarang saya menggunakan Delphi 7 untuk praktiknya hal ini
karena pertimbangan saya masih banyak programmer delphi yang menggunakan versi 7 untuk belajar. seperti
yang kita lihat rancangan form di atas dalam koneksi dengan MySQL menggunakan Zeos dan sekali lagi bagi
yang belum mengerti mengenai koneksi Aplikasi ke MySQL dengan menggunakan zeos silahkan membaca
tutorial saya yang sebelumnya, untuk rancangannya sendiri, file rancangannya adalah sbb :
2 Left = 303
Top = 177
3
BorderStyle = bsDialog
4
Caption = 'Penyimpanan Data Secara Massal'
5
ClientHeight = 403
6 ClientWidth = 629
7 Color = clBtnFace
8 Font.Charset = DEFAULT_CHARSET
9 Font.Color = clWindowText
Font.Height = -11
10
Font.Name = 'Tahoma'
11
Font.Style = []
12
13 OldCreateOrder = False
14 Position = poDesktopCenter
OnCreate = FormCreate
15
PixelsPerInch = 96
16
TextHeight = 13
17
object Label1: TLabel
18 Left = 16
19 Top = 40
20 Width = 93
21 Height = 13
Caption = 'Tanggal Transaksi :'
22
end
23
object Label2: TLabel
24
Left = 37
25 Top = 13
26 Width = 72
27 Height = 13
29 end
object Label3: TLabel
30
Left = 320
31
Top = 40
32
Width = 99
33 Height = 13
34 Caption = 'Tanggal Kembali :'
35 Font.Charset = DEFAULT_CHARSET
36 Font.Color = clWindowText
Font.Height = -11
37
Font.Name = 'Tahoma'
38
Font.Style = [fsBold]
39
ParentFont = False
40
end
41 object Label4: TLabel
42 Left = 323
43 Top = 13
44 Width = 96
45 Height = 13
46 Alignment = taRightJustify
Caption = 'Anggota Peminjam :'
47
end
48
object dpPinjam: TDateTimePicker
49
Left = 115
50 Top = 37
51 Width = 186
52 Height = 21
53 Date = 39948.274073159720000000
Time = 39948.274073159720000000
54
TabOrder = 0
55
OnChange = dpPinjamChange
56
end
57 object edNota: TEdit
58 Left = 115
59 Top = 10
60 Width = 186
61 Height = 21
TabOrder = 1
62
end
63
object dpKembali: TDateTimePicker
64
Left = 425
65 Top = 37
66 Width = 186
67 Height = 21
68 Date = 39948.274073159720000000
Time = 39948.274073159720000000
69
TabOrder = 2
70
end
71
object cbAnggota: TComboBox
72
Left = 425
73 Top = 10
74 Width = 186
75 Height = 21
76 Style = csDropDownList
77 ItemHeight = 13
78 TabOrder = 3
Items.Strings = (
79
'Tigor Mangatur Manurung'
80
'Heri Wersyadi'
81
'Hendra Purwanto'
82 'Susi Simelekete'
83 'Andi Purnama')
84 end
92 Left = 21
93 Top = 8
Width = 71
94
Height = 13
95
Caption = 'Nama Barang :'
96
end
97 object sgData: TStringGrid
98 Left = 21
99 Top = 40
107 105
108 420)
109 end
117 end
object btnTambah: TButton
118
Left = 487
119
Top = 3
120
Width = 90
121 Height = 25
122 Caption = 'Tambah'
123 TabOrder = 2
125 end
end
126
object btnSimpan: TButton
127
Left = 455
128
Top = 368
129 Width = 75
130 Height = 25
131 Caption = '&Simpan'
132 TabOrder = 5
OnClick = btnSimpanClick
133
end
134
object btnBatal: TButton
135
Left = 536
136
Top = 368
137 Width = 75
138 Height = 25
140 TabOrder = 6
141 OnClick = btnBatalClick
142 end
object zConn: TZConnection
143
Protocol = 'mysql'
144
HostName = 'localhost'
145
Port = 3308
146 Database = 'db_vcd'
147 User = 'root'
148 Connected = True
149 Left = 16
Top = 368
150
end
151
object qAct: TZQuery
152
Connection = zConn
153 Params = <>
154 Left = 48
155 Top = 368
156 end
157 end
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
Karena akan terlalu banyak yang diterangkan, maka saya langsung kepada kode pada unitnya, tetapi jangan
khawatir karena saya telah menyertakan komentar-komentar supaya lebih mudah memahami maksud dalam
1 unit uMain;
2
3 interface
4
uses
5
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
6
Dialogs, StdCtrls, Grids, ExtCtrls, ComCtrls, ZConnection, DB,
7
ZAbstractRODataset, ZAbstractDataset, ZDataset;
8
9 type
10 TfrmMain = class(TForm)
11 Label1: TLabel;
12 dpPinjam: TDateTimePicker;
Label2: TLabel;
13
edNota: TEdit;
14
Label3: TLabel;
15
dpKembali: TDateTimePicker;
16 Label4: TLabel;
17 cbAnggota: TComboBox;
18 Panel1: TPanel;
19 sgData: TStringGrid;
20 Label5: TLabel;
cbBarang: TComboBox;
21
btnTambah: TButton;
22
btnSimpan: TButton;
23
btnBatal: TButton;
24 zConn: TZConnection;
25 qAct: TZQuery;
33 { Private declarations }
public
34
{ Public declarations }
35
end;
36
CONST
37 lama_pinjam_hari = 7; //lama pinjam adalah 7 hari
38 var
39 frmMain: TfrmMain;
41
42 implementation
43
{$R *.dfm}
44
45
procedure TfrmMain.FormCreate(Sender: TObject);
46
var
47
ch: char;
48 begin
49 //variabel jumlah baris
50 iRow := 2;
58 begin
cbBarang.Items.Add('Barang - ' + ch);
59
end;
60
61
//set tanggal pinjam menjadi tanggal hari ini
62
dpPinjam.Date := NOW;
63
64 //set tanggal kembali secara default
65 dpKembali.Date := Now + lama_pinjam_hari;
66
67 //munculkan nota
68 edNota.Text := GenCode;
end;
69
70
function TfrmMain.GenCode: string;
71
CONST
72
zero = '0000';
73 var
74 strTemp: string;
75 begin
77
78 //liat no.nota terakhir dari tb_pinjam
RunSQL('SELECT idpinjam FROM tb_pinjam ORDER BY idpinjam DESC LIMIT 1');
79
80
//cek apakah udah ada data dalam tabel, kalo belum hasilkan nilai pertama seperti
81
//pada contoh
82
if qAct.Eof then
83 begin
84 result := 'N-0001';
85 exit; //stop sampe disini saja perintahnya,
86 end;
87
//jika memasuki baris ini, maka berarti telah ada data dalam tabel dan saatnya unt
88
89 //melakukan filtering
101 Application.Terminate;
end;
102
103
procedure TfrmMain.btnTambahClick(Sender: TObject);
104
begin
105
//validasi ketika pilihan kosong, maka abaikan perintah penambahan
106 if cbBarang.ItemIndex < 0 then
107 exit; //supaya tidak menjalankan perintah selanjutnya ketika tidak ada barang yg
108
109 //identifikasikan jumlah baris
111
112 //isikan data sesuai pilihan ke dalam grid
with sgData do
113
begin
114
Cells[0,RowCount - 1] := edNota.Text;
115
Cells[1,RowCount - 1] := cbBarang.Text;
116 end;
117
118 //bersihkan isi cbBarang
119 cbBarang.ItemIndex := -1; //karena style DropDownList, maka membersihkannya dengan
120
121 //tambah jumlah baris
122 Inc(iRow,1);
end;
123
124
procedure TfrmMain.dpPinjamChange(Sender: TObject);
125
begin
126
//isikan secara default tanggal pengembalian, lama pinjam sesuai dengan konstanta
127 dpKembali.Date := dpKembali.Date + lama_pinjam_hari;
128 end;
129
130 procedure TfrmMain.RunSQL(_SQL: string; isOpen: boolean);
131 begin
with qAct do
132
begin
133
Close;
134
SQL.Text := _SQL;
135 if isOpen then
136 Open
137 else
138 ExecSQL;
139 end;
end;
140
141
procedure TfrmMain.btnSimpanClick(Sender: TObject);
142
var
143
i: integer;
144 _SQL: string;
145 begin
146 try
148 for i:=1 to sgData.RowCount - 1 do //ini nih cara nyimpen massal yang sederhana, pak
149 begin //jadi disimpen per baris gitu, inget mulai baris 1 pada str
judul kolom!!!
150
_SQL := 'INSERT INTO tb_detpinjam(idpinjam,barang)VALUES(' + QuotedStr(sgData.
151 QuotedStr(sgData.Cells[1,i]) + ')';
RunSQL(_SQL,False); //eksekusi SQL
152
153 end;
154
155 //setelah selesai, dah simpen di tabel tb_pinjam
_SQL := 'INSERT INTO tb_pinjam(idpinjam,anggota,tglpinjam,tglkembali)VALUES(' +
156
QuotedStr(edNota.Text) + ',' + QuotedStr(cbAnggota.Text) + ',' + QuotedStr(FormatDa
157 dd',dpPinjam.Date)) +
158 ',' + QuotedStr(FormatDateTime('yyyy-mm-dd',dpKembali.Date)) + ')';
Untuk yang belum jelas atau berhasil silahkan download project jadi disini
Demikian tutorial ini semoga berguna bagi temen-temen semuanya…
Beri peringkat:
4 Votes
Terkait
Delphi data massal, data massal - delphi, database delphi, database mysql
← Tutorial Download via Rapidshare[Delphi-Tips] Semua Tentang TEdit →
bro ahli delphie ya, saya minta diajarkan donk, biasanya saya menggunakan VB tapi kelemahan vb adalah
aplikasi yg jadi tidak bisa dipake dikomputer yg ga ada vb nya.
klo saya nanya tolong dijawab ya, saya mau blajar delphi demi bangsa ini “berlebihan ya”
http://www.tawvic.co.cc
Balas
o erwin November 13, 2010 pukul 1:36 am
Balas
Balas
Waduw..
Boleh neh bagi-bagi ilmunya..
Balas
nice post
Balas
ini kayak yang mau tak buat mas, tp masih rada2 mumet dikit. tp mayan lah ada gambaran. kasusnya juga
temp tabel buat kasir.
Untuk menampilkan nama barang berdasarkan kode di comboBox yang terpilih???caranya gini di event
OnChange ComboBox kodenya :
with ZQuery1 do
begin
Close;
SQL.Text := ‘SELECT namabarang WHERE kd_barang = “‘ + ComboBox1.Text + ‘”‘;
Open;
EditName.Text := FieldByName(‘namabarang’).AsString;
end;
Balas
Balas
bro tolongin saya dong, lagi buat tgs akhir ni, klo buat aplikasi pake delphi7 dg database interbase gmanaya?
Balas
@Temmy: ok…sama-sama.
@ahmad: apanya yg gmn???
Balas
mas mo tanya nich cara klik check bok jika kita klik checknya maka uraian visible n itemnya di db grid enable
trus jika mo nambah item dengan satu kode gimana mas
Balas
@tanaka : mungkin dapat diterangkan lebih mendetail lagi…sapa tau byk yang mengalami hal ini supaya tak
buatin sklian tutorialnya…:)
Balas
Bang tigor… ane mo nanya klo db pake paradox max brp ribu record sech? bab aplikasi ane klo udah 2750
error klo di isi lagi… thx berat atas pencerahannya.
Balas
klo ttg batasan record blon tau y…tapi setauku si klo cman 2750 msih bisa exists tuh,coba cek settingan BDE.
Balas
Balas
Balas
Balas
hmm…tergantung, apabila anda ingin menyimpan value tsb ke dlam database maka silahkan mempelajari
koneksi ke database dulu and algoritmanya
kemudian dari Database tersebut akan dapat ditampilkan oleh applikasi (gunakan DBGrid).
tetapi apabila hanya ingin monitoring biasa saja,bisa menggunakan stringgrid aja, saya rasa lebih mudah.
Balas
nice post..
mnta izin mmpelajari tutorial nya neh bang tigor..
sy jg da prtanyaan ne bang.. kalo cara bikin file installer aplikasi database supaya langsung jalan di kompie lain
gmana ya?
sya pake delphi+dbexpress+mysql.. mohon bantuannya….
termaksih bnyak
Balas
apabila pke DBExpress sediakan terlebih dahulu DLL yang diperlukan and spertinya installer2 udah
menyediakan kq untuk settingan SQLnya, bahkan yang saya liat seperti InstallAware yang Enterprise bisa juga
mencantumkan Dumping SQL yang nantinya akan diproses oleh installaware tersebut.
Balas
Bang minta tutorial cara meng edit, tambah , delete dan simpan pada delphi 7 koneksi zeos. trima kasih
Balas
o Tigor Manurung Juli 30, 2009 pukul 6:15 pm
Ok…ntar deh klo ada sedikit waktu luang tak buatin tutorialnya
Balas
Mas, Bagaimana cara untuk import file db_vcd nya saya import kok selalu error??
Terima kasih
Balas
coba aja di liat sourcenya, rancangan struktur databasenya seperti apa, saya menggunakan HeidiSQL untuk
Balas
tetap mas saya sudah pakai HeidiSQL klo error selalu ada tulisan ini
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=’ANSI,NO_BACKSLASH_ESCAPES’ */ ;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */ ;
/* Input parameter count is less then expected */
Terima Kasih
Balas
kesalahan di atas dapat diatasi dengan cara menghapus bagian2 yang salah, asalkan script yang dihapus bukan
Balas
19. marla September 17, 2009 pukul 6:02 pm
begin
ADOC1.Execute;
ADOQ2.Connection.CommitTrans;
ShowMessage(‘Data Telah Tersimpan.’);
end;
Balas
Balas
mas udah tak coba kog ga bisa ya kek script diatas,, udah tak ganti juga,, nyimpennya datanya sama semua,,
ka’ izin minta petunjuknya…saya lagi ngerjain tugas delphi, tentang stok barang. nah kesulitan saya ketika
barang dari gudang di ambil/keluar 1 pcs, tp di databsenya ga berkurang..tolong pencerahanya..Tq
Balas
itu sepertinya diperlukan sebuah table stok,nah ntar keluar barang itu hanya dicatat pada table transaksi jadi
tidak mengurangi jumlah yang ada di table stok. klo mo lebih lanjut silahkan hubungi via ym aj y
Balas
tbbarang.fieldbyname(‘Stok’).value:=tbbarang.fieldbyname(‘stok’).asinteger – strtoint(Edit1.text);
Balas
o guh Maret 19, 2010 pukul 12:31 pm
if tbbaranf.locate(‘Stok’,Editkodebrg.text,[]) then
begin
tbbarang.edit;
tbbarangStok.value:=tbbarangStok.asinteger – strtoint(EditBanyakStok.text);
tbbtarang.post;
Balas
mas,tolong aku..aku mau nyimpan data password tapi ada waktu dan tanggal,bagaimana menyimpan data
berupa tanggal dan waktu ke database:
ini koding ku..
procedure TForm1.isipass;
begin
ADOPass1.Append;
case rgstatus.ItemIndex of
0:ADOPass1[‘status’]:= ‘A’;
1: ADOPass1[‘status’]:= ‘T’;
end;
ADOPass1[‘user_nama’]:= edit1.Text;
ADOPass1[‘password’]:=edit2.Text;
ADOPass1[‘tanggal’]:=edit3.text;
ADOPass1[‘jam’]:=edit4.text;
ADOPass1.post;
Balas
dengan contoh .
Balas
makasih mas tas artikelx tp saya blom ngerti soalx baru mau belajar delphi….
Balas
Balas
good post,
SQLProc.Execute;
Balas
o Tigor Manurung Desember 10, 2009 pukul 3:24 am
Balas
Balas
Balas
Balas
Balas
Balas
26. maulana Januari 5, 2011 pukul 2:52 pm
Balas
Maaf Mas,,
Saya mau tanya!!
Kalau cara memasukkan data yang terselect di dalam string grid ke dalam Edit Box Gimana ya!!
Event’a tapi Pas lagi DblClick baris yang terselect
Terima Kasih
Balas
Balas
Balas
mohon bantuannya…
Balas
Balas
klo mo simpan secara masal kan sintak-sqlnya tinggal begini “INSERT INTO tabel_master (select * from
tabel_temporary WHERE kondisinya_apa)”, syarat fields2nya sama, kl ga sama disamain dulu dg as
Balas
Balas
Balas
Balas
sy pake database m.access, ada table ‘tbharga’, field2x-nya status,harga,hari,jam. memakai ADOQueryHarga.
ada 3 combobox (status,hari,jam), edit(harga).
yg mo sy tanya, jika saya pilih:
status = pelajar
hari = senen
jam = 6
Balas
Bagus banget bahasan-bahansanya…. thanks jadi menambah inspirasi…. terutama bwt Tigor
Balas
Mas,mau tanya soal penyimpanan data gambar di database,coding simpannya gimana ya?(databasenya pakai
paradox).
Tlg jawabannya kirim ke email ini aja anitameylinda@ymail.com
Trima kasih sebelumnya.
Balas
gambarnya jgn disimpan,direktory tempat datanya aja yg disimpan sebagai char,lalu jika data gambar di klik
kasih printah load
Balas
mas mau nanya, kalau databasenya menggunakan ms.access bisa g dilakukan penyimpanan massal?
Balas
bisa
Balas
Balas
mas minta tolong ,gimana cara bikin satu nota untuk banyak barang ? aku bikin project tentang penyewaan
karaoke.makaaih mas
Balas
Balas
Bro mo tanya..
kalo buat aplikasi penyimpan waktu pake delphi gimana yach ??
Balas
bang,kalau menyimpan pdf ke delphi sama codingnya seperti itu?hanya mengganti ekstensi jpg ke pdf?
Balas
Balas
Tinggalkan Balasan
SS feed
Contact Me Online
Donasi ya…
Apabila blog ini dirasa bermanfaat bagi Anda, apabila berkenan silahkan donasi di :
Tutorial Terbaru
[Delphi / Lazarus] Membuat Aplikasi Realcount Pilpres 2014 “Sedot KPU”
[Delphi] Mendebug Project Aplikasi
[Lomba] Membuat Game Sederhana (Sesuai Contoh) – Level Pemula
[Delphi] Membuat Aplikasi berbasis IOS Dengan Delphi XE4
[Delphi] KlikBCA Mutasi Downloader (TKlikBCA)
Arsip
Arsip
Kategori
Admin
Kalender
Mei 2009
S S R K J S M
Jul »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Blogroll
Mas Fajar
My Master
Wahyu El-Rahma
Programming Reference
Delphi Mania Indonesia
Diskusi Web
Komunitas PHP Indonesia
Kontes Koding
Kumpulan Software
Stats Blog
126,371 hits
Online Stat
↑ Top
Ikuti