SKRIPSI PENGEMBANGAN APLIKASI SISTEM MESIN KASIR TERDISTRIBUSI BERBASIS CLIENT-SERVER DENGAN PLATFORM JAVA™
Muhammad Fauzi Murtadlo
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA
2006
PENGEMBANGAN APLIKASI SISTEM MESIN KASIR TERDISTRIBUSI BERBASIS CLIENT-SERVER DENG AN PLATFORM JAVATM
MUHAMMAD FAUZI MURTADLO
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Jurusan Teknik lnforrnatika
JURUSAN TEKNIK lNFORMATlKA FAKULTAS SAINS DAN TEKNOLOGI UNlVERSITAS ISLAM NEGERI SY ARIF HIDAYATULLAH JAKARTA
2006
PERSETll.JllAN PEl\IBIMBJNG
Pengembangan Aplikasi Sistem Mesin Kasii· Terdistribusi
Juclul Skripsi
13erhasis Client-Server dengan Platform .JavaT"
Nania
ivluhammad Fauzi i\lurtacl\o
NIM
102091026346
Dosen Pembimbing l
Dosen Pembimbing II
11
~;
i\
\\ t
(
\ '_,,,
Na~~;Jn. S.Si, MT.
Aries Susanto HT, SE, MMSI.
Ir. Ilakri La Katjonc, M. Kom, M. T. Nip. 470 035 764
PENGESAllAN SKRIPSI
Juclul Skripsi
l'cngemhangan Aplikasi Sistern Mcsin Kasir Tcnlistribusi llcrbasis Clicnt-Scrvc1· dcngan Platfot·m JavaT,ll
Nama
Muhammad Fauzi Murtadlo
NIM
102091026346
lr.
I
!lal
M. T.
Nip. 470 035 764
Do sen l'cnguj i I
-~ "-77:;-~r~1---·---
Hizal B. M. Kom
lkrlino Nat11rng ...T. Nip. 150 368 819
Dihtahui,
;)ekmi Fl\kultas Sain dan Teknolok',i
;fr DH.
~:·o 1\ansva h
NIP.150 317 956
M.STS
~
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI
Dengan
1111
saya
menyatakan
bahwa
skripsi
dengan
judul
PENGEMBANGAN APLIKASI SISTEM MESIN KASIR TERDISTRIBUSI BERBASIS CLIENT-SERVER DENG AN PLATFORM JA VATM adalah kmya saya sendiri dan belum diajukm1 dalam bentuk apapun kepada institusi manapun. Sumber infonnasi yang berasal I dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skiipsi ini.
Bogor, 20 Juni 2006
Muhammad Fauzi Murtadlo NIM: 102091026346
ABSTRAK MUHAMMAD FAUZI MURTADLO, Pengembangan Aplikasi Sistem Mesin Kasir Terdistribusi Berbasis Client-Server dengan Platform Java1M, Dibimbing oleh NASHRUL HAKIEM dan ARIES SUSANTO HT. Di zaman modem ini, kebutuhan infonnasi semakin diperlukan karena terbukti sangat efektif dan efisien untuk memudahkan peke1jaan. Banyak perusahaan dagang yang menggunakan sistem infomiasi berbasiskan komputer untuk kelancaran bisnis dan pekerjaan mereka. Namun, banyak juga yang tidak mengintegrasikan !computer mereka, sehingga setiap !computer bekerja sendiri dalam mengolah database, membuat laporan, menghitung transaksi jual beli dan lain sebagainya. Tentunya ha! tersebut akan membutuhkan waktu, tenaga dan ketelitian dalam pengoperasian sistem informasi mereka. Oleh karena itu, dalam skripsi ini, dibuat sebuah sistem yang mampu mengintegrasikan sistem komputer dan mendistribusikan database dengan harapan dapat mengatasi pennasalahan tersebut di atas. Sistem ini disebut Aplikasi Sistem Mesin Kasir Terdistribusi Berbasis Client-Server. Metodologi pengembangan sistem yang digunakan dalam pembuatan aplikasi ini adalah dengan metode Wate1jall, yang meliputi pendefinisian masalah, analisis sistem, perancangan sistem, implementasi sistem, uji coba sistem dan perawatan sistem. Analisis dan perancangan sistem menggunakan notasi Unified Modeling Laguage (UML), sedangkan bahasa pemrograman yang digunakan dalam mengimplementasikan sistem ini adalah bahasa pemrograman JavaTh'. Dari hasil penelitian yang dilak-ukan, sistem ini membutuhkan dua buah program, yaitu yang pe1iama adalah program server yang digunakan sebagai pusat aktifitas dari semua sistem, antara lain adalah: sebagai pengumpulan, pemrosesan, manajemen, pengendalian dan penghasilan informasi dari semua data, yang disebut sebagai fungsi Sistem Infom1asi Akuntansi (SIA). Kemudian program yang kedua adalah program client yang digunakan sebagai program yang bertugas untuk berinteraksi secara langsung dengan pembeli. Program server disebut dengan Server ](Jko Online, sedangkan program client disebut dengan Client Toko Online. Dari uraian di atas, dapat ditarik kesimpulan bahwa Aplikasi Sistem Mesin Kasir Terdistribusi Berbasis Client-Seiver merupakan suatu aplikasi yang mampu beke1ja di dalam sistern komputer terintegrasi dengan rnenggunakan konsep client-server yang dirancang dan diperuntukkan bagi perusalman dagang dalarn mernanipulasi dan mengatur semua data mereka dengan menawarkan berbagai kernudahan dalam pengoperasiannya, kecepatan dan ketepatan dalam pernrosesannya, keakuratan dalam penghitungan akuntansi transaksi penjualan dan pembelian serta lebih fleksibel tidak tergantung pada platfom1 tertentu.
KATA PENGANTAR
Puji dan syukur kita panjatkan ke hadirat Allah SWT yang telah membe1ikan rahmad, taufik dan hidayah serta sanjungan sholawat dan salam semoga tetap tercurah ke pangkuan beliau Rosululloh SAW, sehingga penulis dapat menyelesaikan laporan skiipsi ini. Skripsi ini dibuat dengan judul PENGEMBANGAN APLIKASI SISTEM M.ESIN KASIR TERDISTRIBUSl BERBASIS CLIENT-SERVER DENGAN PLATFORM JAVATM. Penulis menyadari sepenuhnya bahwa dalam penulisan laporan skripsi ini tidak dapat diselesaikan tanpa bantuan dan bimbingan dari berbagai pihak, baik secara langsung maupun tidak langsung. Untuk itu, pada kesempatan ini penulis ingin mengucapkan terima kasih kepada : 1. Bapak
Nashrnl Hakiem dan Bapak Aries Susanto HT selaku dosen
pembimbing skripsi pada Jurnsan Teknik Informatika Fakultas Sains dan Teknologi UIN syarifHidayatullah Jakarta. 2. Semua dosen Jurnsan Teknik Info1matika dan Jurusan Sistem lnformatika yang memberi saran dan masukan atas skripsi yang penulis buat. 3. Kedua orang tua, adik-adik, dan semua saudara yang telah memberikan dukungan dan doa restunya dalam penulisan laporan skripsi ini. 4. Semua teman mahasiswa, khususnya Fit1i dan Ima yang secara langsung maupun tidak langsung yang telah memberikan bantuan dan dukungan molil dalam pembuatan skripsi ini. Akhir kata, semoga laporan sklipsi ini dapat bermanfaat bagi semua pihak. Amin.
DAFTARISI
Halaman Judul Halaman Persetujuan Pembimbing
11
Halaman Pengesahan
Ill
Halaman Pernyataan .
IV
Abstrak
v
Kata Pengantar
VI
Daftar Isi
Vll
Daftar Tabel
XVll
Daftar Gambar ................................... ..
XIX
Daftar Lampiran
XXVlll
BAB I PENDAHULUAN I. I. Latar Belakang
1
1.2. Rumusan Masalah .
4
1.3. Batasan Masalah
5
1.4. Tujuan
7
1.5. Manfaat 1.5.1. Bagi Penulis
7
1.5.2. Bagi Akademik
8
1.5.3. Bagi Pengguna
8
I .6. Metodologi Penelitian
1.6. l. Metode Pengumpulan Data
9
1.6.2. Metode Pengembagan Sistem
I. 7. Sistematika Penulisan
9 13
BAB U LANDASAN TEO RI 2. l. Sistem Informasi Akuntansi 2.1. l. Konsep Sistem Informasi Akuntansi
15
2.1.2. Pengertian Sistem Informasi Akuntansi
15
2.1.3. Manfaat dan Tujuan Sistem h1formasi Akuntansi ..................... .
16
2.1.4. Fungsi Sistem Informasi Akuntansi
17
2.1.5. Komputer Akuntansi ................................... .
20
2.1.6. Database Accounting System (DBAS)
22
2.2. Sistem Terdistribusi 2.2. l. Gambaran Umum Sistem Terdist1ibusi
24
2.2.2. Pengertian Sistem Terdistribusi ...
26
2.2.3. Karakteristik Sistem Terdistribusi
26
2.2.4. Keuntungan dan Manfaat Sistem Terdistribusi
27
2.2.5. Tantangan Sistem Terdistribusi
28
2.2.6. Sistem Terdistribusi Client-Server
30
2.3. Pengembangat1 Sistem 2.3.1. Pengertian Pengembangat1 Sistem
31
2.3.2. Daur Hidup Pengembat1gan Sistem Wate1fall
32
2.3.3. Perangkat Pemodelan Pengembangan Sistem
35
2.4. Perancat1gan Database 2.4. l. Pengertian Database .............................. .
36
2.4.2. Konsep Perancangan Database
36
2.4.3. Manajemen Database
38
2.4.4. Teknik Perancangan Database
39
2.5. Object Oriented Programming (OOP) 2.5.1. Gambaran Umum OOP ........... .
44
2.5.2. Pengertian dan Konsep OOP
45
2.5.3. Paradigma Object Oriented ..
49
2.5.4. Manfaat yang bisa diambil dari OOP
53
2.6. Unified Modeling Laguage (UML) 2.6.1. Gambaran Umum UML.
53
2.6.2. Kegunaan UML
55
2.6.3. Mekanisme Pendekatan Pemodelan
56
2.6.4. Standar Notasi UML
57
2.6.5. Tipe Diagram UML ............................ .
62
2.6.6. Diagram UML yang Dipakai dalam Perancangan Sistem ini
64
2. 7. Bahasa Pemrograman JavaT" 2. 7.1. Mengenal Java ............... .
69
2.7.2. Sejarah Java ............ .
69
2.7.3. Teknologi Java
70
2.7.4. Fitur-Fitur Java
73
2.7.5. .Java Virtual Machine
74
2.7.6. Abstract Window Toolkit (AWT)
75
2.7.7. .Java Foundation Classes (JFC I Swing) ...
76
2.7.8. Remote Method Invocation (RM1)
76
2.7.9. IDBC
80
BAB HI METODOLOGI PENELITIAN 3.1' Metodologi Penelitian
87
3.2. Kerangka Berfikir
89
3 .3. Hipotesis Penelitian
89
3.4. Research Question (RQ)
89
3.5. Waktu dan Lokasi Penelitian 3.5. l. Waktu Pelaksanaan
90
3.5.2. Lokasi Penelitian
90
3.6. Perangkat Penelitian 3.6.1. Perangkat Kerns
90
3 .6.2. Perangkat Lunak
91
3.7. Metode Penelitian 3.7.1. Teknik Pengumpulan Data
91
3.7.2. Pengembangan Sistem
92
3. 7.2. L Pendefinisian Masalah
92
3. 7.2.2. Analisis Sistem
92
3. 7.2.3. Perancangan Sistem
94
3.7.2.4. lmplementasi Sistem
97
3.7.2.5. Uji Coba Sistem ............ .. 3. 7.2.6. Perawatan Sistem ...
....... ... . ...
98
JOO
BAB IV PEMBAHASAN 4.1. Pendefinisian Masalah
101
4.2. Analisis Sistem
104
4.2.1. Identify (Mengidentifikasi Masalah).
104
4.2.2. Understand (Memahami Si stem yang Dibangun)
105
4.2.3. Analize (Menganalisis Sistem)
107
4.2.3. I. Analisis pada Program Server ............................. .
107
4.2.3.2. Analisis pada Program Client
118
4.2.3.3. Analisis Komponen Program Server dan Program Client.
121
4.2.4. Report (Laporan Hasil Analisis)
122
4.2.4.1. Laporan pada Program Server
123
4.2.4.2. Laporan pada Program Client
126
4.2.4.3. Laporan Komponen Program Server dan Program Client.
127
4.3. Perru1cangan Sistem
128
4.3. l. Diagram Konteks .
128
4.3.2. Perancangan Sistem Basis Data ............................ .
132
4.3 .2. l. No1malisasi
132
4.3.2.l. l. Norrnalisasi pada Tabel Induk Pegawai
133
4.3.2.l.2. Normalisasi pada Tabel lnduk Transaksi.
135
4.3.2. l.3. Hasil Normalisasi Antar Tabel .. .
137
4.3.2.2. Entity Relationship Diagram (ERD) ..................... .
139
4.3 .2.2.1. Data Model Requirement ....
139
4.3.2.2.2. ERD Sistem Mesin Kasir Terdistribusi .
141
4.3.3.
4.3.2.2.3. Atribut ERD Sistem Mesin Kasir Terdistribusi .......
142
4.3.2.2.4. Ralationship List Sistem Mesin Kasir Terdistribusi.
145
Perancangan Sistem Aplikasi
147
4.3.3.1. Use Case Diagram.
147
4.3 .3. I. I. Aktor ServerAdmin .
149
4.3 .3.1.2. Aktor Client
150
4.3.3.2. Class Diagram.
151
4.3.3.2.1. Perancangan Class Diagram pada Server. ............ .
151
4.3 .3 .2.2. Perancangan Class Diagram pada Client ...... .
181
4.3.3.2.3. Class Diagram padaFungsi Lainnya ............ .
190
4.3.3.3. Activity Diagram
196
4.3.3.3.1. Activity Diagram pada Connect Database .....
198
4.3.3.3.2. Activity Diagram padaDisconnect Database..
199
4.3.3.3.3. Activity Diagram padaAddData ...................... .
200
4.3.3.3.4. Activity Diagram pada Update Data
201
4.3.3.3.5. Activity Diagram padaDelete Data
203
4.3.3.3.6. Activity Diagram padaSearching Data
204
4.3.3.3.7. Activity Diagram padalnsert D~fault Value
205
4.3.3.3.8. Activity Diagram pada Select 11w1saksi By ...............
206
4.3.3.3.9. Activity Diagra111 pada Transaksi Navigator Action ...
207
4.3.3.3.10. Activity Diagram pada Select Chart Type
209
4.3.3.3.11. Activity Diagra111 padaAdd Stok Barang
209
4.3.3.3.12. Activity Diagram pada Send lvfessage
211
4.3 .3 .3 .13. Activity Diagram pada RMI Connection dan Client Connection .
212
4.3.3.3.14. Activity Diagram padaRl\IIJ Disconnection
213
4.3.3.3.15. Activity Diagram pada Client Disconnection
214
4.3 .3 .3 .16. Activity Diagram pada Table Manipulation
216
4.3.3.3.17. Activity Diagram padaExecute SQL Que1y
217
4.3.3.3.18. Activity Diagram padaSend Data Transaksi
To Server 4.3.3.4. Sequence Diagram 4.3.3.4.1. Sequence Diagram padaAplikasi Server ............... .
218 219 219
4.3.3 .4.1. l. Sequence Diagram pada Database Connection
Manager ................. .
219
4.3 .3 .4.1.2. Sequence Diagram pada Data Barang lvfanager
224
4.3 .3 .4.1.3. Sequence Diagram pada Jenis Barang Manager
230
4.3.3.4.1.4. Sequence Diagram pada fransaksi
Manager Bulanan ..
233
4.3.3.4. l .5. Sequence Diagram pada Transaksi
lvfanager Tahunan
241
4.3.3.4. l .6. Sequence Diagram pada Chart
1innsaksi Bulanan ......................................... .
245
4.3.3.4.1.7. Sequence Diagram padaChart
Transaksi Tahunan .................. . 4.3.3.4.1.8. Sequence Diagram pada Stok Barang Manager
251 255
4.3.3.4.1.9. Sequence Diagram pada Client Manager...
257
4.3.3.4.1.10. Sequence Diagram padaRMI
Connection Manager .
268
4.3.3.4.1.11. Sequence Diagram pada Client Monitoring
276
4.3.3.4.1.12. Sequence Diagram pada Table Manager
278
4.3.3.4.2. Sequence Diagram pada Aplikasi Client
284
4 .3. 3 .4. 2.1. Sequence Diagram pad a Connection To Serl'er
Manager ..... 4.3.3.4.2.2. Sequence Diagram padaBertransaksi .............
284 290
4.3.3.4.2.3. Sequence Diagram pada Client fransaksi
Manager 4.3.3.4.2.4. Sequence Diagram padaData Barang Viewer... 4.3.3.4.3. Sequence Diagram pada Fungsi Lainnya
296 304 306
4.3.3.4.3. l. Sequence Diagram padaAnother
Manager Functions Sequence .......................... .
307
4.3.3.4.3.2. Sequence Diagram pada General Application
flmctions ............................... . 4.4. Implementasi Sistem 4.4. l. Implementasi Sistem Database Connection (JDBC) .. .. .... ... .....
311 312 312
4.4. l. l. Mencocokan Driver JDBC ............................................... .
314
4.4. l .2. Koneksi ke Database ........... .
314
4.4.1.3. Disconnect dari Database
315
4.4.1.4. Manipulasi Database
315
4.4.2. Implementasi Sistem Remote Method Invocation (RMI)............
320
4.4.2.1. Koneksi RMI pada Server
321
4.4.2.2. Koneksi RMI pada Client .......... .
324
4.4.2.3.
TokoOnlinefnte~face
dan lmplementasinya ............... .
327
4.4.2.4. Clien1TransaksiManage11ntelface dan Implementasinya ..
328
4.4.2.5. C/ientObject!nterface dan Implementasinya
331
4.4.3. Implementasi Sistem Main Program dan Tampilan Utama ...
332
4.4.3. l. Main Program dan Tampilan Utama pada Server.
333
4.4.3.2. Main Program dan Tampilan Utama pada Client.....
334
4.4.4. lmplementasi Sistem pada Manager ....
335
4.4.5. Implementasi Sistem Table Model dan Table Column Model.....
335
4.4.6. Implementasi Sistem Tree lvlodel .....
338
4.4.7. Implementasi Sistem Graphics (Chart) .......... .
339
4.4.8. Implementasi Sistem Prinl Preview. Table Setting dan Save......
341
4.5. Uji Coba Sistem 4.5. l. Uji Coba Sistem pada Aplikasi Server ...
343 343
4.5.1. l. Uji Coba Database Connection Manager ......................... .
344
4.5.1.2. Uji CobaDataBarangManager ........ .
334
4.5. l .3. Uji Coba Jenis Barang Manager ..................................... .
345
4.5. I .4. Uji Coba Transaksi Manager Bulanan
345
4.5. I .5. Uji Coba Transaksi Manager Tahunan
346
4.5.1.6. Uji Coba Chart Tran.mks! Bulanan
347
4.5.1.7. Uji Coba Chart Transaksi Tahunan
347
4.5.1.8. Uji Coba Siok Barang lvfanager ........................... ...... .........
348
4.5.1.9. Uji Coba Client Jvfanager
349
4.5.1.10. Uji CobaRMI Connection Manager ................................ ..
349
4.5.1.11. Uji Coba Client !Monitoring ............................................ .
350
4.5.1.12. Uji Coba Table Manager .................... ..
350
4.5.2. Uji Coba Sistem pada Aplikasi Client ..
351
4.5.2.1. Uji Coba Connection To Server Manager
351
4.5.2.2. Uji CobaBertransaksi .........
352
4.5.2.3. Uji Coba Client Transaksi Jvfanager ................................ .
352
4.5.2.4. Uji Coba Data Barang Viewer
353
4.5.3. Uji Coba Sistem pada Fungsi Lainnya ..
353
4.5.3 .1. Uji Coba Print Preview
353
4.5.3.2. Uji CobaPrint
354
4.5.3.3. Uji CobaSave
354
4.5.3.4. Uji Coba Table Setting .....
355
4.5.3.5. Uji Coba General Application Fi111ctions
355
4.6. Perawatan Sistem
356
BAB V PENUTUP 5.1. Kesimpulan
358
5.2. Saran ..
359
DAFTAR PUSTAKA LAMP IRAN A CARA INST ALAS I SISTEM LAMPIRAN B CARA PENGGUNAAN SISTEM
361
DAFTAR TABEL
Tabel 4.1
Data Model Requirement
140
Tabel 4.2
Uji Coba Database Connection Manager ............ .
344
Tabel 4.3
Uji Coba Data Barang Manager ............. .
345
Tabel 4.4
Uji Coba Jen is Barang Manager .. .... .. .... .. .... .. ...............................
345
Tabel 4.5
Uji Coba Transaksi Manager Bulan an
346
Tabel 4.6
Uji Coba Transaksi Manager Tahunan ........ .
346
Tabel 4.7
Uji Coba Chart Transaksi Bulanan
347
Tabel 4.8
Uji Coba Chart Transaksi Tahunan
348
Tabel 4.9
Uji Coba Stok Barang Manager .
348
Tabel 4.10
Uji Coba Client Manager ...
349
Tabel 4.11
Uji Coba RMI Connection Manager
350
Tabel 4.12
Uji Coba Client Monitoring
350
Tabel 4.13
Uji Coba Table Manager ...
351
Tabel 4.14
Uji Coba Connection To Seiver Mm1ager
351
Tabel 4.15
Uji Coba Bertransaksi .................... .
352
Tabel 4.16
Uji Coba Client Transaksi Manager ...
353
Tabel 4.17
Uji Coba Data Barang Viewer
353
Tabel 4.18
Uji Coba Print Preview
354
Tabel 4.19
Uji Coba Print
354
Tabel 4.20
Uji Coba Save
354
Tabel 4.21
Uji Coba Table Setting .............. .
355
Tabel 4.22
Uji Coba General Application Functions ...... .
355
DAFTAR GAMBAR
Gambar I. I
Ilustrasi Komputer yang tidak Terintegrasi
2
Gambar 1.2
Ilustrasi Komputer yang Terintegrasi
Gambar 2.1
Fungsi Sistem Informasi Akuntansi
Gambar2.l
Fungsi Sistem Informasi Akuntansi ...............
18
Gambar 2.2
DBMS I DBAS mengatur interaksi antara user dengan database .
24
Gambar 2.3
Ilustrasi Sistem Terdistribusi Pada Sistem Informasi Penjualan ..
25
Gambar 2.4
Daur hidup pengembangan sistem wateifall
35
Gambar2.5
One to One Relationship .................... .
42
Gambar 2.6
One to Many Relationship ..
43
Gambar2.7
Many to Many Relationship
43
Gambar 2.8
Ilustrasi dua buah objek yang saling berinteraksi
46
Gambar 2. 9
Ilurtrasi mengenai operasi squensial ........................ .
46
................. .............. ............
3 18
Gambar 2.10 Ilustrasi mengenai method
47
Gambar 2.11
48
Ilustrasi mengenai data objek
Gambar 2.12 Polymorphism pada method printPage
50
Gambar 2.13 Ilustrasi ten tang inheritance .......... .
51
Gambar 2.14 Ilustrasi mengenai encapsulation
52
Gambar 2.15 Notasi UML untuk Actor .
57
Gambar 2.16 Notasi UML untuk Class ......................... .
58
Gambar 2.17 Notasi UML untuk Inteiface
58
Gambar 2.18 Notasi UML untuk Use Case
59
Gambar 2.19 Notasi UML untuk Interaction ................................................. .
59
Gambar 2.20 Notasi UML untuk Package
59
Gambar 2.21 Notasi UML untuk Note
60
Gambar 2.22 Dependency Include
60
Gambar 2.23 Dependency Extend
61
Gambar 2.24 a. Dua class yang berasosiasi b. Dua class yang beragregasi
61
Gambar 2.25 Contoh Notasi Generalization
62
Gambar 2.26 Realization
62
Gambar 2.27 Contoh Use Case Diagram pada Rental VCD
65
Gambar 2.28 Contoh Class Diagram pada Rental VCD .
66
Gambar 2.29 Contoh Activity Diagram pada Rental VCD
67
Gambar 2.30 Contoh Sequence Diagram pada Rental VCD ...
68
Gambar 2.31 Proses Java menjalankan aplikasinya
71
Gambar 2.32 Java bisa digunakan pada OS yang berbeda ...
72
Gambar 2.33 Hubungan Program Java, API, JVM dan Hardware............
73
Gambar 2.34 Ilustrasi bagaimana aplikasi RMI mendistribusikan registiy dari para user untuk mendapatkan objek remote
78
Gambar 2.35 Relationship antara interface dan class pada RMI
79
Gambar 2.36 Arsitektur 2-tier ..
82
Gambar 2.37 Arsitektur 3-tier
82
Gambar 2.38 Ilustrasi Implementasi Driver IDBC
83
Gambar 3.1
Metode Ke1ja Penelitian
88
Gambar 4.1
Diagram Konteks Mesin Kasir Terdistribusi
129
Gambar 4.2
Ilustrasi Interface Client-Server
131
Gambar 4.3
Hubungan Antar Tabel
138
Gambar 4.4
Entily Relalionship Diagram Sistem Mesin Kasir Terdistribusi
141
Gambar 4.5
Use Case Diagram .......................... ..
148
Gambar 4.6
Class Diagram pada Server Toko Online
152
Gambar 4. 7
Class Diagram pada Database Connection Manager
155
Gambar 4.8
Class Diagram padaDala Barang Manager.............................
157
Gambar 4.9
Class Diagram padaJenis Barang Manager
159
Gambar 4.10 Class Diagram pada Ti·ansaksi Manager Bulanan .....................
161
Gambar 4.11 Class Diagram pada Transaksi Manager Tahunan.
163
Gambar 4.12 Class Diagram pada Chart Tiunsaksi
165
Gambar 4.13 Class Diagram pada Siok Barang Manager
167
Gambar 4.14 Class Diagram padaDelail StokBarang .......
169
Gambar 4.15 Class Diagram pada Client fl/Janager ....................................... ..
171
Gambar 4 .16 Class Diagram pad a RMI Conneclion Manager
174
Gambar 4.17 Package TransaksitvfanagerClient ............................................ .
176
Gambar 4.18 Class Diagram pada C/ienl Monitoring ........... ......................... ..
177
Gambar4.19 Class Diagram pada Table Manager
179
Gambar 4.20 Class Diagram pada Client ..................... .
181
Gambar4.21 Class Diagram pada Conneclion ]() Server Manager
183
Gambar 4.22 Package TransaksiManagerClienl ................. .
185
Gambar 4.23 Class Diagram padaBerlransaksi ............................................ .
185
Gambar 4.24 Class Diagram pada Client Transaksi Manager
187
Gambar 4.25 Class Diagram pada Data Barang Viewer .. .. .... .. ....... .. ........ .......
189
Gambar 4.26 Class Diagram padaAnother Manager Functions
191
Gambar 4.27 Class Diagram pada General Manager Functions
193
Gambar 4.28 Package Calendar ............... .
195
Gambar 4.29 Connect Database Activity Diagram
198
Gambar 4.30 Disconnect Database Activity Diagram .................................... .
199
Gambar 4.31 Add New Data Barang Activity Diagram
200
Gambar 4.32 Update Data Barang Activity Diagram .... .
202
Gambar 4.33 Delete Data Barang Activity Diagram .... ..
203
Gambar 4.34 Searching Data Barang Activity Diagram
204
Gambar 4.35 Jnserl Default Value Activily Diagram ............................ .
205
Gambar 4.36 Select fransaksi By Client Activity Diagram
206
Gambar 4.37 Transaksi Navigator Action Activity Diagram
208
Gambar 4.38 Select Chart Type Activity Diagram ........... ..
209
Gambar 4.39 Add Stok Barang Activity Diagram
············ ······· 210
Gambar 4.40 Send Message Activity Diagram
211
Gambar 4.41 RN.fl Connection and Client Connection Activity Diagram.......
212
Gambar 4.42 RMI Disconnection Activity Diagram
214
Gambar 4.43 Client Disconneclion Activity Diagram
215
Gambar 4.44 Make Table Active Activity Diagram
216
Gambar 4.45 Execute SQL Que1y Aclivity Diagram .. ... ........ .... ........... ..... ........ 217 Gambar 4.46 Send Data To Server Activity Diagram
218
Gambar 4.47 Connecl Database Sequence Diagram
220
Gambar 4.48 Disconnect Database Sequence Diagram ...................................
221
Gambar 4.49 Add New Database Connection Sequence Diagram
222
Gambar 4.50 Update Database Connection Sequence Diagram ............ ..
223
Gambar 4.51 Delete Database Connection Sequence Diagram
224
Gambar 4.52 Add New Data Barang Sequence Diagram
225
Gambar4.53 Update Data Barang Sequence Diagram
226
Gambar 4.54 Delete Data Barang Sequence Diagram
227
Gambar 4.55 Searching Data Barang Sequence Diagram
228
Gambar 4.56 Insert Default Value Sequence Diagram
229
Gambar4.57 Add New.Jenis Barang Sequence Diagram
230
Gambar 4.58 Update .Jenis Barang Sequence Diagram
231
Gambar 4.59 Delete .Jenis Barang Sequence Diagram
232
Gambar 4.60 Select Transaksi By Tanggal Sequence Diagram
233
Gambar 4.61 Select Transaksi By Client Sequence Diagram ........................ .
234
Gambar 4.62 Transaksi Navigator Action Sequence Diagram
235
Gambar 4.63 Simple Data Transaksi Sequence Diagran1
236
Gambar 4.64 All Data Transaksi Sequence Diagram .................................... ..
237
Gambar 4.65 Data Barang Transaksi Sequence Diagram
238
Gambar 4.66 Searching Transaksi Sequence Diagram ................................... .
239
Gambar 4.67 Select Bulan and Select Ta/nm Transaksi Sequence Diagram ...
240
Gambar 4. 68 Select By Bulan Sequence Diagram
242
Gambar 4.69 Select By Client Sequence Diagram
243
Gambar 4.70 Select Ta/nm Transaksi Sequence Diagram
244
Gambar 4. 71 Select Transaksi By Tanggal Sequence Diagram
245
Gambar 4. 72 Select Transaksi By Client Sequence Diagram ........................... .
246
Gambar 4. 73
Transaksi Component Tabbed Sequence Diagram ...
248
Gambar 4.74 Select Chari Type Sequence Diagram ........................................ .
249
Gambar 4.75 Select Bulan and Select Tahun Tiw1saksi Sequence Diagram
250
Gambar 4.76 Select By Bulan Sequence Diagram
251
Gambar 4. 77 Select li'ansaksi By Client Sequence Diagram ..
252
Gambar4.78 Select Talnm Transaksi Sequence Diagram
254
Gambar 4. 79 Update Sequence Diagram
255
Gambar 4.80 Detail Stok Barang Sequence Diagram
256
Gambar 4.81 Add New Client Sequence Diagram
258
Gambar 4.82 Update Client Sequence Diagram
259
Gambar 4.83 Delete Client Sequence Diagram
260
Gambar 4.84 Send Message To Client Sequence Diagram (server side) ...........
262
Gambar 4.85 Send Message To Client Sequence Diagram (client side) ........
263
Gambar 4.86 Quit To Client Sequence Diagram (.mrver side) ...................... .
264
Gambar 4.87 Quit To Client Sequence Diagram (client side) ............................
265
Gambar 4.88 Disconnect To Client Sequence Diagram (server side)
266
Gambar 4.89 Disconnect To Client Sequence Diagram (client side) ........
267
Gambar 4. 90 Add New RMI Connection Sequence Diagram .... ....... ........
268
Update RMI Connection Sequence Diagram
270
Gambar4.91
Gambar 4.92 Delete !?Nil Connection Sequence Diagram
271
Gambar 4. 93 Connect Sequence Diagram ..... .
272
Gambar 4. 94 Disconnect Sequence Diagram
273
Gambar 4.95 Connect All Sequence Diagram
274
Gambar 4.96 Disconnect All Sequence Diagram ..... .
275
Gambar 4.97 Select Client Sequence Diagram
277
Gambar 4.98 View Client Act!fity Sequence Diagram
277
Gambar 4.99 Dele1e Table Sequence Diagram
278
Gambar 4.100 Jvfake Table Active Sequence Diagram
279
Gambar 4.10 I Jvlake Table Non Ac live Sequence Diagram
280
Garn bar 4.102 Backup Table Sequence Diagram
281
Gambar 4. l 03 Res/ore Table Sequence Diagram
282
Gambar 4.104 Execu/e SQL Query Sequence Diagram
283
Gambar 4.105 Add New Connection Sequence Diagram
284
Gambar 4.106 Update Connection Sequence Diagram
285
Gambar 4.107 Delete Connection Sequence Diagram
286
Gambar4.108 Connect To Server Sequence Diagram (client side) .....
287
Gambar 4.109 Connect To Server Sequence Diagram (server side) ....................
288
Gambar 4.110 Disconnect From Se11>er Sequence Diagram (client side) ............ 289 Gambar 4.111 Disconnect From Server Sequence Diagram (server side) ........... 290 Gambar 4.112 Delete Data 1/'ansaksi Sequence Diagram
291
Gambar 4.113 Restart Transaksi Sequence Diagram ........................................... 292 Gambar 4.114 Finishing Transaksi Sequence Diagram ... .. .... .. .... ............ ...... .. ....
293
Gambar 4.11 5 Send Data 11Ymsaksi Sequence Diagram (client side)
294
Gambar 4.116 Send Data Transaksi Sequence Diagram (server side I)
295
Gambar 4.117 Send Data Transaksi Sequence Diagram (serevr side 2) ...... ..
295
Gambar 4.118 Update Data Transaksi Sequence Diagram (client side 1) .
296
Gambar 4.119 Update Data Trcmsaksi Sequence Diagram (client side 2)
297
Gambar 4.120 Update Data Transaksi Sequence Diagram (server side).........
299
Gambar 4.12 l Delete Data 1i-ansaksi Sequence Diagram (client side)...
300
Gambar 4.122 Delete Data Ti-ansaksi Sequence Diagram (sen,er side)...........
301
Gambar 4.123 Navigator Action Sequence Diagram
302
Gambar 4.124 Searching Transaksi Sequence Diagram ............... .
303
Gambar 4.125 Select Bulan and Select Tahun Sequence Diagram
304
Gambar 4.126 Searching Data Barang Sequence Diagram (client side) .
305
Gambar 4.127 Searching Data Barang Sequence Diagram (server side) ...
306
Gambar4.128 Select Font Type and Font Size Sequence Diagram
307
Gambar 4.129 Show HO!izontal Line Sequence Diagram
307
Gambar4.130 Show Vertical Line Sequence Diagram
307
Garn bar 4.131 Set Row Height Sequence Diagram .....
307
Gambar 4.132 Set lntercel/ S/1acing Sequence Diagram
308
Gambar 4 .13 3 Zoom Sequence Diagram .
308
Gambar 4.134 Print Action Sequence Diagram
308
Gambar 4.135 Change Paper Size Sequence Diagram ...
309
Gambar 4.136 Change Orientation Sequence Diagram
309
Gambar 4.13 7 Change lviargin Sequence Diagram
309
Gambar 4.13 8 Page Sequence Diagram
309
Gambar 4.139 Color Support Sequence Diagram
310
Gambar4.140 Print Sequence Diagram
310
Gambar 4.141 Save Sequence Diagram
311
Gambar 4.142 Look & Feel Sequence Diagram
311
DAFT AR LAMP IRAN
LAMP IRAN A CARA INST ALASI SISTEM A. Instalasi Java Virtual Machine (JVM)
A.I
B. Instalasi Manajemen Database __
A.I
C. Instalasi Sistem Aplikasi Mesin Kasir Terdistribusi
A.2
LAMPIRAN B CARA PENGGUNAAN SISTEM A. Sen1er Tako Online Manual . -------------
B.l
1. Database Connection Manager .
B.2
2. Data Barang Manager _________________ ----------------- -------------
B.6
3. Jenis Barang Manager_
B.11
4.
Transaksi A1anager Buhman
B.14
5.
fransaksi Manager Tahunan
B.19
6.
Chart 11-ansaksi Bulanan __ _
B.21
7. Chart Transaksi Tahunan _.
B.25
8. Stok Barang Manager __ _
B.29
9. Client A1anager
B.32
10. RMI Connection Manager
B.37
11. Client Monitoring
BAO
12. Table Manager
B41
B. Client Toko Online Manual L Connection To Server Manager .. __________________ -------------------------2.
Bertransaksi
B44 B45
B48
4. Data Barang Viewer
C. Another Manual
B.57 B.58
BABI PENDAHULUAN
1.1. Latar Belakang
Di zaman modern ini, kemajuan dan kecanggihan teknologi, khususnya teknologi informasi sangat pesat, kebutuhan informasi semakin diperlukan karena terbukti sangat efektif dan efisien untuk memudahkan suatu pekerjaaan. Banyak perusahaan yang menggunakan sistem informasi yang berbasiskan komputer untuk kelancaran bisnis dan pekerjaan mereka. Salah satu sistem yang digunakan adalah sistem informasi pada perusahaan dagang. Perusahaan dagang merupakan perusahaan yang membeli barang jadi dari produsen atau grosir dan kemudian menjualnya kembali kepada konsumen. Contolmya sepe1ii supermarket atau minimarket. Perusahaan ini memerlukan sistem infonnasi yang baik untuk membantu dalam komputasi basil bisnisnya. Berapa laba I ruginya, berapa jumlah stok barang, kapan stok barang ditambah, barang apa saja yang perlu ditambah stoknya dan lain sebagainya bisa dikerjakan dengan menggunakan sistem informasi penjualan. Tentunya bukan hanya satu atau dua !computer saja yang dibutuhkan untuk mewujudkan sistem informasi yang baik jika perusahaan dagang tersebut besar, namun membutuhkan beberapa !computer atau bayak komputer yang saling terhubung satu sama lain dengan memanfaatkan teknologi jaringan (networking). Pada saat ini, sistem informasi penjualan mungkin sudah seperti yang telah disebutkan di atas, yaitu menggunakan beberapa komputer yang digunakan untuk mendukun.g sistem informasi mereka, namun masih banyak yang belum
2
memanfaatkan teknologi jaringan, sehingga manajemen sistem basis data (DBMS) mereka masih belum terintegrasi dan terdistribusi dengan baik. Walaupun ada yang sudah terhubung dengan menggunakan jaringan, akan tetapi pengelolaan databasenya masih belum dike1jakan dengan baik. Tentunya pada sistem ini menimbulkan suatu permasalahan dalam pengolahan dan manipulasi database, seperti update data, memasukkan data barn, menghapus suatu data se1ia pada saat reporting, pengambilan keputusan (decision maldng), pembagian (sharing) sumberdaya, kesulitan pada saat pengembangan
aplikasi, dan lain sebagainya.
... l·-·--
111
i
L)~,:j
Gambar l. l llustrasi Komputer yang tidak Terintegrasi
Pada gambar di atas ditampilkan, beberapa buah komputer yang mengolah databasenya sendiri-sendiri tanpa terintegrasi dengan komputer yang lainnya. Pada kasus ini, mungkin komputer akan lebih mandiri dalam mengelola data mereka. Akan tetapi bagaimana jika pada suatu saat pimpinan perusahaan dagang membutuhkan data secara global, untuk mengetahui laba I rugi perusahaan atau untuk jenis laporan lain secara keseluruhan? Tentunya hams mengambil data satu persatu pada setiap komputer dan menganalisis kembali databasenya. Pada kasus
3
ini tentunya sangat tidak efisien serta membutuhkan waktu, tenaga, dan ketelitian yang tinggi dan mungkin biaya yang tidak sedikit untuk mengolah databasenya kembali. Untuk mengatasi hal tersebut, alangkah lebih baiknya jika suatu pernsahaan dagang mengintegrasikan semua komputemya dan mengelola serta mendistribusikan databasenya secara terpusat, atau yang disebut dengan sistem client-server. Server sebagai pengelola databasenya dan client sebagai user yang langsung bertatap muka antara sistem dengan pembeli (customer). Sehingga akan lebih
mudah
dalam
menganalisis,
memanipulasi,
mengupdate,
dan
mendistribusikan data, se1ia lebih mudah dalam mengembangkan jaringan, mengembangkan software, pembagian sumberdaya, lebih fleksibel dan lain sebagainya.
Gambar 1.2 Ilustrasi Komputer yang Terintegrasi
Untuk mengimplementasikan atau mewujudkan sistem penjualan tersebut memang tidak semudah apa yang dibayanp;kan, akan tetapi membutuhkan analisis
4
dan perancangan yang matang. Mengingat bahwa sistem yang terdisitribusi tersebut juga rnempunyai banyak kendala-kendala yang dihadapi, diantaranya adalah masalah keamanannya (security), Denial Of Service (DOS), dan lain sebagainya. Pada skripsi ini, penulis ingin mengirnplernentasikan sistern penjualan atau sistern kasir ini secara terdistribusi yang berbasis client-server, yaitu dengan menggunakan teknolog:i antara lain
JavaTM Remote Method Invocation (RMI\
sebagai koneksi client-servernya, JDBCTM sebagai koneksi databasenya, JavarM Foundation Classes (JFC) dan Abstract Window Toolkit (A WT) sebagai tampilan atau Graphical User Inte1jace (GUI).
1.2. Rumusan Masalah Pada sub bab sebelumnya, permasalahan yang terjadi jika komputer suatu perusahaan dagang belum terintegrasi telah sedikit disinggung, akan tetapi inti permasalahan adalah, bagaimana suatu sistem penjualan pada suatu perusahaan dagang bisa dikerjakan secara cepat, tepat, fleksibel, aman dan otomatis tanpa membuang-buang tenaga, waktu dan ketelitian yang tinggi dalarn memanipulasi, mengintegrasikan dan mendistribusikan databasenya. Pada sub bab ini, penulis akan merinci satu persatu permasalahan yang terjadi jika !computer suatu perusahaan dagang tidak terintegrasi dan datanya tidak terdistribusi, antara lain yaitu: a. Setiap user I kasir harus membuat laporan hasil transaksi penjualan masingmasing dan kesulitan pada saat menghitung keuntungan atau kerugian, karena harus menghitung hasil transaksi pada setiap !computer (tidak efektif).
6
b. Program ini bisa menentukan stok barang mana saja yang habis, atau barang apa saja yang lama belum terjual, dan dengan otomatis bisa membuat order pemesanan kepada suplier dari barang yang persediaannya akan habis. c.
Program ini bisa membuat laporan transaksi, baik transaksi pada setiap client, transaksi pada setiap hari, transaksi setiap bulan dan juga bisa membuat laporan data barang, laporan stok barang dan lain sebagainya.
d. Program ini bisa menggambarkan chart pendapatan I penghasilan, chm1 jumlah penjualan I transaksi dan prosentase keuntungan pada tiap harinya. Chart tersebut tersedia dalam tiga jenis, yaitu bar chart, line dan pie.
7
1.4. Tujuan Tujuan utama dari pembuatan dan pengembangan software ini, penulis berkeinginan
untuk
membantu
perusahaan
dagang
dalam
memanipulasi,
mengintegrasikan dan mendistribusikan databasenya secara cepat, tepat, fleksibel, aman dan otomatis. Bagi penulis, pembuatan program ini bertujuan untuk mengembangkan keahlian penulis dalam hal pernbuatan analisis sistern, perancangan rnanajernen sistern basis data (DBMS), perancangan desain aplikasi (UML), pernbuatan algorithrna pernrograman, sampai pada irnplementasi pembuatan coding program dan perawatannya.
1.5. Manfaat 1.5.1. Bagi Penulis Banyak sekali rnanfaat yang bisa penulis petik dalam pembuatan skripsi ini, yaitu diantaranya adalah sebagai berikut : a. Karena penulis mengerjakan pernbuatan program dengan berbagai rnacarn teknologi, yaitu antara lain : RMI, JDBC, JFC, AWT dan lain-lain, maka penulis bisa mendapatkan sintaks, cara pemrograman, dan pengalaman baru yang berharga dalarn membuat sebuah program. b. Dengan penyusunan skripsi ini, penulis sadar, bahwa membuat sebuah program itu tidak mudah, membutuhkan kesabaran, keuletan dan tidak rnudah putus asa. Baik dalam analisis, perancangan maupun pada imp! ementasinya.
8
c.
Penulis bisa lebih mengenal konsep Object Oriented Programming (OOP) pada Java serta mengenal konsep UML untuk mendesain aplikasi yang berbasis OOP.
d. Bisa menerapkan ilmu-ilmu yang diperoleh selama penulis kuliah, baik mengenai analisis dan perancangan, implementasi sampai pembuatan coding, serta bisa menerapkan ilmu Metodologi Penelitian, yaitu salah satu matakuliah yang penulis pelajari dalam penyususnan skripsi ini. e. Untuk memenuhi
salah satu syarat kelulusan
mahasiswa Teknik
lnformatika UIN SyarifHidayatullah Jakarta.
l.5.2. Bagi Akademik a. Mengetahui kemampuan mahasiswa dalam menguasai materi teori yang telah diperoleh selama kuliah. b. Mengetahui kemarnpuan mahasiswa dalam menerapkan ilmunya dan sebagai bahan evaluasi. c. Memberikan gambaran tentang kesiapan mahasiswa dalam menghadapi dunia kerja dari hasil yang diperoleh selama belajar I kuliah. 1.5.3. Bagi Pengguna a. Memudahkan perusahaan dagang dalam memanajemen databasenya. b. Mempercepat dalam proses menghitung keuntungan atau kerugiannya. c. Mernbantu
database
administrator
dalarn
hal
memanipulasi
data,
mengupdate data, menghapus data serta rnelaporkan transaksi yang terjadi setiap harinya. d. Memudahkan rnanajemen perusahaan dagang dalam mengembangkan apliksi,
rnengembangkan
1anngan,
rnemperluas
calmpan
iarmgan.
10
a. Pendifinisian Masalah dan Analisis Pendifinisian
masalah
dilakukan
untuk menentukan tujuan,
batasan-batasan sistem, kendala dan juga alternatif pemecahan masalah. Analisis digunakan untuk mengetahui perilaku sistem dan juga untuk mengetahui aktivitas apa saja yang ada dalam sistem tersebut. Dalam tahap ini akan diketahui apa saja yang menjadi kebutuhan sistem tersebut. Terdapat empat langkah dalam melakukan analisis sistem : o
Identijj1 : yaitu mengidentifikasi masalah
e
Understand: yaitu memahami earn kerja sistem yang akan dibangun I
dikembangkan. o
Analyze : yaitu menganalisis sistem.
o
Report : yaitu membuat laporan dari hasil penelitian.
b. Perancangan Pada tahap
m1
dilakukan
pemodelan pemecahan
masalah.
Perancangan dilakukan mulai dari tingkat global sampai ke tingkat rincian tertentu. Pada tahap perancangan ini. penulis melakukan desain untuk membuat gambaran sistem terdistribusi, sistem client-server, sistem database, sistem security, RMI dan lain sebagainya. Tahap m1 dibagi menj adi dua, yaitu : •
Perancangan Database o
Nonnalisasi dan tabel relationship yang merupakan pembentukan tabel-tabel sedemikian rupa sehingga te1jalin suatu integritas yang baik.
II
o
ERD (Entity Relational
Diagram)
yaitu berisi
komponen-
komponen himpunan entitas dan relasi, masing-masing entitas memiliki atribut. c
Perancangan Aplikasi Pada perancangan aplikasi, penulis menggunakan peralatan desain dari Unified Jvfodeling Laguage (UML), yaitu meliputi : o
Use Case Diagram (UCD): merupakan diagram yang menjelaskan aktifitas apa saja yang dilakukan oleh sistem yang akan dibangun dan siapa yang berinteraksi dengan sistem tersebut.
o
Class Diag:ram : merupakan diagram yang selalu ada pada pemodelan
sistem yang
berorientasi
objek.
Class diagram
menunjukkan hubungan antar class dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan. o
Aclivity Diagram : merupakan diagram yang menggambarkan berbagai alir aktifitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagairnana rnereka berakhir. Activity Diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
o Sequence Diagram : merupakan diagram yang menjelaskan secara detail urutan proses yang dilakukan oleh sistern untuk rnencapai tujuan dari usecase, interaksi yang terjadi antar class, operasi apa
12
saia yang terlibat, urutan antar operas1, dan informasi yang diperlukan oleh masing-masing operasi. c. Implementasi Setelah
perancangan
sistem
dilakukan,
selanjutnya
sistem
diimplementasikan (coding) ke dalam bentuk yang dimengerti oleh mesin yang diwujudkan dalam bentuk program atau unit program. Tahap implementasi sistem merupakan tahap meletakkan sistem supaya siap untuk dioperasikan. d. Uji Coba Pada tahap ini dilakukan dengan pengujian masing-masing modul (unit) program apakah sesuai dengan tugasnya. Kemudian dilakukan uji coba terhadap integrasi keseluruhan unit program untuk mengetahui apakah sistem yang telah dibuat sudah memenuhi kriteria yang diinginkan. e. Perawatan Pada dasarnya perawatan sistem adalah tanggung jawab pemakai di lapangan. Namun perancang sistem perlu memberikan dokumen standar pemeliharaan agar pekerjaan pemeliharaan dapat dilakukan dengan baik oleh pemakai.
13
1.7. Sistematilm Penulisan Dalam penulisan skripsi ini dibagi menjadi lima bab dengan beberapa sub pokok bahasan. Adapun sistematika dari skripsi ini adalah sebagai berikut : 1. BABI
: Pendahuluan
Dalam bah ini terdiri dari tujuh sub bab, yaitu : Latar Belakang, Rumusan Masalah, Batasan Masalah, Tujuan, Manfaat, Metodologi Penelitian, dan Sistematika Penulisan.
2. BAB II
: Landasan Teori
Bab ini berisi teori-teori yang digunakan dalam pembuatan program sistem penjualan client-server ini. Sub bah pada bab ini antara lain adalah : Sistem
konsep
Informasi
Akuntansi
(SIA),
Sistem
Terdistribusi,
Pengembangan Sistem, Perancangan Database, penge1iian dan konsep O~ject
Oriented Programming (OOP), Unified Modeling Laguage (UML),
pengenalan Java dan fitur-fitur yang ada di dalamnya.
3. BAB llI
: Metodologi Penelitian
Bab ini menguraikan secara rinci metode penelitian yang digunakan dalam menganalisis, merancang dan mengimplementasikan sistem. Selain itu akan dibahas pula mengenai cara uji coba dan perawatan sistem. 4. BAB IV
: Pembahasan
Pada bab ini, penulis akan membahas mengenai program yang akan penulis buat, yaitu rnengenai pendefinisian masalah dan analisis sistem, perancangan database dengan ERD dan Nonnalisasi, perancangan aplikasi dengan lf.1·e Case Diagram, Class Diagram, Activity Diagram dan
Sequence Diaf(ram serta implementasi dari sistern vang meliouti
14
pemrograman, penerapan sampai pada perawatan. Karena pada skripsi ini penulis membuat dua buah program, yaitu program server dan program client, maka penulis akan membahas program server terlebih dahulu kemudian program client. 5. BAB V
: Penutup
Bab ini merupakan penutup yang berisi kesimpulan dan saran dari hasil kegiatan penelitian dan pembuatan skripsi ini.
BABU
LANDASAN TEORI
Pada bab ini, penulis akan membahas mengenai teori-teori yang di1,,'lmakan dalam pembuatan program kasir terdistrubusi berbasis client-server. Teori tersebut antara Jain mengenai Sistem Informasi Akuntansi (SIA), Sistem Terdistribusi, Pengembangan Sistem, Perancangan Database, Object Oriented Programming (OOP), Unified Modeling Laguage (UML), konsep pemrograman Java serta fiturfitur yang ada di dalamnya.
2.1. Sistem lnformasi Alrnntansi 2.1.1. Konsep Sistem lnformasi Aku11ta11si Sistem informasi manajemen berkepentingan dengan penyediaan informasi yang menyeluruh dan terintegrasi untuk membantu pengambilan keputusan bagi berbagai tingkatan manajemen dalam suatu organisasi atau perusahaan. Ditinjau dari hal tersebut, maka sistem informasi akuntansi merupakan subsistem dari sistem informasi manajemen (SIM). Suatu subsistem yang menghasilkan informasi keuangan baik untuk kepentingan manajerial maupun eksternal berbasis data akuntansi biasanya disebut sistem informasi akuntansi.
2.1.2. Pengertian Sistem Informasi Almntansi Sistem
informasi
akuntansi
(SIA)
pengkordinasian sumber daya (data,
merupakan
meteria!s,
suatu
rerangka
equipment, suppliers,
17
kepada suplier, (5) Pengeluaran kas gaji karyawan. Sebagai pengolah transaksi,
sistem
informasi
akuntansi
berperan
mengatur
dan
mengoperasionalkan semua aktivitas transaksi perusahaan. b. Pemrosesan Informasi Tujuan
kedua
si stem
informasi
akuntansi
adalah
untuk
menyediakan informasi yang diperlukan dalam pengambilan keputusan yang dilaksanakan oleh aktivitas yang disebut pemrosesan informasi. Sebagian dari keluaran yang diperlukan oleh pemroses informasi disediakan oleh sistem pemrosesan transaksi, seperti laporan keuangan dari sistem pemrosesan transaksi. Namun sebagian besar diperoleh dari sumber lain, baik dari dalam maupun dari luar perusahaan.
2.1.4. Fuugsi Sistem Iuformasi Akuntansi Setiap sistem informasi akuntansi melaksanakan lima fungsi utama, yaitu pengumpulan data, pemrosesan data, manajemen data, pengendalian data (tennasuk security), dan penghasil informasi. Gambar 2.1 menunjukkan hubungan fungsi tersebut. Setiap fi.mgsi terdiri atas beberapa langkah dan urutan langkah tersebut membentuk suatu prosedur.
18
,
r•••••••••••••••••••"''''''"'''''""'''''"'''""''""'""'"''''""''""'''''''''"'"''""'"'i
!
I i
;
J
r··-.. . "l·•• c.o;r.:r ,eG -L- .
I
cf datJ '-·- - - ; i
I
! (
!
j. ................. .
i
\.J;;erg 0f
1
i:1~Cffl1Bt!O')
!
iI
i
,..................
Data
! !
····················!
i )
! I i
!
L.....................................................................................................J Gambar 2.1 Fungsi Sistem Informasi Akuntansi
1
a. Pengurnpulan Data Fungsi pengumpulan data terdiri atas mernasukkan data transaski melalui formulir, mensyahkan serta memeriksa data untuk rnernastikan ketepatan dan kelengkapannya. Jika data bersifat kuantitatif, data dihitung dahulu sebelurn dicatat. Jika data jauh dari lokasi pemrosesan, maka data harus ditransmisikan lebih dahulu. b. Pemrosesan Data Pemrosesan data terdiri atas proses pengubahan input menjadi output. Fungsi pemrosesan data terdiri atas langkah-langkah sebagai
berikut: •
Pengklasifikasian atau menetapkan data berdasar kategori yang telah ditetapkan.
" 1
Menyalin data ke dokurnen atau media lain.
l)ikutin dari "J?eJJort of'll1e (--.on1n1ittee 011,,fccountinf! and InfOnnation Svsten1" in Conunittee Renorts:
19
"
Mengurutkan, atau menysusn data menurut karaktersitiknya.
"
Mengelompokkan atau mengumpulkan transaski sejenis.
•
Menggabungkan atau mengkombinasikan dua atau lebih data atau ars1p.
•
Melakukan penghitungan.
•
Peringkasan, atau penjumlahan data kuantitatif.
"
Membandingkan data untuk mendapatkan persamaan atau perbedaan yang ada.
c. Manajemen Data Fungsi manajemen data terdiri atas tiga tahap, yaitu: penyimpanan, pemutakhiran (updating) dan pemunculan kembali (retrieving). Tahap penyimpanan merupakan penempatan data dalam penyimpanan atau basis data yang disebut arsip. Pada tahap pemutakhiran, data yang tersimpan diperbaharui dan disesuaikan dengan peristiwa terbaru. Kemudian pada tahap retrieving, data yang tersimpan diakses dan diringkas kembali untuk diproses lebih lanjut atau untuk keperluan pembuatan laporan. Manajemen data dan pemrosesan data mempunyai hubungan yang sangat erat. Tahap pengelompokkan data dan pengurutan data dari fungsi pemrosesan data, misalnya sering dilakukan sebagai pendahuluan sebelum dilakukan tahap pemutakhiran dalam fungsi manajemen data. Manajemen data dapat dipandang sebagai bagian dari pemrosesan data. Manajemen data akan menunjang pencapaian efisiensi aktivitas dalam proses menghasilkan informasi dan mendorong dipatuhinya
20
kebijakan
manaiemen terutama mengenai
informasi
aktivitas dan
informasi kebijakan manajemen. d. Pengendalian Data Fungsi pengendalian data mempunyai dua tujuan dasar: (1) untuk menjaga dan menjamin keamanan aset perusahaan, tem1asuk data, dan (2) untuk menjamin bahwa data yang diperoleh akurat dan lengkap serta diproses dengan benar. Berbagai teknik dan prosedur dapat dipakai untuk menyelenggarakan pengendalian dan keamanan yang memadai. e. Penghasilan Informasi Fungsi penghasil informasi ini terdiri atas tahapan pemrosesan informasi seperti penginterprestasian, pelaporan dan pengkomunikasian informasi.
2.1.5. Komputer Akuntansi Sebenarnya tidak ada komputer yang khusus untuk mengerjakan pemrosesan data keuangan yang disebut komputer akuntansi. Yang ada adalah komputer yang dimanfaatkan untuk mengolah data keuangan menjadi informasi keuangan. Karena itu diperlukan program tertentu agar komputer dapat mengerjakan apa yang diinginkan dalarn pengolahan data keuangan tersebut. Salah satu program tersebut adalah program yang akan penulis irnplementasikan dari skripsi ini. a. Kornputerisasi Proses Akuntansi Melihat karakteristik komputer dan karakteristik proses akuntansi, dapat disirnpulkan bahwa ada bagian dari proses pencatatan yang
21
fungsinya dapat diganti dengan komputer. Bila dipelajari sifatnya, proses mulai dari penjurnalan sampai ke pelaporan sebenamya bersifat matematis (karena hubungan buku besar dapat ditunjukkan dalarn persamaan akuntansi), sistematis (karena urutan mengeijakannya jelas) dan logis (karena unsur pertimbangan atau judgement tidak terlibat lagi). Dengan kata lain, proses tersebut sifatnya adalah penambahan, pembandingan, penyortiran, pereklasifikasian, dan peringkasan dengan cara tertentu yang sudah jelas atau pasti. Pekerjaan atau tugas yang demikian biasanya menjadi objek komputerisasi. Dengan sistem komputer seperti di atas malrn langkah yang paling kritis adalah langkah analisis transaksi karena kalau langkah ini salah, basil pengolahan data oleh komputer juga ikut salah. Perlu dicatat bahwa konsep pelaporan keuangan tidak dapat diganti oleh komputer, yang dapat diganti dengan komputer adalah proses pengolahan datanya. Oleh karena itu, bagian akuntansi yang mengolah data dengan komputer sering disebut dengan bagian Electronic Data Processing (EDP) yang selain mengolah data akuntansi bagian ini juga mengolah data perusahaan yang lain. b. Mencatat Transaksi pada Sistern Kornputer Program komputer untuk akuntansi biasanya dirancang dengan cermat sehingga operator yang melakukan pencatatan transaksi dapat melaksanakannya dengan rnudah. Setiap langkah yang dikerjakan dalam siklus akuntansi (penjurnalan, pengakunan dan penyusunan daftar saldo) dapat dilakukannya dengan rnengikuti instruksi yang langsung dapat
22
dilihat pada layar monitor. Instruksi yang sudah disiapkan pada waktu merancang sistem biasanya ditampilkan di layar monitor dalam bentuk menu. Menu akan menyajikan daftar operasi yang dapat diminta oleh operator dan operator tinggal memilih operasi yang dikehendaki. c. Pertimbangan Penggunaan Komputer e
Keuntungan o
Biaya (cost) dapat ditekan, karena jika tanpa komputer akan membutuhkan lebih banyak waktu dan tenaga, sehingga akan menambah biaya pengeluaran.
o
o
Kecepatan (speed) pemrosesan akuntansi.
o
Ketelitian (accuracy) penghitungan akuntansi.
o
Kapasitas (capacity) penampungan data.
Kelemahan o
Kegagalan komputer (computer failure) dapat merunyamkan perusahaan karena data dapat rusak atau hilang atau tidak dapat dibaca kembali.
o
Kejahatan pada !computer (computer crime) juga merupakan ancaman bagi perusahaan yang mengandalkan operasi dan pencatatan keuangannya dengan kornputer.
2.1.6. Database Accounting System (OBAS)
DataBase Accounting System (DEAS) rnenggunakan konsep yang sarna dengan konsep DataBase Management System (DBMS).
23
Organisasi yang biasanya sukses adalah organisasi yang dapat memberikan support informasi yang relevan tehadap tindakan yang diambil manajer. Untuk mendapatkan informasi relevan secara efisien, harus ada akses cepat data (bahan olah mentah). Manajemen data dengan fokus pada koleksi data, menyortir, dan mengirimkan kembali (retrieval) merupakan aktivitas utama dalam organisasi. Manajemen data yang efisien membutuhkan penggunaan database dengan komputer. Database semacam ini merupakan electronic .filling cabinet yang sangat terorganisir dengan baik dengan perangkat lunak yang canggih. Secara formal, DBMS adalah struktur dari koleksi data mengenai data atau metadata. Metada merupakan karakteristik data dan bentuk hubungan data dengan basis datanya. DBMS sendiri dapat pula merupakan kumpulan dari program yang mengelola struktur basis data dan mengendalikan akses ke datadata yang ada di basis data. DBAS dibangun dengan mengadopsi konsep yang dibangun
oleh
DBMS
tersebut.
Secara teknis
senng
pula
DBAS
diimplementasikan bersamaan dengan DBMS untuk sistem database yang bersifat komprehensif. Secara diagramatis akan ditunjukkan bagaimana DBMS dan DBAS mengelola interaksi antara pengguna akhir dan basis data.
24
Ca1aba::e sttuc:u1e
Erd veer cia;a
DBMS/
i\pphcation Programs
DBAS
Cus:cmer cl ata
irve-ntory
Encl user.:;
lnvoices.
Gambar 2.2 DBMS I DEAS mengatur interaksi antara user dengan database
2
Database yang baik tidak bisa terbentuk begitu saja, struktur dan isi
hams didesain dengan sangat hati-hati. Kenyataannya, memang tahapan desain database merupakan tahapan yang krusial. Database yang didesain dengan baik memfasilitasi manajemen data dan menjadi penghasil iinformasi yang bernilai. Desain database yang kurang baik akan menimbulkan redudansi data (duplikasi data). Desain database yang kurang baik ini pada akhirnya akan menyebabkan pengambilan keputusan yang jelek.
2.2. Sistem Terdistribusi 2.2.1. Gambarnn Umum Sistem Terdistribusi Di masa yang akan datang, saat hampir semua aktivitas manusia memanfaatkan komputer sebagai sarana utamanya. Berbagai basis data berskala besar telah disimpan dalam format elektronis. Demikian pula berbagai aplikasi yang mendasarkan, pada basis data telah dikomputerisasi dalam sebuah lingkungan jaringan komputer yang meliputi berbagai instansi ?
25
dan pemsahaan. Pada saat itu dimensi ruang benar-benar telah berkontraksi sedemikian rupa, sehingga dunia maya seakan-akan telah menjadi dunia nyata dan berbagai aspek kehidupan manusia terhubung melalui suatu jaring-jaring yang amat kompleks. Begitu juga dengan sistem informasi penjualan terdistribusi, pada saat kasir sedang melakukan transaksi dengan pembeli, pada saat itu juga data transaksi langsung dikirim ke bagian server administrator dan langsung diketahui berapa laba/mgi dan pajak dari transaksi tadi, dan juga secara otomatis mengurangi stok barang yang tersedia. Jika stok suatu barang habis, komputer server dapat meminta barang kepada suplier secara otomatis, tanpa dioperasikan dulu oleh server administrator.
Suplier 1
~
S"plio<'
~~m
D = Server
Data Tmnsaks
(Client 2) Transaksi dg pembe!i
(Chen! 1) Transaksi dg pombe/I
Gambar 2.3 Ilustrasi Sistem Terdistribusi Pada Sistem lnformasi Penjualan
26
Sistem
komputer
terdistribusi
adalah
sebuah
sistem
yang
memungkinkan aplikasi komputer beroperasi secara terintegrasi pada lebih dari satu lingkungan yang terpisah secara fisis. Sistem informasi kasir terdistribusi menunjukkan komponen-komponen aplikasi yang terdistribusi (di tempat kasir-kasir bertransaksi dengan pembeli, di tempat server administrator bekerja, dan di tempat suplier berada). Ciri khas sistem komputer terdistribusi adalah heterogenitas dalam berbagai ha!, antara lain : perangkat keras, sistem operasi, aplikasi dan bahasa pemrograman. Adalah tidak mungkin untuk mengembangkan sistem terdistribusi yang homogen secara paksaan, karena secara alamiah sistem komputer terdist1ibusi tumbuh dari lingkungan yang heterogen.
2.2.2. Pengertiau Sistem Terdistribusi Menurut Colouris, pengertian sistem terdistribusi A system in which
hardware or so.fiware components located at networked computers communicate and coordinate their actions only by message passing. Maksudnya adalah sistem terdistribusi merupakan sebuah sistem yang komponen hardware dan komponen softwarenya berada pada suatu jaringan komputer,
komponen
tersebut
saling
berkomunikasi
dan
melakukan
koordinasi
hanya dengan cara pengiriman pesan (message passing).
Sedangkan menurut Tanembaum A distributed system is a collection of
independent computers that appear to the users of the system as a single computer. Maksudnya adalah sistem terdistribusi merupakan kumpulan dari
27
komputer-komputer independen yang saling berhubungan, di mana dipandang oleh pengguna hanya sebagai sebuah sistem !computer. Sistem terdistribusi dapat bekerja secara serentak (concurrent) atau bersamaan sehingga bisa menggunakan sumberdaya bersama-sama (resource
sharing) yang meliputi hardware (misalnya : disk, printer, scanner) dan juga software (misalnya : berkas, basis data, obyek data, dan lain-lain).
2.2.3. Karakteristik Sistem Terdistrib11si a. Bersifat Serentak (concurrent)
dalam sistem terdistribusi
suatu
sumberdaya bisa digunakan secara bersama-sama (serentak), misalnya beberapa kasir I client dengan serentak mengakses data barang server secara bersamaan. b. Tidak ada tetapan wak1:u (no global clock) : sulit mensinkronkan waktu seluruh komputer yang terlibat. Hal tersebut berpengaruh pada pengiriman pesan, seperti pada saat beberapa proses berebut mgm masuk (critical
section). c. Kegagalan-kegagalan (failures) suatu komponen bersifat independen tidak ada total kegagalan, tetapi hanya sebagian saja kegagalan tersebut. Artinya, setiap komponen dapat mengalami kegagalan, namun komponen lain bisa tetap be1jalan dengan baik.
28
2.2.4. Ke11ntn11g:rn dan Manfaat Sistem Terdistribusi a. Distribusi Fungsi : setiap komputer memiliki kemampuan fungsi yang berbeda-beda, sehingga dengan sistem terdistribusi ini fungsi-fungsi tersebut bisa digunakan bersama-sama, misalnya : 0
Client dengan server
e
Host I terminal
e
Data gathering I data processing
b. Distribusi Be ban at au Keseimbangan : pemberian tugas ke prosesor secukupnya sehingga beban kerja seluruh sistem dapat teroptimasi dengan baik. c. Replikasi Kekuatan Pemrosesan : sistem terdistribusi terdiri dari kumpulan mikrokomputer yang memiliki kekuatan pemrosesan yang tidak dapat dicapai oleh superkomputer, sehingga dapat meningkatkan kinerja
(j;e1.forma11ce) sistem informasi yang ada. d. Lebih Ekonomis : kumpulan mikroprosesor menawarkan harga dan unjuk ke1ja yang lebih baik dari pada mail1frame. e. Fleksibilitas
komputer yang berbeda-beda dengan kemampuan yang
berbeda pula dapat dibagi (sharing) antar satu pengguna dengan pengguna yang lainnya.
2.2.5. Ta11ta11gan Sistem Terdistribusi a. Keheterogenan Komponen (heterogenity)
sistem terdistribusi dapat
dibangun dengan berbagai bahasa pemrograman, sistem operasi, perangkat keras dan oeranrrkat lunak vanrr berheda TJntnk mternrnfasi he!
tcers,,h11t TP
29
dapat digunakan untuk menjembatani perbedaan jaringan, sedangkan untuk
mengatasi
perbedaan
yang
lainnya
dengan
menggunakan
middleware. b. Keterbukaan (openness) : memastikan bahwa sistem dapat diperluas dan dikembangkan serta mudah dalam pemeliharaannya, yaitu dengan cara mengikuti standar antarmuka (inte1:face),
karena setiap komponen
memiliki antarmuka yang akan di-publish ke komponen lain dan memerlukan integrasi berbagai komponen yang dibuat oleh programmer atau vendor lain. c. Keamanan (security) : data yang di-share dan transmisi informasi lainnya perlu dilengkapi dengan enkripsi I dekripsi, dan juga diperhatikan masalah, antara 1ai n : •
Kepribadian (privacy)
•
Keaslian (autentication)
•
Ketersediaan (avaibility)
d. Perluasan (scalability) : sistem terdistribusi harus mempertimbangkan, apakah sistem tersebut masih efektif dan handal dalam perkiraan pertumbuhan I perkembangan, dan juga mempertimbangkan jangan sampai te1jadi bottleneck, jika tidak memungkinkan perlu menggunakan replikasi sistem terdistribusi. e. Penanganan Kesalahan (failure handling) : penanganan kesalahan ini bisa dilakukan dengan cara antara lain : pendeteksian kesalahan, transmisi ulang
(masking),
toleransi
kesalahan
(exception
handling),
menganalisis kembali kemubadiran (redundancv) komnonen iarinrran.
dan
30
f
Keserentakan (concurency)
di
dalam sistem terdistribusi
suatu
sumberdaya digunakan secara bersama-sama, sehingga setiap client dapat mengakses sumberdaya tersebut secara serentak. Oleh karena itu, perlu dipertimbangkan masalah deadlock dan l!felock, misalnya dengan cara penjadwalan yang konsisten terhadap current thread. g. Transparansi (transparency) : merupakan menyembunyikan keaneragaman (heterogeneus) dan tersebarnya sistem, sehingga tampak sebagai satu si stem bagi pengguna. Kategori transparansi antara lain : •
Access : menyembunyikan penggunaan komunikasi untuk mengakses remote resource sehingga user beranggapan bahwa semua resource adalah lokaL
@
Location : user tidak perlu mengetahui lokasi dari remote resources.
•
Concurrency
user tidak peduli keberadaan paralel akses ke remote
resource dan inkonsistensi dihindari dengan menggunakan mekanisme concurrency control. o
Replication : menyembunyikan perbedaan-perbedaan antara layanan replicated dan non-replicated.
o
Failure : menyembunyikan pengaruh partial fail. Hal ini dicapai dengan cara replikasi resources dan menerapkan mekanisme recovery.
o
lvligratiofl/Mobility : kemampuan untuk melakukan relocate resource secara dinamik tanpa kekuatiran rekonfigurasi ulang dari user.
•
Performance
meminimalkan
tambahan
pe1formance
dalam
menggunakan remote resource, sehingga response lime dan trhoughput
31
•
Scaling : menyembunyikan variasi dalam kelakukan sistem ketika di lakukan pembahan scope atau skala sistem. Scaling seharusnya tidak memerlukan pembahan besar untuk struktur sistem dan operasi untuk mengakomodasi pembahan skala tersebut. Skala diukur dalam hal kecepatan (slow to fast), size (small to large), geograpgical scope
(local or remote).
2.2.6. Sistem Terdistrilmsi Client-Server Konsep sistem terdistribusi adalah sebuah sistem yang melibatkan lebih dari satu komputer dalam suatu infrastmktur jaringan baik lokal, internet bahkan wireless. Sebuah sistem terdistribusi, tidak hanya melakukan komunikasi antara satu proses pada satu komputer dengan proses pada komputer yang lain, namun juga perlu mempertimbangkan ketersediaan infrastmktur jaringan yang memadai dan juga dukungan standarisasi sistem yang terbuka. Model client-server menjadi suatu model yang tidak dapat dilepaskan dari
sistem terdistribusi
m1,
karena
model
client-server
m1
sangat
memungkinkan koordinasi antara satu proses dengan proses yang lain, agar pemakaian resources dalam sistem terdistribusi dapat lebih baik. Dukungan
middleware yang bersifat terbuka menjadi suatu kebutuhan yang hams dipenuhi. Contoh middleware standard yang bersifat terbuka antara lain seperti
CORBA (Common Object Request Broker Architecture), RMI
(Remote Method Invocation), RPC (Remote Procedure Call), dan DCOM.
32
Di samping itu dukungan dari layanan database server juga menjadi kebutuhan yang penting, karena layanan inilah merupakan pusat penyimpanan data yang dapat mencakup seluruh sistem terdistribusi. Pada program yang akan penulis buat, middleware yang akan gunakan dalam pengembangan aplikasi adalah RMI pada Java dengan koneksi database menggunakan JDBC. Dengan teknologi ini, aplikasi yang akan penulis kembangkan diharapkan akan dapat menghasilkan sebuah sistem penjualan terdistribusi yang baik dan dapat menjadi sistem penjualan masa depan.
2.3.
Pengembangan Sistem
2.3.1. Pengertian Pengembang:m Sistem Pengembangan sistem dapat berarti menyusun suatu sistem yang baru untuk menggantikan sistem yang lama secara keseluruhan atau perbaikan pada sistem yang telah ada, dengan harapan bahwa sistem yang baru tersebut dapat mengatasi pennasalahan yang timbul pada sistem yang lama.
2.3.2. Daur Hidup Pengembangan Sistem Wate1:fall Metode ini sering disebut dengan Classic Life Cycle. Model ini menuntut suatu pendekatan sistematik-sekuensial dari proses pengembangan perangkat lunak, dimulai pada tingkatan sistem dan dilanjutkan dengan analisis, perancangan, pengkodean, uji coba, dan pemeliharaan. Model waterfall tersusun atas aktivitas-akivitas berikut ini :
a.
-~)1stem
Engineering and Analysis Karena perangkat lunak selalu merupakan bagian dari suatu sistem
33
menentukan keperluan untuk semua elemen sistem dan kemudian dilanjutkan dengan menentukan keperluan untuk perangkat lunak. Pengetahuan terhadap sistem ini terasa perlu ketika perangkat lunak harus berinteraksi dengan elemen-elemen sistem yang lain seperti perangkat keras, rnanusia dan basis data. Pada aktivitas system engineering dan analisis ini dilakukan penentuan atau anatisis keperluan-keperluan di tingkat sistern. b. Sqftware Requirement Analysis
Proses pengurnpulan keperluan dan batasan-batasan difokuskan pada keperluan perangkat lunak. Untuk rnemahami sifat-sifat dasar dari perangkat lunak yang akan dibangun, seorang analyst harus memahami domain informasi untuk perangkat lunak tersebut dengan baik, sebaik dalam memahami fungsi-fungsi yang dikehendaki, unjuk kerja dan Inte1:face (antar muka) yang ada.
Selama proses analisis, analyst membuat model dari perangkat lunak. Maksud pembuatan model ini adalah untuk memperoleh pengertian yang lebih baik terhadap aliran data dan kontrol, proses-proses fungsional, tingkah laku operasi dan informasi-informasi yang terkandung di dalamnya. c.
S)1stems Design
Desain sistem menentukan bagaimana suatu sistem menyelesaikan apa yang harus diselesaikan, tahap ini menyangkut mengkonfigurasi dari komponen-komponen software dan hardware sistem sehingga setelah instalasi dari sistem akan benar-benar memuaskan rancang bangun yang
34
telah ditetapkan pada akhir tahap analisis sistem. (George MScoot, 1986,
ha! 518) d.
Coding Pengkodean adalah proses menterjemahkan rancangan yang telah dibuat ke dalam bentuk bahasa yang bisa dibaca oleh mesin. Jika rancangan dibuat secara detail maka pengkodean akan menjadi aktivitas yang cepat.
e.
Testing Ketika pengkodean telah selesai dilakukan selanjutnya program harus diuji coba. Proses uji coba di fokuskan terhadap : "
Logika internal perangkat lunak
•
Pemastian bahwa semua perintah yang ada telah dicoba, dan
•
Fungsi ekstemal, untuk memastikan bahwa dengan masukan tertentu suatu fungsi akan menghasilkan keluaran sesuai dengan yang dikehendaki .
.f Maintenance
Setelah perangkat lunak diberikan kepada pemakai dan telah be1:jalan beberapa lama kemungkinan besar akan mengalami pernbahan. Pernbahan tersebut bisa terjadi karena : "
Kesalahan-kesalahan yang telah terdeteksi,
•
Karena perangkat lunak harus beradaptasi untuk mengimbangi perubahan-perubahan
yang
ada
pada
lingkungannya
perubahan sistem operasi atau peralatan yang dipakai), atau
(misalkan
35
e
Karena pemakai menghendaki fungsi-fungsi dan kemampuan yang lebih. Untuk mengatasi perubahan yang te1jadi, fase pemeliharaan biasanya lebih memilih untuk memperbaiki perangkat lunak yang telah ada dari pada harus membuat yang baru.
~i!im En~inecring ano AnMv~~ · .J,
!ij!(Wari Ri~urriminl Anil)~!
-i
Systems Design -~-i
( Coding
J-i
( Testingl-i
~-----~~l_(_M.~anceJ Gambar 2.4 Daur hidup pengembangan sistem waterfall
3
2.3.3. Pernngkat Pemodelan Pengembangan Sistem
Perangkat pemodelan merupakan salah satu ciri pendekatan terstruk:tur dalam pengembangan sistem. Perangkat pemodelan adalah suatu model yang digunakan untuk menguraikan sistem menjadi bagian-bagian yang dapat diatur dan mengkomunikasikan ciri konseptual dan fungsional kepada pengamat.
36
Jenis perangkat pemodelan antara lain Data Flow Diagram (DFD), State Transition Diagram (STD), Unified Modeling Laguage (UML). Pada pemodelan sistem yang akan penulis buat, akan menggunakan notasi UML sebagai alat pemodelannya. Penulis menggunakan pemodelan UML
karena
dalam
pengembangan
sistem,
penulis
menggunakan
pengembangan sistem yang berbasis Object Oriented Programming (OOP) dengan bahasa pemrograman Java. Penjelasan lebih lanjut mengenai OOP, UML dan Java akan dibahan pada sub bab berikutnya, yaitu sub bab setelah perancangan database.
2.4. Pernncangan Database 2.4. l. Pengertian Database Database adalah sekumpulan file-file yang saling berhubungan satu sama lain dengan beberapa kunci penghubung, tersimpan dalam media penyimpanan di luar memori komputer. Media simpan ini dapat berupa disket atau hardisk. Database dapat dinyatakan sebagai suatu sistem yang memiliki karakteristik, antara lain : a. Merupakan suatu kumpulan interrelated data yang disimpan bersama tanpa menggangu satu sama lain atau membentuk kerangkapan data. b. Kumpulan data dalam database dapat digunakan oleh sebuah program aplikasi atau lebih secara optimal. c. Penambahan data barn, penghapusan data, modifikasi dan pengambilan kembali data dapat dilakukan dengan mudah dan terkontrol.
37
d. Data merupakan suatu sumber yang sangat berguna bagi hampir di semua orgamsas1.
2.4.2. Konsep Peranca11ga11 Database Penerapan database dalam sistem informasi disebut dengan database system.
Sistem
basis
data
adalah
suatu
sistem
informasi
yang
mengintegrasikan kumpulan dari data yang saling berhubungan satu dengan yang lainnya dan membuatnya tersedia untuk beberapa aplikasi yang bermacam-macam di dalam suatu organisasi. Dengan sistem basis data ini tiap-tiap orang atau bagian dapat mernandang database dari beberapa sudut pandang yang berbada. Bagian kredit dapat memandangnya sebagai data piutang, bagian penjualan dapat memandangnya sebagai data penjualan, bagian personalia dapat memandangnya sebagai data karyawan, bagian gudang dapat memandangnya sebagai data persediaan. Semuanya terintegrasi dalam sebuah data yang umum. Berbeda dengan sistem pengolahan data tradisional, sumber data ditangani sendiri-sendiri untuk tiap aplikasinya. Dalam membuat suatu database, diperlukan suatu langkah atau tahapan supaya pengorganisasian file dapat me11jadi lebih baik. Langkah utarna tersebut adalah menentukan tipe-tipe file, yaitu antara lain sebagai berikut : 0
•
Jvfasterfile : merupakan induk dari segala file di dalam database. fransaction file : rnerupakan file yang digunakan untuk menyimpan data
transaksi yang sedang dilakukan. •
Reoorl file : meruoakan file untuk nelanoran
38
e
Histmy file : merupakan penyimpan dari sejarah penggunaan file-file yang ada di dalam database.
e
Backup file : merupakan file pelindung apabila terjadi kerusakan pada file induk.
e
Working file
merupakan file yang aktif selalu digunakan pada
Manajemen database. Setelah file-file tersebut ditentukan tipe-tipenya, langkah selanjutnya adalah membuat akses dan organisasi file. Akses file adalah suatu metode yang menunjukkan bagaimana suatu program komputer akan membaca record-record dari suatu file. File dapat diakses dengan dua cara yaitu secara urut (sequential access) atau secara langsung (direct access atau random
access). Metode urut dilakukan dengan membaca atau menulis suatu record di file dengan membaca terlebih dahulu mulai dari record pertama, urut sampai dengan record yang diinginkan. Metode akses langsung dilakukan dengan earn langsung membaca record pada posisinya di file tanpa membaca dari record pertama terlebih dahulu. Organisasi file adalah pengaturan dari suatu record secara logika dalam file dihubungkan satu dengan lainnya. File dapat diorganisasikan secara urut atau secara acak.
2.4.3. Manajemen Database Sistem Manajemen database merupakan perangkat lunak yang mengatur proses pengelolaan database. Pengelolaan ini meliputi pembuatan database. akses terhadao database serta nenvimnAnen
39
Dengan tersedianya data yang melimpah, maka masalah pengaturan data secara efektif menjadi
suatu hal
yang sangat penting dalam
pengembangan sistem informasi manajemen. Oleh karena itu, maka tujuan dari diadakannya pengaturan (managemen) data adalah sebagai berikut : a. Menyediakan penyimpanan data untuk dapat digunakan oleh organisasi saat sekarang dan masa yang akan datang. b. Cara pemasukan data, sehingga memudahkan tugas operator dan menyangkut pula waktu yang diperlukan oleh pemakai untuk mendapatkan data serta hak-hak yang dimiliki terhadap data yang ditangani. c. Pengendalian data untuk setiap siklus agar data selalu up to date dan dapat mencerminkan perubahan spesifik yang terjadi di setiap sistem. d. Pengamanan data terhadap
kemungkinan penambahan,
modifikasi,
pencurian dan gangguan-gangguan lain.
2.4.4. Telmik Penmcangan Database Dalam teknik perancangan database ini dikenal dua macam cara, yaitu antara lain : 1. Teknik Normalisasi Proses normalisasi adalah suatu proses pemgelornpokan data elemen rnenjadi tabel-tabel yang menunjukkan entity dan relasinya. Proses ini selalu diuji pada beberapa keadaan atau kondisi. Apakah ada kesulitan pada saat insert. delete, update, dan select pada suatu database. Jika ada kesulitan pada pengujian suatu data, relasi tersebut dapat dipecah pada
40
beberapa tabel, sehingga proses database menjadi optimal. Teknik normalisasi didasarkan pada : a. Field I atribut kunci Pada setiap file terdapat kunci berupa suatu field atau satu set field
yang
dapat
mewakili
record.
Atribut
tersebut
dapat
dikelompokkan menjadi :
*
Canditate Key : Suatu atribut atau satu set minimal atribut yang mengidentifikasi secara unik suatu kejadian yang spesifik dari entity.
o
Primary Key : Suatu atribut yang tidak hanya mengidentifikasi secara unik suatu kejadian, akan tetapi juga dapat mewakili setiap kejadian dari entity.
o
Alternate Key : Kunci kandidat yang tidak dipakai sebagai primary key.
b. Dependensi Mempakan konsep yang mendasari normalisasi. Dependensi menjelaskan hubungan antar atribut, atau secara lebih khusus menjelaskan nilai suatu atribut lainnya. Dependensi kelak menjadi acuan bagi pendekomposisian data ke dalam bentuk yang paling efisien. Macam-macam dependensi adalah : •
Denpendensi Fungsional
"
Denpendensi Fungsional Penuh
•
Denpendensi Total
41
Sedangkan bentuk-bentuk nonnalisasi yang akan digunakan adalah sebagai berikut : o
First Normal Form (1 NF)
suatu relasi dikatakan memenuhi
bentuk normal kesatu jika tidak ada set atribut yang berulang-ulang atau atribut bernilai ganda dan harus atomic. •
Second Normal Form (2NF) : suatu relasi dikatakan telah memenuhi bentuk nonnal kedua apabila telah memenuhi bentuk normal kesatu dan semua atribut bukan kunci harus secara fungsi bergantung penuh pada atribut kunci.
•
Third Normal Form (3NF) : Suatu relasi dikatakan telah memenuhi bentuk normal ketiga apabila telah memenuhi bentuk normal kedua dan tidak mengandung ketergantungan fungsional (jimctional dependencies) antar atribut-atribut bukan kunci.
2. Teknik Entity Relationship a. Entity Adalah orang, tempat, kejadian atau konsep yang informasinya direkam. Untuk menghubungkan suatu entity dengan entity yang lain diperlukan entity key, yaitu satu atau beberapa atribut tertentu yang bersifat unik, sehingga dapat digunakan untuk membedakan anggota entity yang satu dengan yang lain. Pada diagram entity diperlukan relational key, yaitu setiap hubungan yang diperlukan untuk menyatakan hubungan antar entity kev vang: satu deng:an vang: lain.
42
b. Jenis Relasi Relasi antar dua file berdasarkan macam jumlahnya dapat dikategorikan menjadi dua macam : 0
Hubungan Obligatori : hubungan di mana field di dalam record yang satu mempunyai hubungan dengan field dalam record yang lain.
•
Hubungan Non Obligatori
hubungan di mana tidak setiap field
dalam record yang satu mempunyai hubungan dengan field dalam record yang lain. Sedangkan relasi antar dua file berdasarkan jumlahnya dapat dikategorikan menjadi tiga macam, yaitu : o
One to One Relationship : hubungan antar satu entity mempunyai hubungan dengan satu anggota entity yang lain pada entity yang berbeda.
A
l
B
2
Guru
Siswa
Gambar2.5 One to One Relationship
•
One to Many Relationship : lmbungan di mana satu anggota entity mempunyai hubungan dengan beberapa anggota entity yang lain oada entitv vang berbeda.
43
A B
3
Guru
Siswa
Gambar 2.6 One to Many Relationship
•
Many to Many Relationship : hubungan di mana beberapa entity mempunyai hubungan dengan beberapa anggota entity yang lain pada entity yang berbeda.
A
1
B
2
Guru
Siswa
Gambar 2.7 Many to Many Relationship antara Guru dan Siswa
c. Komponen-komponen dalam Entity Relationship Untuk merancang sebuah sistem database perlu diketahui komponen-komponen yang diperlukan, seperti : •
Attribute : adalah sebutan untuk mewakili suatu entity.
<>
Data Value (nilai atau isi data) : adalah data aktual atau informasi yang disimpan di dalam tiap-tiap data elemen atau atribut.
44
o Record I Type : adalah kumpulan elemen-elemen yang saling berhubungan, elemen ini tugasnya menginformasikan tentang suatu entity secara lengkap. e
File : mempakan kumpulan record-record sejenis yang mempunyai panjang elemen dan atribut yang sama, namum berbeda isi clatanya.
2.5.
Ol~iect
Oriented Programming (OOP)
2.5.1. Gambaran Unmm OOP Pada pemrograman klasik,
pemrograman yang dipakai adalah
implementasi dari keadaan permasalahan dunia nyata (real world problem) untuk menyelesaikan berbagai permasalahan pemrograman yang disebut dengan tipe data
integer, float, double, String clan juga array. Pada
pemrograman berorientasi objek (OOP) kita mencoba untuk membuat sebuah model sistem dari d1mia nyata (real world :,ystem) yang diimplementasikan ke dalam bentuk class. Sebuah class mempakan definisi dari suatu tipe data yang bertindak sebagai objek. Dengan OOP ini, kita tetap bisa menggunakan tipe data klasik (integer, float, double, dan lain-lain) dan juga bisa membuat objek mobil, kucing, bank dan tipe lain yang kita anggap penting. Class dapat mempunyai data spesifik dan tingkah laku (behaviour) yang spesifik pula, bisa diperoleh dari dirinya sendiri atau juga yang dibangun (build) dari class lain. Suatu class terbagi menjacli dua bagian, yaitu : Field
yang menjelaskan apa class tersebut clan Method yang menjelaskan tentang apa yang bisa suatu class lakukan.
45
Dalam pembuatan suatu object, kita dapat membuat beberapa objek sekaligus, yang disebut dengan instance dari suatu class. Objek-objek yang berbeda dari satu class bisa mempunyai field dan method yang sama, akan tetapi mempunyai nilai (value) dari field yang umumnya berbeda. Seperti contoh
seluruh manusia mempunyai warna rambut, tetapi masing-masing
manusia mempunyai warna rambut yang berbeda-beda.
2.5.2. Pengertian da11 Konsep OOP
Object Oriented Programming merupakan pemrograman yang mempunyai karakteristik berbeda dengan pemrograman berorientasi prosedur
(procedural programming languages) seperti C, Pascal dan lain sebagainya dalam beberapa haL Semua hal yang ada di dalam OOP dikelompokkan
(grouped) menjadi sebuah objek Untuk lebih jelasnya, penulis akan mendefinisikan satu per satu secara detail, apa yang dimaksud dengan objek, operasi skuensial pada objek, method dan data objek, yaitu sebagai berikut : a. Objek Objek dapat didefinisikan sebagai suatu benda (thing) yang dapat melakukan berbagai macam aktifitas. Kelompok dari aktifitas-aktifitas tersebut didefinisikan sebagai perilaku suatu objek
(o~ject
behaviour).
Sebagai contoh : objek StatusMahasiswa dapat menceritakan berapa nilai rata-rata dari objek Mahasiswa, berapa tahun lama kuliah dari objek Mahasiswa dan lain sebagainya. Sedangkan objek Mahasiswa dapat menceritakan mengenai nama, umur atau alamat dari suatu mahasiswa.
46
Tatapmuka (interface) dari suatu objek ke objek lainnya terdiri dari kelompok
perintah-perintah
(commands),
masing-masing
perintah
melakukan aksi (action pe1:forming) yang spesifik. Suatu objek memanggil I berinteraksi dengan objek yang lainnya dengan cara mengirimkan pesan. Objek yang meminta disebut sebagai sender, dan yang memberi disebut sebagai receiver. Sender
Receiver
command
(/~)
~-----...__,
message
~-
( ._
'
return value
Receiving ') Object .
-----~
Gai11bar 2.8 Ilustrasi dua bu ah obj ek yang saling berinteraksi
4
b. Operasi Squensial pada Objek Dalarn pernrograrnan berorientasi objek, sangat sering terjadi pesan dari suatu objek yang dikirimkan menyebabkan pesan yang lain dikirirnkan juga, baik dari dirinya sendiri rnaupun dari objek lain. Peristiwa ini disebut sebagai Operasi Squensial (sequential operation). Untuk lebih jelasnya akan digambarkan dengan diagram berikut : f!)
- -·--
Object C )
_,,__....-
~
~
_:,.(Object D
------ , ---:- 0
Garnbar 2.9 llmtrasi rnengenai operasi squensial
'
4
J
~
47
Objek A mengirim sebuah pesan ke Objek B, pada saat Objek B melakukan proses apa yang diminta oleh Objek A, Objek B mengmm pesan ke Objek C dan begitu seterusnya sampai pada Objek D. c. Method Setiap pesan mempunyai kode. Pada saat objek menerima sebuah pesan, pesan tersebut menentukan apa yang akan dilakukan oleh objek dan kode menentukan bagaimana objek tersebut mengartikan masing-masing pesan. Kode yang berhubungan dengan masing-masing pesan disebut dengan method. Method serupa dengan prosedur atau fungsi pada pemrograman berorientasi prosedur seperti pada C atau Pascal. Untuk lebih jelasnya tentang method, akan digambarkan pada diagram berikut :
1!l
I
name name:
INTERFACE
"Rod Smith"
Gambar2.10 llustrasi mengenai method
5
Pada gambar di atas name, name:, address dan name:address: merupakan method dari objek Mahasiswa. Pada saat objek Mahasiswa menerima pesan name, maka pesan tersebut akan mengendalikan method name yang telah didefinisikan oleh objek Mahasiswa
48
Method-method yang dioperasikan sebuah objek disebut dengan
instance method~ sedangkan pesannya disebut dengan instance message. d. Data Objek Setiap objek mempunyai informasi te1tentu untuk menetukan bagaimana tingkah laku (behaviour) suatu objek. Beberapa objek juga mengandung variabel-variabel, di mana dari variabel tersebut suatu objek diketahui tingkah lakunya. Variabel-variabel tersebut dinamakan dengan
instance variables. Hanya instance method dari suatu objek yang dapat membah dan menentukan nilai dari instance variables. Instance method dari objek lain tidak bisa membah atau menentukan data dari objek ini. Objek lain mungkin bisa mengakses instance variables lain dengan mengirimkan pesan. Hal ini disebut dengan enctqJsulation. Untuk lebih jelas tetang data objek akan digambarkan pada diagram berikut :
,---
.. ·, !
Receiver
1-------
( Sender )'11~i·,P. i INTERFACE
'··-..-/ ! I I
I
i t _ _ __
-·-· Gambar 2.11 llustrasi mengenai data objek 6
Pada diagram di atas instance variables variableOne sampai
variableX hanya bisa diakses melalui methodOne sampai methodN. Pengirim tidak bisa langsung mengakses instance variables dari objek ini.
49
2.5.3. Parndigma
O~;ect
Oriented
Suatu bahasa pemrograman komputer bisa disebut OOP apabila memenuhi empat buah syarat, yaitu antara lain : abstraction (abstraksi), polymOJphism (polimorpisme), inheritance (pewarisan), dan encapsulation
(pembungkusan). a. Abstraction Merupakan bentuk suatu objek yang masih abstrak I masih dalam perancangan I masih berupa model, objek ini tidak bisa langsung di instance menjadi instance class . Akan tetapi harus didefinisikan kembali
menjadi class lainnya sebagai tunman atau implementasinya. b. Polymorphism Polymorphism mengizinkan dua objek atau lebih merespon pesan yang sama. Misalkan : sebuah method nama jaga bisa diimplementasikan dari sebuah objek Kursus. Setiap implementsi dari pesan nama bisa mengembalikan nilai nomer kursus atau judul lmrsus, aturan ini sama seperti method nama pada objek Mahasiswa. Analogi dari polymorpism adalah seperti kehidupan setiap hari murid pada suatu sekolahan dengan bel sekolahnya. Pada saat bel berbunyi (pesan), walaupun murid (objek) suatu sekolahan banyak jumlahnya dan berbeda-beda, semua murid akan merespon bel tersebut, akan tetapi responnya bisa berbeda-beda, ada yang pulang ke rumah, ada yang masuk kelas dan ada yang pergi ke perpustakaan dan lain sebagainya. Begitu juga dengan dengan penggunaan print pada sebuah aplikasi, setiap objek printtable harus tahu caranya mencetak dirinva sendiri. Pesan
50
yang dikirimkan dari semua objek ke objek print/able adalah pesan yang sama, akan tetapi implementasi dari objek printtable berbeda-beda, ada yang mencetak grafik, text, image, dan lain-lain sebagainya. New Object
Text
0 Gambar2.12 Polymorphism pada method printPage
7
Pada saat suatu objek mengirim suatu pesan, objek pengirim tadi tidak
perlu
tahu
bagairnana
objek
yang
dikirim
pesan
mengimplementasikan pesan tersebut. Seperti pada gambar diagram di atas, method printPage pada objek Document mengirim pesan pada masing-rnasing objek pada suatu halaman tertentu. Objek Document tidak perlu tahu apa tipe dari objek-objek yang berada pada halaman tersebut. c. Inheritance
Inheritance mengizinkan suatu class mernpunyai sifat seperti class lainnya dan juga ada sifat tambahan (extends) untuk melakukan aksi spesifik yang mungkin dibutuhkan. Contoh inheritance adalah seperti pada class Graduate dan class
Undergraduate mempunyai tingkah laku (behaviour) yang sama, seperti
51
nama, alamat, daftar nilai dan lain sebagainya. Kedua class ini merupakan bentukan dari class Student. Jadi kedua class tadi (Graduate dan Undergraduate) menjadi subclass dari class Student. Dan kedua class tadi mempunyai sifat yang mirip dengan class Student.
Student
Gambar 2.13 Ilustrasi tentang inheritance 8
Class Graduate dan Undergraduate kemudian bisa menambah sifat baru lainnya. Misalnya pada class Graduate bisa mengambil program Master sedangkan pada class Ungraduate belum bisa mengambil program Master. Class yang diturunkan dari suatu class disebut dengan subclass sedangkan class yang menurunkan disebut dengan superclass. Pada contoh di atas, class Student merupakan superclass dari Graduate dan Ungraduate, sedangkan class Graduate dan class Ungraduate merupakan subclass dari class Student. d. Encapsulation Pada
pemrograman
berorientasi
objek,
objek-objek
saling
berinteraksi dengan cara mengirimkan pesan. Hanya sesuatu yang obj ek
52
beritahukan ke objek lain yang dapat diakses, tempat berinteraksinya satu objek dengan objek lainnya disebut dengan tatap muka dari suatu objek
(o/;jects inte1.face ). Sedangkan data dan logika dari objek tersebut disembunyikan, atau dengan kata lain, suatu inte1face mengkapsulkan
(encapsulates) kode dan data dari suatu objek.
Gambar 2.14 Ilustrasi mengenai encapsulation 9
Encapsulation bisa digunakan untuk memisahkan objek satu dengan objek lainnya dan dapat mengimplementasikan tingkah laku dari suatu objek. Pemisahan ini menciptakan sebuah efek kotak hitam (black-
box) di mana pengguna tidak diperkenankan untuk merubah implementasi dari suatu objek. Selama interface tetap sama, perubahan-perubahan yang terjadi pada implementasi internal terlihat transparan oleh pemakai. Sebagai contoh, pada saat pesan nama dikirim ke objek Mahasiswa, tidak terjadi masalah bagi pengguna bagaimana pengembang (developer) mengimplementasikan kode dari objek ini untuk menghandel pesan tersebut. Semua objek yang mengirimkan pesan membutuhkan aturan
53
(protocol) yang benar supaya bisa berinteraksi dengan objek Mahasiswa. Pengembang dapat mernbah implementasi kode setiap waktu, akan tetapi pesan nama tetap bisa bekerja selama interface dari objek tersebut sama.
2.5.4. Manfaat yang bisa diambil dari OOP Fitur yang paling penting dalam pemrograman berorientasi objek adalah kemampuan (ability) untuk memodifikasi solusi yang telah ada dalam mengatasi permasalahan barn yang muncul. Apabila permasalahan tersebut telah dapat diselesaikan dengan pendekatan OOP, biasanya masalah lainnya dapat diatasi dengan mernbah beberapa aturan pesan dari suatu objek (objectmessage protocol) yang telah ada. Misalnya dengan menambahkan pesan barn atau dengan menambahkan objek barn. Kemampuan penggunaan kembali (reusability) dari suatu objek mernpakan ha! yang sangat penting dan juga fitur yang paling baik untuk mengatasi berbagai permasalahan barn. Walaupun pemrograman berorientasi prosedur dapat juga digunakan sebagai reusability, akan tetapi kemampuan OOP dalam reusabilily lebih mudah.
2.6. Un!fied Modeling Language (UML) 2.6.l. Gambarnn Umum UML Unified Modeling Language (UML) adalah notasi yang lengkap untuk rnembuat visualisasi model suatu sistem. Sistem berisi informasi dan fungsi, tapi
secara
normal
digunakan untuk
memodelkan
sistem !computer.
Sebagaimana halnya bahasa pemodelan, UML mengizinkan deskripsi dari
54
sistem dibuat dengan mendetail pada setiap level abstraksi. Notasi tersebut akan mendefinisikan sistem dengan arsitektur berorientasi obyek. UML mempakan sintak umum untuk membuat model logika dari suatu sistem. Dan digunakan untuk menggambarkan sistem agar dapat dipahami selama fase analisis dan desain. Sintak yang didesain bersifat : independent dari bahasa target, proses perangkat lunak atau tool, cukup umum dan fleksible karena dapat dikustomisasi, dengan menggunakan definisi perluasan, dan mengakomodasi hampir semua bahasa. Sintak yang didefinisikan mudah dipahami, dan diaplikasikan ke dalam proyek, dan mudah didefinisikan. lni memerlukan definisi himpunan semantik yang sesuai untuk proses arsitektur atau perangkat lunak. UML tidak hanya mempakan bahasa pemodelan berorientasi obyek, akan tetapi merupakan pemodelan untuk spesifikasi, visualisasi, konstmksi, dokumentasi proses sistem secara intensif. a. Dengan proses sistem secara intensif, metode diaplikasikan sebagai proses yang berasal dari atau terlibat dalam sebuah sistem. b. Sebagaimana halnya bahasa yang digunakan untuk berkomunikasi. Artinya menangkap pengetahuan (semantik) tentang suatu subyek dan mengekspresikan pengetahuan ( sintak) yang berhubungan dengan subyek untuk tujuan komunikasi. Subyek disini adalah sistem yang dibahas. c. Sebagai bahasa pemodelan, difokuskan pada pemahaman subyek melalui formulasi model dari aplikasi pengetahuan yang bersifat cerdas.
55
d. Merupakan penggabungan I unifikasi perekayasaan sistem informasi dan teknik industri (software dan non-software), domain (bisnis vs. software) dan proses lifecycle. e. Diaplikasikan untuk spesifikasi sistem, dapat digunakan untuk komunikasi tentang apa yang dibutuhkan oleh sistem dan bagaimana sistem direalisasikan. f
Diaplikasikan
untuk
visualisasi
sistem,
dapat
digunakan
untuk
memvisualisasikan penggambaran suatu sistem sebelum direalisasikan. g. Diaplikasikan untuk konstruksi sistem, dapat digunakan sebagai petunjuk realisasi sistem, mirip dengan blueprint h. Diaplikasikan
untuk
dokumentasi
sistem,
dapat
digunakan untuk
menangkap pengetahnan tentang sistem melalui lifecycle. Pada dasarnya,
UML berhubungan dengan pengetahuan yang
ditangkap, dikomunikasikan dan dikembangkan.
2.6.2. Kegunaan UML Ul\!fL merupakan bahasa pemodelan general-purpose yang evolusioner,
mudah diaplikasikan, dan merupakan standar industri. Dapat diaplikasikan pada bermacam tipe sistem, domain, dan metode atau proses. a. Sebagai bahasa pemodelan yang general-purpose, difokuskan pada pokok himpunan konsep yang dapat dipakai bersama, dan menggunakan pengetahuan bersama dengan mekanisme perluasan.
56
b. Sebagai bahasa pemodelan yang mudah diaplikasikan, dapat diaplikasikan untuk bermacam tipe sistem (software dan non-software), domain (bisnis vs. software), dan metode atau proses. c.
Sebagai bahasa pemodelan standart industri, bukan merupakan bahasa yang tertutup atau satu-satunya, tapi bersifat terbuka dan sepenuhnya dapat diperluas.
d. UML
memungkinkan untuk
menangkap,
mengkomunikasikan,
dan
mengembangkan strategi, taktik dan mengoperasikan pengetahuan untuk meningkatkan nilai tambah melalui peningkatan kualitas, mereduksi biaya, mereduksi time-to-market.
2.6.3. Mekanisme Pendekatan Pernodelan a. Perspektif (konseptualisasi, spesifikasi dan realisasi) •
Memperjelas asosiasi dengan diagram
•
Digunakan untuk mengefektifkan komunikasi
b. Dikotomi (type-instance, spesifikasi-realisasi, dan statik-dinamik) •
Memungkinkan sesuatu ditampilkan dari multiple perspektif
0
Digunakan untuk menemukan inkonsistensi dalam model
c. Layer atau level abstraksi (level sistem, level subsistem, level class dan level metode) •
Memungkinkan perhatian dan konsentrasi difokuskan sehubungan dengan subyek (persoalan atau solusi)
•
Digunakan untuk mengorganisasi semua diagram, berkenaan dengan
57
d. Mekanisme perluasan (stereotype, properti, tagged value, dan constraint) •
Memungkinkan UML untuk dapat diatur dan diperluas
o
Digunakan untuk memastikan bahwa UML akan dapat berkembang bukannya didefinisi ulang untuk memenuhi perubahan kebutuhan.
2.6.4. Standar Notasi UML a. Actor Actor adalah segala sesuatu yang berinteraksi dengan sistem aplikasi komputer. Actor bisa berupa orang, perangka.t keras dan objek lain pada sistem yang sama. Actor bertugas untuk memberikan informasi pada sistem dan juga memerintahkan sistem untuk melakukan sesuatu.
Server Admin
Gambar 2.15 Notasi UML untuk Actor
b. Class Class merupakan pembentuk utama dari sistem berorientasi objek, karena class menunjukkan kumpulan objek yang memiliki atribut dan operasi yang sama. Fungsi class antara lain yaitu : •
Class digunakan untuk mengimplementasikan interface.
o
Class digunakan untuk mengabstraksikan elemen-elemen dari sistem vana sedana dibanaun
58
o
Class bisa untuk merepresentasikan baik perangkat lunak maupun perangkat keras, baik konsep maupun benda nyata.
TokoOnline Attributes
p1ivate int tampil OpetaUons
public To1<00nl1ne{ ) public int getTampil(] public void setTari1pil(i11t Val)
···.·.
..
.· •·
Gambar 2.16 Notasi UML untuk Class c. Interface Interface mempakan kumpulan operasi tanpa implementasi dari suatu class. Implementasi dalam interface dijabarkan oleh operasi dalam class. Oleh karena itu, keberadaan interface selalu disertai oleh class yang mengimplementasikan operasinya. Interface ini merupakan salah satu cara mewujudkan prinsip encapsulation dalam objek. <
>
Toko Att1ibutes .
Ope,(atitJNS
public void tempi!( ) .
.
Gambar2.17
Notasi Ulv1L untuk Interface
59
d. Use Case Use case menjelaskan urutan kegiatan yang dilak1.1kan dalam sistem untuk mencapai suatu tujuan tertentu. Use case hanya di1,iunakan untuk menjelaskan apa yang dilakukan oleh aktor dan sistem, tidak menjelaskan bagaimana actor dan sistem melakukan kegiatan tersebut.
Gambar 2.18 Notasi UML untuk Use Case e. Interaction Interaction digunakan untuk menunjukkan baik aliran pesan atau informasi antar objek maupun hubungan antar objek.
Gambar2.19 Notasi UML untuk Interaction
f
Package Package adalah kontainer atau wadah konseptual yang digunakan untuk
mengelompokkan elemen-elemen
dari
sistem
yang
sadang
dibangun. Sehingga bisa dibuat model yang lebih sederhana. Tujuannya adalah untuk mempermudah penglihatan dari model yang sedang dibangun.
60
Gambar 2.20 Notasi UML untuk Package g. Note Note digunakan untuk memberikan keterangan dan komentar tambahan dari suatu elemen, sehingga bisa langsung terlampir dalam model. Note ini bisa ditempelkan ke semua elemen notasi yang lain. D
Class Main merupakan class utama clarl program ServerTokoOnllne .
Gambar 2.21 Notasi UML untuk Note
h. Dependency Dependency
merupakan
relasi
yang
menunjukkan
bahwa
perubahan pada salah satu elemen memberi pengaruh pada elemen lainnya. Elemen yang ada di bagian tanda panah adalah elemen yang tergantung pada elemen yang berada tanpa tanda panah. Terdapat dua stereotype dari dependency : •
Include
Menunjukkan bahwa suatu bagian dari elemen mem1cu
eksekusi bagian dari elemen lain, contoh : Operasi yang ada di class A akan me1111cu
61
Gambar2.22 Dependency Include 0
Ekstend : Menunjukkan bahwa suatu bagian dari elemen di garis tanpa tanda panah bisa disisipkan ke dalam elemen yang ada di garis dengan tanda panah, contoh : Suatu
fongsi
dari
use
case
A bisa
disisipkan ke dalam use case B atau Gambar 2.23
dengan kata lain A optional untuk B.
Dependency Extend
1.
Association Association menggambarkan navigasi antar class, berapa banyak objek lain yang bisa berhubungan dengan satu objek (multiplicity antar class), dan apakah suatu class menjadi bagian dari class lainnya
( aggragation)
a.
class1
class2
~~~o;i!;o.<m
l!(ier~~Co.·o,;
pub!I;: c:!:rns I( l
puLltt das\C( j
b•
I~
"""'~
'I""''"'
ctaa.s2
,;~<et-W'"
I
p"H" ob'"h)
1
;,;,~:,o oho~:>
•:dMdo•;'2( l
1.,,;,, d;! ,;;,,,,fa"'' <'n< "" ..
Gambar2.24 a. Dua class yang berasosiasi b. Dua class yang beragregasi
J.
Generalization Generalization menunjukkan hubungan antar elemen yang lebih umum ke elemen yang lebih spesifik. Dengan generalization, class yang
62
lebih spesifik (subclass) akan menernslrnn atribut clan operasi clari class <:.
yang lebih umum (supercla
JFrame
Tampi1Utan1a 017~mtions
public Tarnp\!Utama{ )
Gambar2.25 Contoh Notasi Generalization
Pacla gambar di atas, class TampilanUtama merupakan turunan clari class JFrame. Dengan menggunakan metocle generalization ini, konsep
inheritance clari prinsip hirarki dapat climodelkan. k. Realization Realization menunjukkan hubungan bahwa elemen yang ada di bagian tanpa panah akan merealisasikan apa yang clinyatakan oleh elemen yang ada di bagian dengan panah. +_,_,....,,
,,.,.-..__,
/
Pada
gambar
di
sampmg,
elemen
A
\
I A )···· ·· ·~l B } merealisasikan apa yang ada pada elemen B. \'--'.o-' «realization» \.._"/ Gambar2.26 Realization
2.6.5. Tipe Diagram UML UML mempunyai dua tipe diagram, struktural clan behavioural. Struktural Diagram menggambarkan bagian statik dari sistem. Behavioural
63
Diagram menggambarkan bagian dinamik dari sistem. Behavioural Diagram diklasifikasikan lebih lanjut ke dalam Interaction dan State Diagram. a. Struktural e
Class Diagram - Classes, interfaces, collaboration, relationship
e
Object Diagram - object dan relasi sebagai instance dari prototipe
e
Component Diagram - komponen dan relasi yang mengilustrasikan implementasi sistem.
e
Deployment Diagram - konfigurasi runtime dari node dan obyek yang ada node.
b. Behavioural e
Use case Diagram - use cases, actors, dan relasi. Digunakan untuk mengorganisasikan use case dan behaviours.
•
Interaction
e
Sequence Diagram - waktu urntan message dan object lifeline
.,
Collaboration Diagram - urutan message dan organisasi obyek dalam interaksi
•
State
<>
Activity Diagram - arus ke1ja dari aktifitas, difokuskan pada operasi yang dilewatkan antar obyek.
•
Statechart Diagram - life cycle dari obyek sebagai perubahan dari satu state ke state lain, ditrigger oleh message.
64
2.6.6. Diagram UML yang Dipakai dalam Pera11ca11gan Sistem ini Pada aplikasi yang akan penulis buat, tidak semua diagram dalam UML akan digunakan dalam pemodelan, akan tetapi hanya empat diagram saja. Karena dari keempat diagram UML ini sudah mampu untuk memodelkan aplikasi mesin kasir terditribusi berbasis client-server. Diagram-diagram tersebut antara lain adalah sebagai berikut : a. Use Case Diagram Use Case Diagram (UCD) menjelaskan apa yang akan dilakukan oleh sistem yang akan dibangun dan siapa yang berinteraksi dengan sistem. UCD menjadi dokumen kesepakatan antara customer, user dan
developer. User menggunakan dokumen UCD untuk memahami sistem dan mengevaluasi
bahwa benar yang dilakukan
sistem adalah untuk
memecahkan masalah yang user ajukan atau sedang dihadapi. Sedangkan developer menggunakan dokumen UCD ini sebagai rujukan yang benar dalam pengembangan sistem. UCD biasanya tersusun dari elemen-elemen : actor, use case, dependency, generalization dan association.
65
_____-1____
G~":crimn
Pcnctwn::::>
~--------
·-..--~·
Gambar 2.27 Contoh Use Case Diagram pada Rental VCD 10
b. Class Diagram Sama seperti class, class diagram mernpakan diagram yaang selalu ada
pada
pemodelan
sistem
bero1ientasi
objek.
Class
diagram
menunjukkan hubungan antara class di dalam sistem yang sedang dibangun dan bagaimana mereka sating berkolaborasi untuk mencapa1 suatu tujuan. Class Diagram biasanya tersusun dari: Class, interface, dependency, generalization dan association. Relasi dependency menunjukkan bagaimana ketergantungan te1jadi antar class yang ada. Sedangkan relasi generalization menunjukkan bagaimana suatu class menjadi subclass dari sebuah class. Dan relasi association menggambarkan navigasi antar class, berapa banyak objek lain bisa terhubung dengan satu objek (multiplicity antar class), dan apakah suatu class menjadi bagian dari class lain (aggregation). Class Diagram digunakan untuk menggambarkan desain statis dari sistem yang sedang diban1o,>un.
66
i ""'""""'•:•<•
1'4illc _,,, ,,..;/.'.<>WJ>'CI ;,~,i,,,,,,,,_,.,,,,
•1'1\-0,,,_,,1');,, i
1/t."-0-,,d wVicN1fA,r' Fi»\;r>'.1~ "' •
,,,,_,~"J/'-1 '"~'
:-*••'""-"''!·'~'"''
''"'~~'"'"-''"·'°:.-· i'Ok
-:o;•--''""''
!""~'H"'':
;
1'~"" :~m-1 ¥1W--t~. ) p;t~"Ml M!O;•.<(~-~n--1'"
114&0
·,·cn>1
·1~IhW<"
\;;rW """ "~-'l~""· '~<'\1 »t'
Gambar 2.28 Conioh Class Diagram pada Renial VCD
11
c. Activity Diagram Activity Diagram merupakan diagram yang menggambarkan berbagai alir aktifitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin te1jadi, dan bagaimana mereka berakhir. Activity Diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity Diagram berupa state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya. Oleh karena itu, activity diagram tidak menggambarkan behaviour internal sebuah sistem secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktifitas dari level atas secara umum.
11
Julius I-:lern1a\van. Analisa Desain dan Pc1nrogra1nan Berorientasi Obiek de1uuu1 UML di Visual Basic Net.
67
Sebuah aktifitas dapat direalisasikan oleh satu use case atau lebih. Aktifitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktifitas. Berikut
1111
adalah contoh dari activity diagram untuk menyewa
VCD.
Statt acii anggot
_ _ _ ,,_..::.).'o-
Tidakja(ji menyewa '·
End
Gambar2.29 Contoh Activity Diagram pada Rental VCD
d. Sequence Diagram Sequence diagram menjelaskan secara detail urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case. Interaksi yang terjadi antar class, operasi apa saja yang terlibat.. urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi. Pembuatan sequence diagram merupakan aktifitas yang paling kritikal dalam proses desain, karena artifak inilah yang menjadi pedoman
68
dalam proses pemrograman nantinya, dan berisi aliran kontrol dari program. Waktu untuk mendesain sequence diagram supaya lebih lama, agar mendapatkan sequence diagram yang terdesain dengan baik. Sequence diagram biasanya tersusun dari : objek, interaction dan message.
: PnjgRental
: Pendaf!rFrm
J 1. lnputCust!nfo ·r----~~ I
I :Pendjf!rMng I
·1. i lnsertcusllnfo
I I
I I 1.1.1 lnse1tCust!nfo
r~e.Msg
ii~ l.l44+
C>
Gambar2.30 Contoh Sequence Diagram pada Rental VCD
12
12
Julius }1enna\van. Analisa ])esain dan Pe1nrogra1nan f::!erorientasi Ol1iek dengan UML di Visual Basic Net.
69
2.7. Bahasa Pemrogrnman Javarn 2.7.1. Mengenal Javan' Java adalah suatu teknologi di dunia software komputer, yang mempakan suatu bahasa pemrograman, dan sekaligus suatu platform. Sebagai bahasa pemrograman, Java dikenal sebagai bahasa pemrograman tingkat tinggi. Java mudah dipelajari, terutama bagi programmer yang telah mengenal C/C++. Java merupakan bahasa pemrograman berorientasi objek yang merupakan
paradigma
pemrograrnan
masa
depan.
Sebagai
bahasa
pemrograman, Java dirancang menjadi handal dan aman. Java juga dirancang agar dapat dijalankan di sernua platform. Java juga dirancang untuk menghasilkan aplikasi-aplikasi dengan performansi yang terbaik, seperti aplikasi database Oracle 8i/9i yang core-nya dibangun menggunakan bahasa pemrograman Java. Sedangkan Java bersifat
neutral architecture,
karena
Java
Compiler
yang
digunakan
untuk
rnengkompilasi kode program Java dirancang untuk menghasilkan kode yang netral terhadap semua arsitekture perangkat keras yang disebut sebagai Java
Bytecode.
2.7.2. Sejarah Java Java diciptakan oleh suatu tim yang dipimpin oleh Patrick Naughton dan James Gosling dalam suatu proyek dari Sun Microsystem yang memiliki kode Green dengan tujuan untuk menghasilkan bahasa komputer sederhana yang dapat dijalankan di peralatan sederhana dengan tidak terikat pada arsitekture tertentu. Mulanya disebut OAK, tetapi karena OAK sendiri
70
merupakan nama dari bahasa pemrograman komputer yang sudah ada. Maka Sun mengubahnya menjadi Java. Sun kemudian meluncurkan browser dari Java yang disebut Hot Java yang mampu menjalankan applet. Setelah itu teknologi Java diadopsi oleh Netscape yang memungkinkan program Java dijalankan di browser Netscape yang kemudian diikuti Internet Explorer. Karena keunikanya dan kelebihanya, teknologi Java mulai menarik banyak vendor seperti IBM, Symantec, Inprise, dan lain-lain. Sun merilis versi awal Java secara resmi pada awal tahun 1996 yang kemudian terus berkembang hingga muncul JDK I. I, kemudian JDK 1.2 yang mulai disebut sebagai versi Java 2 karena banyak mengandung peningkatan dan perbaikan. Perubahan utama adalah adanya Swing yang merupakan teknologi GUI (Graphical User Jnte1face) yang mampu menghasilkan window yang portabel. Dan pada tahun 1998-1999 lahirlah teknologi J2EE (Java 2 Ente1prise Edition) yang berbasis J2SE yang diawali dengan servlet dan EJB kemudian diikuti JSP. Java juga menjadi lebih cepat populer di lingkungan server side dikarenakan kelebihanya di lingkungan network dan terdistribusi serta kernampuan rnultithreading. Sedangkan J2ME (Java 2 lvficro Edition) dapat menghasilkan aplikasi mobile baik games maupun software yang dapat dijalankan di peralatan mobile seperti ponsel.
2.7.3. Telmologi Java
Teknologi Java dibagi rnenjadi dua, yaitu bahasa pernrograrnan Java (Java programming language) dan Java P la(form.
71
a. Bahasa Pemrograman Java Java merupakan
bahasa pemrograman 1ingkat tinggi
yang
mempunyai beberapa kelebihan, yaitu anatar lain : mudah, berorientasi objek, terdistribusi, berasitek1:ur netral, portabel, bisa multithreading, berperforma tinggi, kuat, dinamis, dan aman. Pada pemrograman Java, semua source code pertama kali ditulis pada text biasa, yaitu pada file yang berekstensi *java Semua file tersebut akan di-kompile oleh Java compiler (javac) menjadi bentuk *.class. File *.class berisi kode yang dinamakan dengan bytecodes (bahasa mesin dari
Java Virtual lvfachine). Kemudian Java launcer tool (java) akan menjalankan aplikasi java yang telah dibuat tadi. my Program. java
My Program
Gambar 2 .3 1 Proses Java menjalankan aplikasinya
13
Java Virtual Machine (JVM) dibuat untuk bisa digunakan untuk sistem operasi yang berbeda. Oleh karena itu semua file *.class bisa langsung berjalan pada Microsoft Windows, Solaris (Solaris OS), Linux dan juga MacOS.
TM
Operating System
73
diagram di bawah ini menggambarkan tentang bagaimana API dan Java Virtual Machine membagi program aplikasi dengan perangkat kerasnya.
111yProgra111.java JavaAP! j ·· Java VirtualMachine
-., (Java Platform j
Gambar 2.33 Hubungan Program Java, API, JVM dan Hardware ts
Sebagai platform yang berdiri sendiri, Java mungkin akan sedikit lebih lambat daripada program yang dibuat dari platform lain. Walaupun demikian, keuntungan yang dapat diperoleh dari Java dapat menghasilkan performa yang tinggi dan tidak perlu takut akan ancaman portabilitas.
2. 7.4. Fitur-Fitur Java
Beberapa fitur yang ditawarkan Java API antara lain sebagai berikut : a. Applet : program Java yang dapat berjalan di atas browser, yang dapat membuat halaman HTML lebih dinamis dan menarik. b. Java Networking : sekumpulan API yang menyediakan fungsi-fungsi untuk aplikasi-aplikasi jaringan, seperti penyediaan akses untuk TCP,
UDP, IP Adrress dan URL.
74
c. JDBC : menyediakan sekumpulan API yang dapat digunakan untuk mengakses database seperti Oracle, MySQL, PostgreSQL, Microsoft SQL Server dan lain-lain. d. Java Security : menyediakan sekumpulan API untuk mengatur security dari aplikasi Java baik secara high level atau low level, seperti public
private key management dan certificates. e. Java Swing (JFC) : menyediakan sekumpulan API untuk membangun aplikasi-aplikasi GUI dan model GUI yang diinginkan bisa bermacammacam, bisa model Java, model Motif I CDE atau model yang dependent terhadap platform yang digunakan. f
Java RM1
menyediakan sekumpulan API untuk membangun aplikasi-
aplikasi Java yang mirip dengan model RPC (Remote Procedure Call) jadi object-object Java bisa di panggil secara remote pada jaringan !computer. g. Java 2D I 3D : menyediakan sekumpulan API untuk membangun grafikgrafik 2D I 3D yang menarik dan juga akses ke printer.
2.7.5. Java Virtual Machine
Java Virtual Machine (JVM) rnerupakan ha! yang paling utarna dari pernrograrnan Java dan pada platform Java. JVM rnerupakan teknologi yang mampu untuk menyesuaikan diri terhadap perangkat keras dan sistem operasi apa saja, mernpunyai kode terkompile dengan ukuran yang relatif kecil dan juga rnampu mengamankan program dari program yang berbahaya (malicious
programs).
75
JVM merupakan komponen komputer yang abstrak. Seperti pada mesin sungguhan, JVll!I mempunyai semacam kelompok instruksi (instruction
set) dan dapat memanipulasi area-area di dalam memori pada saat program dijalankan. Prototipe pertama yang mengimplementasikan JVM adalah Sun Microsystems, Inc. Komponen yang ada di dalam JVM adalah Java"' 2 SDK dan produk-produk Java'" 2 Runtime Environment (JRE) lainnya. JVM dijalankan pada Win32 atau pada Solaris atau platform lainnya. Karena JVM dirancang dan dibuat tidak hanya diperuntukkan untuk platfonu tertentu, melainkan untuk semua platform. JVM tidak mengetahui apa-apa tentang Pemrograman Java, melainkan hanya format binari saja, yaitu format file class. Sebuab file class mengandung instruksi-instruksi Java Virtual Machine atau yang disebut dengan bytecodes dan simbol tabel serta informasi tambahan lainnya. Untuk tujuan security, JVM membuat struktur dan format yang sangat kompleks di dalam kode file class. Walaupun demikian, JVM akan tetap mampu untuk mengekspresikan term-term yang telah dikodekan ke dalam file
class.
2.7.6. Abstract Window Toolkit (AWT)
AWT merupakan standar API yang menangani masalah GUI pada program Java. Fitur-fitur utama yang ada di dalam AWT antara lain : o
Mempunyai banyak kemampuan dalam mengaplikasikan user inteiface.
"
Mempunyai model event-handling yang baik dan kuat.
76
e
Dapat mengimplementasikan grafik dan image, termasuk shape, warna dan jenis-jenis model huruf.
•
Pada manager layout, AWT lebih fleksibel dan tidak tergantung pada ukuran window atau resolusi layar monitor.
•
Mampu untuk menstranfer data, yaitu dengan cut clan paste melalui platfiorm clipboard.
2.7.7. .lava Foundation Classes (JFC I Swing) Proyek Swing merupakan bagian clari perangkat lunak JFC yang mengimplementasikan komponen GUI yang bisa dirubah-rubah (pluggable) look and feel-nya. Swing clapat diimplementasikan oleh bahasa pemrograman Java dan berbasis pada JDK"' 1.1 Lightweight UI Framework. Pluggable look and feel clapat cligunakan untuk mendesain komponen GUI yang otomatis mempunyai look and/eel clari beberapa Sistem Operasi (Microsoft Windows, Solaris"', Macintosh). Komponen Swing dibuat 100% clengan bahasa. pemrograman Java, yaitu clengan mengembangkan komponen AWT (Button, Scrollbar, Label, clan lain-lain), ditambah clengan komponen yang lebih tinggi tingkatannya, seperti: tree view, list box, clan tabbed pane.
2.7.8. Remote Method Invocation (RMI) I . Pengertian Dalam pemrograman client-server clengan lava, kita tidak dapat mengesampingkan RMI, yaitu teknologi client-server untuk aolikasi
77
terdistribusi pada platform Java. Aplikasi RMI seringkali terdiri dari dua program terpisah yaitu server dan elient. Aplikasi server semacam ini biasanya membuat beberapa objek remote, menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses, se1ia menunggu client menginvoke I memanggil method dari objek-objek remote tersebut. Aplikasi client mendapatkan referensi remote ke satu atau lebih objek remote di server dan menjalankan method dari objek tersebut. RMI menyediakan mekanisme di mana server dan client berkomunikasi dan memberikan informasi yang timbal balik. Aplikasi semacam ini seringkali disebut aplikasi objek terdistribusi. Aplikasi objek terdistribusi seringkali melakukan hal berikut : a. Melokasikan objek remote : Aplikasi dapat menggunakan satu dari dua mekanisme untuk mendapatkan referensi ke objek remote. Aplikasi dapat mendaftarkan objek remote dengan fasilitas penamaan RMI (naming facility) yaitu rmiregistry atau aplikasi dapat mempass dan mengembalikan referensi objek remote sebagai bagian dari operasi normal. b. Berkomunikasi dengan objek remote : Detail dari komunikasi antara objek remote ditangani oleh RMI, bagi programmer komunikasi remote tampak seperti invokasi method Java standar. c. Memanggil I load bytecode untuk objek yang di-pass : Karena RMI mengizinkan caller I pemanggil untuk mempass objek ke objek remote, RMI menyediakan mekanisme yang diperlukan objek meload kode objek, sebagaimana juga mentransmisikan datanya.
78
llustrasi berikut menggambarkan aplikasi RMI terdistribusi yang menggunakan registry untuk mendapatkan referensi ke objek remote. Server memanggil regist1y untuk mengasosiasikan (mengikat) suatu nama dengan objek remote. Client mencari objek remote dengan namanya pada registry server dan menginvoke method dari obj1ok. Ilustrasi ini juga menunjukkan sistem RMI menggunakan web server untuk memanggil class bytecodes, dari server ke client dan dari client ke server, untuk objekobjek yang diperlukan.
"lient "<,
~~.L· -·- .. p!'ODXoJ
~
_, .- ..,
e=~~,~i\····
Gambar 2.34 Ilustrasi bagaimana aplikasi RMI mendistribusikan registry dari para user untuk mendapatkan objek remote
16
2. Tujuan RMI Tujuan RMI dibuat adalah untuk mendukung distribusi objek pada Pemrograman Java. Secara detail tujuan RMI adalah sebagai berikut :
79
"
Dapat
rnendukung
remote
invocation
pada
objek-objek
yang
rnernpunyai JVM berbeda. •
Marnpu mernaggil kernbali (callback) dari server ke applet.
•
Mampu untuk mengintegrasikan dan mendistribusikan model objek ke dalarn bahasa pemrograman Java dengan cara penulisan bahasa alami
(natural way). "
Mernbuat perbedaan antara model objek terdistribusi dengan model objek Java platform lokal.
•
Supaya dalarn pembuatan aplikasi terdistribusi dapat lebih sederhana dan mudah diimplementasikan.
3. lnte1face dan Class pada RMI Interface dan class bertanggungjawab untuk menspesifikasikan tingkah laku remote (remote behaviour) dari sistern RMI. Di dalam APl, interface dan class ini di definisikan pada hirarki package java.rmi. Pada gambar di bawah ini memperlihatkan hubungan antara interface dan class padaRMI.
t~'A1en;ion
i mj:4emenu1ion
Gambar 2.35 Relationship antara interface dan class pada RMI
17
80
4. Penggunaan Socket pada RMI Suatu socket bisa digunakan untuk mengkontrol invocation yang sedang berkomunikasi pada level network. Sebagai contoh : kita bisa menggunakan properti pada socket, mengkontrol alamat yang sedang bind, mengkontrol koneksi yang ada (mengatur autentifikasi) dan mengkontrol aliran data (seperti penambahan encryption atau compression).
2.7.9. JDBC
JDBC merupakan standar API yang menyediakan data universal untuk bahasa pemrograman Java. JDBC terdiri atas JDBC 1.0 APT yang memberi fungsi-fungsi dasar untuk akses data. JDBC 2.0 API memberi tambahan ke fungsi-fi.mgsi dasar dengan kelebihan-kelebihan lain yang lebih mutakhir (advanced). API baru ini mencah1p kemampuan result set yang dapat di-scroll dan di-update, se11a perbaikan kinerja. I. Penge11ian JDBC adalah suatu nama trademark, bukan sebuah singkatan. JDBC API terdiri atas sejumlah class clan interface yang ditulis dalam bahasa Java yang menyediakan API standar sebagai alat bantu bagi pembuat program (developer) dan memberi kemungkinan untuk menulis aplikasi database dengan menggunakan semua Java APL JDBC API memudahkan untuk mengirim statement SQL ke sistem database relational dan mendukung bermacam-macam dialek SQL. JDBC 2.0 lebih dari sekedar SQL, tetapi juga memiliki kemampuan untuk
81
berinteraksi dengan sumber data yang lain, seperti file yang berisi data tabular. Keunggulan JDBC API adalah sebuah aplikasi dapat mengakses sembarang sumber data dan dapat be1jalan pada sembarang platform yang mernpunyai JVM. Dengan kata lain, kita tidak perlu menulis satu program untuk mengakses database Sybase, program lai.n untuk mengakses database Oracle atau MySQL, dan seterusnya. Akan tetapi cukup menulis satu program saja yang menggunakan JDBC APL 2. Model database pada JDBC Untuk akses database, JDBC API mendukung model-model database, yaitu model 2-tier dan 3-tier. a. Model 2-tier Pada model ini, sebuah applet Java atau aplikasi Java berbicara langsung ke database. Dalam ha! ini, diperlukan JDBC driver yang dapat berkomunikasi ke sumber data tersebut. Sebuah perintah atau statement dari user dikirim ke database dan hasil dari statement tersebut dikirirn balik ke user. Database dapat berada pada rnesin yang sama dengan client, atau juga pada mesin yang berbeda yang disambungkan
lewat
1armgan.
diilustrasikan sebagai berikut.
Gambar
model
2-tier
dapat
82
Gambar 2.36 Arsitek:tur 2-tier
18
b. Model 3-tier Pada model ini, user mengirimkan perintah-perintah ke sebuah middle-tier (HTTP, RMI, CORBA). Selanjutnya middle-tier mengirirnkan
perintah-perintah tersebut ke database. Database rnernproses perintahperintah tersebut dan mengirirn balik hasilnya ke middle-tier. Kernudian middle-tier mengirimkannya kepada user. Keuntungan pendekatan ini yaitu mempermudah aplikasi untuk di-deploy. Dalam beberapa kasus, arsitektur 3-tier dapat meningkatkan perforrnasi. Gambar model 3-tier dapat diilustrasikan sebagai berikut. Jnvn 11z;r,k10r lrn>'.lL bro'M~>.~:r
Sa'\'(j' }'JW.t:Jlil\C
(trnrinefB ~c:)
Garnbar 2.37 Arsitektur 3-tier 19
83
3. Tipe-tipe Driver JDBC Pada gambar berikut ini akan ditampil bagaimana driver JDBC diimplementasikan pada aplikasi Java.
x~:JB.c
f\JF'T. illBC D:ti:vltr
,4.F'I
imf\kmmt1t.tle1n .Jt.it,z;.x·£.l£iti1¥>t1l'.
J!lBC !VcRicldl te ~,'1\:t1t F1l<:-71t.;~~~:'JJ
Gambar 2.38 Ilustrasi Implementasi Driver JDBC
20
Pada gambar di atas, sebuah aplikasi yang ditulis dengan bahasa pemrograman Java menggunakan class DriverManager pada JDBC untuk mengakses driver JDBC. Banyak alternatif pilihan yang dapat digunakan dalam mengakses driver, yaitu contohnya pada driver JDBC-Net. Sebuah driver
JDBC-Net
menghubungkan
ke
server
middle-tier
dan
mene1jemahkan JDBC call ke dalam protokol DBMS-independent. Kernudian server rnenerjemahkannya ke dalam protokol DBMS. Begitu juga dengan driver yang lain, driver tersebut mengirnplementasikan akses
84
ke sebuah DBMS secara langsung dengan menggunakan proprietary
dalabase access protocols. Teknologi driver JDBC dibagi menjadi empat, yaitu antara lain sebagai berikut :
a. JDBC-ODBC Bridge plus ODBC Driver Kombinasi ini menghasilkan akses JDBC melalui driver ODBC. Kode binari ODBC hams di-load pada masing-masing mesin client yang menggunakan JDBC-ODBC bridge. Sun menyediakan sebuah driver JDBC-ODBC bridge yang cocok untuk keperluan eksperimental dan untuk situasi-situasi di mana tidak ada driver yang sesuai. Tipe driver ini juga paling cocok untuk jaringan korporat di mana instalasi client bukan masalah besar, atau juga untuk aplikasi server yang ditulis dalam bahasa Java dalam arsitektur 3-tier.
b. Native-AP! partly Java technology-enabled driver Tipe driver ini mengkonversi JDBC call ke dalam client API untuk Oracle, Sybase, Informix, DB2 dan DBM.S yang lain. Seperti pada bridge driver, tipe ini memerlukan kode binary yang spesifik terhadap sistem operasi yang di-load ke dalam masing-masing mesin client.
c. Pure Java.for Da!abase Middleware (JDBC-Net) Model driver ini menterjemahkan JDBC class ke dalam protokol middleware vendor yang kemudian diterjemahkan ke
85
protokol DBMS oleh server middleware. Middleware menyediakan konektivitas ke pelbagai jenis database yang berbeda. d. Native-protocol Pure Java Driver
Model driver ini mengkonversi JDBC call langsung ke dalam protokol network yang digunakan oleh DBMS, model driver ini juga mengizinkan direct call dari mesin client ke server DBMS dan memberikan solusi praktis untuk akses internet. 4. Keuntungan Teknologi JDBC a. Mempertahankan data interprise yang telah ada Dengan teknologi JDBC, aplikasi tidak terpaku pada arsitektur tertentu, dapat terns menggunakan database yang telah terpasang dan dapat mengakses informasi dengan mudah. b. Menyederhanakan pengembangan interprise Kombinasi Java API dengan JDBC API menjadikan pembuatan aplikasi
lebih
mudah
dan
ekonomis.
JDBC
menyembunyikan
kompleksitas tugas-tugas akses data, sehingga programmer tidak perlu mengetahui di belakang layar. JDBC API mudah untuk dipelajari, mudah diterapkan dan tidak mahal dalam pemeliharaan. c. Tidak perlu konfigurasi pada jaringan komputer Dengan JDBC APl, tidak ada konfigurasi yang diperlukan pada s1s1
client. Dengan driver yang ditulis dengan bahasa pemrograman
Java, semua informasi yang diperlukan untuk membuat koneksi didefinisikan oleh JDBC URL atau oleh sebuah objek DataSource yang diregistrasi dengan JNDI (Java Naming and Direct01y Interface).
86
d. Akses penuh ke metadata JDBC API meyediakan akses metadata, sehingga aplikasi yang memerlukan fasilitas dan kapabilias dari koneksi database te1ientu dapat dibangun dengan baik.
e
Koneksi database menggunakan URL Teknologi JDBC memakai keung§,>ulan standar internet, yaitu URL untuk mengidentifikasi koneksi database. JDBC 2.0 API yang baru menambahkan satu cara yang lebih baik untuk identifikasi dan koneksi ke surnber data, yaitu rnenggunakan objek DataSource, dan rnembuat kode lebih mudah untuk dipindahkan ke platform lain dan lebih rnudah untuk dipelihara. Sebagai tambahan, objek DataSource juga menyediakan connection polling dan distributed transaction yang merupakan hal yang penting dalam ente171rise database computing.
o
Bagian dari Platform Java JDBC adalah bagian dari core Platform Java 2, sehingga JDBC tersedia di mana saja yang mempunyai Platform Java.
•
Ketersediaan Spesifikasi JDBC API tersedia di website software Java. JDBC API, implementasi referensi untuk JDBC-ODBC Bridge dan dokumen-dokumen yang berhubungan tersedia berupa satu bundel dengan Java 2 Standard Edition dan Java 2 Enterprise Edition.
BABUI METODOLOGI PENELITIAN
3.1. Metodo!ogi Penelitian
Penelitian adalah suatu proses mencari sesuatu secara sistimatis dalam waktu yang relatif lama dengan menggunakan metode ilmiah serta aturan yang berlaku. Dalam proses penelitian ini ditujukan untuk lebih mengenal hubungan antara bagian-bagian utama, khususnya basil pengadaan konstmksi sistem terhadap kine1ja pelaksanaan konstruksi sistem tersebut. Konseptualisasi proses tersebut kemudian dituangkan menjadi suatu metode penelitian lengkap dengan pola analisis, observasi se11a pengumpulan data yang diperlukan untuk melukiskan fenomena tersebut. Oleh karena itu metode yang digunakan dalam penelitian ini adalah Deskriptis-Analitis. Sesuai dengan anggapan dasar serta hipotesis dalam penelitian ini, bahwa deskripsi yang dimaksudkan menggambarkan variabel yang digunakan untuk menilai kualitas dokumen penawaran, serta menggambarkan variabel tersebut dalam menentukan kinerja pelaksanaan konstruksi. Data deskriptif tersebut perlu dilakukan analisis untuk menguji hipotesis dan menggadakan interprestasi tentang hubungan dan pengaruhnya terhadap hipotesis tersebut. Atas dasar metode penelitian yang digunakan pada penelitian ini, dapat dibuat suatu alur kegiatan metode kerja penelitian seperti terlihat pada gambar 3. I
88
Pemilihan awal pe11elitia11
......
Menmrnskan masalah dan .iudul.
Me11e11tulrn11 konsep dan hipotesis
--
~ literatur ata11 l_11ustaka
_J
Pendefinisian Masalah dan Sistem Analisis
:P:e·r~illCangan
Sistem
-~-JPCtancangan Database
oERD o Normalisasi • Penmcangan Aplilrnsi o Use Case Diagram o Activity Diagra1n o Sequence Diagram.>: o Class Diagra1n" 1ni)1lementasi Sistem • Penulisan Coding Progran1
Pera\vatan
Penal'ikan dan Penyusunan Kesimptdan
Gambar3.l Metode Kerja Penelitian
,
I
89
3.2. Kemngka Berfiki.-
Penelitian ini dilakukan untuk membantu perusahaan dagang dalam mengatur akuntansi penjualan I pembelian (laba, rugi, pajak dan lain-lain), managemen sistem basis data dan lain sebagainya. Pendekatan yang digunakan adalah dengan membuat aplikasi terdistribusi yang berbasis client-server. Dengan penelitian ini diharapkan dapat memberikan ide awal dalam ha! managemen akuntansi dalam perusahaan dagang dan dapat membantu perusahaan dagang dalam melakukan pekerjaannya.
3.3. Hipotesis Penelitilm
Hipotesis yang akan digunakan dalam penelitian ini adalah, bahwa untuk memudahkan suatu perusahaan dagang dalam mengatur penjualan I pembelian, membuat laporan, managemen sistern basis data dan lain sebagainya, dapat dilakukan dengan rnengintegrasikan semua komputernya dan mendistribusikan sistem basis data seeara terpusat. Pada penelitian ini, penulis akan menggunakan pendekatan sistem terdistribusi berbasis client-se1ver.
3.4. Research Question (RQ)
Dari hipotesa yang sudah dijelaskan di atas, jenis pertanyan yang akan digunakan adalah : 1. Bagaimana earn suatu perusahaan dagang dalam managemen akuntansi
penjualan clan pembeliannya dengan baik ? 2. Dari earn rnanagemen akuntansi tersebut, bagaimana earn pelaporannya ?
90
3. Hal apa saja yang bisa dilakukan oleh server dan yang bisa dilakukan oleh client ? 4. Bagaimana cara memanipulasi basis data pada perusahaan dagang dengan
baik?
3.5. Waktu dan Lokasi Penelitian 3.5.1. Waktn Pelaksanaan
Waktu penelitian dilakukan selama 6 bulan, rnulai bulan Januari 2006 sarnpai dengan bulan Juni 2006 dengan melibatkan berbagai disiplin ilmu pengetahuan antara lain sistern terdistribusi, OOP, UlvIL, Java, dan SIA 3.5.2. Lokasi Penelitian
Lokasi penelitian yang paling bayak dilaksanakan adalah di rumah sendiri (karena rurnah penulis berupa mempunyai toko sendiri), sedangkan untuk mencari referensi-referensi dilakukan di perpustakaan dan di wamet.
3.6. Pernlatan Penelitian
Peralatan yang akan digunakan dalam penelitian ini antara lain berupa perangkat keras dan perangkat lunak :
3.6.1. Pernngkat Kerns
Perangkat keras yang digunakan dalam penelitian ini rneliputi beberapa personal komputer (PC) yang saling terhubung dengan jaringan Local Area Network (LAN) atau personal kornputer yang tidak terhubung jaringan.
91
3.6.2. Pernngkat L1mak
Perangkat lunak yang digunakan pada penelitian ini antara lain adalah Java 2
Standard Edition (J2SE) dengan Java Runtime (JRE) versi 1.5.0_04 sebagai bahasa pernrograman dan Java Virtual Jvfachine-nya. Sun Java Studio Interprise 8 sebagai
Integrated Development Environment (IDE) dalam pembuatan aplikasi, baik GUI, pembuatan coding dan pembuatan diagram UML (UML tool). Sedangkan perangkat lunak untuk aplikasi database adalah MySQL 5, aplikasi database MySQL dihubungkan dengan J2SE dengan menggunakan driver MySQL Connecton:J dengan nama file adalah mysql-connector-java-5.0.0-beta-bin.jar. Sistem operasi yang penulis gunakan dalam penelitian adalah Microsoft Windows XP Proffesional. Untuk keperluan eksperimen, penu1is juga rnencoba untuk menjalankan aplikasi yang dibuat pada sistem operasi lainnya, misalnya Linux dengan beberapa konfigurasi sistem.
3.7. Metode Penelitian 3.7.l. Teknik Pengumpulan Data
Pendekatan yang dilakukan adalah dengan cara melakukan interview, observasi ke lapangan dan dengan cara studi pustaka. Interview dilaknkan dengan cara melakukan wawancara atau berdiskusi kepada orang yang bisa memberikan informasi mengenai aplikasi yang akan penulis buat. Sedangkan observasi dilakukan untuk melihat secara langsung kejadian bagaimana suatu perusahaan dalam melakukan aktifitasnya. Metode pengumpulan data yang terakhir adalah dengan studi
92
pustaka, oleh karena studi pustaka saja belum cukup untuk mendapatkaan referensi, maka penulis melakukan pencarian referensi tambahan lewat internet.
3.7.2. Pengembangan Sistem
Metode yang digunakan dalam penelitian ini adalah metode Wate1fa/l. Model m1 menuntut suatu pendekatan sistematik-sekuensial dari proses pengembangan perangkat lunak, dimulai pada tingkatan sistem dan dilanjutkan dengan analisis, perancangan, pengkodean, uji coba, dan pemeliharaan.
3.7.2.l. Pendefinisian Masalah
Pendifinisian masalah adalah menjabarkan secara jelas permasalahan yang te1jadi dari sistem lama yang ada dan kemudian menentukan tujuan dari sistem barn yang akan dibuat, batasan-batasan sistem, kendala dan juga alternatif pemecahan masalah.
3. 7.2.2. Analisis Sistem
Analisis digunakan untuk mengetahui perilaku sistem dan juga untuk mengetahui aktivitas apa saja yang ada dalam sistem tersebut. Dalam tahap ini akan diketahui apa saja yang menjadi kebutuhan sistem tersebut. Tahap analisis merupakan tahap yang kritis dan sangat penting, karena kesalahan pada tahap ini akan menyebabkan kesalahan pula pada tahap selanjutnya. Oleh karena itu, penulis akan berusahan lebih hati-hati dalam menganalisis dan merinci permasalahan yang ada.
93
Di dalam sistem analisis terdapat empat langkah dasar yang harus dilakukan, yaitu antara lain : l. Identify. yaitu mengidentifikasikan masalah. •
Mengindentifikasikan penyebab rnasalah.
•
Mengidentifikasikan titik keputusan.
•
Mengidentifikasikan personil-personil kunci.
2. Understand, yaitu mernaharni earn kerja sistem yang akan dibangun I dikernbangkan. •
Menentukan jenis penelitian.
•
Merencanakan j adual penelitian.
•
Mengatur jadual wawancara.
•
Mengatur jadual observasi.
•
Mengumpulkan hasil penelitian.
3. Analyze, yaitu menganalis sistem. •
Menganalisis kelemahan sistem yang sudah ada.
•
Menganalisis kebutuhan Informasi pemakai I rnanajemen.
4. Report, yaitu membuat laporan hasil analisis. Dari ernpat dasar langkah inilah yang akan penulis jadikan landasan dalam analisis sistem. Karena pada penelitian ini penu.lis akan membuat dua buah program (program server dan program client), maka yang pertama dianalisis adalah program server dan kernudian program client.
94
3. 7.2.3. Pernncangan Sistem Pada tahap ini, penulis akan membuat diagram konteks yang akan menggambarkan secara umum tentang program server dan program client, selanjutnya terdapat dua langkah perancangan sistem, yaitu perancangan sistem basis data clan perancangan sistem aplikasi. Pada perancangan sistem database, penulis akan menggunakan Emity Relationship Diagram (ERD) clan Normalisasi, sedangkan pacla perancangan aplikasi,
penulis akan membuat diagram-diagram I pemodelan yang akan digunakan dalam perancangan sistem. Teknologi pemoclelan yang akan dipakai adalah Unified lvlode/ing Laguage (UML) yaitu antara lain : Use Case Diagram, Class Diagram, Actifity Diagram dan Sequence Diagram.
Karena dua program yang akan penulis buat, maka yang pertama dirancang adalah program server dan kemudian program client, serta perancangan terakhir aclalah perancangan terhadap fungsi-fungsi lain yang digunakan bersama oleh program server dan program client, tahap-tahap perancangan sistem aplikasi aclalah sebagai berikut : a. Use Case Diagram b. Class Diagram pada Server •
Class Diagram pada Database Connection Manager
•
Class Diagram pada Data Barang Manager
•
Class Diagram pada Jenis Barang Manager
•
Class Diagram pada Transaksi Manager Bulanan
95
•
Class Diagram pada Transaksi Manager Tahunan
•
Class Diagram pada Chart Transaksi (dua komponen dijadikan satu class diagram)
•
Class Diagram pada Stok Barang Manager
•
Class Diagram pada Client Manager
•
Class Diagram pada RMI Connection Manager
•
Class Diagram pada Client Monitoring
•
Class Diagram pada Table Manager
c. Class Diagram pada Client •
Class Diagram pada Connection To Server Manager
•
Class Diagram pada Bertransaksi
•
Class Diagram pada Client Transaksi Manager
•
Class Diagram pada Data Barang Viewer
d. Class Diagram pada fungsi lainnya •
Class Diagram pada Another Manager Functions
•
Class Diagram pada General Application Functions
e. Activity Diagram •
Activity Diagram pada Connect Database
•
Activity Diagram pada Disconnect Database
•
Activity Diagram pada Add Data
•
Activity Diagram pada Update Data
•
Activity Diagram pada Delete Data
96
f
•
Activity Diagram pada Searching Data
•
Activity Diagram pada Insert Default Value
•
Activity Diagram pada Select Transaksi By
•
Activity Diagram pada Transaksi Navigator Action
•
Activity Diagram pada Select Chaii Type
•
Activity Diagram pada Add Sto k Barang
•
Activity Diagram pada Send Message
•
Activity Diagram pada RMI Connection
•
Activity Diagram pada RMI Disonnection
•
Activity Diagram pada Client Disconnection
•
Activity Diagram pada Table Manipulation
•
Activity Diagram pada Execute SQL Query
•
Activity Diagram pada Send Data Transaksi To Server
Sequence Diagram pada Server •
Sequence Diagram pada Database Connection Manager
•
Sequence Diagram pada Data Barang Manager
•
Sequence Diagram pada Jenis Barang Manager
•
Sequence Diagram pada Trai1saksi Manager Bulanan
•
Sequence Diagram pada Trai1saksi Manager Tahunan
•
Sequence Diagram pada Chart Transaksi Bulanan
•
Sequence Diagram pada Chart Transaksi Tahunan
•
Sequence Diagram pada Stok Barang Manager
97
•
Sequence Diagram pada Client Manager
•
Sequence Diagram pada RMI Connection Manager
•
Sequence Diagram pada Client Monitoring
•
Sequence Diagram pada Table Manager
g. Sequence Diagram pada Client •
Sequence Diagram pada Connection To Server Manager
•
Sequence Diagram pa
•
Sequence Diagram pada Client Transaksi Manager
•
Sequence Diagram pada Data Barang Viewer
h. Sequence Diagram pada fungsi lainnya •
Sequence Diagram pa
•
Sequence Diagram pada Another Manager Functions
3. 7.2.4. implementasi Sistem
Setelah melakukan analisis sistem dan perancangan sistem secara rinci. Tiba saatnya, sistem untuk diimplementasikan (pembuatan coding program). Tahap implementasi sistem merupakan tahap meletakkan sistern supaya siap untuk dioperasikan. Pada pengembangan sistem ini, tahap irnplementasi sistem terdiri dari delapan tahap, yaitu antara lain : l. lmplementasi sistem pa
a. Mencocokkan Driver JDBC
98
b. Koneksi ke Database c. Disconnect dari Database d. Manipulasi Database 2. Implementasi sistem pada Remote Jvlethod Invocation (R.Ml). a. Koneksi RMl pada Server b. Koneksi RMI pada Client c. TokoOnlinelnterface dan Implementasinya d. ClientTransaksiManagerinterface dan Implementasinya e. ClientObjectlnterface dan lmplementasinya 3. lmplementasi sistem pada Main Program dan Tampilan IJtama. 4. lmplementasi sistem pada Manager. 5. lmplementasi sistem pada Table Model dan Table Column Model. 6. Implementasi sistem pada Tree Model. 7. Implementasi sistem pada Gaphics (Chart). 8. Implementasi sistem pada print preview, table setting dan save action.
3.7.2.5. Uji Coba Sistem Pada tahap ini dilakukan dengan pengujian masing-masing modul (unit) pro gram apakah sesuai dengan tugasnya. Kemudian dilakukan uji coba terhadap integrasi keseluruhan unit program untuk mengetahui apakah sistem yang telah dibuat sudah memenuhi kriteria yang diinginkan. Pengetesan ini dilakukan dengan menggunakan metode black box testing, yaitu dengan mengecek satu per satu komponen dengan menggunakan tabel pengetesan, apakah komponen tersebut sudah
99
sesuai dengan apa yang diharapkan atau belum. Pada pengembangan sistem ini, tahap-tahap uji coba sistem adalah sebagai berikut : I. Uji Coba Sistem pada Aplikasi Server a. Uji Coba Sistem Database Connection Manager b.
Uji Coba Sistem Data Barang Manager
c. Uji Coba Sistem Jenis Barang Manager d. Uji Coba Sistem Transaksi Manager Bulanan e. Uji Coba Sistem Transaksi Manager Tahunan f
Uji Coba Sistem Chart Transaksi Bulanan
g. Uji Coba Sistem Chart Transaksi Tahunan h. Uji Coba Sistem Stok Barang Manager L
Uji Coba Sistem Client Manager
J.
Uji Coba Sistem RMI Connection Manager
k. Uji Coba Sistem Client Monitoring
L
Uji Coba Sistem Table Manager
2. Uji Coba Sistem pada Aplikasi Client a. Uji Coba Sistem C01mection To Server Manager b. Uji Coba Sistem Bertransaksi c. Uji Coba Sistem Client Transaksi Manager d. Uji Coba Sistem Data Barang Viewer 3. Uji Coba Sistem pada Fungsi Lainnya a. Uji Coba Print Preview b. Uji Coba Print
100
c. Uji Coba Save d. Uji Coba Table Setting e. Uji Coba General Application Functions
3. 7.2.6. Pernwatan Sis tern Setelah perangkat lunak diberikan kepada pemakm dan telah berjalan beberapa lama kemungkinan besar akan mengalami pembahan. Pembahan tersebut bisa te1jadi karena : •
Kesalahan-kesalahan yang telah terdeteksi,
•
Karena perangkat lunak hams beradaptasi untuk mengimbangi pembahanpembahan yang ada pada lingkungannya (misalkan perubahan sistem operasi atau peralatan yang dipakai), atau
•
Karena pemakai menghendaki fungsi-fungsi dan kemampuan yang lebih. Untuk mengatasi pembahan yang terjadi, fase pemeliharaan biasanya lebih memilih untuk memperbaiki perangkat lunak yang telah ada dari pada hams membuat yang baru.
BAB IV PEMBAHASAN
Pada bab ini, akan dibahas secara detail dan terperi:nci mengenai aplikasi sistem baru yang akan penulis implernentasikan, dengan harapan dapat rnengganti aplikasi sistern yang lama, yaitu program kasir terdistribusi yang berbasis clientserver, dengan menerapkan metodologi penelitian yang tela.h diuraikan pada bab sebelumnya. Sedangkan aplikasi sistem yang lama tidak akan dibahas secara detail dan terperinci, melainkan hanya sebagai perbandingan untuk mengetahui kelebihan dan kernudahan yang diberikan dari sistem aplikasi yang baru. Pada bab sebelumnya telah dibahas, bahwa metode pengembangan sistem yang akan penulis pergunakan dalam pengembangan aplikasi ini adalah metode
wate1fall atau sering disebut dengan Classic Life Cycle. Metode ini menuntut suatu pendekatan sistematik-sekuensial dari proses pengembangan perangkat lunak, dimulai dari pendefinisian masalah dan analisis, perancangan sistem, implementasi sistem, uji coba sistem dan perawatan sistem.
4.1. Pendefinisian Masalah Di dalam dunia bisnis, sistem informasi rnerupakan urat nadi yang sangat menentukan hidup atau matinya, berjalan atau tidaknya dan rnaju atau mundurnya dari bisnis suatu perusahaan, khususnya pada bisnis di dalarn perusahaan dagang. Apabila sistem informasi suatu perusahaan dagang baik, maka perusahaan tersebut akan berkembang terus dan bisa maju, bahkan dapat bersaing dengan perusahaan dagang yang lainnya. Akan tetapi sebaliknya, apabila sistem informasi
102
buruk, yaitu kurang bisa memberikan informasi yang akurat, sulit dalam pengolahan data dan pengkalkulasian akuntansi keuangan, kesulitan pada saat pengembangan sistem dan tidak fleksibel, tentu saja akan menghambat aktifitas perusahaan dagang, sehingga perusahaan itu sulit untuk berkembang dan tidak akan bisa maju se11a akan tersaingi dengan perusahaan dagang yang lainnya. Pada saat ini, kebanyakan perusahaan dagang belum memanfaatkan teknologi komputer yang terdistribusi secara optimal sebagai sistem informasi mereka, bahkan banyak di antara perusahaan dagang yang sama sekali tidak menggunakan teknologi komputer untuk membantu aktifitas mereka, akan tetapi masih mempertahankan cara tradisional, yaitu dengan menggunakan pembukuan dalam mengolah akuntansi keuangan mereka (kasus ini sering penulis temui pada grosir-grosir besar I sedang yang berada di pasar). Sehingga aktifitas dalam penjualan dan pembelian membutuhkan waktu yang lama, karena harus menghitung barang yang te1jual pada setiap transaksi penjualan I pembelian dengan cara manual, sehingga secara otomatis menimbulkan antrian (tidak efektif). Se lain permasalahan tersebut, permasalahan lain muncul pada saat menghitung berapa keuntungan I kerugian dari aktifitas penjualan harian, bulanan dan bahkan tahunan, sehingga membutuhkan waktu dan tenaga kembali dalam proses pengkalkulasian akuntansi keungan mereka (tidak efisien). Sedangkan perusahaan dagang yang telah memanfaatkan komputer sebagai sistem informasi mereka, misalnya adalah minimarket-minimarket yang banyak bermunculan. Kebanyakan dari mereka belum juga memanfaatkan komputer yang mereka miliki secara optimal. Meskipun mereka sudah menggunakan teknologi komputer sebagai sistem informa:;i, namun komputer-
103
komputer tersebut masih belum terintegrasi dengan baik, permasalahan akan muncul pada saat pendistribusian dan pengolahan data, sehingga setiap komputer harus
membuat
laporan
penjualannya
.
.
1nas111g-n1as1ng:,
dan
pad a
saat
pengkalkulasian total penjualan, pembelian, laba I rugi akan membutuhkan waktu dan tenaga kembali (tidak efisien). Sedangkan perusahaan dagang yang telah memanfaatkan komputer terdistribusi sebagai sistem informasi mereka kebanyakan hanyalah perusahaanperusahaan dagang yang sudah besar. Dari pendefinisian pennasalahan-permasalahan tersebut, timbul suatu ide untuk membuat sebuah sistem informasi penjualan yang baik, yaitu sistem informasi akuntansi yang dapat mengolah dan penyediaan informasi yang menyeluruh dan terintegrasi untuk membantu pengambilan keputusan bagi berbagai tingkatan manajemen dalam suatu perusahaan, baik informasi akuntansi penjualan I pembelian (harian, bulanan, dan tahunan), informasi jumlah stok barang yang tersedia I habis I lama belum te1jual, informasi data barang dan informasi lainnya. Untuk mewujudkan sistem tersebut, penulis berinisiatif untuk membuat program kasir yang terdistribusi berbasis client-server. Pada program yang akan penulis implementasikan, client sebagai kasir yang bertugas untuk be1transaksi dengan pembeli dan bisa meng-edit data transaksi yang telah ada apabila transaksi tersebut terjadi kesalahan, sedangkan server bertugas untuk menganalisis dan mengolah data barang, data jenis barang, data transaksi (berupa tabel dan cha1i), data stok barang, data client, data koneksi pada masing-masing client (RMI
104
Connection), dan memonitor aktifitas setiap client yang sedang terhubung ke
server.
4.2. Analisis Sistem
Di dalam analisis sistem ini, penulis akan melakukan empat buah langkah dasar, yaitu antara lain
identijj1 (mengidentifikasi masalah), understand
(memahami sistem yang akan dibangun), analyze (menganalisis sistem) dan yang terakhir adalah report (membuat laporan dari hasil analisis).
4.2. l. ldent!fY (Mengidentifilmsi Masalah)
Pada sub bab sebelumnya telah didefinisikan permasalahan yang timbul dari sistem informasi tradisional sampai sistem informasi komputerisasi yang belum terintegrasi.
Pada tahap
ident(/j; ini
akan dirinci
permasalahan-
permasalahan tersebut, dan nanti pada saat analisis sistem (analyze) akan dicari alternatif pemecahan pada setiap permasalahan yang ada. Secara terinci permasalahan jika komputer belum terintegrasi adalah sebagai berikut : 1. Tidak Efektif
Setiap user I kasir hams membuat laporan hasil transaksi penjualan masing-masing dan kesulitan pada saat menghitung keuntungan atau kerugian, karena hams menghitung hasil transaksi pada setiap komputer. Selain itu, pada saat terjadi pembahan harga, pembahan diskon dan pembahan pajak, setiap komputer hams melakukan perubahan data barang mereka masing-masing.
105
2. Tidak Efisien Membutuhkan lebih banyak waktu dan tenaga (lamban), karena setelah data pada masing-masing !computer didapatkan harus di analisis kembali. 3. Keakuratan tidak Terjamin Dalam penghitungan kembali tersebut, otomatis setiap !computer harus membuat laporannya masing-masing dalam bentuk print out. Dari hasil print out tersebut kemudian dihitung kembali, dan pada saat penghitungan kembali ini kemungkinan terjadi kesalahan. Jika terjadi kesalahan sedikit saja, maka pada saat pengkalkulasian total penjualan, pembelian, laba I rugi dan pajak juga akan ikut salah. 4. Pennasalahan lainnya e
Sulit untuk mengembangkan aplikasi.
0
Tidak ekonomis.
e
Tidak bisa digunakan untuk mendistribusikan fungsi., distribusi beban dan replikasi kekuatan pemrosesan.
e
dan tidak fleksibel.
4.2.2. Understand (Memahami Sistem yang Dibangnn) Dalam sub bab ini, penulis akan menentukan jenis penelitian yang akan dilak:ukan, yaitu dengan cara memahami (understand) sistem baru yang ak:an penulis implementasikan dan juga harus memahami sistem lama yang telah ada untuk melakukan evaluasi dan perbandingan. Dari hasil penelitian ini diharapkan menghasikan sistem baru yang mampu mengatasi permasalahan-permasalahan
106
Pada sistem yang akan dikembangkan bertujuan untuk memudahkan dalam pengolahan transaksi akuntansi penjualan I pembelian, sehingga mudah untuk mengetahui laba I rugi dan pajak. Untuk mewujudkan sistem tersebut tidak bisa terlepas dari pemahaman mengenai Sistem Informasi Akuntansi (SIA). Dengan pemahaman yang baik diharapkan mendapatkan hasil program yang baik pula dan dapat memenuhi apa yang diharapkan. Di dalam sistem yang lama, sebuah sistem !computer tidak terdistribusi, sedangkan pada sistem yang akan penulis kembangkan menggunakan sistem komputer yang terdistribusi berbasis client-server, maka konsep pemahaman koneksi client server harus dimengerti (konsep RMI connection) dan juga konsep sistem terdistribusi baik mengenai konsep jaringan (networking) maupun IP
address. Sebuah sistem yang baik harus bisa mengolah data.basenya dengan baik pula. Oleh karena itu, perancangan database merupakan kunci awal untuk menentukan baik buruknya suatu sistem dalam hal manajem1;n database. Sehingga konsep perancangan database harus benar-benar dimenge1ii dengan baik. Selain pemahaman-pemahaman tersebut di atas, konsep lainnya yang harus dikuasai adalah cara untuk merancang dan mengimplementasikan sistem ini. Untuk perancangan atau pemodelan aplikasi menggunakan UML dan untuk mengimplementasikan sistem ini, penulis menggunakan teknologi Java, sehingga konsep tentang UML dan konsep Java juga harus benar-benar dikuasai.
107
4.2.3. Analyze (Menganalisis Sistem) Dari analisis ini diharapkan dapat mendapatkan suatu alternatif untuk memecahkan permasalahan-permasalahan yang telah di definisikan di atas. Aplikasi yang akan dikembangkan berupa aplikasi client-server, sehingga untuk mengimplementasikannya membutuhkan dua buah program, yaitu program server dan program client. Pada sub bab sebelumnya telah dijelaskan sedikit mengenai apa saja tugas server dan apa saja tugas client. Di dalam analisis sistem ini, tugas-tugas server dan tugas-tugas client akan lebih dirinci, sekaligus menjelaskan alternatif apa saja yang digunakan untuk mengatasi permasalahan pada sistem penjualan yang lama. Selain menganalisis mengenai server dan client, analisis yang lainnya adalah mengenai komponen-komponen yang dipakai pada kedua program tersebut (dalam OOP memakai konsep polimorpisme), misalnya : save, print, prilll
preview dan table setting.
4.2.3.1. Analisis pada Program Server Pada aplikasi yang akan penulis kembangkan, server merupakan pusat kendali dari semua client yang terhubung padanya. Di dalam server, semua data bisa dianalisis, yaitu antara lain : data barang, data jenis barang, data transaksi, data stole barang, data client, data RMI connection dan data koneksi database. Selain menganalisis data, server juga bisa memanipulasi (insert, update dan
delete) data, kecuali pada data transaksi, karena yang berhak untuk insert, update dan delete data transaksi hanyalah client yang memiliki data tersebut.
108
Secara terperinci, komponen-komponen yang ada pada server adalah sebagai berikut : 1. Koneksi ke Database Hal yang pertama kali dilukakan oleh server sebelum melakukan aktifitas yang lainnya adalah koneksi ke database. Pada saat koneksi ke database, data yang diperlukan antara lain adalah
driver yang di!,>unakan
untuk koneksi ke database, database URL, username, danpas,word. Hal yang bisa dilakukan oleh server di dalam manajemen koneksi database antara lain adalah : menambahkan koneksi database, memodifikasi koneksi database dan menghapus koneksi ke database. Meskipun data koneksi database bisa lebih dari satu, akan tetapi hanya satu koneksi database saja yang bisa diaktifkan dalam satu waktu. 2. Data Barang Dalam mengelola data barang, hal yang bisa dilakukan server adalah menginputkan data barang baru, merubah data barang yang sudah ada, menghapus data yang tidak perlu dan manipulasi data yang lainnya. Data barang yang inputkan antara lain berupa kode barang, nama barang, j enis barang (berasal dari manajemen jenis barang), harga beli barang, harga jual barang, diskon beli barang, diskon jual barang dan satuan barang, sedangkan data keterangan barang bersifat optional (boleh diisi atau tidak). Setiap saat data barang tersebut diinputkan, secara otomatis langsung diketahui harga beli berdiskon, harga jual berdiskon, harga jual berpajak, laba bersih, laba kotor dan pajak penjualan. Dan semuanya dapat dirubah sewaktuwaktu jika diperlukan, sehingga setiap barang bisa ditentukan berapa laba
109
yang diinginkan dari penjualan barang tersebut, berapa pajak penjualan yang ingin dikeluarkan, berapa harga jual yang akan diberikan kepada konsumen dan lain sebagainya. Selain itu, di dalam data barang ini, bisa ditentukan pula default value untuk pesentase harga jual terhadap harga beli, diskon jual dan diskon beli, sehingga memudahkan pada saat memasukkan data barang baru dan mengupdate data barang. Jika data barang terlalu bayak, tentunya membutuhkan semacam
search engine untuk mencari data barang yang dimaksud, yaitu dengan cara memasukkan keyword yang sesuai dengan apa yang diinginkan dengan beberapa alternatif pilihanjie/d tabel data barang. Pada saat memanipulasi data barang di server, secara otomatis dan spontan merubah semua data barang yang ada di client, sehingga sangat efektif dalam hal manipulasi data, karena tidak harus merubah data barang di client satu per satu sepe11i kasus yang terjadi pada sistem informasi penjualan yang lama. 3. Data Jenis Barang Data jenis barang akan menentukan pajak dari masing-masing jenis barang. Pada pengelolaan data jenis barang, hal yang bisa dilakukan ac\alah menginputkan jenis barang baru, merubah data jenis ha.rang yang sudah ada dan menghapus jenis barang yang tidak diperlukan. Data jenis barang yang diinputkan antara lain adalah : kode jenis barang, nama jenis barang dan pajak jenis barang.
110
Pada saat mengupdate data jenis barang, secara otomatis dan spontan akan mernbah data jenis barang yang ada pada data barang, dan juga akan mengupdate data jenis barang dari data barang yang berada di semua client. Sedangkan pada saat penghapusan data jenis barang tidak bisa dilakukan apabila jenis barang tersebut digunakan oleh suatu data barang. 4. Data Transaksi Di dalam program server, dari hasil kalkulasi data transaksi inilah bisa menentukan berapa barang yang te1jual, berapa jumlah transaksi yang terjadi, berapa laba I rugi penjualan, berapa pajak penghasilan, berapa total harga pembelian dari barang yang te1jual, berapa total penjualan, berapa total penjualan berdiskon dan berapa total penjualan berpajak. Data-data transaksi ini bisa dikalkulasikan setiap tahunan, bulanan dan harian. Serta bisa di pilih transaksi pada setiap client, sehingga bisa ditentukan berapa penghasilan (omset) pada masing-masing client. Di dalam analisis data transaksi, tidak bisa terlepas dari rumus ekonomi dalam penghitungannya. Komponen yang akan di kalkulasikan adalah sebagai berikut : Harga Beli Berdiskon (HBB), Barga Jual berDiskon (HJD), Barga Jual berPajak (HJP), Laba Kotor (LK), Laba Bersih (LB) dan Pajak Penghasilan (PP). Sedangkan komponen yang sudah diketahui yaitu antara lain : Harga Beli (HB), Harga Jual (HJ), Diskon Beli (DB), Diskon Jual (DJ) dan Pajak (P). Rumus pencariannya adalah sebagai berikut :
* DB I
@
HBB
= HB - (HB
•
HJD
=HJ - (HJ
e
HJP
= HJD + (HJD
100)
* DJ I 100) * P /100)
111
=(HJ -(HJ* DJ I 100)) +((HJ -(HJ* DJ I 100)) *PI 100) =(HJ - (HJ* DJ I 100))
* LK
=HJP-HBB =((HJ - (HJ*DJ/100))
e
LB
* (1 + P/100)
* (1
+ P/100))-(HB --(HB
* DB/100))
=HJD-HBB =(HJ - (HJ* DJ I 100))-(HB- (HB *DB I 100))
@
pp
=LK-LB
=(((HJ - (HJ*DJ/100)) ((HJ - (HJ
* DJ I
* (1 + P/100))- (HB -
100)) - (HB - (HB
(HB * DB/100)))-
* DB/ lOO)))
=((HJ -(HJ*DJ/lOO))*(l+P/100))- (HJ -HJ* DJ/100) =(HJ -(HJ*DJ/100))
* (1+P/100-1)
=(HJ - (HJ *DJ I lOO))
* (P/100)
Untuk mengolah data transaksi secara optimal, akan dipisahkan manajernen tanunan dan manajemen bulanan. Di dalam rnanajemen data tahunan akan digunakan sernua tabel transaksi setiap bulan, sehingga pada manaj em en tahunan ini dapat menentukan data transaksi selama satu tahun dari hasil kalkulasi semua tabel bulanan. Sedangkan untuk menajemen transaksi bulanan rnenggunakan sebuah tabel transaksi satu bulan saja untuk rnengkalkulasikan semua data transaksinya. Sebenarnya, menajernen data transaksi tahunan sudah bisa menghandel transaksi bulanan dan harian, akan tetapi karena data transaksi tahunan rnenggunakan sernua tabel transaksi (select multiple table) semua bulan selama satu tahun, dan data ini jumlahnya sangat besar, bisa sampai iutaan,
112
puluhan juta bahkan bisa sampai ratusan juta data transaksi, sehingga membutuhkan waktu yang lebih lama untuk mengkalkulasikan semua data transaksinya. Oleh karena itu, dibuatlah manajemen data transaksi bulanan untuk mengatasi permasalahan pengkalkulasian data trnnsaksi dengan tujuan mempercepat proses penghitungan. Bentuk manajemen data transaksi (baik bulanan maupun tahunan) bisa bempa tabel dan chmt. Dalam bentuk tabel, field-field yang ada antara lain adalah jumlah barang yang terjual, jumlah transaksi yang te1jadi, jumlah harga beli dari barang yang terjual, jumlah harga beli berdiskon dari barang yang terjual, jumlah harga jual, jumlah harga jual berdiskon, jumlah harga jual berpajak, laba kotor, laba bersih dan pajak penghasilan. Sedangkan dalam bentuk chm1 bisa menampilkan grafik dalam bentuk bar, line dan pie. Jika dibandingkan dengan sistem informasi yang lama, sistem yang barn ini jauh lebih mudah dan lebih cepat dalam mengkalkulasikan data transaksinya. Tidak perlu repot lagi, tinggal sekali klik langsung bisa diketahui laba/rugi, jumlah transaksi penjualan I pembelian dan jumlah pajak yang hams dikeluarkan. 5. Data Stok Barang Data stok barang menentukan persediaan barang yang masih tersisa, menentukan stok barang yang akan habis, menetukan stok barang yang lama belum terjual atau barang yang kadaluarsa serta menentukan stok maksimal dan stok minimal. Hal yang bisa dilakukan dalam manajemen stoic barang antara lain adalah : input dan update stole barang yang akan habis, input batas
ll3
masa kadaluarsa suatu barang, input jumlah minimum barang, merubah stok maksimal dan stok minimal. Pada setiap transaksi yang dilakukan oleh masing-masing client, secara otomatis stok barang akan berkurang sesuai dengan jumlah barang yang terjual, sedangkan jika terjadi pembatalan transaksi (penghapusan data transaksi) oleh client, maka data stok barang tersebut akan di kembalikan lagi, dan apabila terjadi perubahan data transaksi oleh client, maka stok barang akan dikurangkan dahulu dengan data transaksi sebelum dilakukan perubahan dan kemudian ditambahkan kembali dengan data transaksi setelah dilakukan perubahan. Apabila jumlah stok barang yang mencapai jumlah minimum sudah mencapai batas jumlah yang ditentukan (misalnya 20 barang), secara otomatis bisa membuat order pemesanan barang-barang yang akan habis tersebut dan kemudian order pemesanan tersebut diberikan kepada sup lier (dalam pengembangan program selanjutnya, manajemen stok barang secara otomatis bisa langsung memesan barang ke suplier). Di dalam manajemen stok barang iuga terdapat komponen untuk melihat secara detail stok barang yang pernah dimasukkan. Komponen ini disebut dengan Detail Stok Barang. Di dalam komponen ini, server administrator bisa menganalisis dan memanipulasi semua stok barang yang pernah dimasukkan pada database aplikasi ini. Di dalam manajemen stok barang terdapat manajemen yang bertugas untuk mencatat semua pemasukan stok barang, atau juga sebagai history dari
114
pemasukan stok. Manajemen ini berfungsi untuk melihat secara detail pemasukan stok yang pernah dilakukan pada data barang tertentu. Pada sistem informasi yang lama, data stok barang ada di komputer masing-masing client dan ada juga yang terpisah dari komputer transaksi. Untuk melakukan pengolahan data stole barang, harus menginputkan kembali data stok barang yang terjual satu per satu, sehingga akan membutuhkan waktu dan tenaga lagi dalam manajemen stok barang. 6. Data Client Data client ini memberikan informasi mengenai semua client yang ada pada sistem informasi penjualan. Hal yang bisa dilakukan pada manajemen data client antara lain adalah : input data client baru, update data client dan menghapus data client. Di dalam input data client, field yang harus diisikan adalah kode client, nama client dan password client, sedangkan field alamat dan keterangan bersifat optional. Pada saat update data client, secara otomatis akan mengupdate pula data client pada semua transaksi penjualan. Update data client ini tidak bisa dilakukan apabila client tersebut sedang terhubung
(connect) ke server. Sedangkan pada saat penghapusan data client, secara otomatis akan menghapus pula semua transaksi client tersebut, sehingga manajemen client memberikan peringatan dua kali dalam penghapusan ini, yaitu untuk memberikan kepastian dan keyakinan apakah data client tersebut benar-benar akan dihapus.
115
Manajemen data client ini juga memberikan informasi mengenai status suatu client, apakah sedang terhubung atau tidak, j1ka terhubung, client tersebut menggunakan bind apa dan port berapa. Selain itu, ha! lain yang bisa dilak:ukan oleh server terhadap masingmasing client adalah bahwa server bisa mematikan atau disconnect suatu client serta bisa mengirimkan pesan kepada client jika diperlukan. Manajemen data client ini harus mengecek keberadaan client setiap saat, apakah client tersebut masih aktif atau tidak. Pengecekan ini dilakukan dengan pengiriman pesan ke client yang dituju, apabila client tersebut masih merespon pesan tadi, maka client tersebut dianggap masih aktif, akan tetapi jika sebaliknya maka client tersebut secara otomatis akan diputuskan koneksinya (ha! ini dilakukan untuk memberitahukan status client, apakah masih aktif atau tidak, suatu client bisa saja tidak aktif sewaktu-waktu secara mendadak, misalnya : te~jadi mati lampu pada client). Pada sistem informasi penjualan yang lama tidak mengenal mengenai data client, karena masing-masing client bekerja secara independen. Sedangkan pada sistem penjualan yang akan diimplementasikan, setiap client sangat bergantung pada server. Sehingga jika server mati (misalnya ada gangguan Janngan atau ada petir), maka semua aktifitas client juga akan terganggu. Hal ini yang mungkin menjadi kelemahan clari sistem baru yang akan dibuat. Untuk mengatasi ha! ini, pacla pengembangan selanjutnya, setiap client harus mempunyai tempormJ' data yang bisa digunakan dalam proses transaksi pada saat server tidak aktif, clan apabila server sudah aktif kembali,
temporwy data ini akan di kirimkan ke server.
ll6
7. Data Koneksi (RMI Connection) Di dalam manajemen data client, server bertugas untuk mengatur aktifitas setiap client yang sedang terhubung ke server, sedangkan pada manajemen data koneksi atau RMI Connection, server bertugas untuk mengatur konektifitas setiap client, yaitu dengan menyediakan fasilitas p011 dan bind yang bisa dipilih oleh setiap client. Manajemen data koneksi ini menyediakan pm1 dan bind yang berbeda-beda dengan tujuan untuk mengantisipasi kemacetan lalu lintas aliran data, sehingga kejadian bottleneck dapat dihindari. Di dalam manajemen data koneksi ini, hal yang bisa dilakukan oleh server antara lain adalah : input data koneksi baru, update data koneksi dan penghapusan data koneksi, pada waktu input data koneksi, komponen yang harus diinputkan adalah kode koneksi, bind koneksi dan port yang digunakan, sedangkan keterangan koneksi bersifat optional. Perubahan dan penghapusan data koneksi tidak bisa dilak"Ukan selama saat bind tersebut sedang aktif, maka sebelum dilakukan perubahan dan penghapusan, harus disconnect bind tersebut terlebih dahulu. Selain menipulasi data koneksi, manaJemen ini bisa memberikan informasi tentang status bind ini, apakah sedang aktif atau tidak. Server berhak untuk disconnect bind sewaktu-wak1:u, tetapi dengan syarat bind tersebut tidak digunakan oleh suatu client. Pada saat suatu bind akan diaktifkan, pertama yang akan dilakukan adalah mengecek port yang digunakan, apakah port tersebut bisa digunakan atau tidak. Jika tidak bisa digunakan, maka manajemen data koneksi ini akan memberikan informasi bahwa port tersebut
117
tidak bisa digunakan (kasus ini te1jadi apabila port yang akan digunakan sudah aktif digunakan oleh aplikasi lainnya, misalnya po1i 80 yang biasanya digunakan untuk HTTP). 8. Client Monitoring Analisis pada server selanjutnya adalah mengenai Client l:vfo11itoring. Client monitoring ini berbeda dengan analisis komponen server lainnya. Client
Monitoring bertugas untuk mengetahui informasi tentang aktifitas semua client setiap waktu, apakah client tersebut sedang bertransaksi, sedang melakukan update data transaksi, atau sedang idle (tidak melakukan apa-apa). Pada saat client melakukan transaksi, client monitoring ini akan memberikan informasi data barang apa saja yang telah terjual dan jumlahnya berapa. Sedangkan pada saat suatu client melakukan pengolahan data transaksi, client monitoring ini akan menginformasikan, apakah client tersebut sedang melakukan penghapusan data atau peng-update-an dan data transaksi apa yang dihapus I di-update. Dengan client monitoring 1111, semua aktifitas client bisa tercatat, sehingga suatu client akan diketahui apabila melakukan kecurangan atau tindak !criminal yang lainnya. 9. Perawatan Tabel (Table A1aintenance) Analisis pada server yang terakhir adalah mengenai Perawatan TabeL Perawatan Tabet be11ugas untuk memastikan bahwa suatu label dapat difungsikan dengan baik dan dapal ditanggulangi jika terjadi kemsakan pada label lersebut. Perawalan Tabel dapat digunakan untuk mengaktifkan atau tidak mengangaktifkan sualu tabel tidak digunakan, misalnya label transaksi
118
pada bulan lalu atau tabel detail stok barang pada tahun lalu. Tujuan dari mengaktifkan atau tidak mengaktifkan dari suatu tabel adalah untuk pemblokiran pengaditan data transaksi dalam suatu bulan oleh client dan juga untuk mempercepat proses pengkalkulasian dan perubahan data pada tabel tertentu. Selain digunakan untuk mengaktifkan atau tidak mengaktifkan suatu tabel, Perawatan Tabel dapat digunakan untuk mem-backup atau me-restore suatu tabel. Backup dan restore digunakan untuk memudahkan pada saat membuat cadangan data tabel sewaktu data tabel tersebut te1jadi kesalahan atau permasalahan lainnya.
4.2.3.2. Analisis pada Program Client Tidak seperti pada program server, aktifitas program client sangat terbatas. Client hanya bisa melakukan transaksi dan manipulasi data transaksi. Fungsi utama dari client adalah bertransaksi dengan pembeli, apabila terjadi kesalahan pada saat transaksi, client bisa melakukan pembenaran transaksi tersebut pada manajemen data transaksi di client. Secara terperinci, komponen-komponen yang ada pada client adalah sebagai berik:ut : l. Koneksi ke Server
Manajemen koneksi ini menyediakan fasilitas untuk koneksi ke server dengan menggunakan alternatif p011 dan bind yang disediakan oleh server. Data yang diperlukan untuk koneksi ke server atara lain adalah IP address server, port dan bind. Apabila client menghubungkan dirinya ke server,
119
manajemen ini akan mengecek (lookup) apakah server menyediakan port dan bind ini atau tidak, jika port dan bind ini tidak tersedia, maka rnanajernen ini akan rnernberi pesan bahwa port dan bind tersebut tidak tersedia. Tetapi jika tersedia, server akan rnencocakkan kernbali, apakah client ini terdaftar atau tidak, jika tidak terdaftar, rnaka client ini akan ditalak oleh server. 2. Bertransaksi Manajernen bertransaksi ini digunakan aleh client untuk melakukan transaksi dengan pembeli. Kasir (client) bisa rnelakukan input data transaksi ini dengan beberapa earn, yaitu antara lain dengan menggunakan barcode
reader, atau j ika tidak ada barcode reader bis a dengan menginputkan data pada tabel transaksi secara manual. Setiap kali tabel transaksi dipilih akan muncul sebuah popup yang berisi data barang yang tersedia. Setelah semua data barang yang dibeli di-input-kan,
langkah
selanjutnya kasir tersebut bisa rnenginputkan berapa pembeli membayar barang yang dibelinya, dan dengan otomatis akan menampilkan berapa kembaliaanya. (pada pengembangan program selanjutnya, pembeli bisa membayar dengan menggunakan kartu kredit). Hasil dari transaksi ini kemudian dikirirnkan ke server, dan selanjutnya server akan menyimpan data transaksi pada tabel transaksi, dan secara otamatis akan menambah namer urut transaksi (namer urut transaksi ini setiap awal bulan akan kembali lagi ke nilai awal I namer 1 (satu)). Selain bertransaksi dengan pembeli,
manaJemen mi JUga bisa
menentukan bentuk kertas printer yang akan dijadikan nata penjualan. Yaitu dengan menampilkan semacarn print preview.
120
3. Manipulasi Data Transaksi Seperti pada server, pada client juga disediakan manaiemen data transaksi, perbedaannya adalah kalau di server sifatnya hanya menganalisis hasil transaksi yang terjadi dari semua client, server tidak bisa melakukan ;,1sert, update dan delete data transaksi. Sedangkan di client, bisa melakukan insert (dengan earn bertransaksi dengan pembeli), update dan delete pada data
transaksinya sendiri sewaktu-waktu, update dan delete ini dilakukan pada saat terjadi kesalahan pada waktu bertransaksi dengan pembeli Pada manajemen transaksi ini, client dengan mudah bisa menentukan suatu transaksi yang akan di-update I di-delete. Yaitu mulai dari transaksi tanggal berapa, jam berapa dan juga menit ke berapa. Selain itu bisa langsung menemukan data transaksi dengan memasukkan namer urut transaksi (dengan menggunakan semacam search engine). Manajemen transaksi di client tidak bisa melihat berapa laba I rugi, pajak penghasilan dan harga pembelian, melainkan hanya menampilkan harga penjualan dan total penjualan pada client tersebut. 4. Data Barang Seperti pada sever, di client juga disediakan tampilan data barang, namun data barang yang berada di client ini sangat terbatas, sifatnya hanyalah menampilkan kode barang, nama barang, harga jual, diskon jual, pajak serta stok barang saja. Seorang client tidak bisa merubah data barangnya sendiri, melainkan perubahan data barang harus dilakukan dari server.
121
4.2.3.3. Analisis Komponen Program Server dan Program Client Di dalam program server dan program client terdapat kemiripan-kemiripan fungsi yang bisa digunakan oleh kedua program ini (di dalam konsep OOP disebut dengan polimorpisme). Sehingga kedua program (server dan client) bisa memanfaatkan fungsi ini dengan menggunakan cara yang sama, walaupun output atau hasilnya berbeda-beda. Secara terperinci, komponen-komponen tersebut adalah sebagai berikut : 1. Save (penyimpanan) Selain penyimpanan di dalam database, data yang ada di server maupun di client bisa disimpan dalam bentuk file. Untuk data yang bersifat data tabular (data label) bisa disimpan dalam bentuk *.CSV yang bisa dibuka oleh aplikasi Microsoft Excel (untuk pengembangan selanjutnya, bisa menyimpan dalam bentuk PDF dan XML). Sedangkan data yang bersifat grafik bisa disimpan dalam bentuk JPEG ( dalam pengembangan selanjutnya, bisa menyimpan dalam bentuk GIF dan PNG).
2. Print Preview Untuk mencetak suatu data (baik berupa data tabular atau data grafik) diperlukan semacam tampilan untuk mengatur posisi, margin, kertas, printer dari data yang akan dicetak. Di dalam print preview, terdapat fasilitas untuk zoom in, zoom out, pemilihan ukuran kertas, pemilihan alat cetak, pemilihan unit ukuran (mm, inci dan pixel), pemilihan orientasi kertas (portrait atau landscape), pemilihan halaman yang akan di cetak (bisa semua halaman atau beberapa halaman tertentu saja), pengaturan margin (left, rigth, top dan
122
bottom), pengaturan tempat halaman (left, rigth, center. top dan bottom) dan penggunaan warna.
3. Print Fungsi Print sebenarnya hampir sama dengan print preview, akan tetapi di layar monitor basil cetak tidak ditampilkan terlebih dahulu, melainkan langsung mencetak Ice alat printer. 4. Table Setting (pengaturan pada tabel) Pada fungsi ini, digunakan untuk data berupa tabel saJa. Komponen yang ada pada setting antara lain adalah : pemilihan font (bentuk huruf), ukuran font, tampilan vertical line maupun horizontal line, tinggi baris se11a
intercell spacing (vertical dan horizontal). 5. Fungsi-fungsi lainnya (fungsi-fungsi umum) •
Kalender
•
Database Information (hanya di server)
•
System Property.
"
Pemilihan look andjeel.
•
About dan Help
4.2.4. Report (Laporan Hasil Anaiisis) Setelah semua komponen yang terlibat (baik komponen di server dan komponen di client) dianalisis, langkah selanjutnya adalah membuat laporan basil analisis. Laporan ini berupa perincian komponen-komponen hasil analisis dari sistem barn yang dilakukan pada waktu analyze tadi. Karena komponenkom1JOnen tersebut bersifat menaolah dan menaanalisi;: data. maka 'etian
123
komponen kebanyakan diberi nama dengan Manager. Rincian laporan hasil analisis adalah sebagai berikut :
4.2.4.1. Laporan pada Program Server
l . Database Connection Manager •
Menambah koneksi database baru
0
Merubah koneksi database yang sudah ada
•
Menghapus koneksi database
e
Connect (menghubungkan) ke database
e
Disconnect (memutus hubungan) dengan database
2. Data Barang Manager •
Menambah data barang baru
•
Mengupdate data barang yang sudah ada
•
Menghapus data barang
"
Mencari (searching) data barang
e
Memberikan default value untuk persentase harga beli dengan harga jual, persentase diskon beli dan persentase diskon jual.
3. Jenis Barang Manager •
Menambah data jenis barang baru
•
Mengupdate data jenis barang
•
Menghapus data jenis barang
124
4. Transaksi Manager
Bentuk Tabular a. Transaksi Manager Bulanan "
Pemilihan transaksi by client
"
Pemilihan transaksi by bu/an
"
Simple Data Transaksi, All Data Transaksi dan Data Barang Transaksi.
"
Pemilihan bulan data transaksi
"
Pernilihan tahun data transaksi
•
Navigator next dan back dengan jurnlah dari transaksi yang akan ditampilkan.
"
Searching transaksi dengan keyword nomor umt transaksi.
b. Transaksi Manager Tahunan e
Pemilihan transaksi by client
"
Pernilihan transaksi by bu/an
"
Pemil ihan tahun data transaksi
Bentuk Chart a. Chart Transaksi Bulanan e
Pemilihan transaksi by cliellt
•
Pemilihan transaksi by bu/an
"
Pemilihan bulan data transaksi
"
Pemilihan tahun data transaksi
e
Pemilihan jenis data transaksi (pembelian, penjualan, laba, dan lainlain)
125
b. Chan Transaksi Tahunan •
Pemilihan transaksi by client
•
Pemilihan transaksi by b11la11
•
Pemilihan talmn data transaksi
•
Pemilihan jenis data transaksi (pembelian, penjualan, laba, dan lainlain)
•
Pemilihan tipe cha11 (bar, line dan pie).
5. Stole Barang Manager •
Update stole suatu barang
•
Mengganti tanggal kadaluarsa suatu barang
•
Memasukkan nilai stok minimal suatu barang
•
Memasukkan nilai stok maksimal suatu barang
•
Analisis dan manipulasi stok barang dengan Detail Stok Barang
6. Client Manager •
Memasulekan data client barn
•
Merubah data client
•
Menghapus data client
•
Mengirimkan pesan ke client
•
Disconnect (memutus hubungan) pro1,,>ram client.
•
Quit (mengeluarkan) program client.
7. RMI Connection Manager •
Memasulekan data RMI connection baru
•
Membah data RMI connection
126
•
Connect ( mengak:tifkan) salah satu port dan bind yang tersedia
e
Connect All (mengaktifkan semua) port dan bind yang tersedia
"
Disconnect (tidak mengaktifkan) salah satu po1t dan bind yang tersedia
e
Disconnect All (tidak mengaktifkan semua) port dan bind yang tersedia
8. Client Monitoring @
View aktifitas client
e
Memilih client yang akan di view
9. Table Manager <>
Menghapus suatu tabel
•
Mengaktifkan tabel tertentu (Make Table Active)
e
Tidalc mengalctifkan tabel te1tentu (Jvfake Table Non Active)
"
Membuat tabel cadangan (Backup Table)
e
Mengembalikan kembali data label dari data tabel cadangan (Restore
Table) •
Menjalankan kueri database (Execute SQL Query)
4.2.4.2. Laporan pada Program Client I. Koneksi ke Server (Connection To Sen'eJ" Jvlanager) •
Menambahkan data koneksi
•
Memodifikasi data koneksi
e
Menghapus data koneksi
"
Menghubungkan (connect) client ke server
e
Memutuskan hubungan (disconnect) dari server
127
2. Bertransaksi
3.
"
Insert (mernasukkan) data transaksi (bertransaksi dengan pernbeli)
•
Update (rnerubah) data transaksi
"
Delete (rnenghapus) data transaksi
•
Restart (rnengulang kembali) transaksi.
•
Menyelesaikan transaksi
e
Mengirirn data transaksi ke server
Client Transaksi Manager •
Merubah data transaksi
•
Menghapus data transaksi
•
Me mil ih bulan transaksi
•
Memilih tahun transaksi
•
Navigator next dan back dengan jumlah dari transaksi yang akan ditampilkan.
• 4.
Searching transaksi dengan keyword nomor urut transaksi.
Data Barang
•
Searching data barang.
4.2.4.3. Lapornn Komponen Program Server chm Program Client Fungsi Manager
1. Save 2. Print Preview 3. Print
128
Fungsi Umum 5. Kalender
6. Database 111/iJrmation 7. System Property
8. Look and Feel 9. About dan Help
4.3. Pcrancangan Sistem Setelah pendefinisian masalah dan analisis sistem dilakukan, langkah selanjutnya adalah perancangan sistem. Pada tahap ini, penulis akan membuat diagram konteks yang akan menggambarkan secara umum tentang program server dan program client dari sistem ini, selanjutnya terdapat dua langkah perancangan sistem, yaitu perancangan sistem basis data dan perancangan sistem aplikasi. Pada Normalisasi
perancangan dan
sistem
database,
penulis
Entity Relationship Diagram
akan
(ERD),
menggunakan
sedangkan
pada
perancangan aplikasi, penulis akan membuat diagram-diagram I pemodelan yang akan digunakan dalam perancangan sistem. Teknologi pemodelan yang akan dipakai adalah Un/fied Modeling Laguage (Ul\!lL) yaitu antara lain : [J.se Case
Diagram, Class Diagram, Activity Diagram dan Sequence Diagram.
4.3.1. Diagram Konteks Diagram konteks merupakan diagram yang menggambarkan secara umum dari sistem yang akan dibuat. Pada diagram konteks yang akan penulis buat, pendekatan (pemodelan diagram konteks) yang akan digunakan adalah mmp
129
dengan konsep Use Case Diagram pada pemodelan UML. Diagram tersebut akan diilustrasikan sebagai berikut : Mengoperasikan
Server
Server Admin
Client-Server Interface
:"'"-:~======--
Jaringan
~ Request
Client I
D
I
'
Reply
Client-Server Interface
Client-Server Interface
-
-
D
I
Client-Server Interface
-
D ~
/.
'
Mengo1rerasikan
Client 3
/.
~
t
Rcques
Client 2
/.'.
Kasir I
~~pl)
'
Mengopfrasikan
t
Kasir 2
Mengopfrasikan
,----..
~
Kasir 3
130
Pada diagram di atas diilustrasikan mengenai sistem mesm kasir terdistribusi yang akan penulis implementasikan. Server merupakan pusat kendali dari setiap client yang telah terdaftar di server. Server dioperasikan oleh seorang
server administrator yang bertugas untuk menganalisis dan memanipulasi semua basis data serta mengkontrol aktifitas semua client. Basis data yang dianalisis dan dimanipulasi oleh server antara lain adalah : data barang, data jenis barang, data stok barang, data transaksi (hanya analisis), data koneksi dan data client. Sedangkan setiap client dioperasikan oleh beberapa kasir yang langsung bertransaksi dengan pembeli. Basis data yang dapat dimanipulasi oleh client hanya data transaksi yang dimiliki oleh client yang bersangkutan. Untuk dapat mengakses basis data, perogram server dapat menggunakan ODBC dan juga protokol TCP/IP, koneksi ini tergantung pada driver yang digunakan. Untuk mendapatkan performa yang lebih optimal, manajemen basis data dapat dipisah (menggunakan CPU lain) dengan program server. Jadi, sistem basis data mempunyai prosesor sendiri dalam manipulasi databasenya, sehingga secara otomatis mempercepat proses manipulasi databasenya. Pada ilustrasi diagram konteks di atas, hubungan program server dengan program client menggunakan beberapa interface (client-server inte1:face) yang berfungsi sebagai tatap muka aliran data antara server dengan client. Interface ini berada pada sever dan pada setiap client. Setiap interface mempunyai bentuk dan model yang sama. Pada sistem mesin kasir ini, interface yang menghubungkan komunikasi client dengan server secara garis besar dibagi menjadi tiga, yaitu antara lain :
TokoOnli11el11te1.face,
ClientO~jectlnte1.face
dan
131
Clie11tTra11saksifl.4anagerl11te1.face.
Toko011linelnte1.face
merupakan
interface
yang menyediakan fasilitas atau method-method dari server yang dapat di akses oleh setiap client, atau dengan kata lain interface ini merupakan pintu gerbang penyedia layanan server bagi semua client. ClientObject!nte1face merupakan interface yang menyediakan fungsi atau method dari client yang dapat diakses oleh server, dengan kata lain interface ini merupakan pintu gerbang yang akan mengimplementasikan perintah-perintah yang diberikan oleh server kepada setiap client. Sedangkan Client'fransaksiManager!ntei:face mempakan interface yang rnenyediakan fasilitas khusus dari server untuk fungsi transaksi manager yang berada di setiap client, fasilitas tersebut antara lain berupa fungsi hapus data transaksi, update data transaksi dan data lain (misalnya : data tree transaksi). Ilustrasi rnengenai interface pada sistern mesin kasir terdistribusi dapat digambarkan sebagai beriln1t : TokoOnlinelnterface
Q
ro· ~
&i !il
~
Q CD' ~
(f)
C!ientTransaks!Manager!nterface
~
~
ClientObject!nterface
Gambar 4.2 llustrasi Interface Client-Server
Secara detail dan terperinci mengenai komponen-komponen yang ada di dalam
Toko011!ine!nte1face,
ClientTra11saksiManager!11te1face
ClielllObject!11te1jace tersebut akan dibahas pada sub bab implementasi sistem.
dan
132
Di dalam sistem mesm kasir terdistribusi, untuk menghubungkan client dengan server digunakan konsep jaringan komputer. Jaringan ini bisa berupa Local Area Network (LAN) atau juga Wide Area Network (WAN). Topologi
jaringan yang digunakan bisa berupa topologi star, topologi hirarki atau topologi jaringan yang lainnya. Sebagai contoh, pada konteks diagram di atas, jaringan yang digunakan adalah LAN dengan menggunakan topologi jaringan star.
4.3.2. Perancangan Sistem Basis Data
Perancangan sistem basis data mesm kasir terdistribusi merupakan perancangan sistem informasi yang mengintegrasikan kumpulan data yang saling berhubungan satu dengan yang lainnya dan membuatnya tersedia untuk aplikasi sistem rnesin kasir terdistribusi. Pada perancangan basis data ini terdapat dua tahap perancangan, yaitu Nonnalisasi dan Entity Relationship Diagram (ERD).
4.3.2.l. Normalisasi
Proses normalisasi adalah suatu proses pengelompokan data elemen menjadi tabel-tabel yang menunjukkan entity dan relasinya. Proses ini selalu diuji pada beberapa keadaan atau kondisi, apakah ada kesulitan pada saat insert, delete, update, dan select pada suatu database. Jika ada kesulitan pada pengujian suatu
data, relasi tersebut dapat dipecah pada beberapa tabel, sehingga proses database menjadi optimal. Langkah pertama kali yang dilakukan pada saat normalisasi adalah membuat tabel induk dari sistem yang akan dibuat, tabel Rnduk tersebut adalah sebagai berikut, yaitu : tabel induk pegawai dan tabel indulk data tra11saksi.
13:
4.3.2.l .1. Normalisasi pada Tabel Induk Pegawai
[TIY Peg
[ Nama Peg-[Ah;1( Peglibt!l Peg
I Tgl
edit Peg
T Tgl
buat_peg
I ID
Admin
I Pass
Admin [ Tgl edit Adm
I Tgl
buat l
[](~.t__i\_c!lll_Tu_Qri_J Pass_C!n [Jg!_buat_Cln lliL~uat_C::I11Tut_Q11 [ Kode_RMtC_J_BiJ1{[Jj~rt_J Tgl_Edit_~Ml. LIJll_Buat__l'
I Ket
RMI
I
First Normal Fonn (lNF) pada Tabel Pegawai Suatu relasi dikatakan memenuhi bentuk normal kesatu jika tidak ada set atribut yang bemlang-ulang atau atribut bemila ganda dan hams atomic. Pada stmktur tabel di atas terdapat atribut yang bemlDng-ulang, yaitu pada atribut Tgl_edit_Peg dar Tgl_buat_peg dengan Tgl_edit_Adm dan Tgl_buat_Adm serta pada Tgl_edit_Cln dan Tgl_buat_Cln mempunyai nilai yang sama sehingga bentuk (1 NF) pada tabel Pegawai adalah sebagai beri kut :
I ID
Peg
T Nama
I Ket
Cln [ Block
Peg[Aii!;t PCiIT!ll:11=Peg
I Active I Kade
RMI C
I
I Tgl
Bind
I
edit Peg Port
r Tgl buat Peg
I Tgl
Edit RMI
I ID
Admin
I Tgl_Buat
I Pass
RMI
Admin
I KetAdm I ID
Cln
I Pass c
I Ket _RMI i
Second Normal Form (2NF) pada Tabel Pegawai Suatu relasi dikatakan telah memenuhi bentuk normal kedua apabila telah memenuhi bentuk nmmal kesatu dan semua atribu1 bukan kunci harus secara fungsi bergantung penuh pada atribut kunci. Karena pada bentuk (!NF) secara pen uh belum bergantung
] 3L
pada atribut kunci, maka tabel tersebut dipecah menjadi empat buah tabel. Tabel tersebut antara lain adalah : tabel pegawai, tabe ServerAdmin, tabel client dan tabel RMIConnection.
Tabel Pegawai I ID Peg
I Nama
Peg
I Almt
Peg
I Jbtn
Peg
I Tgl
edit Peg
I Tgl~buat
Pei]
Tabel ServerAdmiin
I ID
Admin
I
I Pass
ID P_llli
Admin
I KetAdm
J
Tabei Client []Lein
I ID
Peg
I Pass
Cln
I Kode
I
Port
RMI Con
I KetC!n I Block I Active I
Tabel RMIC01mection
I Kode
RMI C
I
Bind
I Tgl
Edit RMI
I Tgl
Buat RMI
I Ket
RMI
I
Third Normal Form (3NF) pada Tabei Pegawai Suatu relasi dikatakan telah memenuhi bentuk normal ketiga apabila telah memenuhi bentuk normal kedua dan tidak mengandung ketergantll!1gan fungsional (functional dependencies) antar atribut-atribut bukan kunci. Pada bentuk (2NF) di atas temyata sudah tidak ada atribut yang mengandung ketergantungan fungsional, sehingga bentuk di atas sudah termasuk (3NF).
13'.
4.3.2.1.2.
I No
Normalisasi pada Tabel Imluk Transaksi
urt trsJ
I Detik
trs
Tb Cln
I Me11ii
trs
I Kode
I Jam
I kei
brg I stokTMinimal
I Ket
detail_stok I Kode ien
trs
BrgJ Nama -fugTJmI Brg
I I<:ode
Brg
I Maxi!u-aTI I
Pajak jen
I Na1iia
Ket stok
I Tgl
I l-IrgBeliJ
BfgJHrg BeITJ}f;.g
I Tgl
edit stok
I
H;gTt;afTDsk Beli
iliYlf[Dsk Beli
kadaluarsa
I Tgl
I Dsk
I Dsk
J1!al
I
Satuan
I
Pajak
I
Tgl trs
J11af! SatuanTt.'li buat=i;;:gj Tgl edit bq
mbah stoITbetail
S!Okl
Tgl_detail stok
editjen ! Tg;l_buatje1;-f-10)Gen-=1
First Normal Form (lNF) pada Tabel Transaksi Sualu relasi dikatakan memenuhi bentuk n01mal kesatu jika tidak ada set atribut yang berulang-ulang atau atribut bemila ganda dan harus atomic. Pada struktur tabel di atas terdapat atribut yang berulang-ulang, yaitu Nama_Brg, Hrg_beli, Hrgjual Disk_beli, Diskjual, Pajak, Satuan. Akan tetapi atribut tersebut tidak akan di-atomic-kan, karena atribut Kode_Brg, Nama_Brg Hrg_beli, Hrgjual, Disk_beli, Diskjual, Satuan, Pajak yang pertama bersifat konstan (data tidak bisa dirubah) dan yang kedw bersifat updetable (data setiap saat bisa dirubah). Sehingga bentuk (1 NF) adalah sama seperti pada tabel induk data transaksi.
13'
Ta be I DetailSto kBa rang
I Kode I
Kode Brg
I
Stok masuk
I
Tgl masuk
I
Ket stok msk
I
Tabel JenisBarang
I Kode
ien
I Pajak I Tgl
edit ien
I Trrl
buat ien
I Ketjen I
Third Normal Form (3NF) pada Tabel Pegawai Suatu relasi dikatakan telah memenuhi bentuk normal ketiga apabila telah memenuhi bentuk nom1al kedua dan tidal mengandw1g ketergantungan fungsional (functional dependencies) antar atribut-atribut bukan kunci. Pada bentuk (2NF) di ata; ternyata sudah tidak ada atribut yang mengandung ketergantungan fungsional, sehingga bentuk di atas sudal1 termasuk (3NF).
4.3.2.1.3. Hasil Normalisasi dan Relasi Antar Tabel Dari proses normalisasi kedua tabel induk di atas dihasilkan delapan buah tabel, yaitu antara lain : tabel pegawai, tabel ServerAdrnin, tabel client, tabel RMIConnection, tabel transaksi, tabel dataBarang, tabel DetailStokBarang dan tabel JenisBarang. Di dalam implementasinya, nama-nama field yang ada pada setiap tabel mtmgkin akan dilakukan perubahan yang bertujuan untuk memudahkan dalam manipulasi data selanjutnya. Berikut ini adalah bentuk hubungan an tar tab el sekaligus pemberian nama field yang barn dari hasil normalisasi di atas :
,,
! °'
id_peg
narna
passv-Jord Rf·rl!Connection
ala mat jabatan tgl_edit_peg tgl_buat_peg
pasS'll>Jord
keterangan block
active
client ;1kode_barang nama_barang jumlah_barang h.3fga_beli
~
!
keterangan ~.,,,~~·
~
m
./
nama jenis ~jhargaBeli
~hargaJual 1 ~.isatuan ®ltgl edit I\tgCbuat
harga_jual
••
~
I
~1 keter angan
~
I~
4;Jstok
•
~! . . I i¥1m1n1ma ~1 maxirnal VJ
•.l keter_a~ganStok ~t tglEdrbtok
w~ tglKadaluarsa
Ii tglRubahStok
s •ti~
I'! 0
;
~
nama pajak tgl_edit
tgl_buat keterangan ~~='...'""''
L.4fi!J;i''~~,,,.-"~'22&"'1£!'"""""""'"'.fil
Gambar4.3 Hubungan An tar Tabel
diskon_barang dlskon_beli tanggal_trs waktu_trs pajak jam
menit satuan
139
4.3.2.2. Entity Relationship Diagram (ERD) Setelah semua induk tabel dilakukan pendekomposisian sehingga didapatkan tabel-tabel yang telah ternormalisasi dan di dapatkan pula hubungan antara tabel, langkah selanjutnya adalah menjelaskan fongsi dari setiap tabel dan atribut-atributnya serta merinci secara detail setiap relasi yang ada (one to one, one to many dan many
to many) pada setiap tabel yang disebut dengan perancangan Entity Relationship Diagram (ERD). Di dalam ERD, sebuah tabel disebut dengan entity. Seperti pada relasi antar tabel di atas, perancangan ERD juga dibagi menjadi delapan buah entity, yaitu antara lain : entity Pegawai, entity ServerAdmin, entity Client,
entity Transaksi,
DetailStokBarang
dan
entity DataBarang,
entity
entity JenisBarang,
RMICmmection.
Sebelum
ERD
entity tersebut
diilustrasikan, terlebih dahulu akan didefinisikan fungsi (tugas) dari masing-masing entity, yang disebut dengan data model requirement, yaitu antara lain sebagai berikut:
4.3.2.2.l. Data Model Requirement
Pegawai I karyawan tetap suatu perusahaan dagang yang Pegawai menggunakan sistem aplikasi ini. ServerAdmin
Pegawai yang bertugas mengatur program server.
~C_li_e_n_t_~~~~~~~-P_e_g_a_w_a_i_y_a_n_g~be_rt~u0_"'_as_b_e_1_·t1-·an~s-al-(s_i_c_l_e_n_g_a_n_p_e_m~be_l_i.~--~
140
Berisi data basil semua transaksi yang berasal daJi setiap client, data ini nantinya sebagai bahan untuk analisis laba/rugi, penjualan, pembelian dan pajak setiap hari, setiap
Transaksi
bulan dan setiap tahun. Data dari entity ini hanya bisa dimanipulasi oleh client yang mernilikinya. Sedangkan server hanya bisa menganalisis. Merupakan tempat data semua barang dan stok barang
I
i
disimpan. Data dari entity ini hanya bisa dianalisis dan DataBarang dimanipulasi oleh server. Sedangkan client hanya bisa melihat harga jual, diskon jual dan satuannya saja r---~-·
Merupakan tempat penampungan senma datajenis barang.
I !
I
Entity ini menampung data yang menentukan pajak dari JenisBarang
suatu barang. Data ini dari entity hanya bisa dianalisis dan di
I I
I
manipulasi oleh server. Sedangkan client hanya bisa melihat I persentase pajak suatu barang. Merupakan tempat penampungan data stok masuk suatu
DetailStokBarang
I
------, i
barang yang telah diinputkan ke dalam database. Entity ini
i
bersifat sebagai hisiory dari setiap pemasukan stok barang.
I
Data dari entity ini hanya bisa dianalisis dan dimanipulasi oleh server. I
Merupakan tempat penyimpanan fasilitas bind dan po1i dari RMI Connection
i
RMI yang disediakan oleh server. Data dari entity ini hanya bisa dianalisis dan dimanipulasi oleh server.
I I
Tabel 4.1 Data Model Requirement
141
4.3.2.2.2. ERD Sistem Mesin Kash· Tenlistribusi ServerAdmin ·------- - -- .,
'---~---
it~
Pe!;j_awai ..==._ ID __________
I
-------Q--1
I
-- 1
!'Jama
~-
Alamat Jabatan Tgl_edlt Tg!_buat
f-0-1
Keterangan :
--0-··-~"'·-·a<E --0-·--·--a--
i
j
'
~
!Q_E.~g
\Password Keterangan
_
~-~
Client
One 10
J
One;:
o_ ne.
ta .Afany .. ftfanv to Adany
.
i JQ
--'
1-... ---------~
i LD_estg i Password
-~ RMJ_gQ.O!J.?_G~lQll i Block
c·O<Ef AcHve
I !
-----------~-----,
Tgl_edit Tgl_buat
Keterangan
DataBarang
!i~~~~---
No_urut__trs Clie_oJ
LQ Port_using
6
I@~~i_____
RM I Connection Bind_name
Keterangan
':-0· -
~
15~Jramll9
Nama_barang Jumlah_barang Harga_be!i Harga_jual . Diskon_beli Diskon_jua! Satuan 1 Pajak Tangga!_trs Waktu_trs Men it Jam
~--
- ---
DetailStokBarang
]
Nama Jonis 1 Harga_beh I Harga_jual Diskon_belf Diskon_jual
Satuan Tg!_edit Tgl_buat
Keterangan Stok Minimal
Maximal TglEdltStok Tg!Kadaluarsa TglRubahStok KeteranganStok
:-o·
~-~~~!____ -·=~~=~]
.. -~ Kodel2.rg
! Stok [ Tanggal ! Keterangan
____, ____, _____.__, , --) ! JenisBarang !:£..g_Q__g
tNam~-----····----!
~---Q-1
Gambar4A
Entity Relationship Diagram Sistern Mesin Kasir Terdistribusi
Pajak
! Tg! edit
i' Tg!=buat
i~~~=-~an9,;~-~----
I !
i ___I
142
4.3.2.2.3. Atribut ERD Sistem Mesin Kasfr Tenlistribusi 1. Pegawai
a. ID
: Kode pegawai I karyawan perusahaan dagang (primary key).
b. Nama
: Nama pegawai perusahaan dagang.
c.
Alamat
d. Jabatan
: Alamat dari pegawai perusahaan dagang. : Jabatan yang dipegang oleh pegawai perusahaan dagang.
e.
Tgl_edit
: Tanggal terakhir mengedit data pegawai.
f
Tgl_buat
: Tanggal pembuatan data pegawai.
2. ServerAdmin
a. ID
: Kode server administrator (primary key).
b. ID_peg
: Kode pegawai perusahaan dagang (foreign key dari Pegawai).
c. Password
: Password yang dimiliki oleh seorang server admin.
d. Keterangan
: Keterangan tambahan dari server admin (Optional).
3. Client
a. ID
: Kode client I kasir (primmy key).
b. ID_peg
: Kode pegawai perusahaan dagang (foreign key dari Pegawai).
c. Password
: Password yang dimiliki oleh seorang client
d. RMI Connection: Kode koneksi yang digunakan oleh client (foreign key). e. Block
: Untuk memblokir atau tidak suatu client
f
: Untuk memberi waktu aktif kepada suatu client
Active
g. Keterangan
: Keterangan tambahan dari client (Optional).
4. Transaksi a.
No_urut_trs
: Nomor urut transaksi dari masing-rnasing client
143
b. Client
: Kade client I kasir (foreign key dari Client).
c. Kade_barang : Kade suatu barang (foreign key dari DataBarang). d. Nama_barang : Nama suatu barang yang telab te1juaL e. Jumlah_barang: Jumlah suatu barang yang dibeli aleh searang pembeli.
f
Harga_beli
: Harga beli barang yang telah terjuaL
g. Harga_jual
: Harga jual barang yang telah terjuaL
h. Diskan _ beli
: Diskan beli barang yang telah terjuaL
I.
Diskan_jual
: Diskan jual barang yang terjuaL
J
Satuan
: Satuan barang yang terjuaL
k. Tanggal_trs
: T anggal di mana transaksi yang dilakukan.
L Waktu trs
: Waktu secara detail di mana transaksi dikirimkan ke server
111.
Menit
: Menit di mana transaksi dikirimkan ke server.
11.
Jam
: Jam di mana transaksi dikirimkan ke server.
5. DataBarang a. Kade
: Kade suatu barang (primmy key).
b. Nama
: Nama suatu barang.
c. Jenis
: Kade jenis barang (foreign key dari JenisBarang).
d. Harga_beli
: Harga pembelian suatu barang.
e. Harga_jual
: Harga penjualan suatu barang.
f.
: Diskan suatu barang dari suplier.
Diskan beli
g. Diskan_jual
: Diskan suatu barang yang diberikan kepada pembeli.
h. Satuan
: Satuan suatu barang.
I.
Tgl_edit
: Tanggal terakhir te1jadi perubahan pada suatu barang.
144
J.
Tgl_buat
: Tanggal pemasukan (insert) suatu data barang.
k. Keterangan
: Keterangan tambahan dari suatu barang (Optional).
L Stok
: Jumlah persediaan barang.
111.
Minimal
: Stok minimal suatu barang yang masih diperbolehkan.
n. Maximal
: Stok maksimal suatu barang yang boleh masuk.
o. TglEditStok
: Tanggal terakhir kali memasukkan stok barang.
p. TglKadaluarsa: Tanggal kadaluarsa suatu barang. q. TglRubahStok: Waktu terakhir kali stok di akses oleh client. r.
6.
KeteranganStok: Keterangan tambahan dari stok barang (Optional).
JenisBarang a.
Ko de
b. Nama c.
Pajak
: Kode jenis suatu barang (p1immy key). : Nama jenis suatu barang. : Pajak yang diberikan kepada jenis barang te1tentu.
d. T<>l edit
: Tanggal terakhir te1jadi perubahan pada suatu jenis barang.
e.
Tgl_buat
: Tanggal pemasukan (insert) datajenis barang.
f
Keterangan
: Keterangan tambahan dari suatu jenis barang (Optional).
"'-
7. DetailStokBarang a.
Ko de
b. KodeBrg c.
Stok
: Kode detail stok barang (auto increment dan primary key). : Kode suatu barang (foreign key dari DataBarang).
: Histmy stok suatu barang yang masuk ke DataBarang.
d. Tanggal
: Tanggal stok suatu barang masuk.
e. Keterangan
: Keterangan tambahan dari detail stok barang (Optional).
145
8. RMI Connection
a. ID
: Kode dari koneksi RMI (primmy key).
b. Bind_name
: Fasilitas bind yang disediakan oleh server.
C.
Port_using
: Port yang disediak<m oleh server.
d. Tgl_.edit
: Tanggal terakhir terjadi perubahan pada RMI Connection.
e. Tgl_buat
: Tanggal pernasukan (insert) data RMI Connection.
f
: Ketenmgan tambahan dari suatu RMI Connection (Optional).
Keterangan
4.3.2.2.4. Relationship List Sistem Mesin Kasir Terdistribusi
I. Relasi Pegawai Menghubungkan entity ServerAdmin dan Client. ServeAdrnin dan Client rnerupakan bagian dari entity Pegawai, karena keduanya merupakan pegawai yang bekerja pada suatu perusahaan dagang. ServerAdmin adalah pegawai yang bertugas untuk mengelola program Sen1erTokoOnline, sedangkan Client adalah pegawai yang bertugas untuk mengelola program ClientTokoOnline. 2. Relasi Client Menghubungkan entity Pegawai, RMIConnection dan Transaksi. Digunakan untuk mengidentifikasi pegawai yang bertugas sebagai client. Hubungan dengan entity Pegawai sudah dijelaskan pada Relasi Pegawai. Hubungan dengan entity RMIConnection adalah bahwa seorang client bisa terhubung ke server apabila client tersebut menggunakan bind dan port (RMI Connection) yang telah disediakan oleh server. Sedangkan hubungan dengan
entity Transaksi adalah bahwa pada saat client mengirimkan data transaksinya ke
146
server, identitas client tersebut (kode client) juga ikut dikirimkan dan kemudian dicatat pada entity transaksi, hal ini untuk mengidentifikasikan bahwa transaksi yang dikirimk<m tersebut merupakan milik client itu. 3. Relasi Transaksi Menghubungkan entity Client dan DataBarnng. Digunakan untuk mencatat semua transaksi yang te1jadi pada setiap client. Hubungan dengan entity Client sudah dijelaskan pada Relasi Client. Hubungan dengan entity DataBarang adalah bahwa setiap transaksi yang dilakukan oleh client membutuhkan data barang dari barang yang dibeli o leh pembeli, clan data ini berasal dari entity DataBarang. Relasi ini merupakan hubungan One to Many, maksudnya adalah: satu data barang pada entity DataBarang clap at cligunakan o leh lebih clari satu data transaksi pacla entity Transaksi. 4. Relasi DataBarang Menghubungkan entity Trnnsaksi, DetailStokBarnng clan JenisBarnng. Digunakan untuk memanipulasi data semua barang yang acla pada suatu perusahaan clagang. Hubungan clengan entity Transaksi suclah clijelaskan pacla Relasi Transaksi. Hubungan clengan DetailStokBarang aclalah bahwa jika te1jacli penambahan stok barang, maka secara otomatis stok penambahan tersebut akan disimpan clalam DetailStokBarang ( untuk history pemasukan stok barang). Sedangkan hubungan clengan entity JenisBarang adalah bahwa data barang membutuhkan (mempunyai ketergantungan clengan) data jenis barang. Data barang ticlak akan bisa diinputkan jika tanpa data jenis barang. Begitu juga clengan perubahan data jenis barang, akan berclampak pula pada data barang.
147
4.3.3. Pernncangan Sistem Aplikasi Selelah perancangan basis data dilakukan, langkah selanjutnya adalah melakukan perancangan sistem aplikasi yang nantinya akan diimplementasikan. Perancangan sistem aplikasi menentukan bagaimana suatu aplikasi menyelesaikan apa yang harus diselesaikan, perancangan ini menyangkut mengkonfigurasi dari komponen-komponen sistem, sehingga setelah instalasi dari sistem akan benar-benar memuaskan rancang ban gun yang tel ah ditetapkan pada akhir tahap anal is is sistem di atas (laporan hasil analisis). Pada perancangan sistem aplikasi ini, terdapat dua program yang akan dirancang, yaitu program server dan program client. Teknologi pemodelan yang akan digunakan adalah teknologi pemodelan dari Unified lvfodeling Laguage (UML) yaitu antara lain
Use Case Diagram, Class Diagram, Activity Diagram dan Sequence
Diagram.
4.3.3.1. Use lase Diagram
Use Case Diagram (UCD) menjelaskan apa yang akan dilakukan oleh sistem yang akan dibangun dan siapa yang berinteraksi dengan sistem. UCD menjadi dokumen kesepakatan antara customer, user dan developer. Dari hasil analisis sistem yang telah dilakukan sebelumnya, diperoleh suatu perancangan sistem dengan Use Case Diagram, yaitu sebagai berikut :
148
Pegawai
ServerAdmin
Client
server
Gambar4.5 Use Case Diagram pada Sistem Mesin Kasir Terdistribusi
149
Pada perancangan Use Case Diagram di atas terdapat tiga aktor, yaitu antara lain
aktor Pegawai, aktor ServerAdmin dan aktor Client. Aktor ServerAdmin dan
aktor Client merupakan turunan dari aktor Pegawai, karena keduanya (ServerAdmin dan Client) merupakan bagian dari Pegawai. Aktor ServerAdmin dan aktor Client mempunyai beberapa peke1jaan tertentu yang diimplementasikan di dalam beberapa use case. Secara lebih rinci hal-hal yang bisa dilakukan oleh aktor ServerAdmin dan aktor Client adalah sebagai berikut :
4.3.3.l.l. Aktor ServerAdmin Aktor ServerAdmin merupakan pegawai yang bertugas untuk mengoperasikan aplikasi server. Pada Sistem Mesin Kasir Terdistribusi ini, hal-hal yang dapat dilakukan oleh ServerAdmin antara lain sebagai berikut :
!. Mengatur Koneksi ke Database : ServerAdmin dapat memanipulasi data koneksi database serta mengkoneksikan dan mendiskonekan dengan aplikasi database. 2.
Manipulasi Data Barang : ServerAdmin dapat memanipulasi semua data barang yang ada pada sistem.
3.
Analisis Data Transaksi : Server Admin dapat menganalisis semua data transaksi yang telah te1jadi pada semua client. Analisis ini terdapat dua cara, yaitu analisis dengan menggunakan tabel dan analisis dengan menggunakan grafik berupa chart.
4. Manipulasi Stok Barang : ServerAdmin dapat memanipulasi ketersediaan semua stok barang.
150
5. Mengatur keberadaan client dan keaktifannya : ServerAdmin dapat mengatur keberadaan client, sedang terhubung atau tidak, serta dapat mengatur keaktifan suatu client (diblokir atau tidak). 6. Mengatur konektifitas client-server : Server Admin dapat mengatur koneksi yang digunakan untuk berkomunikasi client-server. Yaitu dapat menyediakan koneksi pada p011 dan bind tertentu serta menutup koneksi pada bind dan port tertentu. 7. Memonitor aktifitas client : ServerAdmin dapat memonitor aktifitas semua client. 8. Memanipulasi keberadaan semua tabel : ServerAdmin dapat mengatur keberadaan semua tabel pada sistem ini. Yaitu membuat tabel backup dan merestorenya serta dapat mengaktifkan atau tidak mengaktifkan suatu tabel tertentu.
4.3.3.1.2. Aktor Client Aktor Client merupakan pegawai yang bertugas untuk mengoperasikan aplikasi kasir. Pada Sistem Mesin Kasir Terdistribusi im, hal-hal yang dapat dilakukan oleh Client antara lain sebagai berikut: 1. Manipulasi Data Koneksi ke Server : Client dapat memanipulasi data koneksi
server yang digunakan untuk melakukan koneksi ke server. Selain itu, client dapat melakukan connect dan disconnect terhadap server. 2. Manipulasi data transaksi : Client dapat memanipulasi data transaksi, yaitu insert data transaksi dengan cara be1transaksi dengan pembeli. Client juga dapat merubah data transaksi yang te1jadi kesalahan atau juga dapat menghapus data transaksi yang perlu dihapus. Selain itu, client juga dapat mengirimkan data transaksinya ke server.
151
4.3.3.2. Class Diagram
Class Diagram merupakan diagram yang menunjukkan hubungan antara class di dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan. Pada perancangan class diagram Sistem Mesin Kasir Terdistribusi, secara gans besar dikelompokkan menjadi tiga, yaitu : Perancangan Class Diagram pada Server, Perancangan Class Diagram pada Client dan Perancangan Class Diagram pada fungsi lainnya.
4.3.3.2.l. Perancangan Class Diagram pada Server
Class Diagram ini digunakan untuk yang menunjukkan hubungan antara class di dalam sistem aplikasi server dan bagaimana class-class tersebut saling berkolaborasi untuk mencapai tujuan aplikasi server. Perancangan class diagram pada server dapat diilustrasikan sebagai berikut :
152
Tampi111nUtama
Main
~.\"~'
package Connectio11f;b11agemeflt db privilte JDesklopPane DesktopPaMUlama pub!lc JJntema!frameChart lnternalFrnmeGhmt public: Jintem3!FramcCi1~1tHiili~n irr:~m;:,1 Fram~ Chart H3rfar: publu:: JlntemE!Frame Client.M;nitoring lnl~ma!Frame Clie-ntl•b pub!i() Jlnterna!FrameDataBarang!J.lnager Internal Frame Dal;; public J!Mem~IFrame-JenisOataE!3rang !ritematframeJt>l'lisD;
puhllc Connt'etbn nni =null
pubfa Ii.bin( ) pubfo void sh~111Tampilanl!t11Ma( ) tmhfo 1rokl m;tln( ttri119 :t{ll~llL'l} 1.. ~~
AssMain
'
public!Void.
t\n-;:,IV4">
ro~roshDat.aBarang(
!
pvb!ro JfnlermlFr.imeRMICtm~te1ion lnkm3!FrameRli.11Umn pub!i;;: Jlntuna!FrnmaShk Bar.ingMJfillger lntema!f rnmeS!ok p11hlie: Jll'ltema!Fram~ Trnnslllt~it.'hnaijer !nfom~lframe TraMa 11/ivate J!hrtion SQLCormect private JSUrtim SQLOi;;connect p!lb~c Ir.tern;;! Frame Caler.d'1! ifltwnal Frame Calendar public lrriemalFrameG!ient inlema!fmrneCliet,t
pubtic J!nlemalframe lra!IS
f(wtf:c vakl m,tt.ookf;;;ii( } 11t11111fo void priv:iti'.' void
i~llCmnp~nH>ts(
)
C!imrtMonitori11a,~ctWnPerfotme
pfivaw void jM:nulll.'111ClientlvbnilllrtngPci.ionPerftirmetl( prilfilt!"! void SOLOiseoonectAJ\fonPerfom1ed(kfonEvell! i ~ ..,~,,. prlvili~
vold j!.kn111t:emnM!ConMci1onstnl(flanmgk!ior;P€ private void StokBarar1gPction!'erfQl1T1U~( hJiQnf'Jent int evt) private vtild Rt.llPci:ltmPHfJJ;med{ kdlnnEvenl_ l!Vt} privati: v.;id Jenit£im<1ngPdfonPerlorrr111cl( ktionEVent evt private void C!etltkti®P-erforrn
)
p-riva!e vokl DataD<1fil"ii!PclfMP,;,rformttd(:PdJMEv1mt evt private void M1'i\lllt~mCtiartTran$ak-s_iHrA:!k1nf'erform.ciJ{ A f•ri\tilte veld j!~r.ultem Tr.ins~k~lktmagerHrMieftPerformecl ]'lrivai:e voib!i2ijer!ciiim Fiirforr private void jlkmilte111JenistlarnngMin:agl\rkiionhrfmriiet: privat!!' void _ll>mnu!temChartTGO_iaktlJlctiOnPi;rferrlJlld( Pcti public void Hh;ct{ Jkltl!n'mlfrtmw fr.nnil' ) private Vilkl JM?!W!tl\fllTrarisaksifknaner/'ci!QnPi:rformed( l prlv;!l:a 1t/jid j!ii~nulti!mC1ientPctionf'~tfoniwd{ ktlori&ent private< Wld. jl.-\Jnl.lli:l!mKzili:ndNAJtfonf'm1oMed( Jlciio_nE\!~ pr\V
private_\11'.!Jd JM2nutt~mN~111C_l)tlnettlon.J!ttlonP~rkm111d{ Pct private. l!Oid j!WmultmnOlll:;ilrnte l.Mormclk.m.bc!JoiiPNfoime• private \/Ilk! !Miniik\\rll(:'{;nnki~io~~~rl.61j1111d(-hiJfonf.v,l' private void 1!->1>null:@mSyfile1ti.r~protyktfonP11rlonniJd( A:. pn\rnle' vnid i!kr.ti!t&mEdtk.t\imP~rf~riried( PcikmEv_Qnt _e, privill.e _V11k! -JRirml'il( p;JVme vbkl jf!adfoBiillM!~kllu!i:emtJhlif}lMit.~P,;ffoITTieii(; p'ri.v!"Jla_;mi_d l~dlOS_l.llfoolll_lmo~~!Tl'Nim!mH~iiMf'drl,o'lfM• private vnid fom1Vulndo11-Cfosin9{.Wlr.do_111&,il_fil.eyl-)
Gambar 4.6
153
Pada
perancangan
class
diagram
di
atas,
subsistem
dari
server
diimplementasikan ke dalam bentuk package-package, yaitu antara lain : l . Package Database
digunakan untuk mengimplementasikan subsistem yang
bertugas sebagai koneksi ke database, subsistem ini disebut dengan Database Connection Manager. 2. Package DataBarangManager: digunakan untuk mengimplementasikan subsistem yang bertugas memanipulasi semua data barang, subsistem ini disebut dengan Data Barang Manager. 3. Package
DataBarangManager.JenisBarangManager
digunakan
untuk
mengimplementasikan subsistem yang bertugas memanipulasi semua Jems barang, subsistem ini disebut dengan Jenis Barang Manag;er. 4. Package TransaksiManagerBulanan : digunakan untuk mengimplementasikan subsistem yang bertugas untuk menganalisa hasil transaksi selama satu bulan, subsistem ini disebut dengan Transaksi Manager Bnlanan. 5. Package TransaksiManagerTahunan : digunakan untuk mengimplementasikan subsistem yang bertugas untuk menganalisa hasil transaksi selama satu tahun, subsistem ini disebut dengan Transaksi Manager Talnman. 6. Package tools. Chart
digunakan untuk mengimplementasikan subsistem yang
bertugas untuk menganalisa hasil transaksi dalam bentuk grafik, subsistem disebut dengan Chart Transaksi Bnlanan dan Chart Transaksi Talmnan.
1111
154
7. Package StokBarangManager : digunakan untuk mengimplementasikan subsistem yang be1iugas untuk memanipulasi persediaan stok barang, subsistem ini disebut dengan Stok Barang Manager. 8. Package Client : digunakan untuk mengimplementasikan subsistem yang bertugas untuk memanipulasi dan mengatur keaktifan client, subsistem ini disebut dengan Client Manager. 9. Package RMIConnection : digunakan untuk mengimplementasikan subsistem yang bertugas untuk memanipulasi data koneksi clien!-server, subsistem ini disebut dengan R.MI Connection Manager. 10. Package ClientMonitoring : digunakan untuk mengimplementasikan subsistem
yang bertugas untuk memonitor aktifitas client, subsistem ini disebut dengan Client Monitoring. 1l. Package TableManager : digunakan untuk mengimplementasikan subsistem yang
bertugas untuk memanipulasi keberadaan semu a tab el, subsistem ini disebut dengan Table Manager.
156
Database Connection Manager diimplementasikan dalam bentuk package
Database. Package ini juga terdapat class-class SQL ya.ng secara langsung menghubungkan aplikasi server dengan aplikasi manajemen basis data. a. ConnectionManagement : merupakan class yang digunakan untuk menampilkan koneksi ke database. Class ini merupakan subclass dari javax.swing.JDialog. b. tabelModelDatabaseinformation : merupakan class yang digunakan sebagai bentuk (model) dari tabel database information. Class ini merupakan subclass dari javax.swing.table.DefaultTableModel. c. semua class yang diawali dengan kata SQL
merupakan class-class yang
digunakan untuk berinteraksi dengan manajemen aplikasi basis data. Semua manajer pada server yang berhubungan dengan analisis dan manipulasi basis data selalu menggunakan class-class SQL ini.
157
2. Class Diagram pada Data Rarang Manager
Gambar 4.8 Class Diagram pada Data Barang Nlanager
Di dalam package DataBarangManager dibagi menjadi enam class dan sebuah package jenisBarangManager, yaitu antara lain a. JinternalFrameDataBarangManager package
DataBarangManager,
javax.swing.JlntemaiFrame.
merupakan pusat dari semua class pada class
In!
merupakan
subclass
dari
158
b. AddNewDataBarangForm
merupakan class yang digunakan untuk menginput
data barang dan mengupdate data barang. Class m1 merupakan subclass dari .iavax.swing.JDialog. c. DefaultValue pacla
Data
merupakan class yang digunakan tmtuk merubah default value
Barang
Jvfanager.
Class
m1
merupakan
subclass
clari
javax.swing.JDialog. d. TableModelDataBarangManager
merupakan class yang digunakan sebagai
bentuk (model) clari tabel data barang. Class ini merupakan subclass dari javax.swing.table.DefaultTableModel. e. TableDataBarangColmm1Moclel : merupakan class yang digunakan sebagai bentuk dari kolom label data barang. Class 1111 merupakan subclass dari javax.swing.table.DefaultTableColumnModel.
f
DefaultTableDataBarangExtendCellRenderer : merupakan dass yang digunakan untuk membentuk aligment, warna, font clari semua extends columns pada tabel data
barang.
Class
1111
merupakan
subclass
dari
javax.swing.table.
DefaultTableCellRenderer. g. jenisBarangManager : merupakan package yang berisi class-dass yang cligunakan untuk manajemen jenis barang. Susunan package ini akan dijelaskan pada Jenis
Barang Manager Class Diagram.
159
3. Class Diagram pada Jenis Rarang Jlfanager
~-...,.,,,.,.,,,,
Defou!lT11bleCo!umnMode {Frum Serv~rC!assOiaQrarn J
I
~""" } pubfo Jht1t19Wram~J~ni~Oal:il!;,mng( publ•Q void lli\(ltl\~IMIFr.irnet2.r
private String kolamJem~{O •.") ~ fkode··. "r"'ma", ')>>ljak·. \gl_odC 'lgLhuat", 'kl:tmmgan· pri11aio Objo~l darnJ•ni Oblecl{'l) pri1«lte JTa,;tfl•M kdorang~n
' '\.
privat~ Ji~>:tFio!
pihral<> .fferlfl~!d namaCliart p!iv
'
"-,,,
priv..t~ void ;1111f.om~o111t!\I~( ) ~ plhrnt" void Rrlin~hkliMl'1trfarrrni.rl{Pctio11Ev"nl.
} pubtovohl. i~l<t{ ObjactdibfQ--1) 1>ri'f~!a v>lld irl.lC?lr:PaMM-"{_) p~blic NdNaaJeIB~Balllr.gW~dm.-(
j', ! '."'- p~v.oln.vi>1d 11~Jai!i'ctfo11P~rfotmod_{ktln1~E.iont ~\it) j Jlthra\Jl_v~id hfonmga!lA:l.tmPa_rl_i>nnocl( kti~ri_t:.iwt avt) l fit;_ i!li>Vokl "'""~Clle~tktlonPatfo!tMtl( kl.iQ~lcwra t:vt)
p1\vmn !Jt.id STml'l~ Sa'iaA:>J;anonhrformed{k!fo11Eviant
pilvirtia Vold.
prhlo\e vcld pf.vlll~ vllicl '1 privo!w llnl_d µri11atc vnid
AddllewJen!nBanmgWirulow
D.ufoie~·~nP.crform.• ~cl(k. '.' .""".r.1: iavt. )
6*A::tlol'i ~rfotm~d(/lclionEvant e\CI) Md A.fan '(lrformW"{ kti~nEvero__alltj
•
To. hl~Je..•J•ilf."'_~11ffuy!'W1~as•!l_{_!(f,y 131~11 e~ ).· harw~n11fo( '
/"'-.. '
pr1v_ _ ve_ill kild~tllentA'lia_11_r_1!1foirnad{ A:farif:lt~n,t 1!-vi) "--._ prlvirt_~ _ui
"'· '.'.e0vu. '.- _lii[l)l'"ll_>lk. ·.".''.'.'".-~rm .. _td_{·.··"' . . ·.'.-1rt-··.·..•'.~-t) p11~vald" kOMSl;nf\'ll\{.)-'., ..·. '".·.'.·.".·
T11bc1Jenis61mmgModel T11beUcnisBunmgColumnModcl
~-~--~~~m=~=",--~~~~--j r~ck~ge OO;~ci kol~m[ll .. "] ~{'No.", "l({ide Jems", 'Nomi! J•ni<", 'f'•ja pn~·me Ob)tct
f>llhli!;
Tab~IJani$BmnnMidul{
fiold[tl __•J"' (l/o.". "Tudo
Jc~Jt". "h~ma Jem", -Pnj;;k ('J.1'. 'fgl pri"r.rte int ~~n1•r"' s";n~Const~m~_CENTER prl~m~ int l•ft • s,,1MnOunlumnfob[U . ."j ~ nuU prhtotQ D~fauhTaLl~t~l:Rontl"l\lr\ah~llW!darj)l .• ') •null pubfo inl ~l_filmentRQs!tL."l ~ {~lmfar, c~nt
"""""'"' )
puOHc:int aITTCofumnCwunt() public Sl!l~a Olll0¢lumnN~me( ifli ~!} pUhliQ bG~io:rn ll:C_atlSM:rbl~{ir.t_ rm>1. lf)l,CQ) ;i
pubfo ObJ~ct!fL"] ,lllllC0!11mn1{ j /'Wi)i
pril.'Wl;;;;:r--•aj
Eil~-.
"T9!
!7a. mo-. 1ro. rn.1,2w1
~titlj1~:Tn!rnlJ1misfl~iJnC~!~d~!(-}~' p"n\i:ID!v~fd inl~i_illi:
.)
Garnbar 4.9 Class Diagram pada Jenis Barang Manager
Di dalam package JenisBarangManager dibagi menjadi empat class, yaitu antara lain: a. JinternalFrameJenisDataBarang manaJer
Jems
data
barang.
javax.swing.Jlntema!Frame.
merupakan class utama yang digunakan untuk Class
!111
merupakan
subclass
dari
160
b. AddNewJenisBarangFonn : merupakan class yang digunakan untuk menginput data jenis barang dan mengupdate data jenis barang. Class ini merupakan subclass dari javax.swing.JDialog. c. TabelJenisBarangModel : merupakan class yang digunakan sebagai bentuk (model) dari tabel data jenis barang. Class ini merupakan subclass dari javax.swing.table.DefaultTableModel.
d. TabelJenisBarangColumnModel : merupakan class yang digunakan sebagai bentuk dari kolom tabel data jenis barang. Class ini merupakan subclass dari javax.swing.table.DefaultTableColumnModel.
161
4. Class Diagram pad a Tl'ansaksi Manager Bulamm
Gambar4.IO Class Diagram pada Transaksi Bufanan )vfanager
162
Di dalam package TransaksiB ulananManager dibagi menj adi 16 class, yaitu : a. IlntemalFrameTransaksiManager : merupakan class utama yang digunakan untuk manaJer
transaksi
m1
Class
bulanan.
merupakan
subclass
dari
javax.swing.JlntemalFrame. b. clientSelectionTabelModel, tabelTransaksiModel,
tabelModelAllTransaksi,
tglSelectionTableModel
dan
tabelMode!DataBarang, trsSelectionTableModel:
merupakan class-class yang digunakan sebagai bentuk (model) dari tabel transaksi
bulanan
manager.
Class-class
u11
merupakan
subclass
dari
javax.swing.table.DefaultTableModel. c. clientSelectionTabelColumnModel,
TabelColumnModelAllTransaksi,
TabelColumnModelDataBarang,
tabelColumnModelTransaksi,
tglSelectionTableColumnModel dan trsSelectionTableColumnModel: merupakan class-class yang digunakan sebagai bentuk dari kolom tabel data /ransaksi bulanan
manager.
Class-class
merupakan
1111
subclass
dari
javax.swing.table.DefanltTableColuumModel. d. DefaultTebelTransaksiJumlahCel!Renderer : merupakan class yang digunakan untuk membentuk aligment, warna, font dari suatu cell jumlah pada tabel transaksi
bu/anan
manager.
Class
1111
merupakan
subclass
dari
javax.swing.table. DefaultTableCellRemlHer. e. TreeModelClient dan TreeModelTanggal : merupakan class yang digunakan untuk membentuk tree pada Transaksi Bulanan lvfanager. TreeModelClient digunakan pada select by client, sedangkan TreeModelTanggal digunakan pada
163
select
by
tanggal.
Class-class
!Ill
merupakan
subclass
j avax.swin g. tree.Defau ltTreeM ode!.
5. Class Diagram. pacla Transaksi Manager 1aluuum
Gambar 4.11
Class Diagram pada li'ansaksi Manager Tahunan
dari
164
Di dalam package TransaksiTahunanManager dibagi menjadi 14 class, yaitu: a.
JinternalFrameTransaksiManager : merupakan class utama yang digunakan untuk manaJer
transaksi
tahunan.
Class
1111
merupakan
subclass
dari
javax.swing.JlnternalFrame. b. bulanSelectionTabelModel,
clientSelectionTabelModel,
tabe!TransaksiModel,
tglSelectionTableModel dan trsSelectionTableModel : merupakan class-class yang digunakan sebagai bentuk (model) dari tabel Transaksi Tahunan Manager. Class-class ini merupakan subclass dari .iavax.swing.table.DefaultTableModel. c.
bulanSelectionTabelColumnModel, tabelColumnMode!Transaksi,
clientSelectionTabe!ColumnModel, tglSelectionTableColumnModel,
dan
trsSelectionTableColmm1Model : merupakan class-class yang digunakan sebagai bentuk dari kolom tabel data Transaksi Tahunan Manager. Class-class m1 merupakan subclass dari javax.swing.table.DefaultTableColumnModel. d. DefaultTebelTransaksiJumlahCellRenderer
merupakan class yang digunakan
untuk membentuk aligment, warna, font dari suatu cell jumlah pada tabel
1/·ansaksi
Tahunan
lvfanager.
Class
1111
merupakan
subclass
dari
javax.swing.table. DefaultTableCellRenclerer. e. TreeModelClient dan TreeModelBulan : merupakan class yang digunakan untuk membentuk tree pada Transaksi Talnman Manager. TreeModelClient digunakan pada select by client, sedangkan TreeModelBulan digunakan pada select by bulan. Class-class ini merupakan subclass dari javax.swing.tree.D1~faultTrneModel.
165
6. Class Diagram pada Chart Transuksi Chart 71w1saksi Bulanan dan Chart fransaksi Tahunan merupakan dua buah manajer yang ditempatkan pada satu package, yaitu package Chaii : I
i.
Jln!umalfr•IIBI
~ '""" !w;.,<;b";t..J,_
~"''"
(h~r.~,,.,..,e<;,,,t>;,ll".c" ClW!Bol~I<
1
'
'•
1;;;1~~;,.w, •.;:;:C.11art~·;~;·~;·;;·;i~;k,;,;;;1
t::: ""'' "'~,i;.~·:1:~ .....~ 2&.1~1_~-. ~.·1' ~·d"'l)• ;)tto'1 """'~- .. -~.:)-•NJ<
-.
'"""'' "'*'°'""'R'~:U -'l "'~·;''
- -f
''"'..,'"'""""v·"'"ll 'l•"·a\
•
>""''JSf1'ort&.~' r~'"' Jf;t.;df"< ~h~
f'"i•JT.U,0f
'"""'-'"'-.,..,,r.,,r.i,co >'"''·'~"'T""'"°''"'' p:~fo
f
Jh<> Tu-ol"><\<>'<11
~-u:· i&.lt"" z,~-,,~ ~·\!•
J!'
f''.oto,'r•nll~,.,ol\ f'·»t•JS.'l'>lbo•i~~d'..-,.1
r""'''J~~,...~-'"''l~"°""'""''
V""" .l~UP"" 1~oi1f<""I
,~,;;:, •.1rr~-~ /'1't'r<:':'~i•
•-'v.t< r•.,~rr.¢ ""'~'C•;rl•)o-;IT,,_
ClmllllllJk•r•ll {fM>f#"'10r•;h)
F"\' fo-~tl<"'"1 P"l'iihpioUb<&m;;,
f"'"'' ~•nl~~ °"'"''C"i'H>l:lHi"' f-M>l•
~:<>•!~.µr~>G""fhf'>j«
N#-lo!m"'l•1lX•U
~"~'"-" F"1'o:G"'* """ ~"'l'tf
t""l"""~ll'<'••W•'O
r..,,,,o'"'!•• ~··,;.• r,,,;o,,rb ,,...,,;~,,µ,r.,f"'"' ~,:,,.,
,..,,,,a,,,~r.,,~,,rocc.,;
"'"'"'-' P"°''0'># l''""-'~'"'~~"'i"'""nw,
tMJ)> -~-">'l'i"4'' ~·~-<"l'>if/',.,,o,\O>~Jf'1fe
1·
,,.,;i<JC:mtol\llp;\""t><""
f-"'"''JrMC1-,~'1ttt»-,,\\inir•~
r--
:::~: ~=~:~-=~~::,u r•!MJ:it•"'lit'""''awtn',,,,.,1<:w,,""\)
p~·• •"1 «1~:,~-v.,a•,.,;\J>:;o\ Cti;.cl ~$'!}
I
«1:'
f-">'.in<>il MC<•«Kn;!
,
~h.,!l>d
•""1
F.·"'1• '""'".'. "'""'""•l•«kl"'° . .J'
W<•"\O\'\M liW<M~n;>
rc•>l•~dlt"''~'""•"• ~,;:,,»1oi! i"IOlk!!O.~J~llow"1(k1F"1H,,,;,,.j
1
:~:::: ~:~;,~::;:::.;:,:-:~ z:i1
rc1'::;·;,w !ii''U~T~W'I( l
::~;:; ~:!;;;:;;;,~;:.~: f--~vol.1
l
,,,,.,.,,,,.,,,. .'
! <>W'1t<&f1"'0>F;ml(ttlf) 0
"'"'''tit -f<wi&;;ii•ChOl';id( Ci,,...~lml'< .,.,1) ,,<4;0>&1
T<»TflM~\,;!\ll"'>tl"".i1i,.!(1"M~
tm;;.10 ,,;;.; 'ln!•T~tW...1;,'I{ r,.,!)>~""'"' !M ~,:,~.•«iil :;:,Nn&,VJ'Uk;oftti~•«.M«•;;,m
I""''~'~ ~'."''»'Mml">i0(M"'""'''1'I
J>."0:'''"4 Ttt
'."'~"".\""" :r".:.'n~mi.,,J;mt\~$1ai··.oFm. ""':;.,'I v.•-""'"'-1 ~.. ,r,,,.,~,.h,•°El•~To<&J>.«j
Gambar 4.12
Chart fransaksi Class Diagram
166
Di dalam package Chart dibagi menjadi tiga class, yaitu : a. Jlntema!FrameChartTransaksiBulanan : merupakan class utama yang digunakan untuk manajer chart transaksi bulanan. Class ini merupakan subclass dari javax.swing.JintemalFrame. b. JlnternalFrameChartTransaksiTahunan : merupakan class utama yang digunakan untuk manajer chmi transaksi tahunan. Class ini merupakan subclass dari javax.swing.JintemalFrame. c.
PanelGraph grafik
dari
merupakan class yang digunakan sebagai tempat menampilkan chmi
transaksi.
Class
mi
merupakan
subclass
dari
javax.swing.JPanel. Class ini mempunyai tiga buah inner class, yaitu : )- ChartBalok : merupakan sebuah class yang digunakan untuk menggambarkan chart balok (Bar Chart). )- ChartLine : merupakan sebuah class yang digunakan untuk menggambarkan chart garis (Line Chart).
r
ChartLingkaran
merupakan
sebuah
menggambarkan chart lingkaran (Pie Chart).
class
yang
digunakan
untuk
167
7. Class Diagram pada Stok Baraug Manager
µc~"'"'"'""'"o
;>00>::.1;e ~O'.l><<=
""m • i•••t0>Ul·.m00<•0
f'"'"·
r-v>1• ~•r"'11 ~olo-n['l J • ·"'""'"'r. """''""' p•rn~\ol
p!fv:l.o J~u;tr 0"1
,.-;v.i• JToA\'loid ~'°'"'"°~·~ ('l'VotoJ'l;,,-OJ<:ri~• ,,.,,,.,..n.,\'W~Wrn"'I
!'<'Vut>,IT<"'1o'
.,-·,ot•Jr•Vol•.IJ<~F.,.JdS(o\f!
oi<.v.tosr.n'lo1d &~'IL prv ..._.lf<Xfl"M'l•""'f·" ,.,~.i~Je'Xnbotfot<~r
oi\V>t•
.l~~ao<
o1i11aA
Jl.iibtii~hn
"!lo
llfWOioJlilb<Jjl.;>boflO Of)U$;>Jl>04jl;d;>'11 f<'""'~jt;,,J>OIJlil0.112 ~riv>toJt.abt<jLl~•'tl F"'~>l• J[J>~>l )1>~•1•4
f'<'v>to Jt;,Oo1Jl~W1'5
""'";t"Jt.h••Tn r;i;...:~JU>~Oij1.obo!l1 [U<~.!~ Jl•~<'
Jl>OH>B
piwAaJL.!.
?f~l;lfi JbbBjbO•I~
;l>.,jt;i0•!21l
ofN>l¢ J1J>l:Ol Jl.:;~¢J t<-.viA.~Jl..i~o!jWa\4
f'l'VOI~ Jl:ibti)lilb"11! p.r.vw~ Jt~k•l Jl•F"vol~ JlR~<'i1•4•'7
"''""'~ JL..t.i it..h'"'1
<'"VOi•
)f~fi
,,;,.,,i~ Jl'i
Gambar 4.13 Class Diagram pada Stok Barang _Manager
168
Di dalam package StokBarangManager dibagi menjadi tujuh class dan sebuah package StokDetail, yaitu : a. TinternalFrameStokBarangManager
merupakan class utama yang digunakan
untuk manajer stok barang. Class ini merupakan pusat dari semua class pada package
StokBarangManager
dan
class
1111
merupakan
subclass
dari
javax.swing.JlntemalFrame. b. tabelModelStokBarang : merupakan class yang digunakan sebagai bentuk (model) dari
tabel
stok
barang.
Class
merupakan
m1
subclass
dari
javax.swing.table.DefaultTableModel. c. colomModelTabelStokBarang : merupakan class yang digunakan sebagai bentuk dari
kolom
tabel
stok
barang.
Class
1111
merupakan
subclass
dari
javax.swing.table.DefaultTableColumnModel. d. DefaultTableKadaluarsaCellRenderer : merupakan class yang digunakan untuk membentuk aligment, wama, font kolom kadaluarsa pada tabel stok barang. Class ini merupakan subclass dari javax.swing.table.DefaultTableCellRenderer. e. DefaultTableStokBarangCellRenderer
merupakan class yang digunakan untuk
membentuk aligment, wama, font semua kolom pada tabef. stok barang, kecuali kolom kadaluarsa. Class ini merupakan subclass dari javax.swing.table. DefaultTableCellRenderer. £
EditDataDialog : merupakan class yang digunakan untuk membentuk form pengeditan
data
stok
javax.swin g.JDialog.
barang.
Class
1111
merupakan
subclass
dari
169
g. InputStokBarang
merupakan class yang digunakan untuk membentuk panel
popup isian stok pada tabel stok barang. Class ini merupakan subclass dari javax.swing.JPanel. h. Sto kDetail
merupakan package yang berisi class-class yang digunakan untuk
manaJemen hist01y pemasukan stok barang. Susunan class dari package StokDetail adalah sebagai berikut: ~"'''"'""'''-,.
"""""'""""~ 0<>foU1tTableMO\:h>I
! F(ltrn
~"'n;e
OufoultT»llh•ColumnMod<>I
J
{ fti>m llorv~rCl•~~Dia!l'"M.)
I
-
-
~
f
-------~----"--·-
p.1bli"_ ~o<~ta;J.:.ff~b~llloloil~?~llar~~' fi
p1l .. .rlv
J\.;:i~ul
w;,,;,i~
,JI.oh!
r~I
J,-,,J Kc·J~
H•ma
rri•"'" .1~"11011 H~•I priv.rlo
JE~!!on
pt\""'-"' J~lll!,.n
·Mui
Mot~'""'""'
pt1vmo Jn\ttt~n Jtot"'~~
Mv"'-« .!U<Jt!on S;iv«M pli~lll"' J~un<>n ~<>ltiOij
PMil!J;1,.mJl!¢n $1'T'PM'lim pt\V;;tJ;\
Jt:i~~I
:>IOU
prMllo JTu1b•
'rollclD<;iotlU;,,-,rn9
ptiv~tn ~cl~mM>~•IT\:it<Jo .. ~~fior;innf~\U.r ¢0iomM1<10 pit,;>t~ eolotnM>~•!Tllllfillkt>~!it~1'B•"1n') eo!>mt1;l>~•ff
p.tW'>\t>
Jl:i.~cl)L>bolf
MV"1<)- Jl.:Jt~: 11..;i~o!t
phV"1« Jlallol jl.;ih!J rrl11a:I~ Jl$~~J)bb•H
~""'"" JbbdjU.b~l5 prh'*' Jl..>bol]L>boltr )>ll~Il!i!.
JfUMI jron"ll
pri\f:rto Jr~n•liPa"m~ )'rlY_\'!~ )P1mt1jr,i_o~I'
pr\v
Jtot?lll'ao" 1~om11f"'ne~
pnv:tt" JT~
Jfooln•nfootaoM
p!\\f>l• F"'1o!Col•~dot poMIC~\:inrlilC, prlvm" t~l>i>tl.bUl!lbMiili~o•~noKl>luarubolW>tlolb'nt\Q ta~•!l>
°""'"'''"'
puW~ OdailU\~kOi~!o~( 1
:~~~: ~~:! ~:~::(f~~:i;"/"uswkcmn~g 1fo~Il, sn pU~ho v~id •~1ffio\1ln•d(•"lt sto1<) pl!hli;., ""iU "'b•qu\( bhi•til~W . .Olj7ct ~1,,, -1'.iOi•ot lt>~ ~'\oolu <1old l<>~O!hla( ) J"f"<>ta ""'d roll"•l1i'lavi¥<>W{ )
pd·,;•l
!.;tc~mp~nor;ht
) . __
_-
.- , __ ,
"dd T~h~qdSJ.,i;th•nQg£l( c1 ...1w~fa~M\ e-.t)
_r;;,,~~ :,;-cld-__R_~~"~hM_.;nP-..lt~"'-~"f kt1?itF.;;~m .~iii p1iv;,I~ ,,,-oid- E~~vd1dfoyB01-o,;,.,clt1t;;yf,;~,~ ,;'.~t)
Gambar 4.14
170
Di dalam package StokDetail dibagi rnenjadi lirna class, yaitu : a. DetailStokDialog tampilan
detail
merupakan class yang digunakan untuk membentuk form stok
barang.
Class
mi
merupakan
subclass
dari
javax.swing.JDialog. b. tabelMode!DetailStokBarang dan tabelModelDetailBarangKeluar
merupakan
class yang digunakan sebagai bentuk (model) dari tabel detail stok barang dan detail data barang yang terjual. Class-class ini merupakan subclass dari javax.swing.table.DefaultTableModel. c. colornMode!TabelDetailStokBarang dan colornMode!TabelDetai!BarangKeluar rnerupakan class yang digunakan sebagai bentuk dari kolom tabel detail stok barang dan detail data barang yang terjual. Class-class ini merupakan subclass dari javax.swing.table.DefaulffabieColumnModel.
171
8. Class Diagram pada Client Manager
~~
pi;btic cmro!ibd~H11b~ICJ1~n!( )
prl11ateilriid ir.lsra!:sasi( } µiblic I:i!_(1lllltTi!b_!ect_81\l!Ctmn~c
/t:!Ni~_ wlil _st1D\!Wtra. '.'~./.if!{'.•ill !";::- ·- _ ._,--- < .: _,-,-.,,_. - ·1
/lddllewC!lentWindnw
p1Wa1e Ferd f-0nl"' null pa~lliga Numb>lrforrn:it fomM =iavi.terl:J.Mm~arf onriltqettlumherlrutant
N.!.•1WJ:,,
pachue hc~l~;m ed:t 0 f;;l<.e ~~cbae
.
Ob,wt h\I"' '"
f)ri11ii!~
S!rir.g
k~!amClienl(O
privte
&~
kc!omCf!QniBftt(lL'J =fhd
-'l" fkW~_cUar~"'. ham•
prilnrte Ohjecl dabCli~ntlJ,,'! =ne111 Objeet{7j private Objut rnoD:rt~!D .. 'l =neli Objg\[!1) pri11
All-~
pa.:k~ge
prl11;t.eJPa<;<,:11wn:ifiitld Pa~S11ulll1 priw.~
JTertfkld ~et~rar.g1m
pti•11r.~
JTarlfkld ki::d~Ctml
Objant bde =...
pli11;rle Jt~'i!M lfop!y puhlic JTex!Niii puan
pri11;te JierlF"reld ~~m;iCli!1li
priva:e JTn)Uio!d t9l_burl rr\1111'.a JTulfiatdta!_-lldil 4'1f.\.\"1~
pubfo A:ldN[!l'ICli~11ilMlldaw( ) publi~ vcld nt&H( ohj~rl d11bl\L'j) priv~ta 11eid: lr.l!C~mr~n;nis( ) p:i\r;M vnid kel~r;,innnlll'1it~11hrforriid( kl_in!iEiim pnv;ie_vilid 1'asS1md !kfkinP~tfGrmed{ kfunEvri111 private vdd- ru~t~rdklkt11Performdl M.iMEv'~l1\
prival.; wicl __wmaCfa~nl"':1!io~P~rfoim_~-d_( AlfumEv_w.
l :~.'.'.·::_::~J::._!:~~:_:. 1;·(·~ ~ ."'._ri.·:~.:.·_. :.-ri..'.•. ..'".·.·•.
pri11at~ v~M Sirnponh:tkrlPwf~tl( kttu~w~m f~
i rc~vi!le Y-O.irl _r~-~J:!E)R·'.
tabe!PllS9WctdPopup
pub-11~ o;oid _lootiO_abTDT\lbl~Cliim!(J
I F~m -rl.~malFrarntCiienl}
p-ublie S\rinJ(f'tillslryDttritrt( S!riiiQ-pt_rt; SlfuigM_ni:! puhli~ ~M_Y -~•m!WI( S!~n9knd_~'- Si1¥wbi11rt; 1wltf:i;_ ~_c_tlkm- m-"'~-1~, !:;lfo!l_!( Sl_i_infj ,htit ) Jl'jbi!e_i_n~kd_ol_~~11t :gtl!i&Ji~:J~dfi!~fi_U_f'i(_ )_ -Fu_b!(~ wi4 _ut~!!b~_!MJ~-](l~'.~r:°{i~:b_~Mlf_i!C¥.~it. pk'b~c i:olnm1i&iti~!J~WtlCfal1! g~!Mlcl_\ltPM1tlclTi!_lll
pUhife_.V~id .1-1i1M:6litn\f4i~l'~h~lCiiM1{ @:iot~khi-J
p;i11"1~ Po~uppowp:onu~
µCbg~ Pfill~"PF~_.fory fathty,; ~ull
ptlb~e t~11elPa~_~ll!-nni~npupt j
/hl.'llfrm- -
.
ruhlfo -~d '.t~in_PH(_e&_mp";~ar.t. 1iMr, ~~~ i:Mtemi:_'. fot x, ITT\ y}
i
Gambai· 4.15
Class Diagram pada Client Manager
-__- _ --- _ -- __ _._-_.- _ ·_: __ _-:
172
Pada aplikasi ini, Client Manager diirnplernentasikan dalam package Client yang dibagi menjadi enam class, yaitu : a. InternalFrameClient
merupakan class utarna yang digunakan untuk manajer
client. Class ini merupakan pusat dari semua class yang ada pada package Client dan class ini rnerupakan subclass dari javax.swing.JlntemalFrame. Di dalam class ini terdapat ernpat buah inner class, yaitu antara lain :
r aktifitasClient : merupakan class yang digunakan untuk memantau keberadaan client setiap saat, seorang client masih aktif atau sudah non aktif akan diketahui oleh class ini. Class ini merupakan implementasi dari interface java.lang.R1mnable. r
DialogPesan
merupakan class yang digunakan untuk menampilkan dialog
pesan yang akan dikirimkan kepada client. Class ini merupakan subclass dari javax.swin g.JDialog.
r DialogPesanReply : merupakan class yang digunakan untuk menampilkan reply
pesan
dari
client.
Class
1111
merupakan
subclass
dari
javax.swing.JDialog.
r
tabelPasswordPopup
merupakan class yang digunalrn:n untuk penambahan
atau perubahan password seorang client. b. tabelModelClient : merupakan class yang digunakan sebagai bentuk (model) dari tabel
client.
Class
1111
javax.swing.table.DefanltTableModel.
merupakan
subclass
dari
173
c.
colomMode!TabelClient : merupakan class yang digunakan sebagai bentuk dari kolom
tabel
client.
Class
merupakan
1111
subclass
dari
javax.swing.table.DefaultTableColumnModel. d. DefaultTableClientlsConnectedCellRenderer : merupakan class yang digunakan untuk membentuk aligment, warna, font pada kolom bind, port dan status pada tabel
client.
Class
1111
merupakan
subclass
dari
javax.swing.table.
DefaultTableCeliReuderer. e.
DefaultTableStokBaraugCellRenderer : merupakan class yang digunakan untuk membentuk aligment, warna, font pada semua kolom pada tabel stok barang, kecuali kolom bind, port dan status. Class ini merupakan subclass dari
javax.swiug.table.DefaultTableCellRenderer.
f
AddNewClientWindow : merupakan class yang digunakan untuk menampilkan form penambahan dan pengeditan data client. Class ini merupakan subclass dari
javax.swiug.JDialog.
174
9. Class Diagram pada RMI Co11nection llftmage1·
odd
bleColumnModelRMIConnecli Mlfil;\lk.>:;
package Object tie!d[O ..") ={'Na.", "Kod1 1----.~~~-
package int panjangRow[fl ..~] ={45, BO, public int aligmentRov[l'I .."'] ={Swing Con
_paclm!ili: Tab1eC-alumn Ub[!l.~J =null
ro1roon1111e!/lterllce 0¢.'&'~
public Obfed[O,.~,O .. •'J gr!ll pulJtro O!Jju1t(O..\(L~J 9etl
pt!bNa boolean fffDafaTra plJbfi{J string Ri.!gistryC/kflt
pub!k! bcc!lian tkmon!WpU jioolk: vGid pes
private 'llOid inrtCompornmts( ) _ 0
prival:e void Sel.tlngktkmPi!rformaq(_"filio
priVat;;old-PiW"Pre':i~wftclio;Jiarfurmed(
-
pr\11;ite i.loirl f!tlii1A.i!onPerformerl( PctfllrtE
publk:Qb~-ct[IJ.:~o_,:n?-geH '",~ !rivat_~ 1.rnid _s,~elePrl.~~f:IL~~U-- ~~.!.~~!Liii&~m plivatn \lokl Sav~As:PclionPerfom11.!d( A':tii
pnvate: vmd -lfutenm
priv;;te vcid Refrosh_ktionPl!rfc1111ad(/!di private void Eili!PctlonPerfOrrne:d(AiionB prh1ate void editRM10onni:n:1ion( ) private void MdhticnPerformad( hi:ionEi pffit<Jh'!_va:ld a-ddRM/Conneotmn( _) private void Diso?rmectlh1iri{iPkrfarme-d( firiV_ate void- i:lis~rl-nnl!t,tJlll(:) prl\fati! vi'.iid C1moect1ktronPetfo-rmed{ k prl_vote void' connerlRMl/iil( )
pri_viil.e void StatuSAi:t:ioriP_ ptivirl~ _yfild -POrtfJcil~rift\rl
public ServarTokoO inefmplf
Opwllfafi~
public ConneTiioni
priblic: bt1nlea--1- till
pri\ral:!! vnid -Bindktion Fen
public b1;io\e;1-1 is
pri_~e- ~nl°- .: ~.odriA:Jikm~e privat_01 v_oid-jButttm?ktfon
private bt:tlli!'iln r_~ puhlic Striitgf) ..~1
Pri11afa,,~~-~-:_i:D~-?:11:14tlfo~
_p_tjlf
p~v-me·v~_1_(~1~vail_{ ·--)
p'e( b~~-!e~_:L _lS
~_b!i_C_ hueJ€?t1_ )fr
~rivaie _yoid _Oisconl'le~Jii_-ifo_n-PJ?i_fO;rmed(-J
ptiv<M:irvoid ~isi'it\fine_etRMI_Aofam(-_-)_ _privW.e.Vofd__ ConrnffiiAttioO~eftOITnerl{ Jlcli privaitt_ void _cannact~!( )
p_rivaii _\fold -:pe!_~kiion Pilrf6'n;1il:d(_:~io_i _privatl'! vo_i_d -Tabl_r:~_l_~_rmnectlon_~yRe[i?a
ptiblic. o.bJecl. ~-.-_,w..o.
fl .·umo,
public: Object[U..~.ot} getO· public boi;lean kirimDat~Trar pub\io Si:rln"g: RegiJvc11ent{
'publiii_ bo6_1~a~:_-',_01,si~_rmcl_~J P,_ublj~..Y~lif_JJ-~;;-~~_( nri~~;~~ P~~!_i,c_;p~~~ro;:.: '.nf,1_:- ~irl--
loefaultTableRMllsConnectedCellRendere Ali'.'.!wi~
private Go!or bi!C_" m.!W java.awt.Oolnr{255, 237, 200) privi!te Color fora" java.i>:ilil_.Ccfor.'BLUE private Fent font= mill pm:ki'lg~_
Numberfo!T11hl trinnat =java.fo:d.NumberForr O/JWllfu<[:i-_ _'- -- :·_._; ___ ·_
_Pu~~~-bt:Jiu~rnp_teR¥~1f~~nn,~e~ad_~ellRende~_i{_ ) p:ubli~ .void-:sdvdlue(-_O_b~ect_ valtie)
Gambar 4.16 Class Diagram pada RMI Connection Manager
175
Pada aplikasi server, RMI Connection Manager diimplementasikan dalam package RMJConnection yang dibagi menjadi tujuh class, dua interface dan sebuah package TransaksiManagerClient yaitu : a. JlntemalFrameRMIConnection
merupakan class utama yang digunakan untuk
manajer RMJ Connection. Class ini merupakan pusat dari semua class yang ada pada package RMJConnection
dan
class
ini
merupakan subclass
dari
javax.swing.JlntemalFrame. b. TableModelRMIConnection : merupakan class yang digunakan sebagai bentuk (model) dari tabel RMJ Connection. Class ini merupakan subclass dari javax.swing.table.DefaultTableModel. c. TableColumnModelRMJConnection : merupakan class yang digunakan sebagai bentuk dari kolom tabel RMJ Connection. Class ini merupakan subclass dari javax.swing.table.DefaultTa!JleColum11Moclel. d. DefaultTableRMJisConnectedCellRenderer : merupakan c:lass yang digunakan untuk membentuk aligment, warna, font pada kolom status pada tabel Rlvll Connection Manager. Class ini merupakan subclass dari javax.swing.table.
DefaultTableCellRenderer. e. AddNewDataBindForm : mempakan class yang digunakan untuk menampilkan form penambahan dan pengeditan data RM1 Connection. Class ini merupakan subclass dari javax.swing.JDialog. f
Connection : merupakan class yang digunakan untuk meng;atur masalah koneksi client-server.
176
merupakan
g. TokoOnlinelnterfice
interface
yang
menyediakan
layanan
pemanggilan method-method dari server yang dapat diakses oleh semua client. h. ServerTokoOnlinelmplementation : merupakan class yang mengimplementasikan interface TokoOnlinelnterfice. I.
ClientObjectinterface
merupakan interface yang memperbolehkan server
memanggil method-method tertentu yang ada pada semua client. J.
TransaksiManagerClient
merupakan package yang berisi interface dan class
yang menyediakan layanan Transaksi Manager pada semua client. Class diagram dari package ini adalah sebagai berikut Cli;mtTransaksiMa.1mgerlnleriace q.,,,,,.,<$< put,/;~
OfycM[O--'} 'J'-'lful"T"'"<>i-h!!( ~1,,ng bxfo, &,ing bi;l;:t>. S111ng 7lm)
puM;~ 08,'<Mt(O .. '/ ~«1!°'1tuTr.>t>.l~0>( 5mng l°"'d<>, strmy :;'', 1.,'t.~ng 1)1.;fam, Stnng lhr.)
p'1hiic
Of1•>~t[O.
-'l 9Mful.0Th>,,.M>11lt( Slli"iJ /u;tl". Sltlt"J}am S•ilc;g cyl, :;Mny b;;i<1.~, S"11'fl nm)
p,,t;i;~ O/Ji
•.o,,·1 y;;!O,,foT:;;!JI"( Sl:iny /. S/ri,,g 1;,.i,w_ Sl:in<.J Tim}
,,,,,,i,1;e 01:;.. ~1tO-- ',O __ •J g.-,t;:;,,/,,TnFN String k>d<'.
s1,;.~91g1,
Siring 1;,,1.,n. Sttiri<; nm I
p"/Jlfo OJ!icdf0 ..'.0 .. 'f g.;/0..1<>7i'1.l,,m( St.•irrg lmd<', tJ!ring}i>:;:, Si:fog tgf, Siring jr"/a". Stting 71m)
1-·
P"blio Ob}«lf().. •,(L'J gMDJ.l1:Tr.;Monit( St1fog /rod", Slli;,;;t """;1, S/lir;gj'11tl, S11ing lg/, S11ir1g bulan, $!rir.<) put;/;c Oh,i•>, Sirin~• lg!, Sl.~ng t.ml<1n, Slf.n'J Ti: f""'blic int
g..tJ,,./Tr-Alli .<;ning lmcii1',
S/nr;g m<1>nit,
Sl1/ngj.n»
Stringtgl, Sllin!J IJ>Jf«n, SltintJ
llm.
Wring um/
p11b!lo 1Y!,'~c.!fD. •,o. 'J f)MDM!'!T'i'!IJ"A{ENl.~fl lo:>rJ!>. S!.1r!lj if'l;~, $tt!t"!fl t:1~n!t_ S/r!.'1'flj,;g, S!li!!:J !fJl, S!1nfj !w. {'';NI<; l>c">l t1pd«1'•J:/if!,17l'.msakrlfOf!{<'a di>ta{O, •,D .'/, !}ni1'g !J'-'l<'
pa/:-J1c bca//<"Ki>bcr"'d"""l{""iJ"'fJ;ml'rif{( Slring fu:Jdli!)
pvbhe OI:;;<>dfU-,',(J.. •) 1'jl'f/l}o>fqWai<:11( bMn;t k4'1, Sf1l'rif11'mt: SlrinyJ;v/tm. !':.1rfr
-··-·--·~~~~~~~~~~~~~~~~~~~~~~-"~~~~~~~~~~~~
ClientTr
f"'~"o- Gl•.,ntTr~M~k
rul>llc Ol>)Ht!\"l
:i
o~WM.1Tr~olh
pu~lic O~Jo"!!lJ . .' ,0
.']
Sttin11
go!CIM~Tr
)
~odo_
Stflog
bul~n,
su;ny ko
su11111 Thn)
bul~n.
Shing Thro )
p11blic Objool!O--'.D .. 'l ~olih!~T<>llr{ $!iing ho de. Ohing lgt S!rinn bul~n. :.1t1in11 Tim) publk ObjHl/O .. ' .0--'l nelD~t~Tt<J~,.,-~ Siting hod~, SMnp j.tm, st1ing !9!, St
P"blic Objool[O .. ' .O .. ') flOID~toT<>Mnnii( S!1ing l,ode, Strina monit, String jam, Slrinp !JI. !)!fing ~u!~n. Srnn~ Thn) l'Ubiio Objoot[O .. '.O.:J G"HhtoTt:All( $1
Ob)Ht[D ',Cl. 'l
o~H)~hTn;IJru!(
Sttlno
kMI~-
Slflng ""''· sttlno
m~nl!.
StrlnuJ.om, Strlno tgl, suing hU!MI. Strino Tim)
p!ibllo ObJHl[Cl ..'J u~!Oai~r,~~J~ml s1rlnu t:o) Objec!!O .. '! ye\D~t.i1T1~0M~nit{Shin9 k"
P"bH~
µubli& Obj~<>l[O.
'!
11ottia1,1Tm~U1ul(
Stling ho~e. Stlinn m~oi~ Shlo11 j~m. Sl!ing iui. ~lli~g bubn, String Tim)
pubH" b~o!oon upd1>l•D;1hTt~M•l>~i{ Objo"I do\3[0 . .' ,0--'J, Strinu bulan. $h1og Tl>n. Objei;-t Jat;;Gfok[0 . .',0 .. 'J) puhli~ Cbj~d~ ..·.o . .'} U~lD;itaWoMu( Shinn !:~de. Siting 111<1t String bul~n- S!rinij l"h'm) public bo<>l~~n h~p•HTr~M~lm( Stnnu ~'<>ti0. Stnnn unit, siring lml~n. Str;ng t~hun) r'''"I" Qbj~M!ll
.'J
COl>"•n.: Obj~ct d"la{t1 -" Jl
-"l) .
.
Gambar4.17 Package TransaksiManagerC!ient
177
Package TransaksiManagerClient mempunyai sebuah interface dan sebuah class yang mengimplementasikannya : merupakan interface yang menyediakan
a. ClientTransaksiManagerlnterface
method-method untuk layanan manajer transaksi yang ada pada sernua client. b.
merupakan
lrnplementsTransaksiManagerClient
class
yang
mengirnplementasikan interface ClientTransaksiManagerinterface.
1O. Class Diagram pada Client 11fonitoring
Hdm:atype~>
JP an el (From Cfns OiJgram :1 Sarver]
Pane!Client AIPl!M~
p11~k11ge
nderer
\
I From Clan:: DiZi}l'J 2 StnJ~tl
JlnternalFrameClientMonltorinit--.
\
kiri~
priva!e JTobbedf'an<1
\
TabbodP.-meClief<JM:n~odng
\
Of>!.U'l•
11ublitrJ!ntem~lfriim1rCli~niM'.i~'i:o1fog()
Qb~d kode, Objuct name' ·------",.c,,c.~;::--------Jf.I p.ub!i!! 1toid rnmi;ve:C:iill"il(-Objenl: km.fe, Ob,hict lUI priv~te Co!o1 bli~" nrn jmn.aateclot(255, 23l' Wll) ,µublltrv>lid _ad_dTe
1rnblfo wW addCliant(
,;i,1~ ~;;iid stlktiveC~~rMkn_a11e_r{ pbjedl_kod~.
[)pruI<
public Oblfil>.\Jnltoilimti:nR_amlarar( )
µuh!ii: void .s&V~ru.;( Objtm va!un}
~1im 1<,v_<Jeid ~_d0p~nc1:~m~11~a9;u(Ob!~1
~ ~·
privat1t Jfab<> T11be1t..l:mllorin9 pri11ale Jie~iPor.e Ta~iPdClii!NM:mft~ring nck>mM
prlvlll-e Jf';mcl j!1;i.ndl prillid@ JP;in~l jPa11~12 pr111alu "JP;meljP;mclJ
f'Mv11te JParml jl':irmll
Def:;iutt TableMonflorlngCellRendorer
Objnot crm
ko:do,_:
f
privJrte JSi:!\JHP11r.ii."j~~rollPaM1 priv_11le JSu!UllPime jllcri;JIP11rw2 p;iville JTod6arjTo~l!Jarf i\Mf&'<W: public fl!ll')elClirint{ ) publi~ ;void. __:i_~lkiivc{ kt "1•imt_.to[~h, li:w!~-;m lici.i
public 1rnid __ ,rnlConS-O\e( Ollject mess11ae)
cotomMode!TnbelCllentMonitoring priv~!e
inhleCc!umn iab[O .. x]"' n~ll private iffi pafl]angRcuJ\L']" {l®, !00. 100, 1Il0, 100} private O~fauti:T~\lleCellR~m!~rnr!;iheJn~Mer~L'J" nu!! pu\llic in! aligrnMtReu[D .. "]" {S111innCGnst;111ts.CENTER, Si.-ingConnwtJi.CENTER, SwillgCDm.i;ifi!s.canat, SP-irlgConstanl~AlENIER, Swinacenn~nt.s.CENTER} prii;lll& Ol!J~c.I iialtl{lL~) ~ f'llr;l/;l!l", "Oat11 !l~rang \.-lm:ier", _''Wil~!ldei''. "Oertransaksi", "Tranuk.sl !Aiuingef'} fWbfo ecfoml.-bdllcffalie!Cfi~11ifvbrrito_rin~{-} pJivul~ V~id
Gambar4.18
Class Diagram pada Client Monitoring
178
Pada aplikasi ini, Cient Monitoring diimplementasikan dalam package ClientMonitoring yang dibagi menjadi empat class yaitu : a. JlnternalFrameClientMonitoring : merupakan class utama yang digunakan untuk Client Nfonitoring. Class ini merupakan pusat dari semua class yang ada pada
package
ClientMonitoring
dan
class
u11
merupakan
subclass
dari
javax.swing.Jint'emalFrame. b. colomModelTabelClientMonitoring
merupakan class yang digunakan sebagai
bentuk dari kolom tabel Nlanager Monitoring pada Client Monitoring. Class ini merupakan subclass dari javax.swing.table.DefaultTableColumnModel. c. DefaultTableMonitoringCellRenderer : merupakan class yang digunakan untuk membentuk aligment, warna, font pada tabel Manager Monitoring. Class uu merupakan subclass dari javax.swiug.table.DefaultTableCellRenderer. d. PanelC!ient : mernpakan class yang digunakan untuk panel tampilan Client Monitoring. Class ini merupakan subclass dari javax.swing.JDialog.
-"'"'
"'""I'
Ji~· ~~~-JJIJ~II ~~• _-fi t.~ ~ r·~l'*N 1n:c: =;: :_: :_ ~: _: : •·~ 1
;.: .,,. "'n
!!ll ~ft~ ;!~I ~~~~
l~' &~,J1~···il,.-~·~, "'"-·1 '*'ii
lit -; ~ ;;"'3~~ !';;"'it·'"j;., ~E~~ :t ~ jf ~& ! il:
__ ..,.
! z---·-F,
~-
=
'>
,-!!:
"'~
~
II..
'<
H
..
;;;t
~~
f
~ r_ ___ _
i::J
~ ~i !f
HH
/]
Q
"='
3
Q.
"' "':;,"' ;:;-~
,_.
.,~----~----~·!
"~
'C
~
"' "'
Q.
-'
""'
:::(
~
"' ~
¥_
~ ~
i3
"'
0-.S
.l' 1i"
~· ~
"'
~ •%
H
i!i' - iJJ__
-~· !
~.
i'I'
Hi'
<>
~ ~
,JJ"
1
-
~ gl
~
~
-..:
I
~ ~- *~
!'H "~,.. *~ H ~
~~
;;a"" ;:: i:: "
• : -""
1
,I Il!f
_\!;
-;£xf
~
S'
-g
TI
~ !I
~ g z !l
~
!
cr"
...,
"':"'"
"'
~
~
~
'-' ~ •>
~
~
~ •.,
"~
'°
~ "'
I
~§
I
~
!
Yi~
"'"' """"'
I
ll ,~*
~4
~Il •
""'5
~g
~ ;ic
~:.:
~~
!J ::;
"
'
'
.f
i
~lr
'-----''~"-'-!]
-'° ___,
180
Di dalam aplikasi server, Table Nlanager diimplementasikan dalam package tableManager yang dibagi menjadi enam class yaitu : a. JlnternalFrameTableManager : merupakan class utama yang digunakan untuk manajer tabel. Class ini merupakan pusat dari semua class yang ada pada package tableManager
dan
class
merupakan
l111
subclass
dari
javax.swing.JintemalFrame. b. tabelMode!TableManager
merupakan class yang digunakan sebagai bentuk
(model) dari label Table Manager.
Class ini merupakan subclass dari
javax.swing.table.DefaultTableModel.
c. colornModeITabe!Manager : merupakan class yang digunakan sebagai bentuk dari kolom tabel
Table Manager.
Class
1111
merupakan subclass dari
.iavax.swi11g.table.DefanlffableColn11111Model.
d. TreeModelActive, TreeModelNonActive dan TreeModelBackup : merupakan class yang digunakan untuk rnembentuk sernua tree pada Table Manager. Class TreeModelActive digunakan sebagai pembentuk dari
free Active,
class
TreeModelNonActive digunakan sebagai pembentuk dari Tree Non Active, dan TreeModelBackup digunakan sebagai pembentuk dari Tree Backup. Class-class ini merupakan subclass dari javax.swing.tree.DefaultTreeModel.
181
4.3.3.2.2. l'erancangan Class Diagram pada Client Class Diagram ini digunakan untuk yang menunjukkan hubungan antara class di dalam sistem aplikasi client dan
bagaimana class-class tersebut saling
berkolaborasi untuk mencapai tujuan aplikasi client dibuat. Ilustrasi mengenai class diagram pada aplikasi client adalah sebagai berikut :
JFrame { Fmm Glas!'>DiagramCtti'nl:
TampilanUtan1a Main
-1!\rW,;-s
1l!lilic.1V;
11ublic Conriecth:m rmi"' null "Liblic Ob;ect d<>i.;i6aran '"'.:Cl 2ublic hilanipuliis:iFi!i:.Config cor C,:»,""-."D.'W
public
~•fon(
j
public void slmuTampi!anUta~I public void mainf Siring <1msID
!ll!lt!k: void
ro1rosDllbB:ir.mfil
public RMlC\lnr.uctionFrame frm "null private JButhm Conned priv
pub!1c. JScro!!Pcne jSc.ml!Pnnf!SystemPrope:rty
'--·-:;,, public !nlema!FrameBertr.msak-;i internal Frame --.-..., wl<>:b'( public !ntem;ilFrameTransaksi!vlamigNClient int/ !J;>XJ;\h~\
public Tampilanlltam'a{ ) public void initli>okFe~I( ')
... ~~
private void initC-0mpor1errts( )
pnvate void 01sconnectA.iwnPorformed( k!ir
Iff----.Ip!'ivat1: vord C:JJm11101ArtionPi;-rformW(
~---~
Afbo~
private void RM!PclionPerio!Tflad( .ActkmBl"en -· priv;cte void lf-'llllnderPclionPerlomied( .tctia;! prival!< void Tn;HrA:;:!ionPerfomwd(A:.:!ionEtw
private void OataBarangktionPerlorrmi!d( ftcti :: ptiv;;ta vold il'•\?nulttimTr.insaks:iTran~Zlksi : •.~r~~~~ private void jt.tnu!temRMIOisoonneti.~ionP1
pub:!ic veld dlSca11nectedT0SeNer( ) private void
i!ii~m10MnecticnktionPG:rfoITTl(!d
private void jM!nultemTrans~k:>iJlcllonPerfom• private \iofd jfu\l
privcle void ¥vErmttemDa!aBarang>'l£1ionPert1'.! [!ublic v11id se!ec.t{ Jlnli'!ma!Frame traml'! ) private void jRadio!hrl.tonktmuli.i'tllhArta!AJHon priva!e void jRadio!J1111tmM>inu1t.;;mM;itif Pc1fcn pnv.ate void jRadi;;. IJuttonktmu 1tem\'\'i11dowsA:; public void rubahlt:wkFf!l!!{.string S ) pliv.rte \/old jhkn\1li~mCiililntmr,•1dfonP>lrfcnn•
private veld iMJnul!emR11!llCom111ctPctlonPerft private VQld Yllhn11UemSyitemProfl\':1ty.llct_!o-nl priv:ite voi'd #vbnul!em&itklionPertom\ed{P.
privnte void io!m\IVindowCIMirig( \l'JITTi1ol:l:l2ver
Gambar4.20
182
Pada
perancangan
class
diagram
di
atas,
subsistem
dari
client
diimplementasikan ke dalam bentuk package-package, yaitu antara lain : 1. Package RMIConnection
digunakan untuk mengimplementasikan subsistem
yang bertugas untuk koneksi ke server, subsistem ini disebut dengan Connection To Server Manager. 2. Package Bertransaksi : digunakan untuk mengimplementasikan subsistem yang bertugas untuk bertransaksi dengan pembeli, subsistem ini disebut dengan Bertransaksi. 3. Package ClientTransaksiManager
digunakan tmtuk mengimplernentasikan
subsistem yang bertugas untuk rnemanipulasi data transaksi,. subsistem ini disebut dengan Client Transaksi Manager. 4. Package DataBarang
digunakan untuk rnengimplementasikan subsistern yang
bertugas untuk rnenampilkan data barang pada aplikasi client, subsistem ini disebut dengan DataBarangViewer.
183
1. Class Diagram pad a Connection To Server Manager
l
-----·--~---~
RM!Comocttonfnilr.c
l''""'~'.:i::oi.c.~~0'\
--, '
>---------"'~·· '···..... ;ci»:ltm)Ko.:I
r~"i-;:tT1
~ctfo!<m;
,
M•E-ohi•-
f'<'<"1• [lj
t'~\'~""""1~·F;r~ !:tq "'-"'" -
f'~'';; ~tRT• ~
f'.tltl~'''"" •'Oi~•fol1• P"">t>l'"°'ll~P.:J•1>-1 P'"-'t
fi'"'J1'-~MN1
v~·~· .1~.-_,,,
Ml'"""'
,,{r,;a..t:,.NJful'111! ;1t;osro1>.,-}Jl;1<~W
•
1-'"~ .J~m.:i" fu-,;.,ll;;,1,~,i,,~
l'*~•J~""'~-~
\ \
\ .. ,
jI i\
'.
etinno~
i '"'"' t&i<:n~o:i>rd
f----~----•-j
f----=~---4 ;.JAoCo..v;:l.oo(j
~-\'Oil_<>'hi;J;:)
p\(•l
~c<'~.liM<"'1;;'l"<'<;tl
W''':.JlellFW.Jli ~kJJ"1f•
Cli•JJ!OJ>pS rrn~o"""'""}
V'~•J'1<.1f1'10 h~
f":"\,.)!cl>•IJ fo:Tul F-~": J1<
Gambar 4.21
184
Pada aplikasi client, Connection To Server Manager diimplementasikan dalam package RMIConnection yang dibagi menjadi lima class, dua interface dan sebuah package TransaksiManagerCJient yaitu : a. RMIConnectionFrame : merupakan class yang digunakan untuk menampilkan manaJer
koneksi
ke
server.
Class
nu
merupakan
subclass
dari
javax.swing.JDialog.
b. Connection : merupakan class yang mengatur koneksi client-server. c. ClientToServerGate : merupakan class yang digunakan sebagai pintu gerbang aliran data dari server ke client atau dari client ke server. d. DialogPesan : merupakan class yang digunakan untuk mengirimkan pesan dari client ke server. Class ini merupakan subclass dari javax.swing.JDialog. e. ClientObjectlnterface : merupakan interface yang memperbolehkan server memanggil method-method tertentu yang ada pada semua client.
f
ClientObject
merupakan
class
yang
mengimplernentasikan
interface
ClientObjectlnte1face. g. TokoOnlinelnterfice
merupakan
interface
yang
rnenyediakan
layanan
pemanggilan method-method dari server yang dapat diakses oleh client h. TransaksiManagerClient : merupakan package yang berisi interface sebagai penyedia layanan Client Transaksi Manager dari server. Class diagram dari package ini adalah sebagai berikut :
185
Clfonrrrans .:iksilVfanagarinterfm:e
···-------1
q;;;,,.,~"""
Sliil'!J J/m) public Ob,'<"c~U_. "! r;c'10"1i>TreeJilm/ !.:tr:rq kcda, Slr/1ltJ/<Jf, Stan,;; DuJiln, l!ilnng r11n! p!!blic Objoq'O_ •j ga1DntaTto0'/Dt>!if SllJl)(}kOlif.o, Sflill!.1f•7m, Siring/[/~ Sl
OfJ)n:l[C. •; pNDalHTU/rJ!-iQ•i/ Sl1i11g 1-ada.
S!li~!f hulan.
1
:~:;~ ~~=~~:·: ~-:::: ::~=:~::. ~~~~;,~~(~J:~":,;::,~~-JJ~~:~~1:~;:1ng Tlln)
i
pllb/kOD,eoc~'<'.,"",0.. ':j .•r-~£\M<>TrsJam{ SU1fh')kOd"7,
1
p11biit Ob}M![O.. ~O,. '1
S1rmsuam, Smtwtgt, s1rmg buiq.~, S/Fmg rtm} qa!Dii?11Tr.}t<.mN Slringkoc-Q. Sirih(I monit String jam_ Strinf}tgf. $/fitlffb!Han. Strmg Tim)
I
publlc ODJu1{il. •J),_•; ao1D,1t,ffr.V>t:{ Swflo ko&;. SI/lily m1N1Jt;s11rn[!Jam,. Stti'"'!)l"r;~ smn;flWJsn_BlihlfJ nm, illl m~·IM. Im bar./,~k. Str1,I poNi: !ni fJO/Jmrrrs11N $/dnu lrcde. SirillfJ 1T?J,11t.S-/rm;;;f:mn, Slrino 01. $/ri;}g b111rm. Stri11t1T1111. S/1inJ1urmJ I public Ofljacl[t.. ',IJ.. •; ;y.:maraTrsJ.Jmi\ 11111119 r((}..'fo, sumg~mif, .f;' 1g1 sir;rigbtr-'S;~·0,."_.o.. ~1 .r.re~DSIM1'Glfi'U{ Stli!1!JkOr!O, 51'1{11 UWI, -s1ri1)!) D//!&n,,$triflfl lt;/JL'll/ pubHe bco!wall
/Jap~\;TII!mal<M( S-.rfi1g
1
f:e;cio, Slr/f1IJ1Jfl.it·s1rfoq twfnn, Strfnq /afWI)/
Gambar4.22 Package fransaksiManagerC/ient
2. l'lass Diagram pada Bertrm1saksi i
i
n~~•JllT;~~u'i1crul<m..
I
{
f<~n l:>•~<(/'.""'"'"°"'") ·~1 ~
~ _ ____!_'.'.'.'<0IC~urn~<)~~ll1"n"~"-sl
I""~"•'M ""'~·.-= "~;""(;"'""'"'" CHilER I::::::~;~-~ ';:i':::~;;, '!-~:,,, ""~"~'"''"C-•Ooo"t*-!O ·i~,,_,,
1
~I\"'"• C.1;"~T•Uo~.ttr!.;!o'.&r,~"'1·-1 • C\o}s
t>!V>to
pvhiobt~t~"''"'rio .. f)'."l• ~rl¥>U
-«•. t'"""'- <'>>;\.,:l,~. °'''.
lot o...-J,,,,.fto,,l>,,") • Q;I, M, lrl, ~0- lM.!
I~=: ;:~ ~=~: ;:}~";~~.~-~~~~. ~lr. ;uo) 1:.i:~::.~-'."_~···. ·::~:;~~'::'.~.~-~"::::'.~
lI
f<'l••O ,T.-m•-lf.Ok;1"'.'h!•IT':"'.-""'"' )
f"~"'~'""~ '"'""'""~
')
1,,,.,,.,,1
Gambar4.23 Class Diagram pada Berlransaksi
186
Pada aplikasi client, Bertransaksi diimplementasikan dalam package Bertransaksi yang dibagi menjadi lima class yaitu : a. InternalFrameBertransaksi
merupakan class utama yang digunakan untuk
Bertransaksi. Class ini merupakan pusat dari semua class yang ada pada package Bertransaksi dan class ini merupakan subclass dari javax.swiug.JintemalJ<'rnme. Pada class lnternalFrameBe11ransaksi mempunyai tiga buab inner class, yaitu : PopupKode : merupakan class yang digunakan untuk tampilan popup kode
)i-
barang pada saat input data trm1saksi . .,,. PopupNama : rnerupakan class yang digunakan untuk tarnpilan popup nama barang pada saat input data transaksi. Popup.Tml
r
merupakan class yang digunakan untuk tarnpilan popup jurnlah
barang pada saat input data transaksi. b. TabelMode!Bertransaksi : merupakan class yang digunakan sebagai bentuk (model)
dari
tabel
Be11ransaksi.
Class
1m
rnerupakan
subclass
dari
javax.swing.table.DefaultTableModel. c. TabelColurnuModelTransaksi : rnerupakan class yang digunakan sebagai bentuk dari
kolom
tabel
Bertransaksi.
Class
m1
merupakan
subclass
dari
.iavax.swing.table.DefaultTableColumnModel. d. DefaultTableKodeNotFoundCellRenderer
merupakan class yang digunakan
untuk rnembentuk aligment, warna, font pada cell di dalarn tabel be1transaksi yang kode barang pada baris tersebut telah dirubah oleh server. Class 1111 rnerupakan subclass dari javax.swing.table. DefaultTableCellRemlerer.
187
e. SelesaiTrs : merupakan class yang digunakan untuk menampilkan form pembayaran setelah pemasukan data transaksi dilakukan. Class ini merupakan subclass dari javax.swing.table.JDialog.
3. Class Diagram pad a Client Transaksi Manager
l"'{:::,~1~::~~;:::,~e, ·---·-<>
Gambar4.24
188
Pada aplikasi client, Transaksi Manager diimplementasikan dalam package TransaksiManagerClient yang dibagi rnenjadi enam class dan sebuah package, di dalam package tersebut terdapat sebuah class, yaitu : a. InternalFrameTransaksiManagerClient : merupakan class utarna yang digunakan m1tuk perubahan dan penghapusan data transaksi. Class ini merupakan pusat dari semua class yang ada pada package TransaksiManagerClient dan class ini merupakan subclass dari javax.swing.JlntemalFrame. b. TabelModelTrsMngrBln dan TabelModelTrsMngrTgl : rnerupakan class yang digunakan sebagai bentuk (model) dari tabel Transaksi Manager. Class-class ini merupakan subclass dari javax.swing.table.DefaultTableModel. c. colomModeJTabelTransaksiManagerClientBln : merupakan class yang digunakan sebagai bentuk dari kolom tabel Transaksi Manager. Class ini merupakan subclass dari javax.swing.table.DefaultTableColumnModel.
d. DefaultTebelTransaksiJumlahCellRenderer : merupakan class yang digunakan untuk membentuk aligment, warna, font clari suatu cell jumlah pacla tabel Client llunsaksi Manager. Class ini merupakan subclass dari javax.swing.table.
DefaultTableCellRemlerer. e. TreeTransaksiManagerModel
rnerupakan
class
yang
digunakan
untuk
membentuk tree pada Client Transaksi Manager. Class-class ini rnerupakan subclass dari javax.swing.tree.DefaultTreeModel. f
EditTabelTransaksi : merupakan panel yang digunakan untuk mengedit data transaksi pada Client fransaksi Manager. Class ini merupakan subclass clari
189
javax.swing.table.JPanel. Pada class EditTabelTransaksi mempunyai tiga inner class yaitu antara lain :
r PopupKode : merupakan class yang digunakan untuk tan1pilan popup kode barang pada saat merubah data transaksi.
r PopupNama : merupakan class yang digunakan untuk tan1pilan popup nama barang pada saat merubah data transaksi. 'r PopupJml
merupakan class yang digunakan untuk tarnpilan popup jumlah
barang pada saat merubah data transaksi.
4. Class Diagram pada Data Barang Viewer
-~ ~~-<:"'<:l...,.'i)P
::. I r~IT'l'ci..1ssoi;Urarncue:r•t -~-"-......_" ~-
DefaultTableCo!umnMode {from Cfa~sDii!grarnCfient
/l [ From CfassOi;igramC!ient
..
~
tabe1MOaemat_aB;i,rt1ng __
colurnnfl.l'.lodelTabe!OataManager
~
lllitl>=s
.l!i.<'!.<.il
p;
f
.
FramelJataDarang
package Suing fie!dJ.!L"] = fiuiama'',
"~~~"
~-<z'~"
OefaultTableModel
, Jlntflmalfram-Q
-._,,.._
privi1le Object kolom[tl . ."J"' f'N
"a
private JToolBar Elar prival11 JTable TiibleDilla0ara119
private JToxtfleld earl pnvate columnM'H1!!1Tabe.1DmaM;:mage.r columnrut>,
{\'».<m>'.<"'< pubttctabelt~bd~Dala6:mmg(
) p!.!h!io 3!r!og getC<:111imnNiJm~(int !"i!l!
publle il\i .oMC;;lumnCeutrt( )
(lublio
bnofo~n
isCnSEdHmh!n( !r!!,.eow, ·
;!.\"Nlm"'-1
package Object fieldJO . .'J"' f'No.", "Kode". pm:kllJJI! T11b!eCofumntab[lL'J =null
paclrage lrrt. palljan9Ri:rn1[U,."J"' {35, 100, 1 package Defau1tTab!eCeHRcildm1:~rtabelfl( package, irrt a!lgrrwm:Rti\ll[tl .. ~J = {$t1ln9Co1 W.U"'iic.o,"\1
privme JComhaBo:( komliJ.:l
publin etilumnMcl:l~ITabelOalahkl11n9n( )
privll"le JCombotlDx oJ'rli!'rlly
privlrl.e' void lni.i:falisasl( -)
.
priv;rte JCcmboBox pilihan plivate tabelM:ld>'llDiitllElarang tall e\\iib!l~ Dlrt aElar;
prh,-afo PrirrtProviolo.1""-><
public Frnm~OalaO
pu!Jlic- void firolnfomalfram11Ell!!11t(i11! id) ptlblio void se-1\Asib!u( boolean vi£ibfo) publio void lolldDillii{ ) pfi)fale void initGomponents{ )
pri""ate Vnid ko11disiftclitJl'iPruiormed( .'V!h:mEv!in ptivme v¢'1d orilerByktk>nPerformed( Jlctkm8tm private void pllih~nA:rik:i_r1 Perfom•f!!d( A1tfonfu.re.rit ptivafo 11.:.ld cllri!myRel1l!1!£i!.rl( JU,yEV;;nt Mrl)
prlvi!le V!l'fd RdrnshJiclloriParformad{ PdionEvii privatll vold Smtin!lktionP11rtormei:lt-A:;titmEver1 prilnrte vok:I PiintfoclionPerformecl( A:tiimElient e plivala void Pi-lntPrevi~wk'tionP!lrforrrimi(Jlction privat>: vokl SimpiePrinthtiflnPerformucl(-Pcl«in£ privme Void, Savek>f...,HtmP.i:rfonni!d( ktinn8te1
Gambar4.25 Class Diagram pada Data Bat-ang Viewer
190
Pada aplikasi client, Data Bm-ang Viewer diimplementasikan dalam package DataBarang yang dibagi rnenjadi tiga class, yaitu : a. FrarneDataBarang
rnerupakan class utarna yang digunakan untuk melihat data
barang. Class ini merupakan pusat dari sernua class yang ada pada package DataBarang dan class ini merupakan subclass dari javax.swing.JintemalFrame. b. tabeIModeIDataBarang : merupakan class yang digunakan sebagai bentuk (model) dari tabel Data Barang Viewer. Class-class ini merupakan subclass dari javax.swing.table.DefaultTableModel.
c. columnModelTabeIDataManager : merupakan class yang digunakan sebagai bentuk dari kolom tabel Data Barang Viewer. Class ini merupakan subclass dari javax.swing.table.DefaultTableColumnModel.
4.3.3.2.3. Class Diagram pada fungsi lainnya Class Diagram ini merupakan diagram yang menunjukkan hubungan antara
class di dalam aplikasi server dan aplikasi client selain class-class yang telah didefinisikan pada class diagram sebelumnya. Pada perancangan Another Class Diagram m1, secara gans besar dibagi menjadi dua, yaitu: Another Manager Functions (diimplemen1asikan dalam package AnotherManagerFunctions dan package PrintService) dan General Application Fimctions.
J 91
1. Class Diagr(lm pad a Another Man ager Functions
l'fr•liPi:w•&w ,r~"""'wa.,.•"~l
-·
<"~'~'""'""'.i~<'><••flW~I.'\• t1*'{{1:.1•,;.D£, c<'•W•J'l,,Jt-•d_,,c,f'"'-"-,-,~,""';"-•"''""-~fldb:c<;,·,,,4"
-
V<>""'U"'"'""""4'(.i1;0;,! •Nm• /">-,,,,,~-;.;;;n.""4"'~
l'"'·•-i•..~~,.,rr-;.\">'-tl''-"~N,,~,:""r'"'""l~'-"°''' -~~--
''"""' r'"'~''''""~t'-"~
"''"'''""""•f:.U" ''""'""''"'~"><'11/.c;>•~
.-,..
I
/
I
,_
1n.'1>9'rnDffi
fr''"'"'"""'.-<:""'n>..'wtl
p·~-""''''"""''"1-.,a
J
~'""'-~''ii"""'"'"~
1.-t.:_,..,,..-~<Jk~w~;;-,.--.•"fl
•='"'""'""'"(> ,.;_~.11-;,,-~.-,
k"'"
""'""~tiol""""""~'"~
·-
"'""""'"1\"i>•($
'"''''ll'"""') ,.,, ..•
li'l~ll>'~'l'ji;;U<'°'"'
•nwc~31-l;;:;r;ru o..c~'l<'4""'r""'
<>N,.._Jl""""'-Wfili'l'd
''*"'''~"'"""'""'c..w.>J,;-<1~-.-::-"i-.1«~··
"""'""'"'T"'"'•"'""
f<'!<=.;~,c"""''""~""
.-.~,..,·~-'\llc"rt""fi>l'>
v~™•ll•&-4·~"·/il
r<"*'.:-~ r"'""'""
,,,,*"r"'"'"'"f.',it-"""
fi;'-l)
O?~•l.'!>ll,,«iH.-,,.~-"""
r-li>k.l>ltiTu.1'i>.~1il>WqUmJ\.'}t.!.q1*'<< l""'"''r~;ot""1C,,j
t•1'W.-JT:t. f'i\,M<J'".\cU,,i~~"""
µ;,,..;r,.,r.,,wha «'~"l'll;(>;Go~OC'°""
ri:UIM•r.'* W'1th1;;;;,;..,w;l'g<1Z;;;,
)
""""'<~0.<"{l;o~YJU r-,·~;1,1;
,..,,,r'"'P-Yfa
f~;~o;!lld!.»(U4,~,n,;
,._
t•i.w.lt,.<±.til-'"XC"""'• "'NM>.>(.'~"'Y!'.Mt<>
1
'~0<-l*'<M1wtmu'"""
II
1"1'1.,.Jlru>M<~-.!
"'"""""'l"'"'"'"..,,,
1•tWJl.i.U~
.I
'""""'"'t"'"'"""" /"i-";1.>jUM/""'4
'""""'''"·'-.c
(1".,,..Mot.ui:w.,:rw& ..
...--
P.N\!!M'l".wi4W ,n-,-,,-,f,-~.t>-;"""'
IJ;<:k. ftR>l>,iV.W.¥ if'<",""")W-fic,,fr.tJ.¥nr~
"""'°''"'''-' ~'""""r_,,,..,.-,""t
/!ihit<>M ~>'i."i.,~,:1-~:1i1«!l;,""'1Nt'1
r~~""'"",_"'""'""'~'..;,
'"''""'°'"""""'¢i1'"'""''""'=•~'di.
1'""'''*'"'"''"'""'' "~
>4\o&JT"'*'""""·':ef
i""'""'""~.,,~<'>~!$
1%..t.1io!,11vw•'i{)..1~toM
l""°"-~'"'""';i~(>
r |
,-.i,J,,_\-J"-IM'i•~
-· l~~~~;:::rl" w·-:.,-'""'
r•M«.i~;(;;
r;·h-·1><>:
jf'm.-.fl>'~~'A>i
,_
f'"''"'""'""'"-"'"'"-'"'~"
~~i-.u•llll
f"''""'"'~'•"0'"''""4'i Wi'>tiMt>o11 i.w.w.llciJ.,m>l'kfjqf~&l<MJ
--
'
---······· '··__J
r~(l:•1tc-.~1w
pwt~~'"'"''~u"' rMm<'ir"'[fli'"'"'"'l
"~
pJ.<'
0•>k~,,,,-,.,,,.,e,~·""'4;;
•
,,,tt<.~ .--..,,,.l'-,"''~~
1~"""~.,.,.~~~.;.;-~10
,,,_, .. ,,..,..,p,.,,~i;~j~ p'4.•.<'i>'"'•~tfb
~rVJ1W;1
if1.,,..(>i>df,;-&,f
p,;;;:;.H;<M,;so;·;;i:<~ll
;:<.:-k.WMr#-;;i'l~-{l
.~ ... ~'<'(> rdk~1,,;,,,d~1i<
·-·
I
.-_J·~""""'"
;;-:,,,....,,~'"~"1:ltt•<"~l·
.J
Gambar4.26 Class Diagram pada Another Manager Functions
192
Pada aplikasi server dan aplikasi client, Another Manager flmctions diimplementasikan dalam package AnotherManagerFunction yang menpunyai tiga class dan package PrintService yang mempunyai dua class, yaitu : a. SaveAsAction : merupakan class dari package AnotherManagerFunction yang digunakan untuk menyimpan data dalam bentuk file. Class ini merupakan subclass dari javax.swing.JDialog.
b. tokoFileFilter : merupakan class dari package AnotherManagerFunction yang digunakan untuk menyaring format file berdasarkan ekstensinya. Class ini merupakan subclass dari javax.swing.filechooser.FileFilter. c. TableSetting : merupakan class dari package AnotherManagerFunction yang digunakan untuk menampilkan form untuk merubah bentuk suatu tabel. Class ini merupakan subclass dari javax.swing.JDialog. d. PrintPreview : merupakan class dari package PrintService yang digunakan untuk menapilkan print preview dari semua manajer, baik pada program server maupun pada program client. Class ini merupakan subclass dari javax.swing.JDialog. e. PanelPreview : merupakan class dari package PrintService yang digunakan untuk panel tampilan dari print preview. Class ini merupakan subclass dari javax.swing.JPanel. Pada class ini terdapat satu inner class yaitu : class paintTable yang digunakan untuk menampilkan dan mencetak hasil print preview. Class
paintTable
merupakan
implementasi
dari
interface
java.awt.print.Printable. Pada class paintTable terdapat dua inner class, yaitu : class paintlnPreview yang digunakan sebagai tampilan preview dan class paintinPrint yang digunakan untuk mencetak basil tampilan pada mesin printer.
193
2. Class Diagram pada General Manager Functions
~;.t;;~~~b;·;.Modol L
PflathHClaViOl~grnm
,,
SystemPrnpertyTableModel
~~~;::~~ro·~.;:~=:r;_?.?~~~;:1~ m1b!io int
q.rtpi1l;mNum1icii~·s;;;;-Q !lt~ar; \
Pill®""tit>"oo""o!~oM"'-'o~o>k,s~oo"""'""''Od'.lo
l!1'!1!jl! Stting
9~1W;i~1uS~kllf
'·,,
,
fil!!lr~!ni !l~\Tub!lf]NQW(_)
-~,,\
~fil:iiri!:!mtU
OefnultTableHonAttiveCellRenderer 1a11a.~wLC1>lor(26D,
131, 2{){
private Coin' for
(io;m.,_~,
pl!bli!:t /lbtiut( )
""""''"'"'"
puhllc Help( j
.
"ru!illc
l'.lili~ull:l'Jb!~N~=~~Cel!ffoml~nn\
rut>Jlc vorn 1tt\/iitue\ Ohjaci: vtJv~ )
-
privoil..- Ohj~ct{Q_.».iL'J-iJcl:Oilt
"'r-------------~
Fil~{"coniigSl'IVH.elg")
ljasllb!)'lc l\ath"
~ult
~81-'~"
pubi!c J,;bnipulMifilll"Cunlig( ) r:mbb v1i1d iidConf'l}File( Obje!lt kt1Ha~h() pri11ate\
'>.!'+"'-"'-"
privif!I> Color b~tt :o- new
)
puj;lk; Im._ gM P~wcovl'li{_)
pllcl
pub0t1 ·nu: gilfTungrmlf rni·tt11ii !<111:tr!~~J_rlhul;;~ bftihrm 18.Jb~'?- vr;Jd "mb®lp;,fyFecl( G
Help
S\isltmPmpc:;\y"T~blcl
publ<.:i. •Object gei\.lalu~ll(irit J, int j ) puil!ic inl l)~CiilumnCount{-)
p11ck11g11 FM ii!I' ""new
l!!!.!J!ie i;;t bcth.bMNrtwf ) 11.\fu..ti~ Strinq\pi--ff11b~IT..;,ijiilis11Niirf')
..)'[ About
null
ManipuhislflleConfig ;tP,,,-,,,_,,,.,
~
,,
Object Hald[\) • .']= l\U!I
pu1llio -Cf! 1-'.;rsfu®re-ga:tf'roperty{)
'-",
ru!li~P int qqtTanmrn!Now\ )
Joining {From kicl,.;rC!an-Oiaijran1
f'll~i\aQll
public -11nn9 uctCe-lumnfl«mi!(frrt coiumll)
'~,'--,
~":tllA~nNqilhllU
·-~,l~;'"''"
Obj~ct d~ta[D .. '.0_,"J"'
puhl11;
pu!Jli<: b~cluzn ;~tri@qt Siring rl;;J~ l ppb!ll' bM!~:in isA\q!rnfl!rrnf..fil!i.l.!!I..
m!hU1< String rt<J!!hyNow( ) ~m nsffimtN@C ") ill41Uc String g
/'-fif.""'-'m.
p;ick
nf,~l
)
!jlrillfa!e yni
)
, _____
Gambar4,27
Class Diagram pada General Manager Functions
Pada aplikasi server dan aplikasi client, General Manager Jiimctions diimplementasikan dalam package Tools yang menpunym enam class dan sebuah package, yaitu : a. tools
merupakan class yang digunakan untuk memenuhi perlengkapan-
perlengkapan yang dibutuhkan oleh class-class lainnya. Class nu menyediakan fungsi waktu, look and feel, pengecekan angka atau bukan clan lain sebagainya.
194
b. DefaultTableNonActiveCellRenderer : merupakan class yang digunakan untuk membentuk aligment, wama, font dari suatu kolom yang tidak bisa diedit pada semua tabel yang ada pada program server dan program client. Class
1111
merupakan subclass dari javax.swing.table.DefanltTableCellRenderer. c. ManipulasiFileConfig
merupakan class yang menyediakan fasilitas untuk
manipulasi file config. d. SystemPropertyTableModel : merupakan class yang dapat menampilkan system property pada program server dan program client. Class ini merupakan subclass dari javax.swing.table.AbstractTableModel. e. Help : merupakan class yang menyediakan bantuan. Class ini merupakan subclass dari j avax.swing.JDialog.
f
About: merupakan class yang menampilkanAbo111. Class ini merupakan subclass dari javax.swing.JDialog.
g. Calendar
merupakan package yang digunakan untuk menampilkan kalender.
Baik pada Internal Frame maupun pada Panel. Susunan class pada package Calendar adalah sebagai berikut :
195
~~~
DefauttTableCo!umnMode { frnm PriotherC!a!>SDiasrarn}
1\
/
\,\ -----~--~'~~°,"cl~-··9-• '•,/,,\-.--'----~---------~
'-----.~-------' '-----~---~
'j
DefaultTableCellRenderc { r'mm hiclherClaJ:!:Diaaram J
__
..
.. ... ......
lnl:e1nalfrunmC:alem:h1r
pnv;;i,., Jllutton hmi[ll ." ,oA:'::)"';;"";ull
fnX;;ttt> JButton h1m[!l
priviile irrt hulan " n priville ir.t tahun "0
P.ril!\rte im bulan " n ~v~~!! im tahtm " 0
p~bHJ\Jl.::ibe! Elu!;in pu\ll,:, ~label liulom1 puUik: Jfanocl Pane!T;mggal
paclrag'-' JTable ta!l!!-I = null package int kmpRow" -1 p;ickall'-' int tempColurnn" privat~ JCQmbcf>ax llUUIN priviile Jlilbe! flul;m prillille JBu!ton au1on privfil~ JPariel Paniilflu!m1 privM~ Jran~I PaMIBu!anoanTuhun privirl:I! JPanel PanelTangrpl private JCornbo!.l.;x TAAUN priv
pub~-:>. J~rtton j_flulfonl 1rnbli~ Jaotton jButlon2 f--'r-'t' ---~==·-------1 ' \ Pp..~"'!%'>< pubtto_\lll:!!m~Fnim>
publiO' -lpid rhse-tTanagal( ) private ~oid i}\itHari{ )
pti1111li: ./\:.id ru\ahllulnl'I{ ) private
privale JTabie Table Tgt privl!ie
/'Q~!j"~ •\Ull
V~d ini~a;ngg
)
private veld inii:QQmpt!llrtrits{ )
culornM:idelT~be!V.l!ltmder
P~il?1re v_ol~ -j[lillt~2A:;;\k\nPfff;:;rmed(_A:riiiHl~ITTlt_ i!
priv21~ JScroUP,;rrn jScroHP<Jnaf
pm1µfo vold\1011\fof\1A;:lfuriPerf-myni.tl(kli0-n&_rif!t e\ l
1'.l.""'""""'
pub!ie P;mio!Cak-md;u{ } pubUo liQid res-.-~1Tangl)'1!( ) pfiv:de v,;;kf initT~r.ggal() pubhc void s-etT:i1bl~ftnt!Popup( JTubt~ tab1<_l) plivlllil void W.ilComµoM!1~{ ) privilte void 9"11hmAi-til!nfl;,irfo-mwdChfaml?irentlltvt) priv;rtiJ v.:;ld iablaBul;;nM:iUsf!Ciit:k'1tl(Nbu:&'l\8.rttnt >1.vt) privlrte Ve.id Tub!i\Tij\liM-useClk:l
pubfiri void sdP-.;mel(int p:tne!)
'
. colOmMode/TabelKalender .
priv-ah: T~b!eCd!rnnn tilb-jlJ . ."J" null
priv.rte:_ De1ili.ilt1\b1e C'ellflwdert'f_ labelRfilld~r!O.n _"
pTivale- string flt) [O .. "J ~,
•
P\ibl.ic
rfMng91i», "Senin", ''SeJa~~· >IMA~ts
cci.,ml\ihdel\ab~l Jerufor{ )
prl~Ji ;mld,,inisla!ff,as\_{-)
prlvllte void 0'1t;ii1Stokfl;uan11hticn(-)
rirlvmevo!d_ Tg!Sl:nk!l~ra11gtutmagukll;m( _) pfivatcl gi'l!Tan_tm( ) privii!e _void TN-1UN1tem-St1.-fotha11110-tl{ lle-m_f;venl evt) pri-V;;!e VC>ld !l_ULANllaM$1~t_erJial\ij~d( ttemE'tHlnt ev-1 } publi~ Vl'.lid s10H9!{ int TQI, _St~!l_Oln, lnt lhn)
DefuultTableKufenderCcllRenderer
publi~
public
O.i,foultT:ibl~~:l~rC-0ll_Remforni-(
)
putilil'-Witl ~~iY.ilile( 01'leci v.il11t)
Gambar4.28 Package Calendar
Pada package Calendar, terdapat empat buah class, yaitu a. InternalFrameCalendar
merupakan class yang digunakan untuk menampilkan
kalender dalam bentuk lntemal Frame. Class javax.swing.JintemalFrame.
1111
merupakan subclass dari
196
b. PanelCalendar : merupakan class yang digunakan untuk rnenampilkan kalender dalam bentuk panel. Class ini merupakan subclass dari javax.swing.JPanel. c. colomMode!TabelKalender : merupakan class yang digunakan sebagai bentuk dari
kolom
tabel
Calendar.
Class
1111
merupakan
subclass
dari
javax.swing.table.DefaultTableCol11mnModel. d. DefaultTableKalenderCel!Renderer
merupakan class yang digunakan untuk
membentuk aligment, warna, font dari kolom pada tabei Calendar. Class
1111
merupakan subclass dari javax.swing.table.DefaultTableCellRemlerer.
4.3.3.3. Activity Diagram
Activity Diagram merupakan diagram yang menggambarkan berbagai alir
aktifitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Aclivity Diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada
beberapa eksekusi. Sesuai dengan basil laporan pada analisis sistem di atas, bahwa setiap manajer mempunyai beberapa komponen yang digunakan sebagai aktifitas atau sebagai tingkah laku dari manajer tersebut. Namun pada perancangan Activity Diagran1 ini, komponen-komponen yang mempunyai alir aktifitas yang sama akan digabungkan dalam peraucangannya, karena bentuk diagranmya juga akan sama, kecuali nanti pada saat perancangan Sequence Diagram yang setiap komponen akan dijelaskan satu persatu, hal ini disebabkan karena setiap class dan method yang terlibat dalam
197
aktifitas semua komponen kebanyakan mempunyai class dan menggunakan method yang berbeda-beda. Perancangan Activity Diagram yang akan diulas dalam pembahasan ini antara lain adalah sebagai berikut :
l. Activity Diagram pada Connect Database 2. Activity Diagram pada Disconnec/ Database 3. Activity Diagram pada Add Data 4. Activity Diagram pada Update Data S. Aclivity Diagram pada De/e/e Data
6. Activity Diagram pada Search;ng Data 7. Activity Diagram pada Insert Default Value 8. Aclivity Diagram pada Select Tlvnsaksi By 9. Activity Diagram pada T1vnsaksi Navigator Ac/ion
l 0. Aclivity Diagram pada Select Chart Type l l. Activity Diagram pada Add Stok Barang 12. Activity Diagram pada Send Message 13. Activity Diagram pada RA11 Connection dan Client Connection 14. Activity Diagram padaRMJ Disonnection 15. Activity Diagram pada Client Disconnection 16. Activity Diagram pada Table !vlanipulation 17. Activity Diagram pada Execute SQL Que1y 18. Activity Diagram pada Send Data fransaksi To Server
198
4.3.3.3.1. Activity Diagrnm pacla Connect Database
Activity Diagram
m1
dirancang dan diperuntukkan
untuk Database
Connection Manager yang berada di dalam aplikasi server, yaitu pada saat server
akan melakukan koneksi ke aplikasi database. Ilustrasi mengenai Connect Database Activity Diagram adalah sebagai berikut : Start
End
Table Not Val!d J Not Four)(i-:.
.
GJmB!
Gambar4.29 Connecl Database Aclivity Diagram
Untuk melakukan koneksi database, langkah pertama yang dilakukan adalah mencoba koneksi database, apabila gaga!, tampil peringatan bahwa koneksi gaga! dilakukan, apabila koneksi berhasil dilakukan, maka akan mengecek keberadaan semua tabel, jika ada tabel yang tidak ditemukan atau tidak valid, maka pembuatan tabel yang tidak valid tersebut dilakukan, jika buat tabel gaga!, tampil peringatan bahwa buat tabel gaga! dilakukan, namun apabila semua tabel dinyatakan valid atau buat tabel berhasil dilakukan, tampil pemberitahuan bahwa koneksi database berhasil dilakukan dan Da/Clbase Connection Manager disembunyikan (hide).
199
4.3.3.3.2. Activity Diagram pada Disconnect Database
Activity Diagram
m1
dirancang dan
diperuntukkan untuk Database
Connection lvlanager yang berada di dalam aplikasi server, yaitu pada saat server
akan melakukan memutus koneksi dari aplikasi database. Ilustrasi mengenai Disconnect Database Activity Diagram adalah sebagai berikut Start
Peringatan, bah.wa adiil i:.Jiem
!!fl. End
Gagal.
Ber11asil
Gambar4.30 Disconnect Database Activity Diagram
Untuk melakukan disconnect database, langkah pertama yang dilakukan adalab mengecek keberadaan koneksi semua client, apabila ada client yang sedang connect, tampil peringatan babwa ada client yang sedang connect, namun apabila tidak ada client yang sedang connect, langkab selanjutnya adalah mencoba disconnect dengan database, jika disconnect gaga! dilakukan, tampil peringatan bahwa disconnect database gaga!, tetapi apabila disconnect database berhasil dilakukan,
200
maka akan menutup semua manaJer yang sedang terbuka dan aplikasi server dinyatakan telah berhasil disconnect dengan aplikasi database.
4.3.3.3.3. Activity Diagram pada Add Data Activity Diagram ini dirancang dan diperuntukkan untuk semua manajer yang
mengelola data tabular dan dapat melakukan penambahan data, manajer-manajer tersebut antara lain : Data Barang Manager, Jenis Barcmg fl/fanager, Client Manager dan RMI Connection Manager. Pada ilustrasi perancangan Activity Diagram berikut ini akan ditampilkan salah satu contoh dari aktifitas penambahan data, yaitu penambahan data pada Data Barang fl/fanager.
Start
End
"''~)••r Bat,af"
Gambar 4.31 Add New Data Barang Activity Diagram
201
Untuk melakukan penambahan data barang, terdapat dua cara yaitu antara lain : a. Lewat form Tambah Barang Baru : Jika menu Batal dipilih, maka proses penambahan data barang tidak akan dilakukan, tapi apabila menu Simpan dipilih, dilakukan pengecekan, apabila data barang dinyatakan benar (valid) maka data barang tersebut akan disimpan di dalam database, tapt apabila data barang dinyatakan salah, maka ditampilkan peringatan bahwa pemasukan data salah. b. Lewat tabel pad a baris terakhir
Jika dilakukan pembatalan ( misalnya dengan
menekan key Esc), maka proses penambahan data barang tidak akan dilanjutkan, tapi apabila penginputan selesai dilakukan, langkah selanjutnya dilakukan pengecekan, apabila data barang dinyatakan benar (valid) maka data barang tersebut akan disimpan di dalam database, tapi apabila data barang dinyatakan salah, malrn ditampilkan peringatan bahwa pemasukan data salah.
4.3.3.3.4. Activity Diagram pada Update Data Activity Diagram ini dirancang dan dipenmtukkan untuk semua manajer yang
rnengelola data tabular dan dapat rnelakukan perubahan data, manajer-manajer tersebut antara lain : Data Barang Manager, .Jenis Barang Manager, Client Manager clan RMI Connection Manager. Pacla ilustrasi perancangan Aclivity Diagram berikut ini akan ditampilkan salah satu contoh dari aktifitas perubahan data, yaitu perubahan data pada Data Barang 11/fanager.
202
Bat al
Rub sh
Gambar4.32 Update Data Barang Activity Diagram
Untuk melakukan perubahan data barang, terdapat dua earn yai1u antara lain: a. Lewat form Edit Barang : Jika menu Batal dipilih, maka proses perubahan data barang tidak akan dilanjutkan, tapi apabila menu Rubah dipilih, dilakukan pengecekan, apabila perubahan data barang dinyatakan benar (valid) maim data barang tersebut akan diupdate di dalam database, tapi apabila perubahan data barang dinyatakan salah, maka ditampilkan peringatan bahwa pemasukan data salah. b. Lewat tabel bukan pada baris terakhir
Jika dilakukan pembatalan (misalnya
dengan menekan key Esc), maka proses perubahan data barang tidak akan dilanjutkan, tapi apabila perubahan selesai dilakukan, langkah selanjutnya dilakukan pengecekan, apabila perubahan data barang dinyatakan benar (valid)
203
maka data barang tersebut akan dirubah di dalam database, tapi apabila perubahan data barang dinyatakan salah, maka ditampilkan peringatan bahwa perubahan data salah.
4.3.3.3.5. Activity Diagram pada Delete Data
Activity Diagram ini dirancang dan diperuntukkan untuk semua manajer yang mengelola data tabular dan dapat melakukan penghapusan data, manajer-manajer tersebut antara lain : Data Barang Manager, Jenis Barang lvfanager, C/ient lvfanager dan RlvfI Connection Manager. Pada ilustrasi perancangan Activity Diagram berikut ini akan ditampilkan salah satu contoh dari aktifitas penghapusan data, yaitu penghapusan data pada Data Barang lvfanager.
Gambar 4.33
Delete Data Barang Activity Diagram
Untuk melakukan penghapusan data barang, terdapat dua langkah yang bisa dipergunakan,
yaitu
antara
lain
adalah
penghapusan
data
barang
dengan
menggunakan button, clan penghapusan data barang dengm1 menggunakan key
204
Delete. Setelah penghapusan dilakukan, tampil konfirmasi penghapusan data barang, jika dipilih menu Batal, maka proses penghapusan data barang dibatalkan, akan tetapi apabila dipilih menu Hapus, maka langkah selanjutnya adalah proses pengbapusan data barang.
4.3.3.3.6. Activity Diagram pada Searching Data
Activity Diagram ini dirancang dan dipenmtukkan untuk semua manajer yang mengelola data tabular dan dapat melakukan pencarian data, manajer-manajer tersebut m1tara lain : Data Barcmg Manager, Transaksi Manager Bulanan, Transaksi Manager Tahunan, Client Transaksi lvlanager dan Data Barang Viewer. Pada ilustrasi perancangan Activiiy Diagram berikut ini akan ditamptlkan salah satu contoh dari aktifitas pencarian data, yaitu pencarian data pada Data Barang Manager.
Start
Gambar 4.34 Searching Data Barang Activity Diagram
Untuk melakukan pencarian data barang, terdapat dua langkah yang bisa dipergunakan, yaitu antara lain adalab pencarian data barang dengan cara memilih
205
dahulu option dari data barang yang akan dicari dan kemudian memasukkan keyword, atau juga dengan langsung memasukkan keyword. Langkah selanjutnya adalah proses untuk mencari data barang yang sesuai dengan keyword, kemudian dari proses tadi, data barang yang didapatkan ditampilkan pada tabel data barang.
4.3.3.3. 7. Activity Diagram pad a Insert Default Value
Activity Diagram ini dirancang dan diperuntukkan untuk Data Barang Manager yang berada di dalam aplikasi server, yaitu pada saat server administrator ingin mengganli default value di dalam Data Barang Manager. llustrasi mengenai
Insert Defaulr Value Activity Diagram adalah sebagai berikut :
Gambar 4.35
Insert Default Value Activity Diagram
Untuk memasukkan default value, langkah pertama adalah menampilkan form Default Value, jika dipilih menu Batal, maim proses pemasukan default value tidak akan dilakukan, tetapi jika dipilih menu Simpan, langkah selanjutnya adalah
206
mengecek keberadaan data yang dimasukkan tadi, jika salah akan tampil peringatan, bahwa pemasukan data salah, tetapi jika benar, maka data default tersebut akan disimpan.
4.3.3.3.8. Activity Diagram pad a Select Transaksi By
Activity Diagram ini dirancang clan diperuntukkan untuk semua manajer yang mengelola data tabular dan dapat melakukan pemilihan data dengan menggunakan perangkat tree dan mempunyai dua buah jenis select by, manajer-manajer tersebut antara lain : Transaksi Manager Bulanan, Transaksi Manager Tahunan, Chart Transaksi Bulanan dan Chart Transaksi Tahunan. Pada ilustrm;i perancangan Activity Diagram berikut ini akan ditampilkan salah satu contoh dari aktifitas select by, yaitu select by client pada Transaksi Manager Bulanan.
St:::rt
Gambar 4.36 Select 1/·ansaksi By Client Activity Diagram
207
Untuk menampilkan terhadap suatu data transaksi te11entu, pertama kali yang dilakukan adalah memilih data transaksi per client atau data transaksi per tanggal, kemudian user dihadapkan pada suatu tree transaksi. Di dalam tree tersebut terdapat berbagai macam path, yaitu antara lain
root (menampilkan semua data transaksi
selama satu bulan), path client (menampilkan semua data transaksi pada setiap client), path tanggal (menampilkan data transaksi setiap hari) dan path urut (menampilkan data transaksi per nomor urut transaksi). Setelah salah satu path dipilih oleh user, Jangkah selanjntnya adalah menampilkan basil dari data transaksi yang sesuai dengan path yang terpilih.
4.3.3.3.9. Activity Diagram pad a Transaksi Navigator Action
Activity Diagram ini dirancang dan diperuntukkan untuk semua manajer yang mempunyai fasilitas untuk navigasi next-back, manajer-manajE'r tersebut antara lain :
Transaksi Manager Bulanan, De/ail Stok Barang pada Stok Barang Manager dan Client Transaksi lvfanager pada program client. Pada ilustrasi perancangan Activity Diagram berikut ini akan ditampilkan salah satu contoh dari aktifitas navigasi, yaitu sebagai berikut :
208
men;;ntukan :suatu kondisi, !.::! opskah l:emungkinan masih IJ!sa mel.oiLukmn next _ r:i1aujugabach ?_ ___
start
Gambar 4.37 Transaksi Navigator Action Activity Diagram
Untuk melakukan navigasi next-back, pertama kali yang dilakukan adalah menentukan suatu kondisi, apakah masih bisa melakukan next dan juga melakukan back. Apabila data setelahnya masih bisa ditampilkan, maka menu ne>.1: menjadi enabled (aktif), tetapi apabila data setelahnya tidak bisa ditampilkan (data habis), maka menu ne>.1 menjadi disabled (tidak aktif). Begitu juga dengan back, apabila data sebelumnya bisa ditampilkan, maka menu back menjadi enabled (aktif), tetapi apabila data sebelumnya tidak bisa ditampilkan (index=O), rnaka menu back menjadi disabled (tidak aktif). Langkah selanjutnya adalah, apabila menu next yang dipilih, maim index akan bertambah sesuai dengan banyaknya data yang ingin ditampilkan, dan apabila menu back yang dipilih, rnaka index alrnn berkurang sesuai dengan banyaknya data yang ingin ditampilkan. Proses ini diakhiri dengan menampilkan data dari hasil aksi next atau back.
209
4.3.3.3.10. Activity Diagram pada Select Chart Type
Activity Diagram ini dirancang dan diperuntukkan untuk semua manajer yang menggunakan bentuk chart dalam menampilkan basil data yang didapat dan dapat memilih berbagai macam model chart, manajer-manajer tersebut antara lain: Chari
Transaksi Bulanan dan Chari Transaksi Tahunan. Pada ilustrasi perancangan Activity Diagram berikut ini akan ditampilkan salah satu contoh dari aktifitas pemilihan cha1t, yaitu sebagai berikut :
Gambar4.38
Se/eel Chari Tj;pe Activity Diagram
Untuk melakukan perubahan bentuk chart, langkah pertama yang dilakukan adalah memilih bentuk chart yang dinginkan, setelah bentuk chmt terpilih, langkah selanjutnya adalah menampilkan bentuk chmt tersebut ke dalam bentuk barn.
4.3.3.3.11. Activity Diagram pad a Add Stok Rarang
Activity Diagram ini dirancang dan diperuntukkan untuk Stok Barang Manager, yaitu digunakan untuk melakukan penambahm1 stok suatu barang.
210
Start
"77
. - - - - - · serr@/
Gambar4.39
Add Stok Barang Activity Diagram
Untuk melakukan penambahan stok barang, terdapat dua cara yaitu antara lain : a. Lewat popup penambahan stok barang : Jika menu Bata.I dipilih, maka proses penambahan stok barang tidak akan dilanjutkan, tapi apabila menu Add dipilih, dilakukan pengecekan, apabila penambahan stok barang dinyatakan benar (valid) maka data barang tersebut akan ditambahkan dan kemudian disimpan di dalam database, tapi apabila penambahan stok barang dinyatakan salah, maka ditampilkan peringatan bahwa penambahan stok barang salah. b. Lewat Detail Stok Barang : Jika dilakukan pembatal:m (misalnya dengan menekan key Esc), maka proses penambahan stok barang tidak akan dilanjutkan, tapi apabila penambahan stok selesai dilakukan, langkah selanju!nya dilakukan
211
pengecekan, apabila penambahan stok barang dinyatakan benar (valid) maka data barang tersebut akan ditambahkan dan kemudian disimpan di dalam database, tapi apabila penambahan stok barang dinyatakan salah, maka ditampilkan peringatan bahwa penambahan stok salah.
4.3.3.3.12. Activity Diagram pad a Semi Message Activity Diagram ini dirancang dan diperuntukkan untuk Client Manager, yaitu digunakan untuk melakukan pengiriman pesan kepada semua client. Sebenarnya terdapat dua bentuk pengiriman pesan, yang pertama adalah pengiriman pesan dari server ke client dan yang kedua adalah pengiriman pesan dari client ke server. Pada contoh diagram berikut ini akan diilustrasikan pengiriman pesan dari server ke client.
ServerAdmin
stent
@-
!
I
I
I
I I
I I
Client
I I I
I
I I
I I I End
c
@.<:-_<:;1?_:5_~
I
!·I / !
I
I I
I I
I I
I I
'-
____________
Gambar 4 .40 Send Jvfessage Activity Diagram
/
212
Untuk melakukan pengiriman pesan dari server ke client, langkah pertama yang dilakukan adalah memilih client dan menampilkan dialog pesan, kemudian menulis pesan yang akan dikirimkan ke client tersebut. Jika dipilih menu Batal, maka pengiriman pesan tidak akan dilanjutkan, tapi apabila dipilih menu Send maka pengiriman pesan dilakukan. Kemudian program client akan m.erespon pesan tersebut dengan menampilkan dialog pesan. Apabila client tersebut ingin membalas pesan dari server, maka client tersebut bisa memilih menu Reply, dan kemudian menulis pesan. Setelah dipilih menu Send, maka pesan tersebut akan dikirim ke server dan ditampilkan lagi dialog pesan dari client.
4.3.3.3.13. Activity Diagram pada RMI Connection !Ian Client Connection
Activity Diagram ini dirancang dan dipenmtukkan untuk J?Jv!J Connection Nfanager pada server dan Connection To Sen'er Manager pada client, yaitu digunakan untuk melakukan koneksi client-server. f - - - - - - -
7o.te'StA.ti3-eg'in>~;-'
1
ServerAdmin
I
{Penyedia IJindJ
-
-
-
-
-
-
-.. I
Client [Po;,ngguna tasili1as bind]
I
E~d
v
<@
Gambar 4.41
RMI Connection and Client Connection Activity Diagram
End
>@
213
Untuk melakukan koneksi client-server terdapat dua alir proses yang berada pada group proses yang berbeda, yaitu yang pe1iama alir proses pada program server dan yang kedua alir proses pada program client. Di dalam program server, untuk melakukan koneksi dengan client, pertama kali yang hams dilakukan adalah memilih salah satu bind atau langsung semua bind, selanjutnya bind tersebut dicoba untuk diaktifkan, jika terjadi kesalahan, maka ditampilkan peringatan bahwa aktifasi terhadap suatu bind terjadi kesalahan, namun jika aktifasi terhadap bind berhasil dilakukan, malrn status bind tersebut dinyatakan aktif (connected). Kemudian setelah server mengaktifkan bind pada port tertentu, giliran program client yang hams menghubungkan dirinya ke program server (lookup). Bind dan port yang digunakan untuk melakukan koneksi dengan server harus sesuai dengan bind dan po11 yang server sediakan. Langkah pertama seorang client agar dapat terhubung ke server adalah memilih salah satu bind pada port te11entu, kemudian mencoba melakukan koneksi ke server, jika koneksi terjadi kesalahan, maka tampil peringatan bahwa koneksi gaga! dilakukan, namun jika koneksi berhasil dilakukan, client tersebut dinyatakan telah terhubung dengan aplikasi server.
4.3.3.3.14. Activity Diagram pad a RMI Disconnection
Activity Diagram ini dirancang dan diperuntukkan untuk RMI Connection Manager, yaitu digunakan untuk tidak mengaktifkan bind pada port tertentu.
214
Cek kebenidaiJ.1
Gambar 4.42
RMI Disconnection Activity Diagram
Untuk tidak mengaktifkan bind (unbind) pada po1t tertentu, pertama kali yang dilakukan adalah mengecek keberadaan client yang menggunakan port dan bind ini, jika ada client yang ditemukan, maka tampil peringatan bahwa ada client yang aktif menggunakan bind dan port ini, namun jika tidak ada client yang ditemukan, maka langkah selanjutnya adalah mencoba untuk melakukan unbind, jika gaga!, maka tampil peringatan gaga!, namun apabila berhasil, bind dan port tersebut dinyatakan tidak aktif (disconnected).
4.3.3.3.l 5. Activity Diagram pad a Client Disconnection
Activity Diagram ini dirancang dan diperuntukkan untuk Client Manager pada server dan Connection To Server Manager pada client, yaitu digunakan untuk memutus hubungan koneksi client-server.
215
f
-
-
-
-
-
-
-
-
-
-
-
-.- -
~
-
-
-
-
-
-
-
-
ServerAdmin
l
( -
-
-
-
-
-
- ~~lestA16~1n» -
-
-
-
-
-
"
!
I
I
I 1
[Penyedi;:i bind)
Client
!
1
[P.;>nHguna lay:.inan t.1ndj
1'
I
Mengirim
rii:Lrn (facorn1~d I
Berhin:il
"" " "" """ ,1
'
Tergar11ungpfij!ud client ini
Tidak boieh
1l
+
,1
'~-----------------
Gambar 4.43 Client Disconnection Activity Diagram
Untuk melakukan disconnect terhadap client terdapat dua cara untuk melakukannya, yaitu yang pertama disconnect yang dilakukan pada program server dan yang kedua adalah disconnect yang dilakukan oleh client itu sendiri. Disconnect yang dilakukan oleh server dapat dilakukan dengan cara mdalui langkah-langkah antara lain adalah
memilih salah satu client yang sedang connect, kemudian
mencoba untuk disconnect, jika gaga], maka tampil peringatan bahwa disconnect gaga] dilakukan, narnun apabila berhasil, maka program client akan menutup semua manajernya dan program server menyatakan bahwa client tersebut telah berhasil disconnect. Sedangkan untuk disconnect yang dilakukan oleh client sendiri dapat dilakukan dengan cam rnelalui langkah-langkah antara lain adalah : mengecek keberadaan client tersebut di dalam database server, jika client tidak diizinkan melakukan disconnect sendiri, maka tampil peringatan bahwa client tidak diizinkan
216
disconnect, tapi apabila client tersebut diizinkan melakukan disconnect, maim langkah selanjutnya adalah mencoba disconnect, jika gaga] maka tampil peringatan bahwa terjadi kesalahan, namun jika berhasil, program client akan menutup semua manajernya, dan client ini dinyatakan telah berhasil melakukan disconnect.
4.3.3.3.16. Activity Diagram pada Table Manipulation
Activity Diagram ini dirancang dan diperuntukkan untuk Table Manager pada server, yaitu digunakan untuk
mengaktifkan suatu label yang tidak aktif, tidak
mengaktifkan tabel yang aktif, membuat tabel cadangan dan merestore tabel cadangan menjadi tabel aktif Pada ilustrasi di bawah ini akan ditampilkan salah satu Activity Diagram untuk mengaktifkan suatu tabel tidak aktif menjadi tabel yang aktif Start
Betj>ilsil
End
Gambar 4.44
Make Table Active Activity Diagram
Untuk mengaktifkan suatu tabel yang tidak aktif, langkah pertama yang harus ditempuh adalah mernilih satu atau beberapa tabel dari tree non active, selanjutnya
217
dilakukan pengaktifan terhadap tabel-tabel tersebut, yaitu clengan rnernilih menu
active, apabila proses pengaktifan tabel ini terjacli kesalahan, akan clitarnpilkan peringatan bahwa pengaktifan tabel terjadi kesalahan, namun apabila pengaktifan tabel ini berhasil dilakukan, maka tabel clari tree non active tadi dipindahkan ke dalarn tree active.
4.3.3.3.17. Activiry Diagram pada Execute SQL Query
Activity Diagram ini dirancang dan diperuntukkan untuk Table Manager pada server, yaitu digunakan untuk rnengeksekusi statemen SQL tertentu.
Gambar 4.45
Execute SQL Que1y Activity Diagram
Untuk rnenjalankan statemen SQL tertentu, langkah pertama yang dilakukan adalah menulis statemen SQL pada tempat (Text Field) yang telah disecliakan, kemudian dilakukan eksekusi terhadap statemen tersebut, jika terjadi kesalahan, maka ditampilkan peringatan bahwa statemen SQL salah, namun jika statemen SQL
218
tersebut benar, maka ditampilkan basil dari eksekusi SQL pada tabel yang berada di dalam Table Manager.
4.3.3.3.18. Activity Diagram pad a Send Data Tramaksi To Server
Activity Diagram ini dirancang dan diperuntukkan untuk Bertransaksi pada client, yaitu digunakan untuk mengirim data basil transaksinya ke server. - -
~1t:StAi88Qi'n:~7
- - - -
~
(
Client
ServerAdmin
fPen.:1irna data t"'Gnsaksi]
[Pengmm data transaks1J
End
@<· --------------·"''
Gambar 4.46
Send Data To Server Activity Diagram
Untuk mengirim data transaksi ke server, langkab pertama yang dilakukan adalab menyelesaikan transaksi, kemudian data transaksi tersebut dikirimkan ke server. Selanjutnya server menerima data transaksi tersebut dan dikurangkan dengan stok barang yang sesuai dengan data transaksi yang dikirimkan client. Jika stok suatu barang babis, maka data transaksi tersebut dikembalikan lagi ke client dan kemudian client menampilkan peringatan babwa stok barang tertentu telah babis, namun jika stok suatu barang masih, maka data transaksi tersebut disimpan di dalam database.
219
4.3.3.4. Sequence Diagram Sequence diagram digunakan untuk menjelaskan secara detail urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case. lnteraksi yang te1jadi antar class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi. Pada perancangan Sequence Diagram ini secara garis besar dibagi menjadi tiga kelompok (sesuai pada hasil laporan analisis di atas), yaitu Sequence Diagram pada Server, Sequence Diagram pada Client dan Sequence Diagram pada fungsi lainnya.
4.3.3.4.1. Sequence Diagram pada Aplikasi Server Seperti pada hasil laporan analisi dan Use Case Diagram di atas, perancangan Sequence Diagram dibagi menjadi beberapa sub, yaitu antara lain : Database Connection Manager, Data Barang lvlanager, .Jenis Barang lvfanager, Transaksi Manager (dibagi menjadi empat sub komponen), Stok Barang Manager, Client lvfanager, RMI Connection Manager. Client Monitoring dan Table Manager. Pada
masing-masing komponen akan dibagi-bagi lagi sesuai dengan sub komponen yang ada.
4.3.3.4.I.1. Sequence Diagram pada Database C'onnection A.fan11ger Pada perancangan Sequence Diagram ini dibagi menjadi lima buah sub komponen, yaitu antara lain : Connect Database, Disconnect Database, Add New
220
Database Connection,
Update
Database
Connection Jan Delete Database
Connection. 1. Connect Database
: CormectionManagement
J CsQLI
pLiblic vo. CO,l)nectDatabase( ) !"' r· ··':11' !~ "fublic boolean co11nE•di ;~
f?~
I
I
I
~-·
private v
eraclaan fables( )
Menampili(an pes
Gambar 4.47 Connect Database Sequence Diagram
Database
Connection
!vfcmager
menggunakan
method
connectDatabase(). Kemudian method tersebut mengirim pesan ke class SQL dengan method connect(). Jika koneksi berhasil dilakukan, akan mengecek keberadaan semua tabel yang digunakan oleh program ini dengan method cekKeberadaanTables(). Proses ini diakhiri dengan tampilan pesan yang memberi informasi bahwa koneksi ke database berhasil atau gaga! dilakukan.
221
2. Disconnect Database : TampilanUtama
: ConnectionManagement
pubfic void disconnectD8ta!Jase( J pttf~lic
rI I
I I I I
boolean isC!lentConnected( )
· ahuan bahwa ciisconnect tidak
Jika adEJ client yang sedang conn
I I
I :lnternalFra~eClient I :SIQL I S:a dilakukan
_____________________ JI ,Jika tidak ada client yang co
ampil l(onfirmas! disconnect
""
-"'>
dab~ba!e
I
.rJ
public boolean c!os:'~.1nection( )
I I I I
I I I,
~ ---------------------r------------___, Gambar 4.48
Disconnect Database Sequence Diagram
Tampilan utama mengirim pesan ke Database Connection Manager dengan rnenggunakan method disco1mectDatahase(). Kemudian Database
Connection Manager mengirirn pesan ke class InternalFrameClient untuk mengecek keberadaan client dengan menggunakan method isClientC01mected(). Apabila ternyata ada client yang sedang aktif, maka tarnpil peringatan bahwa client sedang aktif dan proses tidak akan dilanjutkan. Apabila tidak ada client yang sedang aktif, rnaka tampil konfirmasi bahwa koneksi database akan diputuskan. Apabila konfirmasi tersebut "Yes", Database Connection Manager mengirim pesan ke class SQL untuk disconnect database melalui method doseConnection() yang ada pada class SQL
222
3. Add New Database Connection
: ConnectionManagement j private void ad
: newV1lindow
I
I c void setVisible( boolean visible J •
-----~-~1•~ +:f«
-·-
privaie
•"o-"
~
newWinclow merupakan' 1stance dari class JDialo
Memasukkan data l(()J1el(si database yang baru
~~--~------'
'!O~d· simpanDatabaseConnecfln( ) ..
~?ti;::----·------~~~- ·-·---·-··--~~--~~;l
f.\ lt
1'
;)'h
~1tfil ~~
1·
I Gambar 4.49
Add New Database Connection Sequence Diagram
Daiabase
Connection
Manager
menggunakan
method
addNewDatabaseConnection() untuk melakukan penambahan koneksi database. Kemudian method tersebut menampilkan instance dari class JDialog, yaitu newWindow dengan menggunakan method setVisible(boolean visible). Setelah newWindow tampil, siap untuk menginputkan data koneksi. Apabila data selesai diinputkan langkah selanjutnya adalah data koneksi hasil penginputan disimpan dengan menggunakan method simpanDatabaseConnection().
223
4. Update Database Connection
:yerya,m~'WitidQ\611 [·enameWindow merupakan
: ConnectiooManagemeryt private void u
tabaseConnection( )
insta~ce .dari cla.ss JDialog ....... ..
I
c void sefl/isible( boolean Vi§i le) -: •
priv ,,oid sirr:i?_a!:!.'=l~!~.~~seConnec
1I
I
n( )
[-M-e-ru_b_a_h_d_a-ta-ko_n_e_k_s· - -··
database ~~ng sud ah
0
I I I
I I
I
I
Gambar4.50 Update Database Connection Sequence Diagram
Database
Connection
npclateDatabaseConnection()
untuk
lvfanager
melakukan
menggunakan perubahan
method
koneksi
data
database yang sudah ada. Kemudian method tersebut menampilkan instance dari class
JDialog,
yaitu
renameWindow
dengan
menggunakan
method
setVisible(boolean visible). Setelah renameWindow tampil, siap untuk mernbah data koneksi dan selanjutnya data koneksi hasil perubahan disimpan dengan menggunakan method simpanDatabaseConnection().
224
5. Delete Database Counectiou
private void d
,.
a koneksi database akan dihapus
Mernberi peringantan ba
private voi
eDatabaseAc!ion( )
Gambar 4.5 J
Delete Database Connection Sequence Diagram
Database
Connection
!vfanager
menggunakan
method
deleteDatabaseConnection() untuk melakukan penghapusan koneksi database. Sebelum proses penghapusan koneksi database, ditampilkan sebuah peringatan bahwa koneksi database akan dihapus. Apabila "Yes", maka koneksi database tersebut dihapus dengan memanggil method removeDatabaseAction().
4.3.3.4.1.2. Sequence Diagram pada Data Barang Manager Pada perancangan Sequence Diagram ini dibagi menjadi lima buah sub komponen, yaitu antara lain : Add New Data Barang, Update Data Barang, Delete
Data Barang, Searching Data Barang, dan Insert Default Value.
225
1. Add New Data Barang Pada Add New Data Barang terdapat tiga cara untuk rnelakukannya, yaitu antara lain : input data lewat class AddNewDataBarangirorm, input data lewat tabelDataBarang dan input data lewat barcodeReaderLi:stener (pengembangan selanjutnya), narnun yang akan diilustrasikan dengan sequence diagram hanya pada class AddNewDataBarangForm, karena pada prinsipnya proses kerjanya harnpir sama. : JlnternalFrameDataBarangManager private void Add
: AddNewDataB;rangform
J I :yiL I
AclkmEvent evt ) . ionPerTormed( ;:;p.
Menms.uklmn d.'.'. b1'rnng j:mda form isian J1ka selesa1
.
~J
pubtic void setVisiblo( boolean vt2ib!e )
t.::
menginputkan dela, maim :dcrtn terse but di
eek, apak valid atau tklak »
public voicl retresh( )
~~~~~~~---~--Jlll
simpan( )
1 Tab~~ ~i~~~&:l:i-~~e~ ~i-J~1 kotom[1], Object dat<>[2J) I I
Garnbar 4.52 Add New Data Barang Sequence Diagram
Dala
Barang
AddActionPerformed(ActionEvent
memanggil
f\/Janager
evt)
untuk
menampilkan
method class
AddNewDataBarangForm. Langkah selanjutnya adalah rnernasukkan data barang barn. Setelah selesai, class AddNewDataBarangF01m memanggil method eek() untuk rnengecek data yang dimasukkan tadi (valid atau tidak). Jika dinyatakan
226
valid, langkah selanjutnya class AddNewDataBarangForm mengmm pesan ke class SQL dengan menggunakan method insertDataToTnble(String tableName, Object
kolom[],
Object
data[][]).
Proses
diakhiri
1111
dengan
class
AddNewDataBarangForm mengirim pesan ke Data Barang Manager untuk merefresh data barang dengan menggunakan method refresh().
2. Update Data Barang
Sama seperti Add New Data Barang, pada Update Data Barang terdapat tiga earn untuk melakukannya, yaitu antara lain
update data lewat class
AddNewDataBan:mgForm (class yang sama dengan Add New Data Bamng) dengan method tambahan, update data lewat tabelDataBarang dan update data lewat barcodeReaderListener (pengembangan selanjutnya), namun yang akan diilustrasikan
dengan
sequence
diagram
hanya
pada
class
AddNewDataBarangForm. : JlnternalFr~~-ata8arangManager pnvme veld C:r.M
,~-----:"'Add.N·;;~--;:;f1F;~;;;-"']j:S§g
,ct( AC1ki1<Evcnl: cvt)
I
II
I
r>«blic void •.«MJ\dion( Obj"cl tfafoRow[1 J)
~
_,_,:-
! I
I I I I
r-
i~~--=--~~~"-C~ ~"-~~~~ct tl"1'1[2]. S1rln\J k
~~~·o~bl~~'~""~·~o<~res~M~)'--~---11
-'f
Gambar4.53 Update Data Barang Sequence Diagram
227
Manager
Ba rang
Data
men1anggil
method
EditActionPerformed(ActionEvent evt) untuk merubah suatu data barang. Selanjutnya method tersebut mengirim pesan ke class AddNewDataBarangForm dengan menggunakan method editAction(Object[JdataRow) dan selanjutnya menampilkan
class
AddNewDataBarang
dengan
menggunakan
method
setVisible(boolean visible). Langkah selanjutnya adalah perubahan data. Setelah selesai, class AddNewDataBarang memanggil method eek(), jika telah dinyatakan valid, data barang akan di-update dengan mengirim pesan ke class SQL menggunakan method updateDataToTable(String tabelName, Object kolom[][], Object data[][], String keyField, Object key). Proses ini diakhiri dengan class AddNewDataBarangForm mengirim pesan ke Data Barang Manager untuk merefresh data barang dengan menggunakan method refresh().
3. Delete Data Barnng
: JlnternalfranieDataBararisMamager 11. : SQLDaU.llarang fJlibli
n
..
apusan data barang
Gambar4.54
Delete Data Barang Sequence Diagram
228
Data Harang Manager memanggil method hapusData() untuk melakukan
penghapusan data. Kemudian tampil peringatan penghapusan data, jika "Hapus" maka Data Harang Manager mengirim pesan ke class SQLDatabarang dengan menggunakan method deleteData(Object key),
4. Searching Data Barang
: JlnternalFramepataBarangManager . 11 : SQLDatabarang. priv
J>il.. *
-
] getDataFromTable( Object field, Object [ll(e,/Object order)
~- ~-~"+~,~= ~--'"~~"-"~,~~~.._ -
+
I
I Gambar4.55 Searching Data Harang Sequence Diagram
Data Harang !vfanager memanggil method cariAction() untuk mencari
data yang sesuai dengan keyword yang dimasukkan. Selanjutnya memanggil method loadData() untuk me-load data yang sesuai dengar1 keyword tersebut dan yang terakhir Data Harang fvfanager mengirim pesan ke class SQLDatabarang dengan menggunakan method getDataFromTable(Object field, Object like, Object order).
229
5. Insert Dejimlt Value : JlnternalFrameDataBarangManager
: DefaultValu<~
private void Detautt\/a public void set\/isible( boolean visible
Memasukkan default value ke d&!mtn form ini
J.
~~!· priv
I
I
·f~.~·::mp•tX_)~-------~ ~~
·"'
Menyimpan cief81u!t value ke cialam fife
putJ!ic void reiresh( )
J
,~::-------'--'----11!11
I Gambar 4.56
Insert Defiwlt Value Sequence Diagmm
Data
Barang
Manager
memanggil
method
DefaultValueActionPerformed(ActionEvent evt) untuk memasukkan default
value pada data barang. Selanjutnya menampilkan class DefaultValue dengan menggunakan method setVisible(boolean visible). Langkah selanjutnya adalah menginputkan data
d~fault
value, dan kemudian data tersebut disimpan dengan
menggunakan method simpan(). Proses ini diakhiri dengan class DefaultValue mengirim pesan ke Data Barang Manager untuk me-refresh datanya kembali dengan menggunakan method refresh().
230
4.3.3.4.1.3. Sequence Diagram pada .Jenis Barang Manager Pada perancangan Sequence Diagram ini dibagi menjadi tiga buah sub komponen, yaitu antara lain
Add New Jenis Barang, Update Jenis Barang dan
Delete Jenis Barang.
I. Add New Je11is Barang : JlnternaJFrameDataJenisBarangMaf1ager _ pnvnte void Acid
jenis inmmg bsru
Gambar4.57
Add New Jenis Barang Sequence Diagram
Jen is
Ba rang
Manager
mernanggil
method
AdclActionPerformed(ActionEvent evt) untuk memasukkan data jenis barang baru.
Selanjutnya
method
AddNewJenisBarangWindow
terse but dan
meng1r1n1
menampilkannya
pesan dengan
ke
class
menggunakan
method setVisible(boolean visible). Langkah selanjutnya adalah memasukkan data jenis barang, setelah selesai class AddNewJenisBarangWindow memanggil method cekDanSimpan() untuk memastikan bahwa data jenis barang tersebut
231
valid dan sekaligus menyimpan data dengan cara mengirimkan pesan ke class SQL dengan menggunakan method insertDataToTable(String tableName, Object
kolom[l],
Object
data[2]).
Proses
1m
diakhiri
dengan
class
AddNewJenisBarangWindow mengirim pesan ke Jenis Harang Manager untuk me-refresh data jenis barang dengan menggunakan method refresh().
2. Update .Tenis Rarang
L-:
JJnternalFrameDataJenisB:arangMan_ager
public vold
seHOd~(
;_AddNe;wJ~_nisBarangWind~I : st~L_ j
JI
I I
ObJect dmaRow[1 J J
I I I I i I
pc1blic void -ee!Visibte( boolean v1s!!:lle )
&'@-4>1.- •
I I I !
priveile
publlcvold updMtlDu1aToTablet Str!
public void refresh( )
t~--- = = " - - ' - - - - - - -
~~
)
~·
j
obe!Ni:;me, Object lmlomf! ), ObJ•ict d&t8{2], Siring h;yfleid, Ob)ect key }
-'
h
'l
-- --
I I
Gambar4.58 Update .fenis Barang Sequence Diagram
.Jenis
Ba rang
Manager
mernanggil
method
EditActionPerformed(ActionEvent evt) untuk mengubah data 3e111s barang. Selanjutnya
method
tersebut
mengmm
pesan
ke
class
AddNewJenisBarangWindow dengan menggunakan setEdit(Object dataRow[]) untuk
persiapan
edit
AddNewJenisBarangWindow
data
3ems
ditampilkan
barang. dengan
Selanjutnya menggunakan
class method
232
setVisible(boolean visible). Langkah selanjutnya adalah merubah data jenis barang. Setelah selesai, class AddNewJenisBarangWindow memanggil method cekDanSimpan() untuk memastikan bahwa data jenis barang tersebut valid dan sekaligus menyimpan data dengan cam mengirimkan pesan ke class SQL dengan menggunakan method npdateDataToTable(String tabe!Name, Object kolom[], Object data[][], String keyField, Object key). Proses ini diakhiri dengan class AddNewJenisBarangWindow mengirim pesan ke Jenis Harang Manager untuk me-refresh data jenis barang dengan menggunakan method refresh().
3. Delete Jen is Barang
public void fie!eteD
I I I I I I
[_______ -:::-:=,
ot,ject key )
I
I
I
I I
I
I
I
Gambar 4.59 Delete Jenis Harang Sequence Diagram
Jenis
Barang
Manager
mernanggil
method
hapusData()
untuk
rnenghapus suatu data jenis barang. Selanjutnya dilakukan pengecekan untuk memastikan bahwa data jenis barang ini tidak digunakan oleh data barang, yaitu
233
dengan
mengmm
pesan
ke
class
SQLDatabarang
melalui
method
cekKeberadaanDataBarang(Object key). Jika data jeni>: barang tersebut tidak digunakan oleh data barang maka ditampilkan konfirmasi penghapusan data jenis barang, dan apabila "Yes" maka .Jenis Barang Manager rnengirim pesan ke class SQLJenisBarang melalui method deleteData(Object key) untuk melakukan penghapusan. Proses ini diakhiri dengan memanggil method refresh().
4.3.3.4.l.4. Sequence Diagram pada 11-<msaksi Manager Bulamm
Pada perancangan Sequence Diagram ini dibagi menjadi sembilan buah sub komponen, yaitu antara lain
Select 1/-cmsaksi By Tanggai, Select Transaksi By
Client, fransaksi Navigator Action, Simple Data Transaksi, All Data fransaksi, Data Barang 11-ansaksi, Searching Transaksi, Select Bulan Transaksi, dan Select Tahun Transaksi.
J. Select Transaksi By Tanggal : JlntemalFrameTransaksiManager
: SQL Transaksi~1anagerBulanafiJ I I
prlval:e void treeT
Gambar4.60 Select fransaksi By Tanggal Sequence Diagmm
234
Bulanan
Transaksi
memanggil
Manager
method
treeTg!Selection(TreeSelectionEvent evt) untuk melakukan select by tanggal. Selanjutnya method treeTglSelection menentukan suatu pesan (method) yang digunakan untuk berkomunikasi dengan class SQLTransaksiManagerBulanan, karena terdapat banyak method yang digunakan untuk mendapatkan data transaksi. Pesan (method) yang digunakan tergantung pada 1/·ee Path By Tanggal dan tabbedPane Tlnnsaksi yang dipilih oleh user. Perbedaan dengan select by client adalah bahwa Tree Path tanggal mempunyai posisi lebih tinggi dari pada Tree
Path
client.
Proses
nu
diakhiri
dengan
pemanggilan
method
navigatorAction() yang digunakan untuk manajemen next-·back action.
2. Select Trausaksi By Client : Jlnternalframe TransaksiManager
Men ·
J
j : SQL TransaksiManagerBulanan
I
'
-~'.::'gan ha!_1.!'._~_met~ocl tergantung !:_~~.e transa\\si
'
-
. . . . . . ..
~11igator Action( ) ~
.
I
I
I Gambar 4.61 Selecr Transaksi By Client Sequence Diagram
1lnnsaksi
Bulanan
Mt111a,ger
1ne1nanggil
method
treeClientSelection(TreeSelectionEvent evt) untuk melakukan select by client.
235
Kemudian method treeClientSelection menentukan suatu pesan (method) yang digunakan untuk berkomunikasi dengan class SQLTransaksiManagerBulanan, karena terdapat banyak method yang digunakan untuk mendapatkan data transaksi. Pesan (method) yang digunakan tergantung pacla Tree Path By Client dan tabbedPane Transaksi yang dipilih oleh user. Perbedaan dengan select by tanggal adalah bahwa Tf·ee Path client mempunyai posisi lebih tinggi dari pada Tree
Path
tanggal.
Proses
m1
diakhiri
dengan
pemanggilan
method
navigatorAction() yang digunakan untuk manajemen next··back action.
3. Tran.wiksi Navigator Action
Gambar 4.62 Transaksi Navigator Action Sequence Diagram
11-ansaksi Bu/anon lvlanager memanggil method tabbeclChangecl() untuk
melakukan aksi next atau back. Perbedaan yang te1jadi adalah jika next variabel mulai
dilakukan
penambahan
dengan
banyaknya transaksi
yang
mgm
236
ditampilkan. Sedangkan pada back, variabel nmlai dilakukan pengurangan dengan banyaknya transaksi yang ingin ditampilkan. Method ini kemudian memanggil method select by client atau select by tanggal sesuai dengan select by yang sedang dipilih. Dan selanjutnya te1jadi proses sepeiti pada select by client atau select by tanggal pada sequence diagram di atas, yaitu mengirim pesm1 ke class SQLTransaksiManagerBulanM untuk mendapatkan data trMsaksi yang diinginkM. Proses ini diakhiri dengan pemanggilan method navigatorAction() yang digunakan untuk manajemen next-back action.
4. Simple Data Transaksi ~~.9.L!~~P!:'t.1'1 t;,~~M5~?.~J,J.,~.i:;~H.l.1;1_n~n::· -,
I ! I I I
I public 01:-JOCI[;!]
:
octD<:>toTrc.n"<>kon~ In\
rnul<>I,
!r~
I I
t;<:>n>'<>I<)
-;,:,:;;,;:"; ~:;;,:,: ;,:~.·-~:.~, :,:;.:,:,,; ;,;,;,:; ~~.;..~ ~. ~. :,;;, ·. ~ .:,~)
~~~o;-c~f;]-:,;;~,,~~T~~n::!;"~F;o:;T:.,.~g·g~I~ ,;~I:<-~ ;,;.,:~~=~-~l ;o1;k)
·l· " ' '"'"' ,
: ;,,;,~;;,;;,~,;;;,;,~~c,;,;,,;,~~i' ,;, ·o·,~;;,-,;,,;,;.·.o,;,-;;,~,;;,~,; ,;,,- _ _________________________________
!;:~:
\tm,.
ue:tD"!ol r<m;';.,l<S1fromCltt~ntAndTg!AndUrHi( Ol>Jt.'d c!"•nl, Ob1ect ,I..••... .. _,-----------·-····---------------- _______________________ _,,_ ~
-~~------
-----------------------------------------i'
u , Obpod urul )
j
I
Gambm· 4.63 Simple Data Transaksi Sequence Diagram
Transaksi Bu/anan Manager memanggil method tabbedChanged() untuk
menampilkM simple data transaksi. Method ini kemudian memm1ggil method
237
select by client atau select by tangga/ sesuai dengan select by yang sedang dipilih. Dan selanjutnya 11-ansaksi Bulanan lvlanager mengirim pesan ke class SQLTransaksiManagerBulanan dengan menggunakan pilihan dari lima buah method. Method yang dipilih tergantung pada Tree Path Tanggal atau Tree Path
Client yang sedang dipilih. Proses ini diakhiri dengan pemanggilan method navigatorAction() yang digunakan untuk manajemen next··hack action.
5. All Data Tra11saksi : JlnternalFrameTra11saf{s.illJl.a111.1ger priva1ev
ceciCnanged( ) ~ ..... of'
Method yang di pa
{llUergantung pada select by
puttli public Object[2J
public
Object[2J ge
~D~iaT~~~~-~l\~IF;o·~cn;n-t{-01;j;~t-cii;~t:· 1nt-~.;~;aJ.-1~t- ~myak, Object urut)
--
=~-~-~·~~.~-~~-~-,~~~=~-~·~-~~~-.-.-·~~~-~ ~-I
~ataTr."",o~~sr~~?.~"."."gal( ObJe~t.~~~g_g_a~.!~t.111lil
~--
public vord
j
I ~~~ ~~LP!~.~at~.~~~!~.a~.saksl( int rr:_.i._:~-~c.~:!.~~E~'(al<. on·e \ urut)
~..
-~-·
___ , ___
,
------·-··--·-
·--------
ge.,llDalaTran J:.~~~~1~:~1~gl( Objec1-Clien1,~E!ectt~:Qg~'. '"1''al, int banyak, Object urut)
public Object[2J getD
private v
=~'.-C:2'.~i:ro:~C:,li~n"n_d~g'.AndUrut\9~~0,1i~~!, o~_,ttanggal, Object urut)
vigator.A.ction( )
~Ir':"
l"";.
I I
Gambar4.64
All Data 1iw1saksi Sequence Diagram
fransaksi Bulanan lvlanager memanggil method tabbedChanged() untuk menampilkan all data transaksi. Method ini kemudian memanggil method select
238
by client atau select by tanggal sesuai dengan select by yang sedang dipilih. Dan selanjutnya mengirim pesan ke class SQLTransaksiManagerBulanan dengan menggunakan pilihan dari lima buah method (tentunya methodnya berbeda dengan method yang digunakan pada Simple Data Transaksi). Method yang dipilih tergantung pada Tree Path Tanggal atau Tree Path Client yang sedang dipilih. Proses ini diakhiri dengan pemanggilan method navigatorAction() yang digunakan untuk manajemen next-back action
6. Data Bamng Tnm.wtksi
: Jl.n.ternalFrameTramiaksiManage.r. .. ',_, -·--- --,. ------ '-' ,-,--,_-. ,.
'•
·;'
____
"-
: S(;lLTnmsaks:iM!lnag1:1rBulanari
1iedC11anged( )
prlvate v
I I
Menggunal
public O
publrc Obj
I I I ct[2J getDataBarangByTgl( Object tgl, Object client Jject urut) 1:[2]-
~~1;-.;:;.~~r;g-;y~;i~~t~ ~~;.~;!;~ ~~;.~; ;l;e~~bject urut)
----------------------------------, private v
t JbedChanged( )
I I Gambar4.65
Data Barang Tf'ansaksi Sequence Diagran1
Transaksi Bulanan Manager memanggil method tabbedCbanged() untuk rnenampilkan data barang
transak~i.
Method ini kernudian memanggil method
239
select by client atau select by tanggal sesuai dengan select by yang sedang dipilih.
Dan selanjutnya T1w1saksi Bulanan Manager mengirim pesan ke class SQLTransaksiManagerBulanan dengan menggunakan dua buah pilihan method (tentunya methodnya berbeda dengan method yang digunakan pada Simple Data fransaksi dan All Data Transaksi). Method yang dipilih tergantung pada Tree Path Tanggal atau Tree Path Client yang sedang dipilih. Proses ini diakhiri
dengan
pemanggilan
method
navigatorAction() yang
digunakan
manajemen next-back action.
7. Searching Transaksi
Mernanggil rnetho
;-Methoci-met110
private 1
[""'"''~"" """ ~"'·~-~" '"" "'"'"'"f"'" -· "VigatorAcllon( )
I I I
Gambar4.66 Searching Transaksi Sequence Diagram
untuk
240
Transaksi B11/anan Manager memanggil method fimlAction() untuk melakukan pencarian data transaksi. Selanjutnya method ini memanggil method dari select by client atau select by tanggal sesuai dengan yang sedang dipilih. Dan kemudian mengirim pesan ke class SQLTransaksiManagerBulanan dengan menggunakan berbagai pilihan method tergantung pada select by dan tabbed
transaksi yang sedang dipilih. Proses ini diakhiri dengan pemanggilan method navigatorAction() yang digunakan untuk manajemen next--back action.
8. Seleet Bulan and Select Ta/um Transaksi Pada komponen select bulan dan select tahun mempunyai alur proses yang sama, sehingga mempunyai sequence diagram yang juga sama. : Jlnterna!Frame TranliaksiManager
Gambar 4.67
Se/eel Bulan and Select Ta/nm Transaksi Sequence Diagram
Transaksi
Bulanan
A1anager
inen1anggil
method
gantiBulanAtauTalrnn() untuk melihat transaksi pada suatu bulan dan pada suatu tahun. Selanjutnya method tersebut mengirim pesan ke dua buah class, yaitu
241
class treeMode!Tanggal
dengan
method loadTreeTrnnsaksi() dan class
treeModelClient dengan method loadTreeTransaksi(). Kemudian method loadTreeTrnnsaksi() pada class treeMode!Tanggal mengirim pesan ke class SQLTransaksiManagerBulanan getTanggalTrnnsaksi(),
dengan
sedangkan
menggunakan
loadTreeTransaksi()
method pada
class
treeModelClient mengirim pesan ke class SQLTransaksiManagerBulanan dengan menggunakan method getDataKodeAndNameClients(). Proses ini diakhiri dengan merubah tree ke bentuk baru.
4.3.3.4.1.5. Sequence Diagram pada Transaksi 111anager 111/uman Pada perancangan Sequence Diagram ini dibagi rnenjadi tiga buah sub komponen, yaitu antara lain Transaksi.
Select By Bulan, Select By Client, Select Talnm
242
l. S.elect By Bulan
pnvate void treeBu!ci
rn(
TceeSelectlm-.Even1 evt )
-"II•.
Gambar4.68 Select By Bulan Sequence Diagram
71-ansaksi
IY!anager
Tahu nan
memanggil
treeBulanSelection(TreeSelectionEvent evt)
un1~1k
Selanjutnya
mengirimkan
method
treeBulanSelection
method
melakukan select by bu/an. pesan
ke
class
SQLTransaksiManagerTahunan dengan menggunakan lima buah method pilihan untuk mendapatkan data transaksi. Pemilihan method tersebut bergantung pada free Path Bu/anan yang sedang dipilih.
243
2. Select By Client
priv;:ite void treeCliet
public
publi
public Object[2}
public Object[2] getDataT
Gambar4.69 Select By Client Sequence Diagram
Transaksi
lvfanager
Tahu nan
memanggil
method
treeClientSelection(TreeSelectionEvent evt) untuk melakukan select by client. Selanjutnya
method
treeClientSelection
mengirimkan
pesan
ke
class
SQLTransaksiManagerTahunan dengan menggunakan lima buah method pilihan untuk mendapatkan data transaksi. Pemilihan method tersebut bergantung pada free Path Client yang sedang dipilih. Dari lima method yang digunakan untuk
mengirim pesan ke class SQLTransaksiManagerTahunan, dua buah method sama dengan method yang digunakan pada select by tanggal, sedangkan yang tiga method lainnya berbeda.
244
3. Select Ta/um Trausaksi : J!nternalframeTransaksiManager
: TreeModelBulanJ
J
II
c
privcrl !}'~id go.n1ffchun( )
,,,.,.
,
: SQLTransaksiManagerTahunan
I
ub!ic void lomHrnnsal(siTre8( Object tahun )_
'
I
-i:
.
"'1J
-"I'll- - - - - --- - - -- - - -- ---- --- -------- - - - --- - - -- -- • pub:1c vo1ct loodTrnnsoltsiTtee( >wject tahun)
i
~
I
I
ObJN1[2[
gelDoloKo
I I
i
[
I I
Gambar4.70 Select J'ahun Ti'ansaksi Sequence Diagram
fransaksi lvfanager T'ahunan memanggil method gantiTalrnn() untuk
melihat transaksi pada suatu tahun. Selanjutnya method tersebut mengirim pesan ke
dua
buah
class,
loadTreeTmnsaksi()
yaitu dan
class class
treeModelBulan treeModelClient
dengan dengan
method method
loadTreeTrnnsaksi(). Kemudian method loadTreeTr.ansaksi() pada class treeModelBulan mengirim pesan ke class SQLTransaksiManagerTahunan dengan menggunakan method getTableTransaksiNames() dan loadTreeTrnnsaksi() pad a
class
treeModelClient
SQLTransaksiManagerBulanan
mengmm dengan
pesan menggunakan
ke
class method
getDataKodeAndNameClients(). Proses ini diakhiri dengan merubah tree ke bentuk baru.
245
4.3.3.4.1.6. Sequence Diagram pada Chart 1hmsaksi Bulamm
Di dalam perancangan Sequence Diagram ini dibagi menjadi enam buah sub komponen, yaitu antara lain : Select Transaksi By Tanggal, Select fransaksi By Client, fransaksi Component Tabbed, Select Chart Type, Se!ecr Bulan Transaksi, dan Select Tahun Transaksi.
1. Select
Trtm.rnk.~i By
Ttmggt1l
: .JlnternalFrameChartTransaksiBu!anan privete void lreeTg!
[ : Pane.IGr~ph
!~n( TreeSefect1011Event evt)
[,
r-----··~
: SQL TransaksiMana_gerBulanan
)
Mm;gmmlm• '""'"' vm•g- 'Ii"um'"'''" '"'"'8
------~-
~~------~~
,.,' ...................... t .......... .. puillic vo
se!lnlonnasi( Siring informas1, S!nng tola!,S1r.mg ra1a) ·-·-"'·~---·-.-·--····----.,,--
pnvffie vo1ci setCl1arDataA1
..
Object de.10<{1], double values[1 l)
c·· ~ii~b~cvoid ~1(
se!O-.-:>rlType(int1ype)
·----~··-----·---
I I I
-iI I
I I I I
I
public v
Gambar4.71 Select Transaksi By Tanggal Sequence Diagram
Chart
Transaksi
Bu/anan
mernanggil
method
treeTglSeiection(TreeSelectionEvent evt) untuk melakukan select by tanggal. Selanjutnya method treeTglSelection menentukan suatu pesan (method) yang digunakan untuk berkomunikasi dengan class SQLTransaksiManagerBulanan, karena terdapat banyak method yang digunakan untuk mendapatkan data
246
transaksi. Pesan (method) yang digunakan tergantung pada 1/·ee Path By Tangga/ yang
dipilih
oleh user.
Setelah
data transaksi
didapatkan
dari
class
SQLTransaksiManagerBulanan, Chart Transaksi Bulanan mengirimkan pesan ke class
Pane!Graph
dengan
menggunakan
method
setlnformasi(String
informasi,String total,String rata2) untuk memberikan informasi chart yang akan ditampilkan. Langkah selanjutnya, Chart Transaksi Bulanan memanggil method setChartDataAndShow(Object
data[],
double
values[])
untuk
persiapan
pengiriman data dan persiapan untuk menampilkan chart dari data transaksi yang baru didapatkan dari class SQLTransaksiManagerBulanan. Seletah itu Chart Transaksi
B11lanan
rnengirirnkan
pesan
ke
class
Pane!Graph
dengan
menggunakan method setChartType(int type) dan setD:ataAndValues(Object data[], double values[]) untuk rnerealisasikan bentuk chart yang baru.
2. Select 11-tmsaksi By Client
I: ,J1.nternt6llFnltm0Ch~rtTr.ar,1satc~.iB.l.Jla,ii:ir}l ~15/~ria.Pti] ;nr;-;;iie void tmeC!icr ~.!!,on(TrceSelu~!ionEven! evt) i
l:•
MPOP"""''"" pucun '"'0
L"'"'
[-;~ii9:Lj~l'.ls~-~f_<'~i~a-:U~_g;~H:i~fi~
dongop """"'''
1
-1
'"'"' ,.,,~,:~ r;iiiii~~i~1;;;, ..:;c-::c-.-. pub In; void
!
-'Vil~::_ void ~1rtTypH( mt !:::£.~_2__~
I
~~~~.'!·~~;.:~tuee( ObNct d
\
c.!uee[1])
I
I
Gambar4.72 Select Transaksi By Client Sequence Diagram
247
Chart
Transaksi
Bulanan
memanggil
method
treeClientSelection
(TreeSelectionEvent evt) untuk melakukan select by client. Selanjutnya method treeClientSelection menentukan suatu pesan (method) yang digunakan untuk berkomunikasi dengan class SQLTransaksiManagerBulanan, karena terdapat banyak method yang digunakan untuk mendapatkan data transaksi. Pesan (method) yang digunakan tergantung pada Ti·ee Path By Client yang dipilih oleh user. Setelah data transaksi didapatkan dari class
SQLTran~;aksiManagerBulanan,
Chart fransaksi Bulanan mengirimkan pesan ke class PanelGraph dengan menggunakan method setlnformasi(String informasi,String total,St1ing rata2) untuk memberikan informasi chai1 yang akan ditampilkan. Langkah selanjutnya,
Chart Tiw1saksi Bulanan memanggil method setChartDataAndShow(Object data[], double values[]) untuk persiapan pengiriman data dan persiapan untuk menampilkan chart dari data transaksi yang baru didapatkan dari class SQLTransalrniManagerBulanan. mengirimkai1 pesan
ke
Seletah
itu
Chart
class Pane!Graph dengan
fransaksi
Bulanan
menggunakan
method
setChartType(int type) clan setDataAndValues(Object data[], double values[]) untuk merealisasikan bentuk chart yang baru.
248
3. Tnmsaksi Component Tabbed --------------------~
: JlnternalFrameChartTransaksiBul;anan
;-Pan1alGraph_
private v
Meme.nggi method s
publ!c
Gambar 4. 73
71-ansaksi Component Tabbed Sequence Diagram
Chart Transaksi Bulanan memanggil method changeTabbedAction() untuk melakukan aksi pergantian menu tab transaksi. Selanjutnya method tersebut rnengirim pesan ke class Pane!Graph dengan menggunakan method reset() untuk menampilkan kembali bentuk grafik yang sesuai dengan menu tab yang dipilih. Kemudian method reset() memanggil method repaint(!. Proses ini diakhiri dengan pemanggilan select by tanggal atau select by client yang tergantung pada tab select by yang dipilih dan selajutnya proses dilakukan pada sequence diagram char! transaksi bulanan di alas.
s<~perti
method select by
249
4. Select Chart Type
r:c;:;;;;,etri!ph l~:d:fuD.0'.J:>Y.\[·. };;.;;,,.:10.',,-i·'f-1~'>I private voi
t1aDgeTabbedAc!ion( ) ~";1>
(
...
~ub!ic void setCh~tiType1 (int type )
I I put r.repaint( )
Memonggil metho
~y sescmi dengan kondisi
~·~
I 1-... -"II"' - - - - . lI public void setCheniType( int type)
Gambar 4.74 Select Chart Type Sequence Diagram
Chari Transaksi Bulanan me1mmggil method cbtangeTabbedAction() untuk melakukan aksi pergantian menu tab transaksi. Selanjutnya method tersebut mengirim pesan ke class Pane!Graph dengan menggunakan method reset() untuk menampilkan kembali bentuk grafik yang sesuai dengan menu tab yang dipilih. Kemudian method reset() memanggil method repaint(). Dan kemudian Chart Transaksi Bulanan memanggil select by tanggal atau select by client yang tergantung pada tab select by yang dipilih. Proses ini diakhiri dengan mengirim pesan ke class Pane!Graph dengan menggunakan method setChartType(int type) untuk merubah tipe chart.
250
5. Select Bulan aml Select Ta/um Trm1saksi
Pada komponen select bulan dan select tabun mempunyai alur proses yang sama, sehingga mempunyai sequence diagram yangjuga sama.
Gambar4.75
Select Bulan and Select Tahun Transaksi Sequence Diagram
Chart fransaksi Bulanan memanggil method g:mtiBnlanAta11Talmn() untuk menarnpilkan cha.rt tra.nsaksi pada suatu bulan dim pada suatu tabun. Selanjutnya method tersebut mengmm pesan ke dua buah class, yaitu class treeMode!Tanggal
denga.n
treeModelClient dengan
method
loaclTreeTrnnsaksi()
dan
class
method loadTreeTransaksi(). Kemudia.n method
loadTreeTrm1saksi() pada class treeMode!Tanggal mengirim pesan ke class SQLTransaksiManagerBulanan
dengan
menggunakan
method
getTanggal'fransaksi() dan loadTreeTnmsaksi() pada class treeModelClient rnengirim pesan ke class SQLTransaksiManagerBulanan dengan menggunaka.n method getDataKocleAndNameClients(). Proses ini diakhiri dengan merubah tree ke bentuk barn.
251
4.3.3.4.1.7. Sequence Diagram Jlada Cl1art Transaksi Taluman Di dalam perancangan Sequence Diagram ini dibagi menjadi lima buah sub komponen, yaitu antara lain : Select Transaksi By Bulan, Select Transaksi By Client,
Transaksi Component Tabbed, Select Chart Type dan Select TahunTransaksi. Sedangkan Transaksi Component Tabbed dan Select Chart 1)pe mempunyai sequence diagram yang sama pada Chart Transaksi Bulanan.
l. Select Tra11saksi By Bulan ~l;;t;rnalframeC:hartTran_saks_ITah_unan P'"''"fo vokl IT"a8ul"
I, _: P,an,e-r~ LJQ~ Tr~ry_5;_~;~s_i"1~2~g~r,T.:.ahuf'._an_
.~n( TraaS:ei"d'onEvont ovt)
l
[
__, ~=:::::~:::"i::~·"''"'".'.'.'.'.~ I I
priwil"' voict cclChurOuta
C
•
pub Ile,
Obje;~;;~~:[;-j~~;_;:~~~-~~IU()'>[1 I J
~bl1c
void sdCht'
"'D"'"'ciV=Objcct dolof1 f,
I
cioublo~tccf1
I
!
J)
Gambar 4. 76
Select By Bulan Sequence Diagram
Chart
1/·ansaksi
Tahu nan
memanggil
method
treeBnlanSelection(TreeSelectionEvent evt) untuk melakukan select by bu/an. Selanjutnya method treeBulanSelection menentukan suatu pesan (method) yang digunakan untuk berkomunikasi dengan class SQLTransaksiManagerTahunan, karena terdapat banyak method yang digunakan untuk mendapatkan data
252
transaksi. Pesan (method) yang digunakan tergantung pada free Palh By Bulan yang
dipilih
oleh
user.
Setelah
data transaksi
didapatkan
dari
class
SQLTransaksiManagerTahunan, Chart Yi-ansaksi Tahunan mengirimkan pesan ke
class PanelGraph
dengan
menggunakan
method
setinformasi(String
informasi,String total,String rata2) untuk memberikan informasi chart yang akan ditampilkan. Langkah selanjutnya, Chart fransaksi Tahunan memanggil method setChartDataAndShow(Object
data[],
double
valueslJ)
tmtuk
persmpan
pengiriman data dan persiapan untuk menampilkan chart dari data transaksi yang baru didapatkan dari class SQLTransaksiManagerTahunan. Seletal1 itu Chart 1iunsaksi
Tahu nan
mengirimkan
pesan
ke
class
Pane!Graph
dengan
menggunakan method setChartType(int type) dan setDataAndValnes(Object data[], double values[]) untuk merealisasikan bentuk chart yang baru.
2. Select Tramaksi By Client
pnve
setCt1wOG\~
publi"cid retCh,rtType( ml type)
P!.ltlliC\
i Pe!DPbl.PodVP""' Olaj'°l dolo{I {,
-1
ctoobt;lo{I])
Gambar4.77
Select Yi-ansaksi By Client Sequence Diagram
253
Transaksi
Chart
mem2.nggil
111huna11
method
treeClientSelection(TreeSelectionEvent evt) untuk melakukan select by client. Selanjutnya method treeClientSelection menentukan suatu pesan (method) yang digunakan untuk berkomunikasi dengan class SQLTransaksiManagerTahunan, karena terdapat banyak method yang digunakan untuk mendapatkan data transaksi. Pesan (method) yang digunakan tergantung pada Tree Path By Client yang
dipilih
oleh
user.
Setelah
data transaksi
didapatkan
dari
class
SQLTransaksiManagerTahunan, Chart Transaksi Tahunan mengirimkan pesan ke
class
PanelGraph
dengan
menggunakan
method
setlnformasi(String
informasi,String total,String rata2) untuk memberikm1 informasi chmi yang akan ditampilkan. Lm1gkah selm1jutnya, Chart Transaksi Tahunan memanggil method setChartDataAndShow(Object
data[],
double
values[])
untuk
persiapan
pengiriman data dan persiapan untuk menampilkan chart dari data transaksi ym1g baru didapatkan dari class SQLTransaksiManagerTahunan. Seletah itu Chart
Transaksi
Talnman
mengirimkan
pesan
ke
class
PanelGraph
dengan
menggunakan method setChartTy1>e(int type) dan setDataAndVaiues(Object data[], double values[]) untuk merealisasikan bentuk chm'! yang bam
254
3. Select Ta/11111 Transaksi
: lntemalFrnmeCh•rtTrnnsaksiTahunan
: TreeModelBulan
: TreeModelClienl~ : SQLTransaksiM•ffil!JerTahunan
Gambar4.78
Se/eel Tahun fransaksi Sequence Diagram
Chart 11·ansaksi Taluman memanggil method gantiTahun() untuk melihat transaksi pada suatu tahun. Selanjutnya method tersebut mengirim pesan ke
dua
buah
class,
loadTreeTrnnsaksi()
yaitu dan
class class
loadTreeTmnsaksi(). Kemudian
treeMode!Bulan treeMode!Client
dengan dengan
method method
method loadTreeTmnsaksi() pada class
treeMode!Bulan mengirim pesan ke class SQLTransaksiManagerTahunan dengan menggunakan method getTableTrnnsaksiNames() dan loadTreeTransaksi() pad a
class
treeModelClient
SQLTransaksiManagerBulanan
mengmm dengan
pesan menggunakan
ke
class method
getDataKodeAndNameClients(). Proses ini diakhiri dengan merubah tree ke bentuk baru.
255
4.3.3.4.1.8. Sequence Diagram pada Stok Barang Manager Di dalam perancangan Sequence Diagram ini dibagi menjadi lima buah sub komponen, yaitu antara lain : Update Stok Barang, Update Tanggal Kada!uarsa,
Update Minimal Value, Update Maximal Value dan Detail Swk Barang,
I. Update Stok Borang, Update Ttmggal Kadaluarsa, Update Minimal Value mul
Update Maximal Value [
: Jlnt•rnalframeStokBarangMa~
: TableMoo!!IStokBarang
I' :_SQLI I
public void setValue,
pubhc void wpdateDa!t1ToTab!e( 51
Gambar4.79
Update Sequence Diagram
Di dalam Stok Barang Mmmger, update stok, update tm1ggal kadaluarsa, update minimal dan update maksimal mempunyai alur proses yang sama, sehingga mempunyai sequence diagram yang sama pula. Tabel Stok Barffi1g yang ada pada Stok Barffi1g MMager memanggil method setValueAt(Object aValue, int row, int column) yang ada pada TabelModelStokBarMg untuk melakukan perubahan data stok barMg. Kemudiffi1 method tersebut mengmm pesan ke class SQL dengan menggunakan method
256
updateDataToTable(String tabelName, Object kolom[], Object data[][], String keyField, Object key) untuk melakukan perubahan stok barang di dalam database.
2. Detail Stok Barang ~n1a!FrameStokBarangManag~ I : DetaiJSto_l\Dlalog i~etailStokBarang j
i I
Gambar 4.80 Detail Stok Barang Sequence Diagram
Stok Barang lvlanager memanggil method tampilD1etail() tmtuk melihat
stok barang secara detail serta data barang yang keluar. Selanjutnya method tampi!Detail mengirim pesan ke class DetailStokBarang dengan menggunakan method setKodeAmlNamaAndStok(String kode, String narna, int stok, int max) untuk memberi nilai kode barang, nama barang, stok barang dan jumlah stok maksimal barang.
Kemudian class DetailStokBarang memanggil method
refresh() untuk mengeset Tabel Detail Stok Barang ke bentuk semula. Sel1mjutnya class DetailStokBarang memanggil method loadData() untuk mendapatkan data detail stok barang dan data transaksi barang yang terjual, yaitu
257
dengan mengirimkan pesan ke class SQLDetai!StokBarang dengan menggunakan dua
buah
method
antara
lain
method
getDataRowFromTableDetailStokBarang (Object bulan, Object tahun, Object kode, int mulai, int banyak) untuk mendapatkan data stok barang dan method getDataBarangHasilTrs(Object tgl, Object bin, Object tlm, Object kode, int mulai, int banyak) untuk mendapatkan data transaksi barang yang terjual. Proses m1
diakhiri
dengan Stok Barang lvianager
mengirim pesan
ke
class
DetailStokBarang dengan menggunakan method setVisible(boolean visible) untuk menampilkan dialog detail stok barang.
4.3.3.4.1.9. Sequence Diagram pada Client Manager Di dalam perancangan Sequence Diagram ini dibagi menjadi enam buah sub komponen, yaitu antara lain : Add New Client, Update Client, Delete Client, Send
Message To Client, Quit To Client dan Disconnect To Client.
l. Add New Client
Pada Add New Client terdapat dua cara untuk melakukannya, yaitu antara lain : input data client lewat class AddNewClientWindow dan input data lewat tabelClient namun yang akan diilustrasikan dengan sequence diagram hanya pada class AddNewClientWindow, karena pada prinsipnya proses ke1janya hampir sama.
258
: .1ntern,;IFr11meCli~nt private v
I
[.:sqLj I I Proses rnenginpulkan da a I Iransal(Si, jaka pemasukan sale_sal, dHai1Jutkar; p;ida I I I I
: AddNewClien!Window
~Clten!J>.ction(
)
I""'
I
ubllc void setVisible( boolB<m visible\.. I
prosl)~:sttlanjutnya:
Pti\1'110 Do
~:v public boolean inse
I J~oT~bl~~~t'.i~~ta~e.~a~, Ob~~Jlom[1J, Ob;ect data[2J)
.
'public voici inset1Row( ObJect data[11)
.
I I
I Gambar4.81 Add New Client Sequence Diagram
Client Manager memanggil method addClientAction() untuk persiapan
input data client dan menampilkan class AddNewClientWindow. Langkah selanjutnya
adalah
pemasukkan
data.
Setelah
selesai,
class
AddNewClientWindow memanggil method cekDanSimpan() untuk mengecek (valid atau tidak). Jika dinyatakan valid, langkah selanjutnya akan mengirim pesan ke class SQL dengan menggunakan method inse11DataT0Table(String tableName, Object kolom[], Object data[][]). Proses ini diakhiri dengan class AddNewClientWindow mengirim pesan ke Client Manager untuk menambahkan satu
buah
baris
pada
insertRow( Object[] data).
tabel
client
dengan
menggunakan
method
259
2. Update Client Pada Update Client terdapat dua cara untuk melakukannya, yaitu antara lain
update data client lewat class AddNewClientWindow dan update data
lewat tabe!Client. namun yang akan diilustrasikan dengan sequence diagram hanya pada class AddNewClientWindow, karena pada prinsipnya proses kerjanya hampir sama.
QrldNewCiientWindow
I :SQL I
i I Meru!rnh t11tui-ciient dengon data client yani:,i
Gambar4.82
Update Client Sequence Diagram
Client Manager memanggil method editClientAction() untuk persiapan perubahan data client dan menampilkan class AddNewClientWindow. Tetapi sebelum ditampilkan, terlebih dahulu client di eek, sedang terhubung atau tidak. Apabila sedang terhubung maka perubahan data client dibatalkan. Kemudian method editClientAction mengirim pesan ke class AddNewClientWindow dengan method setEdit(Object data[]) untuk mengeset nilai pada masing-masing field
260
yang
akan
diedit.
Langkah
selanjutnya
adalah
ditampilkannya
class
AddNewC!ientWindow dengan menggunakan method setVisible(boolean visible) dan
dilakukan
perubahan
data
client.
Set el ah
selesai,
class
AddNewClientWindow memanggil method cekDanSimpim() untuk mengecek (valid atau tidak). Jika dinyatakan valid, langkah selanjumya akan mengirim pesan ke class SQL dengan menggunakan method updateDataToTable(String tabe!Name, Object kolom[], Object data[][], String keyField, Object key) untuk melakukan perubahan data client di dalam database. Proses ini diakhiri dengan class AddNewClientWindow mengirim pesan ke Client Jvfanager untuk me-load kembali
data
client,
yaitu
dengan
menggunakan
loadDataToTableClient().
3. Delete Client : lnternalFn:uneClient
I
: SQLClient
I
I l''.'lengecek client dan
..•• '
oolean deleteData( Object kfy )
--------~"!!
.............. - -. . ··T
Gambar4.83 De/ere Client Sequence Diagram
j
method
261
Client Manager memanggil method hapusData() untuk persiapan dan penghapusan data client. Tetapi sebelum data client dihapus, terlebih dahulu di eek, apakah client sedang terhubung atau tidak. Jika terhubung, malca proses penghapusan dibatalkan. Jika client tidak terhubung, akan ditampilkan sebuah peringatan yang memberitahukan bahwa client akan dihapus dan juga semua data transaksi milik client ini akan terhapus. Jika "Yes", maka Client Manager mengmm
pesan
ke
class
SQLClient
dengan
menggunakan
method
deleteData(Object key) untuk menghapus data client di dala.m database dan juga menghapus semua data transaksi dari client ini. Proses ini diakhiri dengan merefresh
kembali
refreshChartAndTrs().
tab el
client
dengan
memanggil
method
262
4. Send Message To Client : lnternaiframeClieint
: DiaiogPesan
: Clil!ntObjectlnterface
Memasukkan pesan
~
yang al_ta·n·d·. ii.'.•.__in····•1•k·•.· _'.client ---- n.k·.· _____ ..: ·
private void Sen
id pesan( string
Gambar4.84
5>e11d 1ifessage 70
Client
Manager
(~/ie11t
,Sequence 1Jiagrcun (server side)
mernanggil
method
tampilDfalogPesan()
untuk
menampilkan kotak pesan, yaitu dengan cara memanggil method setVisible (boolean true) pada class DialogPesan. Selanjutnya user dipersilahkan untuk mengisi pesan yang akan dikirimkan ke client. Setekah selesai, pesan tersebut dikirimkan dengan memanggil method SendActionPerfonned(ActionEvent evt) pada class DialogPesan, clan kemudian method tersebut memanggil method pesan() yang ada pada Interface ClientObjectinterface. Proses ini diakhiri dengan class DialogPesan memanggil method dispose() untuk tidak menampilkan dirinya. Kemudian pada program client akan merespon kiriman pesan yang dikirimkan server seperti alur proses pada Sequence Diagram berikut :
263
Merupa!r.an in1plerne11t~JI dali inte1face
~-C-HP__n_1o_b_je_c_111_1te_.r_ra_ce~
I :_ClientObject I
•
public v~id"-,J'?~?,J;!~ String texlPesan)
II·l#!''*public DialogPesan( String textPesan l f :.DialogPesan l II
W lit'l * ,1' !§ ' ,yJ,-lf!l\4 ''\h
Gambar4.85 Send Message
1(J
Client Sequence Diagram (client side)
ClientObject merupakan class yang mengimplementasikan interface Clien10bjectlnte1face.
Pada
saat
method
yang
berada
di
dalam
C/ientObjectlnteiface dipanggil oleh Remote Object, secara otomatis method
yang berada di dalam class ClientObject juga ikut terpanggil, yaitu method pesan(String textPesan). Setelah method tersebut dipanggil oleh Remote Object, langkah selanjutnya adalah membuat objek baru, yaitu objek dari class DialogPesan yang digunakan untuk menampilkan dialog pesan dari pesan yang baru dikirim oleh server.
264
5. Quit To Client
: lnternalFrameClient
I :ClientObjectlntelface I
r--,,.
private vo ' e1i!TiJClientAction( )
Memberi peringf.
wa client al
,,Jj
If;f!
ill Nl \II
;
public void exit( ) -:-.,.-
~J;,-~..;i> ~1\11 I
Gambar 4.86 Quit To Client Sequence Diagram (wn,er side)
Chen/
Manager
memanggil
method
exitToClientAction()
untuk
mengeluarkan program suatu client. Kemudian method ini memberi peringatan bahwa program client akan di matikan. Jika "Yes", maim Client Manager mengirim pesan ke interface ClientObjectinterface dengan menggunakan method exit(). Kemudian pada program client akan merespon kiriman instrnksi yang dikirimkan server seperti alur proses pada Sequence Diagram berikut :
265
: ClientObject
; TampilanUtama
: ClientT0Server1:>ate 11 : System I
Gambar4.87
Quit To Client !J"equence l)iag·rcan (client side)
Setelah method exit() dipanggil oleh Remote Object, langkah selanjutnya adalah mengirim pesan ke class TampilanUtama dengan menggunakan method clisco1mectedT0Server(boolean paksa) untuk persiapan mengeluarkan program client. Kemudian method disco1rnectedT0Server(boolean paksa) mengirim pesan ke
class
ClientToServerGate
dengan
menggunakan
method
Discom1ectClie11t(String name, boolean paksa) untuk memutuskan hubungan dengan aplikasi server, apabila disconnect berhasil dilakukan, langkah selanjutnya adalah menutup semua manajer yang masih terbuka. Proses ini diakhiri dengan pemanggilan method exit(int status) pada classjava.lang.System.
266
6. Disconnect To Client
: lnternalFrameC!ient
~/lenart1pilkan
: ClientObjeetlnterfaee
perin
Pemberltai1uan bat1w,l1it
Gambar4.88 Disconnect To Client Sequence Diagram (server side)
Client Manager memanggil method disconnectClientAction() untuk
disconnect program suatu client. Kemudian method ini memberi peringatan bahwa program client akan di non aktifl.::an. Jika "Yes", maka Client Manager mengirim pesan ke interface ClientObjectinterface dengan menggunakan method disconnect(). Proses ini diakhiri dengan menampilkan pemberitahuan bahwa disconnect berhasil atau gaga! dilakukan. Kemudian pada program client akan merespon kiriman instruksi yang dikirimkan server sepe1ii alur proses pada Sequence Diagram berikut :
267
: ClientObject I pub Ii
: TampiliimUtama
disconnect( )
I [: ClientToServerGate
i
-·~·onnectedToServer( boo1ban paksa)
-------~-publicString""'~ectC~e_nt( St~ing_r:ian~\4,~J,oolean pal<sa) • l .•• ..!~- - - -
•
-
- -
- -
-
-
-
- -
- -
-
·-
~·1
I I I
Menutup semua manager yang terlluka
Gambar4.89
Disconnect To Client Sequence Diagram (client side)
Setelah method disconnect() dipanggil oleh Remote Object, langkah selanjutnya
adalah
mengmm
pesan
ke
class
TampilanUtama
dengan
menggunakan method disco1mectedT0Server(boolean paksa) untuk persiapan
disconnect program client Kemudian method disconnectedToServer(boolean paksa) mengirim pesan ke class ClientToServerGate dengan menggunakan method DisconnectClient(String name, boolean paksa) untuk memutuskan hubungan dengan aplikasi server, apabila disconnect berhasil dilakukan, langkah selanjutnya adalah menutup semua manajer yang masih terbuka.
268
4.3.3.4.1.10. Sequence Diagmm pada RMI Connection M111u1ge1' Di dalam perancangan Sequence Diagram ini dibagi menjadi tujuh buah sub komponen, yaitu antara lain : Add New RJ.41 Connection, Update RMI Connection, Delete RMI Connection, Connect, Disconnect, Connect All, dan Disconnect All.
1. Add New RMI Connection
Pada At!d New RMI Connection terdapat dua cara untuk melakukannya, yaitu antara lain : input data client lewat class AddNewDataBindForm dan input data lewat TableRMIConnection. namun yang akan diilustrasikan dengan sequence diagram hanya pada class AddNewDataBindForm, karena pada prinsipnya proses kerjanya hampir sama. QinternalFrameRMIConneoti<>n I private v
11
: $\dqNewDa!oBindForm
I [ :S,QL J
~-~-~--~-~~
~onnection(
)
-
public voir:l setVisible( boole6'n
JII i
m.~ilM·~.~=r: da.''.. , . .
M·.·... e
••
I
~~'f:.~~~~'.:?_:-~-~-1_:~~-~~':'~~bj-~"1ct koloi"[1 J, Object date;{2])
~--
v•"
,--.
~
voicl inset1RowToTable( Object rowDatofi
I I
Gambar4.90 Add New RMI Connection Sequence Diagram
269
RMI Connection Manager memanggil method addRMIConnection()
untuk
persiapan
input
data
RMI
Conection
dan
menampilkan
class
AdclNewDataBindForm. Langkah selanjutnya adalah pemasukkan data. Setelah selesai, class AddNewDataBindForm memanggil method
ci~k()
untuk mengecek
(valid atau tidak). Jika dinyatakan valid, langkah selanjutnya adalah memanggil method Simpan() yang akan mengirim pesan ke class SQL dengan menggunakan method inse1iDataT0Table(String tableName, Object kolom[], Object data[][]). Proses ini cliakhiri dengan class AddNewDataBindForm mengirim pesan ke RMI Connection Manager untuk menambahkan satu buah baris pada tabel RMI
Connection dengan menggunakan method insertRowToTab.le(Object(]dataRow).
2. Update RMI Connection
Pada Update RMI Connection terdapat dua cara untuk melakukannya, yaitu
antara
lain
AddNewDataBindForm
update dan
data RMI
RMI
Connection
Connection
lewat data
class lewat
TabieRMIC011nectio11. namun yang akan diilustrasikan dengan sequence diagram hanya pada class AddNewDataBindForm, karena pada prinsipnya proses kerjanya hampir sama.
270
~------------~
: JlntornalFramoRMIConnec!ion
r----------: AddNewDataBindFonn
~]
privzde v
Pengecekan
Merubah data RM!
Connection
II I I I I I
Gambar 4.91
Update RMI Connection Sequence Diagram
RMI Connection Manager memanggil method editRMIConnection() untuk persiapan perubahan data RMI Connection dan menampilkan class AddNewDataBindForm Tetapi sebelum ditampilkan, terlehih dahulu data RMI Connection di eek, sedang terhubung atau tidak. Apabila sedang terhubung maka perubahan
data
RMI
Connection
dibatalkan.
K.emudian
method
editRMIConnection mengirim pesan ke class AddNewDataBindForm dengan method editAction(Object data[]) untuk mengeset nilai pada masing-masing field yang
akan
diedit.
AddNewDataBindForm
Langkah dengan
selanjutnya
adalah
menggunakan
ditampilkannya
method
class
setVisible(boolean
visible) dan dilakukan perubahan data RMI Connection. Setelah selesai, class
271
AddNewDataBindForm memanggil method eek() untuk mengecek (valid atau tidak). Jika dinyatakan valid, langkah selanjutnya adalah memanggil method Simpan() yang akan mengirim pesan ke class SQL dengan rnenggunakan method uJldateDataToTable(String tabe!Name, Object kolom[], Object data[][], String keyField, Object key) untuk melakukan perubahan data RMI Connection di dalam database. Proses ini diakhiri dengan class AddNewDataBindForrn rnengirim pesan ke RMI Connection !vlanager untuk me-load kembali data RMI Connection, yaitu dengan menggunakan method npdateData (Object key).
3. Delete RMI Connection
[.sQLRMIConnection
: JlnternalFri1111eRMIConnection
c
koneksi RMI
.. •
J~-w--PLJblic boolean
I
deleteKey( Object !.:ey)
~···.
,·--U':\ ~ .. - - - - - - -· - - - - - - - - - - - - -· - - - - - ?; ~., loac!Data( )
·
!:If"''. "" -p.
~··
Gambar4.92 Delete RMI Connection Sequence Diagram
RAII Connection !vfanager memanggil method hapnsData() untuk
persiapan dan penghapusan data RMI Connection. Tetap1 sebelum data RMI
272
Connection dihapus, terlebih dahulu di eek, apakah koneksi sedang aktif atau tidak. Jika sedang aktif, maka proses penghapusan dibatalkan. Jika tidak aktif, akan ditampilkan sebuah peringatan yang memberitahukan bahwa RMI Connection akan dihapus. Jika "Yes", maka RMI Connection Manager mengirim pesan
ke
class
SQLRMIConnection
dengan
menggunakan
method
deleteData(Object key) untuk menghapus data RMI Connection di dalam database. Proses ini diakhiri dengan merefresh kembali TableRMIConnection dengan memanggil method loadData().
4. Connect
Gambar 4. 93 Connect Sequence Diagram
RMI Connection Manager memanggil method connectRMI() untuk
membuka koneksi pada port dm1 bind te11entu. Selanjutnya method tersebut
273
mengirim pesan ke class Connection dengan menggunakan method bind(String bindName, int port) untuk mencoba membuka bind dan port tertentu. Kemudian class Connection mengirim pesan ke class Regist1y untuk mencoba membuat register baru pada port te1ientu dengan method createRegistry(int port). Jika port tersebut tidak digunakan oleh aplikasi program yang lain, selanjutnya port ini akan di-bind dengan menggunakan method bind(String name, Remote obj) untuk membuka Remote Object yang bisa di-invoke oleh semua client. Proses ini diakhiri dengan pemberitahuan bahwa RMI Connection berhasil connect atau gaga! connect dengan bind dan port tertentu.
5. Disconnect
I 'i.<~ji•trv I ec1RM!i\ci:ion( )
privW:e v
I
I
'
I
.J4.- - - - ~ - - - - - - i)UbliC 500Tean ·un&:i'itf(Sfrif-'9 Iii ~name, inl port)
-----··1-1
............ .
y geiRegistrv( /nt port) pub1i
·········l·················----
1
I
I
I
I
I
Gambar4.94 Disconnect Sequence Diagram
RMI Connection Manager memanggil method discmmectRMI() untuk menutup koneksi pada port dan bind tertentu. Selanjutnya method tersebut
274
mengirim pesan ke class lnternalFrameClient dengan menggunakan method isCllientActivefoPortAnc!Bincl (String bind, int po11) untuk pengecekan, apakah ada client yang aktif sedang menggunakan bind clan port ini. Jika ada, maka disconnect dibatalkan. Apabila bind dan port ini tidak digunakan oleh client, langkah selanjutnya adalah Ri\11 Conneclion Jvlanager mengirim pesan ke class Connection dengan menggunakan method unbiml(String bind, int port) untuk mencoba menutup koneksi RMI. Kemudian class Connection mengirim pesan ke class Registry dengan menggunakan method getRegistry(int port) untuk mendapatkan register dan langkah selaujutnya adalah menggunakan method u11bi11d(String name) untuk membuang bind pada port tersebut. Proses ini diakhiri dengan pemberitahuan bahwa RMI Connection berhasil disconnect atau gaga! disconnect dengan bind pada port tersebut.
6. Connect All
Gambar4.95 Connecl All Sequence Diagram
275
KM! Connection Manager memanggil method connectAll() untuk membuka koneksi pada semua port dan bind yang tersedia. Selanjutnya method tersebut mengirim pesan ke class Connection dengan menggunakan method bim:l(String bindName, int port) untuk mencoba membuka semua bind dan port dengan menggunakan perulangan sebanyak Rl\111 Connection yang tersedia. Kemudian class Connection mengirim pesan ke class Registry untuk mencoba membuat register baru pada port tertentu dengan method createRegistry(int port). Jika port tersebut tidak digunakan oleh aplikasi program yang lain, selanjutnya port ini akan di-bind dengan menggunakan method biml(String name, Remote obj) untuk membuka Remote Object yang bisa di-invoke oleh semua client.
7. DiscmmectAll
C::tiJ~~~iii~~~i~mJ \,,;.1"'t!1!1il~Jg,f~~~,s;nl711~,1 [=.==··.f~.,!l=.P=.11;_c.l!~.e=~i=~=!'.I= \,.=.,~~rj·~~.'}!.,/
I II
j
· connect.A.I!( )
I
isOientA.ctivelnPortAndBind( String bi :1, int port)
pubHc tJ
I egistry getRegistry( 1t port )
I
::
II
pub
""11- - - - - - - - - - - - - - - - - - • - - - - - .. - - - - - - - - - • - - - - -
I I
Gambru· 4.96
Disconnect All Sequence Diagram
276
RMI Connection Manager memanggil method disco1mectAll() untuk menutup koneksi pada semua po1i dan bind yang tersedia. Selanjutnya method tersebut mengirim pesan ke class Interna!FrameClient dengan menggunakan method isClientActiveinPortAndBiud(String bind, int port) untuk melakukan pengecekan, apakah ada client yang sedang aktif menggunakan suatu bind dan port, pengecekan ini dilakukan dengan cara melakukan perulangan sebanyak RMI Connection yang tersedia. Jika ada salah satu client yang sedang aktif, maka disconnect salah satu bind dibatalkan. Apabila suatu bind dan port tidak digunakan oleh client, langkah selanjutnya RMI Connection Manager mengirim pesan ke class Connection dengan menggunakan method u111bind(String bind, int port) untuk mencoba menutup koneksi RMI. Kemudian class Connection mengirim pesan ke class Registry dengan menggunakan method getRegistry(int port) untuk mendapatkan register dan langkah selanjutnya adalah menggunakan method unbiml(St1ing name) untuk membuang bind pada port tersebut.
4.3.3.4.1.11. Sequence Diagmm pada Client Monitoring Di dalam perancangan Sequence Diagram ini dibagi menjadi dua buah sub komponen, yaitu antara lain : Select Client clan View Client Activi(v.
277
1. Select Client
: JI nte rl'!i!ll Fri!lfl'l eCl ie iJiMon it,9ri n,i] '
putilic
~electClient(
)
.::·~ ,J~..v·
Gambar4.97 Select Client Sequence Diagram
Client Monitoring memanggil method selectClient() untuk memilih salah
satu client pada tab client.
2. View Client Act!fity
Gambar4.98 View Client Actifity Sequence Diagram
Client Monitoring memanggil method viewClientAc1tivity() untuk melihat
aktifitas yang dilakukan oleh salah satu client.
278
4.3.3.4.1.12. Sequence Diagram pada Table !vlanager Di dalam perancangan Sequence Diagram ini dibagi menjadi enam buah sub komponen, yaitu antara Jain
Delete Table, Make Table Active, Make Table Non
Active, Backup Table, Restore Table dan Execute SQL Quny.
1. Delete Table
Di dalam proses Delete Table terdapat tiga jenis kondisi yang terjadi, yaitu: Delete Table pada Tree Active, Delete Table pada free Non Active dan
Delete Table pada Tree Backup. Pada ilustrasi sequence diagram berikut, hanya Delete Table pada Tree Active saja yang ditampilkan, karena pada dasarnya prosesnya hampir sama. I :
Jlnten1alFra1neTableManager 11 : ,QL I [treeModelActiveJ I
privatetjlWl;leteAction( )
«onfir1~r~J:!~hapusan 1abe1
I'"'!•, 11t~ i ,_ •
pub
n tu.nrr.c::ro,icr.!~lf1ovenr; e.l.()bi'.'.'t.~~b~e.~ oolean hapusTab!e( ob·eJt table) L 1 .l·)·,··"..!@i
~ !\ifL 11, .q
•~· I
I
i
I I I
I '
I I
L
Tree niodei yang
.
...
digunakan tergantung pada tree yang se'dang dipllll1-_dala_n1 Tabla -, Mana er
:" 1 I
..,,. .
'
ill!
1·1 '
'
Gambar4.99
Delete Table Sequence Diagram
Table Manager memanggil method deleteAction() untuk menghapus tabel yang telah dipilih. Kemudian tampil konfirmasi penghapusan tabel, jika "Yes" maka proses akan dilanjutkan. Selanjutnya, Delete Table pada Tree Active
279
di atas, method cleleteActio11() mengmm pesan ke class SQL dengan menggunakan method hapusTable(Object table) untuk mencoba menghapus tabel tersebut. Jika proses berhasil, method deleteAction() mengirim pesan ke class treeModelActive dengan menggunakan method removeTable(Object table) untuk menghilangkan tabel pada Tree Active.
2. Make Table Active : treeModelNonActive
Gambar 4.100 Make Table Active Sequence Diagram
Table lvfanager memanggil method toActiveAction() untuk mengaktifkan
tabel tidak aktif menjadi tabel aktif Kemudian method ini mengirim pesan ke class SQL dengan menggunakan method mbalnNamaTable(Object oldTable, Object newTable) untuk merubah nama tabel tidak aktif menjadi tabel aktif Jika proses perubahan nama tabel berhasil dilakukan, kemudian akan mengirim pesan ke class treeModelActive dengan menggunakan method addTable(Object table) untuk menambah tabel pada free Active. Proses diakhin dengan pengiriman
280
pesan
ke
class
treeModelNonActive
dengan
menggunakan
method
remove'fable(Object table) untuk menghilangkan tabel pada free Non Active.
3. Make Table Non Active
Gambar 4.101 Make Table Non Active Sequence Diagram
Table Nfanager memanggil method toNonActiveAction() untuk tidak
mengaktifkan tabel aktif menjadi tabel tidak aktif Kemudian method ini mengmm
pesan
ke
class
SQL
dengan
menggunakan
method
mbahNama'fable(Object oldTable, Object newTable) untuk merubah nama label aktif menjadi tabel tidak aktif. Jika proses perubahan nama tabel berhasil dilakukan, kemudian akan mengirim pesan ke class treeModelActive dengan menggunakan method removeTable(Object table) untnk menghilangkan tabel pada Tl·ee Active.
Proses diakhiri dengan pengiriman pesan ke class
treeModelNonActive dengan menggunakan method addTable(Object table) untuk menambah tabel pada Tree Non Active.
281
4. Backup Table
Gambar 4. 102
Backup Table Sequence Diagram
Table Manager memanggil method createBaclrupTable() untuk membuat cadangan suatu tabel. Kemudian method ini mengirim pesan ke class SQL dengan menggunakan method createBackupTable(Object table) untuk membuat suatu tabel cadangan di dalam database. Jika proses berhasil dilakukan, proses akan diakhiri
dengan
pengiriman
pesan
ke
class
treeMode!Backup
dengan
menggunakaan method addTable(Object table) untuk menambah tabel pada Tree
Backup.
282
5. Restore Table
Gambar 4. l 03 Restore Table Sequence Diagram
Table
Manager
memanggil
method
restoreAction()
untuk
mengembalikan kembali cadangan suatu tabel menjadi tabel yang aktif digunakan. Kemudian method ini mengirim pesan ke class SQL dengan menggunakan method restoreTable(Object table) untuk mengembalikan restore table menjadi active table di dalam database. Jika proses berhasil dilakukan,
proses akan diakhiri dengan pengiriman pesan ke class treeModelBackup dengan menggunakaan method removeTable(Object table) untuk menghilangkan tabel pada Ti·ee Backup.
283
6. Execute SQL Q1ie1y
Gambar 4.104 Execute SQL Q11e1y Sequence Diagram
Table Manager memanggil method executeQuery() untuk menjalankan kueri
database tertentu. Kemudian method ini mengirim pesan ke class SQL dengan menggunakan
method
getColumnl
query)
untuk
mendapatkan nama semua kolom hasil kueri yang dijalankan. Selanjutnya, method ini iuga
mengirim
pesan
ke
class
SQL
dengan
menggunakan
method
executeQuery(String query) untuk mendapatkan data hasil dari eksekusi kueri.
284
4.3.3.4.2. Sequence Diagram pada Aplikasi Client
Seperti pada hasil laporan analisi dan Use Case Diagram di atas, perancangan
Sequence Diagram ini dibagi rnenjadi ernpat, yaitu antara lain : Connection To Server lvfanager, Bertransaksi, Client Transaksi Manager, Data Barang Viewer. Pada rnasing-masing kornponen akan dibagi-bagi lagi sesuai dengan sub kornponen yang ada.
4.3.3.4.2.l.. Sequence Diagram pada Connection To Server M'anager
Pada perancangan Sequence Diagram ini dibagi menjadi lima buah sub komponen, yaitu antara lain : Add New Connection, Update Connection, Delete
Connection, Connect To Sen•er dan Disconnect From Serve1:
l. Add New Connection
I
~ RMIConneictionFrame privale vol
~~~nnectionActlon(
:):H~l-~~-~-d_d":i':i_d_f?d_i~_- _ )
1
I 1
., >;loo
bi1!i-.l:toict -s-etYicible( boolean visible_)
mernas<J\di;an (!ala
Koneks! ke server yfilng)JlMtJ
cek\lo!ict01si( )
Gambar 4. !05
Add New Connection Sequence Diagram
285
Class RMIConnectionFrame memanggil method adclConnectionAction() tmtuk menambah data koneksi ke server. Selanjutnya method ini menampilkan instance class JDialog berupa DialogAddAndEdit dengan rnenggunakan method setVisible(boolean true). Langkah selanjutnya adalah menginputkan data koneksi server barn. Setelah selesai, DialogAddAndEdit memanggil method Action() dan selanjutnya method Action() memanggil method cekValidasi() untuk mengecek data koneksi (valid atau tidak), jika dinyatakan valid maka data tersebut akan disimpan dengan menggunakan method simp:m().
2. Update Connection
~*
"\loid setVisibfe( boolean visible;_)
I
n1em£isukken data !{onertti ke server
cekValidasi( )
Gambar 4.106 Update Connection Sequence Diagram
286
Class RMIConnectionFrame memanggil method edHConnectionAction() untuk merubah data koneksi ke server. Selanjutnya method ini menampilkan instance class JDialog berupa DialogAddAndEdit dengan rnenggunakan method setVisible(boolean true). Langkah selanjutnya adalah perubahan data koneksi server. Setelah perubahan selesai, DialogAddAndEdit memanggil method Action() dan selanjutnya method Action() memanggil method cekValidasi() untuk mengecek data koneksi (valid atau tidak), jika dinyatakan valid maka data tersebut akan disimpan dengan menggunakan method simpan().
3. Delete Connection
privat
l\;1enampilkan konf
engliapusan data koneksi
private void s
Gambar 4.107 Delete Connection Sequence Diagram
Class RIVllConnectionFrame memanggil method removeAction() untuk menghapus data koneksi ke server. Selanjutnya ditampilkan konfirmasi bahwa
7.37
suatu koneksi ke server akan dihapus. Jika "Yes" maka RMIConnectionFrame data koneksi tersebut dihapus.
4. Connect To Server
privffle.,
p1.1bl1c String Registr
rTocc.nnecl()
i
4 .... *
II
lient( strl11g po1t, String bind, Strmg p ssword, string name)
,----
f""'"
String RegistryClient( Cl~nlO
cllnterfoce dioot, :'.'::'.~"'· Sh1bic.d, Sl
''
''
lw.--·~·---------·---- ~------------~ . ----I ~be.has it etau gag;t ciilel
I
I
""'''
I
I
Gambar 4. I 08 Connect To Server Sequence Diagram (client side)
Connection To Server 11.Ianager memanggil method goingToCmmect()
untuk melakukan koneksi ke server. Selanjutnya method ternebut mengirim pesan ke class ClientToServerGate dengan menggunakan RegistryClient(String po1i, String bind, String password, String name) untuk mencoba koneksi ke server. Kemudian method ini meneruskan pesan ke interface TokoOnlinelnterface dengan menggunakan method RegistryClient(ClientObjectlnterface client, String port, String bind, String password, String name). Proses koneksi ke server ini diakhiri dengan menampilkan pemberitahuan bahwa koneksi berhasil atau gaga!
288
dilakukan. Kemudian pada program server akan merespon permintaan (request) dari client seperti alur proses pada Sequence Diagram berikut : : lnternalframeClien~
: ServerTokoOnlinelmplementation
..
i'
, Siring po1t, Siring bind, String pass:vr101 d) Siring name )
puhlic String RegistryClient( CUenlObject!nlerT
I :SQLClient I
~Interface Unnamed, string pot1, Siring bin6, Siring password, String nam~) !------·public bool;on cekl~eber;~ll\_Odeft.11(1Pass_v:ord(_')·~~ kode, O~ect password ) t1i I ': .. ...... JiIihl
·
public 11old regisiryClient( a·
I
fi~~~-·
.. ,
.'"A
I
' Gambar4.109 Connect To Server Sequence Diagram (.1·erver side)
Class ServerTokoOnlinelmplementation merupakan implementasi dari interface TokoOnlinelnterface. Method RegistryClient(ClientObjectinterface client,String port, String bind,String password,String name) merupakan method yang dipanggil oleh Remote Object dari client apabila client tersebut mgm mendaftar ke server. InternalFrameClient
Kemudian method dengan
1111
menggunakan
mengmm pesan ke class method
registryClient(
ClientObjectlnterface client,String port, String bind.String password,String name) untuk mencoba mendaftarkan client tersebut. Selanjutnya method registryClient mengmm
pesan
ke
class
SQLClient
cekKeberadmmKodeAndPassword(Object
dengan
kode,Object
mengecek keberadaan client tersebut di dalam database.
menggunakan
password)
untuk
289
5. Disconnect From Server : TGtmpilanUtama ~
bah
~~onnecl
I.: ClientToServerGate I : T()koOnlinelntertice j : Connection I
akan dilakukan )
I
public void
public
I I I I
I 1
-;,rf Oisconnectc11ent( Strir\g nan1e)
:
public boolea
Disconnec1Client( String name,
boolean paksa)
~- -~~ -:_Ji~bnc_,fo1a ~,!!'d()
1
!
-%;1-----------------1
I
I
I
lI
Gambar 4.110 Disconnect From Server Sequence Diagram (c/ienf side)
Class TampilanUtama memberikan konfirmasi bahwa client akan tidak diaktifkan (disconnect). Jika "Yes", maka TampilanUtama memanggil method discom1ectedT0Server(). Selanjutnya method tersebut mengirim pesan ke class ClientToServerGate dengan boolean
paksa)
dan
menggunakan
kemudian
DisconnectClient(String name,
pesan tersebut
diternskan ke
interface
TokoOnlinelnterface dengan menggunakan method Disc:onnectClient(String name). Proses ini diakhiri dengan class TampilanUtama mengirim pesan ke class Connection dengan menggunakan method unbind() untuk menset data barang yang ada di client menjadi null. Kemudian pada program server akan merespon permintaan (request) dari client seperti alur proses pada Sequence Diagram berikut :
290
I : ServerTokoOnlinelmpiementation 11 : lnternalFrameClient
!
public String Disconnef \L12.P~i String name, boolean paksa) public
~tf't ciisconnectClient( String name,
f1 !],~l9 t¥i ~
Z'
paksa)
l f
\l) kJ I fu) ~ l lj)411,;,~--·-------%1 .tJtlt .p., l0~.i~8j+- 9 1"1)\
-·--------·-----
Gambar 4.111
Disconnect To Server Sequence Diagram (serFer side)
Method Discom1ectClient(String name, boolean paksa) merupakan suatu method yang dipanggil oleh Remote
O~ject
(client) untuk melakukan disconnect
oleh suatu client te1ientu. Selanjutnya method ini mengirim pesan ke class IntemalFrameClient dengan menggunakan method ciisconnectClient(String name, boolean paksa) untuk meminta Client Manager men-disconnect-kan client tersebut.
4.3.3.4.2.2. Sequence Diagmm pada Bertnmsaksi
Pada perancangan Sequence Diagram ini dibagi menj adi enam buah sub komponen, yaitu antara lain : Insert Data fransaksi, Update Data Transaksi, Delete
Data 1iunsaksi, Restart Transaksi, Finishing Transaksi dan Send Data Transaksi. Pada komponen Insert Data Transaksi dan Update Data Transaksi mempunyai alur proses yang sama, yaitu dengan earn memasukkan data ke label 1ransaksi. Komponen
Insert Data Transaksi dan Update Data Transaksi tidak akan dibuatkan sequence diagram, karena proses ini tidak melibatkan method apapun pada class Bertransaksi.
291
1. Delete Data Tm1saksi
: JlnternalFrameBertransaksi
: TabelModelBE1rtransak11i
I
Konfinnasi 1Jat1\>V
Gambar 4.1 J 2 Delete Data 11w1saksi Sequence Diagram
Class JlnternalFrameBertransaksi memanggil method deleteAction() untuk melakukan penghapusan data transaksi, tetapi sebelum penghapusan dilakukan terlebih dahulu menampilkan konfirmasi bahwa penghapusan akan dilakukan. Jika "Yes", maim class Bertransaksi mengirim pesan ke class TabelModelBertransaksi dengan menggunakan method removeRow(int row).
292
2. Restart Tmnsaksi
: JlnternalFram.el::l.ertrarnu.tksi
private void p
~anUrntTransaksi( )
l~* .......
Gambar 4. 113 Restart Transaksi Sequence Diagram
Class JlnternalFrameBe1iransaksi memanggil method restartTrs() untuk melakukan pengembalian transaksi ke bentuk sebelum transaksi dilakukan. Selanjutnya method tersebut memanggil method pengaturanUmtTra11saksi() untuk memanajemen urutan transaksi, apakah urutan ditambah atau tidak ditambah.
293
3. Finishing Tnmsaksi
Gambar 4. 114 Finishing Transaksi Sequence Diagram
Class JlnternalFrameBertransaksi memanggil method selesai() untuk menyelesaikan suatu transaksi. Selanjutnya method tersebut mengirim pesan ke class SelesaiTrs dengan menggunakan method setVisible(boolean visible) untuk menampilkan form isian pembayaran.
294
4. Send Data Transaksi
:__ S/!l~~ili"f_r~. -1 privfil
Cli<>ntJ".oS.,_ rver(;l_•t1>
1- : T<>k<>0411•lntemce I
I
I I I
I
I
I
{ekStokBarang( )
~ pub
[ect[2] getl<eteranganSok( Ob;ecd cteita{2J )
pL1bll
.~:--------------~&in kirimDat~ffransalcsi( Obje1it _!ata[_2l )
i
I
pu1:c:[~~ ~:,::~:•~g:~:~''. ~:l:~t" •to[2])
I
·111c~::_:_::===="--'---i,
I J Object kli'trnDataTransaks1( Object ci a\2}) .
-1.------ ---- -- --- ----f·- ------- ----- -- -- --"i :
pt.1!
!
I .I
~ispose( )
i
I I.
Gambar 4. I 15
Send Data Tlunsaksi Sequence Diagram (client side)
Class SelesaiTrs memanggil method sendAction() untuk melakukan pengiriman data transaksi ke server. Selanjutnya method tersebut memanggil method cekStokEarang() untuk mengecek keberadaan stoic barang di server, yaitu dengan cara mengirim pesan ke class ClientToServerGate dengan menggunakan method getKeteranganStok(Object data[][]). Pengecekan ini bertujuan untuk memastilcan bahwa stoic barang di server masc.h mencukupi untuk dilcurangi dengan data transaksi. Jika stok masih mencukupi, langkah selanjutnya adalah class SelesaiTrs mengirim pesan ke class ClientToServerGate dengan menggunakan method kirimDataTransaksi(Object data(][])_ Proses ini diakhiri dengan
pemanggilan
method
dispose()
untuk
menyembunyikan
form
295
pembayaran. Kemudian pada program server akan merespon permintaan (request) dari client seperti alur proses pada Sequence Diagram berikut :
@erverTokoOnlin-;l;:;;j;t;;;@ntatlon
f
:
JlntemalFrames:tokE!immgManager
f
'
Gambar 4.116
Send Data Transaksi Sequence Diagram (se1Ter side J)
Method getKeternnganStok(Object data[][]) merupakan method yang digunakan untuk mendapatkai1 infonnasi keberadaan persediaan stok suatu barai1g. Apabila stok semua barang yang akan dikirimkai1 kc' server tersedia, maka proses Sequence Diagram berikut akai1 dijalai1kan, yaitu :
j : ServorTokoOnlinelmplementatlon j : Jln!ornalF;:;;;;;;St~kB-;;;:;;;;9i;;:;;Jer [: SQLTransakr.iManagerTahunan public boolean
I
k1rim'3+aix~nsa!(S!{ObjectdataTrsl2J)
~ f:t"'*".public boolean kirimanClient(Objec! dala[2l)
U:
1t·,Q· ··· 0 "~ '
P,~J"lj-
~~;;.
•
_
.L
I11
···--·pub1ic-boo1ean- in$~;1oajaT0Table( on1ec1 aa1a121) - .
!
t I
1
-1-~
. --~1
I
J
Gambar 4.117
Send Data Transaksi Sequence Diagram (server side 2)
I
296
Method kirimDataTransaksi(Object[][]data) merupakan method yang digunakan untuk mengirim data hasil transaksi dari client ke server, selanjutnya method ini mengirim pesan ke class IlnternalFrameStokBarangManager dengan menggunakan method kirimanClient(Object[][] data) untuk mengurangi stok barang
yang
barn
terjual.
Kemudian
method
l
(Object[][]data) juga mengirim pesan ke class SQLTransaksiTahunan dengan menggunakan method insertDataToTable(Object[][] data) untuk menyimpan data transaksi ke dalam database.
4.3.3.4.2.3. Sequence Diagram pacla Client TNmsaksi Manager Pada perancangan Sequence Diagram ini dibagi menjadi enam buah sub komponen, yaitu antara lain : Update Data Transaksi, Delete Data 1/·ansaksi,
Navigator Action, Searching T1unsaksi, Select Bulan clan Select Tahun.
1. Update Data Trnnsaksi
: lnternalFrameTr1m11aksiManagerClient 11 : EditTabelTransaksii priv,,. .,-..._,
• public void s
lie vo1
abe!Trs( JTable tabel, String urut, Stnng
String tahun J
Gambar 4. 118
Update Data Transaksi Sequence Diagram (client side J)
297
Client 1/-ansaksi !Ylanager memanggil method editTrs() untuk melakukan
pengeditan data transaksi. Selanjutnya method tersebut mengirim pesan ke class EditTabelTransaksi dengan menggunakan method setWaktu(Object waktu[]) untuk mengeset waktu dari data transaksi yang pemah dilakukan. Kemudian Client Transaksi Manager mengirim pesan ke class EditTabelTransaksi dengan
menggunakan method setTabe!Transaksi(JTable tabel, String urut, String bulan, String tahun) untuk mengeset tabel transaksi, nomer urut transaksi, bulan transaksi dan tahun transaksi. Dan selanjutnya proses pengeditan bisa dilakukan, karena tabel transaksi menjadi bisa diedit (editable) yang tadinya tidak bisa diedit (disabled). Selanjutnya, setelah data selesai diupdate, data transaksi tersebut
dikirimkan ke server, proses pengmman data ke server dapat dilihat sepe1ii Sequence Diagram berikut ini :
I : EditTabelTransaksi II : ClientToServerGate I [:c11entTransaksiMnnagerlnterfaceJI :TokoOnllnelntor!ice pubJiG
b~p!~ilfl
;1;.' :..
public
)
!
1
.-;L_~_?.~~'.~~a~~~~o~s-~l?ct cta1a[2J) , · i£l G lt r-·-----------
t£
~ J
-~ f~ i;.
public boolean update DataTr
!'
save.A.ct!on( )
-~eradaanStokBarang{
prrvate booleaifl
e: l
~
I
rt~1-
public ObJetl!2! geU<eterbnganSol(( Object (!-ata[2J)
---·----~~-·-·----1----~·-··---------
"-·------
- ·- -- --!- - -- - ·---
~l~~~je~l ~~1-a!;J,-Stri~g ~~!~t. Slringtahun, Object dataSlokj2])
\
I~1
L: 'rl-'41·
.. A
I
""i
Gambar 4.119 Update Data Transaksi Sequence Diagram (client side 2)
1*1
··------ .. Jjw
~ ~~\;~id·~·~·d;t~D·;;t;;:;~~~·~1\~~(f'._~I kod~~?~~~.~~!~.L~.k~~!:1_!L~.'.:~~~ 8hing tahun, OIJje ct datastok12l ) ~:
I
-~N
I
298
Method saveAction() digunakan untuk menyimpan data transaksi hasil dari update ke database server. Tetapi sebelum data tersebut dikirimkan ke server, dilakukan pengecekan ketersediaan stok barang di dalam database server dengan menggunakan method cekKeberndaanStokBarnng(), dan selanjutnya method cekKeberndaanStokBanmg() mengirim pesan ke class ClientToServerGate dengan
menggunakan
method
getKeternnganStok(Object[][]
data)
dan
diteruskan ke interface TokoOnlinelnterface, jika stok masih cukup, maka method saveAction() merubah data transaksi dengan cara mengir imkan pesan ke class ClientToServerGate
dengan
menggunakan
method
updateDataTrnnsaksi
(Object[][]data, String bulan, String Tim, Object[][] dataStok) dan kemudian pesan tersebut dilanjutkan ke interface ClientTransaksiManagerinterface. Setelah proses pada program client berlangsung, server merespon permintaan (request) dari client untuk update data transalsi, untuk alur Sequence Diagram pengecekan terhadap ketersediaan stok barang, mempunyai alur diagram yang sama seperti pada ilustrasi Send Data Tiunsaksi To Sen>er (sen1er side 1) di atas, sedangkan untuk update data transaksi pada program server mempunyai alur proses Sequence Diagmm sebagai berikut :
299
:Jlnte_ma!FrameStokBarangManager ~saks_iManagerTahunan
I :SQLTrnnsaksiManagerTahunanC!ient) i t
Gambar 4.120
Update Data Transaksi Sequence Diagram (sen·er side)
Method updateDataTransaksi (Object[](]data, String bulan, String Thn, Object[][] dataStok) merupakan method yang dipanggil oleh Remote Object (client) untuk merubah suatu data transaksi. Kemudian method ini mengirim pesan ke class JlntemalFrameStokBarangManager dengan menggunakan method kirimanClientEditTrs(Object(][]dataStok) untuk barang.
Selanjutnya,
dikirimkan
SQLTransaksiManagerTahunanClient
dengan
merubah persediaan stok ke
class
menggunakan
method
pesan
hapus:OataTransaksi (St1ing tabel, String urut, String client) untuk menghapus data transaksi yang lama. Proses ini diakhiri dengan pengiriman pesan ke class SQLTransaksiManagerTahunan
dengan
inenggunaka11
method
insertDataToTable (String tabel, Object[][]data) untuk memasukkan data transaksi yang barn.
300
2. Delete Data Trausaksi
private
public bool
teAc1ion( )
~~ n hapusTransaksi( String urut, String bu!an, Iring tahun)
public boolean hapusT isaksi( S1ring kode, Slnng urut, Iring bu Ian, Stnng tahun)
:
'' ''
f
''
~------------
..l,;j----------------------------
(1,!'"hasil I gaga I dilakukan
..... Gambar4.121
Delete Data Transaksi Sequence Diagram (client side)
Client Transaksi J\1anager memanggil method deleteAction() untuk melakukan penghapusan data transaksi. Selanjutnya method tersebut mengmm pesan
ke
class
ClientToServerGate
dengan
menggunakan
method
hapnsTrnnsaksi(String urut, String bulan, String tahun) dan pesan tersebut diteruskan ke interface dengan menggunakan method h:apusTrnnsaksi(String kode, String urut, String bulan, String tahun). Proses ini diakhiri dengan menampilkan pemberitahuan bahwa penghapusan berhasil atau gaga! dilakukan. Kemudian
pada
program
server
akan
merespon
permintaan
(request)
penghapusan data transaksi dari client seperti alur proses pada Sequence Diagram berikut :
301
[@11entTrans~~siM~-~_§.:_~1mp1ementatio1~ Pl!bl1t b.oolean hapusTrnns
1
[:
SQLT~~nsak~i-~~~~!~!.~~~:1~-~~,~~Jr:··::il"nt~-1Tiai·F~m;stOkBaro:~gM;n~g-~;:-j
k(l(le, Slri11g urnt, 81nng btn. 8l1in~ thrl) 1[7j
I
i
ge!Dat~Trnnsaksi{Shing label, String die rd, Stn~g urut)
----- --- --------- ---------·-·--- -----·--··-----~ ... . - - -- -- . ----, ~
flt ~
4
puhtic baale;m k1rirnariClienl( Objerl dala[?]) - - ·- ~---~-- --: ~~-~,.~-~-. :
~--.:--:--~--:-:-----------:----~r~-~-----------
------------
l ---»·A
publln~y~~~~1-~p-~-~~~'.~~~~-~~~.1£~~~-~-'~?~~_!t:I!:_~ ~ri._i!~~'$.-? cllen!)
ll~~-:0~
.·
-- - -___;\t
Gambar 4.122 Delete Data Transaksi Sequence Diagram (server side)
Method llapusTrnnsaksi(String kode,String urut,String bulan,String tahun) merupakan suatu method yang dipanggil oleh Remote Object untuk menghapus suatu data transaksi. Kemudian method ini mengirim pesan ke class SQLTransaksiManagerTahunanClient
dengan
menggunakan
method
getDataTrnnsaksi(String tabel,String client,String urut) untuk mendapatkan banyaknya data yang akan dihapus, selanjutnya jumlah da1a transaksi yang akan dihapus tersebut dikirimkan ke class JinternalFrameStokManager dengan menggunakan method khimanClient(Object[][]dataStok) untuk menambahkan persediaan stok dengan jumlah data barang yang akan dihapus. Proses ini diakhiri dengan pengiriman pesan ke class SQLTransaksiManagerTahunanClient dengan menggunakan
method
llapusDataTrnnsaksi(String tabel,String urut,String
client) untuk melakukan penghapusan data transaksi.
302
3. Navigator Action
private
~gatorAction( )
'-~
..lolJl1w w
private void tree
~reeSeleciionEvent e~11
)
'-~......,. Gambar 4.123 Navigator Action Sequence Diagram
Client Tlunsaksi Manager memanggil method navigatorAction() untuk
melakukan aksi next atau back. Perbedaan yang te1jadi adalah jika next variabel mulai
dilakukan
penambahan
dengan
banyalmya transalrni
yang
mgm
ditampilkan. Sedangkan pada back, variabel mulai dilakukan pengurangan dengan banyaknya transaksi yang ingin ditampilkan. Method ini kemudian memanggil method treeAction(TreeSelectionEvent evt) untuk melakukan perubahan data transaksi ke data transaksi selanjutnya atau data transaksi sebelumnya.
303
4. Se11rchilig 1'r<msaksi : lntl!rnalframe TransallsiManagl!rClienLl private
r·cfling.i\ction( )
private
vigatorAction( )
•
private void tr
Gambar 4. 124 Searching Transaksi Sequence Diagram
Client 1t·ansaksi lvfanager memanggil method searchingAction() untuk
melakukan pencarian data transaksi. Selanjutnya proses dilanjutkan dengan pemanggilan method navigatorAction() yang digunakan untuk manajemen nextback
action
Kemudian
method
searcbingAction()
memanggil
method
treeAction(TreeSelectionEvent evt) untuk melakukan perubahan data transaksi ke data transaksi hasil pencarian tadi.
304
5. Select Bulan mul Select Talum
: lnternalFrameTnimintksiManagerClient pnvate voi
private void TreeTransaksiMar
aiueChanged( TreeSeieciionEvent evt)
Gambar 4.125 Select Bulan and Select Ta/11111 Sequence Diagram
Client Transaksi lvfanager memanggil method gantiBulanDanTahun()
untuk melakukan pergantian bulan dan pergantian tahun data transaksi. Selanjutnya
proses
dilanjutkan
dengan
pernanggilan
TreeTransaksiManagerValneChanged(TreeSelectionEvent
evt)
method untuk
menampilkan data transaksi hasil pergantian tersebut.
4.3.3.4.2.4. Sequence Diagram pada Data Barang Viewer Pada perancangan Sequence Diagram ini hanya terdiri dari satu komponen saja, yaitu Searching Data Barang. Karena pada manajer ini berfungsi hanya sebagai melihat (view) data barang saja.
305
Qt11rr1a1.fra111~e;;;;;;-L! pub Iii" oc-«·~
public 01Jjec![2] g
aBarang( Object tie!d, Object like, Objed asc, Object kondisi)
pu~)lic Object[2J
get
taBarang( Object ·field, Object like,
Ob~dt acs, Object !
~--------------------~
I I I
I Gambar 4. 126
Searching Dala Barang Sequence Diagram (client side)
Data Barang Viewer memanggil method loadDarm() untuk melakukan pencanan data barang dengan keyword tertentu. Selanjutnya method tersebut mengmm pesan ke class ClientToServerGate dengan menggunakan method getDataBanmg(Object field, Object like, Object asc, Object kondisi) untuk mendapat data banmg yang sesuai dengan field, keyword dan kondisi yang diinginkan.
Selanjutnya
pesan
tersebut
di
lanjutkan
ke
interface
TokoOnlineinterface dengan menggunakan method getDataBarnng(Object field, Object like, Object asc, Object kondisi). Kemudian pada program server akan merespon permintaan (request) dari client seperti alur proses pada Sequence
Diagram berikut :
306
I : SQLDataBarnngManagerl
: ServerTokoOnlinelmplementation !
public Objec![2]
ge!Data~~ra[l!J( Object field, Object like, Object asc, Obje~t f:ondisi) !I"~"
10
i
public Ob1ect[2] getD~l'!f~Jl1Ta~e_l'o_r_~lien~_(l_bjectfield'-ObJ.~_t like ~~jBct asc, Object kondisi) Pl~ ! ' t@f
.~ ll~- ---
·-
w)ft~-~ Gk-4%.ihi<
>-
-
••
-
-
"
••
-·
-
,,
-
-
-
••
-
-
-
--
-
~
-
-
-
-
~~) '
11
I
Gambar 4.127
Select Bulan and Select Tahun Sequence Diagram (sen·er side)
Method
getDataBarang(Object
field,Object
like,Object
asc,Object
kondisi) merupakan method yang dipanggil oleh Remote Object yang digunakan untuk mendapatkan data barang yang sesuai dengan kondisi yang diinginkan. Selanjutnya, method tersebut mengirim pesan ke class SQLDataBarang dengan menggunakan method getDataFromTableForClient(Object field, Object like, Object asc, Object kondisi) untuk mendapatkan data barang dari database.
4.3.3.4.3. Sequence Diagram pada fungsi lainnya
Sequence Diagram ini dibagi menjadi dua, yaitu antara lain : Another Nlanager Functions dan General Application /',unctions. Pada n1asing-1nasing
komponen akan dibagi-bagi lagi sesuai dengan sub komponen yang ada.
307
4.3.3.4.3.l. Sequence Diagram padaAnother Manager Functions
Pada perancangan Sequence Diagram ini dibagi menjadi empat buah sub komponen, yaitu antara lain : Table Setting, Print Preview, Print dan Save.
1. Table Setting
Pada komponen ini terdapat beberapa sequence diagram yaitu antara lain : a. Select Font Type and Font Size
: TableSetting
: JTable
t11blic void setFont( Font font
~
I
~ 1~..!
·'
Gambar 4.128 Select Font Type and Font Size Sequence Diagram
IB-
b. Show Horizontal Line
: TableSetting public void
: JTable
etShowHorizontalLines( b.o lean show)
.
~
Gambar 4.129 Show Horizontal Line Sequence Diagram
c. Show Vertical Line
Gambar 4.130
:TableS~ttinr,J public vol
set8ho\'Nertica1Lines( bOJ.ll
Show Vertical Line Sequence Diagram
d. Set Row Height
: TableSetting p
: JTable
ic void setRowHeight( int_r w)
Gambar 4.13 J Set Row Height Sequence Diagram
308
e. Set Jntercell Spacing Gambar 4.132
: JT1.bl11 public void
lntercellSpacing( Dirnensio dirnension)
Set Intercell Spacing Sequence Diagram
2. Print Preview
Pada komponen ini terdapat beberapa sequence diagram yaitu antara lain : a. Zoom Action (Zoom Jn 1 Zoom Out) Sequence Diagram
rn( boolean in)
private vc
set nilai x dan y serta zoom
Gambar4.l33 Zoom Sequence Diagram
public void repaint( )
b. Print Ac/ion Sequence Diagram
: PrintPreview
r
: Pl!lnelPreview
public void printTable( ~,
publi.1oid printGrapl1ics( Gra 11 cs g)
I
Gambar4.134 Prim Action Sequence Diagram
309
c. Change PaperSize Sequence Diagram
private voi
Gambar4.135
l1Ukuranl<ertas( )
Change Paper Size Sequence Diagram
d
Change Orientation Sequence Diagram Gambar 4.136 public vc · setOrlentasi( OrientationRequest
~F-~' _,... .
Change Orientation Sequence Diagram
e. Change Margin Sequence Diagram Gambar4.137
Change lvfargin Sequence Diagram
f
Page Sequence Diagram : PrintPreview privat
: PanelPreview.
Gambar 4.138
oid pageAction( )
ni!ai ternpat halaman beraba
pu [repaint( )
"
Page Sequence Diagram
310
g. Color Support Sequence Diagram
Gambru· 4. 13 9 privat Menge
qJ.Qs,_olorAction( ) l!;i, bahvva color
support~tau tidak
Color Support Sequence Diagram
public void repaint( )
3. Print
Pada komponen ini terdapat satu sequence diagram, yaitu adalah Print yang mempunyai alur proses yang hampir sama dengan Print Action pada Print Preview.
setPeig.;( int pagefrom
public voict prlntTable(
iJ pageTo)
-1 1
•oid printGraphics( Gra h :os g )
Gambar 4.140 Print Sequence Diagram
311
4. Save
l
1
:.
SaveAsAdion I
I Gambar 4.14! ngan narna sarna
i
suda~1
ac!a
°"
._)~ave
Sequence J)iagra111
priv
4.3.3.41.3.2. Sequence Diagram pacla General Application Functions
Pada perancangan Sequence Diagram ini dibagi menjadi enam buah sub komponen, yaitu antara lain
Kalendet; Database lnfonnation, System Property,
Look & Feel, About dan Help. Namun yang akan dibuatkan sequence diagram adalah Look & Feel saja, karena proses komponen yang lain dilakukan hanya dengan proses pemanggilan method setVisible(boolean visible). Look & Feel Sequence Diagram adalah sebagai berikut :
Gambar 4.142 public void rubahlool
..i..i.-" I
Look & Feel Sequence Diagram
312
4.4. Implementasi Sistem Setelah melakukan analisis sistem dan perancangan sistem secara rinci. Tiba saatnya, sistem untuk diimplementasikan (pembuatan coding program). Tahap implementasi sistem merupakan tahap meletakkan sistem supaya siap untuk dioperasikan. Tentunya, pada skripsi
ini tidak
semua coding akan
dibahas pada
implementasi sistem aplikasi, hanya coding-coding tertentu saja yang dianggap penting yang akan diimplementasikan. Secara rinci, implementasi sistem mesin kasir terdistribusi adalah sebagai berikut : I. Implementasi sistem pada Database Connection (JDBC). 2. Implementasi sistem pada Remote Method Invocation (RMII. 3. lmplementasi sistem Main Program clan Tampilan Utama. 4. Implementasi sistem pada Manager. 5. Implementasi sistem Table lvlode/ clan Table Column Model. 6. Implementasi sistem 1/·ee Model. 7. Implementasi sistem Gaphics (Chart). 8. Implementasi sistem print preview, table setting clan save.
4.4.1. lmplementasi Sistem Database Connection (JDBC) JDBC merupakan standar API yang menyediakan data tmiversal untuk bahasa pemrograman Java. JDBC API terdiri atas sejurnlah class clan interface yang ditulis dalam bahasa Java yang menyediakan API standar sebagai alat bantu bagi pembuat
313
program (developer) dan memberi kemungkinan untuk menulis aplikasi database dengan menggunakan semua Java APL JDBC terdiri dari dua buah package, yaitu
package java.sql dan package
javax.sql. Package java.sql menyediakan API untuk menga.kses dan memproses kumpulan basis data di dalam aplikasi manajemen database dengan menggunakan bahasa pemrograman Java. Sedangkan package javax.sql menyediakan API untuk mengakses dan memproses database pada bagian server (server side). Pada aplikasi sistem mesin kasir terdistribusi berbasis client-server, JDBC merupakan class dan interface yang menghubungkan aplikasi ini dengan aplikasi penyedia layanan manajemen basis data. Pada aplikasi sistem mesin kasir ini, class yang penulis buat untuk berinterkasi dengan basis data adalah class SQL dan semua class turunannya yang terdapat pada package database (package ini terdapat hanya pada aplikasi server). Semua method yang terdapat pada class SQL dan turunannya, menggunakan tiga buah modifier, yaitu : public, static dan synchronized. Pada modifier public dimaksudkan bahwa method ini bisa di akses oleh class lainnya tanpa kecuali. Modifier static dimaksudkan bahwa method ini dapat dia.kses langsung tanpa membuat instance class terlebih dahulu.
Sedangkan modifier synchronized
dimaksudkan bahwa method ini dapat digunakan untuk pemro graman multitreading, yaitu mencegah pemanggilan suatu method oleh banyak objek secara bersama-sama dalam satu waktu. Di dalam pembahasan mengenai koneksi aplikasi ini dengan aplikasi manajemen basis data dikelompokkan menjadi empat sub pembahasan, yaitu :
314
4.4.1.l. Mencocokkan Driver JDBC Hal yang pertama kali dilakukan untuk bisa mengakses database adalah mencocokkan driver JDBC dengan aplikasi database yang tersedia. Method yang digunakan untuk mencocokkan driver adalah cekDriver(), coding dari method
cekDl'iver() adalah sebagai berikut : uuhlic static St-ring dt:i~ter:"'""; 1rublic static synchronized boolean cekDrive1: () {
try{ Class. torlfame (driver; ;ret-m-..'n true;} catch ( ClassNotFom1dEx:ception e) {} return false;
Pada coding di at as, method cekDriver() menco ba untuk mencoco kkan driver dengan menggunakan method Class.forName(String driver), jika berhasil akan dikembalikan nilai true, jika gaga! akan dikembalikan nilai false.
4.4.I.2. Koneksi ke Database Setelah
driver
berhasil
dicocokkan,
langkah
selanjutnya
adalah
menghubungkan aplikasi sistem mesin kasir terdistribusi dengan mana1emen database, yaitu dengan menggunakan method connect(), coding dari method ini adalah sebagai berikut : iu:otected. stat"ic Connect.ion con=null; public static Sti:ing uset:ni'!llle="" ,pass="'" ,ur:l:o' "; _puhlic static syncJtronized boolean connect () { if(driver.equals("") I I 1cekDriver())ret.m:n false; t~-y{
if ( con''"''null ! I con. isClosed () ) con=Dr:ivei:I1enager:. gretConnectj.on (u:i::l ,user:na.me ,pass) ;
retu.rn true; }catcil(SQLException e) {
JOptionPane. showM:essayeDi.al.og (null,
return false;
315
Pada coding di atas, method connect() mencoba untuk koneksi ke database dengan menggunakan method DriverManager.getConnection(String url, String user, String password), jika berhasil akan dikembalikan nilai tme, jika gaga! akan dikembalikan nilai false.
4.4.1.3. Discmmect dari Database Untuk memutus hubungan dengan database, method yang digunakan adalah method closeCormection(), coding dari method ini adalah sebagai berikut : puhlic static synchronJ.zed. hoolea.n closeConn.ecti.on () {
try( if ( 1 con. isClosed ())con.close (); ret:w.·n true ; }c.a.t.ch($QLE:.:ception e) {retm'n false;}
Method closeConnection() mencoba untuk disconnect dari database dengan menggunakan method close() dari interface java.sql.Connection, jika berhasil akan dikembalikan nilai true, jika gaga! akan dikembalikan nilai false.
4.4. l.4. Mauipulasi Database Pada sub pembahasan manipulasi database, dibagi lagi menjadi lima buah sub pembahasan, yaitu :
1. Membuat Tabel
Untuk membuat suatu tabel, aplikasi sistem mesin kasir terdistribusi bisa memanggil method yang digunakan untuk membuat tabel. Misalnya jika ingin
316
membuat
tabel
databarang,
maka
method
yang
akan
digunakan
adalah
buatTabelDataBamng(), coding dari method ini adalah sebagai berikut : public static synchronized booleilll buatTalleIDataBaran_g() { try{
Statement smt=con.createStatement(); smt.executeUpdate("ci:•;;-at-<;;; :.c0::ile d.::.tabr::n::ar.n;;( ••• , .. smt.c1ose (); return. true; }catch ($QI.Exception e) {J.·etlu:n fq1se;}
:i " ) ;
Hal yang pe11ama kali dilakukan adalah membuat statemen dengan memanggil Kemudian
method method
createStatement()
dari
interface
java.sql.Connection.
buatTabelDataBarang() mencoba untuk membuat tabel
databarang dengan menggunakan method executeUpdate(String sq!) dari interface java.sql. Statement, jika berhasil akan dikembalikan nilai 1trne, jika gaga! akan dikembalikan nilai false.
2. Memasukkan Data Untuk memasukkan data pada suatu tabel, aplikasi sistem mesin kasir terdistribusi memanggil method insertDataToTable (String Table, Object[]Fields, Object[]data), coding dari method ini adalah sebagai berikut :
317
l,HlhJ.l.c stat:a.c synclu-:onizeci .0001.ean insertDataToTab1e (String Table, Ollj ect[ J Fields / Object[] data) { if (Fields. length! =data. length) return false; Str:ini;;r tanda=" ··~field="' ; for (int i=O;i
try{ P:t:epared:Statement pre,,,con.prepareState.mcnt ( · jJ,;>:r 1__ i. n to ''+Table+" { '+field+'·!·"·valu:.:;z-: ("+tanda+") "); for i:int i=O; i
+
p:r:e.execute \); pre.close ( l;
return true; )catch(Exception e){Eeturn false;}
Method ini mencoba untuk memasukkan data dengan menggunakan method prepareStatement(String sql) dari interface java.sql.Connec:tion, dan selanjutnya mengeset data dengan method setObject(int parameterindex, Object x) dari interface java.sql.PreparedStatement. Jika berhasil akan dikembalikan nilai trne, jika gaga! akan dikembalikan nilai false.
3. Mengambil Data Untuk mengambil (select) data dari suatu tabel, aplikasi sistem mesin kasir terdistribusi bisa memanggil method getDataFromTable(String Table, String[] field), coding dari method ini adalah sebagai berikut :
318
i1uhlic stntic syn.clu·onized ObJect[][J getDataPrfili'il'able(5tr:ing Table,Sn:ina[Jfield) { if (field,..,nuJ.l! I field. length,,,,Cl)retura mill; String Field,,field[')]; Object[] [ ]data"m!.11;
tor(int j"l;j
Statement Stl.t"COn.createStatement (ReaultSet. TYPE_SCRO!,L_SENSITIVE,Resul tSet. COHCUR_ru:AD _OML Yl ; Result.Set rso:.!mt.eXEcuteOuei::y("s.oJec;: -'+Yield+·' roJn "+Table); Resul tSetlletuData r:sru.d,,i:s .qetlfeti!Data () ; i.nt kolOll"tsmd.uetColumnCuunt (): i:s, last() :
da:t-a,.new Object[ba:r::i:::J[kolom+l];
r:::i.heforeFirst (); while (ts.next ()){for (:int j"'l;)<'=kololll;j-H·) ( duta[l] [j].,.St::L'!g. valueOf(i::oi.getOhject (j)) ;it (i:s,qetOhjcct (J) """null) data[1J [J ]" ' ; )dut.a{l] [DJ~:t+l_;:i_+r;
ts.close(); smt. clo-se (): )cat.ch(SOLException e) ()
Di dalam method ini, ha! yang pertama kali dilakukan adalah membuat statemen dengan memanggil method createStatement(int resultSetType, int resultSetConcurrency) dari interface java.sql.Connection, kemudian mencoba untuk mengambil data dengan menggunakan method executeQuery(String sq!) dari interface java.sql.Statement. Selanjutnya memanggil method getMetaData() dari interface java.sql.ResultSet untuk mendapatkan metadata dari basil data yang diperoleh. Kemudian untuk mendapatkan jumlah kolom memanggil method getCohrnmCount() dari java.sql.ResultSetMetaData dan untuk mendapatkan jumlah baris memanggil method getRow() dari interface java.sql.ResultSet. Untuk mengambil
data basil
eksekusi
SQL,
menggunakan
method
getObject(int
columnindex) dari interface java.sql.ResultSet. Jika berhasil akan dikembalikan nilai clata[jumlahRow][jumlahColumn], jika gaga] akan dikembalikan nilai data=null.
319
4. Membah Data Untuk merubah (update) data dari suatu tabel, aplikasi sistem mesm kasir terdistribusi bisa memanggil method updateDataToTable (String Table, Object[] Fields, Object[] data, Object filedKey, Object key), coding dari method ini adalah sebagai berikut : public static synclu:onized :hoolea.n up{UtteDataToTable (Ztr:ing Ta.ble,Object[ ]Fields,. Object[ ]data, Object filedl{ey ,Object key) { ii (Fields. length! =data. length.j :retttt'rt. false; Sti:ing tanda,,,,"" ,field=:'" 0
;
tanda=Fields[O]+'',,, '!";
tor(int i=l;i
Pi:epar:edStatem.ent pre=con.prepai.·eStatement (''updut. "+Table+ "set. "+tanda+"· uhere ''+filedKey+"= 1 "+key+'' 1 ' " ) ; 1:'.
for (int i=O;i
pre.execute (); pre.close(); l'et urn true ; }catcll(Exception e) {ret.urn false;}
Method ini mencoba untuk merubah data dengan rnenggunakan method prepanStatement(String sq!) dari interface java.sql.Connection, dan selanjutnya mengeset data dengan method setObject(int parameterlndex, Object x) dari interface java.sql.PreparedStatement. Jika berhasil akan dikembalikan nilai tme, jika gaga! akan dikembalikan nilai false.
5. Menghapus Data Untuk rnenghapus (delete) data dari suatu tabel, aplikasi sistem mesin kasir terdistribusi bisa memanggil method deleteDataFromTable(String Tabel, Object field, Object data), coding dari method ini adalah sebagai berilmt :
320
public static syncb.ron.:izell boolean d.eleteDataFrmaTahle(String Tebel;Object. field, Object data) { try{ Prepared5tatem.ent. :prep"'cor1.pre11areStatement (''de J.e1>~ trmn '"+Tab1;l+" ,_,:cJ1;c1:10~ "+field+"~?");
prep.setD.hject(l,dat.a);
prep.e,recute (); prep.close.(};
return true; }catcll(E:
Method ini mencoba untuk menghapus data dengan menggunakan method prepareStatement(String sq!) dari interface java.sql.Com1ection, dan selanjutnya mengeset data dengan method setObject(int parameterlndex, Object x) dari interface java.sqi.PreparedStatement. Jika berhasil akan dikembalikan nilai tme, jika gaga! akan dikembalikan nilai false.
4.4.2. Implementasi Sistem Remote Method Invocation (RMI)
RMI merupakan teknologi client-server untuk aplikasi terdistribusi pada platform Java. Pada pembahasan ini akan dijelaskan langkah demi langkah dalam pembuatan sistem mesin kasir terdistribusi berbasis client-server, yaitu bagaimana client mengirim data ke server dan bagaimana server mendistribusikan data ke semua client dengan menggunakan Java"' Remote Method Invocation (Java RMI). Pada perancangan sistem di atas, yaitu pada konteks diagram telah disinggung masalah client-server interface. Interface ini tidak lain adalah tatap muka untuk koneksi antara server dengan client. Pada implementasi sistem mesin kasir terdistribusi, client-server interface dibagi menjadi tiga, yaitu : C/ientTransaksiManagerlnterface dan
C/ientO~jectlnterface.
TokoOnlinelnte~flce,
Secara detail, interface-
interface tersebut akan dirinci setiap komponen yang ada di dalamnya serta class yang mengimplementasikan interface tersebut.
321
4.4.2.1. Koneksi RMI pada Server Koneksi RMI pada server meliputi antara lain adalah, mengaktifkan koneksi RMI (bind), tidak mengaktifkan koneksi RMI (unbind) dan pengecekan keberadaan koneksi. Semua class untuk koneksi RMI pada server terdapat pada package RMI Connection.
1. Constructor dari class Connection
Constructor merupakan statemen yang dipanggil pada saat pertama kali suatu class diinisialisasi. Pada constructor class Connection, dua buah Remote Object dibuat.
Dua
buah
Remote
Object
1111
adalah
dan
Toko011/inelnte1face
ClientTra11saksiManage1i11te1face yang nantinya bisa diakses oleh semua client.
Codingnya adalah sebagai berikut : :t_n:ivate private uri vate t_U'i vate
5e:t..-verTokoOnlineimplementa.t:ion inter:::.new ServerTokoOn.lineittt>leirientation(); TokoOnlineinte:i::face stub=null; ClientTr:ansaksiManagerlm.plementation inter2=new ClientTransaks:i..Ma.nru;er~lenient.ation () ; ClientTr:ansaksiMru.1agerinterface stub2:.:nu11;
uuhlic Connection () { try{
st.ub"' (TokoOnlineinter:face )Unicest.RemoceObjecc.eJqJortOhject ( inti:r / OJ ; stub2== (ClientTra.:nsaksiManagei:Interf.ace)Unicast:.P.emoteObject.e)!portObject (in.cei:2, l); }catcb(RemoteException e) {
JOp tionPane ,sJwwHessagp..Dialog ( ser.ver.tokoonl:i.ne. Main. t.eJJJp1l r
Syst.em.exit (!J);
Di dalam contructor di atas, dua buah Objek di jadikan Remote Object dengan rnenggunakan
method
exportObject(Remote
java. rmi.server. U nicastRe moteO bject
obj,
int
port)
dari
class
322
2. Mengaktifkan RMI Connection Untuk mengaktifkan koneksi Rl\!Il, program server menggunakan method bind(String name,int po1t) dari class Connection. Codingnya adalah sebagai berikut : _vubli.c boolean bind(St:t:ing nam.e.,:int por:t) { try(
System. out.println(" CL't'ti. 'Cur. .nect-'') ;
Registry
regist:i:y~null;
t1:y{
registr:y
~
LocateRegistr:y.createRegist~y(po~t);
}catch(RemoteException e) { i:ei;_tistry "'" LocateRegist:i:y. g-et..Regi.stry (port); i:egistr:y.bi.nd(name,. stUb); r:e gis tr:y .bi_nd (name+•-, ~ ... Tr. >in.:::,;
stubZ);
System.. ou-c.:println ( "$et:'7<2l: rco6dy") ;
retuxn true; }catch(AccessException e) { JOptionPru1e. shom.fessru1eDial.og (server toJ.:.oonline. Main. talilpi l, }catclt(RemoceException e) { JOptionPa.ne. s1un·~fes:sageDia1og ( seL-ver:tokoonl.ine. Main. talll.pi 1,
}cat.cl< (Alr:eadyBour1dException. e) { JOpti onPene. shoTitiessag:eDi.al.ag- ( ::ierve:t: tokoonline .11ain. tempi 1 1
ret,urn false;
Method ini mencoba untuk membuat regist1y dengan menggunakan method createRegistry(int port), jika port ini sudah dipakai oleh regisfly lain, maka akan mencoba untuk getRegistry( int
menggunakan port tersebut port),
kedua
method
dengan m1
menggunakan berasal
dari
method class
java.rmi.registry.LocateRegistry. Selanjutnya, dari regist1y tersebut, dipanggil dua kali
method
bind( String
nan1e,
Remote
obj)
dari
interface
java.rmi.registry.Registry untuk mengaktifkan bind dari dua buah Remote Object (yaitu TolwOnlinelnte1:face dan C/ientTransaksiManagerlnteiface) pada port tertentu. Jika proses ini berhasil, maka dikembalikan nilai true, apabila gaga! dikembalikan nilai false.
323
3. Tidak mengaktifkan (disconnect) RMI Connection Untuk tidak mengaktifkan koneksi RMI yang telah aktif, program server menggunakan method nnbiml(String name,int port) dari class Connection. Codingnya yaitu : puhlic boolean UJ'tbind.(Stl:ing naJll.e,int port) {
try{
Registry registry= LocateRegistry.getRegistry(port/; r;egistry. unbind (name) ; r:egistry. unbind(name+" ~·-Tr611~~;.;iJ~_sJJ1ana·JerC11.eri 1:--~--" J ;
return true; }catclt(Rem.c1teE:<.ception e) { JOptionPane. slloli!Mes:sayeDialoy ( servertokoonline. Hain. tampil,
}catcll(HotBound.Except.ion e) { JOpti onPane. shoWMessatjeDialou (serve ri:.o~:oonline. Main. tampil,
retm·n false;
Method ini mencoba untuk mendapatkan registiy dengan menggunakan getRegistry(int port) dari class java.rmi.registry.LocateRegistry. Kemudian memanggil method unbiml(String name) dari interface java.rmi.registry.Registry untuk membuang bind dari dua buah Remote Object (yaitu TokoOnlinel11te1face dan ClientTransaksiManagerlntel'.face) pada port tertentu. Jika proses ini berhasil, maka
dikembalikan nilai tme, apabila gagal dikembalikan nilai false.
4. Pengecekan Keberadaan RMI Connection
Untuk tidak pengecekan koneksi RMI yang telah aktif, program server menggunakan method isConnected(String name, int port) dari class Connection. Codingnya yaitu :
324
puhl.ic boolean isConnected(Str:ing na:m.e,int poi::t) { t.ll.'Y{
Registr:y r:egisti::y =
LocateRegistry.getRegj.~;try(port);
Str:ing[]list=r:egistr:y.list(); for(int i"'rJ;i<list.len.gth;i-t-!-) {
it (name.equals (list[ i]) )return t.rue;
}catch(Exception e){) return. false;
Method ini mencoba untuk mendapatkan registry dengan menggunakan getRegistry(int port) dari class java.rmi.registry.Locate,Registry. Kemudian memanggil
method
list()
dari
interface
java.rmi.registry.Registry
untuk
mendapatkan daftar dari bind-bind yang telah ada pada po1t teitentu. Jika proses ini didapatkan hasil yang sama (equals), maka dikembalikan nilai 1true, apabila tidak ada yang sama dikembalikan nilai false.
4.4.2.2. Koneksi RMI pada Client Koneksi RMI pada client meliputi antara lain adalah, rnengaktifkan koneksi RMI (lookup) dan tidak rnengaktifkan koneksi RMI (unbina). Sernua class untuk koneksi RMI pada client terdapat pada package RMI Connection.
1. Constrnctor dari class ClientToServerGate
Class ClientToServerGate merupakan subclass dari class Connection. Pada constructor class ClientToServerGate,
dibuat
sebuah Remote
Ol~ject,
yaitu
ClientObjectinterface yang nantinya bisa diakses oleh server. Codingnya adalah sebagai berikut :
325
11rivate Client.Object cln=ne~r Client.Object (); private ClientObjectinterface sti..lb=null;
nuhlic ClientToServerGate () {
::n.ruer {} ; try (
stub= (ClientObjectinter:face)UnicastRem.oteObject..exportOlrject (cln, 0); }catch(RemoteException e) { JOptionPane. s:howt.fessa.qeD:i.alog ( clienttokoonline. Main. window,.
)
Di dalam contructor di atas, sebuah Objek di jadikan Remote Object dengan menggunakan
method
exportObject(Rernote
obj,
int
port)
dari
class
java.rmi.server.UnicastRemoteObject.
2. Mengalrtifkan RMI Connection Pada saat client mengaktifkan RMI Connection, terdapat dua langkah yang harus ditempuh, yaitu pertama : rnencari (lookup) suatu bind dan port pada host server, dan yang kedua
mengirimkan Remote Object (ClientObjectlntetface) ke
server untuk mengijinkan server memanggil method-method yang ada pada Clie1110bjectlnte1face sekaligus client tersebut mendaftarkan diri ke server. Coding
dari lookup yaitu :
326
J~rotected
ToJ.!oOnl1neintertace inter,.nu11;
protecteil Clien't-T:r:ansaltsiHanagerinter:face inter2,,,null; p11hli.c hoolp,a:n
loo~aql(St.rina
host.,St:.rim; name,int. }Hlrl,) f
try{ Registry reg1stl."Y "'
Locat-eRegistry.getRe{j:i.~try(host,port);
sys tell\.. out.println ("Cc.Lid L'.orn:,e::::t.") ;
inte:i:"' (Tot~oOnlineinterfece) registry.lookup (nffi!!e); inte:i:2"' (ClientTran5aksiUanagei:Inter:face) registry.lookup (nam.e+' Syste:m..out,println("CI:tr:nt J:;,1s
c;,nne,~c.ed
J:_,_..,
,-;,:r.wr'');
,JOptionPane. shm'lV..essage])ialo!J ( clienttokoonline. Main. window,'"' +
return. trne; }catch{AccessException e) ( JOp tionPane. slloWfessage-Dialog ( clienttokoonline. Main. window,
}catcil(RemoteException e) { J Op ti onP ane • sl1.0'\'&fessru_IeDialog ( cl i enttoko onl ine • Hain. window,
}catch{HotBoundException e) { J Op ti onP ane • sllo'\'&!essagel>ialog ( client toko onl ine • Hain. TJ.Tindow,
Method ini mencoba untuk mendapatkan regislly dengan menggunakan getRegistry(String host, int port) dari class ,java.rmi.registry.LocateRegistry. Kemudian memanggil method lookup(String name) dari interface java.rmi.registry. Registry sebanyak dua kali untuk mendapatkan dua buah Remote pertama
untuk
mendapatkan
TokoOnlinelnterface
dan
mendapatkan ClientTransaksiManagerlnteiface. Jika proses
O~ject,
yang 1111
yaitu yang
kedua
untuk
berhasil, maka
dikernbalikan nilai true, apabila gaga! dikembalikan nilai false. Coding untuk mengirim Remote Object dan sekaligus mendaftar ke server yaiw : puhll.c String RegistryClient (String po:i:t,Sti:ing bind,Sti:ing po.sg;:ror:d,Str:ing nilllie), try{
Sy:;;tew.out.1u:intlrr( ·c·AJ<.i ~'~l].1.~<1.<:J. Li:: .J·"r1:;~1. '); return inter .RegistryClient (stub, por:t,bind, passwor:cl,naID.e) ; }cat.ch(Re:moteException e) ( JOptionPane. :sJU)v.Messaycl)ialog (clienttolwonline, Hain. window,
327
Pada method di atas, method RegistryClient(ClientObjectlnterface client, String
port,
String
bind,
String
password,
String
name)
dari
interface
TokoOnlinel11te1.face dipanggil untuk mendaftarkan diri ke server.
3. Tidak mengaktifkan (disconnect) RMI Connection Untuk tidak mengaktifkan koneksi RMI yang telah aktif, program client menggunakan method unbind() dari class Connection. Codingnya yaitu : p1ihlic voi.d. unbind ( ) {
inte:r:=null; inte i:2,,.null;
Pada method unbind(), dua buah Remote ONect dari server diset dengan nilai null.
4.4.2.3. TokoOnlineinterface dan Implementasinya
Tolw011/i11elnte1.face
merupakan
interface
yang
digunakan
untuk
menyediakan pelayanan dari server kepada semua client yang terhubung padanya. Coding dari interface ini adalah sebagai berikut : :public ·interface TokoOnlineini:.erface ext.ends Rem.01::.e { puhlic Object(] ( ]~tDataBaran!J()throw'l: RemoteException: ''' p,_n-:,>:,.,-, ,,,,._.' ,,,•J;,'.:,:(";c,_!·,i:>:'r' -:.·,r,-, -, 'Li'' ·''"'cl. ~"' ;_,,, <e"-1LOJ puh]_ic Object[] [ )qetDataDm:aruj(Object field, Object lilte,Object asc,Object kondisi)throWE Rem.oteE-:.:ception; 1rnlff.ic Imolean kirilllData'l'ransaksi (Object[] []data) tlirows J!.e!lloteException; pubJllc Sti:ing Regi!>'tryClient (Clii=nt-Object.Interf'.ace client, String port, String hind,String pa.::;::;1.rord,String nw.ne)t-hrmw RemoteException;
public String Disconn.ectClicnt (String neme,hoolean pcltsa)throns Relll.oteExcepti Jn; tmblic vOi(l pesa:n.(String kode,String pesan)throm RemoteException;
pubJ!ic Object[] [ l getKeteranganSok(OlJ:)ect[] [ ]data)tJu•otm Reuo1:-eExcep1:-ion; J.i-_;d-J'l'.i'l \CUC'.!J·_ :,;,,;:c,-·- 'Cl;l')~'Jl,, );[-~l\'cL, ;2''"''' :'.\l:it'.i )~.:.;,,.:11'.t J';l '-~ !·.--nt :!-\Lhj '"'"~;: u·.-~-~ i.~.;:~i-; 11uhlic wi:' ,)-,'?l l • )i1':1' ''1' in': 1CL'-?·:·;-:<' '-· .,,,n·q C't"iJT ) 12.r(il'.',ff'~. t: ,J·; •" j :'. 1:•\'•': ::'" fiV,,J ''.-0-.l:l','_t\: -, (;1;',:01~ Cl. -:kl!;: pulHic v-oicl set01_lenClient:Mruu1qel'(Object kode,i:n.t meneger,Jioolean e.ctive)tlu.•ow.~ RemoteException;
328
Sedangkan class yang mengimplementasikan interfac1; tersebut adalah : plJJJlic class Se::verTolwOnlineimplenentation lJ!lileraent;;
java.10.Set:H:liz~ble, TokoOnlineintei:face{
vulilic sy.ncliroilized Object[) [ ]qetDataUat'anq ( l { ret-ui·11 servei:tokoonline.Uain. dataBara."l.'J; public Object[][)!!etDatiillaran.q(Object: field,ObJect like,ObJect ,1sc,ObJect konchs:.) { return database. SQLDutaBnranr,iHano.gei:. getDataFronil'ablcE'orClic1lt \field, lil;;e, asc, kondlSl) ;
l>ublic synclu:.:nrized bnolean kiriruDataTr:D.l.9 df:ll()').li J'-W.ihlf 1 :
pul1lic syncJu:oni;;:ed Stz:ing DisconnectClient(Sti:ing mme,hoolean peksa) I retm·n servertolrnonline.Ha1n. tfillpil. internalF'tameClient.disconnectClient{ne11ai:, pak5a); puhlic zynchnmizcd. "'JIOid pes<m(Sti:ing kode,Sti::ing pesim) { ser:vertokoonl1ne. Uain. tampi l. InternalFrruaeClientlloni to ring. add'l'extConsole (kO(!e, tools. tools. geUi'aJ:.tu5ekarimg() +·' '+peSIDJ·V sei:vei:tokoonline.!lain. tmapil. intei:nalFI:a:t11eClient.l)es<m(kode, peirnn);
');
irnlllic ObJect[] [) getKeteranqanSok(Ollject(] []data) { return servei::tol~oonline. Hair~. tam.pil, Int.er:nalfi:aTu.eStokBar:ano;il!antt~ei:. geUWte:ranga:nSok\date) ; pu!1lic void ~etllct:iveClientl!anager(Objecc lwde,inl ma.'lagei:,lwolea,n active) { String l1lfill"'".'; if(11ianegei:,.,.l)nu•1n~"Dat:u nerung '·i'::.e,,i\>:r."; cl.se :if (11-.i.1nege1:""'2)man••TaLxndc:t"; else if \m.imageX:""-3')m.an=·-n,~rn:tiL!d.S.,:n -, ;
else it {111.anager:~:4)111.a:n=--Tx:u1sc,li~'1 1fono«;Jet"; if ( active ) zer:ver toJwonline. Main. te.-mpi 1. Inte nrnl Fz:m:ae Cl l e11t!fo11l cor.lng. acWTeKtCorusole (kode,
tools. tools.getWaJ:.tuSekara:ng( )+"' -> }leni;iuin1 fki:n "+mun+'" ... "); sei:uet:toltoonli11e, Mein. tru:i.pil. InternalFr.filll.eC lientMoni to ring. setllctiveClientMa:r\il-ger (kode, nane.qer, active) ; pulilic void set{lpe11Clie11tlfona<Jcr(Object kotle,int lll\lrHJ.ger,boolean ective) { String lll!m,,'"" i t (menagel'."'"'l )mru~o:··r,:jt .~ Dor.:_'o!'-'J \::i_ec11-·, r,";
else
j_f (managet:~,,.2)mGn"'"K,:
it (lllanagei:~"3)man,,'-Ue1:1;i::.o;no::b_k:n"; else if {mruu1.ger,,,~'1)man,.''Tr·u1~
eJ.se
4.4.2.4. ClientTrnnsaksiManagerlnterface dan Implementasinya ClientTransaksiManage11ntecface merupakan interface yang digunakan untuk
menyediakan fasilitas khusus dari server, yaitu berupa method-method yang
329
digunakan untuk Client Transaksi Manager. Coding dari interface ini adalah sebagai berikut public inteEtace Cl1entTr:oo1:::aks1lil:..nagerintei::face extends Remote{ 1111hlir Object[] qetJ)otaTt'eeJfat•i. {St".rincr kode ,St".rin{.1 hul nn,StTing TI1n) t:h:i:oY1s RemoteExceptco11;
l}ulllic Object.[] qetDataTreeJam.{String kode,Scr:ing tgl, String bulen, String Tlm) throus Re1aoceException; uuhlic Object[) 11et.DataTree.Men.it. (String kode,sti:ino;,t jrun.,Str:ing tq!, String bulan, String Thn) tlu:otn RemoteException; pul)lic Object[) l]CWataTreeU1·ut(Stting kode,String menit,Sti:ing Jillll, String tgl,Sti::ing bulan,Stt:ing Thn)tlu.•otw Ri:rn.oteE)rception;
pulllic Object[] [] getDataTrsBln(String kode., Str:ing bulan,Str:ing Tii.n)tltxow> RellloteExcept:Lon; tnihlic Object[] [] getJ>a.taTrsUr (Sci:inq kode,Scring o;rl,.Sci:ing bulan,Sc:i:ing Tim)throi:m RemoteException; uulfl.ic Object(] [ J getDataTrsJam(String kode ,String jam, String tgl,Stt:ing bulan,String 'r1m)tlU'o'i-r.5 Rem.oteException; trnhlic Object[ J [ 1 g-etDataTrsMen:it ( Stxi11q kode, Sti:ing meni t, Stt:in9 jam, String tgl,Str:ing bulan,String Tim)thrmis RemoteException; J:l\:'.! j')\ ·::'.".'U"il i'!ClJ'.l'J.
dSV:"
·;_c:d.il.0'-:<: oH
lluJJlic Object[][) gctDataTrsJUl(Str:ing kode,String m.enit,Stt:ing ja!ll,String tgl,Str:ing- bulan,String Tim,int m_ulai,int banyak,String untt)thrOYIS RemoteE:-:ception;
p-Uhlic int getJml.TrsiUl (Sti-:i11g kode,Str:ing liienit,Str.ing jam,Str:ing tgl, String bulan,String Ul11,Sti:i11q urut)throws RemoteE:{ception; '•'!J"·'
1);- "-''rd :nc<:>----- rlc;{•J r_i:;.;_;,;::ik···
~-rcr
n(n'•'· ;;;:_,-,"
~r.:;n10:.-:}c;;
pU:blic Object[] [) getData'l'rsUrut (Str:ing kode,Sti:ing ur:ut,Sti:ing menit, String jWll.,String tgl,String bulnr.1,String TI:m)throws Rem.oteExcept.ion; publi.c boolean updateDataTransaksi (Object[] [)data, Stt:ing bulan, Sti:ing Tiu1,0bjecc( )[ )dataStok)tla'ow; RemoteException; •:o_k;-1-
pu:blic boolean cekY.eherac:laanRodeBaranq(Str:ing kode)throws RemoteExceptiou.; ""'i_:;:,t'Jk :uo1:,».l·1r ,_,-u-:.'\l": •'L ''."- ;v,).:n_; t"J 1'.:u r:.r_Bn.~,.,,to--[ public Object[] [] getDataWaktu (String kode,Stt:inq ui:ut,Str.ing bulen,Strir.g tahun) tlu:(n;m Re!ltoteException;
public boolean hatiusTransa:ksi(St:z::ing kode,Stting urut,String bulen,St:z::.ini;;· tahun)tlu:mm Re11oteException;
Sedangkan class yang mengimplementasikan interface tersebut adalah
330
J>iO>l :l.<' t-ol<'<"I< <.1 ient:Trlrn:I Jfl>n<>'J"rTmp.1 ""'"'''°"'°ion >-"1'1l."""'"t"' Cl te»tT>:"'"'"lo,.:111"""(J"rTn<"·"""""" { irnb"lH: o::yn,,M•nni..<'erl Ob]<'Ct.l J q<>tJ)1'1'A'frncll1'r1 (Sti::ina kode,O"ltrlnr) bulen.,Str1n(J 'thn) {
o-<>t "'"' convert- ( d<>tab0;sc, SQ LTrru1sekiiciMana;;erTahtm"l>Cl l.e1;t. u<>tData.Tr<>eHru.-:i. ("""-''-'"' '-''·-'
'-1-bulan-1·
!Tion, l~ode))'
1,,,l,1i<. ;,y1u.:ru_-.,,.;..,".-1 Ob;cct..,£ J [] ucW<>t ..T•:,.,U1n (S!;OLiU\1 kod•~, Str.iw.J bulo.u,Sei:in11 'Om) ( Ob J "" q 1 [ ) d'.).(.U<'QLTLUil:l""10::1:i.llu.tlU<JerTuh'4n<>nC11 Ct>lO. uetl'><>t.-..·rra=3MWl.n ''r-•.t< .,t,1c .. "+bul>m+ ·~·Tnn, 1«"1"); ;_:l.(datu--nu_U):.:ctux·n rn::w ObJ<:Ct[•.'lll'l! rct»rn d1>tn;
lHil>li<.· "l''"'luooiU..;.:ed ObJe<.:E[] [) u<>lD<>t<>.T~.,,Jir ( StL1Ill] lrnd<.:, St.:o;;._n11 tQl, S1;r:ir.11 l'c•l=, Srr:1u<;r Tim) { Oh)'"'q J { ]1tJ'""'. :JO!."rr.,.wmlu<>!l.'>n"a'""T"flummCJ 1 •mt. •J<•f-Di;l;<>Tr.•asill=iJlr (.,,.,.,+hul<'ln+ ".''+11m, kadtJ, tql);
p\l'.lO::l-ic "'Yl'clu·on.:t~c,Si:;i:;i_ng nu)) ( Object( J t ) d\\t:<>."'d" tllbo.:ie. SQ LTc Sclc:< UW>a.;re cT&wnenC lien.i::. (fetDataTi:ansaJ:s:lJmn
( "'·'•"'-''·'~"-'"·' 11.>ulan~·· ""-!Th.n, kode,
j=,
i;;gl):
l"il>l.h: Objeei:[J (J getDiltal'r.,Men;tt; (:lt:'l::::Lng ~t:l::in11 nen:Lc,Stci»li ji:;i:;;.,,cr bulc.n,St:rino;r nm) { OhJ<":ct ] { JC<>Kd(lt>ll.>u:.><0. ~Q1.:ri:ut•:.>ul<..:.•inm1ug""TW>w1Ct>1Cl:icnt. gcU>ilt.<>.Tr<J.ns<>l=ilfun.iL ''"~"""'"-'" +bultrr•+ '+Ttm, IWdc, "-ChOLC, Jum, C\Jl.); ~f("J]; ''"turn d"""' t>1!l>l.ic Objecc(J[l u<>Ur<J-t11TrsiUl (510r.:in<;r kod
cql,~icr.lll\·
bulan,
::Jcr.ing Thn,ifit nulo.1,int bk,Zt::i:in{f ur.ut::) ( Object:: [ ) ( J dl>to..,dat::ab a!le. SQLTr.an!lal<;>ill!lnocrer.Tohw><mC lienc • ..wtDatilAU.'fi:aruo~
{ <-'"':-.J,_-, __ '-H>ul.o.nl
l-11m,
.'<.ode, "'"nit, jrui1,
t<;i-1,
ll:mlo.i, J;;unyulo, '-'-r.ut,.);
rHtlll.>c Jut qat.•hl•lTri:m,,nCl 1 "'nt. IJ")hltm>l 1>hli.ll 'fr<>ns'1J<:.>t.i ,,-.C\-,'''I<•'- "+bt>ll>n+ ·+nm, kod", "'"nit, jrui:i, t:ql, 111:utj; pW>.l~c
lll>]ecq ]{ J ~rctD<1t.<>.Tr01\Jru.t \5Cc<:inq kodc,,t1;,__,_,,\l uu>l,51..l'..-!.WJ m~n>.c, St:::ing 1~m,St1'il'(;r t.;rl,Sr.1'in<J hulan,St:r:lng 11m) { l [ ]dl>t:a~datoab,...~,,.. O>QJ.Ti:al"'•nl<sUr~,,.~g,,.~-T"J;un<mCJ.1 """'· <_~<>t.Dl>taTra'.tl
Oh~"cr.[
tt{d,..c4.~ 0,nullJretm·n
ruin Objeci:;((')(OJ;
c·oturn dut:o.; l)Ul>l~c
"ynclu:onJ..zca Object:[) l'f'>tDataTi:eeJ""1>(Sci:1no;r !~ot.<>hm1e. SQ!.Tretn:rnlrntll!ltmgct:TalnmanCl i"nt,. 'l"t-Dilt.a1'rm,.lao-.:.. {"<'-~"' ,,,, .M+l>»l,.,n+"_''+Tim, lrn
trnl>J,Hc :.y.1«:l<.1:ul-D<>t:<>T~·o..UCn:l..t (SCl'..1W;t kodc,St..i:in'] j:.d.ll\,I l\,ll.,l><:.r.ir.IJ b"lu:n,St.i::n::.7 Tim) ( 1•el. u_rn c"'"''"-"t ( Ja t:ill>e."". SQ!. TL =•"1<'11-fiana•J"r.T<>liunu:nC1 ien t:. yet.Dat<>.1.'z:u10llen.i.L
'''"'"
"lbulun!-'~
'!-ll'm,
lwd''•
100>,
q1l));
""_"+)Jul.an+· _··+·nm, lrnd.,,, nenit,
~t-.:inu
urut:.~01t•H1q. v.~1.,.,ur
(dat:n[ OJ {OJ)
]'Im,
;l:t~_inry kod,,~l:lt•
tgl));
inu. w.-1 ...,or (dac"( ll] ( t]) ;
t 1 ( '""''""""'""'"""l in<>. H<'l.1 n. ''"'"'1'1-l . Int:o>En,.lFroBm,,Stol-.Dai:trngM"anng"'". ld..--tm.&nC11rm.l:F.-'l,,;o; 1 r. ( 'dat:.'lbm<e. SQl,Tl:an"aln«Dat.11'fr;,""'llcsi ( +l:ml an~· ~-"+Thx>, llr.uio, kode) )~'<'lcl~"H!ei~'1.gecTohui.v:m. i.""crt.Dat.:iToTdbl.<> ('' u · i-bul<mi ., '"l·Tiui, d"t>i) ~ ''"l>llc Ohj~"1;fJ[J (fOtimt..~ll,~l;tu(S!:i:-inq koc11',!lt:rlnq un1t:,St>"lng" lml<1n,!lt:;dnq t'll,un) { 1'M•e. SQJ.Trm>Mll,Wnl
p11.hU.. c boolenn cel$'.el>el'adaru\lf.o
rot m:·n d>:t-t:nh'>."10 • SOJ.t•c.i:;<%i:Bar;utgll•1'1.tC1:io1•t (koda) ; vul>.ll.l: l>cr<>l.C"'-" lwom>Tr<>..1u:iabi.(St10.1.) { Ol>;cet(] ( Jd<>lu~cte.rabe.CJ<:. S[JL Tz:un::rnk.,,ilfa..110.uci. To.h,.mWlCl.im1t:.1J"tI.>at;.::iT..-=
'l""-"'f' J [ :1] '-- (11;!; )D<mbl"-l"'rsl,., ( St:n "\f· va.1-uellt (dnt:a[ 1 J [ •l]) ) ; 5ysi:"-lll. ou-r..:pi•:intln(d,.t.o.[1] [l]+"
"+do.t<>.[1-J[-l]);
"""""rtol:H"r"ll(lflanag~r,. Kirin;rnC1i<"-RI. (t.l')) ,-,,1, .. 10n f·llC<"; ,.,,t,,;·n t"1"'-T''hun=>C:l:Le"t:. ltnpuEillataTran:rn.lw:i ( ; [
( t
in·•""'"' HlfTidtnm1 zej,,..cl:[ )dn~n=>" Obj~r;t:[.-!.
•·,,tw:u du;
'~'
"+buln1;+"._ • +t<-\lmn, Jood,,, urut);
331
4.4.2.5. ClientObjectinterface dan Implementasinya ClientObjeclfnle(face
merupakan
interface
yang
diguuakan
untuk
menyediakan method-method dari semua client yang bisa diakses oleh server, method-method client tersebut digunakan untuk menerima perintah dari server, misalnya : perintah untuk tidak mengaktifkan suatu client. Coding dari interface ini adalah sebagai berikut : tnihl.ic interface ClientObJect-Inter:face extends Rem.ote{
pill1lic vuid disconnect () tiU'O"'i'i'S. R.emoteException; vuhlic void exit ( ) tln.·ow's Remo teExce:p ti on; l'.)\iblic void pesan(String pesfill)tfil·oi;·rs RemoteException;
p1IDlic boolean is:Thctive () tlu:o"t'JS Re:moteException; public void. refreshDataBaranq(Object[) [ ]dataBarari.g)tlu:crws: Rer.aoteException;
pu1:Jl1.c i.n.t getPortUsin.g( )t]ll'.'O'<S RemoteException;
public Str:inq getBindlrsinu () tht'ovrs Rem.oteException;
Sedangkan class yang mengimplementasikan interface tersebut adalah :
332
1ntl1lic class ClientObject iJnD1-e:i1li':nts java. io. Se:r:ializable ,ClientObjectinter:i:ace{ public voiti disconnect () { cl:i.entt.oltoonline. Main. window. d.isconnectelll'oServer () ; puJJlic void exit ( ) {
clienttol{oonline. Main. lJindou. disconnectedT0Ser1rer ( i ; System., exit('));
public void uesan(Scr:ing pesan) { nt.."H Dia.logPesan(clienttokoonline.Iiain. window, pesan); public hoolean isllctivc() { i::eturn l-J:ue;
public void. refreshDataBarancr(Object[) ( ]dat:cl3ar:ang) { clienttokoonline. Main. dataBar.:ang:=dataileu:a.ng;
clienttokoonline. Hain. orit1dou. inter:nalF:r:roaeBer:ti:::ansaks1. re fresh () ; clienttokoonline. Main. uindou. internal Fr.:8ll.leTranseksiMm1ager:Clie11t. edJ. tTabel Trensaksi. refresh () ;
clienttokoonl1ne.Hain. window. E:i:ameDataBaranq.loadData (); l)ublic :int getPortUsinq () {
return clienttokoonline.Main. window. fl'.ta. PORT; pulilic String !JOtilindUs:ing () {
retu.r:11 clienttoltoonline.Uain. window, f:cm..nMe; p1:iva.te class D1alogPesan extentls javax.swing.JDialog
4.4.3. Implementasi Sistem Main Program dan Tmnpilan Utama
Main Program merupakan method utama yang dipanggil pertama kali pada saat program server atau program client dijalankan. Sedangkan Tampilan Utama merupakan window utama (main window) yang digunakan sebagai induk dari semua window yang ada di dalam program server maupun program client. Pada sub bahasan ini, akan dikelompokkan menjadi dua sub bahasan lagi, yaitu Main Program dan Tampilan Utama pada server dan Main Program dan Tampilan Utama pada client.
333
4.4.3.L Main Program chm Tampilan Utama pada Server Main Program dan Tampilan Utama pada server berada di dalam package servertokoonline. Coding program pada class Main adalah sebagai berikut : puhl:ic cl.a.ss: Hain pulilic static p®li.c static public static
{ AssHain ass ..n.ew lissMain () ; Obj ecc[) [) data:Bai::ru.'l.g"'1utl.l; Tani.pilenUtfilila tmnpil=null; public static ruIICoiu1ection. Co1u1ec1:ion. i::mi=on\J.11;
puhl1c Main O
{
tampil=ne>7
T~ilanUtama();
:r::mi,,,new RMIConnection.Connection();
showTamp:ilanUtama();
puhltc void slwwTillliJilanUtama () { j ava. awt. EventQueue. invokeLater (new Runnable ( J fHth1:ic vr.l_d run ( )
{
tampil .setVisihle (true) ; } ) ;
publi.c :static voi1l ma:in.( St.t:ing ai:gs []) new Main();
Pada class Main di atas, constructor meng-instance dua buah Object, yaitu yang pertama : class TampilanUtama yang nantinya akan ditampilkan dengan menggunakan method showTampilanUtama() dan yang kedua class Connection yang digunakan untuk manajemen koneksi RMI. Sedangkan di dalam method main(String args[]) hanya terdapat statemen untuk meng-instance class Main yang secara otomatis bisa menjalankan program Server Toko Online. Coding program pada class TampilanUtama tidak ak::m diilustrasikan pada pembahasan ini, karena coding ini sangat banyak yang tidal< mungkin akan ditampilkan.
334
4.4.3.2. Main Program dan Tampilan Utama pada Client Main Program dan Tampilan Utama pada server berada di dalam package clienttokoonline. Coding program pada class Main adalah sebagai berikut : puhlic class Main { public sta.tic RHIConnection. Cll.entToSeL'VerGtit:e L'.lil,i"'nuJ.1;
public static Object[][] data:Barang"'null; rrnhlic static TE!.lllpilan.Utama window=null; ptihlic static tools.HanipulasiFileConfiq config=new tools.MardpulasiFileConiig (); public 11..:lin() ( Hinc.h:iw"'new T~i.lanUtmn.a () ; CTlli"'lteW PJ1IConnection.Cl:i.entToScrverGate (); shovtl'ampilc"'llllltana () ; publ1.c 11oi1l slwortranuilanUtama() { j ava. atJt. Event.Queue. i:nvokeLateL· inew Runnable () uuJ•ltc vo:i.d run() { ui:ndotr. setVis:ilile {true) ; })
:
i1uhlic stati.c 'mid ma.i.n(String ar:gs[]) new tfain();
puhl:u; static witl refresDa.t.a.Uarang{) { daxaBar:ang=rmi.getDataBarany(); tnndow. int:emalFr:t:llileBer:t,i:ansaltsi. rett:esh (); window. intei.:nalFl:C!lieTra11sak'3iMro1egei:Clie11t. edi tTabel Tl:m1seks1. refresl~ () ;
Seperti pada program server, constructor pada class Main pada program client 1uga meng-instance dua buah Object, yaitu yang pertama yang
nantinya
akan
ditampilkan
dengan
class TampilanUtama
menggunakan
method
showTampil:mUtama() dan yang kedua class ClientToServerGate yang digunakan untuk manajemen koneksi RMI dengan server. Sedangkan di dalam method main(String args[]) hanya terdapat statemen untuk meng-instance class Main yang secara otomatis bisa menjalankan program Client Toko Online. Coding program pada class TampilanUtama tidak akan diilustrasikan pada pembahasan ini, karena coding ini sangat banyak yang tidak mungkin akan ditampilkan.
335
4.4.4. Implementasi Sistem pada Manage!' Manager merupakan komponen yang terdapat pada program server dan program client yang digunakan untuk manajemen aplikasi server dan aplikasi client
Di dalam program server terdapat sebelas buah manager dan d1 dalam program client terdapat empat buah manager (seperti yang sudah dibahas pada perancangan sistem di atas). Kebanyakan manager merupakan subclass dari javax.svving.JinternalFrnme, hanya Database Connection Alanager (manager pada server) dan Connection To Senier Manager (manager pada client) saja yang mernpakan subclass dari
javax.svving.JDialog. Coding program pada semua class Manager (baik di server maupun di client) tidak akan diilustrasikan pada pembahasan ini, karena coding ini sangat banyak yang tidak mungkin akan.
4.4.5. Irnplernentasi Sistern Table Model dan Table Column Model Pada aplikasi sistem terdistribusi ini, tabel merupakan komponen yang paling senng dipakai untuk manajemen data (terutama pada Manager).
Sehingga,
implementasi sistem pada tabel perlu untuk dibahas. Di dalam aplikasi sistem terdistribusi, tabel dibentuk dari dua class, yaitu Model dari JTable yang digunakan untuk membentuk model 1matu data tabular dan merupakan subclass dari javax.swing.table.DefaulffableModel dan Model dari kolom JTable yang digunakan untuk membentuk model dari s1;mua kolom yang ada pada
data
tabular
dan
Defa11lffableColum11M ode!.
merupakan
subclass
dari
javax.swing.table.
336
Tidak semua Table Model dan Table Column Model akan dibahas pada sub pembahasan ini, melainkan hanya mengambil sebuah contoh dari class-class tersebut Misalnya contoh Table !vfodel dan Table Column Model pada label RMI Connection Mana,ger.
Table
Model
pada
tabel
RMI
Connection
Manager
adalah
class
TableModelRMJConnection. Coding dari class ini adalah sebagai berikut : puhJ.ie class TableHodelRI1IConnection
extends DefaultTableModel{
puhli.c TablclfotlellU:.Q'.Connection ( ) Slq_JC.lt:° () ;
public int qetColum.n.Count (){return kolom. lengt.h;} vlihlic Stt:ing g-etColwrnllTame {int col) {return Sti:ing. va1ue0f (kolom[ col J) ; } inihlic hoolean isCe11Eclitable (int row ,-int col) { if (c:ol==0 1 I col"'=·'! I I col"-'=5 J I col,,,=G)retu:en false;
retm:n t1:u.e; puhlic vnirl set\falue1lt(Object aValue,.int rour,int column)
..
in:ivate boolean celcSudahTerisi (int i:ow) ~;~] private boolean isSama (int :i:oT.r) • , • iniblic boolean isSama.(Object bind, Object poi::t)
Pada class TableModelRMJConnection di atas, terdapat empat buah 01•erride
method dari class DefaultTableModel, yaitu antara lain getColnmnName(int
col),
isCellEditable(int
row,
getColnmnConnt(), int
column)
dan
setVallueAt(Object aValue, int row, int column). getColnrnmCount() merupakan
override method yang digunakan untuk mendapatkan banyak kolom yang terdapat pada Table A1odel, getColumnName(int col) merupakan override method yang digunakan untuk mendapatkan nama suatu kolom yang terdapat pada Table Model, isCellEditable(int row, int column) merupakan override method yang digunakan untuk mendapatkan keterangan bahwa suatu cell yang terdapat pada Table Model bisa
337
diedit atau tidak dan setValueAt(Object aValue, int row, int column) mempakan override method yang digunakan untuk memasukkan data pada baris dan kolom
te1ientu. Sedangkan Table Column Model pada tabel RMI Connection Manager adalah class TableModelRMIConnection. Coding dari class ini adalah sebagai berikut : public class TableColumnModelRHICom1ection exte111L..:: DefaultTable:Colurrm11odel{ pri'late Object[ ]field"'{ ''Uo. r "t,;c,de", "'B1nd", "l'ctt", "::.t0c-us·· / "T•:rl Ed:i:t", '"l\;l f-J1.u'l1:-', "E0t..e1>1n,J5.n"};
private int( Jpar;j angRow"' {,~5,GD,151), eo, 30 I l ?O I .t 70,200}: pulilic int [} ali gm.entRou:. {SwingCon'3tant.;:,. CENTER,SvingConZ·tW.ttz.. CE}ITEP., Swin~tCon~ t:ant$. LEFT, SwingConstants. CENTER, S11il1qCons-cants. CEJ!ITER, SwtngConstanr;s, CENTER, smngConstm1cs. Cl!!mR, sw1ngconsta11ts. LEIT} ; private TableCi:ilumn[ ]tab=null; private DefaultTableCellRenrleret:[ ]tabelllender:,,,nuJ.1;
uuhlic TallleColunmModelllMIConnection () super ();
inisial.:i.sasi () ; 1n:i vate '.roid in:isialisasi () { taL ..new T-ableColumn.[field. leng-th]; tabe!Rende:i:=ncw Defaul'tTableCellRender:er[field. lenqth]; for (int i"'O;ileUonJ\.ctiveCelIRenderer (); else if (i==,.l} tabelRender:[i]"'new DefaultTahleRMIIsCorumcte1lCell.Renderer \); else tabe!Render.[i]=new DefaultTallleCellRerulerer ( J ; tabelRender[i].setHorizonta1Il1ignment(aligmentRo~[i]);
tab[ i]. setCell.Renderer (tabelRender[i]); tab[i].setHeaderValue(field(l]); tab{i].setidentifier(field[i]); tab[ i]. setPreferredWidth (panjangRou[i}); tab f i] . setM:in~ficltlt {O) ; athl.Colurnn(tab[i]):
Pada class TableColumnModelRMIConnection di atas, terdapat sebuah method yang digunakan untuk menginisialisasi bentuk dari semua kolom pada tabel RN!! Connection !vlanager.
Kemudian, setelah Table Model dan Table Column !J1odel berhasil dibuat, langkah selanjutnya adalah membuat objek dari class TableModelRMIConnection
338
dan class TableColumnModelRMIConnection yang akan digunakan pada class JTable. Codingnya adalah sebagai berikut : t-ableHodelRMIConnection = ne~,., R1'1ICoru1ection. TalllelIDdelRMICon:n.ection(); t.ableColmonModelRMIConnection = new RMIConnection. TableColum:nl>iodelRMIConnection () ;
TableRMIConnection = n.et1 j avax. swing.JTahle (); Tab leIU·iIC ormec ti on. set.Model ( tableModelP11I Connection) ; TableP11IC onnec ti on. setCo1.tnl1Jl?.fodel. ( table Col ttmnI1ode1RMIConr1ec ti on) ;
4.4.6. lmplementasi Sistem Tree Model Pada aplikasi sistem terdistribusi ini, tree digunakan pada lima buah manager di server (Transaksi Manager Bulanan, Transaksi Manager Tahunan, Chart
Transaksi Bulanan, Chart Transaksi Tahunan dan Table lvfanager) clan sebuah manager di client (Client Transaksi Manager). Di clalam aplikasi sistem terdistribusi, tree clibentuk clari sebuah class, yaitu
Tree Model yang digunakan untuk membentuk model suatu data tree clan merupakan subclass clari javax.swing.tn-ee.DefaultTl'eeModel. Ticlak semua Tree Model clibahas pacla sub pembahasan ini, melainkan hanya mengambil sebuah contoh clari class tersebut. Misalnya contoh Tree Model pada tree
1/'ansaksi Manager Tahunan. 1J·ee Model
pacla
tree
Transaksi lvfanager
Tahunan
TreeModelBulan. Coding clari class ini aclalah sebagai berikut :
aclalah
class
339
pul:Jlic class TreeHodelBulan extenas DefaultTreeHodel{ DefaultMutableTJ::eeHode i:oot=n1tll; Defaul tlfutaJJleTreeUode [ ]clienr:=null; DefaultHutableTreellode [ ]tanggal=null; Defaul tMutableTreeMode [ )utt,,,null; Defaul tMutableT:r:eeNode [ )bulan=nul1-; i111hlic TreeModelilulan () { super {new DefaultlfutahleTreeNode ('"Tr a1sa!r.-.;; i") , true) ; pul1lic v-oitl insertlfewCld1'l (Object[ ]data, String tahlli'l) pr:ivate voi.(l loadT1:ansa.ksiT1·eeBulan{DefaultMutableT:i:eeNode node, Object[ ]data)
private void loadTransaksiTreeTanrrga1(DetaultMutableTreeNode node,Object[
''er·~~-~
JH:ivate void 1oadTransaksiTreeClient (DefaultMutableTi:eeNode n:ide,.Object[ ]data) puh1ic void loadTransaks:i.Tree(Sti::ing tahtm)
Pada class di atas, terdapat sebuah constructor dan lima buah method. Method insertNewChild(Object[] data, String tahun) digunakan untuk menambah child tree barn jika suatu data transaksi baru ditemukan. Method loadTreeTransaksi(String tahun) digunakan untuk merefresh kembali tree ke bentuk baru. loadTransaksiTreeTanggal(DefaultMutableTreeNode digunakan
untuk
loading
Tree
data
node, Path
Method
Object[] data) tanggal
dan
loadTransaksiTreeClient(DefaultMutableTreeNode node, Object[]data) digunakan untuk loading data Tree Path semua client. Jadi, pada dasamya kerja dari model tree ini adalah membuat bentuk dari tree transaksi dan jika ditemukan data transaksi baru, maka secara otomatis data transaksi tersebut akan ditambahkan pada tree.
4.4.7. lmplementasi Sistem Graphics (Chart) Pada aplikasi sistem terdistribusi
1111,
Graphics digunakan pada Chart
Tiunsaksi Bulanan dan Chart Transaksi Tahunan. Class yang digunakan untuk
menggambarkan chart adalah class PanelGraph yang merupakan subclass dari class
340
javax.swing.JPanel. Class PanelGraph mempunyai tiga buah inner class yang digunakan untuk membentuk jenis dari chart, yaitu : class ChartBalok yang digunakan untuk membentuk Bar Chart, class ChartLine yang digunakan untuk membentuk Line Chart dan class ChartLingkaran yang digunakan untuk membentuk
Line Pie. Coding dari class PanelGraph tidak akan ditampilkan semua, karena sangat banyak, namun akan ditampilkan sebagian saja, yaitu sebagai berikut : rniblic class PanelGraph tnltend...;; Java.'\:. swing. JPanel in:ivate Object[ Jdo.tl'l"'ll.Ul.l; pri'.rate Buffe:i::edimage bacl-!Buffer: "' lntl.l;
p;i;•iv-ate double ( ]values,,null; private Ghar:tBalok balok,,,nevz Cli.a.l.'tHalok(); p:t:ivate Char:tLini:! lint!"'1lL'>1 Cit'" ,rataZ"'"" ,inX::o 'Cl:t<"..\1t-' ,inY=
F_,,.
private int zoom.=1J; urJ.vat-e int lineX:::600 ,.lineY.,.,320, lineYPatokan:::32lJ;
tn•i.vate int :raulaiPosisiX:3!J,lilulaiI•osisiY"''.>0; rn:iv-a.te ;:Wuhle nilaiY=O.O;
private NumberFot:mat nwii::::Numbe:i::Fol:Jll_at.yetintegerins:tance (); p:r:i.vate int type=O; p•!liltc PanelGrai)h() 1rnhlic voi!l -writeJFEG( File file ) 11uhlic vo:id setlnfo1'l!la5i(Sti::ing infoi::masiFString totalF5ti::inq i::ata2) puhlj.c witl set!ntormas:LXY (String in.~ Str:ing inY) ~-~-~~~.:-_JJ iruhlic 'JOitl setChartType(int type) iL:.-:.:.] public w·oi.tl resetSize () ~-~] tnililic 'mid setDataJi.nd\fa1ues (Object[ ]dar:a,double[ ]values) private boolean. i:esetmffilse;
pul>lic vuid reset ()
lC::Jl
public double car:illila.iYPalingTingqi () l.l1.'i vate aouhle getJumlahTotal () i;-~-:-·:3
private uri vate 1n·ivate iu·i vat.e
d.ouhle yetRataJ111rilahTot.:ii-(·)·L=.:..J do uh le cai:iZoom.( ) void drawliolleY(Gr:aphics2D g2D)
St:i::ing getFoi.'ffi11tl1JltaUan.11In.d.enosia(do~~~le dou) in:ivate void sltoWinfol'lTh'lSi (G:i::aphics2D g2D) !'. •.. :i ,-----'T··--· l!_:~,~,i~c voitl paintCOlJVOnent (Gi:s_phics g) LL.:.:..:JJ
Coding class ChartBalok adalah sebagai berikut :
341
uri·•1ate final cl.ass Char:tJ3alok { 11tll1lic voiti chartDalok ( Graphics2D g2D) '.F;t•.Li·L n>:::u.w;;,1_•J.lk
:..1~.tibut;
.,.
Ll':J.t:i 3rJ:L ClH:lLt. p'dd<1 :u.ith::;: tei: :t'.'xrt.,u 1' !
private void buatAtributChart(Gr:aphics2D g2D,.int ke)
,,.
private void buatRectChart (G:i:aphics2D g2D;int ke)
Coding class ChartLine adalah sebagai berikut : prlvate final class Char:tLine ( private int YLalu=O ,XLalu,.O; puhlic void chartLine(G-r:aphics2D g2D)
private voirl huat1ltrubutChart(Graphics2D g2D,.int Jte)
.
private void. bu.atGarisPutusl1utus(Gi:ephic.:i2D g2D 1 :int x,.int y,int
private void. buatLineCiuu·t(Gr:aphics2D g2D,int ll:e)
~:l,.int
yl)
.
Coding class ChartLingkaran adalah sebagai berikut : urivate final class Chat:tLingkai::an{
private int tengahX=O,tengahY=O; lHiblic void CJtartLing-kar ( Gr:aphics2D g2D} private void tb.•.awThrc(Gr:aphics2D g2D)
. ,.
private void setValue:ilrc (Graphics2D g2D)
4.4.8. Implementasi Sistem Print Preview, Table Setting dan Save Print Preview dibentuk dari dua buah class, yaitu class PrintPreview yang merupakan subclass dari javax.swing.JDialog clan class Pane!Preview yang merupakan subclass dari javax.swing.JPanel. Kedua class ini tidak akan di tampilkan pada sub pembahasan ini, karena terlalu banyak. Table Setting dibentuk dari class TableSetting yang merupakan subclass dari javax.swing.JOialog. Coding class TableSetting adalah sebagai berikut :
342
pull1ic cl-<.tSs TableS:ettinq JTable tabel;
1C":Kte111.1s
JDi alog {
L -~:.·..:__·_:._:: uuhlic 'l'ahleSetting(java.-..:.s"(.1ing.JTcl:ile tabelj" t Slll,}cer (sei::vertokoonline. Hain. tampil~ true); thi.:s. tabel=tabe.t;
1n1.tconvonents(); setVi.silJ1-e (1;rue) ;
pr:i.vate void: lcliarStateChan(Jed(javax. S4'ing. event. ChangeE,,-ent evt) pri va.te 11u:iil tincrff.i2StateCJlai1.qed. ( j sva.x. sv.in•J. event. Chtll1qeEt:''2nt l•l~:i. vate void t:ingyj.StateCli.arujed ( j avu.". swing. event. Chan.geEvent in~ivate voi.tl '\feritemStateClumged(ja.va.. awt. event. ItemEvent ev;:.) pr:iv-ate t."TI:in:.• eveni;. IceiaEvent e:•-'t) priv
;;,xJ:
in.·-:i.v-ate 1n·:t.vilte l>l-':i.vate ;n:i.vate
javax. swing. JCotiiliofiox Font-Size: jav:a.x. swing. JComboBox Font-T:i:'Pe; javux. swing. JChecldlo-x I1ori; javax. swing. JSlider J.ebe.r; private JaVax. swinq. JSlide:i:: tinggi:. private javax. swing. JSlide:i:: tinggi2;
private Javax. swing. JCheclillox ver;
Save Action dibentuk dari class SaveAsAction yang merupakan subclass dari javax.swing.JDialog. Coding class SaveAsAction adaiah sebagai berikut rn1h-lic class SaveAs:Action exteruL9 javax. stJing. JDialog 1n:ivate
~1Table
tabel,,,nuJ.l;
!~=:;,.:·:-~ tabel)
iis.:ivate void. Save1lctionPe1·foi."1!1ed(Java. a.wt. event.ActionEven.t evt.)
vrivate void sa1leJlction.() 1_1rivate void ·write(java.io.File file} Uh~_.\1.l::
;:·:i::Ld-~p&.-;::e::;c'
;:2~lt:.:!.
·~\-':';,l:i
::.;0)'.":.l" /
ru:ivate Object.( J [ J qetData:'l'able () y,:::-~tji private Object.[ J getTalJ1eColumnslfame () 11r:ivate Sti::!.ng inuutData(Object[] []data, Object[ ]field) in:i vute javax. swing. JFileChoosei:: Save; in:;Jvate tokoFi.leFilter filter:-=null;
343
4.5. Uji Coba Sistem Setelah implementasi (coding) dari sistem aplikasi mesin kasir terdistribusi dilakukan, tiba saatnya sistem ini di uji, apakah sistem ini sudah bekerja sesuai dengan apa yang diinginkan atau belum ?. Tahap uji coba (testing) sistem merupakan talrnp meletakkan sistem supaya dipastikan tidak te1jadi kesalahan sebelum sistem tersebut diserahkan kepada end user. Pada tahap ini dilalrnkan dengan pengujian masing-masing modul (unit) program apakah sesuai dengan tugasnya. Kemudian dilakukan uji coba terhadap integrasi keseluruhan unit program untuk mengetahui apakah sistem yang telah dibuat sudah memenuhi kriteria yang diinginkan. Pengetesan ini dilakukan dengan menggunakan metode black box testing. Tahap uji coba akan dilakukan pada semua manager yang ada (baik pada aplikasi server maupun pada aplikasi client), dengau cara mengecek satu per satu komponen dengan menggunakan tabel pengetesan, apakah komponen tersebut sudah sesuai dengan apa yang diharapkan atau belum.
4.5.1. Uji Coha Sistem pada Aplikasi Server Uji Coba pada aplikasi server meliputi : uji coba Database Connection
Manager, uji coba Data Barang Manager, uji coba Jenis Barang Manager, uji coba fransaksi Manager Bulanan, uji coba Transaksi Manager Tahunan, uji coba Chart fransaksi Bulanan, uji coba Chart Transaksi Tahunan, uji coba Stok Barang Manager, uji coba Client Manager, uji coba RAH Connection Manager dan uji coba Client Monitoring.
344
4.5.l.l. Uji Coba Database Connection Manager
Add New Database Connection Update Database Connection Delete Database Connection
l. 2.
3. 4.
Connect Database
5.
Disconnect Database
Dapat menambah databa;;e OK I yang akan disimpan di dalam file. Merubah koneksi database yang telah OK ada dengan koneksi database yang baru Menghapus koneksi database yang OK sudah tidak diperlukan lagi Bisa terhubung dengan aplikasi OK database Bisa memutuskan hubungan dengan OK aglj~<Jsi database jika dip(;rlukan ··-·· 1
Tabel 4.2 Uji Coba Database Connection Manager
4.5.1.2. Uji Coba Data Barang A.famtger
.·J' .. ·'· .. ,,,.·.··•·: '
.· No. • ....• ·.·.·• • .·. . .•·. K·.···'o.·.·.1.i1·p· · · · o·p· e..·.1.1 . ,
Add New Data ! Baran 1
L
2.
i
!
...
'!···•.•:
I
t bal d t b apa menam 1 a a arang I yang akan disimpan di dalam .
'
4.
l!a
D
16~~~;,,•••
••· .
i penge111bangan
•
'!'.
OK
ada dengan data barang yang barn,.
I
i
1:
. selanjutnya, dapat menambah data
Updo::-i::.:::·~::::~,,~ ym~<eloh 1-: ~~~~~'
Barang
3.
1·.·•.··.•·.H.·. t\s . •.i.1. •··.·••.l. .•. >.••.<.<· .• ·.1··}'' .·• ·1 ,JA.'k't..:• 1·•. 1: 1., :.)(1~Je,w11gan.. ,
•·'·•<·>·:·•·.:·>•::.•·••Y.·<.1..·.?,.• .
···,····• · · fl~si!~.ahf\')l.'li'lia.r~]?~t]fr '
Delete Data Barang
Searching Data I Barang
merubah data barang melalui I barcode reader.
1
I Menghapus data barang yang
OK
',I
\ sudall tidak diperlukan lagi Mencari data barang pada suatu field yang sesuai dengan kemginan pada
I
II OK
I
I ---~------
345
I
5.
I Insert Default I
Value
Dapat memberi default value pada persentase harga jual terhadap , harga beli, persentase diskon beli I, dan persentase diskon jual.
I
OK
Tabel 4.3 Uji Coba Data Barang Manager
4.5.l.3. IJji Coba .Jenis Barang Manager
l.
Add New Jenis Barang
2.
Update Jenis Barang
3.
!
Delete Jenis Baran 'T
barang yang akan disimpan di dalam tabel j enisBaran Merubah data jenis bara.ng yang telah ada dengan data jenis barang I yang barn I Menghapus data jenis banmg yang_ sudah tidak diperlukan lagi
OK OK OK
Tabel 4.4 Uji Coba Jenis Barang Manager
4.5.1.4. IJji Coba Tmnsaksi Manager Bulwum
L
Select Transaksi
2.
3.
Transaksi Navigator Action
Menganalisis data transaksi bulanan pada tanggal tertentu. Menganalisis data transaksi bulanan pada client tertentu. Dapat melihat transaksi bulanan dengan jumlah te1tentu, dengan navigasi next-back.
OK OK OK
346
!
4.
5.
Simple Data I Transaksi I
I Dapat menganalisis data transaksi bulanan dengan cara melihat
I
I hanya dari jumlahnya (sum) saja. I Dapat menganalisis data transaksi
I All Data
! bulanan dengan cara melihat
Transaksi
I semua transaksi yang tersimpan
OK
OK
pada tabel transaksi
6.
DataBarang Transaksi
Dapat menganalisis data transaksi I berdasarkan data barang yang terjual. Sehingga dapat I menentukan basil penjualan suatu I' barang.
7.
Searching Transaksi
I dengan keyword nomor urut
--
8. 9.
Dalam pengembangan
selanjutnya, dapat 1111elihat hasil
1 1
OK
, transaksi pad:'l suatu data barang 1nclalui barcode reacler.
\ Mampu mencari data transaksi
OK
transaksi Dapat memilih data transaksi pada bulan tertentu Dapat memilih data transaksi pada tal11m te1tentu
Select Bulan Transaksi '• Select Tahun i Transaksi
i
OK
I
OK I' I
I I I
Tabel 4.5 Uji Coba Transaksi Manager Bulanan
4.5.J.5. Uji Coba 11-tmsaksi Manager Talmmm . No.
I .. j
Keil)lj)ohen
Select Transaksi
1 ·
. By Bulan
l.
I Select Transaksi
3
I By Client Select Tahun I Transaksi
I ·
I ' i Af11~ili1f\~~~il\~rcrip~M;, 1 ~'j}i~R~~~~;~j;;; Keterang~ ,;
Menganalisis data tra11saks1 OK j tahunan pada bulan tertentu. , \ Menganahsis data transaks8·-~ tahunan pada client tertentu Ul'>. Dapat mem1lih data transaks1 OK \ , pad a tahun tertentu I
I
I
~~~-~~~~~~~~~~~~-~~~~·
Tabel 4.6 Uji Coba Transaksi Manager Tahunan
i I I .1
.
347
4.5.l.6. Uji Coba Chart Tmnsaksi Bulamm No.• I.
Select Transaksi By Tanggal
2.
Select Transaksi By Client Bulan
3.
Select Tahun Transaksi Transaksi Component Tabbed
4.
5.
Select Chart Type
6.
Menganalisis data transaksi bulanan dengan chart pada tertentu. Menganalisis data bulanan dengan chart pada client tertentu. Dapat memilih chart transaksi pada bulan tertentu Dapat memilih chart transaksi ada tahun tertentu Dapat memilih komponen transaksi bulanan yang diinginkan pada tab yang disediakan. Dapat memilih bentuk dari chart transaksi bulanan (Bar Chart, Line Chart dan Pie Chart
OK
OK OK OK OK -;
I
OK
Tabel 4.7 Uji Coba Chart Transaksi Bulanan
4.5. l. 7. Uji Coba C1mrt Trtmsaksi Taluuum
Menganalisis data transaksi
,-, _1_.-+-[I ~S-e-le~c_t_"(_r_a_n_sa_k_s_i_<--ta_h_u_n_ai_1_d_e_n y u an tertentu. __g_a_n_c_h_a_rt_p_a_d_a_b_u_1a_n--+I
2. 3.
4.
I Select Transaksi II By Client [ Select Tahun I Trar1saksi Transaksi Component , Tabbed i
~ OK
________,
I Menganalisis data trat1Saksi
tahunan dengan chart pada client I OK te1tentu. I 1 Dapat memilih chart transaksi pada tahun tertentu Dapat memilih komponen
I
OK
I1 J
,
I I
I
[
I transaksi tahunan yang diinginkan1 I pada tab yang disediakan. /
OK
. 1
~---<----------
348
Select Chart Type
5.
Dapat memilih bentuk dari chart I transaksi tahunan (Bar Chart, I Line Chart dan Pie Chart)
OK
Tabel 4.8 Uji Coba Chart Transaksi Tahunan
4.5.l.8. Uji Coba Stok JJanmg Manager
No.
J
Kou1p()1\ei] >
j ··
Dapat menambah stok barang yang hampir habis
Update Stok
1.
Basil yang Dihanipkau
.
3.
I
Update Minimal
4. 5.
Detail Stok Barang
OK
!(~lq~ah~~l! ; Dalam pengembangan I selanjulnya, dapat I menambah stok
t
.
barang melal ui
1
1
barcode reader .
1.
I Value Update Maximal Value
I
ii,~~ 1
J
i
I
Dapat merubah tanggal / / kadaluarsa pada data barang OK I pemasukan stok terakhir kali . 1 Dapat memasukkan stok 11-11-.n-i_m_a_I+l--O-K--+l---·------il
Update Tanggal Kadaluarsa
2.
J
I\
suatu data barang Dapat memasukkru1 stok maksimal suatu data barang Dapat menampilkan sejarah pemasukan stok barang secara
detail Tabel 4.9 Uji Coba Stok Barang Manager
~
OK
I I i
I OK
349
4.5.1.9. Uji Coba Client Mamiger
1
Dapat menambah data client yang 1 akan disimpan di dalam tabel OK 1. Add New Client client 1 i. ___ _"' ______ - -----------·..··---···---r-----·-·-··· , Dapat merubah data client yang i Client yang sedang connect tidak bisa 2. Update Client telah ada dengan data client yang I OK I1 baru diupdate 1 1
I
-··~--
Client yang sedang connect tidak bisa diha us Dapat mengirim pesan kepada Send Message To Tinya jika client Client seorang client tertentu I OK sudah connect I Dapat mengeluarkan prog-ra-m-,--+1·---+-l--Ir-,11-y-a-ji-ka-ol-ie-·n-t__,
I Delete Client 4.
I i
I 5.
Quit To Client
Disconnect To Client
6.
Dapat menghapus data client yang [ sudah tidak diperlukan lagi 1
OK
' seorang client jika diperlukan Dapat tidak mengaktifkan program seorang client jika diperl ukan
OK
sudah connect
OK
I Hanya jika client I sudah connect
I ·
Tabel 4.10 Uji Coba Client Manager
4.5.1.10. Uji Coba RMI Connection 11Ianager
2.
I
I Connection
I yoog 0
I Update RMI
_ _ j _____ ------~··--·-·
3.
/Delete RMI , Connection
-·
4.
Connect i
5.
I' Connnect All
J
dalam tabel rmiconnection I Dapat merubah data koneksi RMI
'
I
'"'@ "'" """"'" '""
·I ~ a~~~~:1~~~~;l~~Yauk01~eksi
I
I I
OK
---·~- ------·---
RMI yang sudah tidak diperlukan , OK 1agi
iI Dapat mengaktifkan suatu bind
I pada port te1tentu
I
OK
I Dapat mengaktifkan semua b~ OK
i
I !
I I
I
I
I
1-Iasil koneksi tergantLu1g pada port yang dia:unakan 1-Iasil se1nua koneksi tergantung pada port-
i I '
350
---1------------.-1J~.a~a_\)01t11y_3:_1!1.
·
port yang digunakan
l)isc~nnect tidak bisa I dilakukan jika ada client yang sedang I I11neng.gtmakan suatu I hind pada port
i
OK
Dapat tidak mengaktifkan suatu bind yang aktif dari port tertentu
II Disconnect
--!
I tersebut
!
·---+I~~-n-nc-c-t"""'"Al"'"'l-ti'"'d~ak---l 7.
Disconnect All
I
I
Dapat tidak meno-aktifkan semua I I ;,~~ma bisa dilah1kan 0 . . . I i1ka ada client yang bmd_ yang akt1f dan portnya , OK 1' ·sedang menggunakan mas mg-masmg I bind p.ada port terscbut
Tabel 4.11 Uji Coba RMI Connection Manager
4.5.1.H. Uji Coba Client Jl;Jonitoring
Dapat memonitor aktifitas semua client yang terhubung pada server Dapat memilih client dimonitor
I.
Select Client
2.
OK
Tabel 4.12 Uji Coba Client Monitoring
4.5.1.12. Uji Coba Table Manager
No. I.
Make Table I Dapat mengaktifkan tabel tidak 1 Active aktif meniadi tabel aktif OK e----+---------+----~'---------~·--+---------j Make Table Non Dapat tidak mengaktifkan tabel OK 3 ,__·_ _,_Ac=-ct'-'iv_e_ _ _ _--''-al=<'-'t'-if_m_e'-121jcca'-d1'-·t"a'""b-'-'el'-t"-id=a=k_ak::.'-'t=if,__--"-----'----------i 2.
i
II
351
~:~:! :::~t~~~\:~~lca~~\;~::~ I·~~
4.
. J3ac1'_up ])ble 1_ _ ·-·····----: I Restore Table tabel cadangan ~ 1--6-.-~i-~-~-~-~~-t-e_S_Q_L---1-jD_a_p_a_t_m_e_n~ja~l-a_n_k_ru_1_k_u_e-ri_t_e-rt_e_n_tu-+·-O-K-~---~· I 5.
1
Tabel 4. 13 Uji Coba Table Manager
4.5.2. Uji Coba Sistem pada Aplikasi Client Uji Coba pada aplikasi client meliputi
uji coba Connection fo Server
lvlanager, uji coba Bertransaksi, uji coba Client fransaksi lvlanager dan uji coba Data Barang Viewer.
4.5.2.1. Uji Coba Connection To Server Manager
L
2.
'0,
Dapat menambah data koneksi ke server yang akan disimpan di dalam file Dapat merubah data koneksi ke se,rve Update Connection yang telah ada dengan data koneksi , ke server yang baru I Menghapus koneksi ke server yang Delete Connection 1 sudah tidak di erlukru1 lagi Add New Connection
OK
OK OK i Bisa tcrhubung
4.
5.
Connect To Server
Disconnect From Server
Bisa terhubung dengru1 aplikasi server OK
Bisa memutuskan hubungan dengan aplikasi server Tabel 4.14 Uii Coba Connection To Server Mana<Xer
jika client ' hanva . .
I te]ah terdaftar di
: server dan oplfon la inn ya Bisa dilakukan jika server OK n1engizinkan un111k I ! disconnect
352
4.5.2.2. Uji Coba Bertransaksi
No.
Koin1!one1f pengen1bangan
Dapat menambah data barang yang I akan ditransaksikan
Insert Data Transaksi
L
selanjutnya, dapat insert data barfillg n1elalui barcode reader.
OK
I I
I Update Data Transaksi Delete Data Transaksi
2.
3.
Dapat merubah data barang yang akan ditransaksikan Dapat mengurangi data barang yang akan ditransaksikan I Mengulangi transaksi tanpa mengirinkan data ke server i
OK OK
'1
4.
Restart Transaksi
5.
Finishing Transaksi
6.
Send Data Transaksi
OK
Tabel 4.15 Uji Coba Bertransaksi
4.5.2.3. Uji Coba Client 11-tm.mksi Manager
•··(J:5o~)j)()n~11f
No.
....
Update Data Transaksi
1. 2.
Ii Delete Data I Transaksi 1
3.
4.
i
Select Bulan
Seloc
1ZiiJ~1i~\th~PlJ1di:,1~k~ii
.~1 ~~ ~ 1'~ ti t~6tefa#~~1f"i'
1
1
.· · .· .· · · · · · · · •.•.•.· ·.•.• .• .·•.· •.··.·.j ·;t1'._<,l-\lP: /:":-.• > Dapat rnerubah data transaksi yang ==~==-""! telah te~jadi jika terjadi kesalahan. j OK I Dapat rnenghapus data transaksi yang I I telah te1jadi jika transaksi tersebut OK 1 i ternvata dibatalkan. i I
1 ...•.• 1 1•.•·. •
<'/-->-•;•, - --- -- ----'; -------------·-/-·,--,,_ -, ------- ',','-''
'1
Dapat memilih bulan dari semua transaksi yang telah dilakukan
I~.:=,:t;::'.~\~~·d:;,~;::'"
.i===-1 ••.I
[-:lK \ ------
l:J______
353
~
5. 6.
I Navigator Action I I
I Searching I Transaksi
I Dapat menampiikan data transaksi yang sesuai keinginan dan navigasi next-back. I Dapat mencari data transaksi dengan keyword nomor urut transaks1
i i i
I
OK
f--·-·
I' '
I OK
Tabel 4.16 Uji Coba Client Transaksi Manager
4.5.2.4. Uji Coba Data Barang Viewer
No. I.
..Kompone.11 II
Searching Data Barang
i•
Hasi~i)'W'~Pil1~l'f1pk~11
J
i~1~~~l
I Dapat mencari data barang pada suatul OK 1
field yang sesuai dengan keinginan
Tabel 4.17 Uji Coba Data Barang Viewer
4.5.3. Uji Coba Sistem pada F1mgsi Lainnya Uji Coba ini meliputi : uji coba Print Preview, uji coba Print, uji coba Save, uji coba Table Setting dan uji coba pada General Application f'unctions.
4.5.3.1. U,ii Coba Print Preview
2
Dapat diperbesar (zoom in) dan di erkecil zoom out Dapat mencetak ke mesin printer
OK
,....__·----------+'-s_e~ert_i_a~a~y_a_ng~adad_i~p_r_in_t_p~r_e_v_i_e_w_,....__ _-+--·~---.......J ~3_.__I _C_h_a_n=g~e_P_a~p_e_r_S_iz_e_J Dapat memilih ukuran kertas
OK
354
~I Change Orientation I
5.
i Change Margin I
6.
7.
I Page Positioning 1,
Color Support
I Dapat memilih portrait dan landscape I I Dapat merubah margin left, right, top 1
I dan botto rn
I
I Dapat mengatur tempat halaman
i
I
berada Dapat mengatur dukungan warna
Tabel 4.18 Uji Coba Print Preview
4.5.3.2. U,ii Coba Print
Tabel 4.19 Uji Coba Print
4.5.3.3. Uji Coba Save
Tabel 4.20 Uji Coba Save
_Q~~l OK
I
OK
I
OK
I 1,
355
4.5.3.4. Uji Co ba Table Setting
2. 3.
Select Font Size
I Show Horizontal r
Line
1---+-1-
Dapat memilih bentuk tersedia untuk suatu tabel Dapat memilih ukuran huruf suatu tabel Dapat atau horizontal suatu tabel Dapat menampilkan atau tidak garis vertikal suatu tabel
OK
4.
I Show Vertical Line
5.
Dapat menentukan ukuran tinggi OK baris ada suatu tabel , Set Horizontal Dapat menentukan ukuran spasi I "K i Intercell Spacin.,__+-"h-=.o=ri=zo=nt=a=l=c=e=ll_,p:.:a=d=a'-'s'-'u=a=tu==ta=b=-=e=l-·_--+1 _ v_ _+ - - - - - - - - 1 I Set Vertical Dapat menentuktm ukuran spasi I OK i Intercell S acin ' I vertikal cell ada suatu tabel .
--1
Set Row Height
___j
1
6.
7.
OK
Tabel 4.21 Uji Coba Table Setting
4.5.3.5. Uji Co ba General Application Functions No:
, Database ~ Information 2
3. 1 4.
5. 6.
I
System Property
I Look &
I About Hel
Dapat menampilkan informasi database Dapat menampilkan properti sistem dari kom oter an user nakan
Feel Dapat menampilkan about I Dapat menampilkan menu bantuan
Tabel 4.22 Uji Coba Stok General Application Functions
OK OK OK OK OK
I }Janya pada aplikasi server
356
4.6. Perawatan Sistem Tahap terakhir dalam pengembangan sistem Watelfall adalah perawatan sistem (system maintenace), yaitu tahap setelah sistem diuji dan dicoba serta dipastikan bahwa sistem terbebas dari kesalahan (bug). Walaupun demikian, setelah perangkat lunak diberikan kepada pemakai dan telah berjalan beberapa lama kemungkinan besar akan mengalami perubahan. Perubahan tersebut bisa te1jadi karena : kesalahan baru yang terdeteksi, pengaruh lingkungan operating system yang baru, atau juga pemakai menghendaki penambahan fimgsi-fungsi yang barn. Kesalahan (error) yang sering te1jadi pada pembuatan program ini biasanya berupa Nul/PointerException, Devide By Zero, Array!ndexOutOjBoundsException dan kesalahan fungsi lainnya. Di dalam program ini, kesalahan-kesalahan tersebut ada yang ditampilkan dalam bentuk pesan (dari class javax.swing.JOptionPane) dan dalam bentuk file text (tersimpan di dalam file error.txt). Sehingga, kesalahan yang terjadi, baik kesalahaan dari pemakai atau kesalahan dari programmer dapat dengan mudah diketahui. Dari pengaruh lingkungan operating system, program ini tidak terjadi permasalahan. Karena, program ini di tulis dengan bahasa pemrograman Java yang dapat beroperasi di sistem operasi apa saja tanpa melalui compile ulang. Khususnya untuk lingkungan sistem operasi yang berbasis Windows, untuk mempermudah pemanggilan aplikasi ini, dibuatlah file *.exe (Executable File) dari basil konversi dari *jar (Java Archieve File). Penulis melakukan konversi file tersebut dengan software Exe4J dari ej Technologies. Setelah file tersebut berubah menjadi *exe
357
diharapkan dapat lebih mempermudah user dalam pemanggilan aplikasi pada sistem ini, yaitu hanya dengan klik file aplikasi sistem ini langsung dapat beroperasi. Selain itu, untuk mempermudah cara instalasi sistem ini, penulis Juga membuat semacam istaller. Sekali istaller dieksekusi, secara otomatis sistem aplikasi ini dapat dioperasikan. Untuk lebih jelasnya tentang bagaimana cara instalasi sistem ini dapat dilihat pada lampiran A. Untuk perawatan semua tabel di dalam database, program ini dilengkapi dengan manajemen Table Manager. Manajemen ini berfi.mgsi untuk memanipulasi keberadaan semua tabel di dalam aplikasi database, yaitu berupa mengaktifkan atau tidak mengaktifkan suatu tabel, membuat tabel cadangan untuk persiapan jika terjadi kesalahan dan dapat merestore tabel cadangan tersebut menjadi tabel aktif
BABV
PENUTUP
Pada bab ini, penulis akan merangkum serta membuat kesimpulan atas semua yang telah penulis bahas pada bab-bab sebelumnya, penulis juga akan memberikan saran yang mungkin dapat berguna bagi berbagai pihak yang ingin mengembangkan suatu sistem, yaitu khususnya pada sistem informasi penjualan.
5.1. Kesimpulan
Kesimpulan yang dapat penulis kemukakan sebagai penutup dari skripsi ini bernpa pendefinisian dari aplikasi yang telah penulis kembangkan dan rincian dari komponen-komponen yang ada di dalamnya, yaitu antarn lain : I. Aplikasi Sistem Mesin Kasi!· Terdistribusi Berbasis Client-Server mernpakan
suatu aplikasi yang mampu bekerja di dalam sistem komputer terintegrasi dengan menggunakan konsep client-server yang dirancang dan diperuntukkan bagi pernsahaan dagang dalam memanipulasi dan mengatur semua data mereka dengan menawarkan berbagai kemudahan dalam pengoperasiannya, kecepatan
dan
ketepatan
dalam
pemrosesannya,
keakuratan
dalam
penghitungan ahmtansi transaksi penjualan dan pembelian serta lebih fleksibel tidak tergantung pada platform tertentu. 2. Aplikasi
Sistem
Mesin
Kasir
Terdistribusi
Berbasis
Client-Server
dikembangakan dengan menggunakan bahasa pemrograman Java dengan menggabungkan berbagai macam teknologi, yaitu antara lain JDBC untuk
359
koneksi ke database, RMI untuk koneksi client-server dan AWT serta JFC untuk tampilan GUI. 3. Aplikasi Sistem Mesin Kasir Terdistribusi Berbasis Client-Server dibagi menj adi dua buah program, yaitu program server yang diberi nama Server
Tako Online dan program client yang diberi nama Client Tako Online.
5.2. Saran Saran yang dapat penul is sampaikan kepada berbagai pihak atau mahasiswa
lain
bempa
pengalaman
penulis
selama
pembuatan
dan
mengembangkan aplikasi ini, yaitu antara lain : 1. Dalam pengembangan aplikasi sistem mesin kasir terdistribusi ini, mungkin terdapat komponen atau fungsi yang belum te1integrasi di dalam sistem. Misalnya fasilitas input data melalui barcade reader, pembayaran melalui kaiiu kredit dan koneksi dengan suplier. Dalam pengambangan sistem selanjutnya, penulis berkeinginan untuk melengkapi sernua fasilitas yang ada pada program ini, atau mungkin ada pihak lain yang ingin mengembangkan aplikasi ini. 2. Pada aplikasi sistem yang penulis kembangkan,
terntama pada saat
perancangan dan implementasi sistem, lebih banyak berbicara pada seg1 coding program, ha! ini disebabkan karena diagram UML yang penulis pergunakan adalah UML dari Java-Platform Model yang langsung dapat membuat coding program (generate code). 3. Dari pengalaman pengembangan sistem ini, penulis menyarankan bahwa untuk membuat sebuah aplikasi dari suatu sistem yang baik, membutuhkan
360
suatu persiapan yang matang, yaitu antara lain harus benar-benar memahami sistem yang akan dibangun. 4. Analisis
sistem
merupakan
tahap
yang
menentukan
langkah
dalam
pengembangan sistem selanjutnya, jika terjadi kesalahan pada tahap ini, maka tahap berikutnya juga ikut salah. 5. Tahap perancangan sistem, baik perancangan database dan perancangan aplikasi merupakan aktifitas yang paling kritikal dalam proses pengembangan sistem, karena tahap inilah yang menjadi pedoman dalam proses pemrograman nantinya, dan berisi aliran kontrol dari program. Waktu melalo.1kan perancangan sistem supaya lebih lama, agar nantinya mendapatkan hasil sistem aplikasi yang baik. 6. Dalam mengimplementasikan suatu sistem harus sesuai dengan perancangan yang telah dilakukan sebelumnya. Pada tahap inilah ketelitian dan kesabaran sangat
dibutuhkan,
karena
tidak
mungkin
suatu
sistem
yang
diimplementasikan dengan langsung dapat menghasilkan sistem yang benarbenar sesuai dengan apa yang diinginkan, melainkan pasti terdapat kesalahankesalahan (bug) yang perlu untuk dianalisa kembali. Oleh karena itu, pada tahap Uji Coba Sistem digunakan untuk rnemastikan bahwa sistem tersebut benar-benar berfungsi dan terbebas dari bug. 7. Saran penulis yang terakhir adalah (khusus buat rnahasiswa lain), Jangan mudah
menyerah
mengimplementasikan
jika suatu
mendapatkan
suatu
perancangan sistem.
kesulitan
di
dalam
Karena jika mudah
menyerah, sistem yang akan dikembangkan menjadi terhambat dan lama tidak akan selesai.
DAFTAR PUSTAKA
Badriyah, Tessy. Unified Modeling Language (UML).
b.ttpj/n_"'wserver.~('Pls:
iJs eJJ.v. 3/4/2006. Dwi Prasetyo, Didik. Tip dan Trik Pemrograman Java 2. PT. Elex Media Komputindo Kelompok Gramedia. Jakarta. 2004. H. Setia Budi, Djoni dan Gunawan, Ibnu. Database Terdis1:ribusi dengan Visual Studia 6. PT. Elex Media Komputindo Kelompok Gramedia. Surabaya. 2003. Hermawan, Julius. Analisa Desain dan Pemrograman Berorientasi Objek dengan UML di Visual Basic Net. Andi Yogyakarta. Batam. 2003. Java 2 J2SE 1.5 Documentation, Sun Microsystem, hilp://sui:\Lava.com/. Java Tutorial, http_;L/.lY.wv,u:on!]g_e11t.frLirrvadog. 6/4/2006. Leonardo, Ian. Pemrograman Database dengan Java, PT. Elex Media Komputindo Kelompok Gramedia. Jakarta. 2003. Parekh,
Nilesh.
1he
Wate1:fall Model Explained.
11tt1dLwww.lmp:l~com.
Riasetiawan,
Mardhani.
Buzzle
Web
Portal.
l/5/2005.
Tinjauan
Teroitis
Sistem
Informasi
Akuntansi,
http://mardhani.staff.ugm.ac.iq. ·11/4/2006 Rickyanto, Isak. Tutorial Pengenalan Java RMI, Sun Java RMI Tutorial. Riasetiawan,
Mardhani.
Tinjauan
Teroitis
Sistem
Informasi
Akuntansi,
http://rnardhani.staffugrnAQiGL. 11/4/2006. Smalltalk Tutorial, hilldlwlVWJ11f ufsc:Ji.i:Lrooh;prnlltalklibmlJJ!lQTial( 6/4/2006. Syahroni, Nanang. Database. h.ttp:l/lecturei: t:9nis.:i.ts.edu/. 1 J/4/2006.
LAMPIRAN A CARA INSTALASI SISTEM
Pada lampiran ini akan dibahas rnengenai cara instalasi (pemasangan) dari Aplikasi Sistem Mesin Kasir Terdistribusi Berbasis
Client-S<~rver
dan aplikasi lain
yang rnendukungnya. Instalasi sistem ini meliputi instalasi pada : 1. Java Vislual Machine (Jika belum terpasang) 2. Manajernen Database (Jika belum terpasang) 3. lnstalasi Aplikasi Sistem Mesin Kasir Terdistribusi
A. lnstalasi Jm•a Virtual Machine (JVM) lnstalasi ini harus dilakukan apabila belum ada JVM yang terpasang pada sistern komputer. JVM rnerupakan software pendukung utarna untuk dapat menjalankan aplikasi ini. Aplikasi Sistern Mesin Kasir Terdistribusi ini tidak akan dapat beroperasi tanpa JVM. JVM yang dapat digunakan untuk mengoperasikan aplikasi ini adalah Java Runtime Environmen (JRE) versi 1.5.0 atau lebih. Untuk mendapatkan file
instalasi tersebut dapat di-download pada htt1u.Liava,_~\ln,s:om_.
B. Instalasi Manajemen Database Instalasi aplikasi database juga harus dilakukan apabila belurn terdapat suatu aplikasi yang dapat digunakan untuk mendukung rnanajemen database. Aplikasi database yang dapat dioperasikan oleh Aplikasi Sistem Mesin Kasir
A.2
Terdistribusi ini hams berupa rnanaJemen database yang mendukung JDBC, misalnya adalah aplikasi database MySQL. Untuk dapat menghubungkan aplikasi database dcngan JVM, terdapat suatu driver yang menghubungkannya. Sebagai contoh, untuk manajemen database MySQL, driver yang digunakan adalah MySQL Connector;) dengan narna file adalah mysql-connector-java-5.0.0-beta-bin.jar (nama file tergantung pada versi dan nama aplikasi database). Kemudian file ini disimpan di dalam suatu direktori Java Library, misalnya C:\Program Files\Java\jrel .5.0_ 02\lib\ext\. Apabila aplikasi manajemen database telah terpasang, pertama kali yang dilakukan adalah membuat suatu database yang akan digunakan untuk menyimpan data dari Aplikasi Sistem Mesin Kasir Terdistribusi. Misalnya : database tersebut diberi nama tokoonline. Untuk dapat mengoperasikan sistem ini, sabuah database han.1s dibuat, ha! nu disebabkan karena pada saat koneksi ke aplikasi database, yang pertama dipanggil dalam URL koneksi adalah nama database 1ersebut. Misalnya j dbc: my sq I://localhost:3 307/tokoonline.
C. lnstalasi Sistem Aplikasi lVIesin Kasir Terdistribusi
Setelah instalasi terhadap JVM dan aplikasi database dilaln1kan, langkah selanjutnya adalah instalasi terhadap Aplikasi Sistem Mesin Kasir Tedistribusi. Caranya adalah dengan mengeksekusi file MesinKasirTerdistribusi.exe (file setup), kemudian tampil form instalasi seperti gambar berikut :
A.3
t>e1arna1 datang untuf~ pemasangan aplil
Gambar A.l Form Instalasi Sistem
Untuk menginstal aplikasi ini dapat dilakukan dengan menekan button
I
h1sta.ll
l,
untuk membatalkan instalasi sistem dapat dilakukan dengan
Setelah proses instalasi dilakukan, secara otomatis terdapat shortcut di dalam desktop komputer dan di dalam menu Start\Programs dengan nama ServerTokoOnline yang mempakan aplikasi server dan ClientTokoOnline yang mempakan aplikasi client.
LAMPIRAN B CARA PENGGUNAAN SISTEM
Pada lampiran ini akan dibahas mengenai earn penggunaan (manual) dari sistem mesin kasir terdistribusi berbasis client-server.
A. Server Tolw Online Manual Aplikasi Server Toko Online digunakan sebagai pusat dari semua kegiatan yang dilakukan oleh sistem mesin kasir terdistribusi. Di dalam Server Toko Online terdapat 12 buah manajemen yang digunakan untuk memanipulasi dan menganalisis semua data. Tampilan Aplikasi Server Toko Online adalah sebagai berikut :
Gambar B.l Tampilan Aplikasi Server TiJko Online
B. 2
Penjelasan komponen-komponen yang ada di aplikasi Server Ti1lw Online : Merupakan icon untuk menampilkan Data Barang Manager Merupakan icon untuk menampilkan Kalender Merupakan icon untuk menampilkan Client Manager Merupakan icon untuk menampilkan Jenis Barang 11/Janager Merupakan icon untuk menampilkan RMI Connection Manager Merupakan icon untuk menampilkan 7/·ansaksi Manager Tahunan Merupakan icon untuk menampilkan Transaksi Manager Bulanan Merupakan icon untuk menampilkan Chart fransaksi Tahunan Merupakan icon untuk menampilkan Chart Transaksi Bulanan Merupakan icon untuk menampilkan Stok Barang lvfanager Merupakan icon untuk menampilkan Client Monitoring Merupakan icon untuk menampilkan Table Manager Merupakan icon untuk menampilkan Database Connection Manager Merupakan icon untuk memutuskan hubungan dengan aplikasi database
l. Database lonnection IYlanager
Database Connection Manager digunakan untuk manajemen koneksi ke aplikasi database. Manajemen ini termasuk buat koneksi baru, rubah koneksi yang sud ah ada, hap us koneksi yang tidak perlu, menghubungi (connect) database dan memutus hubungan (disconnect) dengan database. Tampilan Database Connection lvlanager adalah sebagai berikut :
B. 3
Nam a
[~~"]
Driver
J
D~ete
~----
L~~~-~~J
Database URL root
User Name Password
Gambar B.2 Tampilan Database Connection Manager
a. Button
l=ii°ew
.!
digunakan untuk menambah koneksi database yang barn.
Tampilan New Database Connection adalah sebagai beriku1 :
Driver URL
Use.rname
Password
GambarB.3 Tampilan New Database Connection
B. 4
Fungsi dari setiap button New Database Connection adalah sebagai berikut :
l·~t~j
Digunakan untuk rnengetes koneksi database yang akan disirnpan.
[~Cle~r
Digunakan untuk rnernbersihkan sernua teks yang ada pada field isian
[~
.J
Simpan
Digunakan untuk menyirnpan koneksi database yang telah diinputkan
Can::"._)
Digunakan untuk rnernbatalkan penyimpanan data koneksi database
D~lete
b. Button
digunakan untuk menghapus koneksi database yang tidak
diperlukan. c.
B utton I· - - -
Update
l digunakan untuk merubah koneksi database yang sudah ada.
Tarnpilan Update Database Connection adalah sebagai berikut :
Name
. . . . . . . . . . . . . . . . . . . . ·············'
DrlVer
i__Te'LJ l Cl~~
URL Username Password
Garnbar B.4 Tampilan Update Database Connection
Fungsi dari setiap button Update Database Connection adalah sebagai berikut :
B. 5
-:r;;;t
Digunakan untuk mengetes koneksi database yang akan diupdate
J
L Clea~
Digunakan untuk membersihkan semua. teks yang ada pada field isian
i-r;:;;,;;;;;-·J
Digunakan untuk mengupdate koneksi database yang telah diganti
1·.·
<:"_i:icel
.1
Digunakan untuk membatalkan perubahan data koneksi database
d. Button 1-cg:;;;;;~t~J digunakan untuk menghubungkan aplikasi server sistem mesin kasir terdistribusi dengan aplikasi manajemen database. Jika koneksi berhasil, akan clitampilkan pemberitahuan bahwa koneksi berhasil dilakukan :
GambarB.5 Selamat,. Koneksi database berhasU dilabJkan
Tampilan pemberitahuan koneksi database berhasil clilakukan
Namun jika koneksi gagal, akan clitampilkan peringatan bahwa terjacli kesalahan :
Maaf, SQL error Pesan error adalah sebagai berilillt : java.sq!.SQLException: Access denied for user 'root'(Q.:i'!ocalhost1 (using p:ilssword: I/ES) ;-·~1
I o1:. I
G1mbar B.6 Koneksi gaga! dilakukan
L~~J
Tampilan pemberitahuan koneksi database gaga! clilakukan
B. 6
e. Button r-~;~~I digunaka.n untuk membatalkan koneksi dengan aplikasi manajemen database.
2. Data Banmg !vlmwger Data Barctng Jvlanager digunakan untuk manajemen data barang. Manajemen
ini termasuk penambahan data barang, update data barang yang sudah ada, hapus data barang yang tidak perlu, mencari (searching) data barang sesuai dengan yang diinginkan dan memasukkan default value pada manajemen data barang. Tampilan Data Barang Jvlanager adalah sebagai berikut :
B. 7
Gambar B.7 Tampilan Data Barang Manager
a. Penambahan data barang bisa dilakukan dengan dua cara, yaitu dengan menggunakan form Tambah Barang Baru atau dengan cara memasnkkan data barang langsung pada tabel data barang (pada pengembangan selanjutnya, dapat menginput data barang menggunakan barcode reader). Untuk memasukkan data barang melalui form Tambah Barang Baru adalah dengan menggunakan Button Tampilan form tersebut adalah sebagai berikut :
B. 8
Jenis Barang : Harga Eleli
Disf
Harga Jual D!skDnJual
Satuan Tanggal Edit : Tangga! Buat: Keterangan :
GambarB.8 Tampilan Tambah Barang Barn Button I_ dimasukkan
dan
:;impan_ _ _I
button
digunakan untuk menyimpan data barang yang telah
r~.tai-··1
digunakan
untuk
membatalkan
penyimpanan data barang.
b. Perubahan data barang bisa dilakukan dengan dua earn, yaitu dengan menggunakan form Edit Data Barang atau dengan cara merubah data barang langsung pada tabel data barang (pada pengembangan selanjutnya, dapat menginput data barang menggunakan barcode reader). Untuk merubah data
B. 9
barang melalui form Edit Data Barang adalah dengan menggunakan Button Tampilan form tersebut adalah sebagai berikut :
Kode Nama Kode Jenls Jenis Bal'ang 1 H.::irga Be!i
Oiskon Beii Harga Jual
Diskon Jua! Satuan
Tanggal Edit :
; Kamis, 1 Jun! 20_06 ~ 16:24: 1
Tanggal Buat! Keterangan :
GambarB.9 Tampilan Edit Data Barang
Button
·---··~R._u_b_a_h -·--·
digunakan untuk merubah data barang yang telah
dimasukkan dan button l._~~a_tal data barang.
J
digunakan untuk m<~mbatalkan perubahan
B.10
c. Penghapusan data barang bisa dilakukan dengan dua cara, yaitu dengan menekan tombol Delete pada keyboard atau dengan button
. Kemudian akan tampil
konfirmasi penghapusan data barang seperti tampilan berikut ini :
Apakilh orida \'akin menghapus data dengan l
[_Hap~
Batal
GambarB.10 Tampilan Konfirmasi Penghapusan Data Barang
d. Untuk mencari suatu data barang terdapat banyak option yang digunakan, yaitu : :ASC !Harga Jual
• 1000
Digunakan untuk ascending dan descending pada urutan data barang Digunakan untuk memilih kolom tabel data barang yang akan dicari Merupakan field pencarian Digunakan untuk memilih kondisi data barang yang akan dicari Jika pencarian berupa tanggal, maka akan tampil seperti gambar di sampmg
e. Untuk memasukkan default value pada Data Barang Manager bisa dilakukan dengan menggunakan button sebagai berikut :
Maka akan tampil form Default Value, yaitu
B.11
Persentase Harga Jual Persentose Diskon Jual
Perse:ntase DlsY-.on Bell
Garnbar B. l l Tampilan Default Value
3. Jenis Barang Manager
.!enis Barang Aianager digunakan untuk manajemen data jenis barang. Manajemen ini termasuk penambahan data jenis barang, update data jenis barang yang sudah ada, hapus data jenis barang yang tidak perlu. Tarnpilan Jenis Barang
Manager adalah sebagai berikut :
-{
Gambar B .12
B.12
a. Penambahan data jenis barnng bisa dilakukan dengan dua earn, yaitu dengan menggunakan form Tambah Jenis Barang Baru atau dengan earn memasukkan data jenis barang langsung pada tabel data jenis barang. Untuk memasukkan data jenis barang melalui form Tambah Jenis Barang Baru dapat dilakukan dengan . Tampilan form tersebut adalah sebagai berikut :
menekan Button
Kode Jenls Barang
Nama Jeni::; Barang Pajak
Tgl Edit
1 Juni 2006 - 17:58:2"
Tgl Suat Ketet'angan
Gambar B.13 Tampilan Tambah Jenis Barang Baru
Button I
2":npan
_]
digunakan untuk menyimpan data jenis barang yang
telah dimasukkan dan button penyimpanan data jenis barnng.
[!.atal
I
digunakan untuk membatalkan
B.13
b. Perubahan data jenis barang bisa dilakukan dengan dua cara, yaitu dengan menggunakan form Edit Jenis Barang atau dengan cara merubah data jenis barang langsung pada label data jenis barang. Untuk merubah data jenis barang melalui form Edit Jenis Barang adalah dengan menggunakan Button
. Tampilan form
tersebut adalah sebagai berikut :
!~ode
Jen!S Bararig
Pajak Tg! Edit
Tgl Buat KeterangQn
Rubah
L
GambarB.14 Tampilan Edit Jenis Barang Button
Rubah
digunakan untuk merubah data jenis barang yang
telal1 dimasukkan dan button L_aatal perubahan data jenis barang.
_I
digunakan untuk membatalkan
B.14
c. Penghapusan data jenis barang bisa dilakukan dengan dua earn, yaitu dengan menekan tombol Delete pada keyboard atau dengan button
. Kemudian akan
tampil konfirmasi penghapusan data jenis barang seperti tarnpilan berikut ini :
i\pakah anda yakin menghapus data jenis barang dengan kode '4857'?
Garnbar B. 15 Tarnpilan Konfirrnasi Penghapusan Data Jenis Barang
4. Transaksi llfmwger Bulmum
fransaksi Manager Buhman digunakan untuk rnanajernen data transaksi perbulan. Manajernen ini terrnasuk analisis transaksi setiap client, analisis transaksi setiap hari, rnenarnpilkan data transaksi secara simple (ditarnpilkan hanya jumlahnya saja), rnenampilkan senma data transaksi, menarnpilkan data barang hasil transaksi, mencari data transaksi berdasarkan urutannya (searching), navigasi next-back dengan jumlah transaksi yang ingin ditampilkan serta pemilihan bulan dan tahun transaksi. Tampilan Transaksi Manager Bulanan adalah sebagai berikut :
B.15
Gambar B.16 Tampilan Transaksi Manager Bulanan
a. Untuk menganalisis transaksi setiap client pada Transaksi Manager Bulanan, dapat dilakukan dengan memihh tab By Client, seperti tampilan berikut ini :
5
fiJ Trs -- 1
Gambar B.17
!$. Trs -- 2
Trs --3
_..,.:
-~~J 2 -- client 2
'+; Tg! -- 2 'fl ~,-~J Tgl -- 3 ,·~:' 3 -- dient 3 ._+4 -- die.nt 4
+
5-- drnm7
Tampilan Select By Client
B.16
b. Untuk menganalisis transaksi setiap hari pada Transaksi Manager Bulanan, dapat dilakukan dengan memilih tab By Tanggal, seperti tarnpilan berikut ini :
0, Trs --6 -¢ Trs -- 7 ,": .,..J Tgl-- 2 +: -- )Tg!--7 ,._JTg!--9 ;; _JTg!--11 ,~,J
GambarB.18 Tampilan Select By Tanggal
Tg!-- 14
:t -.: ..\ Tgl--17
't "",J Toi-- 18 ~--
:l'
, ..J Tg!-- t9 __ .J Tg!-- 20 ~-J
Tgl-- 21
____ J TQI -- 23
c.
Untuk menarnpilkan data transaksi secara simple, dapat dilakukan dengan rnemilih tab simple, seperti tampilan berikut ini :
Garnbar B.19 Tampilan Simple fransaksi
d. Untuk menampilkan semua data transaksi, dapat dilakukan dengan memilih tab
All Data fransaksi, seperti tampilan berikut ini :
B.17
"" M
" "' ""
'
" " GambarB.20 Tampilan All Data Transaksi
e. Untuk menampilkan data barang hasil transaksi, dapat dilakukan dengan memilih tab Data Barang, seperti tampilan berikut ini :
Gambar B.21 Tampilan Dala Barang Transaksi
B.18
f
Untuk mencari suatu data transaksi, dapat dilakukan dengan memasukkan keyword pada field No. Urut, sepe1ti tampilan mencari nomor urut transaksi 5 berikut ini :
Gambar B.22 Tampilan Searching Data Transaksi
g. Untuk menggunakan navigasi next-back dengan jumlah transaksi yang ingin ditampilkan dapat dilakukan seperti gambar berikut, pada contoh gambar di bawah ini ditampilkan 7 buah transaksi :
Gambar B. 23 Tampilan Navigasi dan Jumlah Transaksi yang ingin ditampilkan
B.19
h. Untuk menganalisa data transaksi pada bulan dan tahun tertentu dapat dilakukan seperti gambar berikut ini :
GambarB.24 ' ·f:, _..J 2 -- client Z :i:: -~J 3 -- client 3
Tampilan Pemilihan Bulan dan Talmn
j 4 -- client 4 ',+: ~:~J 5 -- clmm7 t
5. Transaksi Manager Talmnan Transaksi Manager Tahunan digunakan untuk mamijemen data transaksi
pertahun. Manajemen ini termasuk analisis transaksi setiap client, analisis transaksi setiap bulan, serta pemilihan talmn transaksi. Tampilan Transaksi fo..1anager Bulanan adalah sebagai berikut :
Garnbar B.25 Tarnpilan Transaksi Manager Tahunan
B.20
a. Untuk menganalisis transaksi setiap client pada Transaksi !Manager Tahunan, dapat dilakukan dengan memilih tab By Client, seperti tampilan berikut ini :
..Jl-l Bln_APP.IL
:.: -,
.~J
Tg! -- 2•1 Trs-- 7 Trs -- M Trs Trs -W Trs Ii Trs
-- 15 --21 -- 22 -- 23
,T.· .•J Tgl -- 27 _f ,_J Tgl -- 28 ,+, -- 29
Gambar B.26 Tampilan Select By Client
'f "'j Tgl -- 26 ;f
JTgl--30
..,J Tgt-- 23 ·+: ...-.J Bln_JLWI + Bln_MP.RET :+! '+ ;1
Bln_MEI
3 -- chent 3
:+ •.+
~l
'.+; -_,_/ Bln,YEBRUARI 2--dent2
4 -- client 4
_J 5 -- dmm?
b. Untuk menganalisis transaksi setiap bulan pada fransaksi Manager Tahunan, dapat dilakukan dengan memilih tab By Bulan, seperti tampilan berikut ini :
d: ____ J l -- dient l
,...J 2 -- client 2 Trs--9 t!! Trs-- 1! &! Trs-- 12
~
t
®' Trs -- 13 '±: .:.J 3 -- client 3 _jTgl--26 ...J Tgl -- 27
"ii _-_~J Tgl-- 28 J Tgl -- 29 £- ~J Tgl -- 30 j B!n_JUN!
;f ___
.+ ._t:
_J Bln_MARET Bln_MEI
t :I;
..
J Bln_PEBRUARI
GambarB.27 Tampilan Select By Client
B.21
c. Untuk menganalisa data transaksi pada tahun tertentu dapat dilakukan sepe1ii gambar berikut ini :
Gambar B.28 Tampilan Pemilihan Tahun
g; Trs-- 11 1011 Tr.-:;; -- 1?
6. Chart Transttksi Bu/mum
Chart Transaksi Bulanan digunakan untuk manajemen data transaksi perbulan dengan menggunakan chart. Manajemen ini termasuk analisis transaksi setiap client, analisis transaksi setiap hari, pemilihan komponen transaksi (penjualan, pembelian, laba, pajak), pemilihan tipe dari chaii (bar, line dan pie) serta pemilihan bulan dan tahun transaksi. Tampilan Chart Transaksi Bulanan adalah sebagai berikut :
B.22
:,;.
±·
~~JTgl--7
''f .:_~j T!JI -- 9 ~.> .+ :t'
.-l T>;JI ·- ! l iTi;il .. M ..
J
TiJl--17
~to •• ~J Tgl - l8
.+ Ci"·;
To;Jl -- 19 Tgl -- 20
+:
·) Tgl-- 21
·.;. _:j Tgl-- 23 ·- l Tgl-- 24 f. _j Tgl-- 26 +: .. .t T!J!-- 27 .+ .. J Tgl •• 28
VB!Bianpzin CiMrt Hat\];) Pernbeuan ~-Blllal F!p. f:i,O~·fi,280 HlfL18 Perrlill'!:an ra!8-r-)(il Rp 3/'8,5HJ
Gambar B.29 Tampilan Chart 11-ansaksi Bulanan
a.
Untuk menganalisis transaksi setiap client pada Chart Transaksi Bulanan, dapat dilakukan dengan memilih tab By Client, seperti tampilan berikut ini :
0 .+; •. ~1191-9
Gambar B.30
.+. ,..JTg\-- ll
t• •...JTgl--14 ~JTgl--17
.. J Tgl-- 18 I T1JI-- 19
.. ·;Tgl
20
JTgl--21 --~j
Tgl-· 23
_+; ·";Tgl--24 +. ___ l Tgl -- 26
..• JTg1--27 f· .•. )Tg\--213 t:
2--dent2
·1; ."J 3-- client 3
.-l 4 -.dent 4 l5--dmm7
Tampilan Select By Client
B.23
b. Untuk menganalisis transaksi setiap hari pada Chart Transaksi Bulanan, dapat dilakukan dengan mernilih tab By Tanggal, seperti tampilan berikut ini :
-0 Trs-6 (fr Trs • 7
___ J T9\-- 2
Garnbar B.31
__ j H)l-- l
.:J T(I!-· 9 j
_JTiJl--11 Tgl-- H
Tampilan Select By Tanggal
i-- -~·.i
+· ,;_J Tgl -- 17 t _-,;Tgl--rn ; ,;, ~ - Tgl .. 19 t
-~:J Tgl
-- 20
i Tgl- 21 :h
c.
JTOl--23 ''"J Tul-- 24 , i Tgl - 26 ~:J Tgl - 27 ,,JTgl -23
Untuk memilih tab kornponen transaksi pada Chart fransaksi Bulanan, dapat dilakukan dengan rnernilih tab di atas chart transaksi, yaitu seperti tarnpilan berikut ini :
Garnbar B.32 Tarnpilan Taransaksi Cmnponent Tabbed
d. Untuk rnernilih bentuk chart (chart l)pe) pada Chart Transaksi Bulanan, dapat dilakukan dengan rnernilih combo box Sentuk'
Betuk chart terdapat
tiga rnacam pilihan, yaitu balok (bar), line dan lingkaran (pie), yaitu seperti tampilan berikut ini :
B.24
Gambar B.33 Tarnpilan Chart Balok (Bar)
5(!!) 8il0
GambarB.34 Tampilan Chart Line
GambarB.35 Tampilan Chart Lingkaran (Pie)
B.25
e. Untuk menganalisa data transaksi pada bulan dan tahun tertentu dalam Chart
Transaksi Bulanan dapat dilakukan seperti gambar berikut ini :
Gambar B.36 2003 2002 2001 2000
Tampilan Pemilihan Bulan dan Tahun
1999
7. C'!wrt Trtm.rnksi Tahunan
Chart Transaksi Tahunan digunakan untuk mana_1emen data transaksi pertahun dengan menggunakan chart. Manajemen ini termasuk analisis transaksi setiap client, analisis transaksi setiap hari, pemilihan komponet1 transaksi (penjualan, pembelian, laba, pajak), pemilihan tipe dari chart (bar, line d<m pie) serta pemilihan tahun transaksi. Tampilan Chart fransaksi Tahunan adalah sebagai berikut :
B.26
!'t'iHiln[Wn
Gf•ari Pt>njtHliln set1ap
~\u!2n
pacla !aliun 200G
Jumlah Jutal PeniuJliln Rp JumL;ih 1·c)[z,·rill8 P!!llilWi
GambarB.37 Tampilan Chart Transaksi Tahunan
a. Untuk menganalisis transaksi setiap client pada Chart Transaksi Tahunan, dapat dilakukan dengan memilih tab By Client, seperti tampilan berikut ini :
Bln_JUNI
.. _J rgl-· 2 ___J TQI -· 3
GambarB.38
-$ Trs -- l
Tr5 - 2 Tr5 -- 3 •fr Trs .. 4
fJl
Bin.Jl!ARET
-1:
-~J Bln_MEI 7' j Bln_PEBRUARI
i · ~--J 2 -- dient 2 3 -- client 3
;t: _:__ ;
+i •.
;, +;
J
~~J
'I --
dient 'I
5- dmm7
Tampilan Select By Client
B.27
b. Untuk rnenganalisis transaksi setiap bulan pada Chart Transaksi Tahunan, dapat dilakukan dengan memilih tab By Bulan, seperti tampilan berikut ini :
',::::1 ":1·.~ ·.:~.
't _"J I -- client 1 _:_12-d1ent2
:·:·:··
0:1 Trs--9 Trs -- 11 Trs -- 12 !Ji/.! Trs--13
Gambar 13.39
.
Tarnpilan Select By Bulan
;-,\l_1)_Q_I t .i~.
: :~'.:
26 Tgl--27
_.J Tgl--28 '+· •.. J Tg!-- 29 .f, t,
..
.i,
__
r 'ti
c.
M:_J Tgl-- 30
.
Bln_JUNI
-t,-
l'J•\+:;)_
J Pln_MARET J Bln_MEI
;~-'
'-,-,-,
_J Bin_PEBRUARI
Untuk memilih tab komponen transaksi pada Chart Transaksi Tahunan, dapat dilakukan dengan memilih tab di atas chart transaksi, yaitu seperti tarnpilan berik ut ini :
GambarB.40 Tampilan Taransaksi Component Tabbed
d. Untuk memilih bentuk chart (chart type) pada Chart Transaksi Tahunan, dapat dilakukan dengan memilih combo box Bentuk:
Betuk chart terdapat
tiga rnacam pilihan, yaitu balok (bar), line dan lingkaran (pie), yaitu seperti tarnpilan berikut ini :
B.28
Garnbar J3 .41
Tampilan Chart Balok (Bar)
7,5J
.s:w
GambarB.42
Tampilan Chart Line
40 ' OS. -00 /c,f'f11!_ M1--r: .'r JVf
Gambar B.43
Tampilan Chart Lingkaran (Pie)
B.29
e. Untuk menganalisa data transaksi pada tahun tertentu dalam Chart Transaksi Tahunan dapat dilakukan seperti gambar berikut ini :
GambarB.44 Tampilan Pemilihan Bulan dan Tahun
8. Stok B11rang M 11n11ger
Stok Barang Manager digunakan untuk rnanajernen stok barang. Manajernen 1111
terrnasuk update stok barang, update tanggal kadaluarsa, update stok minimal,
update stok maksimal serta rnenampilkan detail stok bara.ng. Tampilan Siok Barang Jvfanager adalah sebagai berikut :
GambarB.45
B.30
a. Perubahan stok barang dapat dilakukan dengan tiga cara, yaitu : dengan form Edit Stok Barang, memasukkan stok barang lewat form Detail Barang dan memasukkan stok barang lewat tabel stok barang. Untuk merubah data barang melalui form Edit Stok Barang adalah dengan menggunakan Button Tampilan form tersebut adalah sebagai berikut :
Kode
Stok TeraY..hlr Dipanggi!
Minim
•.: 200
Ti;JI Edit Stok
Ketenir,gen
GambarB.46 Tampilan Form Edit Stok Barang
Button
I
:;;mpan
.J digunakan untuk merubah stok barang dengan stok
barang yang barn dan button
digunakan untuk membatalkan
perubahan stok barang.
b. Perubahan tanggal kadaluarsa dapat dilakukan dengan dua cara, yaitu
dengan
form Edit Stok Barang (seperti pada gambar di atas) dan merubah tanggal kadaluarsa lewat tabel stok barang seperti tampilan berikut :
B.31
GambarB.47 Tarnpilan Perubahan Tanggal Kadaluarsa
c. Perubahan stok maksimal dan stok minimal dapat dilakukan dengan dua cara, yaitu : dengan form Edit Stok Barang (seperti pada gambar perubahan stok barang di atas) dan merubah stok maksimal dan stok minimal lewat tabel stok barang seperti tampilan berikut : Minimal
20
'
20 20
Maksimal
T•
GambarB.48 Tampilan Perubaban Stok Maksimal dan Stok Minimal
5 r
d. Detail Siok Barang merupakan komponen Stok Barang fl;fanager yang digunakan untuk melihat secara detail stok barang yang pernah dimasukkan ke dalam Stok
Barang Manager, Detail Stok Barang divisualisasikan dengan form Detail Barang. Tampilan form Detail Barang adalah sebagai berikut :
B.32
Stok
brarnbang goreng 185
Jm! data stok masuk yang tarpllih : -3 Jm! total stok masuk: 90 Oktober
GambarB.49 Tampilan Form Detail Barang
9. Client Manager
Client
Manager
digunakan
untuk
manaJemen
>;emua
aktifitas
dan
memanipulasi data client. Manajer ini termasuk penambahan data client barn, perubahan data client yang sudah ada, penghapusan data client, pengiriman pesan ke seorang client, tidak mengaktifkan (disconnect) dan mematikan program client se1ia memblokir (blocking) suatu client dengan memberi kesempatan untuk aktif pada waktu tertentu. Tampilan Client Manager adalah sebagai berikut :
B.33
GambarB.50 Tampilan Client Manager
a. Penambahan data client bisa dilakukan dengan dua cara, yaitu dengan menggunakan form Tambah Client Barn dan dengan cara memasukkan data client langsung pada tabel client. Untuk memasukkan data client melalui form Tambah Client Barn dapat dilakukan dengan menekan Button adalah sebagai berikut :
Kode Clfent Noma Client
Confirm Password
Alamat Tgl Edit Tgl Buat Kcler1.mgan
GambarB.51 Tampilan Tambah Client Barn
Tampilan form tersebut
B.34
Button dimasukkan
I-· dan
;:Jmpan
_,
button
digunakan untuk menyimpan data client yang telah 1____ ~!~ 1
_J
digunakan
untuk
membatalkan
penyimpanan data client.
b. Perubahan data client bisa dilakukan dengan dua cara, yaitu dengan menggunakan form Perubahan Data Client dan dengan cara merubah data client langsung pada tabel client. Untuk merubah data client melalui form Perubahan Data Client adalah dengan menggunakan Button
. Tampilan form tersebut adalah sebagai
berikut :
Kode di"ht
J
:
1
N::irntt Client
Password
Confirm Password Alamat TglEdil: Tgl Buat
GambarB.52 Tampilan Perubahan Data Client Button 1--;;:;bah dimasukkan dan button data client.
_J
digunakan untuk merubah data client yang telah
L
"t!~tol ___J digunakan untuk membatalkan perubahan
B.35
Untuk merubah password seorang client, dapat dilakukan seperti pada gambar berikut ini :
P.asio;word L
GambarB.53
P
Confirn-1 Password '1
Tampilan Perubahan Password Client
c. Penghapusan data client bisa dilakukan dengan dua cara, yaitu dengan menekan tombol Delete pada keyboard atau dengan button
Kemudian akan tampil
konfirmasi penghapusan data client dua kali seperti tampilan berikut ini :
Apakah anda yaWn.menghapus data dengati kode 15'?
,1
~---·----&-•-~·-·-~'-•fil-------------*"------~m==rn:J 1
Seluruh data transaksi pa'da cllen_t. 5'_ akan terh.·a. p. us_,- a. p. akah anda tetap lngin m.e ngh_apus. dient in_j· ,_ - .
I Hapus J u;i;al J Gambar B.54 Tampilan Konfirmasi Penghapusan Client
B.36
d. Untuk mengirim pesan ke seorang client, dapat dilakukan dengan button selanjutnya akan tampil dialog untuk pengiriman pesan sepc>rti gambar berikut ini:
Gambar B. 55 Tampilan Mengirim Pesan ke Client r-·~end
J
Pada program client akan tampil dialog sepe1ii gambar berikut :
GambarB.56 Tampilan Kiriman Pesan dari Server
e. Untuk memutuskan hubungan (disconnect) seorang client, dapat dilakukan dengan button
sedangkan untuk mematikan program client, dapat dilakukan
dengan button f
Untuk memblokir (blocking) suatu client dan memberi masa aktif suatu client, dapat dilakukan seperti gambar berikut ini : Blocked
Akt GambarB.57 Tampilan Pilihm1 Pemblokiran Client
Tidak
B.37
Untuk pemberian waktu aktif pada seorang client : [ilActive f·,·1ulai Aktif
GambarB.58
Jam:: 7
:O:O - 4:48;0 -4:0:10
Tldak AkUf
Tampilan Pemberian Waktu Aktif
Jam:; 22
10. RJWI Connection Manager RMI Connection Manager digunakan untuk manajernen penyedia layanan koneksi server dan memanipulasi data koneksi. Manajer ini termasuk penambahan data koneksi baru, perubahan data koneksi yang sudah ada, penghapusan data koneksi, mengaktifkan koneksi (connect), tidak mengaktiflrnn koneksi (disconnecl), mengaktifkan semua koneksi (connect All) dan tidak mengaktiflrnn semua koneksi (disconnecl All). Tampilan RMI Connection l'vfanager adalah sebagai berikut:
Gambar B.59 Tampilan RMI Conneclion Manager
B.38
a. Penarnbahan data koneksi Rl'v!I bisa dilakukan dengan dua cara, yaitu dengan rnenggunakan form Tarnbah Koneksi Barn dan dengan cam mernasukkan data koneksi RMI langsung pada tabel koneksi. Untuk rnernasukkan data client melalui form Tambah Koneksi Baru dapat dilakukan dengan menekan Button Tampilan form tersebut adalah sebagai berikut :
Kode Bind Porl:
Statu;; Tengoo! Edit } Tangg;;i\ 8uat! Keter.:mgan :
GambarB.60 Tampilan Tambah Client Barn
Button 1...........1'.~pan __Jdigunakan untuk menyimpan data koneksi RlVII yang telah dirnasukkan dan button penyirnpanan data koneksi RlVII.
I
§at~
]
digunakan untuk membatalkan
B.39
b. Perubahan data koneksi RMI bisa dilakukan dengan dua earn, yaitu dengan menggunakan form Edit Koneksi dan dengan earn merubah data koneksi RMI langsung pada tabel koneksi. Untuk merubah data koneksi melalui form Edit Koneksi adalah dengan menggunakan Button
. Tampilan form tersebut adalah
sebagai berikut :
serveru
Bind
Port Status
1angga1 Edit :
\ 'f,nng·g·u, ~-;un1-ZC10o· :·s·:·54;30
Tanggal &Jat:
i-.~~1~9~~-1-..~~:-~P,~i[3-9§G :·1~-: if_:_~i. . ........... ,
Keter.:ingan ;
GambarB.61 Tampilan Perubahan Data Koneksi Rl\1I
Button
Rubah
dimasukkan dan button data client.
digunakan untuk merubah data client yang telah
c__~=.a_ta_J
'I digunakan untuk membatalkan pembahan
B.40
c. Penghapusan data koneksi RMI bisa dilakukan dengan dua cara, yaitu dengan menekan tombol Delete pada keyboard atau dengan button
Kemudian akan
tampil konfirmasi penghapusan data koneksi RMI seperti tampilan berikut ini :
I
Apakah anda yakin menghapus data dengan kode '3' dan bind 'fauzi'
Gambar B.62 Tampilan Konfirmasi Penghapusan Koneksi RMI
d. Untuk mengaktiikan suatu koneksi RMI dapat dilakukan dengan button sedangkan untuk mengaktifkan semua koneksi RMI dapat dilakukan dengan button
Jika ingin tidak mengaktiikan suatu koneksi RMI yang sedang aktif
dapat dilakukan dengan button
sedangkan untuk tidak mengaktifkan semua
koneksi RMI yang sedang aktif dapat dilakukan dengan button
11. Client Monitoring
Client Monitoring digunakan untuk memonitor aktifitas semua client yang terhubung ke server. Di dalam client monitoring terdapat !Manager :Monitoring dan
Console Monitoring. J\1anager Monitoring digunakan untuk melihat keberadaan semua manajer yang ada di semua client, manajer mana yang terbuka dan yang aktif Sedangkan Console Monitoring digunakan untuk melihat aktifitas client secara teks.
B.41
' _;Minggu, 4 Jur~ 2006 • 15:4:52 ->
Men~'
Data Barang Viewer ., .. :Minggu, 4 Jooi 2006 - 15:'1:51 -> Men.;;okl:ifk Mernhu!<.il Kalender ... 'M,nggu, 4 Juni 2006 - 15:-1:•19 -> Mengoktifkan Transcl;:;i Manager , ..
i J4inggu, 4 Juni 2006 - 15;4:52 -> Memhuki! Oati.18arong Viewer
M;r;ggu, 4 Jur,i 2006 - 15:4:49 -) Me,T,b.uko Tran>al'.si M11nager .•
• ,f!ringgu, 4 Juni 2006 - 15:4:4S -> M~mbuk,;, Trarmiksl Manager "' Miriggt1, 4 Juni 2006 - 15:4:0-> Mengiri1nbn ITTU! barang deng Mem3;,ktifke11 Ee1tram;al"'-'i ..
Minggu, 4 Juni 2006 - 15:3:37 -> Membuka Bertrnrt.:aksi , .• Minggu, 4 Juni 2006 - 15:3:29 -> Men&ft<>tbn dili pada server ..
GambarB.63 Tampilan Client Monitoring
12. Table Manager
Table Manager digunakan untuk memanipulasi keberaclaan semua label yang ada pada sistem ini. Manajer ini termasuk menghapus suatu tabel, mengaktifan suatu tabel,
tidak
mengaktifkan suatu tabel,
membuat tabel
caclangan (backup),
mengembalikan kembali suatu tabel dari tabel cadangan (restore) dan menjalankan query pada database. Tampilan Table Manager adalah sebagai berikut :
B.42
GambarB.64 Tampilan Table Manager
a.
Penghapusan tabel bisa dilakukan dengan button
, se.lanjutnya akan tampil
peringatan penghapusan tabel seperti berikut :
Apakah anda ingin rnenghapus tabel aktif berik!Jt ? !. transaksi_rnaret_2006
2, transaksi_mei_2006
J Hapus_j
LBa~~
GambarB.65 Tampilan Peringatan Penghapusan Tabel
B43
b. Untuk mengaktiflrnn suatu tabel yang tidak aktif, pilih dulu tabel pada Tree Non Active, kemudian tekan button
selanjutnya tabel yang terpilih tadi akan
pindah dari Tree Non Active menuju free Active. c. Untuk tidak mengaktifkan suatu tabel yang aktif, pilih dulu tabel pada Ti·ee Active, kemudian tekan button
, selanjutnya tabel yang terpilih tadi akan
pindah dari 1J·ee Aclive menuju Tree Non Active. d. Untuk membuat suatu tabel cadangan, pilih dulu tabel pada free Active, kemudian tekan button
selanjutnya tabel yang terpilih tadi akan disalin
(copy) dari Tree Aclive menuju Tree Backup. e.
Untuk merestore tabel cadangan menjadi tabel aktif, pilih dulu tabel pada Ti·ee Backup, kemudian tekan button
, selanjutnya tabel yang terpilih tadi akan
pindah dari Ti·ee Backup menuju Tree Active. f
Untuk menjalankan suatu kueri, dapat dilakukan clengan memasukkan kueri pacla tempat yang telah clisecliakan, kemuclian tekan button berikut ini :
GambarB.66
~;::::;;;::::•..J
seperti gambar
B.44
B. Client Toko Online Mamu1l
Aplikasi C/ienl Toko Online digunakan sebagai aplikasi yang dioperasikan untuk bertransaksi dengan pembeli. Di dalam Aplikasi Client Tako Online terdapat empat buah manajemen (Conneclion To Server, Berlransaksi, Client Tt'Clnsaksi
lvfanager dan Data Barang Viewer). Tampilan Aplikasi Client Toko Online adalah sebagai berikut :
Gambar B. 6 7 Tampilan Aplikasi Client Toko Online
B.45
Penjelasan komponen-komponen yang ada di aplikasi Client Tako Online : Merupakan icon untuk menampilkan Data Barang Viewer Merupakan icon untuk menampilkan Kalender Merupakan icon untuk menampilkan Bertransaksi Merupakan icon untuk menampilkan Client Transaksi Manager Merupakan icon untuk menarnpilkan Connection To Server Manager Merupakan icon untuk Disconnect From Server
L
Connection To Server Manager Connection To Server Manager digunakan untuk manajemen koneksi ke
server dan manipulasi data koneksi ke server. Connection To Server !vlanager dapat rnelakukan antara lain : buat koneksi barn, rubah koneksi yang sudah ada, hapus koneksi yang tidak perlu, rnenghubungi (connect) ke server dan rnemutus hubungan
(disconnect) dengan server. Tampilan Connection To Sen>er !vfanager adalah :
l_~] LJ:!?date .J
Server IP Kode Client
Lookup Name Port
GambarB.68
B.46
a. Button L
_I digunakan untuk menambah data koneksi ke server yang baru.
Tampilan Add New Connection adalah sebagai berikut :
GambarB.69 Server IP
Tampilan Add New Connection
Lookup N.eime Port
b. Button I
Q.elete
Idigunakan untuk menghapns data koneksi ke server yang tidak
diperlnkan. c. Button
[WPd~t~~ digunaka.n u.ntuk merubah data koneksi ke server yang sudah
ada. Tampila.n Update Connection adalah sebagai berikut :
Server IP
Lookup Name Port
Gambar B.70 Tampilan Update Co1111ectio11
d.
Button'---=-~--'
digu.naka.n u.ntuk menghubungka.n aplikasi client sistem mesin
kasir terdistribusi dengan aplikasi server sistem mesin kasir terdistribusi. Jika
B.47
koneksi berhasil, akan ditampilkan pemberitahuan bahwa koneksi berhasil dilakukan:
Cient tel.:ih tonnect l{e server Port: 1024 Narna : tokoonline
GambarB.Tl Tampilan pemberitahuan koneksi ke server berhasil dilakukan
Namun jika koneksi gagal, akan ditampilkan peringatan bahwa terjadi kesalahan seperti gambar berikut ini :
Maaf" Tidak, bisa connect, mungkin server tldak ready, Pesan error : jav.;.i.rmi.ConnectException: Connection refu::;ed _to host: 127 ,0.0.1; nested eXcept1on is:
java.net.ConnectException: Connection refused: connect
GambarB.72 Tampilan gaga! karena server tidak ditemukan
Client tldak terdaftar pada ~erver; muhgVJn kode atau pass01ord sa!ah
GambarB.73 Tampilan gaga! karena client tidak terdaftm
Client_ini te!ah di blockoleh server1 anda tidakbisa n1endaftar denga"n i!ient lni
Gambar B.74
B.48
se!.irang bukan waktu-anda mendaftar,- 11·1akJ:u anda ad:S!ah rnulal janr-7:0:0 sampai jam 13:0:0
GambarB.75 TampiJan gaga! karena client mendaftar diluar waktu yang ditentukan
e. Button I_ (;ancel J digunakan untuk membatalkan koneksi dengan aplikasi server.
2. Bertransaksi
Bertransaksi merupakan manajer yang digunakan untuk melakukan transaksi
dengan pembeli (input data transaksi). Bertransaksi dapat melakukan antara lain : memasukkan data transaksi, merubah data transaksi sebelum dikirim ke server, menghapus data transaksi sebelum dikirim ke server, mengulang transaksi (restart), menyelesaikan transaksi (finishing) dan mengirim data transaksi ke server. Tampilan Bertransaksi adalah :
B.49
-•>:1.1
nwn
,...,-iv
GambarB.76 Tampilan Bertransaksi
a. Untuk memasukkan data transaksi, dapat dilakukan dengan memilih dua jenis kolom pada tabel transaksi dan baris (row) paling terakhir, kolom tersebut antara lain adalah kolom Kode Barang dan kolom Nama Barang. Secara default, jumlah barang yang dimasukkan bemilai satu, jika ingin merubah jumlah barang yang dibeli, dapat dilakukan dengan memilih kolom Banyak Tampilan pemasukkan data transaksi adalah sebagai berikut :
B.50
!."":'"""'"'J_•_
b.
a.
jahe wangi b.:i.1"°'r jajeG.mir
c. Ju ml ah
minyak super tetra i~1~sd_apjin 9go·
---
f:'?~i _j_~h? sed:p -~°-r~n? mlfl)'<'lk tamih
kop1\v3p-e.leipl <""'> :H: --bpi kBt;:in <""> 647 "'" ·- -.:kopi n'l" . _
:lU~'«lkM'lf~'tf&WA~kor;1 sorb
'1!'~•11.:::,,~;; .::~> rninycl<: -- .5647
· }.opi jahe sedap gonon•
liff@WB$.\l;Jt,"1ffl"lf>fi&.~l!Je."'W\-Sli!&ljkopl se
<=>
~-
71354~
<"'> 45764 :. , \bJpi s-edap qoreng <'."' 'kopi SB;fapo <=> 6~;4~
<"'> nww-neoo
57•1654 <""> Zilm ;59% <"'>Wm3
f;opi super<"'> 6511 ,
:kopi $1.l$U <"'> S16Ci kop! SW <=> 5•151 :ktipl x <"'> 78676
GambarB.77 a. lnput data transaksi lewat kolom Kode Barang b. Input data transaksi lewat kolom Nama Harang c. Input jumlah barang lewat kolom Banya.k
b.
Untuk merubah data transaksi, dapat dilakukan dengan memilih dua jenis kolom pada tabel transaksi dan baris (row) pada suatu temp at di mana data transaksi akan dirubah, kolom tersebut antara lain adalah kolom Kode Barang dan kolom Narna Barang. Tampilan perubahan data transaksi adalah sebagai berikut :
a.
J~~'"'~"M~d
-'<-------
0
~565334 <""> bram·::-._]\i 6~'175 <"'> extr j:;he >\ 74873<..,>iahes. ~> <de fl~l\'Hl';J 7481 <=> _i.Yte 5,j. <J, 5689 <"'> iilhe se, 4758Sl<1
b.
c.
<""> jllho S< <=> ji.lhe SC< 17$891 - mra~'mfl
s·6s69
17386
56569 43274 85412 7484
4589·18 7481
s5412 4736
}6\HO
-:3,167
A75894 <=>
jahe
-:~~~;~=~~:~:~ 47394 <""> kapal;
\P!i r~9-
j45743 <"-'>l:opi 58214 <=> l:opiQI
kop; 9il!::.1
85412 <"'>~~pi ja
-:1\opl~.,;ipalapi
-:~!~7~-~~~~;!~~-'~-r r-: "f,
<"'>~a;
- _;kepi jahe serlap go
l"I\]
,_·i,,,,,,,~Ghn
-
;:\-
GambarB.78 a.
b.
Update data transaksi lewat kolom Kode Barang Update data transaksi lewat kolom Nama Barang T Tnrl-:ltP -inrnl-:lh h-:lr-:lnrr lPnTQt l..-AIAn"I R-:lni:r'Alt
B.51
c. Untuk menghapus data transaksi, dapat dilakukan dengan dua cara, yaitu dengan menekan tombol Delete pada keyboard atau dengan button
Selanjutnya akan
tampil konfirmasi penghapusan seperti gambar berikut ini :
Apakah anda inginmenghapus data 47386 dengan n.oma jahe wangi
GambarB.79 Tampilan Konfirmasi Penghapusan Data Transaksi
d. Untuk mengulang (restarl) transaksi, dapat dilakukan dengan button e. Untuk menyelesaikan (finishing) transaksi, dapat dilakukan dengan button Selanjutnya akan tampil form Pembayaran seperti gambar berikut ini :
Jun1lah Total Bayar Ken1balian
Rp.29,920
· · · soooolt
Rp.20 1080
;-,·-·-, L· -;le!esai . ! I !;!at.~! J Gambar B.80 Tampilan Form Pembayaran
B.52
r-··---···---,
Selml J d'1gun ak an untu ]< menye ]esai'k an transak·s1, . mencet al( nota B utton ''-··~·-··"-··
penjualan dan mengirim data transaksi ke server dan button
LJatal
i digunakan
untuk membatalkan transaksi. Jika stok suatu barang habis, akan tampil peringatan seperti gambar berikut ini :
_Stok barang nama='kopi x' dg jurnlah pcimbeJian 8 ha bis dtau jtJmbh yang dtl:i6h !ebih besar daripad-::i stok yang .:ida Sto_k baran>;J narna""'kopi j&he sed.;ip goreng' dg jum1ah pemb"elian 5 habit at.:11.J jumlah y.:ing Oibeli lcliihl<esi!ir-daripada stok yang ada stok barang nanv:i,,.,'sariwangi' dg jumldh pembelian 2 habis qtou jum!ah yang dib•::!i lebih besat d:irlr1ada stok yong ada
GambarB.81 Tampilan peringatan stok suatu barang habis
3. Client Transaksi A!ftmager
Client Transaksi Manager merupakan manajer yang digunakan untuk melakukan perubahan data transaksi yang telah dikirim ke server, penghapusan data transaksi yang telah terkirim ke server, mencari data transaksi dengan keyword nomor urut transaksi dan menampilkan data transaksi pada bulan dan tahun tertentu. Tampilan Client 'fransaksi Manager adalah :
B.53
'j
'I
< _'.t
t :A ;MJr-,it--23 __ _) TQl--9 •• J TQ!-·11
:: .+ '17<Jl--M >( ~ -.:::1 Tql·-17
~l :t _:.J T<;:l·-ltl ~;it' ti ·1
_] T{)l·-19 ! Tol--2n
•: ·:1
__ j 7()1--2!
:1 _;, '•.-\
,\ TQl--23 j
T<)!·-2'1
-; --1; •• j Tql--26
J ~-,Y--2/ .•. J T(ll ?B
GambarB.82 Tampilan Client Transaksi Jvlanaf!_er
a. Untuk melakukan perubahan data transaksi yang telah dikirim ke server (misalnya: te1jadi kesalahan), dapat dilakukan dengan memilih suatu transaksi yang akan dirubah dan kemudian mengklik dua kali pada tabel transaksi atau dengan button
, selanjutnya akan tampil data barang transaksi seperti pada
gambar berikut ini :
B.54
:+;
'Jem·-0 ~."_\ j
.l:lm--12 l"!lll·-13
uro.. 19 _J ~~erut--20 '"" UrU:--2 cf'- :_.'..J ft,eriit--23 ___jT9l·-\l
•..JT<Jl-·ll t~
__ -_.]Tgl-·H
.. ~JTg/--Jl jl<;Jl--lJ.l ~:J Tgl·-19 \!, __ JTgl--20 · t .. JT<Jl·-21 ·\l __ j Tgl--2~
:.\ .f:
Gambar B.83 Tampilan Data Barang Transaksi
Langkah selanjutnya adalah menekan button
untuk rnengedit transaksi
m1, rnaka akan tampil tabel pengeditan seperti pada gambar berikut ini
.-±: :,,JJ.::m-0 >t
•• -.! Jarn.. J2
.J Jarn.. !3 ·t· ,JMcn!t--0
.ti
..J TQ--7 _Uam-19 ~-'
.J Meriit-20
d:-
.• .l Menit-23
6 Urut-2
__ j T(;l- 11 ~'.J To;l--14
__ jT<;l--17 · ,t ,,,, T{;l··lB +~ ;T<;l--19
-__
'f-l •_,J 1£1·-ZO . J T<;l·-21 ·~ ' 'T<;l-·23
Garnbar B.84
B.55
Fungsi setiap button yang ada pada pengeditan data transaksi adalah : Dignnakan untuk mengirim perubahan data transaksi ke server. Digunakan untuk menghapus suatu data transaksi. Digunakan untuk mengembalikan transaksi ke keadaan semula. Digunakan untuk membatalkan pengeditan transaksi.
Secara otomatis, hasil perubahan data transaksi ini berdampak pada stok barang pada aplikasi server. Apabila stok barang tersebut habis dalam pengeditan data transaksi, maka akan muncul peringatan seperti gambar berikut ini :
Stokbareng nama.,,'.saYiwang/ dg jumfoh perminta:m LO habis al:au jumloh yang-difnputkaf\ Jebih be$llf _d.;,rf r;iqda stok Y.\lrlg ado Stok barang i"lllrna"''kopl )l.;he sedlip goreng' dg jum!ah permintaan 20.0 habis atau jumloh YafliJ tf1lnput~E11 lebih be:rnr dari pilda st.ok yang ada
GambarB.85 Tampilan konfirmasi stok barang tidak mencukupi
b. Untuk melakukan penghapusan data transaksi yang telah dikirim ke server (misalnya: terjadi pembatalan transaksi), dapat dilakukan dengan memilih suatu transaksi yang akan dirubah dan kemudian menekan tombol Delete pada keyboard atau dengan button
selanjutnya akan tampil peringatan
penghapusan data transaksi seperti pada gambar berikut ini : GambarB.86 Apakah ~1akin ingin menghapus data ini dengan- nor'nor urut 9_?
Tampilan peringatan penghapusan data transaksi
B.56
c.
Untuk melakukan pencarian data transaksi dengan keyword. nomor urut transaksi dapat dilakukan dengan memasukkan keyword yang diinginkan seperti pada gambar berikut ini : No. Urut; '; 12! Me nit
Jam 13 11
4 5 6 7 8 9 10
19 19 28
19 19 19
12 12 12
0
·r
12 3 13 13
13
59 44
12 120 121
48 54 59
22 ······-··i-7'
·t·
Jml H;irga Penjualan
JmlHarga
Jm!Brg
Urut
281160
371360'
--7'1960:· 27;i60'. -"):i;360'.
.. ···9: 16: 7 18 11: 2
36
7 7 8
--· - ""'-~~'.?.~~.I 37,696f - -s;ii~Di
29,480:
-i7,i:i40' _3~~~~~ 11,000; 2,000
2s,02oi
i:i;4s-ol
291'3iJ'ci!
-~-x?;:13_sj 41,888! 1'1:000~
-i,-ooot ' ' ,..,.,,..l;
Gambar B.87 Tampilan pencarian suatu data transaksi
d. Untuk memilih bulan dan tahun dari data transaksi dapat dilakukan dengan memilih combo box bulan dau combo box tahun seperi gambar beriku ini :
Bulan:
Tahun: 2005 2004 Jum 2003
\Jo. Urut Agustus ····· ···· ···:September ~· Oftober
- "2002 Jml B 2001 2000
GambarB.88 Tampilan pemilihan bulan dan tahun
B.57
4. Data Bamng Viewer
Dala Barang Viewer merupakan manajer yang digunakan untuk melihat data barang pada aplikasi client. Manajer ini tidak bisa melakukan manipulasi data, melainkan hanya sebagai view saja. Tampilan Dala Barang Viewer adalah sebagai berikut:
GambarB.89 Tampilan Da1a Barang Viewer Untuk melakukan pencarian data barang dapat dilakukan dengan memasukkan keyword seperti pada gambar berikut ini :
GambarB.90 Tampilan pencarian data barang
B.58
C. Another Manual Another Manual mendifinisikan komponen-komponen yang ada pada aplikasi mesin kasir terdistribusi selain pada komponen-komponen yang telah didefinisikan di atas, yaitu antara lain
Table Setting, Print Preview, Save, Ka/ender, Database
Information, System Property, Look & Feel, Help danAbout.
1. Table Setting : merupakan form yang digunakan untuk mengatur tampilan pada suatu tabel. Untuk menampilkan form ini dapat menggunakan button Tampilan dari Table Setting adalah :
RJ Horizontal line l±J Vertii:a\ Una
GambarB.91 Tampilan fable Setting '!,hlh'.
2. Print Preview : merupakan form yang digunakan untuk mengatur data yang akan dicetak. Untuk menampilkan form ini dapat menggunakan button •· .. Tampilan dari Print Preview adalah :
B.59
297::;:
f'-t=~'"'+'c'c""""~"""'i-"'-f"'"c·•o•o"o~o•c•"'e""'"""""•'f-'•'-fc="-!~.•~~,..,..,,c"t------1 1,.7-'> <'l'<-.~•Ht«
210 -:::
.~
m ·.,~""''"''~_,.,, "'"'~"'"' "'
?t•nc
·iif' Ded'.jet 3740 Sorie-.;
(,'.>Nl
C'l>age
To
i :o ""'" ""''"'"
,.
~''·""'';m<.·••l\oM•""'"'"'
., '"-"'"''*'""' r.'"'"""' "'
• ·"'";m<·J.!<.1'01<<1;l0;0
'°'J == '*·'""l><~·'-'t---L... n•.i>0o:-<.-eu
lJ>
to
:;m
1~!H'1,_•!H€
/"·"'"""""'_,.,\.,~~"""'SI-,;;;- 1t1""''™""''-,t------.J
GambarB.92 Tampilan Print Preview
3.
Save
merupakan form yang digunakan untuk menyimpan suatu data ke dalam
file. Untuk menampilkan form ini dapat menggunakan button
. Tampilan dari
form Save adalah
M·tRecert Docimen(s
,~:'..'! CnrRI U9'r f;tM
;: :j Corei:)t<1w D::>:l.l'i1erts
GambarB.93
_;;;,JHAFOJ ;~)
l<Jpornn Pl'.L PT. Tclr,;,m Tong~'""
:.)MA.RAM WAHJD!YA,'"i
·,~-l M1 Rt~J'iw.d Fl<'>
':,"<<>
f'~I
Netwmk Plr.::es
F-.~.,.,nf !J.'PW
·Simn-:;n !U;bm benb..l\ CSV (.c~vl
Tampilan Fom1 Save
B.60
4. Ka/ender : merupakan Internal Frame yang digunakan menampilkan kalender. Untuk menampilkan Internal Frame ini dapat menggunakan button
Tampilan
Ka/ender adalah :
GambarB.94 Tampilan Kalender
5. Database Information : merupakan form yang digunakan menampilkan informasi database. Tampilan Database Information adalah :
GambarB.95 Tampilan Database Infomiation
B.61
6. System Property : merupakan form yang digunakan menampilkan informasi tentang JVM, CPU dan lain sebagainya. Tampilan System Property adalab :
Gambar B.96 Tampilan System Property
IOKJ 7. Look & Feel : merupakan menu yang digunakan untuk memilih bentuk tampilan pacla aplikasi sistem mesin kasir terdistribusi.
GambarB.97 Windows Look & Feel 1~an
74S1
~.i:.rni
76190 '.>-167
'pb>•~P
11,~esd~j"1;<JO 'i•he$ed"?__, )0!1.,ood"Pqornn9W-..or j~h.,,sdwwe
B.62
GambarB.98 A!fotif Look & Feel
Gambar B.99 Metal Look & Feel