Modul Pemrograman Client-Server Modul Pemrograman Client-Server andris_faesal andris_faesal 1 1
PEMROGRAMAN CLIENT-SERVER
PEMROGRAMAN CLIENT-SERVER
with Borland Delphi 7
with Borland Delphi 7 and M S!L
and M S!L
"#
"#
andris_faesal
andris_faesal
Modul Pemrograman Client-Server Modul Pemrograman Client-Server andris_faesal
andris_faesal
2 2
$t%i& "'%i(ora %atara%
$t%i& "'%i(ora %atara%
)*+)
Modul Pemrograman Client-Server Modul Pemrograman Client-Server andris_faesal
andris_faesal
2 2
$t%i& "'%i(ora %atara%
$t%i& "'%i(ora %atara%
)*+)
Bab I
Bab I
Introduction with Database
Introduction with Database Client-Server
Client-Server
1
1 PendahuluanPendahuluan
Pemanfa
Pemanfaatan !erangatan !erang"at luna" ber!"at luna" ber!eran erat bagi !eeran erat bagi !er"embar"embangan di ngan di semuasemua lin
lini# i# baibai" " itu itu insinstittitusi usi !en!endidididi"an"an# # linling"ug"ungan ngan bisbisnisnis# # maumau!un !un "al"alangangan an !ri!ribadibadi $e
$entun%a tida" ntun%a tida" ber!ulber!ulang ang dari !enggunaan dari !enggunaan !erang!erang"at "at luna" tersebut# sam!ai luna" tersebut# sam!ai se&auhse&auh mana fungs
mana fungsin%a da!at dibein%a da!at diberda%a"arda%a"an dan sebera!a besan dan sebera!a besar bia%a %ang r bia%a %ang dibutudibutuh"anh"an untu
untu" " !ene!enera!ra!ann%ann%a a PemPemiliilihan han !era!erang"ng"at at lunluna" a" %an%ang g se&se&alaalan n dengdengan an "eb"ebutuhutuhanan har
harus us benbenarar-b-benaenar r didi!er!erhathati"i"an# an# "ar"arena ena ititu u !e!ererencncanaanan n awawal al didimumulalai i dendengangan men
mengingindentdentifiifi"as"asi i "eb"ebutuhutuhan an di di linling"ug"ungan ngan %an%ang g adaada SetSetelaelah h !ro!roses ses ideidentintifi"fi"asiasi "ebutuhan didaftar"an# "ita da!at memilih !erang"at luna" se!erti a!a %ang a"an "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 diguna"an $ulisan "ali ini# mem!er"enal"an salah satu bentu" client'server dengan mengam
mengambil contoh !enggunaan server sebagai bil contoh !enggunaan server sebagai media atau media atau !eran!erang"at "eras g"at "eras %ang%ang diguna"an untu" men%im!an data sedang"an client berfungsi sebagai media atau diguna"an untu" men%im!an data sedang"an client berfungsi sebagai media atau !erang"
!erang"at "eras %ang diguat "eras %ang diguna"an sebagana"an sebagai tem!at mengoi tem!at mengolah data atau !roselah data atau !roses s %ang%ang lain
lain sebelum sebelum nantin%a dinantin%a disim!an sim!an "e "e databasedatabase
Pemamfaatan a!li"asi %ang berbasis client-server sangat ban%a" dan sering 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 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
meru!a"an a!li"asi %ang mengado!si sistem client-sermengado!si sistem client-server# ver# se!erti se!erti ((
-- SisSistem tem InfInformormasi asi !en!engurgurusausan )n )*S *S di di )am)am!us !us S$MS$MI) I) BumBumigoigora ra MatMataraaramm -- +!l+!li"ai"asi si PemPemba%ba%araaran n *e"*e"eniening ng ,is,istritri" " ataatau u +ir+ir
-- +!+!lili"a"asi si PePememesansanan an $$i"i"et et PePesasawawat t $$eerbrbangang
-- +!l+!li"ai"asi si PerPerbanban""a""an# n# dan dan mamasih sih ban%ban%a" a" %an%ang g lailainn%nn%aa Con
Contoh dtoh diatiatas meas meru!ru!a"aa"an a!ln a!li"ai"asi %si %ang mang menggenggunauna"an "an serserver ver sebsebagaagaii tema!at !en%im!anann%a dan client sebagai tem!at in!ut data atau !roses lainn%a 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 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 %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 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 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 %ang telah "ita sim!an tadi da!at "ita ambil "a!an!un dan dimana !un selama "ita terhubung dengan
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 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 (
✓ +!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
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 <vent %ang da!at di !a"ai untu" membang"it"an
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 <nter# ma"a a"an muncul sebuah form dengan tam!ilan se!erti gambar dibawah ini
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
Modul Pemrograman Client-Server andris_faesal
16
+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
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 <ntitas
+dalah suatu ob&e"# %ang mana data a"an disim!an# diorganisasi"an dan dimani!ulasi Segala informasi# %ang ingin "ita "etahui adalah <ntitas# misaln%a orang# tem!at# atau benda Contoh suatu <ntitas misaln%a Pelanggan $o"o dan data Inventori $o"o
b +ttribut
adalah Informasi atau data tunggal ber"enaan terhada! suatu <ntitas Bila "ita mengangga! Inventori $o"o sebagai suatu <ntitas# ma"a )eterangan Produ"# arga Produ"# dan )etersediaan /Sto"0 Produ" adalah +tribut
c <ntitas
Dire!resentasi"an sebagai suatu $abel Suatu tabel berisi field-field /"olom-"olom0 %ang saling berhubungan /field adalah bagian atau !otongan informasi0 Contoh( Dalam $abel Inventori a"an berisi field-field /"olom-"olom0 se!erti )ode Produ"# )eterangan Produ"# )etersediaan Produ"# arga Produ"# dan lain-lain
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
Gambar 8. Shortcut xampp control panel
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
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 itu sendiri misaln%a htt!(''nama"om!uter'!h!m%admin
ambar 11 a!li"asiMoJilla >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 <nglish0 I ci!ta"an database baru /versi indonesia0# setelah itu te"an tombol create
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
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
1 )d_barang ?archar 16 "e%
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
1 )d_masu" ?archar 16 "e%
2 $gl_masu" Date
Id_distributor ?archar 9
@ Kumlah Int
$able Distributor /distributor0
Lo Lama >ields $%!e data fields "uran >ields )et
1 Id_distributor ?archar 9 "e%
2 Lm_distributor ?archar 26
+lamat ?archar @6
@ Lo_$el! ?archar 1
@ $able $ransa"si /transa"si0
Lo Lama >ields $%!e data fields "uran >ields )et
1 )d_transa"si ?archar 16 2 $gl_transa"si Date )d_barang ?archar 16 @ Lm_Barang ?archar 26 9 Satuan ?archar 19 A arga_beli Decimal : Kumlah Int $otal Decimal
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
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
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
Modul Pemrograman Client-Server andris_faesal
26 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 (
▪▪▪ +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
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 (
Gambar )). *ampilan tambah +en%%una baru 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 (
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
Gambar ),. *ampilan pen%isian +en%%una baru
▪ ,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
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
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
➢➢➢ 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 a l h os t atau 1 2 : 66 1 ➢➢➢ 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
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 sam!ai disini# tinggal membuat a!li"asin%a mengguna"an Program a!li"asi Borland Del!hi !ada Bab selan&utn%a
Membu#a 1 membuat project $elphi /aru
Gambar ,2. Membu#a +roject /aru $elphi.
Bab ?
Im!lementasi with Borland Del!hi
1 Pembuatan DatamoduleDatamodule 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
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&
Modul Pemrograman Client-Server andris_faesal
6
Buah +747uer%# dan 9 buah DataSource
Modul Pemrograman Client-Server andris_faesal
1
d Setelah meleta""an semua "om!onen di dalam >orm DataModule se!erti ambar diatas# la"u"an !engaturan se!erti dibawah ini (
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"
➢ S7, ( Select 7SisaH# BarangLm_Barang# BarangSatuan# Barangarga_Kual# Barangarga_Beli from 7Sisa# 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 (
Gambar ,9. orm Menu :tama.
a >orm Menu tama
b >orm Data Barang
Gambar ,. orm $ata $istributor.
orm $ata /aran% Masu#
c >orm Data Distributor
d
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<dit /<dit tida" da!at diguna"an untu" men%im!an data mengguna"an !ro!erties0# dari "om!onen DB<dit tersebut %ang diguna"an untu" menghubung"an "e table %aitu datasource dan datafield# sebagai contoh untu" "om!onen DB<dit1 di bagian datasource di !ilih DataModule2DBarang dan datafield mengguna"an )d_barang# dimana DataModule2DBarang ma"sudn%a Dataset %ang ada !ada >orm Datamodule /nama Datamodulen%a DataModule2.0#
procedure */aran%.ormSho'(Sender *bject"; be%in
11 #eti#a !orm a#ti! ma#a perintah di e#se#usi <ith $ataModule) do /e%in
=/aran%.S=>.Clear;
=/aran%.S=>.7dd(?Select @ rom /aran% rder by AdB/aran%?"; =/aran%.7ctie4*rue; Dnd; $/Ddit3.Dnabled4alse; $/Ddit).Dnabled4alse; Beri"ut leng"a!n%a ( 1 DB<dit1 Datasource ( DataModule2DBarang Datafield ( )d_Barang 2 DB<dit2 Datasource ( DataModule2DBarang Datafield ( Lm_Barang DB<dit Datasource ( DataModule2DBarang Datafield ( Satuan @ DB<dit@ Datasource ( DataModule2DBarang Datafield ( arga_Beli 9 DB<dit9 Datasource ( 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
$/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
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?&mt<arnin%& mbACancel&"4mr# *hen /e%in
$ataModule).=/aran%.$elete; ormSho'(Sender"; Dnd;
end;
procedure */aran%.CariClic#(Sender *bject"; ar #odeStrin%3N; be%in
11pencarian #ode4Input/ox(?+encarian $ata?& ?Masu##an #ode /aran% yan% dicari?&??";
I! 6ot $ataModule).=/aran%.>ocate(?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
=$istributor .7ppend; =$istributor?IdB$istributor?N4Ddit3.*ext; =$istributor?6mB$istributor?N4Ddit).*ext; =$istributor?7la
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??;
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 <dit# dari "om!onen <dit tersebut tida" !erlu disetting se!erti !enggunaan DB<dit /materi sebelumn%a0# cu"u! desain%a sa&a di!ercanti"dan untu" !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; (
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
<ith $ataModule)& =$istributor do /e%in
7ppend; =$istributor?IdB$istributor?N4Ddit3.*ext; =$istributor?6mB$istributor?N4Ddit).*ext; =$i +ost; ormSho'(Sender";
Dnd; Dnd; end;
procedure *$istributor./atalClic#(Sender *bject"; be%in 11untu# batal
I! Messa%e$l%(?Ka#in in%in membatal#an +roses...LL?& mt<arnin%& mbA&mbCancelN&"4mr# * ormSho'(Sender";
end;
procedure *$istributor.FapusClic#(Sender *bject"; be%in
I! Messa%e$l%(?Ka#in in%in Men%hapus $ata ini...LL?& mt<arnin%& mbA&mbCancelN&"4mr# *h /e%in
$ataModule).=$istributor.$elete; ormSho'(Sender"; Dnd; end;
=Masu#.7ppend; =Masu#.ield/y6ame(?AdBMasu#?".7sStrin%4>Aode.Caption; =Masu#.ield/y6ame(?AdB/aran%?".7sStrin%4
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 <dit# dari "om!onen <dit tersebut tida" !erlu disetting se!erti !enggunaan DB<dit /materi sebelumn%a0# cu"u! desain%a sa&a di!ercanti"dan untu" !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
Coba !erhati"an !erintah ini (
QMasuk.FieldByame!"#umla$"%.As&nteger'()tr*o&nt!Edit+.*e,t%;
sedang"an !ada in!utan <dit mengguna"an ti!e String# !erbedaan ti!e data disini %ang harus me"a"u"an "onfersi ti!e data %ang dari String "e Integer mengguna"an !erintah Str$oInt /String "e Integer0
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
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
<ith $ataModule) do /e%in
=Masu#.7ppend; =Masu#.ield/y6ame(?AdBMasu#?".7sStrin%4>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;
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<arnin%& mbA&mbCancelN&"4mr# *h ormSho'(Sender";
end;
procedure *Masu#.FapusClic#(Sender *bject"; be%in
I! Messa%e$l%(?Ka#in in%in Men%hapus $ata ini...LL?&mt<arnin%& mbA&mbCancelN&"4mr# *he /e%in
$ataModule).=Masu#.$elete; ormSho'(Sender"; Dnd; end;
=Maya.S=>.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=>;
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 7uer% ,anguage0 disaat menulis"an "oddingn%a Penggunaan !erintah S7, untu" !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 <dit# dari "om!onen <dit tersebut tida" !erlu disetting se!erti !enggunaan DB<dit /materi sebelumn%a0# cu"u! desain%a sa&a di!ercanti"dan untu" !en%im!anan *ecordn%a "ita bermain di source code n%a sa&a
Pengguna"an $riger ditandai dengan !erintah S7,# beri"ut contoh !enulisan codding ' source code menggun"an S7, (
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,.*
Ddit,.*ext4??; $ate*ime+ic#er3.$ate46o'; >6ama.Caption4??; ext4??; $ate*ime+ic#er3.$ate46o'; >6ama.Caption4??; >Satuan.Caption4??; >Satuan.Caption4??; >Far%a.Ca>Far%a.Ca 'ith $ataModule) do /e%in
'ith $ataModule) do /e%in =Stoc#.S=>.Clear;
=Stoc#.S=>.Clear;
=Stoc#.S=>.7dd(?Select =Sisa.@& /aran%.6mB/aran%& ?O ?/aran%.Satuan& /aran%.Far%aBQual& /ara =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%?";
?'here =Sisa.AdB/aran%4/aran%.AdB/aran% order by ?O ?=Sisa.AdB/aran%?"; =Stoc#.7ctie4*rue;
=Stoc#.7ctie4*rue; 11 =*ransa#si.S=>.Clear; 11 =*ransa#si.S=>.Clear;
=*ransa#si.S=>.7dd(?Select @ rom *ransa#si rder by ?O ?AdB*ransa#si $esc?"; =*ransa#si.S=>.7dd(?Select @ rom *ransa#si rder by ?O ?AdB*ransa#si $esc?"; =*ransa#si.7ctie4*rue;
=*ransa#si.7ctie4*rue; 11 Maya =Maya.S=>.Clear; 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.S=>.7dd(?Select @ rom *ransa#si 'here ?O ?#dB*ransa#si li#e ?O=uotedStr(Ddit3.*ext"O? r =Maya.7ctie4*rue; Dnd;
=Maya.7ctie4*rue; Dnd; end;
end;
procedure **ransa#si.ormClose(Sender *bject; ar 7ction *Close7ction"; procedure **ransa#si.ormClose(Sender *bject; ar 7ction *Close7ction"; be%in
be%in 11 untu#
11 untu# on closenya on closenya $ataModule).=Stoc#.Close; $ataModule).=*$ataModule).=Stoc#.Close; $ataModule).=*ransa#si.Close; $ataModule).ransa#si.Close; $ataModule). end;
end;
procedure **
procedure **ransa#si./aruClic#(Sender *bject"; ransa#si./aruClic#(Sender *bject"; ar ar #odeInte%er;#odeInte%er; be%in
be%in 11
11untu# untu# **ransa#si ransa#si barubaru 11+embuatan
11+embuatan #ode #ode tomatistomatis 'ith $ataModule)&
'ith $ataModule)& =*=*ransa#si do ransa#si do /e%in/e%in =*ransa#si.S=>.Clear;
Modul Pemrograman Client-Server Modul Pemrograman Client-Server andris_faesal
andris_faesal
96 96
Q*ransaksi.)Q.Add!")elect /d_*ransaksi From *ransaksi "0 Q*ransaksi.)Q.Add!")elect /d_*ransaksi From *ransaksi "0 "1roup by /d_*ransaksi rder by /d_*ransaksi Desc"%;
"1roup by /d_*ransaksi rder by /d_*ransaksi Desc"%; Q*ransaksi.Acti3e'(*rue;
Q*ransaksi.Acti3e'(*rue;
&f Q*ransaksi.4ecord5ount( *$en &f Q*ransaksi.4ecord5ount( *$en
kode'(6 else kode'(6 else kode'(Q*ransaksi.4ecord5ount kode'(Q*ransaksi.4ecord5ount 0 0 6;6; Edit6.*e,t'(FormatDate*ime!"yyMMdd"7o8%0 Edit6.*e,t'(FormatDate*ime!"yyMMdd"7o8%0 FormatFloat!""7kode%; FormatFloat!""7kode%; Edit2.*e,t'(""; Edit2.*e,t'(""; Edit+.*e,t'(""; Edit+.*e,t'(""; Date*imePicker6.Date'(o8; Date*imePicker6.Date'(o8; ama.5aption'("9"; ama.5aption'("9"; )atuan.5aption'("9"; )atuan.5aption'("9"; :arga.5aption'("4p "; :arga.5aption'("4p "; *otal.5aption'("9"; *otal.5aption'("9"; Edit6.Enabled'(*rue; Edit6.Enabled'(*rue; Edit2.Enabled'(*rue; Edit2.Enabled'(*rue; Edit+.Enabled'(*rue; Edit+.Enabled'(*rue; Date*imePicker6.Enabled'(*rue; Date*imePicker6.Enabled'(*rue; Baru.Enabled'(False; Baru.Enabled'(False; *amba$.Enabled'(*rue; *amba$.Enabled'(*rue; Batal.Enabled'(*rue; Batal.Enabled'(*rue; 5etak.Enabled'(*rue; 5etak.Enabled'(*rue; )elesai.Enabled'(*rue; )elesai.Enabled'(*rue; 5ek.Enabled'(*rue; 5ek.Enabled'(*rue; Edit2.)etFocus; Edit2.)etFocus; End; End; end; end;
procedure *F*ransaksi.*amba$5lick!)ender' *bect%; procedure *F*ransaksi.*amba$5lick!)ender' *bect%; 3ar i'Byte; 3ar i'Byte; begin begin <<999untuk simpan <<999untuk simpan &f !Edit6.*e,t(""%or!Edit2.*e,t(""%or!Edit+.*e,t(""%*$en &f !Edit6.*e,t(""%or!Edit2.*e,t(""%or!Edit+.*e,t(""%*$en Begin Begin
)$o8Message!"&nputan masi$ kosong..===="%; )$o8Message!"&nputan masi$ kosong..===="%; Edit2.)etFocus; Edit2.)etFocus; End else End else Begin Begin
8it$ DataModule27 QMaya do 8it$ DataModule27 QMaya do Begin Begin <<99999 cara Query <<99999 cara Query QMaya.)Q.5lear; QMaya.)Q.5lear; QMaya.)Q.Add!"&nsert
QMaya.)Q.Add!"&nsert *ransaksi *ransaksi "0"0
"!kd_*ransaksi7 *gl_*ransaksi7 /d_Barang7 m_Barang7 "0 "!kd_*ransaksi7 *gl_*ransaksi7 /d_Barang7 m_Barang7 "0 ")atuan7 $arga_beli7 umla$7 total% 3alue !"0
")atuan7 $arga_beli7 umla$7 total% 3alue !"0 Quoted)tr!Edit6.*e,t%0"7"0 Quoted)tr!Edit6.*e,t%0"7"0 Quoted)tr!FormatDate*ime!"yyyy9MM9dd"7 Quoted)tr!FormatDate*ime!"yyyy9MM9dd"7 Date*imePicker6.Date%%0"7"0 Date*imePicker6.Date%%0"7"0 Quoted)tr!Edit2.*e,t%0"7"0 Quoted)tr!Edit2.*e,t%0"7"0 Quoted)tr!ama.5aption%0"7"0 Quoted)tr!ama.5aption%0"7"0 Quoted)tr!)atuan.5aption%0"7"0 Quoted)tr!)atuan.5aption%0"7"0 Quoted)tr!5urr*o)tr!beli%%0"7"0 Quoted)tr!5urr*o)tr!beli%%0"7"0 Quoted)tr!Edit+.*e,t%0"7"0 Quoted)tr!Edit+.*e,t%0"7"0 Quoted)tr!5urr*o)tr!total%%0"%"%; Quoted)tr!5urr*o)tr!total%%0"%"%; QMaya.E,
QMaya.E,ec)Q; ec)Q; <<999 <<999 MengekseMengeksekusi kusi perintaperinta$ )Q$ )Q <<999kembali
Ddit).*ext4??; Ddit).*ext4??; Ddit,.*ext4??; Ddit,.*ext4??;
>6ama.Caption4??;
>6ama.Caption4??; >Satuan.Caption4??; >Far%a.Caption4?Pp >Satuan.Caption4??; >Far%a.Caption4?Pp ?; ?; >>**otal.Caption4??;otal.Caption4??; 11 Se%ar#an table Maya =Maya.S=>.Clear;
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.S=>.7dd(?Select @ rom *ransa#si 'here ?O ?#dB*ransa#si li#e ?O=uotedStr(Ddit3.*ext"O? r =Maya.7ctie4*
=Maya.7ctie4*rue; rue; har%aBtotal4;har%aBtotal4; or i43 to =Maya.PecordCount do /e%in or i43 to =Maya.PecordCount do /e%in =Maya.Pec6o4i;
=Maya.Pec6o4i; total4=Maya?*total4=Maya?*otal?N; otal?N; har%aBtotal4har%aBtotalOtotal;har%aBtotal4har%aBtotalOtotal; Dnd; Dnd; >*otal.Caption4ormatCurr(?Pp R&RR?&har%aBtotal"; Dnd; >*otal.Caption4ormatCurr(?Pp R&RR?&har%aBtotal"; Dnd; Dnd; end; Dnd; end; procedure **
procedure **ransa#si.Ce#Clic#(Sender *bject"; ransa#si.Ce#Clic#(Sender *bject"; be%inbe%in 'ith $ataModule) do /e%in
'ith $ataModule) do /e%in I!
I! =Stoc#.>ocate(?AdB/aran%?&Dd=Stoc#.>ocate(?AdB/aran%?&Ddit).*it).*ext&N"*hen ext&N"*hen /e%in/e%in
>6ama.Caption4=Stoc#?6mB/aran%?N; >Satuan.Caption4=Stoc#?Satuan?N; beli4=Stoc#?Far%a >6ama.Caption4=Stoc#?6mB/aran%?N; >Satuan.Caption4=Stoc#?Satuan?N; beli4=Stoc#?Far%a Dnd else /e%in
Dnd else /e%in
Sho'Messa%e(?Aode baran%
Sho'Messa%e(?Aode baran% tida# tida# ada..JJ?"; ada..JJ?"; Ddit).*Ddit).*ext4??;ext4??; >6ama.Caption4??; >Satuan.Caption4??;
>6ama.Caption4??; >Satuan.Caption4??; Ddit).Setocus;Ddit).Setocus; Dnd; Dnd;
Dnd; Dnd; end; end;
procedure **
procedure **ransa#si.Ddit,Chan%e(Sender *bject"; ransa#si.Ddit,Chan%e(Sender *bject"; be%inbe%in I!
I! (Ddit,.(Ddit,.**ext4??" ext4??" *hen*hen jml4 else jml4Str*
jml4 else jml4Str*oInt(Ddit,.*oInt(Ddit,.*ext"; *ext"; *otal4jml@jual; >Far%a.Caption4orotal4jml@jual; >Far%a.Caption4ormatCurr(?Pp matCurr(?Pp R&RR?&R&RR?& end;
end;
procedure **
procedure **ransa#si.SelesaiClic#(Sender *bject"; ransa#si.SelesaiClic#(Sender *bject"; be%inbe%in ormSho'(S
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<arnin%&mbA&mbCancelN&"4mr# *hen /e%in
'ith $ataModule) do /e%in =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;
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;
b. *ambah#an P+roject3 ( "pada tab P7HD lalu $oble Ali# sehin%%a a#an terlihat %ambar seperti diba'ah ini.
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
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 >ield Lame
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.
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.
!ort
Gambar E8. Membuat Peport baru.
#omponen report pada toolbar =Peport& dan la#u#an 1 desainlah tampilan report seperti report diba'ah ini
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
procedure **ransa#si.Ceta#Clic#(Sender *bject"; be%in '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;
/eri#ut adalah hasil preie' dari report yan% #ita desain diatas.
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 (
g
Demi"ian Modul sing"at "ali ini# semoga dengan modul ini ada da!at mengasah
$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 +!li"asi Pen&ualan $i"et )a!al ,aut 2 +!li"asi *awat Ina!
+!li"asi ,aundr%
@ +!li"asi !engurusan SPP dan S)S
9 +!li"asi Servis dan !en&ualan +sesoris motor A +!li"asi !en%ewaan la!angan >utsal
: +!li"asi !en&ualan D?D
+!li"asi !en&ualan di *umah ma"an 5 +!li"asi Perceta"an
16 +!li"asi Pemilu
11 +!li"asi !en%ewaan bu"u 12 +!li"asi *encar
1 +!li"asi !en&ualan motor ' mobil di showroom 1@ +!li"asi !ela%anan !engobatan di *umah sa"it 19 +!li"asi Pemba%aran *e"ening "oran
1A +!li"asi !ela%anan !a&a" ga&i !egawai
1: +!li"asi !engurusan iJin !emasangan i"lan di tata "ota mataram 1 +!li"asi !engga&ian !etugas "ebersihan tata "ota mataram
15 +!li"asi !er!an&ang S$L) "eliling 26 +!li"asi "ursus mengemudi
21 +!li"asi Perceta"an
22 +!li"asi !ela%anan !engobatan di *umah sa"it 2 +!li"asi Pembelian BBM di !ertamina
2@ +!li"asi Pen&ualan $i"et )a!al ,aut 29 +!li"asi *awat Ina!
2A +!li"asi Pemba%aran i"lan di lombo" !ost 2: +!li"asi !en%ewaan la!angan >utsal 2 +!li"asi !en&ualan di *umah ma"an 25 +!li"asi !en%ewaan bu"u
6 +!li"asi !emba%aran listri" ' PD+M 1 +!li"asi !en%ewaan bu"u