PEMROGRAMAN CLIENT-SERVER with Borland Delphi 7 and M S!L
"#
andris_faesal
Modul Pemrograman Client-Server andris_faesal
1
$t%i& "'%i(ora %atara% )*+)
Modul Pemrograman Client-Server andris_faesal
2
Bab I Introduction with Database Client-Server
1 Pendahuluan Pemanfaatan Pemanfaatan !erang"at !erang"at luna" ber!eran ber!eran erat bagi !er"emba !er"embangan ngan di semua lini# lini# bai" bai" itu instit institusi usi !endidi !endidi"an "an## ling"u ling"ungan ngan bisnis bisnis## mau!un mau!un "alang "alangan an !ribadi !ribadi $entun%a $entun%a tida" ber!ulang ber!ulang dari !enggunaan !erang"at !erang"at luna" tersebut# sam!ai se&auh mana fungsin%a fungsin%a da!at diberda%a"a diberda%a"an n dan sebera!a besar besar bia%a %ang
dibutuh"an dibutuh"an
untu" untu" !enera! !enera!ann% ann%a a Pemili Pemilihan han !erang" !erang"at at luna" luna" %ang %ang se&ala se&alan n dengan dengan "ebutuh "ebutuhan an harus harus benar benar-b -bena enarr di!er di!erhat hati" i"an# an# "arena "arena itu itu !ere !erenc ncana anan n awal awal dimu dimula laii dengan dengan mengin mengindent dentifi ifi"as "asii "ebutuh "ebutuhan an di ling"u ling"ungan ngan %ang %ang ada ada Setela Setelah h !roses !roses identi identifi" fi"asi asi "ebutuhan didaftar"an# "ita da!at memilih !erang"at luna" se!erti a!a %ang a"an diguna"an $ulisan "ali ini# mem!er"enal"an salah satu bentu" client'server dengan mengambil mengambil contoh !enggunaan server sebagai media atau !erang"at !erang"at "eras %ang diguna"an untu" men%im!an data sedang"an client berfungsi sebagai media atau !erang"at !erang"at "eras %ang diguna"an diguna"an sebagai sebagai tem!at mengolah mengolah data atau !roses !roses %ang lain sebelum nantin%a disim!an disim!an "e database Pemamfaatan a!li"asi %ang berbasis client-server sangat ban%a" dan sering di&um!ai di se"itar "ehidu!an "ita dan tam!a "ita sadarai bahwa a!li"asi tersebut meru!a"an a!li"asi %ang mengado!si sistem client-server# client-server# se!erti ( -
Sistem Sistem Inform Informasi asi !engur !engurusa usan n )*S )*S di )am!us )am!us S$MI) S$MI) Bumigo Bumigora ra Matara Mataram m
-
+!li"a +!li"asi si Pemba% Pemba%ara aran n *e"eni *e"ening ng ,istri ,istri" " atau atau +ir +ir
-
+!li +!li"a "asi si Peme Pemesan sanan an $i"et i"et Pesa Pesawa watt $erbang rbang
-
+!li"a +!li"asi si Perban Perban""a ""an# n# dan masih masih ban%a" ban%a" %ang %ang lainn% lainn%a a
Contoh Contoh diat diatas as meru! meru!a"a a"an n a!li"a a!li"asi si %ang %ang mengg mengguna una"an "an
server server
sebaga sebagaii
tema!at !en%im!anann%a dan client sebagai tem!at in!ut data atau !roses lainn%a Selain contoh diatas# %ang termasu" a!li"asi %ang mengado!si s%stem client-server %aitu faceboo"# %ahoo# google# atau media %ang lain %ang mana "ita sebagai client da!at mengo!ersi"ann%a dari mana sa&a selama terhubung dengan media internet dan data %ang telah "ita in!ut"an tadi da!at disim!an di com!uter server# dan data %ang telah "ita sim!an tadi da!at "ita ambil "a!an!un dan dimana !un selama "ita terhubung dengan dengan server server tersebut
2 Definisi Dari !endahuluan diatas# a!li"asi %ang berbasis client- server itu sendiri didefinisi"an sebagai beri"ut ( a )om!utasi client-server melibat"an !embagian suatu a!li"asi "e dalam bebera!a tas" dan meleta""an setia! tas" !ada !latform %ang da!at menangani secara efisien b !emrosesan data bisa berada !ada client atau di-s!lit diantara client dan server c Server dihubung"an "e client melalui suatu åan Sehingga da!at disim!ul"an bahwa %ang dima"sud dengan a!li"asi berbasis client- server itu sendiri %aitu sebuah sistem dimana client dan server
terhubung satu sama lain untu" mela"u"an !roses data dalam sebuah åan. / dot0
ambar 1 Client-server
ambar 2 Client server dengan ob%e" terdistribusi
ambar 3eb based technolog%
Dari !en&elasan diatas da!at disim!ulan bahwa !erbedaan client dan server adalah sebagai beri"ut ( + Client
✓ +!li"asi ini di buat dengan bahasa !emrograman %ang mendu"ung "one"si "e server
✓ +!li"asi %ang di la%ani ✓ +!li"asi ini da!at ber&alan di sistem o!erasi %ang sama dengan server# da!at !ula berbeda
✓ Pemrosesan untu" !resentasi dileta""an !ada mesin user /"om!uter client0
B Server /server basis data0
✓ Software server menerima !ermintaan data dari software client dan mengirim"an hasiln%a "e client
✓ Sebuah a!li"asi mesin basis data disebut server &i"a ( o
Da!at men%im!an"an database
o
Da!at dia"ses oleh ban%a" !ema"ai
✓ Da!at dia"ses oleh ban%a" !ema"ai dalam wa"tu bersamaan /concurenc% acces0 Da!at
men&aga
sendiri
/dari
level
database0
tida"
ter&adin%a
!engubahan data oleh dua atau lebih user !ada baris %ang sama /loc"ing0
✓ Mendu"ung bahasa transa"sional
Contoh Contoh Server se!erti (
➢ 4racle 56 i ➢ Microsoft S7l Server 2666 ➢ M% S7, /+!ace ' 8am!!0 ➢ Interbase Server 96 ➢ PosgreS7, :2 ➢ Informi; ➢ Dll
Bab II )ebutuhan Software !ada "om!uter Client dan "om!uter Server
Sebelum beran&a" "e Pra"te"# mari "ita mengenal terlebih dahulu
"ebutuhan
a"an software %ang a"an "ita guna"an dalam !embuatan a!li"asi berbasis client-server diantaran%a ( + Database Database %ang a"an "ita guna"an untu" membangun sebuah a!li"asi berbasis client-server ini %aitu S7, /Structured 7uer% ,anguage0 adalah sebuah bahasa !emrograman %ang diguna"an untu" ber"omuni"asi dengan server# dimana S7, itu sendiri terbagi men&adi bagian %aitu (
✓ DM, /data mani!ulation language0 %aitu bahasa untu" memani!ulasi data# ✓ DD, /Data Definition ,anguage0 Bahasa un tu" mendefinisi"an stru"tur database ➢ C*<+$< ➢ +,$<* ➢ D*4P ✓ $ransact S7,# bagian ini adalah bahasa !emrograman %ang dileta"an di server database )onsen dari bahasa ini adalah untu" men&aga atomicit% sebuah transa"si !ertu"aran data Dalam database "ita a"an mengguna"an bebera!a istilah atau
4b&ect
didalam diantaran%a %aitu ( 1 $able
▪ $abel adalah container /wadah0 data secara fisi" dalam unit ter"ecil %ang terdiri dari "olom dan baris
▪ Di dalam tabel terda!at 1 buah "unci utama /bisa beru!a single field atau!un gabungan bebera!a field0 sifatn%a adalah uni=ue
▪ $erda!at !ula "unci tamu %aitu "unci %ang diambil dari tabel %ang lain ▪ Setia! >ield memili"i ti!e data dan "onstraint 2 $rigger Se"um!ulan !erintah %ang secara otomatis a"an di &alan"an &i"a sebuah !eristiwa 'event ter&adi
triger adalah event !engha!usan data# !engu!date-an data#
!enambahan
data /detele#u!date#insert0 ?iews ?iew meru!a"an tam!ialn virtual dari data %ang tersim!an di server ?iew di buat untu" "e!entingan !enam!ilan data# &i"a dibutuh"an tam!ilan data %ang tida" sama stru"turn%a dengan stru"tur tabel secara fisi" @ Store Procedure Pengertian !rocedure sama dengan !rocedure !ada umumn%a se"elom!o" !erintah %ang diguna"an untu" menger&a"an rutin tertentu dan tida" menghasil"an "eluaran secara e;!lisit Procedure dan function &uga sering &uga
di"enal
dengan
sub
rutin
Perbedaann%a
han%a
function
da!at
mengembali"an nilai'"eluaran secara e;!lisit Pada bebera!a !rodu" server database han%a tersedia !rocedure sa&a se!erti di Ms S7, Server !ada !rodu" lain se!erti !ostgreS7, han%a tersedia function sa&a Sebagian besar server !rogramming di guna"an untu" mendefinisi"an store !rocedure 9 >unction A ser 4leh "arena !engguna dari database %ang disim!an di database server di guna"an oleh ban%a" orang /shared0 %ang memegang "om!uter client ma"a user &uga harus didefinisi"an : rou! ser user dengan ha" %ang sama atau ham!ir sama a"an
di"lom!o"an
dalam satu gru!'"elom!o" Permission ' *ight a" dari user terhada! ob%e" ob%e" %ang ada se!erti tabel#store !rocedure dan view a" %ang da!at diberi"an adalah ha" untu" select#
ha"
untu"
insert# ha" untu" u!date# ha" untu" delete# ha" untu" e;ecute ser %ang berbeda da!at diberi ha" %ang berbeda beda tergantung des"ri!si "eamanan %ang dibuat 5 $ransaction Pengertian transa"si sangat !enting dalam !embuatan !rogram !engolahan data# "arena data %ang tersim!an harus diusaha"an agar teta! logic Sebuah transa"si adalah se"um!ulan !erintah %ang di&alan"an dan semua !erintah itu harus di&alan"an dengan su"ses semua# ma"a transa"si disebut
menca!ai
commit +tau semua !erintah tersebut gagal semua atau disebut transa"si disbut menca!ai rollbac" Perintah %ang berhubungan dengan transa"si adalah(
▪ Begin transaction ▪ Commit $ransaction ▪ *ollbac" $ransaction Setia! transa"si %ang didefinisi"an harus bera"hir !ada !erintah commit transaction berarti transa"si berhasil dila"sana"an dan rollbac" transaction berarti transa"si gagal dila"sana"an
B 4DBC 4!en Database Connection atau dising"at 4DBC /Data Sources0 adalah sebuah fasilitas !enghubung antara database dengan !rogram a!li"asi %ang lain Sehingga "ebutuhan terhada! 4DBC ini sangatlah !enting untu" men&alan"an sebuah a!li"asi berbasis client-server ini# ntu" ;am!! membutuh"an 4DBC minimum versi 919 /M% S7, 4DBC
919
Driver0 %ang harus diinstal terlebih dahulu di "om!uter client %ang nantin%a a"an memanggil database "e server# bagi %ang belum menginstal a!li"asi ini da!at mendownload a!li"asi ini secara bebas di internet "arena sifatn%a %ang free &uga
ambar @ a!li"asi odbc 919 for windows 2 bit
Setelah a!li"asi tersebut diinstal !ada "om!uter client# ma"a untu" menga"sesn%a atau mengguna"an a!li"asi ini %aitu de!at melalui Control !anel EF +dministrative $ools EF lalu !ilih Data Sources /4DBC0 +tau da!at melalu fasilitas !encarian di windows dengan mene"an Ctrl G * !ada "e%bord lalu "eti" 4DBC+D2 lalu te"an
ambar 9 >orm 4DBC
C Borland Del!hi Del!hi adalah sebuah bahasa !emrograman visual di ling"ungan windows / under windows0 %ang mengguna"an bahasa !ascal sebagai Com!iler )eberadaan bahasa !emrograman Del!hi tida" bisa di!isah"an dari bahasa $urbo !ascal %ang diluncur"an !ada tahun 15 oleh Borland International Incor!oration $urbo !ascal memang dirancang untu" di&alan"an !ada o!erasi D4S /Dis" 4!erating S%stem0 %ang meru!a"an sistem o!erasi %ang ban%a" diguna"an !ada saat ini
ambar A >orm 4DBC
+lasan menga!a mengguna"an a!li"asi Borland del!hi
:6
"arena
meru!a"an !ilihan bagi sebagian "alangan !rogrammer untu" membuat a!li"asi al ini disebab"an "elebihan %ang ada !ada borland del!hi :6 beri"ut ini bebera!a "elebihan borland del!hi :6 antara lain ( 1 Berbasis 4b&e" 4rientid !rogramming# se!erti bagian %ang ada !ada !rogram di!andang sebagai suatu ob&e" %ang mem!un%ai sifat-sifat %ang da!at diubah dan diatur # sehingga "ita da!at membuat tam!ilan sebuah !rogram dengan desain "ita sendiri tan!a harus membuat codding %ang !an&ang 2 Suatu file <8<# setelah anda merancang !rogram !ada ID< Del!hi a"an meng"om!li"asin%a !ada sebuah file e;ecutable tunggal Program %ang anda buat da!at langsung didistribusi"an dan di&alan"an !ada "om!uter lain tan!a !erlu men%erta"an file lain# "ecuali file %ang beretensi He;e atau +!!li"asi tersebut membutuh"an file lain se!erti database# "one"si atau file !endu"ung lainn%a# ini meru!a"an "elebihan %ang sangat berarti Borland del!hi :6 hadir bersama borland )%li; %ang berbasis ,inu;# bila ingin berganti flattform dari 3indows "e ,inu; ma"a a!li"asi %ang dibuat di Del!hi da!at di&alan"an di )%li; %ang di"arena"an "edua !rodu" tersebut meru!a"an !rodu" Borland /sumber ( 3ahana )om!uter 2662 dan htt!(''andrisfaesalblogs!otcom'2665'62'mengenal-borland-del!hi-:6html0
Modul Pemrograman Client-Server andris_faesal
16
Bab III Pembuatan Database dan Mana&eman ser
1 Definisi Database Database adalah "um!ulan fa"ta-fa"ta sebagai re!resentasi dari dunia n%ata %ang berhubungan dan mem!un%ai arti tertentu Database managemen s%stem adalah sebuah !rogram "om!uter %ang memung"in"an !engguna untu" membuat dan memelihara database sehingga !engguna
da!at
memasu""an#
mengubah#
mengha!us#
memani!ulasi#
dan
mem!eroleh "embali data tersebut dengan mudah Sebagai contoh DBMS %ang sering "ita guna"an adalah M% S7,# Ms +ccess# Ms S7, Server# dan lain-lain Suatu database terdiri bebera!a ob&ect# diantaran%a tabel# view# domain# stored !rocedure# dan triger 4b%e"-ob%e" database men%im!an semua informasi mengenai stru"tur database dan data Istilah-istilah dalam Database diantaran%a ( a
Dire!resentasi"an sebagai suatu field /"olom0 "um!ulan dari atribut-atribut %ang saling berhubungan adalah record /baris0 Suatu DBMS /Database Management S%stem0 meru!a"an
!erantara
!ema"ai
dengan database
dalam media
!en%im!an /storage0 contoh DBMS ( Interbase# MS S7,
Server#
M%S7,#
4racle# +ccess# Parado; dan PostreS7, Sebagian besar DBMS diguna"an untu" mengolah database relational sehingga sering disebut sebagai *DBMS e $abel Database Database relational men%im!an semua datan%a dalam tabel-tabel $abel adalah sebuah stru"tur data %ang terdiri dari "um!ulan baris dan "olom
ambar : $am!ilan database M S7,
2 Pembuatan Database Dalam !ra"te" "ita "ali ini# "ita a"an mengguna"an a!li"asi 8am!! sebagai tool database +lasan menggun"an ;am!! sebagai database di"arena"an bersi!at free# selain itu a!li"asi ini da!at di&alan"an !ada server %ang mengguna"an multi !latform atau sistem o!erasi %ang berbeda dengan sistem o!erasi client se!erti linu; atau se&enisn%a
)elebihan dari ;am!! sendiri %ang telah su!ort dengan a!ace didalamn%a# m% s=l sebagai databasen%a Selain itu terda!at >ileJila %ang biasa diguna"an untu" men%im!an file "e dalam server
4) Sebelum "ita memulai !ra"te" "ita "ali ini# anda terlebih dahulu mem!ersia!"an tools %ang a"an "ita guna"an "ali ini %aitu ( ;am!!-win2 versi 1: atau diatasn%a# /sa%a saran"an mengguna"an versi 1: atau versi 1:@ %ang lebih stabil0 Setelah a!li"asi ;am!! terinstal di "om!uter anda# ma"a "ita sia! untu" memulai !embuatan database# 4)# beri"ut lang"ah-lang"ahn%a ( a Kalan"an a!li"asi "ontrol !anel dari ;am!! /;am!! control !anel0
Gambar 8. Shortcut xampp control panel
ambar 5 a!li"asi ;am!! control !anel "eti"a baru di&alan"an
b $e"an tombol start !ada bagian +!ace dan M% S7, Ki"a mengingin"an tools ini ber&alan secara automatis "eti"a "om!uter
n%ala#
ma"a "ita bisa mencentang ce"list a!ace dan M% S7, %ang berada di sam!ing "iri
ambar 16 a!li"asi ;am!! control !anel
c Bu"a a!li"asi broser Setelah a!lia"asi ;am!! "ontrol !anel di&alan"an# lalu men&alan"an tools a!ace dan M% S=l berhasil# ma"a a!li"asi ;am!! tersebut bisa ditutu! dan selan&utn%a bu"a a!li"asi broser %ang ada di "om!uter anda /sa%a saran"an mengguna"an a!li"asi MoJilla >irefo;0 Pada bagian alamat *, tulis"an alamat server %ang "ita ingin guna"an# )arena %ang "ita guna"an !ada !ra"te" "ali ini %aitu satu "om!uter
sebagai
server se"aligus sebagai client# ma"a alamat ,* %ang "ita guna"an %aitu ( htt!(''localhost'!h!m%admin atau htt!(''12:661'!h!m%admin# atau da!at &uga mengguna"an
nama
"om!uter
htt!(''nama"om!uter'!h!m%admin
itu
sendiri
misaln%a
ambar 11 a!li"asi MoJilla >irefo; "eti"a membu"a database server
d Buat Database ntu" membuat database# mula-mula "eti" nama database %ang "ita ingin buat di "olom create new database /versi
ambar 12 membuat database baru
e Buat $able Setelah database berhasil dibuat ma"a !roses selan&utn%a %ang "ita "er&a"ana %aitu membuat table# dimana $abel adalah sebuah stru"tur data %ang terdiri dari "um!ulan baris dan "olom# %ang berfungsi untu" men%im!an data dalam bentu" record ntu" membuat table dengan cara mengisi nama table %ang "ita ingin buat di "olom name dan ¨ah fields %eng ada !ada table tersebut !ada "olom number of fields se!eti gambar dibawah ini
ambar 1 membuat table baru Setelah table berhasil dibuat ma"a a"an muncul tam!ilan baru %ang meminta anda mengisi nama field# u"uran field# t%!e field se!erti %ang tam!a" !ada gambar
dibawah
ambar 1@ mengisi identitas fields
Setelah semua terisi lalu lan&ut"an untu" mene"an tombol save ,an&ut"an !embuatan tabel ini hingga semua table %ang dibutuh"an selesai dibuat# beri"ut adalah table-table %ang "ita buat ( 1
$able Barang /barang0
Lo
Lama >ields
$%!e data fields
"uran >ields
)et "e%
1
)d_barang
?archar
16
2
Lm_barang
?archar
26
Satuan
?archar
19
@
arga_beli
Decimal
9
arga_&ual
Decimal
2
$able Barang Masu" /barang_masu"0
Lo
Lama >ields
$%!e data fields
"uran >ields
)et
16
"e%
1
)d_masu"
?archar
2
$gl_masu"
Date
Id_distributor
@
Kumlah
?archar
9
Int
$able Distributor /distributor0
Lo
Lama >ields
$%!e data fields
"uran >ields
)et "e%
1
Id_distributor
?archar
9
2
Lm_distributor
?archar
26
+lamat
?archar
@6
@
Lo_$el!
?archar
1
$%!e data fields
"uran >ields 16
@
$able $ransa"si /transa"si0
Lo
Lama >ields
1
)d_transa"si
?archar
2
$gl_transa"si
Date
)d_barang
?archar
16
@
Lm_Barang
?archar
26
9
Satuan
?archar
19
A
arga_beli
Decimal
:
Kumlah
$otal
Int Decimal
)et
Setelah semua table dibuat ma"a a"an tam!a" semua table tersebut se!ert gambar dibawah ini (
ambar 19 $am!ilan table %ang telah dibuat
f
Buat *elasi antar database
*elasi meru!a"an hubungan antara table satu dengan table %ang lain dimana antara table tersebut harus memili"i field %ang sama Men%ata"an relasi antar table bahwa hubungan foreign "e% dengan !rimar% "e%# Sebuah foreign "e% tida" da!at dimasu""an "edalam sebuah table bila !rimar% "e% tida" atau belum ada
Cara membuat relasi didalam database yaitu (masih jendela Mozilla ire!ox" #li# menu $esi%ner di dalam database& dan buat relasi seperti diba'ah ini
ambar 1A $am!ilan table %ang telah dibuat
Pembuatan a" +"ses Pembuatan a" a"ses disini dima"sud untu" memberi"an "eamanan ' securit% !ada database %ang "ita buat sehingga da!at terlindungi dari orang-orang %ang bu"an ha" a"sesn%a disini Pembuatan ha" a"ses dila"u"an dengan cara membuat user name dan !assword baru di dalam server database# dimana user tersebut han%a da!at menga"ses satu database atau lebih tergantung ha" a"ses %ang dimili"i user %ang dibuat tersebut ntu" !embuatan ha" a"ses didalam server da!at dila"u"an dengan 2 cara# daat dila"u"an melalui global setting %aitu !embuatan user dengan cara langsung melalui server database atau local setting %aitu membuat user melalui database tersebut Beri"ut lang"ah-lang"ah !embuatan ha" a"ses ( a lobal Setting 1 Bu"a menu home database atau "eti" alamat htt!(''localhost'!h!m%admin 2 !ada !age sebelah "anan# "li" menu Privileges I a" a"ses# dan a"an muncul se!erti gambar dibawah ini (
ambar 1: $am!ilan Pengguna database
Setelah gambar diatas muncul# "li" +dd a Lew ser I $ambah"an Pengguna Baru !ada "iri bawah# sehingga muncul gambar dibawah ini (
ambar 1 $am!ilan tambah Pengguna baru
Pada gambar tersebut terda!at 9 "olom in!utan# dimana %ang diin!ut"an disini %aitu( ➢
ser name ( nama !engguna databasen%a
➢
ost ( Lama "om!uter client %ang "ita guna"an# ost disini terbagi men&adi @ bagian# %aitu ( ▪▪▪
sa&a
+n%
ost
(
%aitu
si
user da!at
dari
"om!uter mana
untu" menga"ses database server "arena ha" n%a disini
bebas# sehingga semua client d!at menga"ses database server ini ▪▪▪
,ocal
database
(
%aitu
!engguna
%ang
bisa
menga"ses
server
ini %aitu dirin%a sendiri /"om!uter sebagai server
se"aligus sebagai client0# dan user lain dari client lain ' luar tida" da!at meng"ases la%anan server database ini ▪▪▪
se ost $able ( %aitu !engguna %ang telah didaftar"an
terlebih dahulu dalam database ▪▪▪
se $e;t >ield ( %aitu !engguna %ang telah didaftar"an terlebih
dahulu user dan !asswordn%a "e dalam database %ang telah
disia!"an ➢
Password ( !assword dari user %ang diguna"an
➢
*et%!e ( salinan dari !assword %ang "ita isi sebelumn%a %ang bertu&uan untu" membuat validasi !assword
➢
enerate Pasword ( meru!a"an sebuah fasilitas !embuatan !assword secara automatis# ta!i sa%a saran"an agar tida" mengguna"an ini
@ Isi "olom-"olom tersebut sesuai "ebutuhan %ang diingin"an# sebagia contoh "ita a"an membuat user bernama admin dan da!at dia"ses dari client mana sa&a %aitu dengan mengguna"an tanda !ersen /N0 !ada "olom host %ang berasti bebas# sedang"an !assword dan *e-$%!e isi dengan ang"a 12@9 Modul Pemrograman Client-Server andris_faesal
26
ambar 15 $am!ilan !engisian Pengguna baru
9 Setelah mengisi "olom diatas# dilan&ut"an dengan mencentang semua ce"lis !ada tab global setting %ang bertu&uan untu" men%etu&ui semua a"ses %ang di ingin"an atau bisa mencentang sesuai butuh"an usern%a tersebut
ambar 26 $am!ilan !engisian Pengguna baru
A Setelah mencetang semua !rivasi ' ha" a"ses sesuai "ebutuhan# lalu "li" o ntu" membuat user %ang "ita isi tersebut b ,ocal Setting ntu" setting lo"al ham!ir sama lang"ahn%a dengan setting global# han%a disini si user tersebut han%a diberi"an ha" a"ses untu" database tersebut dan tida" da!at menga"ses database %ang lain atau membuat database %ang baru# beri"ut lang"ah-lang"ahn%a ( 1 Bu"a menu home database atau "eti" alamat htt!(''localhost'!h!m%admin dan !ilih databasa %ang a"an dia"ses oleh user tersebut
2 !ada !age sebelah "anan# "li" menu Privileges I a" a"ses# dan a"an muncul se!erti gambar dibawah ini (
ambar 21 $am!ilan Pengguna database
Setelah gambar diatas muncul# "li" +dd a Lew ser I $ambah"an Pengguna Baru !ada "iri bawah# sehingga muncul gambar dibawah ini (
Gambar )). *ampilan tambah +en%%una baru Pada gambar tersebut terda!at 9 "olom in!utan# dimana %ang diin!ut"an disini %aitu(
➢ ser name ( nama !engguna databasen%a ➢ ost ( Lama "om!uter client %ang "ita guna"an# ost disini terbagi men&adi @ bagian# %aitu (
▪ +n% ost ( %aitu si user da!at dari "om!uter mana sa&a untu" menga"ses database server "arena ha" n%a disini bebas# sehingga semua client d!at menga"ses database server ini
▪ ,ocal ( %aitu !engguna %ang bisa menga"ses server database ini %aitu dirin%a sendiri /"om!uter sebagai server se"aligus sebagai client0# dan user lain dari client lain ' luar tida" da!at meng"ases la%anan server database ini
▪ se ost $able ( %aitu !engguna %ang telah didaftar"an
terlebih
dahulu dalam database
▪ se $e;t >ield ( %aitu !engguna %ang telah didaftar"an terlebih dahulu user dan !asswordn%a "e dalam database %ang telah disia!"an
➢ Password ( !assword dari user %ang diguna"an ➢ *et%!e ( salinan dari !assword %ang "ita isi sebelumn%a %ang bertu&uan untu" membuat validasi !assword
➢ enerate Pasword ( meru!a"an sebuah fasilitas !embuatan !assword secara automatis# ta!i sa%a saran"an agar tida" mengguna"an ini @ Isi "olom-"olom tersebut sesuai "ebutuhan %ang diingin"an# sebagia contoh "ita a"an membuat user bernama admin dan da!at dia"ses dari client mana sa&a %aitu dengan mengguna"an tanda !ersen /N0 !ada "olom host %ang berasti bebas# sedang"an !assword dan *e-$%!e isi dengan ang"a 12@9
Gambar ),. *ampilan pen%isian +en%%una baru
9 Setelah mengisi "olom diatas# lalu turun "e bagian bawah dan te"an tombol o tan!a mencentang a!a!un di halaman ini A Setelah mene"an tombol o# ma"a a"an muncul halaman
baru
%ang
berisi"an database to"o tersebut# disana semua ce"lis dicentang atau sesuai "ebutuhan ha" a"ses %ang diingin"an ses!erti gambar dibawah ini
ambar 2@ $am!ilan !engisian ha" a"ses Pengguna baru
: Setelah mencetang semua !rivasi ' ha" a"ses sesuai "ebutuhan# lalu "li" o ntu" membuat user %ang "ita isi tersebut# dan Selesai
Bab I? )one"si Clinet-Sever dan 4DBC
Berdasar"an Pen&elasan 4DBC di Bab II sebelumn%a# di&elas"an a!a itu 4DBC dan cara PengInstalasiann%a# Beri"ut adalah lang"ah-lang"ah cara !embuatan 4DBC O a ntu" membuat 4DBC baru# "li" tombol +dd# ma"a a"an "eluar form se!erti dibawah ini (
ambar 29 >orm Lew 4DBC
b Cari dan !ilih setu! data source bernama M%S7, 4DBC 91 Driver # &i"a Data Source tersebut tida" ada# ma"a instal terlebih dahulu a!li"asi 4DBC sesuai !en&elasan diatas Ki"a sudah# ma"a lang"ah selan&utn%a mene"an tombol >inish hingga >orm 4DBC Configuration muncul
Gambar )-. orm $/C Con0%uration
c Setelah gambar diatas muncul# dilan&ut"an untu" mengisi "olom in!utan %ang disedia"an# dimana !en&elasanan%a dari "olom tersebut %aitu ( ➢➢➢
Data Source Lame ( Meru!a"an nama Data Source %ang
nantin%a a"an "ita !anggil mengguna"an a!li"asi !emrograman !ada Bab selan&utn%a ➢➢➢
Descri!tion ( meru!a"an "eterangan tambahan %ang tida" wa&ib
untu" diisi ➢➢➢
Server
(
Lama
server
atau
alamat
server tem!at
database berada# !emanggilan server ini da!at dila"u"an dengan 2 cara %aitu nama "om!uter server atau alamat IP "om!uter berada tergantung &enis åan %ang ada disana ➢➢➢
ser ( meru!a"an nama !engguna %ang telah "ita daftar"an
!ada server database se!erti materi sebelumn%a /!embuatan a" a"ses0 ➢➢➢
Password ( meru!a"an !assword !engguna %ang telah "ita
daftar"an !ada server database se!erti materi sebelumn%a /!embuatan a" a"ses0 ➢➢➢
guna"an
Database ( Meru!a"an nama database %anng a"an "ita !anggil '
d Setalah memahami !en&elasan diatas# selan&ut"an%a "ita a"an mengisi "olom tersebut sesuai "ebutuhan se!erti contoh in!utan beri"ut( ➢➢➢
Data Source Lame E db_to"o
➢➢➢
Descri!tion E di"osong"an
➢➢➢
Server ( loc al host atau 12:661
➢➢➢
ser ( admin
➢➢➢
Password ( 12@9
➢➢➢
Database ( to"o
ambar 2: >orm 4DBC Configuration %ang telah diisi
e Setelah mengisi semua "olom se!erti contoh diatas# selan&utn%a
mencoba
a!a"ah "one"si berhasil atau tida" dengan cara mene"an tombol $est# &i"a "one"si berhasil ma"a a"an meuncul !esan su"ses# dan &i"a tida" coba !eri"sa "embali "one"si åan anda atau ha" a"ses oleh user %ang nada buat sebelumn%a hingga !roses berhasil
ambar 2 Pesan )onfigurasi 4DBC %ang telah berhasil ter"one"si
f
Setelah berhasil ter"one"si# lang"ah selan&utn%a menutu! >orm
)onfigurasi
4DBC tersebut dengan mene"an tombol 4) hingga nama 4DBC %ang "ita buat tadi muncul di dalam daftar 4DBC
ambar 25 Daftar Lama 4DBC %ang telah di buat
g Setelah berhasil membuat 4DBC ma"a !roses "one"si telah berhasil disini# tinggal membuat a!li"asin%a mengguna"an Program a!li"asi Del!hi !ada Bab selan&utn%a
sam!ai Borland
Bab ? Im!lementasi with Borland Del!hi 1 Pembuatan Datamodule Datamodule meru!a"an sebuah form %ang terda!at di dalam Del!hi %ang merfungsi untu" menem!at"an "om!onen-"om!onen database
atau
"om!onen
%ang lain %ang a"an diguna"an bersama oleh form-form dalam satu !ro&ect del!hi Cara !embuatan Datamodule %aitu dengan membuat !ro&ect del!hi terlebih dahulu melalui !ilih Lew EF DataModule# beri"ut lang"ah-lang"ahn%a aMembu#a 1 membuat project $elphi /aru
Gambar ,2. Membu#a +roject /aru $elphi.
Gambar ,3. +roject /aru $elphi.
Membuat $atamodule. Cara membuatnya yaitu den%an Menu ile 45 6e' 45 $ata Module. Meleta##an #omponen database& antara lain satu buah 7$Connection& Buah +747uer%# dan 9 buah DataSource
ambar 2 >orm Datamodule
Modul Pemrograman Client-Server andris_faesal
6
d Setelah meleta""an semua "om!onen di dalam >orm DataModule se!erti ambar diatas# la"u"an !engaturan se!erti dibawah ini (
Modul Pemrograman Client-Server andris_faesal
1
1 +D4 Connection
➢ anti nama +D4Connection 1 E hub ➢ Doble "li" lalu !anggil Databasen%a ➢ bah ,oginProm!t men&adi >alse ➢ bah Connection men&adi $rue 2 +D4 7uer% 1
➢ Lame
( 7Barang
➢ Connection
( hub
➢ S7,
( Select H >rom Barang 4rder b% )d_Barang
➢ +ctive
( $rue
+D4 7uer% 2
➢ Lame
( 7Distributor
➢ Connection
( hub
➢ S7,
( Select H >rom distributor 4rder b% id_distributor
➢ +ctive
( $rue
@ +D4 7uer%
➢ Lame
( 7Masu"
➢ Connection
( hub
➢ S7,
( Select H >rom Masu" 4rder b% )d_Masu"
➢ +ctive
( $rue
9 +D4 7uer% @
➢ Lame
( 7$ransa"si
➢ Connection
( hub
➢ S7,
( Select H >rom transa"si 4rder b% )d_$ransa"si Desc
➢ +ctive
( $rue
A +D4 7uer% 9
➢ Lame
( 7)ode
➢ Connection
( hub
➢ S7,
( Select H >rom $ransa"si 4rder b% )d_$ransa"si Desc
➢ +ctive
( $rue
: +D4 7uer% A
➢ Lame
( 7Stoc"
➢ Connection
( hub
➢ S7,
( Select 7SisaH#
Barangarga_Kual#
BarangLm_Barang#
Barangarga_Beli
from
7Sisa#
BarangSatuan# Barang
where
7Sisa)d_BarangEBarang)d_Barang order b% 7Sisa)d_Barang
➢ +ctive
( $rue
+D4 7uer% :
➢ Lame
( 7Ma%a
➢ Connection
( hub
➢ S7,
( Select H >rom transa"si 4rder b% )d_$ransa"si Desc
➢ +ctive
( $rue
5 DataSource 1
➢ Lame
( DBarang
➢ Dataset
( 7Barang
16 DataSource 2
➢ Lame
( DDistributor
➢ Dataset
( 7Distributor
11 DataSource
➢ Lame
( DMasu"
➢ Dataset
( 7Masu"
12 DataSource @
➢ Lame
( D$ransa"si
➢ Dataset
( 7$ransa"si
1 DataSource 9
➢ Lame
( DMa%a
➢ Dataset
( 7Ma%a
e Setelah Semua "om!onen di dalam >orm Datamodule tersebut di atus sesuai urutan dan lang"ah-lang"ah diatas# sehingga tam!a" se!erti gambar dibawah ini dan semua ter"one"si dengan bai"# ma"a "ita telah berhasil membuat >orm Datamodule !ada a!li"asi %ang "ita bangun# dan lang"ah selan&utn%a %aitu !embuatan >orm In!utan
ambar >orm Datamodule %ang telah di isi
2 Pembuatan >orm ntu" Pembuatan >orm di Del!hi %aitu dengan Menu >ile EF Lew EF >orm# ma"a a"an muncul sebuah >orm "osong %ang berfungsi untu" menem!at"an semua "om!onen-"om!onen visual %ang a"an diguna"an untu" a!li"asi %ang "ita bangun
ambar @ >orm )osong
Dari >orm $ersebut# desainlah 9 >orm dengan tam!ilan form !ada ga mbar Q gambar beri"ut ini (
a >orm Menu tama
Gambar ,9. orm Menu :tama.
b >orm Data Barang
ambar A >orm Data Barang
c >orm Data Distributor
Gambar ,. orm $ata $istributor.
d orm $ata /aran% Masu#
ambar >orm Data Barang Masu"
e >orm$ransa"si
ambar 5 >orm $ransa"si
Setelah anda membuat semua form tersebut# lang"ah selan&utn%a "ita a"an menulis"an !erintah-!erintah atau source code !ada masing-masing form tersebut Pada bab selan&utn%a# "ita a"an mem!ela&ari &enis-&enis !erintah %ang berfungsi untu" men%im!an data record antara lain se!erti ( 1 Save record with Pro!erties 2 Save record with Inde; Save record with >ield b% Lame# dan @ Save record with $rigger
Bab ?I Save record with Pro!erties
Pen%im!anan *ecord mengguna"an fasilitas
Pro!erties
meru!a"an
metode
atau cara !en%im!anan record %ang !aling sederhana dan membutuh"an !erintah %ang tida" !an&ang Sebagai bahan !ra"te" "ita "ali ini# "ita mengguna"an >orm Data Barang /gambar A0# di dalam >orm tersebut fasilitas in!ut datan%a mengguna"an "om!onen DB
orm Datamodule /nama Datamodulen%a DataModule2.0#
ambar @6 Pengaturan Datasource dan Data >ield
Beri"ut leng"a!n%a ( 1 DB
( DataModule2DBarang
Datafield
( )d_Barang
2 DB
( DataModule2DBarang
Datafield
( Lm_Barang
DB
( DataModule2DBarang
Datafield
( Satuan
@ DB
( DataModule2DBarang
Datafield
( arga_Beli
9 DB
( DataModule2DBarang
Datafield
( arga_Kual
Setelah semua diatur sesuai !etun&u" diatas# selan&utn%a "ita mengisi !erintah Q !erintah ' sourcecode %ang dibutuh"an# %ang !erlu di ingat !erintah-!erintah %ang "ita guna"an untu" menga"ses record adalah sebagai beri"ut (
a. Menambah *ecord baru ( Datamodule2.QBarang.Append; b. Men%im!an *ecord baru ( Datamodule2.QBarang.Post; c. Membatal"an *ecord baru ( Datamodule2.QBarang.cancel; d. Mengha!us *ecord ( Datamodule2.QBarang.Delete; e. Merubah *ecord ( Datamodule2.QBarang.Edit; Dari semua &enis !erintah diatas# beri"ut adalah !erintah "eseluruhan dari form data barang diatas procedure */aran%.ormSho'(Sender *bject"; be%in 11 #eti#a !orm a#ti! ma#a perintah di e#se#usi .Clear; =/aran%.S=>.7dd(?Select @ rom /aran% rder by AdB/aran%?"; =/aran%.7ctie4*rue; Dnd; $/Ddit3.Dnabled4alse; $/Ddit).Dnabled4alse;
$/Ddit,.Dnabled4alse; $/DditE.Dnabled4alse; $/Ddit9.Dnabled4alse; /aru.Dnabled4*rue; end; procedure */aran%.ormClose(Sender *bject; ar 7ction *Close7ction"; be%in $ataModule).=/aran%.Close; 11atau $ataModule).=/aran%.7ctie4alse; end; procedure */aran%./aruClic#(Sender *bject"; be%in 11untu# baru $/Ddit3.Dnabled4*rue; $/Ddit).Dnabled4*rue; $/Ddit,.Dnabled4*rue; $/DditE.D end; procedure */aran%.SimpanClic#(Sender *bject"; be%in 11untu# tombol Simpan 113. Halidasi I! ($/Ddit3.*ext4??"or($/Ddit).*ext4??"or($/Ddit,.*ext4??"or ($/DditE.*ext4??"or($/Ddit9.*ext4??" /e%in Sho'Messa%e(?Inputan M7sih #oson%...JJJ?"; $/Ddit3.Setocus; Dnd Dlse /e%in 11). Simpan $ataModule).=/aran%.+ost; 11,. men%embali#an #e settin%an a'al ormSho'(Sender"; Dnd; end; procedure */aran%./atalClic#(Sender *bject"; be%in 11untu# tombol /atal I! Messa%e$l%(?Ka#in in%in membatal#an proses...L?&mt
mbACancel&"4mr# *hen /e%in $ataModule).=/aran%.Cancel; ormSho'(Sender"; Dnd; end; procedure */aran%.:bahClic#(Sender *bject"; be%in 11untu# :bah $/Ddit3.Dnabled4alse; $/Ddit).Dnabled4*rue; $/Ddit,.Dnabled4*rue; $/DditE. end; procedure */aran%.FapusClic#(Sender *bject"; be%in 11untu# tombol Fapus I! Messa%e$l%(?Ka#in in%in men%hapus data baran%...L?&mtocate(?AdBbaran%?ode&N"*hen /e%in Sho'Messa%e(?/aran% tida# ditemu#an& coba la%i?"; ormSho'(Sender"; Dnd; end;
Modul Pemrograman Client-Server andris_faesal
@6
Bab ?II Save record with Inde;
Pen%im!anan *ecord dengan mengguna"an inde; %aitu metode atau cara !en%im!anan record %ang mengguna"an lambing inde; disaat menulis"an !erintahn%a Penggunaan Inde; untu" !en%im!anan record ini bermanfaat utu" "ita sebagai !enulis codding %ang tida" re!ot-re!ot untu" mengetahui ti!e data dari field %ang "ita guna"an# dengan "ata lain biar"an !rogram %ang mela"u"an "onversi
ti!e
datan%a
sendiri.#
selain itu bertu&uan agar "ita tida" !erlu mengingat ti!e data field %ang "ita guna"an didalam table tersebut# han%a mengetahui nama fieldn%a sa&a Sebagai bahan !ra"te" "ita "ali ini# "ita mengguna"an >orm Data Distributor /gambar :0# di dalam >orm tersebut fasilitas in!ut datan%a mengguna"an "om!onen
!enggunaan untu"
DB
!en%im!anan
*ecordn%a "ita bermain di source code n%a sa&a Pengguna"an !erintah inde; dimulai dengan
menggun"an
lambang
inde;
/nomer inde;R0# beri"ut contoh !enulisan codding ' source code menggun"an inde; (
=$istributor .7ppend; =$istributor?IdB$istributor?N4Ddit3.*ext; =$istributor?6mB$istributor?N4Ddit).*ext; =$istributor?7la
Beri"ut adalah !erintah "eseluruhan dari form data Distributor diatas procedure *$istributor.ormSho'(Sender *bject"; be%in 11untu# on sho' 'ith $ataModule)& =$istributor do /e%in S=>.Clear; S=>.7dd(?Select @ rom $istributor rder ?O ?by IdB$istributor 7sc?"; 7ctie4*rue; Dnd; Ddit3.*ext4??;
Ddit).*ext4??; Ddit,.*ext4??; DditE.*ext4??; Ddit3.Dnabled4alse; Ddit).Dnabled4alse; Ddit,.Dnabled4alse; DditE.Dnabled end; procedure *$istributor./aruClic#(Sender *bject"; be%in Ddit3.Dnabled4*rue; Ddit).Dnabled4*rue; Ddit,.Dnabled4*rue; DditE.Dnabled4*rue; 'ith $ataModule)& =$istributor do /e%in I! =$istributor.PecordCount4 *hen Ddit3.*ext4?$3? else Ddit3.*ext4ormatloat(?$?&=$istributor.PecordCountO3"; Dnd; /aru.Dnabled4alse; Simpan.Dnabled4*rue; /atal.Dnabled4*rue; :bah.Dnabled4alse; Fapus. end; procedure *$istributor.SimpanClic#(Sender *bject"; be%in 11untu# simpan I! (Ddit3.*ext4??"or(Ddit).*ext4??"or(Ddit,.*ext4??"or (DditE.*ext4??" *hen /e%in Sho'Messa%e(?Inputan #uran% len%#ap...JJJ?"; Ddit).Setocus; Dnd else /e%in
procedure *$istributor./atalClic#(Sender *bject"; be%in 11untu# batal I! Messa%e$l%(?Ka#in in%in membatal#an +roses...LL?& mt
Bab ?III Save record with >ield b% Lame
Pen%im!anan *ecord dengan mengguna"an field b% Lame %aitu metode atau cara !en%im!anan record %ang mengguna"an nama field beeserta ti!e data dari field tersebut disaat menulis"an "oddingn%a Penggunaan field name untu" !en%im!anan record ini bermanfaat untu" mem!erce!at "iner&a !rogram di"arena"an "onfersi ti!e data dila"u"an di "odding bu"an di !rogram se!erti !enggunaan inde; !ada materi sebelumn%a# "e"urangan dari !enggunaan metode ini %aitu "odding men&adi aga" !an&ang di"arena"an !enggun"aan ti!e data tersebut %ang a"an di"onfersi terlebih dahulu sebelum disim!an Sebagai bahan !ra"te" "ita "ali ini# "ita mengguna"an >orm Data Barang Masu" /gambar 0# di dalam >orm tersebut fasilitas in!ut datan%a mengguna"an "om!onen
!enggunaan untu"
DB
!en%im!anan
*ecordn%a "ita bermain di source code n%a sa&a Pengguna"an !erintah field name ditandai dengan !erintah >ieldB%Lame# beri"ut
=Masu#.7ppend; =Masu#.ield/y6ame(?AdBMasu#?".7sStrin%4>Aode.Caption; =Masu#.ield/y6ame(?AdB/aran%?".7sStrin%4
Coba !erhati"an !erintah ini ( QMasuk.FieldByame!"#umla$"%.As&nteger'()tr*o&nt!Edit+.*e,t%;
Pada !erintah tersebut# field ¨ah mengguna"an ti!e data Integer
/Lumber0#
sedang"an !ada in!utan
procedure *Masu#.ormSho'(Sender *bject"; be%in 11untu# on sho'nya >Aode.Caption4??; Ddit3.*ext4??; $ate*ime+ic#er3.$ate46o'; Ddit).*ext4??; Ddit,.*ext4??; Ddit3.Dnabled4alse; Ddit).Dnabled4alse; Ddit,.Dnabled4alse; >6ama.Caption 'ith $ataModule) do /e%in 11untu# table masu# =Masu#.S=>.Clear; =Masu#.S=>.7dd(?Select @ rom /aran%BMasu# ?O ?rder by AdBMasu# $esc?"; =Masu#.7ctie4*r 11untu# table baran% =/aran%.7ctie4alse; =/aran%.7ctie4*rue; 11untu# table distributor =$istributor.7ctie4alse; =$istributor.7ctie4*rue; Dnd; end; procedure *Masu#./aruClic#(Sender *bject"; be%in 11 untu# baru Ddit3.Dnabled4*rue; Ddit).Dnabled4*rue; Ddit,.Dnabled4*rue; $ate*ime+ic#er3.$ 11buat #ode 'ith $ataModule)& =Masu# do /e%in
I! =Masu#.PecordCount4 *hen >Aode.Caption4?I63? else >#ode.Caption4ormatloat(?I6?&=Masu#.PecordCountO3"; Dnd; end; procedure *Masu#.SimpanClic#(Sender *bject"; be%in 113 Halidasi I! (Ddit3.*ext4??"or(Ddit).*ext4??"or(Ddit,.*ext4??" *hen /e%in Sho'Messa%e(?Inputan masih #oson% bro...JJJ?"; Ddit3.Setocus; Dnd else /e%in 11) Simpan Aode.Caption; =Masu#.ield/y6a =Masu#.+ost; 11, #embali #e settin%an a'al ormSho'(Sender"; Dnd; Dnd; end; procedure *Masu#./3Clic#(Sender *bject"; be%in 11ce# #ode baran% 'ith $ataModule) do /e%in I! =/aran%.>ocate(?AdB/aran%?&Ddit3.*ext&N"*hen /e%in 11#alon datanya #etemu >6ama.Caption4=/aran%?6mB/aran%?N; >Qual.Caption4Curr*oStr(=/aran%?Far%aBQual?N"; >/eli. Dnd Dlse /e%in Sho'Messa%e(?Aode /aran% tida# di#enal..JJ?"; Ddit3.Clear; >6ama.Caption4??; >Qual.Caption4?Pp ?; >/eli.Caption4?Pp ?; >S atuan.Caption4??; Ddit3.Set Dnd; Dnd; end;
procedure *Masu#./)Clic#(Sender *bject"; be%in 11ce# distributor 'ith $ataModule) do /e%in I! =$istributor.>ocate(?IdB$istributor?&Ddit).*ext&N" *hen /e%in >$istributor.Caption4=$istributor?6mB$istributor?N; Ddit,.Setocus; Dnd else /e%in Sho'Messa%e(?I$ $istributor tida# di#enal..JJ?"; Ddit).Clear; >$istributor.Caption4??; Ddit).Setocus; Dnd; Dnd; end; procedure *Masu#./atalClic#(Sender *bject"; be%in 11untu# batal I! Messa%e$l%(?Ka#in in%in membatal#an +roses...LL?&mt
Bab I8 Save record with $rigger Pen%im!anan *ecord dengan mengguna"an $rigger %aitu metode atau cara !en%im!anan record %ang mengguna"an !erintah S7, /Stru"tur disaat menulis"an "oddingn%a Penggunaan !erintah S7, untu"
7uer%
,anguage0
!en%im!anan record
ini sama se!erti !erintah-!erintah sebelumn%a han%a berbeda !ada saat !roses sim!ann%a sa&a# dimana !ada materi-materi sebelumn%a "ita mengguna"an !erintah +!!and untu" menambah record baru dan Post untu" men%im!an record# teta!i !ada $riger ini "ita han%a menggun"an !erintah Insert !ada
S7,n%a
Sebagai bahan !ra"te" "ita "ali ini# "ita mengguna"an >orm $ransa"si /gambar 50# di dalam >orm tersebut fasilitas in!ut datan%a mengguna"an "om!onen .Clear; =Maya.S=>.7dd(?Insert *ransa#si ?O ?(#dB*ransa#si& *%lB*ransa#si& AdB/aran%& 6mB/aran%& ?O ?Satuan& har%aBbeli& jumlah& total" alue =Maya.DxecS=>;
Penggun"aan !erintah <;ecS7, ini bertu&uan untu" menge"se"usi !erintah S7, tersebut
Sama haln%a dengan !erintah >ieldB%Lame#
$riger ini
&uga
membutuh"an "onfersi ti!e data &uga Beri"ut "odding leng"a! dari >orm $ransa"si diatas
procedure **ransa#si.ormSho'(Sender *bject"; be%in 11 perintah on sho' Ddit3.*ext4??;
Ddit).*ext4??; Ddit,.*ext4??; Ddit,.*ext4??; $ate*ime+ic#er3.$ate46o'; >6ama.Caption4??; >Satuan.Caption4??; >Far%a.Ca 'ith $ataModule) do /e%in =Stoc#.S=>.Clear; =Stoc#.S=>.7dd(?Select =Sisa.@& /aran%.6mB/aran%& ?O ?/aran%.Satuan& /aran%.Far%aBQual& /ara ?'here =Sisa.AdB/aran%4/aran%.AdB/aran% order by ?O ?=Sisa.AdB/aran%?"; =Stoc#.7ctie4*rue; 11 =*ransa#si.S=>.Clear; =*ransa#si.S=>.7dd(?Select @ rom *ransa#si rder by ?O ?AdB*ransa#si $esc?"; =*ransa#si.7ctie4*rue; 11 Maya =Maya.S=>.Clear; =Maya.S=>.7dd(?Select @ rom *ransa#si 'here ?O ?#dB*ransa#si li#e ?O=uotedStr(Ddit3.*ext"O? r =Maya.7ctie4*rue; Dnd; end; procedure **ransa#si.ormClose(Sender *bject; ar 7ction *Close7ction"; be%in 11 untu# on closenya $ataModule).=Stoc#.Close; $ataModule).=*ransa#si.Close; $ataModule).=*ransa#si.Close; $ataModule). end; procedure **ransa#si./aruClic#(Sender **ransa#si./aruClic#(Sender *bject"; ar #odeInte%er; be%in 11untu# 11 untu# *ransa#si baru 11+embuatan #ode tomatis 'ith $ataModule)& =* =*ransa#si ransa#si do /e%in =*ransa#si.S=>.Clear;
Q*ransaksi.)Q.Add!")elect /d_*ransaksi From *ransaksi "0 "1roup by /d_*ransaksi rder by /d_*ransaksi Desc"%; Q*ransaksi.Acti3e'(*rue; &f Q*ransaksi.4ecord5ount( *$en kode'(6 else kode'(Q*ransaksi.4ecord5ount 0 6; Edit6.*e,t'(FormatDate*ime!"yyMMdd"7o8%0 FormatFloat!""7kode%; Edit2.*e,t'(""; Edit+.*e,t'(""; Date*imePicker6.Date'(o8; ama.5aption'("9"; )atuan.5aption'("9"; :arga.5aption'("4p "; *otal.5aption'("9"; Edit6.Enabled'(*rue; Edit2.Enabled'(*rue; Edit+.Enabled'(*rue; Date*imePicker6.Enabled'(*rue; Baru.Enabled'(False; *amba$.Enabled'(*rue; Batal.Enabled'(*rue; 5etak.Enabled'(*rue; )elesai.Enabled'(*rue; 5ek.Enabled'(*rue; Edit2.)etFocus; End; end; procedure *F*ransaksi.*amba$5lick!)ender' *bect%; 3ar i'Byte; begin <<999untuk simpan &f !Edit6.*e,t(""%or!Edit2.*e,t(""%or!Edit+.*e,t(""%*$en Begin )$o8Message!"&nputan masi$ kosong..===="%; Edit2.)etFocus; End else Begin 8it$ DataModule27 QMaya do Begin <<99999 cara Query QMaya.)Q.5lear; QMaya.)Q.Add!"&nsert *ransaksi "0 "!kd_*ransaksi7 *gl_*ransaksi7 /d_Barang7 m_Barang7 "0 ")atuan7 $arga_beli7 umla$7 total% 3alue !"0 Quoted)tr!Edit6.*e,t%0"7"0 Quoted)tr!FormatDate*ime!"yyyy9MM9dd"7 Date*imePicker6.Date%%0"7"0 Quoted)tr!Edit2.*e,t%0"7"0 Quoted)tr!ama.5aption%0"7"0 Quoted)tr!)atuan.5aption%0"7"0 Quoted)tr!5urr*o)tr!beli%%0"7"0 Quoted)tr!Edit+.*e,t%0"7"0 Quoted)tr!5urr*o)tr!total%%0"%"%; QMaya.E,ec)Q; QMaya.E,ec)Q; <<999 Mengeksekusi Mengeksekusi perinta$ perinta$ )Q <<999kembali kesettingan a8al Modul Pemrograman Client-Server andris_faesal
96
Ddit).*ext4??; Ddit,.*ext4??; >6ama.Caption4??; >Satuan.Caption4??; >Far%a.Caption4?Pp ?; >*otal.Caption4??; 11 Se%ar#an table Maya =Maya.S=>.Clear; =Maya.S=>.7dd(?Select @ rom *ransa#si 'here ?O ?#dB*ransa#si li#e ?O=uotedStr(Ddit3.*ext"O? r =Maya.7ctie4*rue; =Maya.7ctie4*rue; har%aBtotal4; or i43 to =Maya.PecordCount do /e%in =Maya.Pec6o4i; total4=Maya?*otal?N; total4=Maya?*otal?N; har%aBtotal4har%aBtotalOtotal; Dnd; >*otal.Caption4ormatCurr(?Pp R&RR?&har%aBtotal"; Dnd; Dnd; end; procedure **ransa#si.Ce#Clic#(Sender **ransa#si.Ce#Clic#(Sender *bject"; be%in 'ith $ataModule) do /e%in I! =Stoc#.>ocate(?AdB/aran%?&Dd =Stoc#.>ocate(?AdB/aran%?&Ddit).* it).*ext&N"*hen ext&N"*hen /e%in >6ama.Caption4=Stoc#?6mB/aran%?N; >Satuan.Caption4=Stoc#?Satuan?N; beli4=Stoc#?Far%a Dnd else /e%in Sho'Messa%e(?Aode baran% tida# ada..JJ?"; Ddit).*ext4??; Ddit).*ext4??; >6ama.Caption4??; >Satuan.Caption4??; Ddit).Setocus; Dnd; Dnd; end; procedure **ransa#si.Ddit,Chan%e(Sender **ransa#si.Ddit,Chan%e(Sender *bject"; be%in I! (Ddit,.* (Ddit,. *ext4??" *hen jml4 else jml4Str*oInt(Ddit,.* jml4Str*oInt(Ddit,.*ext"; ext"; *otal4jml@jual; *otal4jml@jual; >Far%a.Caption4ormatCurr(?Pp >Far%a.Caption4ormatCurr(?Pp R&RR?& end; procedure **ransa#si.SelesaiClic#(Sender **ransa#si.SelesaiClic#(Sender *bject"; be%in ormSho'(Sender"; ormSho'(Sender"; end;
procedure **ransa#si./atalClic#(Sender *bject"; ar i/yte; be%in I! Messa%e$l%(?Ka#in in%in membatal#an semua transa#si..LL?& mt.Clear; =Maya.S=>.7dd(?Select @ rom *ransa#si 'here ?O ?#dB*ransa#si li#e ?O=uotedStr(Ddit3.*ext"O? r =Maya.7ctie4*rue; I! =Maya.PecordCount4 *hen /e%in Sho'Messa%e(?$ata transa#si #oson%..JJ?"; Dnd else /e%in !or i43 to =Maya.PecordCount do =Maya.$elete; Dnd; Dnd; ormSho'(Sender"; Dnd; end;
Bab 8 Im!lementasi with *e!ort
1 Pembuatan ,a!oran Mengguna"an *ave *e!ort a $ambah"an *vDataSetConnection1 /
0!ada tab *+?< lalu atur
DataSet mengguna"an $abel $ransa"si
b. *ambah#an P+roject3 (
"pada tab P7HD lalu $oble Ali# sehin%%a a#an
terlihat %ambar seperti diba'ah ini.
ambar @1 >orm $am!ilan *ave *e!ort
c Setelah tam!il >orm se!erti gambar diatas# selan&utn%a buat Data 4b&ect dengan cara )li" >ile F )li" Lew Data 4b&ect# lalu !ilih Direct Data ?iew dan Le;t lalu !ilih *vDataSet
ambar @2 Pembuatan Data ?iew
d Setelah ,ang"ah selesai# selan&utn%a membuat *e!ort dengan cara )li" Menu $ools F *e!ort 3iJards F Sim!le $able dan a"an muncul tam!ilan se!eti gambar dibawah ini# lalu Le;t dan $e"an +,, untu" menam!il"an semua >ield %ang ingin diceta" dan te"an Le;t hingga >inish I enerate
ambar @ Pemilihan Data ?iew
ambar @@ Pemilihan >ield Lame
e Selelah lang"ah @ selesai# ma"a a"an tam!a" se!erti gambar dibawah ini
Gambar E9. Pae Peport yan% telah terisi.
f
Selan&utn%a sim!an !ro&ect re!ort tersebut dengan nama *Lota !ada dire"tori !ro&e" a!li"asi diatas %ang anda bangun g ntu" !erintah memanggil ,a!oran *ave dari Del!hi guna"an Perintah (
procedure *F*ransaksi.5etak5lick!)ender' *bect%; begin 43Proect6.ProectFile'("4ota.ra3"; 43Proect6.E,ecute; end;
2 Pembuatan la!oran Mengguna"an 7uic" *e!ort a ntu" membuat la!oran mengguna"n 7uic" re!ort !ertama "ali tambah"an )om!onen 7uic" *e!ort "e dalam del!hi dengan cara "li" menu com!onent lalu !ilih Install Pac"ages dan a"an muncul form se!etri gambar dibawah ini Setelah itu "li" tombol +dd lalu cari file dcl=rt:6b!l di folder C(Program >ilesBorlandDel!hi:Bin ,alu "li" $ombol 4!en lalu 4)
Gambar E-. Install pac#a%es =uic# Peport.
!ort
b. Qi#a +a#et =uic# Peport berhasil di install ma#a a#an muncul tab =uic# Pe seperti %ambar diba'ah ini.
Gambar E. *oolbar =Peport.
c. :ntu# membuat Peport& Selanjutnya Ali# ile 5 6e' 5 ther #emudian Peport sehin%%a a#an muncul seperti %ambar diba'ah ini. !ilih
Gambar E8. Membuat Peport baru.
d Setelah mene"an tombol 4)# ma"a a"an muncul sebuah >orm *e!ort %ang mana form *e!ort tersebut a"an digun"an untu" menem!at"an "om!onen-
#omponen report pada toolbar =Peport& dan la#u#an 1 desainlah tampilan report seperti report diba'ah ini
ambar @5 Desain *e!ort
e Selan&utn%a ganti nama >orm tersebut dengan nama *$ransa"si agar lebih mudah mengingatn%a f
ntu" !erintah memanggil ,a!oran 7*e!ort dari Del!hi guna"an Perintah (
procedure **ransa#si.Ceta#Clic#(Sender /eri#ut adalah hasil*bject"; preie'be%in dari report yan% #ita desain diatas. 'ith $ataModule)& =*ransa#si do /e%in S=>.Clear; S=>.7dd(?Select @ rom *ransa#si rder by AdB*ransa#si?"; 7ctie4*rue; I! =*ransa#si.PecordCount5 *hen /e%in 11untu# tampil $ata P*ransa#si.+reie'; 11untu# ceta# $ata P*ransa#si.+rint; Dnd else /e%in Messa%e$l%(?Maa!& *ransa#si /elum ada& data transa#si ?O ?tida# dapat diceta#?&mtIn!ormation&mbAN&"; ormSho'(Sende Dnd; Dnd; end;
g
ambar 96 *e!ort %ang telah di Preview
Demi"ian Modul sing"at "ali ini# semoga dengan modul ini ada da!at mengasah "emam!uan anda secara bela&ar terus dan sering-seting mencoba hal-hal %ang baru
$ugas (
Dari modul diatas# buatlah sebuah !ro&ect a!li"asi mulai dari database# selasi# a!li"asi hingga da!at menceta" la!oran dengan leng"a! /a!li"asi la%a" !a"ai0 Pro&ect di"um!ul"an dalam bentu" la!oran serta !ro&ect a!li"asin%a Beri"ut contoh &uduln%a ( 1 2 @ 9 A : 5 16 11 12 1 1@ 19 1A 1: 1 15 26 21 22 2 2@ 29 2A 2: 2 25 6 1 2
+!li"asi Pen&ualan $i"et )a!al ,aut +!li"asi *awat Ina! +!li"asi ,aundr% +!li"asi !engurusan SPP dan S)S +!li"asi Servis dan !en&ualan +sesoris motor +!li"asi !en%ewaan la!angan >utsal +!li"asi !en&ualan D?D +!li"asi !en&ualan di *umah ma"an +!li"asi Perceta"an +!li"asi Pemilu +!li"asi !en%ewaan bu"u +!li"asi *encar +!li"asi !en&ualan motor ' mobil di showroom +!li"asi !ela%anan !engobatan di *umah sa"it +!li"asi Pemba%aran *e"ening "oran +!li"asi !ela%anan !a&a" ga&i !egawai +!li"asi !engurusan iJin !emasangan i"lan di tata "ota mataram +!li"asi !engga&ian !etugas "ebersihan tata "ota mataram +!li"asi !er!an&ang S$L) "eliling +!li"asi "ursus mengemudi +!li"asi Perceta"an +!li"asi !ela%anan !engobatan di *umah sa"it +!li"asi Pembelian BBM di !ertamina +!li"asi Pen&ualan $i"et )a!al ,aut +!li"asi *awat Ina! +!li"asi Pemba%aran i"lan di lombo" !ost +!li"asi !en%ewaan la!angan >utsal +!li"asi !en&ualan di *umah ma"an +!li"asi !en%ewaan bu"u +!li"asi !emba%aran listri" ' PD+M +!li"asi !en%ewaan bu"u +!li"asi !endataan P), di "ota mataram