X – SYNC ( XML SYNCRONIZATION )

174
X – SYNC ( XML SYNCRONIZATION ) PADA SISTEM PENJUALAN PERUSAHAAN (Studi Kasus di PT. NKI Prembun) SKRIPSI Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika Disusun Oleh: Henricus Eko Prabowo 035314004 JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2007

Transcript of X – SYNC ( XML SYNCRONIZATION )

Page 1: X – SYNC ( XML SYNCRONIZATION )

X – SYNC ( XML SYNCRONIZATION )

PADA SISTEM PENJUALAN PERUSAHAAN

(Studi Kasus di PT. NKI Prembun)

SKRIPSI

Ditujukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika

Disusun Oleh:

Henricus Eko Prabowo

035314004

JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

2007

Page 2: X – SYNC ( XML SYNCRONIZATION )

X – SYNC ( XML SYNCRONIZATION )

IN COMPANY SELLING SYSTEM

(Case Study in PT. NKI Prembun)

A Thesis

Presented as Partial Fulfillment of the Rrequirements

to Obtain the Sarjana Teknik Degree

in Department of Informatics Technology

Created By :

Henricus Eko Prabowo

035314004

DEPARTMENT OF INFORMATICS TECHNOLOGY FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA

2007

Page 3: X – SYNC ( XML SYNCRONIZATION )

HALAMAN PERSETUJUAN

SKRIPSI

X – SYNC ( XML SYNCRONIZATION )

PADA SISTEM PENJUALAN PERUSAHAAN (Studi Kasus di PT. NKI Prembun)

Disusun Oleh :

Nama : Henricus Eko Prabowo

NIM : 035314004

Telah disetujui oleh : Dosen Pembimbing I, Ridowati Gunawan, S.Kom, M.T. Pada tanggal 09 November 2007

Page 4: X – SYNC ( XML SYNCRONIZATION )

SKRIPSI

X – SYNC ( XML SYNCRONIZATION )

PADA SISTEM PENJUALAN PERUSAHAAN (Studi Kasus di PT. NKI Prembun)

Dipersiapkan dan disusun oleh :

Nama : Henricus Eko Prabowo

NIM : 035314004

Telah dipertahankan di depan panitia penguji

pada tanggal 12 Desember 2007

dan dinyatakan memenuhi syarat

Susunan Panitia Penguji : Nama Lengkap Tanda Tangan

Ketua : Ridowati Gunawan, S.Kom., M.T. ....................

Anggota : Alb. Agung Hadhiatma, S.T., M.T. ....................

Anggota : St. Wisnu Wijaya, S.T., M.T. ....................

Yogyakarta, ............................................................ Fakultas Teknik Universitas Sanata Dharma Dekan, (Ir. Gregorius Heliarko SJ, SS, BST, MA, M.Sc.)

Page 5: X – SYNC ( XML SYNCRONIZATION )

PERNYATAAN KEASLIAN KARYA

Dengan ini saya sebagai penulis menyatakan dengan sesungguhnya bahwa

judul, isi dan gagasan yang tertuang dalam skripsi ini belum pernah dipakai untuk

mendapatkan gelar kesarjanaan di tempat lain baik di Indonesia maupun di luar

negeri. Pemikiran, metode atau hasil penelitian orang lain yang diambil

disebutkan dengan jelas sebagai acuan. Hasil – hasil penelitian, jurnal, makalah,

buku, termasuk informasi di internet yang dipakai sebagai acuan dan bahan

literatur ditulis dalam daftar pustaka.

Yogyakarta, Desember 2007

Penulis

Henricus Eko Prabowo

Page 6: X – SYNC ( XML SYNCRONIZATION )

HALAMAN PERSEMBAHAN

Karya ini kupersembahkan untuk:

...

Yesus-ku yang selalu memberikan anugerah, jalan, dan

senantiasa menemaniku terutama dikala aku merasa patah dan

putus asa,

...

Kedua orang tuaku yang telah membesarkan dan mendidik aku

dengan cinta dan kelembutan,

...

Kedua adikku dan saudara-saudaraku yang selalu menyayangi

dan memberikan semangat,

...

Adhek yang kucintai dan kusayangi,

...

Dan seluruh teman-temanku yang memberikan kehangatan

dalam hari-hariku.

Page 7: X – SYNC ( XML SYNCRONIZATION )

HALAMAN MOTTO

Keberhasilan Terbesar Dalam Hidup Adalah Dapat Bangkit

Kembali Dari Kegagalan

Memahami Ilmu Pengetahuan dengan Kesungguhan Hati

akan Melahirkan Kebijaksanaan Dalam Diri

Page 8: X – SYNC ( XML SYNCRONIZATION )

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Henricus Eko Prabowo Nomor Mahasiswa : 035314004 Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

“X-SYNC ( XML-SYNCRONIZATION ) PADA SISTEM PENJUALAN PERUSAHAAN”

Studi Kasus di PT. NKI Prembun beserta perangkat yang diperlukan ( bila ada ). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikannya secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini yang saya buat dengan sebenar – benarnya. Dibuat di Yogyakarta Pada tanggal : 15 Februari 2008 Yang menyatakan

( Henricus Eko Prabowo )

Page 9: X – SYNC ( XML SYNCRONIZATION )

ABSTRAKSI

Sebuah perusahaan dagang suatu ketika pasti akan berkembang menjadi perusahaan yang mempunyai cabang di beberapa lokasi. Sebuah sistem informasi yang tadinya hanya ditujukan untuk menangani data pada satu lokasi kantor akan menjadi tidak relevan lagi mengingat semakin besarnya volume transaksi yang terjadi dan lokasi yang terdistribusi. Sistem sinkronisasi ini dibuat untuk menangani siklus penjualan pada suatu perusahaan yang memiliki beberapa kantor cabang. Sistem ini dibangun menggunakan teknologi XML sebagai format pertukaran data yang akan menjadi sarana antara aplikasi Java Client dan Java Server untuk berkomunikasi. Sistem menggunakan MySQL Server sebagai databasenya sedangkan komunikasi dibangun diatas jaringan TCP / IP. Tujuan sistem ini adalah untuk efisiensi proses pertukaran data antar kantor yang terpisah secara geografis agar data pada setiap kantor dapat selalu sinkron.

Kata kunci: penjualan,java,socket, XML,internet.

Page 10: X – SYNC ( XML SYNCRONIZATION )

ABSTRACT

Someday, The commerce company will develop become the company which has subdivision in some locations. The information system at the begining is only to handle data in one office will become not relevant again considering bigger and bigger the volume of transaction which is happened and location which is distributed. This synchonization system is made to handle the selling cyclus in the company which has some subdivision office. This system is built use the XML technology as the format of exchange data which will be the medium between Java client and java server application to communicate. The system use MySQL server as its database while communication is built base on TCP / IP network. The aim of this system is to efficiency the process of exchange data between separated office in a geography manner so that data in every office can always synchronous.

Kata kunci: Selling,java,socket, XML,internet.

Page 11: X – SYNC ( XML SYNCRONIZATION )

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa

yang telah melimpahkan berkat-Nya sehingga penulis dapat menyelesaikan

Laporan Tugas Akhir ini. Penulisan tugas akhir ini ditujukan untuk memenuhi

salah satu syarat memperoleh gelar Sarjana Teknik Jurusan Teknik Informatika.

Terselesaikannya penulisan tugas akhir ini tidak lepas dari peran serta

beberapa pihak, baik secara langsung maupun secara tidak langsung. Oleh karena

itu, penulis ingin menyampaikan terima kasih kepada pihak-pihak yang telah ikut

membantu dalam penulisan tugas akhir ini, baik dalam memberikan bimbingan,

semangat, kasih sayang, kritikan, maupun saran, antara lain kepada:

1. Ir. Gregorius Heliarko, S.J., S.S., B.S.T., M.A., M.Sc, Selaku Dekan Fakultas

Teknik Universitas Sanata Dharma Yogyakarta.

2. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik

Informatika Universitas Sanata Dharma.

3. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Dosen Pembimbing I, yang

telah banyak membantu terutama dalam memberikan bimbingan, dukungan,

dan penyediaan sarana yang mendukung, sehingga penulis dapat

menyelesaikan laporan tugas akhir ini.

4. Bapak St. Wisnu Wijaya, S.T., M.T. dan Bapak Alb. Agung Hadhiatma, S.T.,

M.T., selaku panitia penguji pada ujian pendadaran penulis.

5. Seluruh staff dan dosen pengajar di Universitas Sanata Dharma pada

umumnya dan Jurusan Teknik Informatika pada khususnya.

Page 12: X – SYNC ( XML SYNCRONIZATION )

6. Pak Bele yang telah memberikan bantuannya terutama pada saat menjelang

dan pada saat pendadaran.

7. Kedua orang tua dan kedua adik penulis, yang selalu mendoakan, memberikan

semangat dan dorongan kepada penulis untuk dapat menyelesaikan penulisan

laporan tugas akhir ini.

8. Patricia Wenny Megarani, yang selalu ada untuk menemani dan memberikan

keceriaan terutama saat stress mulai datang.

9. Teman – teman terdekat dan seperjuangan yang selama kuliah selalu memberi

semangat, keceriaan dan kehangatan, Diean, Nug, Ciblek, Breg.

10. Teman – teman yang membantu dalam proses penyusunan tugas akhir, Abe,

Jansen, Arie, Pakdhe.

11. Teman – teman yang hadir saat penulis ujian pendadaran, Ruth, Diean, Breg,

Ipil, acied, Gepenk, Dhea, Nug, Anice, Hana, Hendro yang memberi pinjaman

jas.

12. Teman – teman jurusan Teknik Informatika angkatan 2003 yang telah

berjuang bersama, Albert CP (Abe), Jun (Odol), Bergas, Hendrik (Ciblek),

Elen, Jeje, Dion, Adwi, Danang, Heni, Angga Thukul, Marchel, Irvan,

Hendro, Diean, Isti, Nug, Acied, Kristina, Ruth, Ones, Sarah, Ina, Ratih, Gina,

Dea, Agus Gepenk, Devi, Anis, Evi Ephot, Dani, Wikan Erross, Linda, Risa,

Santhos, Amin, Arie, Albert K (Padhe), Winda, Fendi, Seno, Chandra, Hana,

David, Ticka, Mery, Monic, Yeyen, Ako, Nur, Rubin, Esther, Oscar, Ria,

Achel, serta teman – teman Teknik Informatika lainnya.

Page 13: X – SYNC ( XML SYNCRONIZATION )

13. Pak Darmadi, yang selalu ramah dan menghibur penulis ketika memasuki area

laboratorium.

14. Dan seluruh pihak yang telah ikut ambil bagian dalam penyelesaian laporan

tugas akhir ini.

Penulis menyadari segala keterbatasan dalam menyelesaikan laporan

tugas akhir ini. Oleh karena itu, penulis ingin menyampaikan mohon maaf apabila

terdapat kesalahan dan kekurangan. Untuk itu, penulis mengharapkan kritik dan

saran yang membangun dari seluruh pihak yang membutuhkan laporan tugas akhir

ini.

Akhir kata, semoga laporan tugas akhir ini dapat memberikan manfaat

bagi siapa saja yang membutuhkannya. Atas segala perhatiannya dan

kerjasamanya, penulis ucapkan terima kasih.

Yogyakarta, Desember 2007

Penulis

Page 14: X – SYNC ( XML SYNCRONIZATION )

DAFTAR ISI

HALAMAN JUDUL i

HALAMAN JUDUL ii

HALAMAN PERSETUJUAN iii

HALAMAN PENGESAHAN iv

PERNYATAAN KEASLIAN KARYA v

HALAMAN PERSEMBAHAN vi

HALAMAN MOTTO vii

ABSTRAKSI viii

ABSTRACT ix

KATA PENGANTAR x

DAFTAR ISI xiii

DAFTAR GAMBAR xviii

DAFTAR TABEL xxii

BAB 1. PENDAHULUAN

I. Latar Belakang Masalah 1

II. Rumusan Masalah 2

III. Batasan Masalah 2

IV. Tujuan dan Manfaat Penelitian 3

V. Metodologi Penelitian 4

VI. Sistematika Penulisan 5

BAB 2. LANDASAN TEORI

2.1. Sinkronisasi Database 7

2.2. Struktur Dasar XML 7

2.3. Struktur XML 8

2.4. Sintaks XML 9

2.5. Jenis Dokumen XML 13

2.6. Keuntungan dan Keunggulan XML 13

2.7. Pengertian Sistem Informasi 14

Page 15: X – SYNC ( XML SYNCRONIZATION )

2.8. Pengertian Sistem Penjualan 16

2.9. Pengembangan Perangkat Lunak Berorientasi Objek 17

2.9.1. Konsep Objek 17

2.9.1.1. Object Oriented Analysis (OOA) 17

2.9.1.2. Object Oriented Design (OOD) 18

2.9.2. UML (Unified Modelling Languange)

2.9.2.1. Use Case

2.9.2.2. Class Diagram

2.9.2.3. Sequence Diagram

20

20

22

22

2.10. Perancangan Database 22

2.11. TCP / IP 23

2.12. Pemrograman Berorientasi Objek menggunakan Java 25

2.13. Pemrograman Client / Server dengan Java 37

2.13.1. Pemrograman Client / Server

2.13.2. Java Socket

2.13.3. Socket

2.13.4. Server Socket

37

38

39

39

2.14. MySQL 40

2.14.1. DDL

2.14.2. DML

41

41

2.15. Parser dan DOM 42

BAB 3. ANALISIS DAN DESAIN

3.1. Analisis Sistem 45

3.1.1 Gambaran Umum Sistem Lama 45

3.1.2. Orang Yang Terlibat Dalam Sistem 46

3.1.3. Analisis Masalah 46

3.1.4. Gambaran Umum Sistem Baru 47

3.1.5. Use Case Diagram 48

3.2. Desain Sistem 52

3.2.1. ER Diagram 52

3.2.1.1. Use Case Diagram Kantor Cabang 52

Page 16: X – SYNC ( XML SYNCRONIZATION )

3.2.2.2. Use Case Diagram Kantor Pusat 53

3.2.2. Class Diagram 54

3.2.2.1. Class Diagram Kantor Cabang 54

3.2.2.2. Class Diagram Kantor Pusat 55

3.2.3. Sequence Diagram 56

3.2.3.1. Sequence Digram Kantor Cabang 56

3.2.3.2. Sequence Diagram Kantor Pusat 61

3.2.3.3. Sequence Diagram Penjualan 70

3.2.4. Perancangan Database 72

3.2.4.1. Desain Fisik Database 72

3.2.4.1.1. Kantor Cabang 72

3.2.4.1.2. Kantor Pusat 73

3.2.4.2. Struktur Tabel Database 74

3.2.5. Perancangan Proses Pertukaran Data 81

3.2.6. Perancangan Dokumen XML 83

3.2.7. Perancangan Input 87

3.2.7.1. Kantor Cabang 87

3.2.7.2. Kantor Pusat 93

BAB 4. IMPLEMENTASI SISTEM

4.1. Karakteristik Sistem 99

4.2. Perangkat Lunak yang Digunakan Dalam Pembuatan

Sistem 103

4.3. Implementasi Database 103

4.4. Setting Koneksi dari Java ke MySQL (koneksi.java) 105

4.5. Query dari Java ke MySQL (QueryHandler.java) 106

4.6. Aplikasi Client 106

4.6.1. Komunikasi Client Server (FileSender_Client.java) 106

4.6.2. Form Login (LoginDulu.java) 110

4.6.3. Form Menu Utama (MainMenu_cabang.java) 111

4.6.4. Form Data Customer (IframeDataCustomer.java) 113

4.6.5. Form Tambah Customer 116

Page 17: X – SYNC ( XML SYNCRONIZATION )

(FrameTambahCustomer.java)

4.6.6. Form Data Barang (IframeDataBarang.java) 119

4.6.7. Form Penjualan (IFrameDataPenjualan.java) 123

4.6.8. Form Laporan (IFramelaporan.java) 125

4.7. Aplikasi Server 126

4.7.1. Komunikasi Client Server

(SocketConnectionServer.java) 126

4.7.2. Form Login (LginDulu.java) 130

4.7.3. Form Menu Utama (MainMenu_Pusat.java) 131

4.7.4. Form Data Customer (IFrameDataCustomer.java) 133

4.7.5. Form Tambah Customer

(FrameTambahCustomer.java) 133

4.7.6. Form Data Barang (IFrameDataBarang.java) 134

4.7.7. Form Tambah Barang (FrameTambahBarang.java) 136

4.7.8. Form Petugas (FramePetugas.java) 138

4.7.9. Form Kantor (FrameKantor.java) 140

4.7.10. Form Penjualan (IFramePenjualan.java) 142

4.7.11. Form Laporan (LaporanIFrame.java) 143

4.8. Tampilan Halaman Output 143

4.8.1. Nota Penjualan 143

4.8.2. Laporan Penjualan 144

BAB 5. ANALISIS HASIL

5.1. Hasil Pengujian Sistem 146

5.2. Kelebihan Sistem 146

5.3. Kekurangan Sistem 147

5.4. Prospek Pengembangan Sistem 147

BAB 6. PENUTUP

6.1. Kesimpulan 149

6.2. Saran 150

DAFTAR PUSTAKA

Page 18: X – SYNC ( XML SYNCRONIZATION )

DAFTAR GAMBAR

Gambar 2. 1. Struktur XML 8

Gambar 2. 2. Diagram Hirarki XML 10

Gambar 2. 3. Simbol Entity Object 18

Gambar 2. 4. Simbol Interface Object 19

Gambar 2. 5. Simbol Control Object 20

Gambar 2. 6. Simbol Use-Case 21

Gambar 2. 7. Simbol Actor 21

Gambar 2. 8. Simbol Association 22

Gambar 2. 9. Struktur Pohon DOM 44

Gambar 3. 1. Use Case Diagram 48

Gambar 3. 2. Use Case Diagram Administrasi Cabang 49

Gambar 3. 3. Use Case Diagram Adminstrasi Kantor Pusat 50

Gambar 3. 4. Use Case Diagram Input Penjualan 51

Gambar 3. 5. ER Diagram Kantor Cabang 52

Gambar 3. 6. ER Diagram Kantor Pusat 53

Gambar 3. 7. Class Diagram Kantor Cabang 54

Gambar 3. 8. Class Diagram Kantor Pusat 55

Gambar 3. 9. Sequence Diagram Login Petugas 56

Gambar 3. 10. Sequence Diagram Maintain Customer : View Data 56

Gambar 3. 11. Sequence Diagram Maintain Customer : Edit Data 57

Gambar 3. 12. Sequence Diagram Maintain Customer : Insert Data 57

Gambar 3. 13. Sequence Diagram Cek Persediaan Barang 58

Gambar 3. 14. Sequence Diagram Buat Order Barang 58

Gambar 3. 15. Sequence Diagram Cek Pengiriman Barang 59

Gambar 3. 16. Sequence Diagram Buat Laporan 60

Gambar 3. 17. Sequence Diagram Login Petugas Pusat 61

Gambar 3. 18. Sequence Diagram Maintain Data Customer : View Data 61

Gambar 3. 19. Sequence Diagram Maintain Customer : Edit Data 62

Page 19: X – SYNC ( XML SYNCRONIZATION )

Gambar 3. 20. Sequence Diagram Maintain Customer : Insert Data 62

Gambar 3. 21. Sequence Diagram Maintain Data Petugas : Insert Petugas 63

Gambar 3. 22. Sequence Diagram Maintain Data Petugas : Edit Petugas 63

Gambar 3. 23. Sequence Diagram Maintain Data Petugas : Delete

Petugas 64

Gambar 3. 24. Sequence Diagram Maintain Data Kantor : Insert Kantor 65

Gambar 3. 25. Sequence Diagram Maintain Data Kantor : Edit Kantor 66

Gambar 3. 26. Sequence Diagram Cek Order 67

Gambar 3. 27. Sequence Diagram Maintain Data Barang 68

Gambar 3. 28. Sequence Diagram Cetak Laporan 69

Gambar 3. 29. Sequence Diagram Lihat Data Customer 70

Gambar 3. 30. Sequence Diagram Cek Persediaan Barang 70

Gambar 3. 31. Sequence Diagram Input Penjualan 71

Gambar 3. 32. Struktur Fisik Database Cabang 72

Gambar 3. 33. Struktur Fisik Database Pusat 73

Gambar 3. 34. Proses Pertukaran Data 82

Gambar 3. 35. User Interface Cabang Login Petugas 87

Gambar 3. 36. User Interface Menu Utama Kantor Cabang 88

Gambar 3. 37. User Interface Cabang Data Customer – Data Umum 88

Gambar 3. 38. User Interface Cabang Data Customer – Lokasi Tempat

Tinggal 89

Gambar 3. 39. User Interface Cabang Tambah Customer – Data Pribadi 89

Gambar 3. 40. User Interface Cabang Tambah Customer – Data Tempat

Tinggal 90

Gambar 3. 41. User Interface Cabang Data Barang – Data Umum 90

Gambar 3. 42. User Interface Cabang Data Barang – Order Barang 91

Gambar 3. 43. User Interface Cabang Data Barang – Pengiriman 91

Gambar 3. 44. User Interface Cabang Penjualan 92

Gambar 3. 45. User Interface Cabang Laporan 92

Gambar 3. 46. User Interface Login Pusat 93

Gambar 3. 47. User Interface Menu Utama Kantor Pusat 93

Page 20: X – SYNC ( XML SYNCRONIZATION )

Gambar 3. 48. User Interface Data Customer Pusat – Data Umum 94

Gambar 3. 49. User Interface Data Customer Pusat – Lokasi Tempat

Tinggal 94

Gambar 3. 50. User Interface Tambah Customer Pusat – Data Pribadi 95

Gambar 3. 51. User Interface Tambah Customer Pusat – Data Tempat

Tinggal 95

Gambar 3. 52. User Interface Data Barang Pusat – Data Umum 96

Gambar 3. 53. User Interface Data Barang Pusat – Proses Order 96

Gambar 3. 54. User Interface Tambah Barang – Data Umum 97

Gambar 3. 55. User Interface Tambah Barang – Info Stok 97

Gambar 3. 56. User Interface Data Kantor 98

Gambar 3. 57. User Interface Data Petugas 98

Gambar 3. 58. User Interface Penjualan Pusat 99

Gambar 3. 59. User Interface Laporan Pusat 99

Gambar 3. 60. Output Nota Penjualan 100

Gambar 3. 61. Output Laporan Penjualan 101

Gambar 4. 1. Form Login Aplikasi Cabang 110

Gambar 4. 2. Form Menu Utama Aplikasi Cabang 111

Gambar 4. 3. Form Data Customer Aplikasi Cabang 114

Gambar 4. 4. Form Tabel Search Customer Aplikasi Cabang 115

Gambar 4. 5. Form Tambah Customer Aplikasi Cabang 117

Gambar 4. 6. Form Data Barang Tab Data Umum Aplikasi Cabang 119

Gambar 4. 7. Form Data Barang Tab Order Barang Aplikasi Cabang 120

Gambar 4. 8. Form Data Barang Tab Pengiriman Aplikasi Cabang 122

Gambar 4. 9. Form Data Penjualan Aplikasi Cabang 123

Gambar 4. 10. Form Laporan Aplikasi Cabang 125

Gambar 4. 11. Form Menu Utama Aplikasi Server 131

Gambar 4. 12. Form Data Barang Tab Data Umum Aplikasi Server 134

Gambar 4. 13. Form Data Barang Tab Proses Order Barang Aplikasi

Server 135

Gambar 4. 14. Form Tambah Data Barang Aplikasi Server 136

Page 21: X – SYNC ( XML SYNCRONIZATION )

Gambar 4. 15. Dialog Tambah Group Aplikasi Server 137

Gambar 4. 16. Dialog Tambah Kategori Aplikasi Server 137

Gambar 4. 17. Dialog Tambah Kelompok Aplikasi Server 137

Gambar 4. 18. Form Data Petugas Aplikasi Server 138

Gambar 4. 19. Dialog Input Petugas Aplikasi Server 140

Gambar 4. 20. Frame Data Lokasi Kantor Aplikasi Server 141

Gambar 4. 21. Dialog Input Data Kantor Aplikasi Server 142

Gambar 4. 22. Print Out Nota Penjualan 144

Gambar 4. 23. Print Out Laporan Penjualan 145

Page 22: X – SYNC ( XML SYNCRONIZATION )

DAFTAR TABEL

Tabel 2. 1. Operator Aritmatika dalam Java 27

Tabel 2. 2. Operator Aritmatika yang lain dalam Java 27

Tabel 2. 3. Operator Relasional dalam Java 27

Tabel 2. 4. Operator Kondisional dalam Java 28

Tabel 2. 5. Operator Shift dalam Java 28

Tabel 2. 6. Operator Bitwise dalam Java 29

Tabel 2. 7. Operator Assignment dalam Java 30

Tabel 2. 8. Operator Precedence dalam Java 45

Tabel 3. 1. Customer ( Cabang ) 74

Tabel 3. 2. Tabel Customer ( Pusat ) 74

Tabel 3. 3. Tabel Lokasi_Tempat_Tinggal (Cabang & Pusat) 75

Tabel 3. 4. Tabel Jual ( Cabang ) 75

Tabel 3. 5. Tabel Jual ( Pusat ) 76

Tabel 3. 6. Tabel Detil_Penjualan ( Cabang & Pusat ) 76

Tabel 3. 7. Tabel Barang( Cabang & Pusat ) 76

Tabel 3. 8. Tabel Group( Cabang & Pusat ) 77

Tabel 3. 9. Tabel Kategori ( Cabang & Pusat ) 77

Tabel 3. 10. Tabel Kelompok ( Cabang & Pusat ) 78

Tabel 3. 11. Tabel Info_Stok ( Cabang ) 78

Tabel 3. 12. Tabel Info_Stok ( Pusat ) 78

Tabel 3. 15. Tabel Satuan ( Cabang & Pusat ) 79

Tabel 3. 16. Tabel OrderBarang ( Cabang ) 80

Tabel 3. 17. Tabel OrderBarang ( Pusat ) 80

Tabel 3. 18. Tabel Detil_Order ( Cabang & Pusat ) 80

Tabel 3. 19. Tabel Petugas ( Pusat ) 81

Tabel 3. 20. Tabel LokasiKantor ( Pusat ) 81

Tabel 4. 1. Fungsi Menu File Aplikasi Cabang 111

Tabel 4. 2. Fungsi Menu Master Aplikasi Cabang 112

Page 23: X – SYNC ( XML SYNCRONIZATION )

Tabel 4. 3. Fungsi Menu Transaksi Aplikasi Cabang 112

Tabel 4. 4. Fungsi Menu Help Aplikasi Cabang 112

Tabel 4. 5. Fungsi Menu File Aplikasi Server 132

Tabel 4. 6. Fungsi Menu Master Aplikasi Server 132

Tabel 4. 7. Fungsi Menu Transaksi Aplikasi Server 132

Tabel 4. 8. Fungsi Menu Help Aplikasi Server 132

Page 24: X – SYNC ( XML SYNCRONIZATION )

1

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Pada perusahan dagang terlebih perusahaan dengan banyak cabang,

keunggulan komputer dibutuhkan untuk meningkatkan kinerja perusahaan.

Dengan kemudahan dan kecepatan akses informasi, maka manajemen

perusahaan dapat menentukan langkah - langkah yang harus diambil secara

cepat dan tepat. Dari sisi penjualan, penggunaan teknologi komputer

diharapkan dapat meningkatkan kualitas pelayanan dan kuantitas penjualan.

Pada penulisan tugas akhir ini, diambil studi kasus di PT. NKI

Prembun. Perusahaan ini adalah perusahaan yang bergerak di bidang

perdagangan dan pendistribusian onderdil kendaraan bermotor dan alat –

alat pertanian. Lokasi perusahaan ini adalah di kota Prembun, Jawa Tengah.

Perusahaan ini adalah perusahaan yang memiliki beberapa cabang, tetapi

sebagai sebuah perusahaan yang cukup besar ternyata pencatatan data

penjualannya masih dilakukan secara manual yaitu dengan menggunakan

Microsoft Excel. Dengan cara ini, terdapat banyak kelemahan misalnya

ketidaktepatan informasi stok barang dan arus peneriman kas.

Pengorganisasian data juga akan mengalami kendala dengan semakin

banyaknya file yang disimpan, resiko data hilang juga akan semakin besar.

Dengan model perusahaan yang tersebar seperti ini, permasalahan

lain yang muncul adalah kantor pusat akan mengalami kesulitan dalam

memonitor data – data penjualan dan customer di masing – masing cabang.

Page 25: X – SYNC ( XML SYNCRONIZATION )

2

Berdasarkan kenyataan tersebut, penulis tertarik untuk mengambil

topik “X – Sync ( XML Syncronization ) Pada Sistem Penjualan

Perusahaan”.

1.2 Rumusan Masalah

Dalam penulisan tugas akhir ini ada dua permasalahan, yaitu :

1. Bagaimana menganalisis, mendesain, dan mengimplementasikan

Sistem Informasi Siklus Penjualan.

2. Bagaimana cara agar aplikasi pada kantor cabang dan aplikasi pada

kantor pusat dapat saling bertukar data dan kemudian menyimpan data

tersebut ke database.

1.3 Batasan Masalah

Dalam penulisan tugas akhir ini, batasan masalah meliputi hal – hal sebagai

berikut :

1. Perangkat lunak yang digunakan adalah Java sebagai bahasa

pemrograman, XML sebagai format pertukaran data dan MySQL

sebagai database servernya.

2. Sistem yang dibuat menitikberatkan pada aspek pertukaran data antar

aplikasi dalam format XML.

3. Sistem yang dibangun hanya menangani transaksi penjualan tunai

perusahaan.

4. Sistem berjalan pada jaringan komputer dengan protokol TCP / IP.

Page 26: X – SYNC ( XML SYNCRONIZATION )

3

5. Sistem tidak menangani masalah yang disebabkan oleh fisik jaringan

dan oleh pihak ketiga.

1.4 Tujuan dan Manfaat Penelitian

Tujuan dari penulisan Tugas Akhir “X – Sync ( XML Syncronization )

Sinkronisasi Data Berbasis XML Pada Sistem Penjualan Perusahaan” ini

adalah :

1. Mengimplementasikan sistem penjualan berbasis komputer dengan

menggunakan Java dan MySQL pada perusahaan distribusi

menggunakan tahap rekayasa perangkat lunak berorientasi obyek.

2. Mengimplementasikan pertukaran data antar aplikasi client server Java

dengan menggunakan format data XML.

Manfaat dari pembuatan sistem ini adalah :

Bagi pengguna sistem, akan dicapai efisiensi dan kemudahan dalam proses

pengiriman dan penerimaan data antar kantor karena dilakukan secara on-

line. Efisiensi dan kecepatan tercapai karena proses sinkronisasi dilakukan

setiap ada perubahan data di database sehingga file XML yang dibuat

berukuran kecil dan tidak membebani jaringan.

Page 27: X – SYNC ( XML SYNCRONIZATION )

4

1.5 Metodologi Penelitan

Metodologi yang akan digunakan dalam penyusunan tugas akhir

ini adalah sebagai berikut :

1. Peninjauan (survey) kebutuhan program.

Pengumpulan data – data dan informasi dari perusahaan yang

bersangkutan mengenai proses penjualan dan siklus pendapatan yang

dibutuhkan untuk pembuatan sistem yang baru.

2. Studi literatur, meliputi :

a. Pendalaman konsep.

Memahami dan mendalami konsep tentang XML dan aplikasinya,

juga tentang cara pembuatan dokumen XML dari suatu database di

kantor pusat untuk kemudian dipertukarkan dengan database di

kantor cabang.

b. Mempelajari perangkat lunak yang terlibat.

Mempelajari konsep – konsep bahasa pemrograman Java untuk

membangun suatu aplikasi bisnis dengan tampilan GUI (graphical

User Interface). Pemahaman tentang pengaksesan database server

melalui Java, sehingga diperoleh data yang dibutuhkan dan

kemudian mengkonversi data tersebut ke dalam format XML.

3. Pengembangan perangkat lunak dengan metode pengembangan

perangkat lunak berorientasi objek (Whitten, 2004), dengan langkah-

langkah sebagai berikut:

a. Analisis dan Desain Sistem Berorientasi Obyek

Page 28: X – SYNC ( XML SYNCRONIZATION )

5

1. Pembuatan Use Case Diagram, Class Diagram, dan Sequence

Diagram.

2. Perancangan database.

3. Perancangan user interface.

b. Implementasi

1.6 Sistematika Penulisan

Sistematika yang dipakai dalam penulisan tugas akhir ini terbagi dalam

enam bagian dengan garis besarnya sebagai berikut :

BAB 1 PENDAHULUAN

Berisi tentang latar belakang, rumusan masalah, batasan masalah,

tujuan penulisan, metodologi penelitian dan sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab ini berisi landasan teori yang dipakai untuk pembahasan

penulisan tugas akhir.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini merupakan bab yang membahas tentang analisis dan

perancangan sistem yang akan dibuat.

BAB 4 IMPLEMENTASI SISTEM

Bab ini berisi implementasi tiap tampilan atau antarmuka dari

rancangan yang dibuat pada bab sebelumnya dan menganalisis

program pada masing – masing tampilan antarmuka.

Page 29: X – SYNC ( XML SYNCRONIZATION )

6

BAB 5 ANALISIS IMPLEMENTASI

Bab ini bersi tentang analisis implementasi dari aplikasi yang

dibuat dan berisi tentang kelebihan dan kekurangan program.

BAB 6 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang menjawab tujuan tugas akhir dan

berisi saran yang berguna untuk pengembangan program.

Page 30: X – SYNC ( XML SYNCRONIZATION )

7

BAB 2

Landasan Teori

2.1. Sinkronisasi Database

Sinkronisasi database adalah proses yang melibatkan dua atau

lebih database yang dilakukan untuk menjaga agar pertukaran informasi atau

data antar database dapat mencapai suatu fungsi sesuai dengan aturan yang

telah ditetapkan.

2.2. Struktur dasar XML

XML ( eXtensible Markup Languange ) adalah markup languange

yang menyediakan format untuk mendeskripsikan data terstruktur atau

terurut. Fasilitas yang disediakan XML ini membuat isi ( content ) sebuah

data menjadi lebih mudah dimengerti. Seperti halnya HTML, XML jug

menggunakan elemen yang ditandai tag pembuka ( diawali dengan ‘<’ dan

diakhiri dengan ‘>’ ), tag penutup ( diawali dengan ‘</’ diakhiri ‘>’ ) dan

atribut elemen ( parameter yang dinyatakan dalam tag pembuka ). Hanya

bedanya, HTML mendefinisikan dari awal tag dan atribut yang dipakai di

dalamnya, sedangkan pada XML user bisa menggunakan tag dan atribut

sesuai dengan kehendak user.

Tag – tag dalam XML adalah case sensitive, sehingga tag <Buku>

berbeda dengan tag <buku>. Jika dalam penulisan program di dalam XML

sama dengan eberapa tanda yang dipakai di XML, maka penulisan program

akan memanfaatkan entity reference untuk mengkodekan beberapa karakter.

Page 31: X – SYNC ( XML SYNCRONIZATION )

8

2.3. Struktur dasar XML

Struktur dasar dokumen XML pada gambar 2.1 berikut :

<?xml version=”1.0” encoding=”iso-8859-1”?>

<!-Dokumen Ini menjelaskan tentang isi buku-->

<Buku

Judul=”Pengenalan XML”

Penulis=”Moh Junaedi”>

<pengantar/>

<Bab No=”1”>Berkenalan Dengan XML</Bab>

<Bab No=”2”>Lebih Dekat Dengan XML</Bab>

<Bab No=”3”>Elemen - Elemen XML</Bab>

. . . .

</Buku>

Gambar 2.1 Struktur XML

Sebuah struktur atau dokumen XML terdiri dari bagian yang

disebut dengan node. Node – node itu adalah :

1. Root node adalah node yang melimgkupi keseluruhan dokumen.

Dalam satu dokumen XML hanya ada satu root node. Node – node

yang lainnya berada dalam root node.

2. Element node adalah bagian dari dokumen XML yang ditandai dengan

tag pembuka dan tag penutup, atau bisa juga sebuah tag tunggal

elemen kosong seperti<anggota nama=”Henry”/>. Root node biasa

juga disebut root element.

Comment Standard Header

Attribute

root Node

Elemen Kosong

Page 32: X – SYNC ( XML SYNCRONIZATION )

9

3. Atribute node adalah node yang termasuk nama dan nilai atribut ditulis

pada tag awal sebuah elemen atau pada tag tunggal.

4. Text node adalah text yang merupakan isi dari sebuah elemen, ditulis

diantara tag pembuka dan tag penutup.

5. Comment node adalah baris yang tidak dieksekusi oleh parser.

2.4. Sintaks XML

Dibandingkan dengan HTML, XML lebih banyak aturan. Kalau

user menulis sebuah dokumen HTML, beberapa kesalahan penulisan masih

ditolerir. Ketika menulis suatu dokumen XML, sintaks – sintaks yang ada

tidak boleh dilanggar, sintaks – sintaks tersebut antara lain :

1. Heading standard untuk Document XML

Setiap membuat dokumen XML diawali dengan heading standard

XML. Formatnya adalah sebagai berikut :

<?xml version=”1.0” encoding=”iso-8859-1”?>

Penjelasan : xml version=”1.0” berarti bahwa file xml ini dibuat sesuai

dengan aturan versi 1.0 dan encoding menunjukkan bahwa file XML

ini ditulis berdasarkan kode iso-8859-1.

2. Dokumen XML harus memiliki root tag

Sebuah dokumen XML yang baik harus memiliki root tag. Yaitu tag

tag yang melingkupi keseluruhan dari dokumen. Tag – tag yang lain,

disebut child tag, berada di dalam root membentuk hirarki. Formatnya

adalah sebagai berikut :

Page 33: X – SYNC ( XML SYNCRONIZATION )

10

<root> <child> <subchild></subchild> </child> </root>

Bentuk Mengenai diagram hirarki XML tampak pada Gambar 2.2

Gambar 2.2 Diagram Hirarki XML ( Moh Junaedi, Pengantar XML,Ilmu Komputer.com, hlm 8 )

3. Tag pada XML harus lengkap berpasangan.

Pada HTML beberapa elemen tidak harus berpasangan. Contoh berikut

merupakan kesalahan yang masih dapat ditoleransi oleh HTML.

<p> paragraph pertama

<p> paragraph kedua

Dalam XML, beberapa elemen harus berpasangan. User harus menulis

tag pembuka dan penutup untuk setiap tag yang dibuat. Format

penulisan elemen berpasangan adalah sebagai berikut :

<p> paragraph pertama</p>

<p> paragraph kedua</p>

Root Element

Child element 1 Child element 3 Child element 2 Child element 4

Subchild element

Subchild element

Page 34: X – SYNC ( XML SYNCRONIZATION )

11

Tag tunggal hanya diperbolehkan untuk elemen kosong. Contoh

penulisan elemen kosong adalah sebagai berikut :

<anggota nama=”Henry”/>

4. XML membedakan antara huruf besar dan huruf kecil.

Pada XML, <tanggal> berbeda dengan <Tanggal>. Tag pembuka dan

tag penutup harus sama susunan huruf besar dan kecilnya. Format

penulisannya adalah sebagai berikut :

<contoh>Penulisan yang salah</Comtoh>

<contoh>Penulisan betul</contoh>

5. Penyarangan tag harus benar.

Penulisan tag pada XML harus mengikuti aturan Last In First Out

(LIFO). Pada XML user tidak diperbolehkan membuat tag yang saling

bersilangan seperti format berikut :

<p><b>Huruf tebal</p><b>

Tetapi harus disusun seperti format berikut :

<p><b>Huruf tebal</b></p>

Bila tetap dipaksakan juga, browser akan menampilkan pesan error.

6. XML mempertahankan spasi seperti apa adanya.

Berbeda dengn HTML, XML menampilkan spasi persis seperti data

yang ditulis. Misalnya dalam HTML terdapat kalimat sebagai berikut :

Kami pergi bersama

Akan ditampilkan sebagai berikut ini :

Kami pergi bersama

Page 35: X – SYNC ( XML SYNCRONIZATION )

12

Dalam contoh kalimat “Kami pergi bersama” meskipun digunakan

spasi beberapa kali, tetap akan dianggap sebagai satu spasi. Sedangkan

pada XML akan ditampilkan sama persis dengan kalimat asalnya.

7. Nilai atribut harus diletakkan diantara tanda petik.

Seperti HTML, XML memiliki atribut. Nilai atribut harus diletakkan

diantara dua tanda petik. Tanda petik yang digunakan bisa tanda petik

tunggal ataupun tanda petik ganda. Contoh format penulisannya

sebagai berikut :

<pesan dari=”Henry”> atau

<pesan dari=’Henry’>

8. Penamaan tag dan atribut.

Nama tag bisa terdiri dari huruf, angka dan underscore(“_”). Karakter

awal nama tag harus berupa huruf atau underscore(“_”), tidak diawali

dengan kata xml atau XML, (misalnya:<xmlstring>) dan tidak

mengandung spasi. Aturan penamaan atribut sama dengan aturan

penamaan tag.

9. Menyisipkan komentar

Pada bahasa pemrograman atau scripting, dikenal adanya komentar (

comment ). Komentar adalah baris yang tidak dieksekusi oleh

compiler, browser, atau parser. Untuk menyisipkan komentar pada

dokumen XML caranya adalah sebagai berikut :

<!-- Baris ini tidak akan dieksekusi -->

Page 36: X – SYNC ( XML SYNCRONIZATION )

13

2.5. Jenis Dokumen XML

Ada dua jenis dokumen XML, yaitu dokumen XML yang well

formed dan dokumen XML yang valid. Dokumen XML yang well formed

adalah dokumen yang memenuhi standar dan aturan sintaks pada XML.

Dokumen XML yang valid adalah yang memenuhi aturan DTD.

DTD adalah suatu aturan yang mendefinisikan bagaimana seharusnya

struktur isi suatu dokumen XML. Sesuai namanya DTD berfungsi untuk

mendefinisikan tipe dokumen XML. Pada saat mempelajari salah satu bahas

pemrograman atau scripting, user diperkenalkan dengan deklarasi variabel,

deklarasi fungsi dan deklarasi tipe data. Serupa dengan itu, DTD

mendefinisikan struktur dokumen XML dengan daftar elemen yang

digunakan.

Di dalam tulisan ini yang akan digunakan adalah dokumen XML

yang well formed.

2.6. Keuntungan dan Keunggulan XML

Berikut adalah keuntungan dan keunggulan XML :

1. Ekstensibilitas

Artinya bebas menentukan tag – tag sendiri sesuai dengan kebutuhan.

2. Memisahkan data dengan presentasi

Merupakan keunggulan lain dari XML, yaitu pemisahan antara

data dan presentasi. Maksudnya, sebuah data itu hanya berisi data saja,

tidak ada informasi lain mengenai cara menampilkannya. Sebuah

Page 37: X – SYNC ( XML SYNCRONIZATION )

14

dokumen XML merupakan data yang menerangkan data itu sendiri.

Tag – tag pada XML menjelaskan mengenai isi datanya. Berbeda

dengan HTML yang mencampurkan antara data dan presentasi data

tersebut. Misalnya ada tag di HTML yang menjelaskan bagaimana

browser menampilkan data untuk ditulis miring.

Contoh :

<i>dono</i>

Namun tag di XML menjelaskan data itu sendiri.

<nama>dono</nama>

Di contoh HTML, tidak diketahui apakah dono adalah suatu kota,

julukan atau nama seseorang. Namun di XML, sangat jelas bahwa dono

merupakan nama.

3. Penyederhanaan Aplikasi

Saat ini, banyak aplikasi memiliki ukuran besar dan menghabiskan

sumber daya memori. Biasanya aplikasi pengolah kata maupun gambar

harus mengakomodasikan berbagai format file. XML, yang terbuka,

akan memudahkan aplikasi untuk mengolah data.

2.7. Pengertian Sistem Informasi

Sistem adalah kumpulan obyek atau komponen yang saling

berinteraksi menjadi satu kesatuan dan bekerjasama sesuai dengan aturan

untuk mencapai tujuan tertentu. Sistem sendiri dapat dibagi menjadi sistem

yang lebih kecil yang disebut dengan subsistem – subsistem dengan maksud

untuk memudahkan penanganan suatu masalah.

Page 38: X – SYNC ( XML SYNCRONIZATION )

15

Karakteristik dari suatu sistem adalah ( Jogiyanto.H M, 1995 ) :

1. Komponen sistem

Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi

yang artinya saling bekerjasama membentuk satu kesatuan.

2. Batas sistem

Merupakan daerah yang membatasi antara suatu sistem dengan sistem

yang lainnya atau lingkungan luarnya.

3. Lingkungan luar sistem

Lingkungan luar dapat bersifat menguntungkan dan dapat juga bersifat

merugikan dimana keduanya dapat mempengruhi operasi sistem.

4. Penghubung sistem

Merupakan media penghubung antara satu subsistem dengan subsistem

yang lainnya sehingga dapat berintegrasi membentuk satu kesatuan.

Melaui penghubung ini memungkinkan sumber – sumber daya mengalir

dari satu subsistem ke subsistem yang lain. Keluaran dari suatu subsistem

akan menjadi masukan untuk subsistem yang lain melalui penghubung.

5. Masukan sistem

Adalah sesuatu yang dimasukkan ke dalam sistem yang berupa

maintenance input supaya sistem dapat beroperasi untuk memproses

sinyal - sinyal inputan sehingga dihasilkan keluaran.

6. Keluaran sistem

Merupakan hasil dari inputan sistem yang diolah dan diklarifikasikan

menjadi keluaran yang berguna.

Page 39: X – SYNC ( XML SYNCRONIZATION )

16

7. Pengolah sistem

Merupakan pengolah inputan sehingga menjadi keluaran yang berguna.

8. Sasaran sistem

Suatu sistem mempunyai tujuan atau sasaran dimana sasaran dari sistem

ini sangat menentukan sekali masukan yang dibutuhkan sistem dan

keluaran yang akan dihasilkan sistem.

Informasi adalah data yang telah disaring dan diorganisasikan oleh

suatu proses dan untuk maksud tertentu menjadi sebuah bentuk yang berarti

bagi penerimanya dan bermanfaat dalam pengambilan keputusan pada saat

ini ataupun pada saat yang akan datang. Data adalah fakta mentah mengenai

orang, kejadian, dan hal-hal penting dalam organisasi. Tiap fakta dengan

sendirinya secara relatih tidak ada artinya ( Whitten, 2004).

Sistem Informasi adalah suatu sistem di dalam organisasi yang

mempertemukan kebutuhan pengolahan transaksi harian, mendukung

operasi, bersifat managerial dan kegiatan strategi dari suatu organisasi dan

menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan

(Robert Leitch dan Roscoe Davis, 1983).

2.8. Pengertian Sistem Penjualan

Penjualan merupakan suatu sistem yang menyediakan informasi

penjualan harian, minguan, bulanan, sampai dengan tahunan dari masing –

masing jenis barang dan supplier secara rinci. Sistem penjualan ini terkait

erat dengan sistem persediaan barang, karena setiap penjualan akan

Page 40: X – SYNC ( XML SYNCRONIZATION )

17

mengurangi persediaan barang. Proses yang membentuk sistem penjualan

adalah :

2.8.1. Prosedur order penjualan

2.8.2. Prosedur pencatatan penjualan

2.8.3. prosedur stok barang

Informasi yang umumnya diperlukan oleh manager dari kegiatan

transaksi penjualan adalah :

1. Jumlah pendapatan penjualan menurut jenis produk atau kelompok

produk selama jangka waktu tertentu.

2. Jumlah harga produk yang dijual selama jangka waktu tertentu.

2.9. Pengembangan Perangkat Lunak Berorientasi Objek

2.9.1. Konsep Objek

Pendekatan berorientasi obyek pada pengembangan sistem

didasarkan pada konsep tentang obyek yang telah ada pada sebuah

lingkungan sistem.

Obyek sendiri dapat diartikan sesuatu yang dapat dilihat, disentuh

atau dirasakan, dan user menyimpan data serta mencatat perilaku

mengenai sesuatu itu.

2.9.1.1.Object Oriented Analysis (OOA)

Sebuah teknik model driven yang mengintegrasikan data dan

proses ke dalam konstruksi yang disebut obyek. Model ini berisikan

Page 41: X – SYNC ( XML SYNCRONIZATION )

18

gambar-gambar yang mengintruksikan obyek-obyek sistem dari

berbagai macam perspektif, seperti struktur, behavior, dan interaksi

obyek.

2.9.1.2.Object Oriented Design (OOD)

Pendekatan yang digunakan untuk menentukan solusi

perangkat lunak dalam hal menggabungkan obyek, attribute, dan

metodenya.

Pada Object Oriented Design (OOD) ini dibagi menjadi tiga obyek

yaitu:

1. Entity Object

Adalah sebuah obyek yang berisikan informasi yang berhubungan

dengan bisnis yang bersifat menetap dan disimpan pada sebuah

database. Entity object memuat informasi tentang tentang obyek

tersebut yang disebut attribute. Entity object bersifat

menetap/persisten yang dapat diartikan bahwa obyek tersebut

“aktif/hidup” setelah mengeksekusi sebuah progam dan disimpan

dalam database.

Simbol Entity Object:

: Object Entit y

Gambar 2.3 Simbol Entity Object

Page 42: X – SYNC ( XML SYNCRONIZATION )

19

2. Interface Object

Adalah sebuah obyek yang menyediakan media di mana

pengguna dapat berkomunikasi dengan sistem. Pengguna dapat

berkomunikasi menggunakan antarmuka/interface.

Tugas dari Interface Entity adalah:

1. Menterjemah inputan dari pengguna ke dalam informasi sehingga dapat

dipahami oleh sistem dan digunakan untuk memproses peristiwa bisnis.

2. Mengambil data yang berkaitan dengan peristiwa bisnis dan menterjemahkan

data tersebut kepada pengguna.

Simbol Interface Object:

: Inte rface Object

Gambar 2.4 Simbol Interface Object

3. Control Object

Adalah obyek yang berisi aplikasi logika yang bukan

merupakan tanggung jawab entity object.

Simbol Control Object

Page 43: X – SYNC ( XML SYNCRONIZATION )

20

: Control Obj ect

Gambar 2.5 Simbol Control Object

2.9.2. UML (Unified Modelling Language)

UML merupakan konfensi/perjanjian tentang sekumpulan

modeling digunakan untuk menspesifikan dan menjelaskan sustem

software dan hardware dalam bentuk objek (Whitten, 2004). UML tidak

menemukan sebuah metode untuk mengembangkan sistem tetapi hanya

berupa notasi.

UML mendefinisikan diagram-diagram berikut:

1. Use-Case

Use-Case adalah permodelan yang mengidentifikasikan dan

menggambarkan fungsi-fungsi sistem dengan menggunakan alat (Whitten,

2004). Use-Case Diagram ini menggambarkan interaksi sistem, eksternal

sistem dengan actor. Dengan kata lain menggambarkan secara grafis siapa

yang menggunakan sistem dan dengan cara apa pengguna mengharapkan

untuk berinteraksi dengan sistem.

Page 44: X – SYNC ( XML SYNCRONIZATION )

21

Komponen-komponen use-case diagram adalah:

1. Use-Case menggambarkan langkah-langkah yang secara tindakan

saling terkait (skenario), baik terotomatisasi maupun secara manual,

untuk tujuan melengkapi satu tugas bisnis tunggal(Whitten, 2004).

Gambar 2.6 Simbol Use-Case

2. Actor adalah segala sesuatu yang perlu berinteraksi dengan sistem

untuk pertukaran informasi (Whitten,2004).

Gambar 2.7 Simbol Actor

3. Association (Gabungan) adalah hubungan antara pelaku/actor

dengan use case di mana terjadi interaksi di antara mereka (Whitten,

2004).

UseCase

Actor

Page 45: X – SYNC ( XML SYNCRONIZATION )

22

Gambar 2.8 Simbol Association

2. Class Diagram

Merupakan gambar grafis mengenai struktur objek statis dari suatu

sistem, menunjukan kelas-kelas objek yang menyusun sebuah sistem dan juga

hubungan antar kelas objek tersebut (Whitten, 2004).

3. Sequence Diagram

Menjelaskan interaksi objek yang disusun dalam suatu urutan waktu.

Diagram ini secara khusus berasosiasi dengan use case.

Sequence Diagram memperlihatkan tahap demi tahap apa yang seharusnya

terjadi untuk menghasilkan sesuatu didalam use case (Whitten, 2004).

2.10. Perancangan Database

Merancang database merupakan suatu hal yang sangat penting.

Kesulitan utama dalam merancang database adalah bagaimana merancang

struktur database sehingga database dapat memfasilitasi keperluan saat ini

dan saat mendatang. Perancangan model konseptual akan menunjukkan

entity dan relasinya berdasarkan proses yang diinginkan oleh organisasi.

Actor UseCase

Page 46: X – SYNC ( XML SYNCRONIZATION )

23

Ketika menentukan entity dan relasinya dibutuhkan analisis data tentang

informasi yang ada dalam spesifikasi mendatang (Harianto, 1994).

Pada perancangan model konseptual penekanan tinjauan dilakukan

pada struktur data dan relasi antar file. Pendekatan yang dilakukan pada

perancangan model konseptual adalah menggunakan model data relational.

Terdapat dua buah teknik yaitu :

- Teknik Normalisasi

- Teknik Entity Relationship

Di laporan ini hanya akan dibahas teknik entity relationship karena

teknik entity relationship merupakan teknik yang sederhana karena relasi

tidak perlu diuji secara terus menerus. Pada teknik ini hubungan antara file

direlasikan dengan kunci relasi ( relation key), yang merupakan kunci utama

dari masing-masing file.

2.11. TCP / IP

TCP / IP bekerja pada 2 layer network yang berbeda, TCP

(Transfer control Protokol) bekerja pada layer 4 (Transport layer) dan IP

(Internet Protocol) yang bekerja pada layer 3(network layer). Prinsip kerja

IP adalah melakukan pemotongan data menjadi paket – paket yang

berukuran lebih kecil. Paket data ini akan ditransmisikan dari satu komputer

ke komputer lain tanpa tergantung pada media komuniksi yang digunakan.

Paket data akan dilepaskan dalam jaringan komputer dan akan mencari

sendiri rute yang harus ditempuh ke komputer tujuannya, sehingga ketika

Page 47: X – SYNC ( XML SYNCRONIZATION )

24

sampai ke tujuan sangat dimungkinkan bahwa data yang sampai tidak urut.

Tipe koneksi seperti ini disebut dengan connectionless. Komputer Pengirim

tidak akan mengetahui apakah data sampai di tujuan atau tidak.

Untuk membantu mencapai komputer tujuan, setiap komputer dalam

jaringan TCP/IP harus diberikan IP address. IP address harus unik untuk setiap

komputer, tetapi tidak menjadi halangan bila sebuah komputer mempunyai

beberapa IP address. IP address terdiri atas 8 byte data yang mempunyai nilai

dari 0-255 yang sering ditulis dalam bentuk [xx.xx.xx.xx] (xx mempunyai nilai

dari 0-255).

Berbeda dengan InterNet Protokol (IP), TCP mempunyai prinsip

kerja seperti "virtual circuit" pada jaringan telepon. TCP lebih mementingkan

tata-cara dan keandalan dalam pengiriman data antara dua komputer dalam

jaringan. Dalam hal ini, TCP mengatur bagaimana cara membuka hubungan

komunikasi, jenis aplikasi apa yang akan dilakukan dalam komunikasi tersebut

(misalnya mengirim e-mail, transfer file dsb.) Di samping itu, juga mendeteksi

dan mengoreksi jika ada kesalahan data. TCP mengatur seluruh proses koneksi

antara satu komputer dengan komputer yang lain dalam sebuah jaringan

komputer. TCP inilah yang akan melakukan pengecekan apakah data yang

dikirimkan melalui IP telah sampai ke penerima dengan benar dan lengkap, dan

kemudian menyusun ulang paket – paket data yang tidak berurutan menjad

sebuah data yang lengkap. Bentuk hubungan TCP adalah full duplex, karena

adanya multiplexing yang dilakukan.

Page 48: X – SYNC ( XML SYNCRONIZATION )

25

2.12. Pemrograman Berorientasi Object Menggunakan Java

Java merupakan pemrograman berorientasi objek (OOP), dengan

kata lain rancangan java merupakan suatu teknik yang memusatkan

rancangan pada data (objek) dan interface.

1. Objek

Objek merupakan perangkat lunak yang berisikan variabel serta kumpulan

dari metode-metode.

2. Message

Objek melakukan interaksi serta komunikasi menggunakan message atau

pesan.

3. Class

Class merupakan bentuk dasar yang mendefiniskan variabel serta meode-

metode dari semua objek.

Sintaks-sintaks Dasar Bahasa Pemrograman JavaTM adalah :

1. Variabel dalam Java

a) Tipe Variabel

Variabel merupakan container yang digunakan untuk menyimpan

suatu nilai pada sebuah program dengan tipe tertentu. Pada dasarnya

ada 2 macam tipe variabel data dalam bahasa Java, yakni tipe primitif

dan tipe reference. Adapun tipe primitif meliputi:

1. boolean

2. byte

3. short

Page 49: X – SYNC ( XML SYNCRONIZATION )

26

4. int

5. long

6. char

7. float

8. double

Sedangkan tipe variabel reference, meliputi tipe class, tipe array, dan

tipe interface. Ada pula tipe variabel data yang khusus yang disebut

dengan null types, namun variabel dalam Java tidak akan pernah

memiliki tipe null ini.

b) Konstanta

Variabel dalam Java bisa dijadikan konstanta, sehingga nilainya tidak

akan dapat diubah-ubah dengan mendeklarasikan variabel tersebut

sebagai variabel final. Berikut cara pendeklarasian variabel yang

dijadikan konstanta:

final <tipe data> <nama variabel> = <nilai>

2. Operator dalam Java

a) Operator Aritmatika

Sama halnya dengan semua bahasa pemrograman, Java menyediakan

operator-operator aritmatika untuk manipulasi variabel data numerik.

Tabel penggunaan dan jenis operator aritmatika dalam Java bisa dilihat

di bawah ini:

Operator Penggunaan Deskripsi + op1 + op2 Menambahkan op1 dengan op2 - op1 - op2 Mengurangkan op1 dengan op2 * op1 * op2 Mengalikan op1 dengan op2

Page 50: X – SYNC ( XML SYNCRONIZATION )

27

/ op1 / op2 Membagi op1 dengan op2 % op1 % op2 Menghasilkan sisa hasil bagi antara

op1 dengan op2

Tabel 2.1 Operator Aritmatika dalam Java

Selain operator di atas, operator berikut juga termasuk dalam operator

aritmatika:

Operator Penggunaan Deskripsi ++ op++ nilai op dinaikkan 1 setelah dilakukan

operasi pada op ++ ++op nilai op dinaikkan 1 sebelum

dilakukan operasi pada op -- op-- nilai op diturunkan 1 setelah

dilakukan operasi pada op -- --op nilai op diturunkan 1 sebelum

dilakukan operasi pada op - -op mengubah nilai op menjadi

negatifnya, jika op positif maka menjadi negatif, jika op negatif maka menjadi positif

Tabel 2.2 Operator Aritmatika yang lain dalam Java

b) Operator Relasional

Operator relasional dalam Java dapat digunakan untuk

membandingkan dua variabel data, lebih lengkapnya dapat dilihat

dalam tabel berikut:

Operator Penggunaan Deskripsi > op1 > op2 menghasilkan true jika nilai op1 lebih

besar dari nilai op2 < op1 < op2 menghasilkan true jika nilai op1 lebih

kecil dari nilai op2 >= op1 >= op2 menghasilkan true jika nilai op1 lebih

besar atau sama dengan nilai op2 <= op1 <= op2 menghasilkan true jika nilai op1 lebih

kecil atau sama dengan nilai op2 == op1 == op2 menghasilkan true jika nilai op1

Page 51: X – SYNC ( XML SYNCRONIZATION )

28

sama dengan dari nilai op2 != op1 != op2 Menghasilkan true jika nilai op1

tidak sama dengan nilai op2

Tabel 2.3 Operator Relasional dalam Java

c) Operator Kondisional

Operator kondisional dalam Java terdiri dari 6 jenis sebagaimana

digambarkan dalam tabel berikut:

Operator Penggunaan Deskripsi && op1 && op2 menghasilkan true jika op1 dan

op2, keduanya bernilai true || op1 || op2 menghasilkan true jika op1 atau

op2, salah satunya bernilai true ! !op1 menghasilkan true jika op1 bernilai

false & op1 & op2 bitwise AND, menghasilkan true

jika op1 dan op2, keduanya bernilai true

| op1 | op2 bitwise OR, menghasilkan true jika op1 atau op2, salah satunya bernilai true

^ op1 ^ op2 menghasilkan true jika salah satu di antara op1 atau op2 bernilai true, namun tidak keduanya

Tabel 2.4 Operator Kondisional dalam Java

d) Operator Shift

Operator shift dalam Java digunakan untuk manipulasi bit. Operator ini

digunakan untuk menggeser bit-bit sesuai yang diinginkan. Ada 3

operator shift dalam Java, yaitu:

Operator Penggunaan Deskripsi >> op1 >> op2 menggeser bit op1 ke kanan sejauh

op2 << op1 << op2 menggeser op1 ke kiri sejauh op2

>>> op1 >>> op2 Menggeser bit op1 ke kanan sejauh

Page 52: X – SYNC ( XML SYNCRONIZATION )

29

op2

Tabel 2.5 Operator Shift dalam Java

e) Operator Bitwise

Operator bitwise dalam Java juga digunakan untuk manipulasi bit.

Ada 4 operator bitwise dalam Java, yaitu:

Operator Penggunaan Deskripsi & op1 & op2 bitwise AND | op1 | op2 bitwise OR ^ op1 ^ op2 bitwise XOR ~ ~op1 bitwose complement

Tabel 2.6 Operator Bitwise dalam Java

f) Operator Assignment

Operator assignment dalam Java digunakan untuk memberikan sebuah

nilai ke sebuah variabel. Operator assignment hanya ‘=’, namun selain

itu dalam Java dikenal beberapa shortcut assignment operator yang

penting, yang digambarkan dalam tabel berikut:

Operator Penggunaan Deskripsi += op1 += op2 op1 = op1 + op2 -= op1 -= op2 op1 = op1 - op2 *= op1 *= op2 op1 = op1 * op2 /= op1 /= op2 op1 = op1 / op2

%= op1 %= op2 op1 = op1 % op2 &= op1 &= op2 op1 = op1 & op2 |= op1 |= op2 op1 = op1 | op2 ^= op1 ^= op2 op1 = op1 ^ op2

<<= op1 <<= op2 op1 = op1 << op2 >>= op1 >>= op2 op1 = op1 >> op2

>>>= op1 >>>= op2 op1 = op1 >>> op2

Tabel 2.7 Operator Assignment dalam Java

Page 53: X – SYNC ( XML SYNCRONIZATION )

30

g) Urutan Precedence Operator

Adapun urutan operator precedence dalam Java, secara lengkap

digambarkan dalam tabel berikut:

postfix operators [] . (params) expr++ expr-- unary operators ++expr –expr +expr –expr ~ ! creation or cast new (type)expr multiplicative * / % additive + - shift << >> >>> relational < > <= >= istanceof equality == != bitwise AND & bitwise XOR ^ bitwise OR | logical AND && logical OR || conditional ? : assignment = += -= *= /= %= &= ^= |= <<=

>>= >>>=

Tabel 2.8 Operator Precedence dalam Java

3. Control Flow dalam Java

a) Operasi Pengulangan

2. while

Operasi while digunakan untuk mengeksekusi sebuah blok secara

berulang selama memenuhi kondisi tertentu. Sintaks

penggunaannya sebagai berikut:

while (ekspresi) { // ........................ }

Jadi, selama ekspresi menghasilkan nilai true, pernyataan yang ada

di dalam blok akan dieksekusi terus menerus.

Page 54: X – SYNC ( XML SYNCRONIZATION )

31

3. do-while

Sama halnya dengan operasi while, operasi do-while digunakan

untuk mengeksekusi sebuah blok secara berulang sampai tidak

memenuhi kondisi tertentu. Pada penggunaan while, ekspresi

diperiksa pada saat awal operasi perulangan, jadi ada kemungkinan

pernyataan di dalam blok tidak pernah dieksekusi. Pada

penggunaan do-while, ekspresi tidak diperiksa pada awal operasi

perulangan, jadi operasi do-while dapat menjalankan operasi

perulangan pertama kali tanpa ekspresi apapun. Sintaks

penggunaannya sebagai berikut:

do { // ........................ } while (ekspresi);

4. for

Operasi for digunakan untuk mengeksekusi sebuah blok secara

berulang dalam sebuah range nilai tertentu. Sintaks penggunaannya

sebagai berikut:

for (inisialisasi; terminasi; increment) { // ........................ }

Inisialisasi dalam operasi for merupakan ekspresi yang dieksekusi

pada saat pengeksekusian for. Terminasi digunakan untuk

menentukan kapan operasi perulangan akan dihentikan. Increment

merupakan ekspresi yang akan dieksekusi setiap selesai melakukan

satu kali perulangan. Ketiga bagian di dalam for bersifat opsional,

Page 55: X – SYNC ( XML SYNCRONIZATION )

32

jadi dapat dikosongkan. Namun jika ketiga bagiab tersebut kosong,

akan menyebabkan terjadinya perulangan tanpa henti (loop

forever).

b) Operasi Kondisional

2. if – else

Operasi if digunakan untuk mengeksekusi sebuah blok jika

memenuhi sebuah kondisi tertentu. Sintaks penggunaannya

sebagai berikut:

if (ekspresi) { // ........................ }

Jika kondisi bernilai true, pernyataan di dalam blok akan

dieksekusi. Jika menggunakan if-else, sintaks penggunaannya

sebagai berikut:

if (kondisi) { // ...... pernyataan 1 .... } else { // ...... pernyataan 2 .... }

Jika kondisi bernilai true, pernyataan 1 akan dijalankan.

Sebaliknya, jika kondisi bernilai false, pernyataan 2 yang akan

dijalankan. Jika menggunakan if-elseif-else, sintaks

penggunaannya sebagai berikut:

if (kondisi1) { // ...... pernyataan 1 .... } else if (kondisi2) { // ...... pernyataan 2 .... } else {

// ...... pernyataan 3 ....

Page 56: X – SYNC ( XML SYNCRONIZATION )

33

}

3. switch-case

Operator switch digunakan untuk mengeksekusi sebuah blok jika

memenuhi sebuah kondisi tertentu. Sintaks penggunaannya sebagai

berikut:

switch (ekspresi) { case (kondisi1): // ..... pernyataan 1 ..... break; case (kondisi2): // ..... pernyataan 2 ..... break; case (kondisin): // ..... pernyataan n ..... break; default: // ..... pernyataan default ..... break; }

Kondisi default bersifat opsional, artinya boleh ada atau tidak ada,

yang berfungsi sebagai else, pada kasus if-else dengan banyak

percabangan, yakni ketika ditemukan kondisi yang tidak memenuhi

semua pengecekan kondisi sebelumnya.

Pernyataan break pada operator switch di atas, digunakan untuk

terminasi (menghentikan) eksekusi pernyataan di dalam blok

switch, namun bersifat opsional. Jika pada suatu case tidak

diberikan pernyataan break, proses pengecekan akan diteruskan

pada case berikutnya.

Page 57: X – SYNC ( XML SYNCRONIZATION )

34

c) Break, Label, Return, Continue

Operator break ada 2 macam, yakni:

1. break with label

2. break without label

Penggunaan break tanpa label umumnya dalam switch. Fungsi

break adalah untuk menghentikan eksekusi sebuah blok program,

sebagai contoh untuk memaksa keluar dari sebuah perulangan.

Penggunaan break dengan label digunakan pada perualangan yang

berkalang, yakni perulangan dalam perulangan, yang mungkin

berada dalam perulangan yang lain, dan seterusnya, akan

menyebabkan setelah eksekusi sebuah blok pernyataan terhenti,

aliran eksekusi akan berlanjut ke posisi perulangan tempat label

berada.

Berbeda dengan break, continue digunakan untuk melewatkan

eksekusi pada perulangan yang ada, dan melanjutkan ke perulangan

berikutnya.

Pada operator continue, juga dapat digunakan label dengan aturan

yang sama dengan break. Pernyataan return digunakan untuk

keluar dari sebuah fungsi, dan dapat diberikan parameter nilai

untuk menunjukkan return value dari sebuah fungsi.

Page 58: X – SYNC ( XML SYNCRONIZATION )

35

4. Array/Larik

Larik atau array merupakan struktur data yang penting dalam bahasa

pemrograman. Sebuah larik terdiri atas himpunan beberapa nilai data

dengan tipe data yang sama, di mana jumlah anggota dari himpunan

dalam larik itu ditentukan saat deklarasi larik atau array. Tiap anggota

himpunan dalam larik tersebut akan diacu sebagai elemen dengan

menunjuk nomor indeks.

idx[0] idx[1] idx[2] idx[3] idx[4] idx[5] ...

Penggambaran di atas menunjukkan sebuah larik, yaitu elemen

pertama akan diacu sebagai elemen ke-0, elemen kedua diacu sebagai

elemen ke-1, begitu seterusnya. Jika Anda pernah memprogram

dengan bahasa lain seperti PHP, ASP, Pascal, C/C++, Perl larik pada

Java sama saja dengan larik dengan bahasa-bahasa pemrograman

tersebut, hanya saja mungkin pengacuan elemennya berbeda, ada

bahasa pemrograman yang mengacu elemen pertama sebagai elemen

ke-1 dan bukan ke-0.

Untuk mendefinisikan tipe variabel yang bertipe array digunakan cara

seperti ini:

Type[] namaVariabel;

Type menunjukkan bahwa array ini terdiri atas nilai-nilai bertipe data

Type. Berikut contoh penggunakan array dalam Java:

// Membuat array data bertipe data integer int[] my ArrayOfInteger;

Page 59: X – SYNC ( XML SYNCRONIZATION )

36

// Membuat array data bertipe data float float[] my ArrayOfFloat; // Membuat array data bertipe data String String[] my ArrayOfString;

Setelah mendeklarasikan array dengan cara di atas, langkah

selanjutnya adalah menginisialisasi array tersebut. Ada dua cara yang

umum digunakan, yaitu:

1. Dengan operator new

Formatnya adalah sebagai berikut:

new <type>[ukuran]

Contoh:

int my ArrayOfInteger = new int[10];

Dengan menggunakan cara ini, array yang ada belum mempunyai

nilai awal. Sebelum dapat digunakan, terlebih dahulu array

tersebut harus memiliki nilai awal.

2. Dengan langsung memberikan nilai-nilai awal

Nilai awal dari array ditempatkan di antara ‘{‘ dan ‘}’ yang

elemen-elemenya dipisahkan tanda koma, sperti berikut:

int my ArrayOfInteger = { 1, 2, 3, 4, 5 };

5. Java Exception

1. Pengertian Exception

Secara definitif, exception merupakan sebuah kejadian yang terjadi

ketika program menemukan suatu kesalahan saat instruksi program

Page 60: X – SYNC ( XML SYNCRONIZATION )

37

dijalankan. Banyak hal yang dapat menyebabkan terjadinya

kesalahan, sebagai contoh crash, hard disk rusak dengan tiba-tiba.

Dalam Java, ketika terjadi kesalahan, otomatis akan dilemparkan

sebuah objek yang disebut dengan exception, yang kemudian dapat

diproses lebih lanjut oleh fungsi-fungsi yang siap menangani

kesalahan tersebut. Proses pelemparan exception tersebut sering

dikenal dengan istilah throwing exception, sedangkan proses

penerimaan exception yang bersangkutan dikenal dengan istilah

catch exception.

2. try - catch - finally

Berikut struktur blok try - catch - finally:

try { // .................... } catch (Exception xxx) { // .................... } catch (Exception xxx) { // .................... } finally { // .................... }

Blok try digunakan untuk menempatkan kode-kode program Java

yang mengandung kode program yang mungkin melemparkan

exception. Blok catch, digunakan untuk menempatkan kode-kode

program Java yang digunakan untuk menangani sebuah exception

tertentu. Blok finally, digunakan untuk clean-up.

2.13. Pemrograman Client / Server Dengan Java

2.13.1. Pemrograman Client / Server

Page 61: X – SYNC ( XML SYNCRONIZATION )

38

Suatu model umum yang diterapkan untuk pemrograman

jaringan adalah model client/server. Konsepnya sederhana, sebuah

proses / aplikasi client melakukan permintaan untuk suatu

informasi atau mengirim sebuah perintah ke aplikasi server.

Aplikasi sever akan menerima perminataan dari client, kemudian

memproses berdasarkan permintaan tersebut, dan akan

mengembalikan sesuatu ke client sebagai hasil dari pemrosesan

yang sudah dilakukan. Sehingga tugas server adalah melakukan

listen untuk suatu koneksi, sedangkan client mencoba membuat

koneksi ke server.

Setelah koneksi terbentuk, hubungan pertukaran data antara

client dan server diwakili dengan suatu stream input dan output.

2.13.2. Java Socket

Socket adalah sebuah abstraksi perangkat lunak yang

digunakan sebgai suatu “terminal” dari suatu hubungan antara dua

mesinatau proses yang saling berinterkoneksi. Di setiap mesin yang

berinterkoneksi, harus terpasang socket. Pada Java, anda

membutuhkan socket untuk membuat suatu hubungan ke mesin

atau proses lain, baru kemudian anda akan mendapatkan input

stream dan output stream untuk pertukaran data.

Terdapat dua buah kelas yang sudah tersedia pada Java

yang mendukung tipe koneksi Connection-Oriented, yaitu

java.net.ServerSocket yang digunakan server untuk listen

Page 62: X – SYNC ( XML SYNCRONIZATION )

39

koneksi dan java.net.Socket yang digunakan oleh client untuk

menginisialisasi koneksi.

2.13.3. Socket

Kelas Socket adalah sebuah kelas yang dirancang sebagai

“wakil” sebuah koneksi menggunakan protokol TCP. Ketika

sebuah socket dibuat, sebuah koneksi akan terbentuk ke suatu

mesin atau proses yang dituju. Pada Java 2, kelas Socket memiliki

8 konstruktor, yang sering dipakai adalah :

a. Socket(InetAdress adress, int port)

Membuat sebuah stream socket dan koneksi ke suatu nomor port

pada sebuah komputer yang memiliki alamat IP.

b. Socket(String host, int port)

Membuat sebuah stream socket dan koneksi ke suatu nomor port

pada sebuah komputer berdasarkan namanya.

Selain itu, juga ada dua method dari kelas socket yang pasti

akan digunakan, yaitu getInputStream() dan

getOutputStream() , dimana keduanya mengembalikan suatu

objek stream yang dapat digunakan untuk berkomunikasi dengan

socket. Method close() digunakan untuk memberitahukan

kepada protokol untuk menutup koneksi.

2.13.4. ServerSocket

Kelas ini menyatakan suatu koneksi TCP yang berfungsi

untuk listen yang siap menerima suatu permintaan dari proses lain.

Page 63: X – SYNC ( XML SYNCRONIZATION )

40

Kelas ServerSocket ini digunakan ketika akan membangun

aplikasi server yang menerapakan tipe koneksi Connection

Oriented.

Ketika dibuat sebuah objek baru dari kelas ServerSocket ,

untuk dapat mengirim dan menerima melaui stream, tetap perlu

InputStream dan outputStream dari objek socket yang dihasilkan

ketika dari kelas ServerSocket menerima permintaan dari client

melalui method accept() .

Kelas ServerSocket memiliki konstruktor yang menerima

sebuh nomor port yang akan digunakan sebagai nomor akses

layanan yang disediakannya.

2.14. MySQL

MySQL (My Strukture Query Language) adalah sebuah program

pembuat database yang bersifat open source dan merupakan program

pengakses database yang bersifat jaringan sehingga dapat digunakan untuk

aplikasi multi user (banyak pengguna). Kelebihan lain dari MySQL adalah

menggunakan bahasa Query standar yang dimiliki oleh SQL (Stucture Query

Language). SQL adalah suatu bahasa permintaan yang terstruktur, yang telah

distandarkan untuk semua program pengakses database seperti Oracle,

Posgres SQL, SQL Server, dan lain-lain. SQL dibagi menjadi dua bentuk

perintah, yaitu :

Page 64: X – SYNC ( XML SYNCRONIZATION )

41

1. DDL (Data Manipulation Language)

DDL (Data Manipulation Language) adalah suatu bentuk bahasa yang

digunakan untuk melakukan pendefinisian data, adapun perintah yang

digunakan adalah:

a. CREATE

Perintah ini digunakan untuk membuat tabel dan database.

b. DROP :

Perintah ini digunakan menghapus tabel maupun database.

c. ALTER :

Perintah ini digunakan untuk mengubah struktur tabel yang telah

dibuat, baik menambah field (add), mengganti nama field (change)

ataupun menamakan kembali (rename), serta menghapus field

(drop).

2. DML (Data Manipulation Language)

DML (Data Manipulation Language) adalah suatu bahasa yang digunakan

untuk memanipulasi data, adapun query yang digunakan adalah:

d. SELECT

Perintah ini digunakan untuk melihat data dalam tabel.

e. INSERT

Perintah ini digunakan untuk menambah data ke suatu tabel.

f. UPDATE

Page 65: X – SYNC ( XML SYNCRONIZATION )

42

Perintah ini digunakan untuk mengubah suatu data dalam suatu

tabel.

g. DELETE

Perintah ini digunakan untuk menghapus data dalam suatu tabel

2.15. Parser dan DOM ( Document Object Model )

2.13.1. Parser

Parser adalah tool XML yang paling penting dan mendasar. Setiap

aplikasi XML didasarkan pada parser. Parser adalah suatu komponen

software yang diposisikan diantara aplikasi dan dokumen XML. Tujuan

parser adalah untuk melindungi pengembang dari kerumitan dokumen

XML. Jadi dengan parser, pengembang tidak perlu bersusah – payah untuk

membuat fungsi pembacaan dokumen XML.

Dokumen XML bisa berupa dokumen yang well formed atau

dokumen yang valid, sehingga ada dua jenis parser XML yaitu :

a. Nonvalidating Parser

Jenis parser ini bisa membaca dokumen XML yang valid maupun

yang well formed tetapi tidak akan melakukan validasi untuk tipe

dokumen valid.

b. Validating Parser

Jenis parser ini bisa membaca dokumen XML yang valid maupun

yang well formed tetapi untuk dokumen yang well formed parser

akan berfungsi seperti Nonvalidating Parser.

Page 66: X – SYNC ( XML SYNCRONIZATION )

43

2.13.2. DOM

Pendekatan yang umum dalam memproses dokumen XML adalah

dengan menggunakan object-based interface. Dengan pendekatan ini,

parser membuat object tree yang memuat seluruh struktur dokumen XML

secara eksplisit di memori. Aplikasi sangat cocok untuk memproses XML

dengan cara ini.

DOM ( Document Object Model ) adalah salah satu model API (

Application Programming Interface ) yang digunakan untuk mengakses

dokumen XML. Dengan API ini, programer dapat mrngakses suatu

dokumen XML tanpa harus mempedulikan sintaks dokumen tersebut.

Sesuai spesifikasi dari W3C, tujuan yang paling penting dari DOM adalah

untuk menyediakan standar antar muka pemrograman yang bisa digunakan

pada berbagai variasi lingkungan pemrograman.

Contoh :

Diberikan suatu dokumen HTML seperti berikut,

<TABLE> <TBODY> <TR> <TD>Shady Grove</TD> <TD>Aeolian</TD> </TR> <TR> <TD>Over the River, Charlie</TD> <TD>Dorian</TD> </TR> </TBODY> </TABLE>

Secara grafis, DOM akan merepresentasikan struktur diatas sebagai

berikut :

Page 67: X – SYNC ( XML SYNCRONIZATION )

44

Gambar 2.9 Struktur Pohon DOM

Pada DOM, dokumen mempunyai struktur logika yang mirip sebuah

pohon. Setiap dokumen mempunyai nol atau satu doctype nodes, satu

element node dan nol atau lebih dari satu comment. Element dari

dokumen berlaku sebagai root dari pohon.

Page 68: X – SYNC ( XML SYNCRONIZATION )

45

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

3.1.1. Gambaran Umum Sistem Lama

CV. NKI Prembun adalah sebuah perusahaan distribusi yang

bergerak dalam penjualan alat – alat pertanian, onderdil kendaraan dan

jasa bengkel. Perusahaan ini sudah berkembang sehingga memiliki

beberapa cabang di beberapa lokasi. Kantor pusat maupun kantor cabang

sama – sama melayani penjualan kepada customer. Walaupun perusahaan

ini sudah sedemikian berkembang, perusahaan ini masih menggunakan

sistem yang sederhana untuk menangani data – data pentingnya. Data

customer dan data transaksi penjualan perusahaan hanya dicatat dengan

bantuan Microsoft Excel yang tentu saja mempunyai banyak keterbatasan

dalam penggunaannya sebagai pengolah data. Setelah data – data baru

dicatat, kemudian data tersebut akan dikirimkan ke bagian administrasi di

kantor pusat secara hard copy atau masih menggunakan kertas. Dengan

menggunakan cara pengiriman data seperti ini, maka akan terjadi

pemborosan dalam hal biaya dan waktu. Kerugian lain adalah data tidak

bisa dijamin keamanan dan itegritasnya.

Page 69: X – SYNC ( XML SYNCRONIZATION )

46

3.1.2. Orang Yang Terlibat Dalam Sistem

Dalam sistem penjualan CV. NKI Prembun melibatkan tiga aktor,

yaitu :

1. Petugas Pusat

Orang yang bertanggung jawab penuh untuk mengelola sistem di

kantor pusat, termasuk memberikan hak akses ke sistem bagi aktor

lain. Dalam sistem ini diasumsikan bahwa data – data barang akan

ditangani oleh petugas pusat.

2. Kasir Penjualan

Orang yang memasukkan dan menangani data-data yang

berhubungan dengan penjualan di kantor pusat.

3. Petugas Cabang

Orang yang bertanggung jawab untuk menginputkan data

pelanggan baru di kantor pusat dan menangani administrasi di kantor

cabang.

3.1.3. Analisis Masalah

Permasalahan yang timbul pada model perusahaan terdistribusi

seperti ini bagaimana agar data penjualan dan data customer di kantor

cabang bisa disimpan juga di kantor pusat dan data barang dari kantor

pusat dapat sama dengan data barang di kantor cabang. Kantor cabang

harus bisa mengirimkan data customer baru, data transaksi penjualan dan

data order barang yang habis stok ke kantor pusat sedangkan pada sisi lain

Page 70: X – SYNC ( XML SYNCRONIZATION )

47

bagaiman cara kantor pusat dapat mengirimkan data update barang serta

data barang yang akan dikirim ke kantor cabang sebagai pemenuhan order.

Masalah yang lain adalah bagaimana cara pengiriman data yang efisien

agar data – data tersebut dapat sampai ke tujuan secara efisien.

3.1.4. Gambaran Umum Sistem Baru

Untuk menangani permasalahan di atas, maka akan dibuat sebuah

sistem baru yang bisa mengkoneksikan masing – masing kantor cabang

dengan kantor pusat. Sistem baru ini menerapkan teknologi XML yang

akan menjembatani komunikasi dan pertukaran data antara database di

kantor cabang dengan database di kantor pusat sehingga data – data di

setiap bagian dapat selalu sinkron.

Sinkronisasi akan dilakukan setiap ada perubahan data yang terjadi

pada database di kantor cabang maupun database di kantor pusat.

Penggunaan teknologi XML sebagai sarana sinkronisasi akan

menjamin keakuratan data sekaligus akan menyingkat waktu pengiriman

data sehingga karyawan pada level management akan dapat menentukan

langkah bisnis mereka dengan cepat.

Page 71: X – SYNC ( XML SYNCRONIZATION )

48

<<depend on>>

Petugas Pusat Petugas

Cabang

Kasir

3.1.5. Use Case Diagram

Use Case Diagram Secara Umum

Gambar 3.1 Use Case Diagram

Cabang

Pusat

Login

Administrasi Pusat

Administrasi Cabang

Penjualan

Page 72: X – SYNC ( XML SYNCRONIZATION )

49

3.1.5.1. Use Case Diagram Kantor Cabang

<<Depend On>>

Login

(f rom Use Cases)

Cek Persediaan Barang

(f rom Bagian Kasir)

Buat Order Barang

(f rom Bagian Kasir)

+theBuat Order Barang

Cek Pengiriman

(f rom Bagian Kasir)

Buat Laporan

(f rom Bagian Kasir)

Petugas Cabang

(f rom Actors)

Maintain Data Customer

(f rom BagianPetugasCabang)

Gambar 3.2 Use Case Diagram Administrasi Cabang

Page 73: X – SYNC ( XML SYNCRONIZATION )

50

3.1.5.2. Use Case Diagram Kantor Pusat

Login

(f rom Use Cases)

Maintain Data Barang

(f rom BagianDepo)

Membuat Laporan

(f rom BagianDepo)

Lihat Data Transaksi

(f rom BagianDepo)

Maintain Data Petugas

(f rom BagianDepo)

Maintain Data Customer Pusat

(f rom BagianDepo)

Maintain Data Kantor

(f rom BagianDepo)

Petugas Pusat

(f rom Actors)

Cek Order

(f rom BagianDepo)

Gambar 3.3 Use Case Diagram Adminstrasi Kantor Pusat

<<depend On>>

Page 74: X – SYNC ( XML SYNCRONIZATION )

51

3.1.5.3. Use Case Diagram Penjualan

Cetak Data Transaksi

(f rom Penjualan)

Login

(f rom Use Cases)

Cek Persediaan Barang

(f rom Bagian Kasir)

Masukkan Data PenjualanBaru

(f rom Penjualan)

Petugas Kasi r

(f rom Actors)

Lihat Data Customer

(f rom Use Cases)

Gambar 3.4 Use Case Diagram Input Penjualan

<<depend On>>

Page 75: X – SYNC ( XML SYNCRONIZATION )

52

3.2. Design Sistem

3.2.1. ER Diagram

3.2.1.1. ER Diagram Kantor Cabang

Gambar 3.5 ER Diagram Kantor Cabang

Page 76: X – SYNC ( XML SYNCRONIZATION )

53

3.2.1.2. ER Diagram Kantor Pusat

Gambar 3.6 ER Diagram Kantor Pusat

Page 77: X – SYNC ( XML SYNCRONIZATION )

54

3.2.2. Class Diagram

3.2.2.1. Class Diagram Kantor Cabang

Gambar 3.7 Class Diagram Kantor Cabang

Page 78: X – SYNC ( XML SYNCRONIZATION )

55

3.2.2.2. Class Diagram kantor Pusat

Gambar 3.8 Class Diagram Kantor Pusat

Page 79: X – SYNC ( XML SYNCRONIZATION )

56

3.2.3. Sequence Diagram

3.2.3.1. Sequence Diagram Kantor Cabang

Proses Login Petugas

: Petugas Cabang 5. viewStaus : Layar_login : Login_control : Petugas

1. input name,password

3. getDataByVal()

2. cekLogin()

4. konfirmasiStatus()

5. viewStatus()

Gambar 3.9 Sequence Diagram Login Petugas

Proses Maintain Data Customer

: Petugas Cabang : LayarCustomer : CustomerControl : Customer

2. Lihat data

3. getCustomerInPos()

1. selectAll()

4. showCurentCust()

4. dataPerCustomer()

Gambar 3.10 Sequence Diagram Maintain Customer : View Data

Page 80: X – SYNC ( XML SYNCRONIZATION )

57

Gambar 3.11 Sequence Diagram Maintain Customer : Edit Data

Gambar 3.12 Sequence Diagram Maintain Customer : Insert Data

Page 81: X – SYNC ( XML SYNCRONIZATION )

58

Proses Cek Persediaan Barang

Gambar 3.13 Sequence Diagram Cek Persediaan Barang

Proses Buat Order Barang

Gambar 3.14 Sequence Diagram Buat Order Barang

Page 82: X – SYNC ( XML SYNCRONIZATION )

59

Proses Cek Pengiriman Barang

Gambar 3.15 Sequence Diagram Cek Pengiriman Barang

Page 83: X – SYNC ( XML SYNCRONIZATION )

60

Proses Buat Laporan

Gambar 3.16 Sequence Diagram Buat Laporan

Page 84: X – SYNC ( XML SYNCRONIZATION )

61

3.2.3.2. Sequence Diagram Kantor Pusat

Proses Login

Gambar 3.17 Sequence Diagram Login Petugas Pusat

Proses Maintain Data Customer

Gambar 3.18 Sequence Diagram Maintain Data Customer : View Data

Page 85: X – SYNC ( XML SYNCRONIZATION )

62

Gambar 3.19 Sequence Diagram Maintain Customer : Edit Data

Gambar 3.20 Sequence Diagram Maintain Customer : Insert Data

Page 86: X – SYNC ( XML SYNCRONIZATION )

63

Proses Maintain Data Petugas

Gambar 3.21 Sequence Diagram Maintain Data Petugas : Insert Petugas

Gambar 3.22 Sequence Diagram Maintain Data Petugas : Edit Petugas

Page 87: X – SYNC ( XML SYNCRONIZATION )

64

Gambar 3.23 Sequence Diagram Maintain Data Petugas : Delete Petugas

Page 88: X – SYNC ( XML SYNCRONIZATION )

65

Proses Maintain Data Kantor

Gambar 3.24 Sequence Diagram Maintain Data Kantor : Insert Kantor

Page 89: X – SYNC ( XML SYNCRONIZATION )

66

Gambar 3.25 Sequence Diagram Maintain Data Kantor : Edit Kantor

Page 90: X – SYNC ( XML SYNCRONIZATION )

67

Proses Cek Order

Gambar 3.26 Sequence Diagram Cek Order

Page 91: X – SYNC ( XML SYNCRONIZATION )

68

Proses Maintain Data Barang

Gambar 3.27 Sequence Diagram Maintain Data Barang

Page 92: X – SYNC ( XML SYNCRONIZATION )

69

Proses Lihat Data Transaksi & Cetak Laporan

Gambar 3.28 Sequence Diagram Cetak Laporan

Page 93: X – SYNC ( XML SYNCRONIZATION )

70

3.2.3.3. Sequence Diagram Penjualan

Proses Lihat Data Customer

Gambar 3.29 Sequence Diagram Lihat Data Customer

Proses Cek Persediaan Barang

Gambar 3.30 Sequence Diagram Cek Persediaan Barang

Page 94: X – SYNC ( XML SYNCRONIZATION )

71

Proses Input Data Penjualan Baru & Cetak Transaksi

Gambar 3.31 Sequence Diagram Input Penjualan

Page 95: X – SYNC ( XML SYNCRONIZATION )

72

3.2.4. Perancangan Database

Pada sistem terdapat 2 buah database, yaitu database untuk menangani

data di kantor cabang dan database yang menangani data di kantor pusat.

Kedua database tersebut mirip dalam hal struktur, tetapi ada beberapa

perbedaan jumlah field antara keduanya untuk tabel – tabel tertentu.

3.2.4.1. Desain Fisik Database

3.2.4.1.1. Kantor Cabang

Gambar 3.32 Struktur Fisik Database Cabang

Page 96: X – SYNC ( XML SYNCRONIZATION )

73

3.2.4.1.2. Kantor Pusat

Gambar 3.33 Struktur Fisik Database Pusat

Page 97: X – SYNC ( XML SYNCRONIZATION )

74

3.2.4.2. Struktur Tabel Database

3.2.4.2.1. Tabel Customer ( Cabang )

Tabel Customer merupakan tabel yang digunakan untuk menyimpan

data customer yang terdaftar pada suatu kantor, dengan format sebagai

berikut:

Field Type Null Key Default Extra

Kode_customer varchar(11) NO PRI

Nama_customer varchar(45) YES (NULL)

Tgl_lahir date YES (NULL)

No_telp varchar(25) YES (NULL)

Alamat varchar(50) YES (NULL)

Kota varchar(20) YES (NULL)

Kecamatan varchar(20) YES (NULL)

Tagl_terdaftar date YES (NULL)

Mulai_usaha date YES (NULL)

Klasifikasi_cust int(11) YES (NULL)

status_bangunan int(11) YES (NULL)

id_lokasi int(11) YES MUL (NULL)

No_KTP varchar(14) YES UNI (NULL)

Tabel 3.1 Tabel Customer ( Cabang )

3.2.4.2.2. Tabel Customer ( Pusat )

Field Type Null Key Default Extra

Kode_customer varchar(11) NO PRI

Nama_customer varchar(45) YES (NULL)

Tgl_lahir date YES (NULL)

No_telp varchar(25) YES (NULL)

Alamat varchar(50) YES (NULL)

Kota varchar(20) YES (NULL)

Kecamatan varchar(20) YES (NULL)

Tgl_terdaftar date YES (NULL)

Mulai_usaha date YES (NULL)

Klasifikasi_cust int(11) YES (NULL)

Page 98: X – SYNC ( XML SYNCRONIZATION )

75

status_bangunan int(11) YES (NULL)

id_lokasi int(11) YES MUL (NULL)

No_KTP varchar(14) YES UNI (NULL)

Tabel 3.2 Tabel Customer ( Pusat )

3.2.4.2.3. Tabel Lokasi_tempat_tinggal ( Cabang & Pusat )

Tabel ini digunakan untuk menyimpan detail lokasi tempat tinggal dari

seorang customer, dengan format sebagai berikut :

Field Type Null Key Default Extra

Kode_Lokasi_tempat_tinggal varchar(11) NO PRI

kode_customer varchar(11) YES MUL (NULL)

Alamat varchar(45) YES (NULL)

kota varchar(45) YES (NULL)

kecamatan varchar(45) YES (NULL)

kelurahan varchar(45) YES (NULL)

No_telpon varchar(25) YES (NULL)

Tabel 3.3 Tabel Lokasi_Tempat_Tinggal (Cabang & Pusat)

3.2.4.2.4. Tabel Jual ( Cabang )

Tabel ini digunakan untuk menyimpan data umum penjualan dari

suatu kantor, dengan format sebagai berikut :

Field Type Null Key Default Extra

kode_penjualan varchar(12) NO PRI

Kode_customer varchar(11) YES MUL (NULL)

type_pembayaran int(11) YES (NULL)

tanggal_transaksi datetime NO

Tabel 3.4 Tabel Jual ( Cabang )

Page 99: X – SYNC ( XML SYNCRONIZATION )

76

3.2.4.2.5. Tabel Jual ( Pusat )

Field Type Null Key Default Extra

kode_penjualan varchar(12) NO PRI

Kode_customer varchar(11) YES MUL (NULL)

type_pembayaran int(11) YES (NULL)

tanggal_transaksi datetime NO

kode_lokasi int(11) NO MUL

Tabel 3.5 Tabel Jual ( Pusat )

3.2.4.2.6. Tabel Detil_Penjualan ( Cabang & Pusat )

Tabel ini digunakan untuk menyimpan data detail penjualan utuk tiap

customer, dengan format sebagai berikut :

Field Type Null Key Default Extra

kode_penjualan varchar(12) NO MUL

kode_barang varchar(11) NO MUL

jumlah_item int(11) NO

Tabel 3.6 Tabel Detil_Penjualan ( Cabang & Pusat )

3.2.4.2.7. Tabel Barang ( Cabang & Pusat )

Tabel ini digunakan untuk menyimpan data – data umum barang yang

terdapat di kantor cabang maupun kantor pusat.

Field Type Null Key Default Extra

Kode_barang varchar(15) NO PRI

Kode_info_stok int(10) unsigned NO MUL

id_kelompok int(11) YES MUL (NULL)

Nama_barang varchar(45) YES (NULL)

id_Satuan varchar(10) YES (NULL)

Harga_Beli double YES (NULL)

Harga_Jual double YES (NULL)

Page 100: X – SYNC ( XML SYNCRONIZATION )

77

Discount float NO

DiscountDistributor float NO

DiscountAgen float NO

DiscountSubAgen float NO

DiscountPengecer float NO

Tabel 3.7 Tabel Barang( Cabang & Pusat )

3.2.4.2.8. Tabel Group ( Cabang & Pusat )

Tabel ini menyimpan data group untuk setiap kategori barang.

Field Type Null Key Default Extra

id_group int(11) NO PRI

nama_Group varchar(20) YES (NULL)

Tabel 3.8 Tabel Group( Cabang & Pusat )

3.2.4.2.9. Tabel Kategori ( Cabang & Pusat )

Tabel ini menyimpan data kategori untuk setiap kelompok barang.

Field Type Null Key Default Extra

id_kategori int(11) NO PRI

nama_kategori varchar(45) YES (NULL)

id_group int(11) YES MUL (NULL)

Tabel 3.9 Tabel Kategori ( Cabang & Pusat )

3.2.4.2.10. Tabel Kelompok ( Cabang & Pusat )

Tabel ini menyimpan data kelompok untuk setiap item barang.

Page 101: X – SYNC ( XML SYNCRONIZATION )

78

Field Type Null Key Default Extra

id_kelompok int(11) NO PRI

nama_kelompok varchar(40) YES (NULL)

id_kategori int(11) YES MUL (NULL)

Tabel 3.10 Tabel Kelompok ( Cabang & Pusat )

3.2.4.2.11. Tabel Info_Stok ( Cabang )

Tabel ini digunakan untuk menyimpan data stok sari sebuah barang,

dengan format sebagai berikut :

Field Type Null Key Default Extra

Kode_info_stok int(10) unsigned NO PRI (NULL) auto_increment

Jumlah int(10) unsigned YES (NULL)

Reorder_point int(10) unsigned YES (NULL)

Per_tanggal date YES (NULL)

status_order int(11) YES (NULL)

Tabel 3.11 Tabel Info_Stok ( Cabang )

3.2.4.2.12. Tabel Info_Stok ( Pusat )

Field Type Null Key Default Extra

Kode_info_stok int(10) unsigned NO PRI (NULL) auto_increment

Jumlah int(10) unsigned YES (NULL)

Reorder_point int(10) unsigned YES (NULL)

Per_tanggal date YES (NULL)

Tabel 3.12 Tabel Info_Stok ( Pusat )

3.2.4.2.13. Tabel Satuan ( Cabang & Pusat )

Tabel ini digunakan untuk menyimpan satuan setiap item barang yang

ada di kantor pusat maupun di kantor cabang.

Page 102: X – SYNC ( XML SYNCRONIZATION )

79

Field Type Null Key Default Extra

id_satuan int(4) NO PRI (NULL) auto_increment

Nama_Satuan varchar(9) YES (NULL)

Tabel 3.13 Tabel Satuan ( Cabang & Pusat )

3.2.4.2.14. Tabel Pengiriman ( Cabang & Pusat )

Tabel ini digunakan unuk meyimpan data umum pengiriman. Data

yang disimpan sama antara kantor pusat maupun kantor cabang.

Field Type Null Key Default Extra

kode_kirim varchar(14) NO PRI

tgl_kirim date YES (NULL)

kode_order varchar(11) YES MUL (NULL)

kode_lokasi int(11) YES MUL (NULL)

Tabel 3.14 Tabel Pengiriman ( Cabang & Pusat )

3.2.4.2.15. Tabel Detil_Pengiriman ( Cabang & Pusat )

Tabel ini menyimpan detil barang dari pengiriman yang dilakukan.

Data yang disimpan sama antara kantor pusat dan kantor cabang.

Field Type Null Key Default Extra

kode_kirim varchar(14) NO PRI

kode_barang varchar(15) NO PRI

jumlah int(11) YES (NULL)

Tabel 3.15 Tabel Detil_Pengiriman( Cabang & Pusat )

Page 103: X – SYNC ( XML SYNCRONIZATION )

80

3.2.4.2.16. Tabel OrderBarang ( Cabang )

Tabel ini digunakan untuk menyimpan data order barang dari kantor

cabang ke kantor pusat.

Field Type Null Key Default Extra

kode_order varchar(11) NO PRI

tanggal date NO

Stat_Kirim int(11) YES (NULL)

Tabel 3.16 Tabel OrderBarang ( Cabang )

3.2.4.2.17. Tabel OrderBarang ( Pusat )

Field Type Null Key Default Extra

kode_order varchar(11) NO PRI

tanggal date NO

kode_lokasi int(11) YES MUL (NULL)

Stat_Order int(11) YES (NULL)

Tabel 3.17 Tabel OrderBarang ( Pusat )

3.2.4.2.18. Tabel Detil_Order ( Cabang & Pusat )

Tabel ini digunakan untuk menyimpan data item barang yang di-order

oleh kantor pusat menuju kantor cabang.

Field Type Null Key Default Extra

kode_order varchar(11) NO PRI

kode_barang varchar(11) NO PRI

jumlah int(11) YES (NULL)

Tabel 3.18 Tabel Detil_Order ( Cabang & Pusat )

Page 104: X – SYNC ( XML SYNCRONIZATION )

81

3.2.4.2.19. Tabel Petugas ( Pusat )

Tabel ini menyimpan data – data petugas yang terdaftar pada

perusahaan.

Field Type Null Key Default Extra

NIP varchar(10) NO PRI

nama varchar(45) YES (NULL)

password_2 varchar(20) YES (NULL)

hak_akses int(10) unsigned YES (NULL)

Kode_lokasi int(11) NO MUL

Tabel 3.19 Tabel Petugas ( Pusat )

3.2.4.2.20. Tabel LokasiKantor ( Pusat )

Tabel ini menyimpan informasi masing – masing lokasi dari kantor

cabang maupun kantor pusat.

Field Type Null Key Default Extra

kode_lokasi int(11) NO PRI

alamat_lokasi varchar(45) YES (NULL)

kecamatan_lokasi varchar(45) YES (NULL)

kota_lokasi varchar(45) YES (NULL)

telpon_lokasi varchar(45) YES (NULL)

Tabel 3.20 Tabel LokasiKantor ( Pusat )

3.2.5. Perancangan Proses Pertukaran Data

Pada masing – masing kantor, terdapat sebuah aplikasi dan sebuah

database server. Aplikasi cabang bertugas untuk menangani data – data

penjualan yang terjadi di kantor cabang dan data customer yang terdaftar di

Page 105: X – SYNC ( XML SYNCRONIZATION )

82

kantor cabang tersebut kemudian menyimpannya di database kantor cabang.

Sedangkan aplikasi pusat bertugas untuk menangani data – data penjualan dan

data – data customer dari seluruh kantor, dalam hal ini kantor pusat dan

kantor cabang untuk kemudian menyimpannya di database kantor pusat.

Pertukaran data dari kantor cabang dan kantor pusat dilakukan dengan

menggunakan dokumen XML melalui jaringan internet menggunakan

protokol TCP / IP. Data customer, data penjualan dan data order barang dari

kantor cabang akan dikirimkan ke kantor pusat untuk disimpan di database

kantor pusat. Kemudian kantor pusat akan mengirimkan data barang baru,

data update barang dan data barang yang di-order oleh kantor cabang.

Gambar 3.34 Proses Pertukaran Data

Page 106: X – SYNC ( XML SYNCRONIZATION )

83

3.2.6. Perancangan Dokumen XML

Dokumen XML yang dibuat akan memperlihatkan struktur tabel pada

database untuk setiap data.

<?xml version="1.0" encoding="UTF-8" standalone="ye s"?> <root> <nama_table> <Row> <nama_field/> <nama_field/> </Row> </nama_table> <nama_table> <Row> <nama_field/> <nama_field> </Row> </nama_table> ............. </root>

3.2.6.1. XML Customer

Dokumen ini akan dibuat dan dikirimkan oleh kantor cabang setiap

terjadi penambahan customer baru atau terjadi pengeditan data customer.

<?xml version="1.0" encoding="UTF-8" standalone="ye s"?> <Brach_Data> <Customer> <Row> <Kode_customer/> <Nama_customer/> <Tanggal_lahir/> <No_telpon/> <Alamat/> <Kota/> <Kecamatan/> <Tanggal_terdaftar/> <Mulai_usaha/> <Status_Bangunan/> <Klasifikasi_langganan/> <noKTP/> </Row> </Customer> <Lokasi_tempat_tinggal/> </Brach_Data>

Page 107: X – SYNC ( XML SYNCRONIZATION )

84

3.2.6.2. XML Penjualan

Dokumen XML ini akan dibuat oleh kantor cabang untuk setiap

penjualan yang terjadi.

<?xml version="1.0" encoding="ISO-8859-1" standalon e="yes"?> <Penjualan_Data> <jual> <Row> <no_penjualan/> <Kode_customer/> <type_pembayaran/> <tanggal_transaksi/> </Row> </jual> <detil_penjualan> <Row> <no_penjualan/> <kode_barang/> <jumlah_item/> </Row> </Penjualan_Data>

3.2.6.3. XML Order Barang

Dokumen ini akan dibuat oleh kantor cabang ketika akan mengirimkan

order barang untuk item – item barang yang telah memasuki reorder point.

<?xml version="1.0" encoding="ISO-8859-1" standalon e="yes"?> <Order_Data> <Order> <Row> <kode_order/> <tanggal/> <statKirim/> </Row> </Order> <detil_Order> <Row> <kode_order/> <kode_barang/> <jumlah/> </Row> </detil_Order> </Order_Data>

Page 108: X – SYNC ( XML SYNCRONIZATION )

85

3.2.6.4. XML Data Barang

Dokumen ini akan dibuat oleh kantor pusat dan akan dikirimkan ke

seluruh kantor cabang yang ada untuk setiap atribut barang yang baru.

<?xml version="1.0" encoding="ISO-8859-1" standalon e="yes"?> <dataBarang> <group> <Row> <id_group/> <nama_group/> </Row> </group> <kategori> <Row> <id_kategori/> <nama_kategori/> </Row> </kategori> <kelompok> <Row> <id_kelompok/> <nama_kelompok/> </Row> </kelompok> </dataBarang>

3.2.6.5. XML Item Barang

Dokumen ini akan dibuat ketika kantor pusat memasukkan item

barang baru ke database. Dokuemn ini akan dikirimkan untuk masing –

masing kantor cabang yang terkoneksi.

<?xml version="1.0" encoding="UTF-8" standalone="ye s"?> <dataBarang> <info_stok> <Row> <Kode_info_stok/> <Jumlah/> <Reorder_point/> <Per_tanggal/> </Row> </info_stok> <barang> <Row> <Kode_barang/> <Kode_info_stok/> <id_kelompok/>

Page 109: X – SYNC ( XML SYNCRONIZATION )

86

<Nama_barang/> <Satuan/> <Harga_Beli/> <Harga_Jual/> <Discount/> <DiscountDistributor/> <DiscountAgen/> <DiscountSubAgen/> <DiscountPengecer/> </Row> </barang> </dataBarang>

3.2.6.6. XML Pengiriman

Dokumen ini dibuat oleh kantor pusat sebagai respon dari order yagn

dikirimkan oleh kantor cabang. Dokumen ini akan dikirimkan untuk

kantor cabang yang bersangkutan.

<?xml version="1.0" encoding="ISO-8859-1" standalon e="yes"?> <kirim_Data> <Pengiriman> <Row> <Kode_Pengiriman/> <Tanggal_Pengiriman/> <Kode_Order/> </Row> </Pengiriman> <Detil_pengiriman> <Row> <Kode_Pengiriman/> <Kode_barang/> <jumlah/> </Row> </Detil_pengiriman> </kirim_Data>

Page 110: X – SYNC ( XML SYNCRONIZATION )

87

3.2.7. Perancangan Input

3.2.7.1. Kantor Cabang

3.2.7.1.1. Login Petugas

Gambar 3.35 User Interface Cabang Login Petugas

Page 111: X – SYNC ( XML SYNCRONIZATION )

88

3.2.7.1.2. Menu Utama Kantor Cabang

Gambar 3.36 User Interface Menu Utama Kantor Cabang

3.2.7.1.3. Form Data Customer

Gambar 3.37 User Interface Cabang Data Customer – Data Umum

DATA CUSTOMER

File Master Transaksi Help

login logout

CLIENT SIDE PENJUALAN

PT NKI PREMBUN

<XML Sync/>

Connection status Active user

Data Umum Tmpt Tinggal

Prev

Next Edit

Simpan

Show Table

Kode cust

Nama Cust

No. tlp No. KTP

Alamat Kecamatan

Kota

Tgl lahir Tgl terdaftar Mulai usaha

Klasifikasi langganan Status bangunan

Page 112: X – SYNC ( XML SYNCRONIZATION )

89

Gambar 3.30 User Interface Data Customer – Lokasi Tempat Tinggal

3.2.7.1.4. Data Barang

Gambar 3.31 User Interface Data Barang – Data Umum

Gambar 3.32 User Interface Data Barang -- Order Barang

Gambar 3.38 User Interface Cabang Data Customer – Lokasi Tempat Tinggal

3.2.7.1.5. Form Tambah Customer

Gambar 3.39 User Interface Cabang Tambah Customer – Data Pribadi

DATA CUSTOMER

Data Umum Tmpt Tinggal

Prev

Next Edit

Simpan

Show Table

Kode Lokasi

Alamat

Kota

Kecamatan Kelurahan No. telpon

Add

Lokasi Pribadi

Simpan Clear Cancel

Kode Customer

Nama

Tgl Lahir

Telpon

Alamat Usaha

Kecamatan Usaha

Kota Usaha

Mulai Usaha

No KTP

Klasifikasi Langganan

Status Bangunan

Page 113: X – SYNC ( XML SYNCRONIZATION )

90

Gambar 3.40 User Interface Cabang Tambah Customer – Data Tempat Tinggal

3.2.7.1.4. Form Data Barang

Gambar 3.41 User Interface Cabang Data Barang – Data Umum

Jumlah

DATA BARANG

Data Umum Order Barang

Prev

Next Show Table

Pengiriman

Info Barang Info Stok

Kode Barang

Harga Beli

Group

Kategori

Nama Barang

Harga Jual

Disc.

Kelompok

Satuan

Total Harga

Per Tanggal

Reorder Point

Pribadi

Simpan Clear Cancel

Lokasi

Kode Lokasi

Alamat Tinggal

Kota Tinggal

Kecamatan Tinggal

Kelurahan Tinggal

No Telpon

Jumlah

Page 114: X – SYNC ( XML SYNCRONIZATION )

91

Gambar 3.42 User Interface Cabang Data Barang – Order Barang

Gambar 3.43 User Interface Cabang Data Barang – Pengiriman

Kirim Order

DATA BARANG

Data Umum

Pengiriman Order Barang

Kode Order

Tanggal

Kode Barang Nama Barang Jml Stok Jml Order

DATA BARANG

Data Umum

Order Barang

Kode Order

Tanggal

Kode Barang Nama Barang Jml Order

Pengiriman

Kode Barang Nama Barang Jml Kirim

Kode Kirim

Tanggal Kirim

Ok

Page 115: X – SYNC ( XML SYNCRONIZATION )

92

3.2.7.1.5. Form Penjualan

Gambar 3.44 User Interface Cabang Penjualan

3.2.7.1.6. Form Laporan

Gambar 3.45 User Interface Cabang Laporan

INPUT TRANSAKSI TUNAI

Nota

Customer Barang

Kode Customer

Nama Customer

Alamat

Kota

Klasifikasi Langganan

Telpon

Kode Barang

Nama Barang

Jml

Harga

Disc.

Sub Total

Kode Barang

Harga

Disc

Jml Item

Sub Total

Total

Bayar

Kembali

LAPORAN

Tanggal Awal

Tanggal Akhir

Cetak

Lihat

No Jual Tgl Kode Brg Jumlah Nama Brg Harga Disc Sub Total

Page 116: X – SYNC ( XML SYNCRONIZATION )

93

3.2.7.2. Kantor Pusat

3.2.7.2.1. Login Petugas

Gambar 3.46 User Interface Login Pusat

3.2.7.2.2. Menu Utama Kantor Pusat

Gambar 3.47 User Interface Menu Utama Kantor Pusat

File Master Transaksi Help

login logout

Server SIDE PENJUALAN

PT NKI PREMBUN

<XML Sync/>

Client Status

Server Status

Page 117: X – SYNC ( XML SYNCRONIZATION )

94

3.2.7.2.3. Form Data Customer

Gambar 3.48 User Interface Data Customer Pusat – Data Umum

Gambar 3.49 User Interface Data Customer Pusat – Lokasi Tempat Tinggal

Data Umum Tmpt Tinggal

Prev

Next Edit

Simpan

Show Table

Kode cust

Nama Cust

No. tlp No. KTP

Alamat Kecamatan

Kota

Tgl lahir Tgl terdaftar Mulai usaha

Klasifikasi langganan Status bangunan

Data Umum Tmpt Tinggal

Prev

Next Edit

Simpan

Show Table

Kode Lokasi

Alamat

Kota

Kecamatan Kelurahan No. telpon

Add

Page 118: X – SYNC ( XML SYNCRONIZATION )

95

3.2.7.2.4. Form Tambah Customer

Gambar 3.50 User Interface Tambah Customer Pusat – Data Pribadi

Gambar 3.51 User Interface Tambah Customer Pusat – Data Tempat Tinggal

Lokasi Pribadi

Simpan Clear Cancel

Kode Customer

Nama

Tgl Lahir

Telpon

Alamat Usaha

Kecamatan Usaha

Kota Usaha

Mulai Usaha

No KTP

Klasifikasi Langganan

Status Bangunan

Pribadi

Simpan Clear Cancel

Lokasi

Kode Lokasi

Alamat Tinggal

Kota Tinggal

Kecamatan Tinggal

Kelurahan Tinggal

No Telpon

Page 119: X – SYNC ( XML SYNCRONIZATION )

96

3.2.7.2.5. Form Data Barang

Gambar 3.52 User Interface Data Barang Pusat – Data Umum

Gambar 3.53 User Interface Data Barang Pusat – Proses Order

DATA BARANG

Data Umum Proses Order

Prev

Next Show Table

Info Barang Info Stok

Kode Barang

Harga Beli

Group

Kategori

Nama Barang

Harga Jual

Disc.

Kelompok

Satuan

Total Harga

Per Tanggal

Reorder Point

Jumlah

ADD

DATA BARANG

Data Umum Proses Order

Lokasi Cabang

Kode Order

Tgl Order

Edit Save Edit Save

Proses

Kode Barang

Nama Barang

Jml Stok

Jml Order

Jml Kirim

Page 120: X – SYNC ( XML SYNCRONIZATION )

97

3.2.7.2.6. Form Tambah Barang

Gambar 3.54 User Interface Tambah Barang – Data Umum

Gambar 3.55 User Interface Tambah Barang – Info Stok

Stok Umum

Simpan Clear Cancel

Kode Barang

Group New

Harga Beli

Satuan

Kategori New

Harga Jual

Kelompok New

Discount

Nama Barang

Umum

Simpan Clear Cancel

Stok

Kode Stok

Jumlah Barang

Reorder Point

Per Tanggal

Page 121: X – SYNC ( XML SYNCRONIZATION )

98

3.2.7.2.7. Form Data Kantor

Gambar 3.56 User Interface Data Kantor

3.2.7.2.8. Form Data Petugas

3.2.7.2.9.

Gambar 3.57 User Interface Data Petugas

DATA LOKASI KANTOR …

ID Kantor

Alamat Kantor

Kota

Kecamatan

Telpon

Next Prev

ADD

DATA PETUGAS …

ID Petugas

Nama

Privilege

Lokasi Kantor

Edit Save

ADD

Edit Save

Del Exit

ID P etugas N ama P rivileges Lo kasi Kanto r

Page 122: X – SYNC ( XML SYNCRONIZATION )

99

3.2.7.2.9. Form Penjualan

Gambar 3.58 User Interface Penjualan Pusat

3.2.7.2.10. Form Laporan

Gambar 3.59 User Interface Laporan Pusat

INPUT TRANSAKSI TUNAI

Nota

Customer Barang

Kode Customer

Nama Customer

Alamat

Kota

Klasifikasi Langganan

Telpon

Kode Barang

Nama Barang

Jml

Harga

Disc.

Sub Total

Kode Barang

Harga

Disc

Jml Item

Sub Total

Total

Bayar

Kembali

LAPORAN

Tanggal Awal

Tanggal Akhir

Cetak

Lihat

No Jual Tgl Kode Brg Jumlah Nama Brg Harga Disc Sub Total

Lokasi

Page 123: X – SYNC ( XML SYNCRONIZATION )

100

3.2.8. Perancangan Output

3.2.8.1. Nota Penjualan

Gambar 3.60 Output Nota Penjualan

NKI PREMBUN

Alamat

No. Telpon

Nota Penjualan

Tanggal / Jam

Kode Customer

Nama Customer

Kode

Penjualan

N ama B arang H arga Jml D isc Sub T o ta l

Jumlah :

Bayar :

Kembali :

Page 124: X – SYNC ( XML SYNCRONIZATION )

101

3.2.8.2. Laporan Penjualan

Gambar 3.61 Output Laporan Penjualan

LAPORAN PENJUALAN

PT. NKI PREMBUN

Periode tgl/bln/thn Sampai tgl/bln/thn

no_penjualan Tgl_Penjualan Kode_brg Jml_item Nama_barang Hrg_jual discount Sub_total

Tanggal_Cetak halaman

Page 125: X – SYNC ( XML SYNCRONIZATION )

102

BAB 4

IMPLEMENTASI SISTEM

4.1. Karakteristik Sistem

Sistem yang dibuat terdiri dari dua bagian yaitu sistem di kantor

pusat yang berfungsi sebagai server aplikasi dan sistem di kantor cabang

yang berfungsi sebagai client aplikasi. Pada implementasinya, dimungkinkan

dalam sebuah kantor cabang terdapat lebih dari satu aplikasi client yang

berjalan tergantung keperluan. Aplikasi server dan aplikasi client dibedakan

dari struktur database dan metode untuk penanganan koneksinya.

Dari aplikasi client akan dilakukan input data penjualan baru, data

customer baru dan data order barang ke database client, membuat file XML

untuk setiap data tersebut, kemudian mengirimkan file tersebut ke aplikasi

server melalui jaringan internet. Aplikasi client juga dapat mengirimkan

perubahan data customer yang terjadi di database dan mengirimkan

perubahan tersebut dalam bentuk file XML ke server. Aplikasi client juga

dapat menerima dan memproses file XML dari server. Client akan

melakukan pengecekan terhadap nama file dari server untuk menentukan

langkah selanjutnya.

Pada sisi server, begitu terdeteksi ada file baru yang ditujukan

untuknya, maka server akan melakukan pengecekan nama file tersebut untuk

menentukan langkah yang harus diambil selanjutnya dan dari kantor mana

Page 126: X – SYNC ( XML SYNCRONIZATION )

103

file tersebut berasal. Bila file tersebut adalah file penjualan, maka server

akan menyimpan data dari XML tersebut ke tabel penjualan.

4.2. Perangkat Lunak yang Digunakan Dalam Pembuatan Sistem

Perangkat lunak yang digunakan untuk membangun sistem ini adalah :

1. Sistem Operasi : Sistem Operasi Windows XP

2. IDE : NetBeans 5.5

3. Java Development Kit : J2SDK 1.6

4. Server Data Base : MySQL Server 5.018

5. Database Tool : SQLyog 5.14

4.3. Implementasi Database

Database Server yang digunakan dalam implementasi sistem ini

adalah MySQL Server 5.018. Database dan tabel – tabel yang digunakan

dibuat dengan menggunakan tool SQLyog 5.14. Database yang dibuat ada

dua macam yaitu :

a. Tabel yang dibuat untuk kantor cabang sesuai dengan desain antara lain:

1. Tabel Customer

2. Tabel Lokasi_Tempat_Tinggal

3. Tabel Barang

4. Tabel Gruopb

5. Tabel Kategori

6. Tabel Kelompok

Page 127: X – SYNC ( XML SYNCRONIZATION )

104

7. Tabel Info_Stok

8. Tabel Satuan

9. Tabel Jual

10. Tabel Detil_Penjualan

11. Tabel OrderBarang

12. Tabel Detil_Order

13. Tabel Faktur

14. Tabel Detil_faktur

b. Tabel yang dibuat untuk kantor Pusat sesuai dengan desain antara lain:

1. Tabel Customer

2. Tabel Lokasi_Tempat_Tinggal

3. Tabel Barang

4. Tabel Groupb

5. Tabel Kategori

6. Tabel Kelompok

7. Tabel Info_Stok

8. Tabel Satuan

9. Tabel Jual

10. Tabel Detil_Penjualan

11. Tabel OrderBarang

12. Tabel Detil_Order

13. Tabel Faktur

14. Tabel Detil_faktur

Page 128: X – SYNC ( XML SYNCRONIZATION )

105

15. Tabel LokasiKantor

16. Tabel Petugas

4.4. Setting koneksi dari Java ke MySQL ( koneksi.java )

Untuk melakukan koneksi antara Java dengan MySQL server,

maka harus digunakan suatu driver / interface JDBC ( Java DataBase

Connectivity ) yang berisi kelas – kelas untuk mengakses database server

pada level bawah pemrograman. Driver yang digunakan pada sistem ini

adalah mysql-connector-java-5.0.4-bin.jar. Berikut ini adalah langkah-

langkah serta method untuk koneksi dari Java ke database :

1. Lakukan loading Connector/J Driver.

Proses ini dimulai dengan pemaggilan method Class.forName(parameter);

2. Menggunakan DriverManager untuk melakukan koneksi ke database.

Proses ini adalah proses yang sangat penting karena di proses ini terjadi

pembuatan koneksi antara program dengan MySQL. Method yang

dipangil adalah DriverManager.getConnection(urldb,user,password);

Parameter untuk koneksi ke database kantorCabang adalah :

urldb = "jdbc:mysql://localhost:3306/kantorcabang" user = “root”; password = “”;

Parameter untuk koneksi ke database kantorPusat adalah :

urldb = "jdbc:mysql://localhost:3306/kantorpusat" user = “root”; password = “”;

public Connection try2ConnectMySQL(){ try { Class.forName("org.gjt.mm.mysql.Driver" ); } catch(ClassNotFoundException cnfe) { System.err.println("Error Loading Drive r: "+cnfe);

Page 129: X – SYNC ( XML SYNCRONIZATION )

106

} try{ String urldb="jdbc:mysql://localhost:33 06/kantorcabang"; koneksi = DriverManager.getConnection(u rldb,"root",""); statusKoneksi=true; } catch(Exception e){ System.err.println("Error Database: Ga Bisa Connect"); JOptionPane.showMessageDialog(null,"<ht ml>Koneksi DataBase Gagal,<br>Cek DataBase Server Anda!!</html>") ; } return koneksi; }

4.5. Query dari Java ke MySQL ( QueryHandler.java )

Perintah – perintah query yang digunakan dalam sistem merupakan

sintaks dasar SQL misalnya insert, select ,update, delete.

try{ connect=koneksi.try2ConnectMySQL(); Statement st=connect.createStatement(); int success=st.executeUpdate(insertStat ement); st.close(); connect.close(); return success; } catch(SQLException ex){ ex.printStackTrace(); return 0; }

Perintah executeUpdate(sql) digunakan untuk melakukan insert

maupun update ke database. Untuk select menggunakan perintah

executeQuery(sql) Sedangkan untuk delete menggunakan perintah

execute(sql) dimana sql adalah parameter perintah query-nya.

4.6. Aplikasi Client

4.6.1. Komunikasi Client Server ( FileSender_Client.java )

Kelas ini digunakan untuk menangani koneksi dan komunikasi

antara aplikasi Server dan aplikasi Client. Empat langkah pembuatan client :

Page 130: X – SYNC ( XML SYNCRONIZATION )

107

1. Membuat object socket untuk client.

Fungsi tryToConnect() pada kelas fileSender_Client :

public Boolean tryToConnect(){ labelStat.setText("Connecting.."); try { socket = new Socket(opt.getServerURL(), 4711); JOptionPane.showMessageDialog(null,"Kon eksi ke Kantor Pusat Berhasil!!!"); labelStat.setForeground(new java.awt.Co lor(255,0,0)); labelStat.setText("Connected"); return true; } catch(Exception e){ JOptionPane.showMessageDialog(null,"<ht ml>Koneksi Ke Server <strong><font color='red'>Gagal!!!</html>","Connect ion Failed",JOptionPane.ERROR_MESSAGE); labelStat.setText("Failed"); labelStat.setForeground(new java.awt.Co lor(255,0,0)); return false; } }

Bagian utama dalam fungsi diatas adalah pembuatan objek socket

dengan memanggil konstruktor kelas Socket dengan parameter alamat IP

dari server dan nomor port server.

2. Mendapatkan ObjectInputStream dan ObjectOutputStream dari socket

Fungsi runClient() pada kelas fileSender_Client :

public void runClient() { try { System.out.println("Client Run"); InputStream in = socket.getInputStream(); OIS=new ObjectInputStream(in); do{ String file_name = (String) OIS.readObjec t(); if(file_name.endsWith("2.xml")||file_name.e ndsWith("All.xml")){ File file=new File(file_name); FileOutputStream FOS=new FileOutputStream(u serDir+file); byte[] outBuffer = new byte[socket.getRecei veBufferSize()]; int bytesReceived = 0; while((bytesReceived = OIS.read(outBuff er)) > 0||!OIS.readObject().equals("END")) { FOS.write(outBuffer,0,bytesReceived ); } JOptionPane.showMessageDialog(null,"Fil e Nyampe ==>"+file_name);

Page 131: X – SYNC ( XML SYNCRONIZATION )

108

} while(true); }

Objek InputStream digunakan untuk mengambil data – data

sederhana dari socket. Untuk kemudahan dan fleksibilitas dalam

pembacaan data dari socket, maka digunakan objek ObjekInputStream .

FungsikirimFile() pada kelas fileSender_Client :

try { OutputStream os = socket.getOutputStrea m(); if(OOS==null){ OOS=new ObjectOutputStream(os); OOS.flush(); }

Objek OutputStream digunakan untuk menuliskan data – data

sederhana ke socket. Untuk kemudahan dan fleksibilitas dalam penulisan

data ke socket, maka digunakan objek ObjekOutputStream .

3. Memproses komunikasi

Fungsi runClient() pada kelas fileSender_Client :

while((bytesReceived = OIS.read(outBuffer)) > 0||!OIS.readObject().equals("END")) { FOS.write(outBuffer,0,bytesReceived ); } JOptionPane.showMessageDialog(null,"Fil e Nyampe ==>"+file_name);

Fungsi diatas akan melakukan looping sampai ditemukan object

yang berupa nama file pada socket. File kemudian akan dibaca per byte

dari socket dan menuliskannya pada harddisk sampai ditemukan string END

yang berarti file sudah selesai dibaca dan fungsi akan melanjutkan looping.

Page 132: X – SYNC ( XML SYNCRONIZATION )

109

Fungsi kirimFile() pada kelas fileSender_Client :

public void kirimFile(){ try { OutputStream os = socket.getOutputStrea m(); if(OOS==null){ OOS=new ObjectOutputStream(os); OOS.flush(); } int cnt_files = 1; for (int cur_file=0; cur_file<cnt_files ; cur_file++) { OOS.writeObject(fileName); OOS.flush(); JOptionPane.showMessageDialog(null,"And a akan mengirim file -> "+fileName); FIS=new FileInputStream(new File(userDi r+fileName)); byte[] nextBytes = new byte[socket.getS endBufferSize()]; int bytesRead = 0; while((bytesRead = FIS.read(nextBytes)) > 0) { OOS.write(nextBytes,0,bytesRead); OOS.flush(); } OOS.writeObject("END"); JOptionPane.showMessageDialog(null,"Fil e Terkirim"); } } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null,"Error Kir im File"); } }

Ketika baris OOS.writeObject(fileName) dijalankan, fungsi akan

menuliskan nama file ke socket sebagai parameter awal bagi server.

Kemudian, fungsi akan membaca file dari harddisk byte per byte kemudian

menuliskannya ke socket melalui objek ObjekOutputStream . Setelah file

selesai dituliskan, fungsi akan menuliskan string END ke socket sebagai

informasi bahwa file sudah selesai dituliskan.

4. Menutup koneksi.

Page 133: X – SYNC ( XML SYNCRONIZATION )

110

4.6.2. Form Login ( LoginDulu.java )

Gambar 4.1 Form Login Aplikasi Cabang

Halaman diatas ditampilkan ketika program pertama kali

dijalankan. Ketika tombol login di-klik, maka akan dilakukan pengecekan

terhadap user name, password dan hak akses dari user yang bersangkutan.

Ada empat jenis hak akses yaitu : petugas cabang, kasir cabang, petugas

pusat, kasir pusat. Kasir cabang, kasir pusat dan petugas cabang hanya bisa

login ke sistem melalui kantornya saja sedangkan petugas pusat bisa login

di semua kantor.

try { String sql="select nama,hak_akses from kanto rpusat.petugas where NIP like '"+user+"' and password_2 like '"+psswd+"' ;"; Statement st=koneksi.createStatement(); rs=st.executeQuery(sql); if(rs.next()){ uName=rs.getString(1); hakAkses=rs.getInt(2); s=true; } }

Page 134: X – SYNC ( XML SYNCRONIZATION )

111

4.6.3. Form Menu Utama ( MainMenu_cabang.java )

Halaman ini akan tampil ketika user telah berhasil melewati proses

login. Pada kelas ini pertama kali akan dicek hak akses dari user yang

login untuk mementukan menu program yang bisa digunakan.

Gambar 4.2 Form Menu Utama Aplikasi Cabang

Terdapat empat menu utama program ini, yaitu menu File, Master,

Transaksi, Help. Fungsi masing – masing menu adalah :

1. File

Nama Menu Item Fungsi

Switch User Berganti User

Exit Keluar dari program

Tabel 4.1 Fungsi Menu File Aplikasi Cabang

Page 135: X – SYNC ( XML SYNCRONIZATION )

112

2. Master

Nama Menu Item Fungsi

Customer Memanggil form data Customer

Barang Memanggil form data Barang

Tabel 4.2 Fungsi Menu Master Aplikasi Cabang

3. Transaksi

Nama Menu Item Fungsi

Penjualan Memanggil form Penjualan

Laporan Memanggil form Laporan

Tabel 4.3 Fungsi Menu Transaksi Aplikasi Cabang

4. Help

Nama Menu Item Fungsi

User Manual Memanggil user Manual program

About Informasi tentang sistem

Tabel 4.4 Fungsi Menu Help Aplikasi Cabang

Fungsi openMenu() pada kelas MainMenu_cabang :

private static void openMenu(){ fileMenu.setEnabled(true); masterMenu.setEnabled(true); transaksiMenu.setEnabled(true); helpMenu.setEnabled(true); if(hakAkses == 4){ butAddCust.setVisible(false); } else{ butAddCust.setVisible(true); } }

Dari halaman utama ini, fungsi koneksi dari client ke server mulai

diinisialisasi. Aplikasi akan mencoba melakukan koneksi ke client, jika

Page 136: X – SYNC ( XML SYNCRONIZATION )

113

berhasil maka koneksi ini akan dipelihara sampai program ditutup. Jika

tidak berhasil melakukan koneksi, maka program harus di – restart.

Koneksi ini ditangani oleh kelas fileSender_Client. Ketika koneksi sudah

terbentuk, maka fungsi runClient() akan dijalankan untuk menunggu file

yang dikirimkan dari server. Contoh pemrosesan file XML adalah :

Fungsi getDataSatuanFromXML() pada kelas GetDataBarangFromXML :

public void getDataSatuanFromXML(String fileName){ BarangHandler barangHandler = new BarangHan dler(); File file = new File(userDir+fileName); DocumentBuilderFactory docBuildFac=DocumentBuilderFactory.newInstance(); DocumentBuilder docBuild = null; Document doc = null; try { docBuild=docBuildFac.newDocumentBuilder (); } catch (ParserConfigurationException ex) { ex.printStackTrace(); } try { doc=docBuild.parse(file); } catch (SAXException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } NodeList node=doc.getElementsByTagName("Dat aSatuan"); Element tabSatuan = (Element) node.item(0); NodeList rowTable = tabSatuan.getElementsBy TagName("Row"); Vector vSat = new Vector(); for(int i=0;i<dataSatuan.length;i++){ Element elementDSatuan = (Element) rowT able.item(0); NodeList nodeDSatuan = elementDSatuan.getElementsByTagName((String) dataSa tuan[i]); Element isiData = (Element) nodeDSatuan .item(0); String result = getCharacterDataFromEle ment(isiData); vSat.add(result); } System.out.println("result "+vSat); barangHandler.insertSatuanFromXML(vSat); }

4.6.4. Form Data Customer ( IframeDataCustomer.java )

Kelas ini menangani antar muka dan tampilan program ketika

melakukan penanganan data customer. Di dalam kelas ini terdapat instance

Page 137: X – SYNC ( XML SYNCRONIZATION )

114

dari objek kelas CustomerHandler yang menampung method – method

untuk penanganan data customer.

Gambar 4.3 Form Data Customer Aplikasi Cabang

Data customer yang ditangani oleh program adalah data umum dan

data lokasi tempat tinggal karena seorang customer bisa saja memiliki

lokasi tempat tinggal yang berbeda dengan lokasi usaha. Halaman ini

hanya digunakan untuk menampilkan data customer dan mengedit data

tersebut. Tombol berikut digunakan untuk menampilkan data customer

selanjutnya sedangkan tombol sebelum digunakan untuk menampilkan

data customer pada posisi sebelumnya.

Page 138: X – SYNC ( XML SYNCRONIZATION )

115

Fungsi getDataFromCustomer() pada kelas CustomerHandler :

public Vector getDataFromCustomer(){ Vector v=new Vector(); String sql="SELECT kode_customer,nama_customer,alamat,kota,no_telpon,k ecamatan,tanggal_lahir,tanggal_terdaftar,Mulai_usaha,status_bangunan,klas ifikasi_langganan,noKTP from customer;"; try { v=QH.getData(sql); this.setVector(v); } catch (Exception ex) { ex.printStackTrace(); } return v; }

Fungsi diatas akan dijalankan ketika halaman data customer

dibuka. Fungsi ini akan mengambil seluruh data customer dari database

dan kemudian akan disimpan pada sebuah variabel vector untuk

mempermudahkan proses navigasi yaitu untuk menampilkan data sebelum

atau sesudah posisi yang ditentukan.

Pada halaman ini disediakan fasilitas untuk melakukan pencarian

data berdasarkan kode atau nama customer. Ketika pencarian memberikan

hasil, maka sebuah tabel yang menampung data customer yang dicari akan

ditampilkan.

Gambar 4.4 Form Tabel Search Customer Aplikasi Cabang

Page 139: X – SYNC ( XML SYNCRONIZATION )

116

Fungsi ambilData pada kelas TabelCustomer :

private void ambilData(int kat,String paramSearch) { data=new Object[tF.getRowCount()][22]; data=(Object[][]) tF.getDataFromCustomer(k at,paramSearch); }

Fungsi diatas dipanggil pada saat pada konstruktor kelas

TabelCustomer dijalankan. Fungsi akan mengambil data customer dari

database dan menyimpannya ke variabel array[][] .

Fungsi updateCustData() pada kelas CustomerHandler :

int succ=QH.updateDataCustomer(sql); try { getDataCust=new GetData_Cust_Loc_2_ XML(); getDataCust.CreateXML(0,kode_Cust); } catch (IOException ex) { ex.printStackTrace(); }

Tombol edit digunakan untuk membuka field – field data pada

tampilan. Setelah data baru dimasukkan dan tombol save diklik, fungsi

yang dikerjakan adalah fungsi diatas.

Pada fungsi ini juga dilakukan pembuatan file XML yang isinya

adalah tentang data customer baru setelah di-edit. Yaitu pada baris

getDataCust.CreateXML(0,kode_Cust). Parameter dengan nilai 0 berarti

file yang dibuat akan berisi data edit customer.

4.6.5. Form Tambah Customer ( FrameTambahCustomer.java )

Form ini bisa diakses dari menu utama maupun dari halaman data

customer. Pada form ini ada beberapa kelas yang terlibat yaitu kelas

FrameTambahCustomer yang akan menangani tampilan, CustomerHandler

yang akan menangani fungsi insert ke database, kelas

Page 140: X – SYNC ( XML SYNCRONIZATION )

117

GetData_Cust_Loc_2_XML yang akan menagani pembuatan file XML dan

kelas fileSender_Client untuk menangani pengiriman data.

Gambar 4.5 Form Tambah Customer Aplikasi Cabang

Ketika tombol Simpan diklik, maka aplikasi akan menyimpan data

customer baru ke dalam database, dan kemudian fungsi pembuatan XML

customer baru akan dijalankan.

Fungsi createXML() Pada Kelas GetData_Cust_Loc_2_XML

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder =factory.newDocumentB uilder(); Document doc = builder.newDocument(); Element results = doc.createElement("Brach_Da ta"); doc.appendChild(results); Element tab1 = doc.createElement("Customer"); results.appendChild(tab1); sql = "select * from customer where kode_cus tomer like '"+paramKodeCust+"'"; stmt = con.createStatement(); rs = stmt.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData(); int colCount = rsmd.getColumnCount(); while (rs.next()) {

Page 141: X – SYNC ( XML SYNCRONIZATION )

118

kode_cust=rs.getString(1); Element row = doc.createElement("Row"); tab1.appendChild(row); for (int ii = 1; ii <= colCount; ii++) { String columnName = rsmd.getColumnName(i i); Object value = rs.getObject(ii); Element node = doc.createElement(columnN ame); node.appendChild(doc.createTextNode(valu e.toString())); row.appendChild(node); } } Element tab2 = doc.createElement("Lokasi_tem pat_tinggal"); results.appendChild(tab2); Vector v=QH.getData("select * from lokasi_tem pat_tinggal where kode_customer like '"+paramKodeCust+"'"); int kol=QH.getMaxCol(); ResultSetMetaData RS=QH.getRSMD(); for(int baris=1;baris<=kol;baris++){ Element row2 = doc.createElement("Row"); tab2.appendChild(row2); int b=1; for(int a=0;a<=6;a++){ String columnName = RS.getColumnName(b) ; Element node = doc.createElement(column Name); node.appendChild(doc.createTextNode((St ring) EkstrakResultVector.getValueFromVector(v,baris-1,a) )); row2.appendChild(node); b++; } } System.out.println(getDocumentAsXml(doc)); fileoutput.println(getDocumentAsXml(doc));

Fungsi ini akan membuat dokumen XML secara DOM ( Document

Object Model ). Fungsi akan melakukan dua kali seleksi database, yaitu

untuk tabel customer dan untuk tabel lokasi_tempat_tinggal. Struktur

XML ini akan dipakai untuk data customer baru dan untuk data customer

edit.

Setelah file selesai dibuat, maka akan dikirimkan ke server dengan

memanggil fungsi kirimFile(String file) dari kelas fileSender_Client.

Page 142: X – SYNC ( XML SYNCRONIZATION )

119

4.6.6. Form Data Barang ( IframeDataBarang.java )

Dari form ini user dapat melihat data barang yang akan ditampilkan

satu per satu secara berurutan, user dapat menekan tombol next untuk

melihat data selanjutnya atau tombol prev untuk melihat data sebelumnya.

Pada form ini juga disediakan fasilitas pencarian barang berdasarkan kode

barang, nama barang atau barang yang harus diorder.

Gambar 4.6 Form Data Barang Tab Data Umum Aplikasi Cabang

Fungsi getAllDataBarang_joinTable() pada kelas BarangHandler :

public Vector getAllDataBarang_joinTable(){ Vector vBarang=new Vector(); String sql="select b.kode_barang,b.nama_barang,b.harga_beli,b.harga_j ual,b.discount,b.discountDistributor,"+ "b.discountAgen,b.discountSubAgen,b.discountpengece r,g.nama_group,"+ "kat.nama_kategori,k.nama_kelompok,i.jumlah,i.per_t anggal,i.reorder_point,s.satuanbarang"+

Page 143: X – SYNC ( XML SYNCRONIZATION )

120

" from barang b,kelompok k,kat egori kat,groupb g,info_stok i,satuan s"+ " where b.id_kelompok=k.id_kelo mpok "+ " and k.id_kategori = kat.i d_kategori and kat.id_group= g.id_group"+ " and b.kode_info_stok = i. kode_info_stok and b.satuan=s.id_satuan"; try { vBarang=QH.getData2(sql); vJoinBarang=vBarang; } catch (Exception ex) { ex.printStackTrace(); } return vBarang; }

Fungsi diatas akan memanggil fungsi lain yang ada di kelas

QueryHandler untuk melakukan query ke database. Query yang akan

dieksekusi dipassingkan dari kelas BarangHandler . Hasil query akan

disimpan pada variabel vector .

Gambar 4.7 Form Data Barang Tab Order Barang Aplikasi Cabang

Page 144: X – SYNC ( XML SYNCRONIZATION )

121

Form ini tidak bisa diakses ketika user login sebagai kasir, harus

bertipe akses petugas cabang. Dari form ini petugas dapat melihat data

barang yang telah memasuki reorder point. Petugas akan mengisikan

jumlah order untuk masing – masing item barang. Ketika tombol kirim

order diklik, terjadi proses penyimpanan data order ke tabel order dan

detil order.

Fungsi saveJTableOrder2DBase() pada kelas OrderHandler :

public boolean saveJTableOrder2DBase(String orderID,javax.swing.table.TableModel model){ String sqlOrder="insert into OrderBarang values('"+orderID+"',now(),0)"; if(queryHandler.insert(sqlOrder)!=0){ for(int baris=0;baris<model.getRowCount();b aris++){ String sqlDetilOrder="insert into detil _order values('"+orderID+"','"+model.getValueAt(baris,0)+" ','"+model.getValueAt(baris,3)+"')"; queryHandler.insert(sqlDetilOrder); } updateStatusOrder(); return true; } else{ return false; } }

Fungsi diatas meminta parameter yang bertipe TableModel,

sehingga tabel order pada tampilan akan dikirimkan ke fungsi ini sebagai

parameternya. Fungsi akan melakukan looping untuk tiap baris dari tabel

order untuk mengambil data – data yang diperlukan dan kemudian

menyimpan ke database.

Fungsi yang dijalankan selanjutnya adalah fungsi pembuatan XML

getDataOrder.CreateXMLFromBDase(Field_OrderID.getTe xt()); dan

fungsi pengiriman file kirim.setName("DataOrderBranch--");

kirim.kirimFile(); .

Page 145: X – SYNC ( XML SYNCRONIZATION )

122

Gambar 4.8 Form Data Barang Tab Pengiriman Aplikasi Cabang

Dari form ini bisa dilihat data order yang pernah dikirim ke kantor

pusat. Ada dua macam data yang bisa ditampilkan yaitu data order barang

yang belum diproses oleh kantor pusat dan data order barang yang sudah

diproses oleh kantor pusat beserta data pengirimannya tetapi belum di-

approve oleh kantor cabang.

User akan memilih kode order, bila order tersebut sudah diproses

oleh kantor pusat, maka data pengiriman akan tertampil. Ketika tombol

OK diklik, maka akan dilakukan update jumlah data barang pada tabel

info_Stok dengan memanggil fungsi orderHandler.updateInfoStok(); .

Setelah data jumlah berhasil diupdate, maka akan dilakukan update status

Page 146: X – SYNC ( XML SYNCRONIZATION )

123

pada tabel order dengan nilai 1 yang artinya order telah dipenuhi dengan

menjalankan baris orderHandler.updateStatKirim(kodeorder).

4.6.7. Form Penjualan ( IframeDataPenjualan.java )

Ini adalah form yang akan selalu dijalankan oleh kasir, terdapat tiga

bagian utama tampilan ini yaitu bagian customer, bagian barang dan

bagian tabel penjualan. User bisa mengisikan data ID customer bila

pembeli yang dilayani sudah terdaftar pada sistem, tetapi jika belum maka

field bisa dibiarkan kosong.

Gambar 4.9 Form Data Penjualan Aplikasi Cabang

Dengan menekan tombol enter ketika kursor masih berada pada

field ID Customer, program akan melakukan pengecekan apakah kode

Page 147: X – SYNC ( XML SYNCRONIZATION )

124

yang dimasukan valid, bila ya maka data customer ditampilkan. Baris

program yang dieksekusi adalah customerHandler.getDataFromCustomer2(

kode );

Kursor kemudian akan berpindah ke field kode barang, setelah

diisi dan menekan enter, maka akan dilakaukan pengecekan kode barang

dan jumlah stok barang. Jika kode yang dimasukkan benar, maka data

barang dan jumlah stok-nya akan ditampilkan.

Baris program yang dijalankan adalah

barangHandler.getDataFromBarangTable_Jual(fieldKode Barang.getText(

),fieldIDCustomer.getText()).

Parameter kode customer diperlukan untuk menentukan jumlah

discount yang akan diterima oleh pembeli.

Setelah field jumlah diisi dan tombol enter ditekan, maka

dilakukan kalkulasi harga dan pengurangan stok sementara. Jika enter

ditekan sekali lagi, maka data tersebut akan tersimpan pada tabel

penjualan.

Setelah transaksi dilakukan dan tombol nota ditekan, maka

aplikasi akan mencetak nota penjualan, membuat file XML penjualan dan

mengirimnya ke server.

Fungsi cetakNotaPenjualan() pada kelas PenjualanHandler :

private void cetakNotaPenjualan(String noPenjualan) { Connection conn=null; koneksi=new Koneksi(); conn=koneksi.try2ConnectMySQL(); HashMap map = new HashMap(); map.put("no_penjualan",noPenjualan); map.put("total_hrg",getTotalHarga()); map.put("bayar",jumBayar); map.put("kembali",kembalian);

Page 148: X – SYNC ( XML SYNCRONIZATION )

125

JasperReport jasperReport=null; JasperPrint jasperPrint=null; String jasperFile = System.getProperty("use r.dir")+ System.getProperty("file.separator") + "Report" + System.getProperty("file.separator")+ "notaPj2.jasp er"; try { jasperPrint = JasperFillManager.fillRep ort(jasperFile, map, conn); } catch (JRException ex) { ex.printStackTrace(); } JasperViewer v=new JasperViewer(jasperPrint); v.viewReport(jasperPrint,false); }

Untuk fasilitas pencetakan digunakan Jasper Report, yang

merupakan paket open source untuk data printing. HasMap digunakan

untuk menampung parameter – parameter yang diperlukan oleh jasper.

jasperPrint akan menangani pengaksesan printer dan kemudian

melakukan pencetakan nota. JasperViewer akan membuat tampilan secara

print Preview.

4.6.8. Form Laporan ( IframeLaporan.java )

Gambar 4.10 Form Laporan Aplikasi Cabang

Page 149: X – SYNC ( XML SYNCRONIZATION )

126

Dari form ini bisa dilihat dan dicetak data – data penjualan

berdasarkan waktu terjadinya. User bisa mengisikan variabel tanggal awal

dan tanggal akhir penjualan yang akan dicetak. Tombol tampil akan

menampilkan data penjualan pada tabel, sedangkan tombol print

digunakan untuk mencetak data tersebut.

4.7. Aplikasi Server

Secara garis besar, aplikasi server mempunyai cara kerja dan fungsi – fungsi

yang sama dengan aplikasi client. Pada server terdapat beberapa kemampuan

tambahan yang akan dijelaskan di bawah.

4.7.1. Komunikasi Client Server ( SocketConnectionServer.java )

Kelas ini digunakan untuk menangani proses komunikasi antara

client dengan server dari sisi server. Lima langkah pembuatan server

adalah :

1. ServerSocket object

Menentukan nomor port yang akan dipakai.

Fungsi listenerClient pada kelas SocketConnectionServer :

public void ListenerClient(){ try { listener = new ServerSocket(port); labelServer.setText("Listening Client..."); while (true) { socket[count] = listener.accept(); labelServer.setText("New Connection From "+socket[count].getInetAddress()); System.out.println("Connection "+count+" Wi th Socket "+count+" --> "+socket[count]+" Active!!"); new Thread(this).start(); labelServer.setText("Listening Client....") ;

Page 150: X – SYNC ( XML SYNCRONIZATION )

127

count=count+1;

untuk aplikasi server, akan digunakan dua jenis objek socket yaitu

ServerSocket untuk menangani koneksi dari client dan socket untuk

melakukan komunikasi.

2. Setiap koneksi dari Client akan ditangani oleh object socket .

Server akan melakukan looping sampai ada client yang terkoneksi.

Fungsi listenerClient pada kelas SocketConnectionServer :

public void ListenerClient(){ try { listener = new ServerSocket(port); labelServer.setText("Listening Client..."); while (true) { socket[count] = listener.accept(); labelServer.setText("New Connection From "+socket[count].getInetAddress()); System.out.println("Connection "+count+" Wi th Socket "+count+" --> "+socket[count]+" Active!!"); new Thread(this).start(); labelServer.setText("Listening Client....") ; count=count+1;

Ketika dideteksi ada client yang ingin melakukan koneksi, maka

akan diberikan sebuah objek socket untuk menangani komunikasi dengan

client tersebut. Karena aplikasi ini akan menangani banyak client

sekaligus, maka socket disimpan dalam variabel array . Setelah socket

diinisialisasi, maka baris new Thread(this).start(); dieksekusi.

Penggunaan thread dimaksudkan agar koneksi dapat berjalan bersamaan

untuk semua client.

Page 151: X – SYNC ( XML SYNCRONIZATION )

128

3. Mendapatkan ObjectInputStream dan ObjectOutputStream dari socket.

Fungsi run() pada kelas SocketConnectionServer :

public void run() { int a=count; System.out.println("Socket "+a); System.out.println("Thread "+a); try { JOptionPane.showMessageDialog(null,"memproses Stream.."); InputStream in = socket[a-1].getInputStream() ; OIS=new ObjectInputStream(in); do{ file_Name = (String) OIS.readObject(); File file=new File(userDir+file_Name); FileOutputStream FOS=new FileOutputStream(f ile); byte[] outBuffer = new byte[socket[a-1].get ReceiveBufferSize()]; int bytesReceived = 0; while((bytesReceived = OIS.read(outBuff er)) > 0||!OIS.readObject().equals("END")) { FOS.write(outBuffer,0,bytesReceived ); //System.out.println("Writing....." ); }

Digunakan ObjectInputStream untuk menerima data dari socket

karena dapat menerima data yang berupa objek dari socket .

ObjectInputStream ini diturunkan dari object InputStream .

Fungsi kirim() pada kelas SocketConnectionServer :

public void kirim(String file) { for(int i=0;i<count;i++){ if(socket[i]!=null&&!socket[i].isClosed ()){ try { JOptionPane.showMessageDialog(null,"Kirim k e Socket -> "+socket[i]+" soket ke "+i); System.out.println(socket[i]+" Sockettt"); OutputStream os = socket[i].getOutputSt ream(); if(OOS[i]==null){ OOS[i]=new ObjectOutputStream(os); OOS[i].flush(); }

Digunakan ObjectOutputStream untuk menuliskan data pada socket .

ObjectOutputStream merupakan turunan dari OutputStream yang

menggunakan method getInputStream pada socket.

Page 152: X – SYNC ( XML SYNCRONIZATION )

129

4. Fase Proses

Server dan Client berkomunikasi via stream

Fungsi run() pada kelas SocketConnectionServer :

public void run() { int a=count; System.out.println("Socket "+a); System.out.println("Thread "+a); try { JOptionPane.showMessageDialog(null,"memproses Stream.."); InputStream in = socket[a-1].getInputStream() ; OIS=new ObjectInputStream(in); do{ file_Name = (String) OIS.readObject(); File file=new File(userDir+file_Name); FileOutputStream FOS=new FileOutputStream(f ile); byte[] outBuffer = new byte[socket[a-1].get ReceiveBufferSize()]; int bytesReceived = 0; while((bytesReceived = OIS.read(outBuff er)) > 0||!OIS.readObject().equals("END")) { FOS.write(outBuffer,0,bytesReceived ); //System.out.println("Writing....." ); }

Fungsi diatas akan melakukan looping sampai ditemukan object yang

berupa nama file pada socket. File kemudian akan dibaca per byte dari socket dan

menuliskannya pada harddisk sampai ditemukan string END yang berarti file sudah

selesai dibaca dan fungsi akan melanjutkan looping.

Fungsi kirim() pada kelas SocketConnectionServer :

for (int cur_file=0; cur_file<cnt_files; cur_file++ ) { OOS[i].writeObject(file); OOS[i].flush(); JOptionPane.showMessageDialog(null,"Anda a kan mengirim file -> "+file); FileInputStream FIS=new FileInputStream(new File(userDir+file)); byte[] nextBytes = new byte[socket[i].getSe ndBufferSize()]; int bytesRead = 0; while((bytesRead = FIS.read(nextBytes)) > 0) { OOS[i].write(nextBytes,0,bytesRead); OOS[i].flush(); } OOS[i].writeObject("END"); }

Page 153: X – SYNC ( XML SYNCRONIZATION )

130

Ketika baris OOS.writeObject(fileName) dijalankan, fungsi akan

menuliskan nama file ke socket sebagai parameter awal bagi server.

Kemudian, fungsi akan membaca file dari harddisk byte per byte

kemudian menuliskannya ke socket melalui objek ObjekOutputStream .

Setelah file selesai dituliskan, fungsi akan menuliskan string END ke socket

sebagai informasi bahwa file sudah selesai dituliskan.

Pola pengiriman dari server ke client adalah secara broadcast atau

disebar ke seluruh socket yang ada. Sehingga parameter nama file menjadi

sangat penting agar file tersebut tidak salah alamat.

5. Menutup koneksi

try { socket[a-1].close(); } catch (IOException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, "Cannot Closing.."); }

Proses ini menggunakan fungsi close yang dilakukan pada socket .

4.7.2. Form Login ( LoginDulu.java )

Cara kerja kelas ini sama dengan kelas login pada aplikasi client.

User yang bisa login ke aplikasi server hanya user dengan tipe akses

petugas pusat dan kasir pusat.

Fungsi doEvent() pada kleas LoginDulu :

connected=koneksi.login(IDField.getText(),psswdFiel d.getText()); if(connected&&lokasiKantor==1){ System.out.println("User : "+koneksi. getUser()+" ,Hak Akses : "+koneksi.getAkses()); statusLogin=connected; userName=koneksi.getUser(); hakAkses=koneksi.getAkses();

Page 154: X – SYNC ( XML SYNCRONIZATION )

131

Baris koneksi.login(IDField.getText(),psswdField.getText ());

Akan melakukan pengecekan terhadap status login dari user, kemudian

akan dicek lagi apakah user yang bersangkutan merupakan petugas yang

terdaftar pada kantor pusat.

4.7.3. Form Menu Utama ( MainMenu_Pusat.java )

Gambar 4.11 Form Menu Utama Aplikasi Server

Halaman ini adalah menu utama pada aplikasi server, fungsi utama

dari aplikasi server sebagian sama dengan aplikasi client. Perbedaan utama

dari fungsi ini adalah pada kemampuannya melayani koneksi dari client,

dan fasilitas untuk mengupdate serta menambahkan data barang, petugas

dan lokasi kantor.

Terdapat empat menu utama program ini, yaitu menu File, Master,

Transaksi, Help. Fungsi masing – masing menu adalah :

Page 155: X – SYNC ( XML SYNCRONIZATION )

132

5. File

Nama Menu Item Fungsi

Exit Keluar dari program

Tabel 4.5 Fungsi Menu File Aplikasi Server

6. Master

Nama Menu Item Fungsi

Customer Memanggil form data Customer

Barang Memanggil form data Barang

Petugas Memanggil form data petugas

Kantor Memanggil form data kantor

Tabel 4.6 Fungsi Menu Master Aplikasi Server

7. Transaksi

Nama Menu Item Fungsi

Penjualan Memanggil form Penjualan

Laporan Memanggil form Laporan

Tabel 4.7 Fungsi Menu Transaksi Aplikasi Server

8. Help

Nama Menu Item Fungsi

User Manual Memanggil user Manual program

About Informasi tentang sistem

Tabel 4.8 Fungsi Menu Help Aplikasi Server

Pada halaman ini akan dilakukan pengecekan terhadap status login

user. Bila user login sebagai petugas pusat maka fungsi server akan aktif,

bila user login sebagai petugas kasir maka fungsi server tidak diaktifkan.

Page 156: X – SYNC ( XML SYNCRONIZATION )

133

Ketika server aktif, maka aplikasi siap menerima koneksi dari

client dan kemudian memproses file yang dikirimkan oleh client. Fungsi

server ini ditagani oleh kelas SocketConnectionServer . Metode

pemrosesan file XML pada sisi server sama dengan metode pemrosesan

pada client.

4.7.4. Form Data Customer ( IframeDataCustomer.java )

Kelas ini mempunyi cara kerja yang sama dengan kelas

IframeDataCustomer pada aplikasi client. Satu perbedaan adalah pada

kelas ini tidak ada fungsi pembuatan dan pengiriman file XML untuk

setiap perubahan data customer.

4.7.5. Form Tambah Customer ( FrameTambahCustomer.java )

Cara kerja kelas ini serupa dengan kelas FrameTambahCustomer

pada aplikasi client. Satu perbedaannya adalah bahwa pada kelas ini tidak

terdapat fungsi untuk membuat file XML dan fungsi pengiriman file

tersebut.

Page 157: X – SYNC ( XML SYNCRONIZATION )

134

4.7.6. Form Data Barang ( IframeDataBrang.java )

Gambar 4.12 Form Data Barang Tab Data Umum Aplikasi Server

Perbedaan form ini dengan form data barang yang ada pada

aplikasi client adalah pada kemampuannya dalam mengedit data barang

dan data stok masing – masing item barang. Untuk setiap data barang yang

diedit, aplikasi akan membut file XML barang dan mengirimkannya ke

client untuk mengupdate data barang di client.

Fungsi createUpdatedItem() pada Kelas DataItemBarang_Into_XML :

DocumentBuilder builder = factory.newDocumentBuilde r(); Document doc=builder.newDocument(); Element result=doc.createElement("dataU pdatedBarang"); doc.appendChild(result); Element tabBrg=doc.createElement("baran g"); result.appendChild(tabBrg); Vector v=QH.getData("select * from bara ng where kode_barang like '"+kodeBar+"'"); int kol=QH.getMaxCol(); ResultSetMetaData RS=QH.getRSMD();

Page 158: X – SYNC ( XML SYNCRONIZATION )

135

for(int baris=1;baris<=kol;baris++){ Element row = doc.createElement("Ro w"); tabBrg.appendChild(row); int b=1; for(int a=0;a<=11;a++){ String columnName = RS.getColum nName(b); Element node = doc.createElemen t(columnName); node.appendChild(doc.createText Node((String) EkstrakResultVector.getValueFromVector(v,baris-1,a) )); row.appendChild(node); b++; } } fileoutput.println(getDocumentAsXml(doc ));

Cara kerja potongan program diatas adalah pertama kali dilakukan

seleksi data ke database, hasil seleksi ini ditampung pada sebuah variabel.

Langkah selanjutnya adalah membuat DOM dari data tersebut. Pada

langkah ini, struktur XML sudah dibuat di memori. Untuk menyimpannya

ke dalam file, maka digunakan fungsi getDocumentAsXml(doc) yang akan

mengubah struktur di memori tersebut ke dalam tipe String dan sekaligus

melakukan pemformatan tampilan dokumen XML.

Gambar 4.13 Form Data Barang Tab Proses Order Barang Aplikasi Server

Page 159: X – SYNC ( XML SYNCRONIZATION )

136

Pada form ini, petugas pusat bisa melihat semua order yang

dikirimkan oleh kantor cabang yang belum diproses. Petugas memilih

kode order yang ada untuk melihat detil ordernya untuk kemudian mengisi

jumlah barang yang akan dikirimkan sebagai pemenuhan order.

Ketika tombol proccess diklik, fungsi yang aka dijalankan adalah

fungsi untuk mengurangi jumlah stok di database kantor pusat untuk

masing – masing item barang, membuat file XML pengiriman. Fungsi

yang menangani hal ini adalah processOrder((String)

comboLokasi.getSelectedItem(),fieldTanggalOrder.get Text(),

data,tableOrder.getModel()). Fungsi yang dikerjakan selanjutnya

adalah pengiriman file XML pada baris socketServer.kirim("Datafaktur-

-"+lokasiKantor.substring(0,1)+".xml"); Penamaan file XML untuk

pengiriman akan tergantung dari kantor cabang mana order berasal.

4.7.7. Form Tambah Barang ( FrameTambahBarang.java )

Gambar 4.14 Form Tambah Data Barang Aplikasi Server

Page 160: X – SYNC ( XML SYNCRONIZATION )

137

Pada form ini, petugas pusat akan mengisikan data barang – barang

baru beserta jumlah stok ke database pusat. Ketika link Group baru

diklik, maka akan tampil sebuah kotak dialog yang meminta input nama

group baru.

Gambar 4.15 Dialog Tambah Group Aplikasi Server

Ketika link kategori baru dikik, maka akan ditampilkan kotak

dialog yang meminta input Kategori baru beserta group untuk kategori

tersebut.

Gambar 4.16 Dialog Tambah Kategori Aplikasi Server

Ketika link Kelompok Baru diklik, maka akan ditampilkan kotak

dialog yang meminta input kelompok baru beserta kategorinya.

Gambar 4.17 Dialog Tambah Kelompok Aplikasi Server

Untuk setiap Group, Kategori dan Kelompok baru yang

ditambahkan, akan dibuat file XML yang akan dikirim ke client.

Page 161: X – SYNC ( XML SYNCRONIZATION )

138

Setelah semua data yang diminta olek form data barang diisi dan

petugas melakukan klik tombol simpan, maka data baru tesebut akan

disimpan ke database. Proses selanjutnya adalah membuat file XML

barang untuk dikirimkan ke seluruh client.

4.7.8. Form Petugas ( FramePetugas.java )

Gambar 4.18 Form Data Petugas Aplikasi Server

Form ini digunakan untuk menangani data – data karyawan yang

terdaftar pada sistem. Dari form ini bisa dilakukan penambahan karyawan

baru, pemberian hak akses pada karyawan, mengubah data karyawan dan

menghapus karyawan.

Pertama kali form ini dibuka, akan dilakukan pengambilan seluruh

data karyawan dan kemudian menampilkannya dalam bentuk tabel.

Fungsi ambilData() pada kelas FramePetugas :

private void ambilData(int posisiCombo,String pSear ch) { petugasHandler=new PetugasHandler(); data=new Object[petugasHandler.getRowCount( )][4];

Page 162: X – SYNC ( XML SYNCRONIZATION )

139

data=(Object[][]) petugasHandler.getDataFromPetugasTable(posisiCombo, pSearch); tablePetugas.setModel(new javax.swing.table.DefaultTableModel(data,namaKolom) { Class[] types = new Class [] { java.lang.String.class, java.lang.S tring.class, java.lang.String.class, java.lang.String.class }; boolean[] canEdit = new boolean [] { false, false, false, false }; public Class getColumnClass(int columnI ndex) { return types [columnIndex]; } public boolean isCellEditable(int rowIn dex, int columnIndex) { return canEdit [columnIndex]; } }); tablePetugas.setAutoResizeMode(JTable.AUTO_ RESIZE_NEXT_COLUMN); Object ukuran[]={"70","240","80","40"}; for(int i=0;i<4;i++){ tablePetugas.getColumnModel().getColumn(i). setMaxWidth(800); tablePetugas.getColumnModel().getColumn(i).setPrefe rredWidth(Integer.parseInt((String) ukuran[i])); } }

Cara kerja fungsi diatas adalah mengambil seluruh data dari

database dan menyipan data tersebut ke dalam array dua dimensi. Array

dua dimensi tersebut kemudian dikirimkan sebagai parameter pembuatan

tampilan tabel.

Ketika tombol ADD diklik maka akan muncul sebuah kotak dialog

yang meminta input data – data karyawan baru.

Page 163: X – SYNC ( XML SYNCRONIZATION )

140

Gambar 4.19 Dialog Input Petugas Aplikasi Server

Data – data harus diisi dengan lengkap agar proses penyimpaan

data ke dtabase dapat berjalan. Penyimpanan ke database ditangani oleh

baris program petugasHandler.insertPetugas().

Tombol edit digunakan untuk membuka field – field data

customer, kemudian tombol simpan digunakan untuk menyimpan

perubahan data.

4.7.9. Form Kantor ( FrameKantor.java )

Form ini digunakan untuk menangani data kantor – kantor yang

nemjadi bagian dari perusahaan. Yang bisa dilakukan dengan form ini

adalah penambahan data kantor baru dan edit data kantor.

Data kantor ini kan berhubungan dengan data penjualan, sehingga

kantor yang belum terdaftar tidak akan bisa melakukan koneksi.

Form ini akan menampilkan data kantor secara berurutan sehingga

disediakan tombol navigasi next dan prev untuk melihat data sebelumnya

atau sesudahnya. Terdapat fasilitas pencarian sederhana berdasarkan ID

kantor.

Page 164: X – SYNC ( XML SYNCRONIZATION )

141

Gambar 4.20 Frame Data Lokasi Kantor Aplikasi Server

Fungsi ambilData() pada kelas FrameKantor :

private void ambilData(int selector,String value) { lokasiHandler = new LokasiKantorHandler(); lokasiHandler.getDataLokasi(selector,value) ; jumlah = lokasiHandler.getJumlahData(); if(jumlah!=0){ lokasiHandler.setAllVariabel(pos); setField(); if(jumlah==1){ nextBut.setEnabled(false); } else{ nextBut.setEnabled(true); } editBut.setEnabled(true); } else{ }}

Fungsi ini akan mengambil data berdasarkan parameter yang

diberikan. Yaitu ID kantor .

Ketika tombol ADD diklik maka akan ditampilkan dialog yang

meminta input data kantor. Isi data dengan lengkap agar proses

penyimpanan data dapat berjalan.

Page 165: X – SYNC ( XML SYNCRONIZATION )

142

Gambar 4.21 Dialog Input Data Kantor Aplikasi Server

Fungsi simpan() pada kelas DialogTambahKantor :

lokasiHandler = new LokasiKantorHandler(); lokasiHandler.setIDLokasi(fieldIDKantor.get Text()); lokasiHandler.setAlamatLokasi(fieldAlamatKa ntor.getText()); lokasiHandler.setKecamatanLokasi(fieldKecam atanKantor.getText()); lokasiHandler.setKotaLokasi(fieldKotaKantor .getText()); lokasiHandler.setTelponLokasi(fieldTelponKa ntor.getText()); lokasiHandler.simpanLokasiBaru(); this.dispose();

4.7.10. Form Penjualan ( IframePenjualan.java )

Fungsi – fungsi pada kelas ini sama dengan fungsi – fungsi yang

ada pada IframePenjualan di aplikasi client. Pada form penjualan ini tidak

ada fungsi untuk membuat dan mengirimkan file XML penjualan.

Fungsi tambahRow() pada kelas IframePenjualan :

if(0==countModel){ model.addRow(data); } else{ for(int i=0;i<countModel;i++){ if(data[0].equals(jTableTransaksi.getModel().getVal ueAt(i,0))){ System.out.println(data[0]); model.setValueAt(Integer.valueOf(jTableTransaksi.ge tModel().getValueAt(i,3).toString())+Integer.valueOf(data[3].toString()), i,3); model.setValueAt(Integer.valueOf(jTableTransaksi.ge tModel().getValueAt(i,4).toString())+Integer.valueOf(data[4].toString()), i,4); break; }

Page 166: X – SYNC ( XML SYNCRONIZATION )

143

if(i==countModel-1){ model.addRow(data); } } }

Fungsi diatas berguna untuk menambahkan item barang yang akan

dibeli oleh customer ke dalam tampilan Jtable . Pertama kali akan dicek

apakah tabel masih kosong, jika ya maka akan langsung ditambahkan satu

baris data. Ini diakukan dengna mengeksekusi baris model.addRow(data);

Jika tabel sudah ada isinya, maka akan dicek kesamaan kode

barang dari baris sebelumnya dengan kode barang yang akan ditambahkan

ke tabel. Jika cocok, maka yang akan ditambahkan hanya jumlah item dan

total harganya saja.

4.7.11. Form Laporan ( LaporanIFrame.java )

Fungsi – fungsi dan kegunaan form ini sama saja dengan Form

Laporan di aplikasi client. Terdapat sebuah parameter tambahan yang

harus diinputkan selain tanggal awal dan tanggal akhir yaitu lokasi kantor.

Jadi dari kantor pusat bisa dilihat laporan penjualan untuk masing –

maasing kantor cabang.

4.8. Tampilan Halaman Output

4.8.1. Nota Penjualan

Nota penjualan berfungsi sebagai tanda bukti barang – barang yang

telah dijual kepada customer. Berikut ini adalah tampilan Nota Penjualan.

Page 167: X – SYNC ( XML SYNCRONIZATION )

144

Gambar 4.22 Print Out Nota Penjualan

4.8.2. Laporan Penjualan

Laporan penjualan berisi data – data penjualan dalam jangka waktu

tertentu.

Page 168: X – SYNC ( XML SYNCRONIZATION )

145

Gambar 4.23 Print Out Laporan Penjualan

Page 169: X – SYNC ( XML SYNCRONIZATION )

146

BAB 5

ANALISIS HASIL

5. 1. Hasil Pengujian Sistem

Pengujian sistem “X – Sync ( XML Syncronize ) Untuk Sistem

Penjualan” ini dilakukan pada jaringan intranet dengan satu domain. Pengujian

dilakukan dengan memasang beberapa aplikasi client dan satu aplikasi server

dimana pada masing – masing aplikasi yang berjalan terhubung dengan

database yang terinstall secara lokal di komputer tersebut. Server dapat

menerima koneksi dan membangun komunikasi dengan banyak client

sekaligus karena adanya fungsi thread. Koneksi yang dibagun berdasarkan

pada protokol TCP/IP sehingga file yang dikirimkan dari server ataupun dari

client dijamin keutuhannya.

Sistem ini diharapkan dapat diimplementasikan pada jaringan

internet yang sesungguhnya sehingga dapat membantu proses sinkronisasi data

pada perusahaan khususnya untuk data – data penjualan. Dengan kecepatan

dan efisiensi pengiriman data seperti ini, maka karyawan pada level

manajemen untuk mengetahui informasi dari masing – masing kantor cabang

cepat pula sehingga keputusan bisnis juga dapat dibuat secara cepat.

5. 2. Kelebihan Sistem

Sistem “X – Sync ( XML Syncronize ) Untuk Sistem Penjualan” ini

memiliki kelebihan antara lain:

Page 170: X – SYNC ( XML SYNCRONIZATION )

147

1. Untuk pengiriman data, sistem ini menggunakan dokumen XML. Dengan

demikian pemrosesan data dapat dilakukan oleh beberapa model alikasi.

2. Jaringan client server dibangun diatas protokol TCP/IP dan menggunakan

Java Socket yang merupakan tipe koneksi connection Oriented, jadi data

yang dikirimkan akan benar – benar terjamin keutuhannya.

3. Teknologi Java yang digunakan bersifat multiplatform, sehingga bisa

diimplementasikan pada beberapa jenis sistem operasi dengan sedikit

penyesuaian.

5. 3. Kekurangan Sistem

Sistem “X – Sync ( XML Syncronize ) Untuk Sistem Penjualan” ini

memiliki kekurangan antara lain :

1. Sistem ini dibangun dengan Java Socket sehingga koneksi yang didukung

hanya koneksi antar aplikasi Java saja.

2. Sistem hanya menjamin keutuhan file saja, tetapi tidak menangani masalah

keamanan file di jaringan.

3. Dokumen XML yang dikirimkan dari client ke server ataupun dari server

ke client, bukan merupakan format dokumen XML yang valid karena tidak

menggunakan Document Type Definition (DTD).

5. 4. Prospek Pengembangan Sistem

Sistem ini merupakan sistem client server yang dibangun diatas

arsitektur Java socket sehingga komunikasi hanya terbatas antar aplikasi Java

Page 171: X – SYNC ( XML SYNCRONIZATION )

148

saja. Sistem ini bisa dikembangkan dengan menggunakan arsitektur yang lain

misalnya CORBA ( Common Object Request Brokker Application ) sehingga

aplikasi yang bisa saling berkomunikasi tidak terbatas pada satu model saja.

Page 172: X – SYNC ( XML SYNCRONIZATION )

149

BAB 6

PENUTUP

6. 1. Kesimpulan

Sistem “X – Sync ( XML Syncronize ) Untuk Sistem Penjualan”

ini dibangun dengan tujuan untuk mengefisienkan proses pengiriman data

antara kantor cabang dan kantor pusat dalam sebuah perusahaan. Data

yang sebelumnya dikirim secara manual, diganti dengan proses

pengiriman secara otomatis memanfaatkan jaringan internet dan dokumen

XML.

Berdasarkan hasil implementasi dan simulasi yang telah dilakukan,

maka terdapat beberapa hal yang dapat disimpulkan yaitu:

1. Penggunaan teknologi jaringan dan XML sebagai format pertukaran data

sangat tepat dilakukan pada saat sekarang ini karena kemudahan akses

jaringan internet. XML yang dikirimkan berukuran kecil karena dibuat

setiap ada event di database sehingga tidak membebani jaringan.

2. JavaTM Platform dapat digunakan untuk mengimplementasikan sistem ini,

baik pada aplikasi server maupun pada aplikasi client. Komunikasi yang

dibangun berdasarkan Java socket.

3. Dari sisi aplikasi, sistem “X – Sync ( XML Syncronize ) Untuk Sistem

Penjualan” sangat potensial untuk dikembangkan. Sistem bisa

dikembangkan sehingga bisa untuk menagani seluruh data – data

perusahaan misalnya proses pembelian atau bahkan bisa juga

dikembangkan untuk menangani komunikasi antar perusahaan.

Page 173: X – SYNC ( XML SYNCRONIZATION )

150

6. 2. Saran

Sistem ini dibangun berdasarkan kondisi ideal dimana fisik

jaringan yang digunakan dalam keadaan baik dan tidak ada pihak ketiga

yang sengaja mengganggu. Ketika harus diterapkan pada kondisi jaringan

internet yang merupakan jaringan publik, maka hal ini merupakan celah

keamanan tersendiri. Enkripsi merupakan hal yang bisa ditambahkan pada

pengembangan selanjutnya untuk membuat sistem lebih handal dan aman.

Hal lain yang bisa ditambahkan dalam sistem ini adalah

kemampuan untuk menagani siklus pembelian, siklus Sumber Daya

Manusia, siklus keuangan dan lain – lain sehingga sistem menjadi sebuah

system yang terintegrasi yang memanfatkan jaringan internet dan XML

sebagai keunggulan utama.

Page 174: X – SYNC ( XML SYNCRONIZATION )

151

DAFTAR PUSTAKA

Benoit Marchal, XML By Example, Edisi 2, Que, 2000

Budi Susanto, Pemrograman Client/Server Dengan Java 2, Edisi 1, Elex Media

Komputindo, 2003

Bahan Kuliah Pemrograman Java Lanjut, Bahan Kuliah RPL I, Dokumentasi

MySQL 5

Elliotte Rusty Harold, W. Scott Means, XML in a Nutshell, 2nd Edition, Edisi 2,

O’Reilly & Associates Inc., 2002

Jeffery L. Whitten, Lennie D. Bentley, Kevin C. Dittman, Systems Analysis and

Design Methods, 6th Edition, The McGraw-Hill Companies, 2004

Mark Mattews. Jim Cole, Joseph D. Gradecki, MySQLTM And JAVATM Developer’s

Guide, Edisi 1, Wiley Publishing Inc., 2003

Artikel-artikel dari Internet:

1. http://www.developerfusion.co.uk/xml

2. http://forum.java.sun.com/

3. http://www.w3.org/TR/2002/WD-DOM-Level-3-Core-20020409