PENERAPAN CLIENT SERVER DATABASE
UNTUK SISTEM INFORMASI KOPERASI SIMPAN PINJAM
(Studi Kasus : Koperasi Bintang Jaya )
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Informatika
Disusun Oleh:
Sarah Puji Rahayu
035314025
TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2008
ii
CLIENT SERVER DATABASE IMPLEMENTATION FOR
SAVINGS AND CREDIT COOPERATION
INFORMATION SYSTEM
(A Study At Case Saving and Credit Cooperation “Bintang Jaya”)
A Thesis
Presented as Partial Fulfillment of the Requirements
To Obtain the Engineering Bachelor Degree
In Informatics Engineering
By :
Sarah Puji Rahayu
035314025
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2008
vi
HALAMAN MOTTO
AKU DIAM
AKU MERANGKAK
AKU TERTATIH
DAN
AKU BERDIRI
Di setiap kesulitan
Dia akan menunjukkan jalanNya...
vii
HALAMAN PERSEMBAHAN
Untuk
Bapak dan Ibu ku ...
Mas Toro dan Ira ...
Tercinta....
Anto...
Anak TI’03
dan UNTUK SEMUANYA ...
viii
ABSTRAK
Tugas Akhir ini bertujuan untuk membangun Sistem Informasi Koperasi dengan menerapkan teknologi client/server database dengan menggunakan bahasa pemrograman Java dan MySQL. Sistem ini digunakan untuk mengolah data transaksi koperasi yang disimpan dalam database server koperasi dan dapat diakses oleh user melalui aplikasi client. Aplikasi client ini akan membantu user untuk mengakses dan mengelola transaksi koperasi seperti tambah data, ubah data, pencarian data, dan pencetakan slip transaksi. Hasil yang dapat diperoleh dengan menggunakan teknologi client/sever database untuk Sistem Informasi Koperasi adalah pelayanan dan pengelolaan transaksi para anggota koperasi menjadi lebih cepat tanpa saling mencampuri, karena database server dapat diakses oleh banyak user dan menggunakan database terpusat.
ix
ABSTRACT
The purpose of this final assignment is to build Savings and Credit Cooperation Information System with implemented client server database technology using Java as Programming language and MYSQL. This system is used for processing saved cooperation transaction at cooperation server database, it can be accessed by user throught client application. This client application will help user to access and manage transaction such as : adding data, updating data, searching data, and printing the 'slip' transaction. The result that can be obtained by using the client server database for Saving and Credit Cooperation Information System is that the service and the management of the transaction among the members become faster without any interference, because the database server can be accessed by multiuser and used the centralized database.
x
KATA PENGANTAR
Puji dan syukur penuilis panjatkan kepada Allah SWT yang telah
melimpahkan Rahmat-Nya sehingga penulis dapat menyelesaikan tugas akhir ini
Dalam proses penulisan tugas akhir ini ada begitu banyak pihak yang telah
memberikan perhatian dan bantuan dengan caranya masing-masing sehingga tugas
akhir ini dapat selesai. Oleh karena itu saya ingin mengucapkan terima kasih antara
lain kepada :
1. Bapak Ir. Greg Heliarko, S.J., S.S.,B.S.T.,M.A,M.Sc., Selaku Dekan Fakultas
Teknik Universitas Sanata Dharma.
2. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Dosen Pembimbing Tugas Akhir
dan Dosen Pembimbing Akademik, yang telah banyak memberikan bimbingan,
dukungan, motivasi dan fasilitas yang mendukung terselesaikannya tugas akhir
ini.
3. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma.
4. Bapak JB. Budi Darmawan, S.T.,M.Sc. dan Bapak St. Wisnu Sanjaya, S.T., M.T.
selaku panitia penguji yang telah memberikan banyak kritik dan saran untuk tugas
akhir penulis.
5. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang telah
memberikan bekal ilmu, arahan dan pengalaman selama penulis menempuh studi.
xi
6. Seluruh staff Sekretariat Teknik yang banyak membantu penulis dalam urusan
administrasi akademik terutama menjelang ujian tugas akhir dan yudisium.
7. Bapak dan Ibu di rumah yang telah memberikan banyak dorongan, doa, semangat,
perhatian dan cintanya sehingga penulis dapat menyelesaikan tugas akhir ini
dengan lancar. Maaf pak...telat....ora pa pa kan...
8. Mas Toro dan Ira (akierun). Terima kasih atas doa dan semangatnya selama ini.
Mas....Run.... aku wis rampung....kesuwun banget ya.....
9. Tri Susanto (Ex Yayanxku) yang telah memberikan cinta, sayang dan dorongan
nya. Yanx...aku bisa selesai kan...
10. Rachel yang telah memberi masukan dan dorongan serta ide-idenya..... thanx
untuk semua yang telah kita lalui bareng...dari enak sampe pl g enak...bahkan
‘???’....thanx udah mw tidur kosku ....thanx..untuk smuanya ya jenk....
11. Gepeng, Acid, dan Dian yang telah memberikan masukan dan ide pada saat
pengerjaan tugas akhir ini. Thanx banget ya jenk.... Makasih juga untuk
persahabatannya selama ini....kalau ga ada kalian mungkin aku bisa stress sendiri
he he he...
12. Devi, Merry, Dea, dan Ina yang telah menjadi sahabat penulis selama menempuh
studi di kampus, walopun kadang banyak terjadi ketidakcocokan tapi.....terima
kasih banyak untuk kehangatan persahabatan ini...thanx.... Pie...Mer...cepet
slesein ngerjain TAnya yah....biar bisa bebas....hehehehhehe....
13. Untuk semua teman-teman seperjuangan di TI03, Abe, Ones, Yansen, Danang,
Oscar, Ako, Amin, Ari, Pakde, Fendy, Hendro, JJ, Seno, David, Dani, Santos,
xii
Eros, Bergas, Ucup, Nugie, CiBlek, Jun, Dion, Irvan, Chandra, Rubin, Erick,
Adwi, Angga, Marcel, Isti, Kristin, Yuche, Winda, Uthe, Heni, Ratih, Gina, Anis,
Epot, Lindul, Rissa, Hanna, Tika, Monic, Nur, Esther, Yeyen, Ria dan semua
teman-teman teknik lainnya.... thanks buat masa-masa indah kita, KKL, makrab,
dll. Kita akan merindukan moment indah yang pernah kita lalui bersama
14. Keluarga Bapak Suraji, Bu Wakingah, de’ Lisna, de’ Amri dan de’ Arif.
15. Semua anak-anak kos dari mb Lisa, mb Ana, mb Nelvi, mb Nina, Retno, Litha,
Ellis dan Shinta yang selalu menemani dan menjadi keluarga baru bagi penulis.
16. Pak Dar....makasih untuk canda dan tawanya saat penulis sedang mengerjakan TA
di lab.
17. Semua pihak yang tidak bisa disebutkan satu persatu.
Dengan rendah hati saya menyadari bahwa tugas akhir ini masih jauh dari
sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini
sangat saya harapkan. Akhir kata, semoga tugas akhir ini bermanfaat bagi semua
pihak. Terima kasih.
Yogyakarta, Juni 2008
Penulis
Sarah Puji Rahayu
xiii
DAFTAR ISI
HALAMAN JUDUL ……………………………………………………………... i
HALAMAN PERSETUJUAN …………………………………………………… iii
HALAMAN PENGESAHAN ……………………………………………………. iv
PERNYATAAN KEASLIAN KARYA ………………………………………….. v
HALAMAN MOTTO …………………………………………………………… .. vi
HALAMAN PERSEMBAHAN …………………………………………………... vii
ABSTRAK ………………………………………………………………………... viii
ABSTRACT ………………………………………………………………………. ix
KATA PENGANTAR …………………………………………………………….. x
DAFTAR ISI …………………………………………………………………….... xiii
DAFTAR GAMBAR ……………………………………………………………. xxiii
DAFTAR TABEL ............................................................................................... xxviii
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah ................................................................................. 1
1.2 Rumusan Masalah .......................................................................................... 2
1.3 Batasan Masalah ............................................................................................ 2
1.4 Tujuan dan Manfaat Penelitian ...................................................................... 2
1.5 Metodologi Penelitian .................................................................................... 3
xiv
1.6 Sistematika Penulisan .................................................................................... 4
BAB II LANDASAN TEORI
2.1 Sistem Informasi ............................................................................................ 6
2.2 Client/server ………………………………………………………………... 6
2.2.1 Komponen Client Server …………………………………………... 7
2.2.2 Karakteristik Client/Server ………………………………………… 8
2.2.3 Arsitektur Client/Server ……………………………………………. 10
2.3 MySQL …………………………………………………………………….. 12
2.4 Transaksi dan Concurency Control
2.4.1 Transaksi …………………………………………………………… 14
2.4.2 Concurency Control ……………………………………………….. 15
2.4.3 Serializability ………………………………………………………. 16
2.4.4 Teknik Concurency Control ……………………………………….. 18
2.4.5 Locking …………………………………………………………….. 19
BAB III ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
3.1.1. Gambaran Umum Sistem Lama ........................................................ 20
3.1.2. Analisis Masalah ............................................................................... 20
3.1.3. Gambaran Umum Sistem Baru ......................................................... 21
3.1.4. Orang Yang Terlibat Dalam Sistem .................................................. 22
3.1.5. Use Case Diagram
3.1.5.1 Sistem Admin …………………………………………… 24
xv
3.1.5.2 Sistem Manager Koperasi
3.1.5.2.1 Use Case Data ……………………………….. 111
3.1.5.2.2 Use Case Penyetujuan Pinjaman …………….. 25
3.1.5.2.3 Use Case Ganti Password ……………………. 25
3.1.5.2.4 Use Case Log Request ……………………….. 25
3.1.5.3 Sistem Petugas Koperasi
3.1.5.3.1 Sistem Transaksi
3.1.5.3.1.1 Use Case Keanggotaan ………… 26
3.1.5.3.1.2 Use Case Tabungan Wajib ……... 27
3.1.5.3.1.3 Use Case Tabungan Sukarela …… 27
3.1.5.3.1.4 Use Case Penarikan Tabungan ….. 28
3.1.5.3.1.5 Use Case Pinjaman ……………… 28
3.1.5.3.1.6 Use Case Angsuran ……………… 29
3.1.5.3.2 Sistem Laporan ……………………………….. 29
3.1.5.3.3 Sistem Berkas ………………………………… 30
3.1.5.3.4 Use Case Ganti Password ……………………. 30
3.1.5.3.5 Use Case Log Request ……………………….. 30
3.1.6 Class Diagram ………………………………………………………. 31
3.2 Design Sistem
3.2.1 Sequence Diagram
3.2.1.1 Sistem Admin …………………………………………….. 35
3.2.1.2 Sistem Manager
xvi
3.2.1.2.1 Sistem Data ……………………………………. 36
3.2.1.2.2 Sistem Penyetujuan Pinjaman …………………. 38
3.2.1.2.3 Proses Merubah Password …………………….. 40
3.2.1.2.4 Proses Menampilkan Log Request ……………. 40
3.2.1.3 Sistem Petugas Koperasi
3.2.1.3.1 Sistem Transaksi
3.2.1.3.1.1 Sistem Keanggotaan …………….. 42
3.2.1.3.1.2 Sistem Tabungan Wajib …………. 44
3.2.1.3.1.3 Sistem Tabungan Sukarela ............. 46
3.2.1.3.1.4 Sistem Penarikan Tabungan ........... 48
3.2.1.3.1.5 Sistem Pinjaman ............................. 50
3.2.1.3.1.6 Sistem Angsuran ............................. 52
3.2.1.3.2 Sistem Berkas ...................................................... 54
3.2.1.3.3 Sistem Laporan .................................................... 56
3.2.1.3.4 Proses Mengubah Password ................................ 60
3.2.1.3.5 Proses Menampilkan Log Request ..................... 60
3.2.2 Desain Database
3.2.2.1 Conceptual Design (ER Diagram)………………………….. 61
3.2.2.2 Logical Design …………………………………………….. 64
3.2.2.3 Physical Design
3.2.2.3.1 Tabel Akun .......................................................... 68
3.2.2.3.2 Tabel Alokasi_dana ……………………………. 68
xvii
3.2.2.3.3 Tabel Anggota .................................................... 68
3.2.2.3.4 Tabel Angsuran ................................................... 69
3.2.2.3.5 Tabel Berkas Berita Acara Pengembalian
Barang ................................................................. 69
3.2.2.3.6 Tabel Berkas Berita Serah Terima Jaminan ......... 70
3.2.2.3.7 Tabel Berkas Hasil Peninjauan ............................ 71
3.2.2.3.8 Tabel Berkas Permohonan Kredit ........................ 72
3.2.2.3.9 Tabel Berkas Surat Alokasi Dana ........................ 73
3.2.2.3.10 Tabel Berkas Surat Kuasa Kendaraan ............... 74
3.2.2.3.11 Tabel Berkas Surat Kuasa Tanah ....................... 74
3.2.2.3.12 Tabel Berkas Surat Perjanjian ............................ 75
3.2.2.3.13 Tabel Data Koperasi ........................................... 76
3.2.2.3.14 Tabel Instansi ...................................................... 76
3.2.2.3.15 Tabel Jaminan Kendaraan .................................. 76
3.2.2.3.16 Tabel Jaminan Tanah .......................................... 77
3.2.2.3.15 Tabel Jurnal Transaksi ........................................ 77
3.2.2.3.16 Tabel Log Login ................................................. 78
3.2.2.3.17 Tabel Log Request .............................................. 78
3.2.2.3.18 Tabel Pinjaman ................................................... 79
3.2.2.3.19 Tabel Tabungan Pokok ....................................... 79
3.2.2.3.20 Tabel Tabungan Sukarela ................................... 80
3.2.2.3.21 Tabel Tabungan Wajib ....................................... 80
xviii
3.2.2.3.22 Tabel User Koperasi ........................................... 81
3.2.3 Design User Interface
3.2.3.1 Form Setting IP ............................................................................. 82
3.2.3.2 Form Login ................................................................................... 82
3.2.3.3 Sistem Admin
3.2.3.3.1 Form User Sistem ........................................................ 82
3.2.3.3.2 Form User Sistem Cari ................................................ 83
3.2.3.4 Sistem Manager
3.2.3.4.1 Form Data Koperasi ..................................................... 84
3.2.3.4.2 Form Instansi ............................................................... 84
3.2.3.4.3 Form Instansi Cari ....................................................... 85
3.2.3.4.4 Form Penyetujuan Pinjaman ........................................ 85
3.2.3.4.5 Form Pinjaman ............................................................. 86
3.2.3.4.6. Form List Pinjaman ...................................................... 86
3.2.3.5 Sistem Petugas
3.2.3.5.1 Transaksi
3.2.3.5.1.1 Form Anggota .......................................... 87
3.2.3.5.1.2 Form Tabungan Wajib ............................. 87
3.2.3.5.1.3 Form Tabungan Sukarela ......................... 88
3.2.3.5.1.4 Form Penarikan Tabungan ....................... 88
3.2.3.5.1.5 Form Pinjaman Cari ................................. 89
3.2.3.5.1.6 Form Angsuran ........................................ 89
xix
3.2.3.5.2 Berkas
3.2.3.5.2.1 Form Berkas Permohonan Kredit ............ 90
3.2.3.5.2.2 Form Berkas Hasil Peninjauan ................ 91
3.2.3.5.2.3 Form Berkas Surat Perjanjian Kredit ...... 91
3.2.3.5.2.4 Form Berkas Serah Terima Jaminan ....... 92
3.2.3.5.2.5 Form Berkas Surat Kuasa Kendaraan ..... 92
3.2.3.5.2.6 Form Berkas Surat Kuasa Tanah ............ 93
3.2.3.5.2.7 Form Berkas Surat Kuasa Alokasi Dana . 93
3.2.3.5.2.8 Form Berkas Berita Pengembalian
Barang ..................................................... 94
3.2.3.5.3 Laporan
3.2.3.5.3.1 Form Laporan Peranggota ....................... 94
3.2.3.5.3.2 Form Laporan Tabungan ......................... 95
3.2.3.5.3.3 Form Laporan Pinjaman .......................... 95
3.2.3.5.3.4 Form Laporan Angsuran ......................... 96
3.2.3.5.3.5 Form Laporan Harian .............................. 96
3.2.3.5.3.5 Form Laporan Neraca ............................. 97
3.2.3.5.3.6 Form Laporan Rugi Laba ........................ 97
3.2.4 Desain Input
3.2.4.1. Kode Anggota ................................................................................ 98
3.2.4.2 Kode Tabungan Pokok ................................................................. 98
3.2.4.3 Kode Tabungan Wajib ................................................................... 98
xx
3.2.4.4 Kode Tabungan Sukarela ............................................................... 99
3.2.4.5 Kode Pinjaman ............................................................................... 99
3.2.4.6 Kode Angsuran ............................................................................... 99
3.2.4.7 Kode Berkas Permohonan Kredit ................................................... 100
3.2.4.8 Kode Berkas Hasil Peninjauan ....................................................... 100
3.2.4.9 Kode Berkas Surat Perjanjian ........................................................ 100
3.2.4.10 Kode Berkas Surat Kuasa Alokasi Dana ....................................... 101
3.2.4.11 Kode Berkas Surat Kuasa Kendaraan ........................................... 101
3.2.4.12 Kode Berkas Surat Kuasa Tanah .................................................. 101
3.2.4.13 Kode Berkas Berita Serah Terima Jaminan .................................. 102
3.2.4.14 Kode Berkas Berita Pengembalian Barang ................................... 102
3.2.5 Desain Output
3.2.5.1 Slip Pembayaran Tabungan Pokok ................................................ 103
3.2.5.2 Slip Pembayaran Tabungan Wajib................................................ 103
3.2.5.4 Slip Penarikan Tabungan ............................................................... 104
3.2.5.3 Slip Pembayaran Tabungan Sukarela ............................................ 104
3.2.5.5 Slip Penerimaan Uang ................................................................... 105
3.2.5.6 Slip Penerimaan Bersih .................................................................. 105
3.2.5.7 Slip Alokasi Dana .......................................................................... 106
3.2.5.8 Slip Angsuran ................................................................................ 106
3.2.5.9 Slip Angsuran yang Menggunakan Alokasi Dana ........................ 107
3.2.5.10 Berkas Permohonan Kredit ……………………………………... 108
xxi
3.2.5.11 Berkas Hasil Peninjauan................................................................ 109
3.2.5.12 Berkas Surat Perjanjian Kredit ..................................................... 111
3.2.5.13 Berkas Surat Kuasa Tanah ............................................................ 114
3.2.5.14 Berkas Surat Kuasa Kendaraan .................................................... 115
3.2.5.15 Berkas Surat Kuasa Alokasi Dana ................................................ 116
3.2.5.16 Berkas Berita Serah Terima Jaminan ........................................... 117
3.2.5.17 Berkas Berita Acara Pengembalian Barang ................................. 118
3.2.5.18 Laporan Harian ............................................................................. 119
3.2.5.19 Laporan Tabungan ........................................................................ 120
3.2.5.20 Laporan Pinjaman ......................................................................... 120
3.2.5.21 Laporan Angsuran ......................................................................... 120
3.2.5.22 Laporan Perseorangan .................................................................. 121
3.2.5.23 Laporan Rugi Laba ……………………………………………… 121
3.2.5.24 Laporan Neraca …………………………………………………. 122
BAB IV IMPLEMENTASI SISTEM
4.1. Spesifikasi software dan hardware yang digunakan ………………………... 123
4.2. Pembuatan Database ………………………………………………………... 123
4.3. Seting User Database ...................................................................................... 125
4.4. Koneksi Java dan MySQL ............................................................................... 126
4.5. Pembuatan Antar Muka (User Interface) ........................................................ 127
4.6. Skenario Penggunaan Sistem ........................................................................... 161
4.6.1. Skenario Pendaftaran Anggota ............................................................ 161
xxii
4.6.2. Skenario Tabungan Wajib ................................................................... 162
4.6.3. Skenario Tabungan Sukarela .............................................................. 164
4.6.4. Skenario Penarikan Tabungan ............................................................ 164
4.6.5. Skenario Pinjaman ............................................................................... 165
4.6.6. Skenario Angsuran .............................................................................. 165
4.6.7. Skenario Berkas ................................................................................... 166
4.6.8. Skenario Laporan ................................................................................ 166
BAB V ANALISIS HASIL
5.1 Pengujian Aplikasi .......................................................................................... 167
5.2 Analisis Transaksi (Locking) .......................................................................... 170
5.3 Kelebihan dan Kekurangan Sistem
5.3.1 Kelebihan Sistem ……………………………………………………. 177
5.3.2 Kekurangan Sistem …………………………………………………. 177
BAB VI PENUTUP
6.1 Kesimpulan …………………………………………………………………. 178
6.2 Saran ………………………………………………………………………... 178
DAFTAR PUSTAKA ……………………………………………………………. 179
xxiii
DAFTAR GAMBAR Gambar Keterangan Halaman
2.1 Gambar Komponen Client/Server 7 2.2 Gambar Siklus Transaksi 14 3.1 Gambar Use Case Diagram Secara Umum. 23 3.2 Gambar Use Case Diagram Sistem Admin. 24 3.3 Gambar Use Case Diagram Data 24 3.4 Gambar Use Case Diagram Penyetujuan Pinjaman 25 3.5 Gambar Use Case Diagram Ganti Password 25 3.6 Gambar Use Case Diagram Log Request 25 3.7 Gambar Use Case List Pinjaman 26 3.8 Gambar Use Case Diagram Keanggotaan 26 3.9 Gambar Use Case Diagram Tabungan Wajib 27 3.10 Gambar Use Case Diagram Tabungan Sukarela 27 3.11 Gambar Use Case Diagram Penarikan Tabungan 28 3.12 Gambar Use Case Diagram Pinjaman 28 3.13 Gambar Use Case Diagram Angsuran. 29 3.14 Gambar Use Case Diagram Pembuatan Laporan 29 3.15 Gambar Use Case Diagram Pembuatan Berkas 30 3.16 Gambar Use Case Diagram Ganti Password. 30 3.17 Gambar Use Case Diagram Log Request Petugas 30 3.18 Gambar Class Diagram I 31 3.19 Gambar Class Diagram 2 32 3.20 Gambar Class Diagram 3 33 3.21 Gambar Class Diagram 4 34 3.22 Gambar Sequence Diagram Proses Menambah Data User 35 3.23 Gambar Sequence Diagram Proses Mencari Data User 35 3.24 Gambar Sequence Diagram Proses Menghapus Data User 36 3.25 Gambar Sequence Diagram Proses Mengupdate Data
Koperasi 36
3.26 Gambar Sequence Diagram Proses Menambah Data Instansi 37 3.27 Gambar Sequence Diagram Proses Mencari Data Instansi 37 3.28 Gambar Sequence Diagram Proses Mengubah Data Instansi 38 3.29 Gambar Sequence Diagram Proses Mencari Data Berkas
Hasil Peninjauan 38
3.30 Gambar Sequence Diagram Proses Menampilkan Data Berkas Hasil Peninjauan
39
3.31 Gambar Sequence Diagram Proses Menambah Data Pinjaman 39 3.32 Gambar Sequence Diagram Proses Mengubah Password 40
xxiv
3.33 Gambar Sequence Diagram Proses Menampilkan Log Request Manager
40
3.34 Gambar Sequence Diagram Proses Mencari List Pinjaman 41 3.35 Gambar Sequence Diagram Proses Mencetak List Pinjaman 41 3.36 Gambar Sequence Diagram Proses Menambah Data 42 3.37 Gambar Sequence Diagram Proses Mencari Data Anggota 42 3.38 Gambar Sequence Diagram Proses Mengubah Data Anggota 43 3.39 Gambar Sequence Diagram Proses Menghapus Data Anggota 43 3.40 Gambar Sequence Diagram Proses Mencetak Slip Tabungan
Pokok 44
3.41 Gambar Sequence Diagram Proses Menambah Data Tabungan Wajib
44
3.42 Gambar Sequence Diagram Proses Mencari Data Tabungan Wajib
45
3.43 Gambar Sequence Diagram Proses Mengubah Data Tabungan Wajib
45
3.44 Gambar Sequence Diagram Proses Mencetak Slip Tabungan Wajib 46 3.45 Gambar Sequence Diagram Proses Menambah Data
Tabungan Sukarela 46
3.46 Gambar Sequence Diagram Proses Mencari Data Tabungan Sukarela
47
3.47 Gambar Sequence Diagram Proses Mengubah Data Tabungan Sukarela
47
3.48 Gambar Sequence Diagram Proses Mencetak Slip Tabungan Sukarela
48
3.49 Gambar Sequence Diagram Proses Menambah Data Penarikan Tabungan
48
3.50 Gambar Sequence Diagram Proses Mencari Data Penarikan Tabungan
49
3.51 Gambar Sequence Diagram Proses Mengubah Data Penarikan Tabungan
49
3.52 Gambar Sequence Diagram Proses Mencetak Slip Penarikan Tabungan
50
3.53 Gambar Sequence Diagram Proses Mencetak Slip Penerimaan Bersih
50
3.54 Gambar Sequence Diagram Proses Mencetak Slip Penerimaan Uang
51
3.55 Gambar Sequence Diagram Proses Mencari Data Pinjaman 51 3.56 Gambar Sequence Diagram Proses Menambah Data
Angsuran 52
3.57 Gambar Sequence Diagram Proses Menambah Data Alokasi Dana
52
xxv
3.58 Gambar Sequence Diagram Proses Mencetak Slip Angsuran 53 3.59 Gambar Sequence Diagram Proses Mencetak Slip Alokasi
Dana 53
3.60 Gambar Sequence Diagram Proses Mencari Data Angsuran 54 3.61 Gambar Sequence Diagram Proses Menambah Data Berkas 54 3.62 Gambar Sequence Diagram Proses Mencari Data Berkas 55 3.63 Gambar Sequence Diagram Proses Mengubah Data Berkas 55 3.64 Gambar Sequence Diagram Proses Mencetak Data Berkas 56 3.65 Gambar Sequence Diagram Proses Membuat Laporan
Tabungan 56
3.66 Gambar Sequence Diagram Proses Membuat Laporan Harian 57 3.67 Gambar Sequence Diagram Proses Membuat Laporan
Pinjaman 57
3.68 Gambar Sequence Diagram Proses Membuat Laporan Angsuran
58
3.69 Gambar Sequence Diagram Proses Membuat Laporan Rugi Laba
58
3.70 Gambar Sequence Diagram Proses Membuat Laporan Neraca 59 3.71 Gambar Sequence Diagram Proses Membuat Laporan
Perseorangan 59
3.72 Gambar Sequence Diagram Proses Mengubah Password 60 3.73 Gambar Sequence Diagram Proses Menampilkan Log Request 60 3.74 Gambar ER Diagram 1 61 3.75 Gambar ER Diagram 2 61 3.76 Gambar ER Diagram 3 62 3.77 Gambar ER Diagram 4 63 3.78 Gambar Logical Design 1 64 3.79 Gambar Logical Design 2 65 3.80 Gambar Logical Design 3 66 3.81 Gambar Logical Design 4 67 3.82 Gambar Form Seeting IP 82 3.83 Gambar Form Login 82 3.84 Gambar Form User Admin 82 3.85 Gambar Form User Admin Cari 83 3.86 Gambar Form Data Koperasi 84 3.87 Gambar Form Instansi 84 3.88 Gambar Form Instansi Cari 85 3.89 Gambar Form Penyetujuan Pinjaman 85 3.90 Gambar Form Pinjaman 86 3.91 Gambar Form List Pinjaman 86 3.92 Gambar Form Anggota 87
xxvi
3.93 Gambar Form Tabungan Wajib 87 3.94 Gambar Form Tabungan Sukarela 88 3.95 Gambar Form Penarikan Tabungan 88 3.96 Gambar Form Pinjaman Cari 89 3.97 Gambar Form Angsuran 89 3.98 Gambar Form Berkas Permohonan Kredit 90 3.99 Gambar Form Berkas Hasil Peninjauan 91 3.100 Gambar Form Surat Perjanjian Kredit 91 3.101 Gambar Form Berkas Serah Terima Jaminan 92 3.102 Gambar Form Berkas Surat Kuasa Kendaraan 92 3.103 Gambar Form Berkas Surat Kuasa Kendaraan 93 3.104 Gambar Form Berkas Surat Kuasa Alokasi Dana 93 3.105 Gambar Form Berkas BeritaPpengembalian Barang 94 3.106 Gambar Form Laporan Peranggota 94 3.107 Gambar Form Laporan Tabungan 95 3.108 Gambar Form Laporan Pinjaman 96 3.109 Gambar Form Laporan Angsuran 97 3.110 Gambar Form Laporan Harian 98 3.111 Gambar Form Laporan Neraca 99 3.112 Gambar Form Laporan Rugi Laba 100 3.113 Gambar Desain Slip PembayaranTabungan Pokok 103 3.114 Gambar Desain Slip PembayaranTabungan Wajib 103 3.115 Gambar Desain Slip PembayaranTabungan Sukarela 104 3.116 Gambar Desain Slip Penarikan Tabungan 104 3.117 Gambar Desain Slip Penerimaan Uang 105 3.118 Gambar Desain Slip Penerimaan Bersih 105 3.119 Gambar Desain Slip Alokasi Dana 106 3.120 Gambar Desain Slip Angsuran 106 3.121 Gambar Desain Slip Angsuran yang Menggunakan Alokasi Dana 107 3.122 Gambar Desain Berkas Permohonan Kredit 108 3.123 Gambar Desain Berkas Hasil Peninjauan 109 3.124 Gambar Desain Berkas Surat Perjanjian Kredit 111 3.125 Gambar Desain Berkas Surat Kuasa Tanah 114 3.126 Gambar Desain Berkas Surat Kuasa Kendaraan 115 3.127 Gambar Desain Berkas Surat Kuasa Alokasi Dana 116 3.128 Gambar Desain Berkas Berita Acara Serah Terima Jaminan 117 3.129 Gambar Desain Berkas Berita Acara Pengembalian Barang 118 3.130 Gambar Desain Laporan Keuangan 119 3.131 Gambar Desain Laporan Tabungan 120 3.132 Gambar Desain Laporan Pinjaman 120 3.133 Gambar Desain Laporan Angsuran 120
xxvii
3.134 Gambar Desain Laporan Perseorangan 121 3.135 Gambar Desain Laporan Rugi Laba 121 3.316 Gambar Desain Laporan Neraca 122 3.317 Gambar List Pinjaman Anggota 122 4.1 Gambar Form Setting IP 128 4.2 Gambar Form Login 128 4.3 Gambar Form Menu Utama Admin 129 4.4 Gambar Form Menu Utama Manager dan Petugas 130 4.5 Gambar Form Keanggotaan 131 4.6 Gambar Form Tabungan Wajib 132 4.7 Gambar Form Tabungan Sukarela 140 4.8 Gambar Form Penarikan Tabungan 145 4.9 Gambar Form Angsuran 149 4.10 Gambar Form Berkas Permohonan Kredit 155 4.11 Gambar Form Laporan Neraca 160 5.1 Contoh Hasil Menampilkan Data Sebanyak 10.000 record 168 5.2 Form Tabungan Wajib Client A 171 5.3 Form Tabungan Wajib Client B 172 5.4 Gambar Form Tabungan Wajib Cleint A (Berhasil) 173 5.5 Gambar Form Tabungan Wajib Cleint B 173
xxviii
DAFTAR TABEL Tabel Keterangan Halaman
2.1 Tabel Non-Serial Schedule 18 3.1 Struktur Tabel akun 68 3.2 Struktur Tabel Alokasi_dana 68 3.3 Struktur Tabel Anggota 68 3.4 Struktur Tabel Angsuran 69 3.5 Struktur Tabel Berkas_berita_acara_pengembalian_barang 70 3.6 Struktur Tabel berkas_berita_serah_terima_jaminan 70 3.7 Struktur Tabel Berkas_hasil_peninjauan 71 3.8 Struktur Tabel Berkas_permohonan_kredit 72 3.9 Struktur Tabel Berkas_surat_alokasi_dana 73 3.10 Struktur Tabel Berkas_surat_kuasa_kendaraan 74 3.11 Struktur Tabel Berkas_surat_kuasa_tanah 74 3.12 Struktur Tabel Berkas_surat_perjanjian 75 3.13 Struktur Tabel Data_koperasi 76 3.14 Struktur Tabel Instansi 76 3.15 Struktur Tabel Jaminan Kendaraan 76 3.16 Struktur Tabel Jaminan Tanah 77 3.17 Struktur Tabel Jurnal_transaksi 77 3.18 Struktur Tabel Log_login 78 3.19 Struktur Tabel Log_request 78 3.20 Struktur Tabel Pinjaman 79 3.21 Struktur Tabel Tabungan_pokok 79 3.22 Struktur Tabel Tabungan_sukarela 80 3.23 Struktur Tabel Tabungan_wajib 80 3.24 Struktur Tabel User_koperasi 81 3.25 Tabel Desain Input Kode Anggota 98 3.26 Tabel Desain Input Kode Tabungan Pokok 98 3.27 Tabel Desain Input Kode Tabungan Wajib 98 3.28 Tabel Desain Input Kode Tabungan Sukarela 99 3.29 Tabel Desain Input Kode Pinjaman 99 3.30 Tabel Desain Input Kode Angsuran 99 3.31 Tabel Desain Input Kode Berkas Permohonan Kredit 100 3.32 Tabel Desain Input Kode Berkas Hasil Peninjauan 100 3.33 Tabel Desain Input Kode Berkas Surat Perjanjian 100 3.34 Tabel Desain Input Kode Berkas Surat Kuasa Alokasi Dana 101 3.35 Tabel Desain Input Kode Berkas Surat Kuasa Kendaraan 101 3.36 Tabel Desain Input Kode Berkas Surat Kuasa Tanah 101
xxix
3.37 Tabel Desain Input Kode Berkas Berita Serah Terima Jaminan 102 3.38 Tabel Desain Input Kode Berkas Berita Pengembalian Barang 102 4.1 Tabel Penyimpanan Tabungan Wajib 1 164 4.2 Tabel Penyimpanan Tabungan Wajib 2 164 5.1 Tabel Hasil Percobaan Menampilkan Data 169 5.2 Tabel Hasil Percobaan Menggunakan Aplikasi yang
Menggunakan Locking dan yang Tidak di Server 175
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Perkembangan teknologi yang pesat telah menyebabkan perubahan besar
dalam operasi suatu organisasi termasuk di dalamnya adalah koperasi. Salah satu
teknologi yang paling diminati saat ini adalah teknologi client/server database.
Dengan menggunakan teknologi tersebut, beberapa client dapat mengakses database
secara bersamaan, sehingga mempercepat proses transaksi.
Koperasi Simpan Pinjam Bintang Jaya merupakan salah satu koperasi yang
telah memanfaatkan teknologi informasi untuk menunjang semua kegiatan yang ada.
Pada koperasi ini terdapat empat buah transaksi utama yang bisa dilakukan oleh
anggota koperasi yaitu pendaftaran anggota, tabungan, pinjaman dan pembayaran
angsuran. Pencatatan ke empat transaksi tersebut dilakukan hanya dengan
menggunakan satu komputer. Oleh karena itu, jika ada beberapa anggota koperasi
yang ingin melakukan beberapa transaksi sekaligus, keadaan tersebut akan menjadi
masalah karena proses pelayanan terhadap anggota koperasi akan lama (tidak efisien).
Untuk mengatasi masalah tersebut, akan dibangun suatu sistem informasi
koperasi simpan pinjam yang menggunakan teknologi client/server database. Sistem
ini terdiri dari satu buah komputer server untuk menyimpan data dan beberapa
1
2
komputer client, sehingga diharapkan dapat memperbaki proses pelayanan terhadap
anggota koperasi.
1.2 Rumusan Masalah
Dari latar belakang yang telah dikemukakan dapat diperoleh rumusan
masalah, yaitu bagaimana membuat program aplikasi yang menggunakan teknologi
client server database untuk Koperasi Simpan Pinjam Bintang Jaya.
1.3 Batasan Masalah
Adapun batasan masalah dalam penulisan skripsi ini adalah:
1. Hanya membatasi proses transaksi pendaftaran anggota, tabungan,
pinjaman, angsuran, pembuatan laporan dan pembuatan berkas-berkas.
2. Sistem ini hanya boleh digunakan oleh petugas koperasi, manager dan
admin.
3. Teknologi yang digunakan adalah Java dan MySQL 5.
1.4 Tujuan dan Manfaat Penelitian
Tujuan dari penelitian ini adalah membangun suatu sistem informasi
koperasi simpan pinjam yang berbasis client/server database pada Koperasi Simpan
Pinjam Bintang Jaya. Adapun manfaat dari penelitian ini adalah dapat membantu
kelancaran proses transaksi pada Koperasi Simpan Pinjam Bintang Jaya.
3
1.5 Metodologi Pengembangan Sistem
Adapun metodologi yang digunakan adalah sebagai berikut:
a. Studi literatur
1. Mempelajari dan memahami konsep client/server database, Java dan
MySQL
2. Mempelajari cara kerja dari sistem lama.
b. Melakukan tahapan-tahapan pengembangan sistem berorientasi objek yaitu
dengan :
1. Menganalisa permasalahan dan kebutuhan dari sistem lama dengan
menggunakan teknik wawancara dan sampling document
2. Merancang sistem baru, membuat usecase diagram, membuat
sequence diagram, membuat class diagram, merancang database,
merancang user interface. merancang input dan output.
3. Membuat program sesuai dengan rancangan.
4. Menguji program
4
1.6 Sistematika Penulisan
Penelitian ini disusun dalam bentuk laporan, dengan sistematika penulisan
yang terdiri dari :
BAB I PENDAHULUAN
Berisi latar belakang masalah, rumusan masalah, batasan masalah, tujuan
penelitian, metodologi penelitian dan sistematika penulisan.
BAB II LANDASAN TEORI
Berisi landasan teori yang dipakai sebagai dasar pembuatan analisis,
perancangan dan implementasi program. Dalam bab ini berisi sedikit
penjelasan mengenai sistem informasi, client/server, transaksi dan
concurency control, metodologi pengembangan sistem berorientasi objek,
pemrograman berorientasi object menggunakan java, JDBC, dan MySQL.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Berisi analisa dari sistem lama dan sistem baru, membuat use case diagram,
class diagram, sequence diagram, merancang database, merancang user
interface, merancang input dan output.
BAB IV IMPLEMENTASI SISTEM
Berisi penjelasan mengenai proses implementasi perangkat lunak sesuai
dengan analisis dan rancangan yang dikembangkan.
BAB V ANALISIS HASIL
Berisi analisis hasil implementasi dari sistem baru serta apa saja kelebihan
dan kekurangan dari sistem baru tersebut.
5
BAB VI PENUTUP
Berisi jawaban berupa kesimpulan singkat tentang rumusan masalah yang
telah dikemukakan pada BAB I dan berisi saran-saran yang nantinya dapat
digunakan untuk pengembagan sistem selanjutnya.
6
BAB II
LANDASAN TEORI
2.1 Sistem Informasi
Menurut Whitten (2004), Sistem Informasi adalah pengaturan orang, data,
proses serta teknologi informasi yang berinteraksi unutk mengumpulkan, memproses,
menyimpan dan menyediakan suatu informasi yang diperlukan untuk mendukung
organisasi. Sistem informasi banyak digunakan dalam organisasi untuk meningkatkan
kemampuan memperoleh manfaat ataupun competitive advantage.
2.2 Client/server
Menurut Budi (2006), Client Server merupakan model konektivitas pada
jaringan yang membedakan fungsi komputer apakah sebagai client atau server. Client
Server ini menempatkan sebuah komputer sebagai server yang bertugas memberikan
layanan pada terminal-terminal lain (client) yang terhubung dalam sistem jaringan itu.
Server dapat bertugas untuk memberikan layanan share file (file server), printer
(printer server), jalur komunikasi (server komunikasi). Client/server memungkinkan
suatu aplikasi dapat diakses secara bersamaan dan dalam waktu yang bersamaan.
Pada arsitektur jaringan ini, client tidak dapat berfungsi sebagai server, tetapi
server dapat berfungsi sebagai client (server non-dedicated). Namun hal ini dihindari
agar arsitektur jaringan Client Server tidak berubah menjadi arsitektur jaringan Peer
to Peer (P2P).
6
7
Middleware
Dalam jaringan client/server, terjadi pembagian tugas antara komputer client dan
komputer server. Komputer client digunakan untuk melakukan permintaan,
sedangkan komputer server berfungsi untuk mengolah permintaan dari client dan
mengembalikan hasilnya pada client yang meminta. Prinsip kerja jaringan ini sebagai
berikut, dimana server menunggu permintaan dari client, memproses dan
memberikan hasilnya pada client, sedangkan client akan mengirimkan permintaan ke
server, menunggu proses dan melihat visualisasi hasil prosesnya. Sistem Client
Server ini tidak hanya diperuntukan bagi pembangunan sistem jaringan komputer
lokal, melainkan juga pembangunan jaringan komputer skala luas Sistem ini
menggunakan protokol utama Transmission Control Protokol/Internet
Protokol(TCP/IP).
2.2.1 Komponen Client Server
Pada dasarnya, Client Server dibentuk oleh tiga komponen dasar, yaitu client,
middleware,dan server seperti yang terlihat pada Gambar 2.1.
Client Server
Permintaaan
Layanan
Gambar 2.1. Gambar Komponen Client/Server
8
1. Client
Client merupakan terminal yang digunakan oleh operator untuk meminta
layanan tertentu yang dibutuhkan. Terminal client dapat berupa PC, ponsel,
komunikator, robot, televisi dan peralatan lain yang membutuhkan informasi .
2. Middleware
Middleware merupakan komponen perantara yang memungkinkan client dan
server untuk saling terhubung dan berkomunikasi satu sama yang lain.
Middleware memiliki peran yang strategis karena dengan adanya middleware
maka client dapat mengirimkan pesan atau permintaan kepada server,
menterjemahkan pesan dari client agar dapat dimengerti oleh server,
menterjemahkan hasil proses dari server agar dapat dipahami oleh client dan
mengirimkan hasil proses yang telah diterjemahkan kembali ke client
3. Server
Server merupakan pihak yang menyediakan layanan. Secara umum, server
berperan menerima pesan permintaan layanan dari client, memproses
permintaan tersebut dan mengirimkan hasil permintaan kepada client.
2.2.2 Karakteristik Client/Server
1. Berbasis Layanan
Server memberikan sejumlah layanan yang dibutuhkan dan diminta oleh
client, antara lain: berbagi pakai berkas, data, peralatan pendukung, dan lain-
lain.
9
2. Sumber daya yang digunakan bersama
Server mengelola sejumlah sumber daya yang dimilikinya agar dapat diakses
dan digunakan secara bersama-sama oleh terminal-terminal client yang
terhubung pada server.
3. Hubungan dan interaksi client/server
Hubungan yang terjadi antara server dan client adalah one to many yang
berarti satu server melayani banyak client. Dimana client meminta layanan
sedangkan server menanti permintaan layanan secara pasif.
4. Client tidak perlu mengetahui lokasi fisik server.
Server dapat terletak di berbagai lokasi yang belum tentu diketahui oleh
client. Walaupun demikian, client tetap dapat mengakses server untuk
mendapatkan layanan sesuai kebutuhannya.
5. Pertukaran berbasis pesan
Mekanisme dari Client Server berdasar pada pertukaran pesan. Pesan yang
dipertukarkan ialah permintaan layanan dan umpan balik dari permintaan
layanan tersebut.
6. Enkapsulasi layanan
Client tidak perlu mengetahui proses pengolahan permintaan yang terjadi
dalam server sehingga client tidak dapat mengontrol proses pengolahan
permintaan.
10
7. Skalabilitas
Skalabilitas ialah kemampuan untuk diperbesar dan diperkecil. Ukuran sistem
Client Server dapat diubah secara horizontal maupun vertikal berarti
berpindah ke server yang lebih besar atau lebih cepat atau mendistribusikan
tugas melayani client ke beberapa server . pengubahan horizontal berarti
menambah atau mengurangi jumlah client.
8. Konsistensi data
Data hanya dikelola pada server pusat sehingga konsistensi dan data lebih
terjamin dan biaya pemeliharaan pun menjadi lebih murah.
2.2.3 Arsitektur Client/Server
Arsitektur client/server memiliki beberapa model yang dapat digunakan, diantaranya
yaitu :
1. Model two-tier
Model ini terdiri dari dua tingkat, yaitu presentation layer dan database layer.
Berjalan pada mesin client, presentation layer berfungsi sebagai antarmuka
sistem dengan pengguna dan juga berfungsi sebagai tempat pengolahan informasi
(aplikasi). Tingkat yang kedua adalah database layer. Database adalah pusat
penyimpanan data. Berjalan di mesin server, database diatur dan diorganisasikan
oleh Database Management Sistem (DBMS). Database layer memberikan
layanan data kepada presentation layer yang terdapat pada mesin
Model arsitektur ini dapat dikelompokan menjadi dua macam, yaitu Thin Client-
Thick Server dan Thick Client –Thin Server.
11
a. Thin Client-Thick Server
Pada arsitektur ini, client menjalankan satu fungsi, yaitu sebagai penyaji dari
tampilan aplikasi dan data yang diakses dari server. Hal ini berarti beban
server lebih tinggi dan server menjadi titik kritis dari sistem jaringan tersebut,
dimana server harus memberikan layanan penggunaan bersama aplikasi-
aplikasi(Aplication Server) dan data (Data atau File Server) kepada semua
client yang terhubung kepadanya.
b. Thick Client –Thin Server
Arsitektur ini sedikitnya memberi dua peran bagi client, dimana client tidak
hanya berperan sebagai penyaji interface saja, melainkan juga berfungsi
mengoperasikan aplikasi. Sementara itu, server hanya bertugas untuk
mengelola data saja sehingga beban client bertambah.
2. Model Three-tier
Three Tier merupakan arsitektur Client Server yang memisahkan antara data
(Data Management Tier), aplikasi (Middle Tier) dan penyajian (Presentation
Layer). Three Tier juga berfungsi untuk mengoptimalkan penggunaan sistem
jaringan internet, yang memungkinkan untuk menyediakan layanan transaksi
selama 24 jam dengan sekala yang luas hingga mancanegara
3. Model n-tier
Dalam perkembangan berikutnya, muncul istilah n-Tier dimana sebuah aplikasi
client server dibagi-bagi menjadi beberapa layer atau lapisan. Istilah n-Tier
menunjukan banyaknya lapisan yang ada dalam sebuah aplikasi. Sebuah aplikasi
12
terdiri dari beberapa komponen utama, yaitu lapisan Presentation(Presentation
Layer), lapisan Application(Application Layer) atau logika bisnis(Bussiness Logic
Layer) dan lapisan data(data layer).
2.3 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 multiuser (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 :
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.
13
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:
a. SELECT
Perintah ini digunakan untuk melihat data dalam tabel.
b. INSERT
Perintah ini digunakan untuk menambah data ke suatu tabel.
c. UPDATE
Perintah ini digunakan untuk mengubah suatu data dalam suatu tabel.
d. DELETE
Perintah ini digunakan untuk menghapus data dalam suatu table
14
2.4 Transaksi dan Concurency Control
2.4.1 Transaksi
Menurut Connoly (2002), transaksi dalam database adalah aktifitas atau
serangkaian aktifitas yang dilakukan oleh seorang user atau program aplikasi untuk
membaca atau merubah isi database. Transaksi dapat berupa bagian program,
keseluruhan program atau perintah tunggal seperti INSERT, dan UPDATE.
Sebuah transaksi atau lebih pasti membawa perubahan pada database. Dari
proses yang berlangsung, transaksi dikatakan berhasil jika seluruh rutin perintah
dalam transaksi selesai dilakukan tanpa ada gangguan (commit). Sebaliknya, jika dari
rutin program ada dalam sebuah transaksi tidak dapat dilakukan, maka transaksi akan
dibatalkan dengan mengembalikan kondisi database ke kondisi awal sebelum
transaksi dilakukan (roll back). Siklus transaksi dalam database dapat dilihat pada
Gambar 2.2.
Gambar 2.2. Gambar Siklus Transaksi
15
Bagan tersebut menunjukkan diagram status transaksi sebuah transaksi. Untuk
mengetahui status yang jelas dari ACTIVE, COMMITTED, dan ABORTED, terdapat
dua buah keadaan yaitu:
1. PARTIALLY COMMITTED
Terjadi setelah statement terakhir dieksekusi, yang mungkin ditemukan bahwa
transaksi telah dilanggar berkali-kali dan transaksi harus dibatalkan, atau sistem
akan mengagalkan transaksi dan mungkin data yang diupdate belum tersimpan
pada penyimpanan sekunder
2. FAILED
Terjadi jika transaksi tidak dapat dilakukan, atau transaksi dibatalkan pada saat
keadaan ACTIVE, hal tersebut bisa disebabkan oleh user yang dengan sengaja
membatalkan transaksi atau dengan penyetujuan protokol untuk membatalkan
transaksi.
2.4.2 Concurency Control
Concurency control merupakan proses untuk mengatur operasi-operasi yang
terjadi secara simultan (bersama-sama) dalam database, tanpa membuat operasi-
operasi tersebut saling mencampuri satu sama lain. Salah satu tujuan utama
mengembangkan database adalah agar banyak user dapat mengakses data yang
dishare secara bersama-sama dalam waktu yang bersamaan. Akses yang bersamaan
ini relatif lebih mudah jika semua user melakukan pembacaan data, sehingga user
tidak dapat saling mencampuri satu sama lain.
16
Beberapa masalah yang disebabkan oleh concurency, yaitu :
1. The Lost Update Problem
Lost update problem adalah bahwa suatu operasi update yang lengkap dan
sukses dilakukan oleh seorang user, dapat ditimpa (overriden) oleh user yang
lain.
2. The Uncommitted Dependency Problem
Uncommitted Dependency (or dirty read) Problem adalah bahwa ketika
terjadi suatu transaksi diperbolehkan untuk melihat transaksi lain sebelum
transaksi tersebut mencapai commit.
3. The Inconsistent Analysis Problem
Inconsistent Analysis Problem adalah masalah yang terjadi ketika suatu
transaksi membaca nilai dari database tetapi transaksi kedua meng-update
beberapa dari nilai tersebut selama eksekusi yang pertama berjalan.
2.4.3 Serializability
Dari ketiga potensi masalah tersebut, penyebab utamanya adalah terjadi akses
terhadap data di dalam database pada saat yang bersamaan dimana terjadi perbedaan
operasi pada masing-masing transaksi.
Sebagai pemecahan, pengaturan yang dilakukan concurency control adalah
membuat schedule transaksi sehingga eksekusi satu transaksi diperbolehkan hanya
jika tidak ada transaksi lain yang sedang berjalan, atau secara keseluruhan transaksi
sebelumnya benar-benar dinyatakan selesai (committed). Dengan catatan bahwa
transaksi-transaksi tersebut mengakses data yang sama atau bersinggungan dalam
17
database. Dengan kata lain, concurency control tetap mendukung eksekusi transaksi
secara paralel jika transaksi yang satu dengan yang lain tidak saling bersinggungan
(mengeksekusi bagian data yang terpisah atau berbeda).
Ada dua macam schedule, yaitu :
1. Serial Schedule
Sebuah schedule dimana operasi-operasi dari tiap transaksi dieksekusi secara
berurutan tanpa harus meninggalkan operasi dari transaksi lain (tidak
tumpang tindih).
2. Non-Serial Schedule
Sebuah schedule dimana operasi-operasi dari kumpulan transaksi bersama
saling tumpang tindih tetapi urutannya tetap terjaga.
Pada non-serial schedule, urutan baca tulis (read & write) diperhatikan :
1. Jika dua transaksi atau lebih hanya membaca data yang sama tanpa
menimbulkan konflik, maka ururtan tidaklah penting.
2. Jika dua transaksi atau lebih membaca dan atau menulis data yang berbeda
merika tidak menimbulkan konflik, maka urutan tidaklah penting.
3. Jika transaksi menulis dan transaksi lain membaca ataupun menulis pada data
yang sama, maka urutan eksekusi menjadi penting.
18
Tabel 2.1 Tabel Non-Serial Schedule
Operasi User 1 User 2 Objek data konflik Urutan
Baca Ya Ya Sama Tidak Tidak penting
Baca/Tulis Ya Ya Beda Tidak Tidak penting
Baca/Tulis Ya Ya Sama Tidak Penting
2.4.4 Teknik Concurency Control
Pedoman yang tetap dipegang dalam pembahasan concurency control adalah
DBMS dapat mendukung operasi multiuser secara paralel tanpa menimbulkan
permasalahan (yang paling utama adalah konsistensi database). Oleh karena itu,
penjadwalan transaksi oleh concurency control lebih terarah pada konsep pen-serial-
an transaksi (serializable).
Pendekatan yang digunakan untuk mencapai serializability yaitu:
1. Pendekatan optimistik
Pendekatan ini mendasarkan pada pandangan bahwa konflik antar transaksi
yang menimbulkan inkonsistensi data sangat jarang terjadi, sehingga tidak
perlu melakukan penjadwalan operasi ataupun transaksi. Pengecekan transaksi
dilakukan pada akhir transaksi.
19
2. Pendekatan pesimistik
Pendekatan ini memandang bahwa tetap ada kemungkinan konflik terjadi
antar transaksi. Pendekatan pesimistik dapat menggunakan metode locking
dan timestamp.
2.4.5 Locking
Locking adalah prosedur pengendalian akses bersama pada sebuah data dalam
database dengan mengijinkan hanya satu transaksi beroperasi terhadap sebuah data.
Sehingga saat sebuah transaksi sedang mengakses data, data akan ditutup dari akses
transaksi lain. Namun demikian, akses belum tentu secara penuh ditutup, tergantung
operasi yang dilakukan oleh masing-masing transaksi. Jelasnya, locking memberikan
batasan sifat operasi transaksi.
Terdapat dua macam metode locking, yaitu:
1. Shared lock
Data X hanya dapat dibaca tanpa dapat diubah (read only). Kondisi ini
memungkinkan beberapa operasi transaksi melakukan locking secara
serempak terhadap item data.
2. Exclusive Lock
Data X dapat dibaca dan diubah (read & write) hanya oleh satu transaksi.
Kondisi ini tidak memungkin item data tersebut diakses lebih dari satu operasi
transaksi (baik untuk membaca atau merubah).
Akan tetapi, menurut (Jason, 2008), perintah lock table tidak dapat digunakan
dalam store procedure.
20
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
3.1.1. Gambaran Umum Sistem Lama
Sistem Informasi Koperasi Simpan Pinjam yang digunakan dalam Koperasi
Simpan Pinjam Bintang Jaya merupakan suatu sistem yang digunakan untuk
menangani proses transaksi koperasi seperti pendaftaran anggota, tabungan (wajib
dan sukarela), pinjaman dan angsuran. Semua proses pencatatan transaksi tersebut
dilakukan hanya dengan menggunakan satu komputer saja. Sistem yang digunakan
pun masih menggunakan metode batch file dan menggunakan program Visual Fox
Pro. Sistem tersebut juga tidak dapat menangani pembuatan laporan dan berkas
secara langsung (terkomputerisasi) sehingga pembuatan laporan dan berkas masih
dilakukan secara manual.
3.1.2. Analisis Masalah
Permasalahan yang timbul dari penggunaan sistem yang lama antara lain
adalah sebagai berikut:
1. Jika ada beberapa anggota koperasi yang ingin melakukan beberapa proses
transaksi secara sekaligus menyebabkan proses pelayanan menjadi lama
(tidak efisien).
20
21
2. Sistem yang sudah ada tidak dapat menangani pembuatan laporan dan berkas
secara langsung.
3.1.3. Gambaran Umum Sistem Baru
Untuk menangani permasalahan di atas, maka akan dibuat sebuah sistem baru
yang menerapkan teknologi client/sever database dengan menggunakan arsitektur
two tier. Sistem ini terdiri dari satu buah komputer server yang digunakan untuk
menyimpan data (database) dan beberapa komputer client.
Dalam sistem yang baru ini, jika ada user (petugas, manager dan admin) yang
akan menggunakan sistem, user harus login terlebih dahulu, kemudian sistem akan
mengecek apakah user tersebut memang berhak atau tidak. Sistem informasi koperasi
simpan pinjam ini dibagi menjadi tiga yaitu sistem admin, sistem manager dan sistem
petugas koperasi. Sistem untuk petugas koperasi selanjutnya dibagi lagi menjadi tiga
yaitu sistem transaksi, sistem berkas, dan sistem laporan. Sistem manager dibagi
menjadi dua subsistem yaitu sistem data dan sistem penyetujuan pinjaman. Pada
setiap sistem, user hanya mengisikan data yang sesuai dengan form yang ada dalam
sistem, setelah itu sistem akan memprosesnya secara otomatis dan semua data akan
dimasukkan ke dalam database server.
22
3.1.1. Orang Yang Terlibat Dalam Sistem
Dalam sistem informasi koperasi simpan pinjam hanya melibatkan dua
orang aktor, yaitu:
1. Admin
Orang yang bertanggung jawab untuk mengatur sistem dan memberikan
akses masuk sistem (login) kepada petugas kopeasi.
2. Manager Koperasi
Orang yang secara langsung berhubungan dengan subsistem data dan
penyetujuan pinjaman.
3. Petugas Koperasi
Orang yang secara langsung berhubungan dengan subsistem transaksi,
berkas dan laporan.
23
3.1.2. Use Case Diagram
Use case diagram secara umum dapat dilhat pada Gambar 3.1.
ADMIN
MANAGER
PETUGAS
Setting koneksi
server
LOGIN
SISTEM INFORMASI KOPERASI
ADMIN
Data Penyetujuan
Pinjaman
Transaksi Berkas
Laporan
SISTEM ADMIN
SISTEM MANAGER
SISTEM PETUGAS
Ganti password
Ganti password
<<depend on>>
<<depend on>>
Log Request
Log Request
List Pinjaman
Gambar 3.1 Gambar Use case diagram secara umum.
24
3.1.5.1 Sistem Admin
menambah data user
mencari data useradmin
menghapus data user
Gambar 3.2 Gambar Use case diagram untuk sistem admin.
3.1.5.2 Sistem Manager Koperasi
3.1.5.2.1 Use Case Data
menambah data instansi
mengupdate data koperasi
mencari data instansi
manager
mengubah data instansi
Gambar 3.3 Gambar Use Case Diagram Data
25
3.1.5.2.2 Use Case Penyetujuan Pinjaman
menampilkan data berkas hasil peninjauan
mencari data berkas hasil peninjauan
manager
menambah data pinjaman
Gambar 3.4 Gambar Use Case Diagram Penyetujuan Pinjaman
3.1.5.2.3 Use Case Ganti Password
manager
(from Use Case View)
mengubah password
Gambar 3.5 Gambar Use Case Diagram Ganti Password
3.1.5.2.4 Use Case Log Request
menampi lkan log request
(f rom Use Case View)
Manager
(f rom Use Case View)
Gambar 3.6 Gambar Use Case Diagram Log Request
26
Gambar 3.8 Gambar Use Case Diagram Keanggotaan
3.1.5.2.5 Use Case List Pinjaman
Cari List Pinjaman
Manager
Cetak List Pinjaman
Gambar 3.7 Gambar Use Case List Pinjaman
3.1.5.3 Sistem Petugas Koperasi
3.1.5.3.1 Sistem Transaksi
3.1.5.3.1.1 Use Case Keanggotaan
Menambah data anggota
mencari data anggota
mengubah data anggota
pengecekan data pinjaman
pengecekan tabungan sukarela
pengecekan tabungan wajib
pengecekan simpanan pokok
menghapus data anggota
<<include>>
<<include>>
<<include>>
<<include>>Petugas
Mencetak Slip Tabungan Pokok
27
menambah data simpanan wajib
mencari data simpanan wajib
mengubah data simpanan wajib
mencetak s lip pembayaran simpanan wajib
petugas
3.1.5.3.1.2 Use Case Tabungan Wajib
Gambar 3.9 Gambar Use Case Diagram Tabungan Wajib
3.1.5.3.1.3 Use Case Tabungan Sukarela
mencari data simpanan sukarela
menambah data simpanan sukarela
mencetak slip pembayaran simpanan sukarela
mengedit data simpanan sukarela
petugas
Gambar 3.10 Gambar Use Case Diagram Tabungan Sukarela
28
3.1.5.3.1.4 Use Case Penarikan Tabungan
mengedit data penarikan simpanan sukarela
pengecekan saldo tabungan
mencari data penarikan simpanan sukarela
mencetak slip penarikan simpanan sukarela
menambah data penarikan simpanan sukarela
<<include>>
petugas
Gambar 3.11 Gambar Use Case Diagram Penarikan Tabungan
3.1.5.3.1.5 Use Case Pinjaman
mencetak slip penerimaan bersih
mencetak slip tanda penerimaan uang
mencari data pinjaman
petugas
Gambar 3.12 Gambar Use Case Diagram Pinjaman
29
membuat laporan angsuran
membuat laporan tabungan
membuat laporan pinjaman
membuat laporan rugi laba
membuat laporan harian
membuat laporan neraca
petugas
menambah data alokasi dana
mencetak slip angsuran
mencari data angsuran
menambah data angsuran
petugas
mencetak slip alokasi dana
3.1.5.3.1.6 Use Case Angsuran
Gambar 3.13 Gambar Use Case Diagram Angsuran.
3.1.5.3.2 Sistem Laporan
Gambar 3.14 Gambar Use Case Diagram Pembuatan Laporan
30
3.1.5.3.3 Sistem Berkas
mencari data berkas
menambah data berkas
mengedit data berkas
mencetak berkas
petugas
Gambar 3.15 Gambar Use Case Diagram Pembuatan Berkas
3.1.5.3.4 Use Case Ganti Password
merubah passwordpetugas
Gambar 3.16 Gambar Use Case Diagram Ganti Password.
3.1.5.3.5 Use Case Log Request
menampi lkan log request
(f rom Use Case View)
Petugas
(f rom Use Case View)
Gambar 3.17 Gambar Use Case Diagram Log Request Petugas
31
3.1.3. Class Diagram
tabungan_pokokkode_tab_pokok : Stringkode_anggota : Stringtgl_tab_pokok : Stringbesar_tab_pokok : Doublecek_insert : Integer
addPokok()cetak()cek_anggotaPokok()cek_created()
tabungan_wajibkode_anggota : Stringtgl_tab_wajib : Stringbesar_tab_waj ib : Doubletotal_tab_wajib : Doublebnyk_bulan : Integerkode_tabungan : Stringcreated_date : Stringnama : Stringbulan_awal : Stringbulan_akhir : Stringcek_insert : Integer
getHeader()addWaj ib()cetak()updateWajib()cekTgl_waj ib()cekTgl_waj ib_max()cek_Tgl_wajib_max_1_bulan()cek_bnyk_bulan()cek_jml_tab()cek_created_date()cekTgl_waj ibEdit()cek_bulan_awal()cek_bulan_akhir()nama_bulan()ceksudah_nabung()
tabungan_sukarelakode_anggota : Stringtgl_tab_sukarela : Stringbesar_tab_sukarela : Doublejml_penarikan : Doublesaldo_tab_sukarela : Doubleketerangan : Stringkode_tabungan : Stringcek_insert : Integer
getHeader()addSukarela()addPenarikan()updateSukarela()updatePenarikan()cetak_tabungan()cetak_penarikan()cekTgl_max()cekTotal()cekTgl_maxEdit()cek_created_date()cek_jml_penarikan()cek_besar_tab()
instansikode_instansi : Integernama : Stringalamat : Stringno_telp : Stringcek_insert : Integer
getHeader()addInstansi()updateInstansi()cekInstansi()cekNamaInstansi()
Anggotakode_anggota : Stringnama_anggota : Stringno_telp : Stringno_ktp : Stringalamat : Stringjenis_kelamin : Stringpekerjaan : Stringketerangan : Stringtgl_daftar : Stringinstansi : Stringcek_insert : Integer
getHeader()AddAnggota()editAnggota()delAnggota()tanggal()cekTgl_daftar()cekAnggota()cek_keterangan()cek_nama()cek_pekerjaan()cek_no_ktp()cek_alamat()
1..* 1
1
1
0..*1
0..1
0..*
1
1
1..* 1 0..*1
0..1
0..*
Gambar 3.18 Gambar Class Diagram I untuk Sistem
32
pinjaman
kode_anggota : Stringtgl_pinjaman : Stringkode_pinjaman : Stringkode_berkas_pk : Stringkode_berkas_hp : Stringjml_angsuran : Doublebesar_pinjaman : Doublebunga : Doubleprovisi : Doublebiaya_adm : Doubleketerangan : Stringbiaya_kartu_anggota : Doublebiaya_notaris : Doublebiaya_materai : Doublenama_komisaris : Stringnama_manager : Stringcek_insert : Integer
getHeader()addPinjaman()updatePinjaman()cetak_penerimaan_bersih()cetak_tanda_penerimaan_uang()hitung_total()hitung_pokok_angsuran()hitung_bunga()hitung_angsuran_perbulan()dan lain-lain()
Anggota
kode_anggota : Stringnama_anggota : Stringno_telp : Stringno_ktp : Stringalamat : Stringjenis_kelamin : Stringpekerjaan : Stringketerangan : Stringtgl_daftar : Stringinstansi : Stringcek_insert : Integer
getHeader()AddAnggota()editAnggota()delAnggota()tanggal()cekTgl_daftar()cekAnggota()cek_keterangan()cek_nama()cek_pekerjaan()cek_no_ktp()cek_alamat()
(from 1)
b_permohonan_kredit
kode_berkas_2 : Stringkode_berkas_1 : Stringkode_anggota : Stringbesar_kredit_minta : Stringjangka_waktu_kredit : Stringalasan : Stringcek_insert : Integerdan lain-lain
getHeader()addBerkas()UpdateBerkas()cetak()cek_tgl()cek_jns_usaha()cek_mulai_berdiri()dan lain-lain()
1 0..*1 0..*
alokasi_dana
kode_pinjaman : Stringangsuran : Doubledenda : Doublebunga : Doublecek_insert : Integer
addAlokasi()cetak()cek_kode_pinjaman()cek_angsuran()cek_bunga()cek_denda()
angsuran
kode_angsuran : Stringkode_pinjaman : Stringtgl_angsuran : Stringbunga : Doublebesar_angsuran : Doubledenda : Doubleket_angsuran : Stringcek_insert : Integer
getHeader()addAngsuran()addAngsuran_alokasi()addAngsuran_alokasi_terpenuhi()cetak_angsuran()cetak_angsuran_alokasi()buat_angsuran_ke()hitung_denda()dan lain-lain()
1
0..*
1
0..*
1
1..*
1
1..*
jaminan_tanah
id_tanahkode_hpnomorpanjanglebarluaslokasijenisharga_taksiran
addjaminan()editDetail()
0..*
1
0..*
1
b_hasil_peninjauan
kode_berkas_hp : Stringkode_berkas : Stringkode_berkas_pk : Stringkode_anggota : Stringbarang_jaminan : Stringjml_kredit : Stringjangka_waktu : Stringalokasi_dana : Stringcek_insert : Integerdan lain-lain
getHeader()AddBerkas()cetak()UpdateBerkas()cek_tgl()cek_kode_anggota()dan lain-lain()
0..1
1
0..1
1
1
0..*
jaminan_kendaraan
id_kendaraankode-hpno_bpkbjenismerkth_pembuatanno_rangkano_mesinharga_taksiran
addJaminan()editDetail()
1
0..*
1
0..*
1
0..*
1
0..*
1
0..*
Gambar 3.19 Gambar Class Diagram 2 untuk Sistem
33
b_pengembalian_barang
kode_berkas : Stringkode_berkas_2 : Stringhari : Stringtanggal : Stringkode_pinjaman : Stringnama_pihak_1 : Stringjabatan_pihak_1 : Stringnama_pihak_2 : Stringalamat_pihak_2 : Stringalasan : Stringcek_insert : Integer
getHeader()addBerkas()cetak()updateBerkas()cek_tgl()cek_hari()cek_nama_pihak_1()
b_surat_kuasa_tanah
kode_berkas_2 : Stringkode_pinjaman : Stringnama_kedua : Stringjabatan_kedua : Stringtgl_berkas : Stringtgl_disetujui : Stringsaksi_1 : Stringsaksi_2 : Stringmaterai : Stringnama_penyetuju : Stringtgl_penyetujuan : Stringcek_insert : Integer
getHeader()addBerkas()updateBerkas()cetak()cek_tgl()cek_kode_berkas()cek_kode_pinjaman()dan lain-lain()
b_surat_perjanjian
no_perjanjian : Stringkode_pinjaman : Stringnama_pihak_1 : Stringjabatan_pihak_1 : Stringayat_pasal_5 : Stringhari : Stringtgl_berkas : Stringtgl_penyetujuan : Stringnama_penyetuju : Stringcek_insert : Integer
getHeader()addBerkas()updateBerkas()cetak()cek_tgl()cek_kode_perjanjian()dan lain-lain()
pinjaman
kode_anggota : Stringtgl_pinjaman : Stringkode_pinjaman : Stringkode_berkas_pk : Stringkode_berkas_hp : Stringjml_angsuran : Doublebesar_pinjaman : Doublebunga : Doubleprovisi : Doublebiaya_adm : Doubleketerangan : Stringbiaya_kartu_anggota : Doublebiaya_notaris : Doublebiaya_materai : Doublenama_komisaris : Stringnama_manager : Stringcek_insert : Integer
getHeader()addPinjaman()updatePinjaman()cetak_penerimaan_bersih()cetak_tanda_penerimaan_uang()hitung_total()hitung_pokok_angsuran()hitung_bunga()hitung_angsuran_perbulan()dan lain-lain()
(from 2)
1
1
b_surat_kuasa_alokasi_dana
kode_berkas : Stringkode_pinjaman : Stringnama_2 : Stringjabatan_2 : Stringsaksi_1 : Stringsaksi_2 : Stringtgl_berkas : Stringmaterai : Stringcek_insert : Integer
getHeader()addBerkas()updateBerkas()cetak()cek_tgl()cek_kode_berkas_2()dan lain-lain()
1
1
1
11
1
jaminan_tanah
id_tanahkode_hpnomorpanjanglebarluaslokasijenisharga_taksiran
addjaminan()editDetail()
(from 2)
1
1
0..*
1
0..*
1
jaminan_kendaraan
id_kendaraankode-hpno_bpkbjenismerkth_pembuatanno_rangkano_mesinharga_taksiran
addJaminan()editDetail()
(from 2)
1
0..*
1
0..*
1
1
1
1
b_surat_kuasa (KENDARAAN)
kode_surat_kuasa : Stringkode_berkas : Stringkode_pinjaman : Stringnama_penerima_kuasa : Stringjabatan_penerima_kuasa : Stringtgl_surat_kuasa : Stringsaksi_pertama : Stringsaksi_kedua : Stringmaterai : Stringnama_penyetuju : Stringtgl_penyetujuan : Stringcek_insert : Integer
getHeader()addBerkas()cetak()UpdateBerkas()cek_nama_penerima_kuasa()cek_jabatan_penerima_kuasa()dan lain-lan()
1
1
b_terima_jaminankode_berkas_serah_terima_jaminan : Stringkode_berkas : Stringkode_pinjaman : Stringhari : Stringtanggal : Stringjaminan : Stringnama_pihak_pertama : Stringjabatan_pihak_pertama : Stringnama_pihak_kedua : Stringalamat_pihak_kedua : Stringno_angota_pihak_kedua : Stringcek_insert : Integer
getHeader()addBerkas()cetak()UpdateBerkas()cek_tgl()cek_kode_pinjaman()dan lain-lain()
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Gambar 3.20 Gambar Class Diagram 3 untuk Sistem
34
user_koperasikode_pegawai : Stringnama : Stringusername : Stringpass : Stringlevel : String
getHeader()insert_user()update_user()update_password()delete_user()cek_nama()cek_pass()
prop
tgl_skrg()ambil_tanggal ()bulan()bulan_tampi l_tabel()Fil ter()getToString()getToDouble()letak_report()
login_userusername : Stringpass : Stringkode_user : Stringlevel : String
login_user()insertLogLogin()tambahBunga()
data_koperasitab_pokok : Doubletab_waj ib : Doubleprovisi : Doublebiaya_adm : Doublebunga_pinjaman : Doublebiaya_notaris : Doublebiaya_kartu_anggota : Doubledenda : Doublepotongan_bunga : Doublematerai : Doublecek_insert : Integer
updateData()ambil_tab_pokok()ambil_tab_wajib()ambil_biaya_kartu_ang()ambil_biaya_materai()ambil_biaya_notaris()ambil_bsr_provisi()ambil_bsr_biaya_adm()ambil_bunga_pinj()ambil_denda()ambil_potongan_bunga()ediTdata()
1
0..*
1
0..*
Log_requestuserketeranganawalakhir
getHeader()addLog()
1
0..*
1
0..*
Gambar 3.21 Gambar Class Diagram 4 untuk Sistem
35
: layar user : admin : user kontrol : user_koperasi
memasukkan kata kunci
cari user
tampil_user()
select data
informasi semua data user yang dicari
3.2. Design Sistem
3.2.1. Sequence Diagram
3.2.1.1.Sistem Admin
Proses Menambah Data User
: admin : layar user : user kontrol : user_koperasi
memasukkan data user
tambah user
addUser()
insert data
Gambar 3.22 Gambar Sequence Diagram untuk Proses Menambah Data User
Proses Mencari Data User
Gambar 3.23 Gambar Sequence Diagram untuk Proses Mencari Data User
36
Proses Menghapus Data User
: admin : layar user : user kontrol : user_koperasi
memasukkan kode user
hapus user
delUser()
delete data
Gambar 3.24 Gambar Sequence Diagram untuk Proses Menghapus Data User
3.2.1.2.Sistem Manager
3.2.1.2.1 Sistem Data
Proses Mengupdate Data Koperasi
: manager : layar data koperasi : data_koperasi kontrol : data_koperasi
memasukkan data koperasi baru
ubah data_koperasi
updateData()
update data
Gambar 3.25 Gambar Sequence Diagram untuk Proses Mengupdate Data Koperasi
37
Proses Menambah Data Instansi
memasukkan data instansi
: manager : layar instansi : instansi kontrol : instansi
tambah instansi
addInstansi()
insert data
Gambar 3.26 Gambar Sequence Diagram untuk Proses Menambah Data Instansi
Proses Mencari Data Instansi
: manager : layar instansi : instansi kontrol : instansi
memasukkan kata kunci
cari instansi
tampil_instansi()
select data
informasi semua data instansi yang dicari
Gambar 3.27 Gambar Sequence Diagram untuk Proses Mencari Data Instansi
38
Proses Mengubah Data Instansi
ubah instansi
: manager : layar instansi : instansi kontrol : instansi
memasukkan data instansi baru
updateInstansi()
update data
Gambar 3.28 Gambar Sequence Diagram untuk Proses Mengubah Data Instansi
3.2.1.2.2 Sistem Penyetujuan Pinjaman
Proses Mencari Data Berkas Hasil Peninjauan
: manager : layar penyetujuan pinjaman : berkas_hasil_peninjauan control
: berkas_hasi l_peninjauanmemasukkan kata kunci
cari berkas
tampil_berkas()
select data
informasi semua data berkas yang dicari
Gambar 3.29 Gambar Sequence Diagram untuk Proses Mencari Data Berkas Hasil
Peninjauan
39
Proses Menampilkan Data Berkas Hasil Peninjauan
: layar penyetujuan pinjaman : manager : berkas_hasil_peninjauan control
: berkas_hasi l_peninjauanmemasukkan kode berkas
select data
select data
informasi semua data berkas hasil peninjauan
Gambar 3.30 Gambar Sequence Diagram untuk Proses Menampilkan Data Berkas
Hasil Peninjauan
Proses Menambah Data Pinjaman
: manager : layar pinjaman : pinjaman control : pinjaman
memasukkan data pinjaman
tambah pinjaman
addPinjaman()
insert data
Gambar 3.31 Gambar Sequence Diagram untuk Proses Menambah Data Pinjaman
40
3.2.1.2.3 Proses Mengubah Password
: manager : layar ganti password : user_koperasi control : user koperasi
memasukkan password baru
ganti password
update_password()
update data
Gambar 3.32 Gambar Sequence Diagram untuk Proses Mengubah Password
3.2.1.2.4 Proses Menampilkan Log Request
: Manager : layar log request : loq request control : log request
tampil log request
tampil()
select data
informasi semua data log request
Gambar 3.33 Gambar Sequence Diagram untuk Proses Menampilkan Log Request
Manager
41
3.2.1.2.3 Sistem List Pinjaman
Proses Mencari List Pinjaman
informasi data pinjaman yang dicari
: petugas : layar l ist pinjaman : pinjaman kontrol : pinjaman
memasukkan periode pinjaman
cari pinjaman
tampil_pinjaman()
select data
Gambar 3.34 Gambar Sequence Diagram untuk Proses Mencari List Pinjaman
Proses Mencetak List Pinjaman
: petugas : layar l ist pinjaman : pinjaman kontrol : Pinjaman
cetak
cetak_list()
select data
laporan List Pinjaman
Gambar 3.35 Gambar Sequence Diagram untuk Proses Mencetak List Pinjaman
42
: anggota : Petugas : layar anggota - : anggota kontrol : tabungan_pokok
memasukkan data anggota
tambah anggota
addAnggota()
insert data
insert data
3.2.1.3.Sistem Petugas Koperasi
3.2.1.3.1 Sistem Transaksi
3.2.1.3.1.1 Sistem Keanggotaan
Proses Menambah Data Anggota
Proses Mencari Data Anggota
: Petugas : layar anggota : anggota kontrol : anggota
memasukkan kata kunci
cari anggota
tampil_anggota()
select data
informasi semua data anggota yang dicari
Gambar 3.36 Gambar Sequence Diagram untuk Proses Menambah Data
Gambar 3.37 Gambar Sequence Diagram untuk Proses Mencari Data Anggota
43
Proses Mengubah Data Anggota
: Petugas : layar anggota : anggota kontrol : anggota
memasukkan data anggota baru
ubah anggota
editAnggota()
update data
Gambar 3.38 Gambar Sequence Diagram untuk Proses Mengubah Data Anggota
Proses Menghapus Data Anggota
: Petugas : layar anggota : anggota kontrol : anggota
memasukkan kode anggota
hapus anggota
delAnggota()
delete data
Gambar 3.39 Gambar Sequence Diagram untuk Proses Menghapus Data Anggota
44
Proses Mencetak Slip Tabungan Pokok
: petugas : layar simpanan pokok : simpanan pokok kontrol
: cetak_tab_waj ib
cetak data
cetak()
select data
slip pembayaran simpanan pokok
Gambar 3.40 Gambar Sequence Diagram untuk Proses Mencetak Slip Tabungan
Pokok
3.2.1.3.1.2 Sistem Tabungan Wajib
Proses Menambah Data Tabungan Wajib
addWajib()
: petugas : layar tabungan waj ib : tabungan wajib kontrol : tabungan wajib
insert data
memasukkan data tabungan wajib
tambah tabungan wajib
Gambar 3.41 Gambar Sequence Diagram untuk Proses Menambah Data Tabungan
Wajib
45
Proses Mencari Data Tabungan Wajib
: petugas : layar tabungan waj ib : tabungan wajib kontrol : tabungan wajib
cari tabungan wajib
tampil_wajib
memasukkan kata kunci
select data
informasi data yang dicari
Proses Mengubah Data Tabungan Wajib
: petugas : layar simpanan wajib : simpanan waj ib kontrol : simpanan waj ib
memasukkan data baru
ubah simpanan
updateWajib()
update data
Gambar 3.43 Gambar Sequence Diagram untuk Proses Mengubah Data Tabungan
Wajib
Gambar 3.42 Gambar Sequence Diagram untuk Proses Mencari Data
Tabungan Wajib
46
Proses Mencetak Slip Tabungan Wajib
: petugas : layar simpanan waj ib : simpanan wajib kontrol : cetak_tab_waj ib
cetak data
cetak()
select data
slip pembayaran simpanan wajib
Gambar 3.44 Gambar Sequence Diagram untuk Proses Mencetak Slip Tabungan Wajib
3.2.1.3.1.3 Sistem Tabungan Sukarela
Proses Menambah Data Tabungan Sukarela
: petugas : layar simpanan sukarela : simpanan sukarela kontrol
: simpanan sukarela
memasukkan data simpanan sukarela
tambah tabungan sukarela
addSukarela()
insert data
konfirmasi data telah ditambah
Gambar 3.45 Gambar Sequence Diagram untuk Proses Menambah Data Tabungan
Sukarela
47
Proses Mencari Data Tabungan Sukarela
: petugas : layar simpanan sukarela : simpanan sukarela kontrol
: simpanan sukarela
memasukkan kata kunci
cari simpanan sukarela
cari_sukarela()
select data
informasi data tabungan sukarela yang dicari
Proses Mengubah Data Tabungan Sukarela
: simpanan sukarela kontrol
: petugas : layar simpanan sukarela : simpanan sukarela
memasukkan data baru
ubah simpanan
updateSukarela()
update data
Gambar 3.47 Gambar Sequence Diagram untuk Proses Mengubah Data Tabungan
Sukarela
Gambar 3.46 Gambar Sequence Diagram untuk Proses Mencari Data
Tabungan Sukarela
48
Proses Mencetak Slip Tabungan Sukarela
slip pembayaran simpanan sukarela
: petugas : layar simpanan sukarela : simpanan sukarela kontrol
: cetak_tab_sukarela
cetak data
cetak()
select data
Gambar 3.48 Gambar Sequence Diagram untuk Proses Mencetak Slip Tabungan
Sukarela
3.2.1.3.1.4 Sistem Penarikan Tabungan
Proses Menambah Data Penarikan Tabungan
: petugas : layar penarikan simpanan : simpanan suakrela kontrol
: simpanan sukarela
memasukkan data penarikan
penarikan simpanan
addPenarikan()
insert data
Gambar 3.49 Gambar Sequence Diagram untuk Proses Menambah Data Penarikan
Tabungan
49
Proses Mencari Data Penarikan Tabungan
: layar penarikan simpanan : petugas : simpanan suakrela kontrol
: simpanan sukarela
memasukkan kata kunci
cari data penarikan
tampil_penarikan()
select data
informasi data penarikan yang dicari
Gambar 3.50 Gambar Sequence Diagram untuk Proses Mencari Data Penarikan
Tabungan
Proses Mengubah Data Penarikan Tabungan
: layar penarikan simpanan : petugas : simpanan suakrela kontrol
: simpanan sukarela
memasukkan data baru
ubah penarikan
updatePenarikan()
update data
Gambar 3.51 Gambar Sequence Diagram untuk Proses Mengubah Data Penarikan
Tabungan
50
Proses Mencetak Slip Penarikan Tabungan
: petugas : layar penarikan simpanan : simpanan suakrela kontrol
: cetak_penarikan
cetak
cetak()
select data
slip penarikan simpanan
Gambar 3.52 Gambar Sequence Diagram untuk Proses Mencetak Slip Penarikan
Tabungan
3.2.1.3.1.5 Sistem Pinjaman
Proses Mencetak Slip Penerimaan Bersih
: petugas : layar pinjaman : pinjaman kontrol : cetak_penerimaan_bersih
cetak
cetak_penerimaan_bersih()
select data
slip penerimaan bersih
Gambar 3.53 Gambar Sequence Diagram untuk Proses Mencetak Slip Penerimaan
Bersih
51
Proses Mencetak Slip Penerimaan Uang
: layar pinjaman : petugas : pinjaman kontrol : cetak_penerimaan_uang
cetak
cetak_penerimaan_uang()
select data
slip penerimaan uang
Gambar 3.54 Gambar Sequence Diagram untuk Proses Mencetak Slip Penerimaan
Uang
Proses Mencari Data Pinjaman
: petugas : layar pinjaman : pinjaman kontrol : pinjaman
memasukkan kata kunci
cari pinjaman
tampil_pinjaman()
select data
informasi data pinjaman yang dicari
Gambar 3.55 Gambar Sequence Diagram untuk Proses Mencari Data Pinjaman
52
3.2.1.3.1.6 Sistem Angsuran
Proses Menambah Data Angsuran
memasukkan data angsuran
: petugas : layar angsuran : angsuran kontrol angsuran : angsuran
tambah angsuran()
addAngsuran()
insert data
Gambar 3.56 Gambar Sequence Diagram untuk Proses Menambah Data Angsuran
Proses Menambah Data Alokasi Dana
memasukkan data alokasi dana
: petugas : layar angsuran : alokasi dana control : alokasi_dana
addAlokasi_dana()
insert data
Gambar 3.57 Gambar Sequence Diagram untuk Proses Menambah Data Alokasi
Dana
53
Proses Mencetak Slip Angsuran
: petugas : layar angsuran : angsuran kontrol : cetak_angsuran
cetak
cetak()
select data
slip angsuran
Gambar 3.58 Gambar Sequence Diagram untuk Proses Mencetak Slip Angsuran
Proses Mencetak Slip Alokasi Dana
: petugas : layar angsuran : angsuran kontrol : cetak_alokasi_dana
cetak
cetak()
select data
slip alokasi dana
Gambar 3.59 Gambar Sequence Diagram untuk Proses Mencetak Slip Alokasi Dana
54
Proses Mencari Data Angsuran
: petugas : layar angsuran - : angsuran : angsuran kontrol
memasukkan kata kunci
cari angsuran
tampil_angsuran()
select data
informasi data angsuran yang dicari
Gambar 3.60 Gambar Sequence Diagram untuk Proses Mencari Data Angsuran
3.2.1.3.2 Sistem Berkas
Proses Menambah Data Berkas
: berkas kontrol : petugas : layar berkas : berkas
memasukkan data berkas
tambah berkas
addBerkas()
insert data
Gambar 3.61 Gambar Sequence Diagram untuk Proses Menambah Data Berkas
55
Proses Mencari Data Berkas
: petugas : layar berkas : berkas kontrol : berkas
memasukkan kata kunci
cari berkas
tampil_berkas
select data
informasi data bekas yang dicari
Gambar 3.62 Gambar Sequence Diagram untuk Proses Mencari Data Berkas
Proses Mengubah Data Berkas
: layar berkas : petugas : berkas kontrol : berkas
memasukkan data berkas baru
ubah berkas
updateBerkas()
update data
Gambar 3.63 Gambar Sequence Diagram untuk Proses Mengubah Data Berkas
56
Proses Mencetak Berkas
: petugas : layar berkas : berkas kontrol : berkas
cetak berkas
cetak()
select data
Gambar 3.64 Gambar Sequence Diagram untuk Proses Mencetak Data Berkas
3.2.1.3.3 Sistem Laporan
Proses Membuat Laporan Tabungan
: petugas : layar laporan : laporan kontrol : cetak_lap_tabungan
memasukkan periode laporan
cetak()
select data
laporan simpanan
Gambar 3.65 Gambar Sequence Diagram untuk Proses Membuat Laporan Tabungan
57
Proses Membuat Laporan Harian
laporan harian
: petugas : layar laporan : laporan kontrol : cetak_lap_harian
memasukkan periode laporan
cetak()
select data
Gambar 3.66 Gambar Sequence Diagram untuk Proses Membuat Laporan Harian
Proses Membuat Laporan Pinjaman
: petugas : layar laporan : laporan kontrol : cetak_lap_pinjaman
memasukkan periode laporan
cetak()
select data
laporan pinjaman
Gambar 3.67 Gambar Sequence Diagram untuk Proses Membuat Laporan Pinjaman
58
Proses Membuat Laporan Angsuran
: petugas : layar laporan : laporan kontrol : cetak_lap_angsuran
memasukkan periode laporan
cetak()
select data
laporan angsuran
Gambar 3.68 Gambar Sequence Diagram untuk Proses Membuat Laporan Angsuran
Proses Membuat Laporan Rugi Laba
: laporan kontrol : petugas : layar laporan : cetak_lap_rugi_laba
memasukkan periode laporan
cetak()
select data
laporan rugi laba
Gambar 3.69 Gambar Sequence Diagram untuk Proses Membuat Laporan Rugi Laba
59
Proses Membuat Laporan Neraca
: petugas : layar laporan : laporan kontrol : cetak_lap_neraca
memasukkan periode laporan
cetak()
select data
laporan neraca
Gambar 3.70 Gambar Sequence Diagram untuk Proses Membuat Laporan Neraca
Proses Membuat Laporan Perseorangan
memasukkan periode laporan, kode anggota
: petugas : layar laporan : laporan kontrol : cetak_lap_perseorangan
cetak()
select data
laporan perseorangan
Gambar 3.71 Gambar Sequence Diagram untuk Proses Membuat Laporan
Perseorangan
60
3.2.1.3.9 Proses Mengubah Password
: layar ganti password : petugas : user_koperasi control : user koperasi
memasukkan password baru
ganti password
update_password()
update data
Gambar 3.72 Gambar Sequence Diagram untuk Proses Mengubah Password
3.2.1.3.10 Proses Menampilkan Log Request
: Petugas : layar log request : loq request control : log request
tampil log request
tampil()
select data
informasi semua data log request
Gambar 3.73 Gambar Sequence Diagram untuk Proses Menampilkan Log Request
61
3.2.2. Desain Database
3.2.2.1. Conceptual Design (ER Diagram)
INSTANSI KERJA ANGGOTA
TABUNGAN
WAJIB
TABUNGAN
SUKARELA
TABUNGAN
POKOK
PUNYA
PUNYA
PUNYA
(0,1)
(1,1)
(0,N)
(1,N)
(1,1)
(1,1)
(1,1) (0,N)
Gambar 3.74 Gambar ER Diagram 1
ANGGOTA AJUKAN
BERKAS
PERMOHONAN
KREDIT
PUNYABERKAS HASIL
PENINJAUAN
(1,1) (1,1) (1,1)(0,N)
PINJAMAN
ANGSURAN
ALOKASI DANA
PUNYA
PUNYA
(1,1)
(1,N)
(1,1)
(1,1)(0,N)
CATAT
CATA
T
JAMINAN TANAHJAMINAN
KENDARAAN
PUNYA PUNYA
(0,N)
(1,1)
(0,N)
(1,1)(1,1)
(0,N) (0,N)
Gambar 3.75 Gambar ER Diagram 2
63
AKUNJURNAL
TRANSAKSICATAT
(1,1) (0,N)
USER KOPERASI
LOG LOGINCATAT(1,1) (0,N)
LOG REQUEST
CATAT
(1,1)
(0,N)
TABUNGAN POKOK
TABUNGAN WAJIB
TABUNGAN SUAKRELA
ALOKASI DANA
PINJAMAN
ANGSURAN
CATAT CATAT
CATAT
CATAT CATAT
CAT
AT
(1,N)
(1,1)
(1,1)(1,1)
(1,1)
(1,1)(1,1)
(1,N)
(1,N)
(1,N)
(1,N)(1,N)
Gambar 3.77 Gambar ER Diagram 4
65
ANGGOTA
* kode_anggota
nama
no_ktp
no_telp
alamat
jenis_kelamin
pekerjaan
keterangan
tgl_daftaR
instansi
created_date
Kode_user
BERKAS_PERMOHONAN_KREDIT
* kode_berkas_PK
** kode_anggota
kode_berkas
jenis_usaha
mulai_berdiri_tgl
jenis_perusahaan
modal
jumlah_brg_produksi
pendapatan_kotor_prosuksi
pendapatan_bersih_prduksi
biaya_operasional
nama_bank
bsr_pinjmn_bank_lain
awal_angsur_bank_lain
besar_kredit_minta
jangka_waktu_kredit
alasan
sarat_siup
sarat_sertifikat
sarat_stnk
sarat__rangka
sarat_kk
sarat_KTP
jenis_jumlah_barang
jenis_pendapatan_kotor
jenis_pendapatan_bersih
jenis_biaya_op
jenis_jangka_waktu
tgl_berkas
created_date
kode_user
BERKAS_HASIL_PENINJAUAN
* kode_berkas_hp
kode_berkas
** kode_berkas_pk
kode_anggota
barang_jaminan
pemilik_jaminan
surat_bukti_kepemilikan
milik_bersama
status_hubungan
mulai_usaha
modal_tersedia
asal_modal
usaha_lain
jml_kredit
jangka_waktu
alokasi_dana
karakter
barang_lain
pekerjaan_lain
analisa_usaha
pertimbangan
usul
nama_pemeriksa_satu
nama_pemeriksa_dua
tgl_pemeriksaan
created_date
Kode_user
(1,1)
(0,N)(0,1)
(1,1)
JAMINAN TANAH
* id_tanah
** kode_hp
Nomor
Panjang
Lebar
Luas
Lokasi
Jenis
Harga_taksiran
Kode_user
JAMINAN KENDARAAN
* id_kendaraan
** kode_hp
No_bpkb
Jenis
Merk
Th_pembuatan
No_rangka
No_mesin
Harga_taksiran
Kode_user
PINJAMAN
* kode_pinjaman
** kode_berkas_HP
tgl_pinjaman
besar_pinjaman
bunga
jumlah_angsuran
provisi
biaya_adm
keterangan
biaya_kartu_anggota
biaya_materai
biaya_taris
manager
Komisaris
Penyetujuan
Alasan
created_date
Kode_user
ALOKASI_DANA
* kode_alokasi
** kode_pinjaman
angsuran
bunga
Denda
Kode_user
ANGSURAN
* kode_angsuran
**kode_pinjaman
tgl_angsuran
bunga
besar_angsuran
denda
ket_angsuran
sisa_pinjaman
created_date
Kode_user
(1,1)
(0,N)
(0,N)
(1,1)
(0,N)
(1,1) (1,1)
(0,N)
(1,N)(1,1)(0,N) (1,1)
Gambar 3.79 Gambar Logical Design 2
66
PINJAMAN
* kode_pinjaman
** kode_berkas_HP
tgl_pinjaman
besar_pinjaman
bunga
jumlah_angsuran
provisi
biaya_adm
keterangan
biaya_kartu_anggota
biaya_materai
biaya_taris
manager
Komisaris
Penyetujuan
Alasan
created_date
Kode_user
BERKAS_SURAT_PERJANJIAN
* kode_perjanjian
no_perjanjian
** kode_pinjaman
kode_anggota
nama_pihak_1
jabatan_pihak_1
ayat_pasal_5
hari
tgl_berkas
tgl_penyetujuan
nama_penyetuju
Kode_user
BERKAS_SURAT_ALOKASI_DANA
* kode_berkas
kode_berkas_2
**kode_pinjaman
nama_pihak_2
jabatan_pihak_2
saksi_1
saksi_2
tgl_berkas
Materai
Kode_user
BERKAS_SURAT_KUASA_KENDARAAN
* kode_surat_kuasa
kode_berkas
** kode_jaminan
tgl_kuitansi
nama_penerima_kuasa
jabatan_penerima_kuasa
tgl_surat_kuasa
saksi_pertama
saksi_kedua
materai
nama_penyetuju
tgl_penyetujuan
created_date
Kode_user
BERKAS_SURAT_KUASA_TANAH
* kode_berkas_p
** kode_jaminan
kode_berkas
nama_kedua
jabatan
tgl_berkas
saksi_1
saksi_2
materai
nama_penyetuju
tgl_penyetujuan
created_date
Kode_user
BERKAS_BERITA_SERAH_TERIMA_JAMINAN
* kode_berkas_serah_terima_jaminan
kode_berkas
Jenis_jaminan
jaminan
hari
Tanggal
nama_pihak_pertama
jabatan_pihak_pertama
created_date
Kode_user
BERKAS_BERITA_ACARA_PENGEMBALIAN_B
ARANG
* kode_berkas_pengembalian_barang
kode_berkas
Jenis_jaminan
jaminan
hari
tanggal
nama_pihak_1
jabatan_pihak_1
alasan
created_date
Kode_user
JAMINAN TANAH
* id_tanah
** kode_hp
Nomor
Panjang
Lebar
Luas
Lokasi
Jenis
Harga_taksiran
Kode_user
JAMINAN KENDARAAN
* id_kendaraan
** kode_hp
No_bpkb
Jenis
Merk
Th_pembuatan
No_rangka
No_mesin
Harga_taksiran
Kode_user
(1,1) (1,1)
(1,1)(0,N) (0,N)(1,1)
(1,1)(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
(0,1)
(1,1) (1,1)
(1,1)
Gambar 3.80 Gambar Logical Design 3
68
3.1.1.1. Physical Design
3.2.2.3.1 Tabel Akun
Tabel Akun merupakan tabel yang digunakan untuk menyimpan data-data
akun koperasi yang diperlukan untuk pembuatan jurnal dan laporan koperasi, dengan
format seperti terlihat pada Tabel 3.1.
Tabel 3.1 Struktur Tabel akun
3.2.2.3.2 Tabel Alokasi_dana
Tabel Alokasi Dana merupakan tabel yang digunakan untuk menyimpan data-
data alokasi dana dari pinjaman, dengan format s seperti terlihat pada Tabel 3.2.
Tabel 3.2 Struktur Tabel Alokasi_dana
3.2.2.3.3 Tabel Anggota
Tabel Anggota merupakan tabel yang digunakan untuk menyimpan data-data
anggota koperasi, dengan format s seperti terlihat pada Tabel 3.3.
69
Tabel 3.3 Struktur Tabel Anggota
3.2.2.3.4 Tabel Angsuran
Tabel Angsuran merupakan tabel yang digunakan untuk menyimpan data
angsuran, dengan format seperti terlihat pada Tabel 3.4
Tabel 3.4 Struktur Tabel Angsuran
70
3.2.2.3.5 Tabel Berkas Berita Acara Pengembalian Barang
Tabel Berkas Berita Acara Pengembalian Barang merupakan tabel yang
digunakan untuk menyimpan data Berkas Berita Pengembalian Barang, dengan
format seperti terlihat pada Tabel 3.5
Tabel 3.5 Struktur Tabel Berkas_berita_acara_pengembalian_barang
3.2.2.3.6 Tabel Berkas Berita Serah Terima Jaminan
Tabel Berkas Berita Serah Terima Jaminan merupakan tabel yang digunakan
untuk menyimpan data Berkas Berita Serah Terima Jaminan, dengan format seperti
terlihat pada Tabel 3.6.
71
Tabel 3.6 Struktur Tabel berkas_berita_serah_terima_jaminan
3.2.2.3.7 Tabel Berkas Hasil Peninjauan
Tabel Berkas Hasil Peninjauan merupakan tabel yang digunakan untuk
menyimpan data Berkas Hasil Peninjauan, dengan format seperti terlihat pada Tabel
3.7
Tabel 3.7 Struktur Tabel Berkas_hasil_peninjauan
72
3.2.2.3.8 Tabel Berkas Permohonan Kredit
Tabel Berkas Permohonan Kredit merupakan tabel yang digunakan untuk
menyimpan data Berkas Permohonan Kredit, dengan format seperti terlihat pada
Tabel 3.8
Tabel 3.8 Struktur Tabel Berkas_permohonan_kredit
73
3.2.2.3.9 Tabel Berkas Surat Alokasi Dana
Tabel Berkas Surat Kuasa Alokasi Dana merupakan tabel yang digunakan
untuk menyimpan data Berkas Surat Kuasa Alokasi Dana, dengan format seperti
terlihat pada Tabel 3.9
Tabel 3.9 Struktur Tabel Berkas_surat_alokasi_dana
74
3.2.2.3.10 Tabel Berkas Surat Kuasa Kendaraan
Tabel Berkas Surat Kuasa Kendaraan merupakan tabel yang digunakan untuk
menyimpan data Berkas Surat Kuasa Kendaraan, dengan format seperti terlihat pada
Tabel 3.10
Tabel 3.10 Struktur Tabel Berkas_surat_kuasa_kendaraan
3.2.2.3.11 Tabel Berkas Surat Kuasa Tanah
Tabel Berkas Surat Kuasa Tanah merupakan tabel yang digunakan untuk
menyimpan data Berkas Surat Kuasa Tanah, dengan format seperti terlihat pada
Tabel 3.11.
75
Tabel 3.11 Struktur Tabel Berkas_surat_kuasa_tanah
3.2.2.3.12 Tabel Berkas Surat Perjanjian
Tabel Berkas Surat Perjanjian merupakan tabel yang digunakan untuk
menyimpan data Berkas Surat Perjanjian, dengan format seperti terlihat pada Tabel
3.12
Tabel 3.12 Struktur Tabel Berkas_surat_perjanjian
76
3.2.2.3.13 Tabel Data Koperasi
Tabel Data Koperasi merupakan tabel yang digunakan untuk menyimpan data
kebijakan koperasi, dengan format seperti terlihat pada Tabel 3.13
Tabel 3.13 Struktur Tabel Data_koperasi
3.2.2.3.14 Tabel Instansi
Tabel Instansi merupakan tabel yang digunakan untuk menyimpan data
Instansi, dengan format seperti terlihat pada Tabel 3.14
Tabel 3.14 Struktur Tabel Instansi
3.2.2.3.15 Tabel Jaminan Kendaraan
Tabel Jaminan Kendaraan merupakan tabel yang digunakan untuk menyimpan
data jaminan kendaraan, dengan format seperti terlihat pada Tabel 3.15
77
Tabel 3.15 Struktur Tabel Jaminan Kendaraan
3.2.2.3.16 Tabel Jaminan Tanah
Tabel Instansi merupakan tabel yang digunakan untuk menyimpan data
Instansi, dengan format seperti terlihat pada Tabel 3.16
Tabel 3.16 Struktur Tabel Jaminan Tanah
3.2.2.3.17 Tabel Jurnal Transaksi
Tabel Jurnal Transaksi merupakan tabel yang digunakan untuk menyimpan
data Jurnal Transaksi, dengan format seperti terlihat pada Tabel 3.17
78
Tabel 3.17 Struktur Tabel Jurnal_transaksi
3.2.2.3.18 Tabel Log Login
Tabel Log Login merupakan tabel yang digunakan untuk menyimpan data
siapa saja yang telah login ke sistem, dengan format seperti terlihat pada Tabel 3.1
Tabel 3.18 Struktur Tabel Log_login
3.2.2.3.19 Tabel Log Request
Tabel Loq Request merupakan tabel yang digunakan untuk menyimpan data
request layanan yang diminta dari client ke server, dengan format seperti terlihat pada
Tabel 3.19
79
Tabel 3.19 Struktur Tabel Log_request
3.2.2.3.20 Tabel Pinjaman
Tabel Pinjaman merupakan tabel yang digunakan untuk menyimpan data
Pinjaman, dengan format seperti terlihat pada Tabel 3.20
Tabel 3.20 Struktur Tabel Pinjaman
80
3.2.2.3.21 Tabel Tabungan Pokok
Tabel Tabungan Pokok merupakan tabel yang digunakan untuk menyimpan
data Tabungan Pokok, dengan format seperti terlihat pada Tabel 3.21
Tabel 3.21 Struktur Tabel Tabungan_pokok
3.2.2.3.22 Tabel Tabungan Sukarela
Tabel Tabungan Sukarela merupakan tabel yang digunakan untuk menyimpan
data Tabungan Sukarela, dengan format s seperti terlihat pada Tabel 3.22
Tabel 3.22 Struktur Tabel Tabungan_sukarela
3.2.2.3.23 Tabel Tabungan Wajib
Tabel Tabungan Wajib merupakan tabel yang digunakan untuk menyimpan
data Tabungan Wajib, dengan format seperti terlihat pada Tabel 3.23
81
Tabel 3.23 Struktur Tabel Tabungan_wajib
3.2.2.3.24 Tabel User Koperasi
Tabel User Koperasi merupakan tabel yang digunakan untuk menyimpan data
User Koperasi, dengan format seperti terlihat pada Tabel 3.24
Tabel 3.24 Struktur Tabel User_koperasi
82
3.1.2. Design User Interface
3.1.2.1. Form Setting IP
Gambar 3.82 Gambar Form Seeting IP
3.1.2.2. Form Login
Gambar 3.83 Gambar Form Login
3.1.2.3. Sistem Admin
3.2.3.3.1 Form User Sistem
Gambar 3.84 Gambar Form User Admin
84
3.1.2.4. Sistem Manager
3.1.2.4.1. Form Data Koperasi
Gambar 3.86 Gambar Form Data Koperasi
3.1.2.4.2. Form Instansi
Gambar 3.87 Gambar Form Instansi
85
3.1.2.4.3. Form Instansi Cari
Gambar 3.88 Gambar Form Instansi Cari
3.1.2.4.4. Form Penyetujuan Pinjaman
Gambar 3.89 Gambar Form Penyetujuan Pinjaman
86
3.1.2.4.5. Form Pinjaman
Gambar 3.90 Gambar Form Pinjaman
3.1.2.4.6. Form List Pinjaman
Gambar 3.91 Gambar Form List Pinjaman
87
3.1.2.5. Sistem Petugas
3.1.2.5.1. Transaksi
3.1.2.5.1.1. Form Anggota
Gambar 3.92 Gambar Form Anggota
3.1.2.5.1.2. Form Tabungan Wajib
Gambar 3.93 Gambar Form Tabungan Wajib
88
3.1.2.5.1.3. Form Tabungan Sukarela
Gambar 3.94 Gambar Form Tabungan Sukarela
3.1.2.5.1.4. Form Penarikan Tabungan
Gambar 3.95 Gambar Form Penarikan Tabungan
89
3.1.2.5.1.5. Form Pinjaman Cari
Gambar 3.96 Gambar Form Pinjaman Cari
3.1.2.5.1.6. Form Angsuran
Gambar 3.97 Gambar Form Angsuran
90
3.1.2.5.2. Berkas
3.1.2.5.2.1. Form Berkas Permohonan Kredit
Gambar 3.98 Gambar Form Berkas Permohonan Kredit
91
3.1.2.5.2.2. Form Berkas Hasil Peninjauan
Gambar 3.99 Gambar Form Berkas Hasil Peninjauan
3.1.2.5.2.3. Form Berkas Surat Perjanjian Kredit
Gambar 3.100 Gambar Form Surat Perjanjian Kredit
92
3.1.2.5.2.4. Form Berkas Serah Terima Jaminan
Gambar 3.101 Gambar Form Berkas Serah Terima Jaminan
3.1.2.5.2.5. Form Berkas Surat Kuasa Kendaraan
Gambar 3.102 Gambar Form Berkas Surat Kuasa Kendaraan
93
3.1.2.5.2.6. Form Berkas Surat Kuasa Tanah
Gambar 3.103 Gambar Form Berkas Surat Kuasa Tanah
3.1.2.5.2.7. Form Berkas Surat Kuasa Alokasi Dana
Gambar 3.104 Gambar Form Berkas Surat Kuasa Alokasi Dana
94
3.1.2.5.2.8. Form Berkas Berita Pengembalian Barang
Gambar 3.105 Gambar Form Berkas BeritaPpengembalian Barang
3.1.2.5.3. Laporan
3.1.2.5.3.1. Form Laporan Peranggota
Gambar 3.106 Gambar Form Laporan Peranggota
95
3.1.2.5.3.2. Form Laporan Tabungan
Gambar 3.107 Gambar Form Laporan Tabungan
3.1.2.5.3.3. Form Laporan Pinjaman
Gambar 3.108 Gambar Form Laporan Pinjaman
96
3.1.2.5.3.4. Form Laporan Angsuran
Gambar 3.109 Gambar Form Laporan Angsuran
3.1.2.5.3.5. Form Laporan Harian
Gambar 3.110 Gambar Form Laporan Harian
97
3.1.2.5.3.6. Form Laporan Neraca
Gambar 3.111 Gambar Form Laporan Neraca
3.1.2.5.3.7. Form Laporan Rugi Laba
Gambar 3.112 Gambar Form Laporan Rugi Laba
98
3.2.4 Desain Input
3.2.4.1. Kode Anggota
Tabel 3.25 Tabel Desain Input Kode Anggota
Kode Inputan Keterangan KBJ merupakan kependekkan dari Koperasi Bintang Jaya 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
KBJ/08/02/07/00006
000006 merupakan no urut
3.2.4.2. Kode Tabungan Pokok
Tabel 3.26 Tabel Desain Input Kode Tabungan Pokok
Kode Inputan Keterangan TW merupakan kependekan dari tabungan wajib 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
TP/08/02/07/006
006 merupakan no urut
3.2.4.3. Kode Tabungan Wajib
Tabel 3.27 Tabel Desain Input Kode Tabungan Wajib
Kode Inputan Keterangan TW merupakan kependekan dari tabungan wajib 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
TW/08/02/07/006
006 merupakan no urut
99
3.2.4.4. Kode Tabungan Sukarela
Tabel 3.28 Tabel Desain Input Kode Tabungan Sukarela
Kode Inputan Keterangan TS merupakan kependekan dari tabungan sukarela 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
TS/08/02/07/006
006 merupakan no urut
3.2.4.5. Kode Pinjaman
Tabel 3.29 Tabel Desain Input Kode Pinjaman
Kode Inputan Keterangan PJ merupakan kependekan dari pinjaman 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
PJ/08/02/07/006
006 merupakan no urut
3.2.4.6. Kode Angsuran
Tabel 3.30 Tabel Desain Input Kode Angsuran
Kode Inputan Keterangan AP merupakan kependekan dari Angsuran Pinjaman 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
AP/08/02/07/006
006 merupakan no urut
100
3.2.4.7. Kode Berkas Permohonan Kredit
Tabel 3.31 Tabel Desain Input Kode Berkas Permohonan Kredit
Kode Inputan Keterangan BPK merupakan kependekan dari Berkas Permohonan Kredit 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
BPK/08/02/07/00006
00006 merupakan no urut
3.2.4.8. Kode Berkas Hasil Peninjauan
Tabel 3.32 Tabel Desain Input Kode Berkas Hasil Peninjauan
Kode Inputan Keterangan BHP merupakan kependekan dari Berkas Hasil Peninjauan 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
BHP/08/02/07/00006
00006 merupakan no urut
3.2.4.9. Kode Berkas Surat Perjanjian
Tabel 3.33 Tabel Desain Input Kode Berkas Surat Perjanjian
Kode Inputan Keterangan BSP merupakan kependekan dari Berkas Surat Perjanjian 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
BSP/08/02/07/00006
00006 merupakan no urut
101
3.2.4.10.Kode Berkas Surat Kuasa Alokasi Dana
Tabel 3.34 Tabel Desain Input Kode Berkas Surat Kuasa Alokasi Dana
Kode Inputan Keterangan BAD merupakan kependekan dari Berkas Alokasi Dana 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
BAD/08/02/07/00006
00006 merupakan no urut
3.2.4.11.Kode Berkas Surat Kuasa Kendaraan
Tabel 3.35 Tabel Desain Input Kode Berkas Surat Kuasa Kendaraan
Kode Inputan Keterangan BSK/K merupakan kependekan dari Berkas Surat Kuasa Kendaraan 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
BSK/K/08/02/07/00006
00006 merupakan no urut
3.2.4.12.Kode Berkas Surat Kuasa Tanah
Tabel 3.36 Tabel Desain Input Kode Berkas Surat Kuasa Tanah
Kode Inputan Keterangan BSK/T merupakan kependekan dari Berkas Surat Kuasa Tanah 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
BSK/T/08/02/07/00006
00006 merupakan no urut
102
3.2.4.13.Kode Berkas Berita Serah Terima Jaminan
Tabel 3.37 Tabel Desain Input Kode Berkas Berita Serah Terima Jaminan
Kode Inputan Keterangan BST merupakan kependekan dari Berkas Serah Terima Jaminan 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
BST/08/02/07/00006
00006 merupakan no urut
3.2.4.14.Kode Berkas Berita Pengembalian Barang
Tabel 3.38 Tabel Desain Input Kode Berkas Berita Pengembalian Barang
Kode Inputan Keterangan BSK/K merupakan kependekan dari Berkas Pengambilan Barang 08 merupakan tahun transaksi 02 merupakan bulan transaksi 07 merupakan tanggal transaksi
BPB/08/02/07/00006
00006 merupakan no urut
103
3.2.5 Desain Output
3.2.5.1 Slip Pembayaran Tabungan Pokok
KSP BINTANG JAYA SLIP SETORAN
TABUNGAN POKOK No. Anggota : ...................................................................................................... Nama : ...................................................................................................... Tanggal : ....................................................................................................... Uang Sejumlah : ....................................................................................................... Kasir Petugas Penyetor
Gambar 3.113 Gambar Desain Slip PembayaranTabungan Pokok
3.2.5.2 Slip Pembayaran Tabungan Wajib
KSP BINTANG JAYA
SLIP SETORAN TABUNGAN WAJIB
No. Anggota : ...................................................................................................... Nama : ...................................................................................................... Tanggal : ....................................................................................................... Uang Sejumlah : ....................................................................................................... Untuk pembayaran tabungan wajib :........ bulan Dari bulan ...................... sampai bulan ........................... . Kasir Petugas Penyetor
Gambar 3.114 Gambar Desain Slip PembayaranTabungan Wajib
Saldo : .........................
104
3.2.5.3 Slip Pembayaran Tabungan Sukarela
KSP BINTANG JAYA
SLIP SETORAN TABUNGAN SUKARELA
No. Anggota : ...................................................................................................... Nama : ...................................................................................................... Uang Sejumlah : ...................................................................................................... Saldo : ....................................................................................................... Surakarta, ......................................
Gambar 3.115 Gambar Desain Slip PembayaranTabungan Sukarela
3.2.5.4 Slip Penarikan Tabungan
KSP BINTANG JAYA
SLIP PENARIKAN TABUNGAN
No. Anggota : ...................................................................................................... Nama : ...................................................................................................... Uang Sejumlah : ...................................................................................................... Saldo : ....................................................................................................... Surakarta, ......................................
Gambar 3.116 Gambar Desain Slip Penarikan Tabungan
105
3.2.5.5 Slip Penerimaan Uang
KOPERASI SIMPAN PINJAM BINTANG JAYA
Jl. Kolonel Sutarto No. 48 Surakarta
TANDA PENERIMAAN UANG
Yang bertanda tangan dibawah ini saya: No. Anggota : ...................................................................................................... Nama : ...................................................................................................... Alamat : ....................................................................................................... Pekerjaan : ....................................................................................................... Mengaku telah menerima uang dari KSP “BINTANG JAYA” uang sebesar ........................... sebagai pinjaman sesuai surat perjanjian pinjam-meminjam no...................tanggal.................. Surakarta, ............................... Yang menerima uang tersebut diatas ( ...................................................)
Gambar 3.117 Gambar Desain Slip Penerimaan Uang
3.2.5.6 Slip Penerimaan Bersih
KOPERASI SIMPAN PINJAM BINTANG JAYA
Jl. Kolonel Sutarto No. 48 Surakarta
Nama Peminjam : ................................................ Besarnya Pinjaman : ................................................
Perincian Potongan Provisi : ................................................ Adm : ................................................ Materai : ................................................ Kartu Anggota : ................................................ Notaris : ................................................ _________________________ Total : ........................... Terima Bersih : ........................... Surakarta, ....................................... Manager Gambar 3.118 Gambar Desain Slip Penerimaan Bersih
106
3.2.5.7 Slip Alokasi Dana
KSP BINTANG JAYA SLIP SETORAN ALOKASI DANA
No. Anggota : ...................................................................................................... Nama : ...................................................................................................... Tanggal : ....................................................................................................... Uang Sejumlah : ....................................................................................................... Untuk dialokasikan sebagai : a. Angsuran : ....................................................................................................... b. Bunga : ....................................................................................................... Kasir Petugas Penyetor
Gambar 3.119 Gambar Desain Slip Alokasi Dana
3.2.5.8 Slip Angsuran
KOPERASI SIMPAN PINJAM BINTANG JAYA
Jl. Kolonel Sutarto No. 48 Surakarta
TANDA PENERIMAAN UANG
Terima Dari : ...................................................................................................... Pekerjaan / Instansi : ...................................................................................................... Alamat : ....................................................................................................... Uang Sebesar : ....................................................................................................... Untuk membayar angsuran pinjaman bulan ........................ yang ke........................................ Dengan rician pembayaran sebagai berikut : - Angsuran : .............................. - Bunga : .............................. - Denda : .............................. Surakarta,.................
Gambar 3.120 Gambar Desain Slip Angsuran
107
3.2.5.9 Slip Angsuran yang Menggunakan Alokasi Dana
KOPERASI SIMPAN PINJAM BINTANG JAYA
Jl. Kolonel Sutarto No. 48 Surakarta
TANDA PENERIMAAN UANG
Terima Dari : ...................................................................................................... Pekerjaan / Instansi : ...................................................................................................... Alamat : ....................................................................................................... Uang Sebesar : ....................................................................................................... Untuk membayar angsuran pinjaman bulan ........................ yang ke........................................ Dengan rician pembayaran sebagai berikut : - Angsuran : .............................., dengan menggunkan alokasi dana ............... - Bunga : .............................., dengan menggunkan alokasi dana ............... - Denda : .............................. Surakarta,.................
Gambar 3.121 Gambar Desain Slip Angsuran yang Menggunakan Alokasi Dana
108
3.2.5.10 Berkas Permohonan Kredit
Hal : PERMOHONAN KREDIT Kepada Yth. Manager KSP BINTAG JAYA Di Jl. Kolonel Sutarto No. 48 Surakara Yang bertanda tangan di bawah ini, saya bermaksud mengajukan permohonan kredit di KSP BINTANG JAYA dengan data sebagai berikut : 1. Nama :............................................................................................ 2. Alamat :............................................................................................ 3. Jenis Usaha :............................................................................................ 4. Mulai berdiri tanggal :............................................................................................ 5. Jenis perusahaan :............................................................................................ 6. Modal sampai saat ini :............................................................................................ 7. Hasil produksi a. Jumlah barang :............................................................................................ b. Pendapatan kotor :............................................................................................ c. Pendapatan bersih :............................................................................................ 8. Biaya operasional :............................................................................................ 9. Masih memiliki pinjaman di Bank :............................................................................................ a. Besar pinjaman :............................................................................................ b. Diangsur sejak :............................................................................................ 10. a. Besar kredit yang diminta :............................................................................................ b. Untuk masa jangka waktu :............................................................................................ c. Akan digunakan untuk :............................................................................................ Syarat-syarat yang dilampirkan sbb: a. Foto copy KTP/SIM Surat Keterangan :.................................................... b. Foto copy Surat Ijin Usaha Perusahaan (SIUP) :.................................................... c. Foto copy Sertifikat yang akan dijaminkan :.................................................... d. Foto copy BPKB/STNK yang dijaminkan :.................................................... e. Gesekan No.Rangka, No.Mesin :.................................................... f. Foto copy KK :.................................................... Surakarta, .................. Pemohon (................................ )
Gambar 3.122 Gambar Desain Berkas Permohonan Kredit
109
3.2.5.11 Berkas Hasil Peninjauan
KOPERASI SIMPAN PINJAM BINTANG JAYA
Jl.Kolonel Sutarto No.48, Surakarta
LAPORAN HASIL PENINJAUAN KEPADA CALON DEBITUR Nama : ...................................................................................................................................... Alamat : ...................................................................................................................................... Pekerjaan : ...................................................................................................................................... No.K.T.P : ...................................................................................................................................... 1. Barang Jaminan
a.1. Barang yang diserahkan : ........................................................................................... 2. Tercatat/terdaftar atas nama : ........................................................................................... 3. Surat Bukti Kepemilikan : ........................................................................................... b. Adakah barang tersebut merupakan bersama dengan orang lain : ........................................................................................... Terangkan status hubungannya : ........................................................................................... c. Penjelasan tentang barang-barang 1. Tentang Tanah Persil Nomor
Nomor Panjang Lebar Luas Lokasi Jenis Harga Taksiran
2. Tentang Kendaraan
Jenis Merk Tahun No Rangka No Mesin No BPKB Harga Taksiran
2. Usaha Peminjam / Nasabah
1. Sejak kapan menyelenggarakan :............................................................................. 2. Usaha tersebut :............................................................................. 3. Berapakah modal yang tersedia : ............................................................................ 4. Darimanakah mendapatkan modal tersebut : ............................................................................
3. Rencana Penggunaan Kredit 1. Jumlah kredit yang dikehendaki : ............................................................................ 2. Untuk masa jangka waktu :............................................................................ 3. Alokasi dana kredit : ...........................................................................
110
2. Karakter Karakter atau kebiasaan yang berlaku : ............................................................................ dalam usaha
3. Kekayaan-kekayaan Lain 1. Barang yang menjadi milik / assert lain : ............................................................................ 2. Pekerjaan/Penghasilan tetap lainnya : ............................................................................
4. Analisa Usaha 5. a. Pertimbangan b. Usul Surakarta, ..................
PEMERIKSA I PEMERIKSA II (..............................) (..............................)
Gambar 3.123 Gambar Desain Berkas Hasil Peninjauan
111
3.2.5.12 Berkas Surat Perjanjian Kredit
KOPERASI SIMPAN PINJAM BINTANG JAYA
Jl. Kolonel Sutarto No. 48 Surakarta
PERJANJIAN MEMBUKA KREDIT
No. Anggota : ................... No. : ................... Yang bertanda tangan di bawah ini : 1. .............................. dalam hal ini bertindak untuk dan atas nama KSP BINTANG JAYA yang
berkedudukan di Kl. Kolonel Sutarto No. 48, Surakarta, selanjutnya disebut sebagai pihak pertama 2. ................................. pekerjaan ........................................... bertempat tinggal di ..............................
dalam hal ini bertindak untuk dan atas nama diri sendiri dan untuk atas nama .................................. selanjutnya disebut Pihak Kedua / Peminjam bersama-sama menyatakan setuju mengadakan perjanjian dengan Pihak Pertama Para pihak menerangkan bahwa saling menyetujui : Bahwa KSP BINTANG JAYA telah mengikatkan diri untuk memberi suatu kredit secara kredit secara Angsuran kepada Pihak Kedua / Peminjam yang menerangkan telah mengikatkan diri untuk mengambil / menerima kredit tersebut dan menyatakan bertanggungjawab secara sendiri-sendiri dan atau secara tanggung renteng untuk membayar kredit yang telah diterima dari KSP BINTANG JAYA serta sanggup untuk memenuhi segala kewajiban lainnya yang timbul dari perjanjian kredit ini.
Pasal : 1 Pihak Pertama memberikan perjanjian uang (kredit) kepada Pihak Kedua uang sejumlah ................ ........ dengan jangka waktu .................. bulan, sejak ditandatangani, dan Pihak Kedua mengaku dengan sah kepada Pihak Pertama menerima uang tersebut diatas.
Pasal : 2 Untuk penerimaan kredit tersebut Pihak Kedua / Peminjam wajib membayar Pokok, Bunga, Provisi dan Administrasi Kredit yang bedarnya ditetapkan sebagai berikut : Bunga ........ % per bulan, diperhitungkan dari pinjaman sebesar Rp. ............... sehingga untuk pertama kali paling lambat tanggal .................... Pihak Kedua wajib membayar Pokok dan Bunga sebesar .................. Provisi .............% dari pinjaman kredit dan Administrasi sebesar ...............% dari pinjaman dan dibebankan segera setelah penandatanganan perjanjian kredit ini.
Pasal : 3 Pihak Kedua diwajibkan mengikat diri kepada Pihak Pertama untuk membayar kembali lunas pinjamannya tersebut paling lambat tanggal ......................... secara perhitungan bulanan.
Pasal : 4 Atas keterlambatan pembayaran yang menyebabkan tunggakan, baik tunggakan pokok maupun bunga, Pihak Kedua dikenakan denda atas tunggakan tersebut yang besarnya 1 % perbulan atas suku bunga yang dibebankan oleh Pihak Pertama.
112
Pasal : 5 Guna menjamin agar Pihak Kedua / Peminjam membayar kredit tersebut kepada Pihak Pertama dengan semestinya sebagai akibat / pelaksanaan pasal 1, 2, 3 dan 4, menurut perjanjian kredit ini, dan segala sesuatu yang timbul atas kekuatan perjanjian ini baik karena hutang pokok, bunga, provisi dan ongkos-ongkos serta biaya-biaya lainnya. Peminjam dan atau Pihak Ketiga selaku pemberi jaminan (Penjamin bersedia menyerahkan kepada Pihak Pertama berupa :.........................) Atas jaminan-jaminan tersebut di atas diberlakukan ikatan sebagai yang tercantum ayat ..... dibawah ini a Atas penyerahan jaminan berupa tanah / bangunan dan benda-benda tidak bergerak
lainnya maka peminjam dan Pihak Ketiga (Penjamin) memberi hak kepada Pihak Pertama untuk dilakukan ikatan berupa legalisasi dan pembebanan Hak Tangungan
b.1 Atas penyerahan jaminan berupa benda/barang bergerak yang dipergunakan oleh Peminjam/Pemberi Jaminan, maka Peminjam atau Penjamin menyerahkan hak miliknya secara kepercayaan (FEO)
b.2 Barang yang hak miliknua diserahkan secara kepercayaan keapda dan diterima oleh Pihak Pertama tetap dijalankan dan dipegang oleh Peminjam / Pihak Ketiga (Penjamin), dengan dimulai perjanjian ini maka Peminjam / Pihak Ketiga menggunkan sebagai Peminjam Pakai
b.3 Barang yang hak miliknya diserahkan secara kepercayaan dan diterima oleh Pihak Pertama, mulai hari ini menjadi milik Pihak Pertama dan oleh karenanya Pihak Pertama berhak sepenuhnya atas barang tersebut. Penyerahan hak milik secara kepercayaan (FEO) tersebut telah terjadi dengan syarat yang membatalkan, yaitu hutang tersebut, baik hutang pokok, bunga, biaya-biaya dan ongkos-ongkos serta kewajiban-kewajiban lain telah dibayar lunas oleh Peminjam / Pemberi Jaminan, maka dengan sendiri Peminjam / Pemberi Jaminan menurut hukum menjadi milik dari barang yang telah diserahkan kepada Pihak Pertama sebagai jaminan
b.4 Dalam keadaaan bagaimanapun juga Pihak Kedua / Peminjam bertanggung jawab atas barang-barang yang telah diserahkan sebagai tanggungan dan wajib untuk memelihara barang-barang jaminan tersebut sebaik-baiknya dan memperbaiki kerusakan-kerusakan yang timbul dengan biaya sendiri. Pihak Kedua / Peminjam mengganti barang jaminan bila dipandang perlu dan tidak akan melakukan perubahan penguasaan atau kepemilikan terhadap barang-barang tersebut tanpa ijin dari Pihak Pertama.
Pasal : 6
Peminjam berhak membayar kredit yang diterimanay baik seluruhnya ataupun sebagian, sebelum tanggal jatuh tempo perjanjian kredit ini. Dengan jatuh tempo perjanjian kredit ini, Peminjam harus membayar lunas seluruh kredit yang telah diterimanya, termasuk bunga, denda, dan ongkos-ongkos lain yang timbul dengan adanya perjanjian kredit ini.
Pasal : 7 Atas Permintaan dari Peminjam, Pihak Pertama dapat memberikan persetujuan memperpanjang waktu berakhirnya perjanjian dengan syarat-syarat yang telah ditentukan oleh Pihak Pertama.
Pasal : 8 Apabila Pihak Kedua dari sebab apapun juga tidak dapat memenuhi salah satu atau lebih kewajiban yang timbul dari perjanjian, Pihak Pertama melaksanakan tindakan-tindakan yang dianggap perlu, diantaranya menjual dimuka umum atau dibawah tangan barang/surat jaminan yang diserahkan sebagai tanggungan seperti tersebut dalam pasal 5 perjanjian ini, dan memberi kuasa kepada Pihak Pertama dengan lebih dahulu (Preferensi) untuk menerima jumlah penghasilan dan hak-hak lain yang timbul sebagai akibat hubungan kerja Pihak Kedua dalam
113
jabatan tersebut di atas dengan pihak lain dan apabila hasil penjualan barang/surat jaminan tersebut dalam pasal 5 tidak mencukupi, maka Pihak Kedua berkewajiban untuk menyerahkan barang/surat jaminan lain yang menjadi miliknya kepada Pihak Pertama sampai Pihak Kedua memenuhi seluruh kewajibannya/
Pasal : 9 Jika Pihak Kedua tidak membayar, baik pokok, bunga berikut denda sampai dengan 3 (kali) berturut-turut, maka Pihak Pertama berhak untuk melaksanakan ketentuan dalam pasal 8.
Pasal : 10 Semua biaya yang timbul sebagai akibat tidak ditepatinya perjanjian tersebut di atas ditanggung sepenuhnya oleh Pihak Kedua.
Pasal : 11 Pihak Kedua menyetujui dan mengikat diri dan tunduk kepda peraturan-peraturan dan kebiasaan Pihak Pertama tentang pemberian pinjaman yang telah ada atau dikemudian hari akan diadakan.
Pasal : 12 Para Pihak menerangkan untuk segala akibat yang timbul dari perjanjian ini, memilih tempat kediaman hukum (domicilie) yang umum dan tetap di Kantor Panitera Pengadilan Negeri di Surakarta Demikian perjanjian kredit ini dibuat dan ditandatangani di Surakarta . pada hari ini .......... tanggal ............... Pihak Pertama Pihak Kedua Disetujui, ................... KSP BINTANG JAYA (..................................) (..................................) (..................................)
Gambar 3.124 Gambar Desain Berkas Surat Perjanjian Kredit
114
3.2.5.13 Berkas Surat Kuasa Tanah
SURAT KUASA Yang bertanda tangan dibawah ini : Nama : .................................................................... Alamat : .................................................................... No. KTP : .................................................................... Pekerjaan : .................................................................... Memberi kuasa pada : Nama : .................................................................... Jabatan : .................................................................... Dalam hal ini bertindak untuk dan atas nama KSP BINTANG JAYA Surakarta yang di Jl. Kolonel Sutarto No. 48 Surakarta. Untuk mengambil dan menjual barang / surat jaminan berupa : Jenis tanah : .................................................................... Ukuran : Panjang ............... M, Lebar ....................M Luas : ..............................M2 Lokasi : .................................................................... Surat kuasa ini kami buat apabila saya tidak bisa mengangsur pinjaman kepada KSP BINTANG JAYA baik pokok dan bunga, berikut denda serta kewajiban-kewajiban lain lebih dari 3 (tiga) bulan dan melunasi pinjaman sampai dengan .................................. Demikian Surat Kuasa ini, kami buat dengan sebenarnya tanpa ada unsur paksaan dan penuh tanggung jawab. Dibuat di Surakarta, tanggal ................................ Yang menerika kuasa Yang memberi kuasa Disetujui, ................................. (................................) (.................................) (..................................)
SAKSI-SAKSI 1. Nama : .................................. (................................) 2. Nama : .................................. (................................)
Gambar 3.125 Gambar Desain Berkas Surat Kuasa Tanah
115
3.2.5.14 Berkas Surat Kuasa Kendaraan
SURAT KUASA (MENARIK KEMBALI DAN MENJUAL KENDARAAN)
Yang bertanda tangan di bawah ini : Nama : ...................................................................................... Alamat : ...................................................................................... No. KTP : ...................................................................................... Selaku pemilik kendaraan kuitansi pembelian tanggal .......................... dengan data tersebut di bawah ini. Dengan memberi kuasa kepada : Nama : ...................................................................................... Jabatan : ...................................................................................... Dalam hal ini bertindak untuk dan atas nama KSP BINTANG JAYA, yang berkedudukan di Jl.Kolonel Suratto No.48, Surakarta.
SECARA KHUSUS Untuk MENARIK KEMBALI kendaraan, baik dari kekuasaan saya atau pihak ketiga/orang lain yang menguasainya, yaitu kendaraan bermotor dengan ciri-ciri tersebut dibawah ini : Jenis Kendaraan : ...................................................................................... Merk /Type Kendaraan : ...................................................................................... Tahun / Warna : ...................................................................................... No.Landasan/Rangka : ...................................................................................... Nomor Mesin : ...................................................................................... Nomor BPKB : ...................................................................................... Atas Nama : ...................................................................................... Selanjutnya saya juga memberi KUASA kepada KSP BINTANG JAYA, untuk menjual kendaraan tersebut diatas dan menentukan sendiri harganya sesuai dengan harga pasar, dan menerima hasil penjualan kendaran tersebut untuk diperhitunykan dengan sisa pinjaman kredit berikut bunga, serta kewajiban-kewajiban lain yang semestinya harus saya bayarkan kepada KSP BINTANG JAYA sesuai dengan Perjanjian ............................. tanggal .......................... Surat kuasa ini dinyatakan berlaku terhitung sejak saya melanggar ketentuan atau tidak memenuhi kewajiban-kewajiban, serta 3 (tiga) bulan berturut-turut tidak melakukan pembayaran angsuran, sebagaimana ditetapkan dalam perjanjian tersebut. Kuasa mana diberikan kepada Hak Subtitusi dan tidka dapat ditarik kembali karena merupakan bagian yang tidak dapat dipidahkan dari perjanjian tersebut, serta akan berakhir karena sebab-sebab yang tercantum di dalam pasa l 1813, Kitab Undang Undang Hukum Perdata. Demikian surat kuasa ini saya buat dengan penuh kesadaran dan tanpa paksaan dari pihak manapun. Dibuat di Surakarta ............................. PENERIMA KUASA PEMBERI KUASA DISETUJUI,.............. (................................) (...............................) (................................)
SAKSI-SAKSI 1. Nama : ...................................................................................... (................................) 2. Nama : ...................................................................................... (................................)
Gambar 3.126 Gambar Desain Berkas Surat Kuasa Kendaraan
116
3.2.5.15 Berkas Surat Kuasa Alokasi Dana
SURAT KUASA ALOKASI DANA NO :....................................................
Yang bertanda tangan dibawah ini : Nama : .................................................................... Alamat : .................................................................... Pekerjaan : .................................................................... Memberi kuasa pada : Nama : .................................................................... Jabatan : .................................................................... Dalam hal ini bertindak untuk dan atas nama KSP BINTANG JAYA Surakarta yang di Jl. Kolonel Sutarto No. 48 Surakarta. Untuk mengalokasikan dana yang pihak pertama miliki ke rekening yang telah ditentukan oleh KSP BINTANG JAYA Demikian Surat Kuasa ini, kami buat dengan sebenarnya tanpa ada unsur paksaan dan penuh tanggung jawab. Dibuat di Surakarta, tanggal ................................ Yang menerika kuasa Yang memberi kuasa Disetujui, ................................. (................................) (.................................) (..................................)
SAKSI-SAKSI 1. Nama : .................................. (................................) 2. Nama : .................................. (................................)
Gambar 3.127 Gambar Desain Berkas Surat Kuasa Alokasi Dana
117
3.2.5.16 Berkas Berita Serah Terima Jaminan
KSP BINTANG JAYA Jl. Kolonel Sutarto No. 48 Surakarta
BERITA ACARA SERAH TERIMA JAMINAN NO : .........................................................................
Pada hari ini ................................, tanggal .................................. telah dilakukan serah terima barang/
surat jaminan berupa :
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
Antara KSP BINTANG JAYA yang berkedudukan di Jl. Kolonel Sutarto No. 48 Surakarta
Dalam hal ini diwakili oleh : .........................................................................
Jabatan : .........................................................................
Selanjutnya sebagai PIHAK PERTAMA / YANG MENERIMA, dan
Nama : .........................................................................
Alamat : .........................................................................
No.perjanjian / Anggota : .........................................................................
Selanjutnya disebut sebagai PIHAK KEDUA / YANG MENYERAHKAN
Demikian Berita Acara Terima Jmainan ini dibuat dengan sebenarnya tanpa ada unsur paksaan dan
penuh rasa tanggung jawab.
PIHAK KEDUA / YANG MENYERAHKAN PIHAK PERTAMA / YANG MENERIMA
(.......................................................................) (....................................................................)
Gambar 3.128 Gambar Desain Berkas Berita Acara Serah Terima Jaminan
118
3.2.5.17 Berkas Berita Acara Pengembalian Barang
KSP BINTANG JAYA Jl. Kolonel Sutarto No. 48
Surakarta
BERITA ACARA PENGEMBALIAN BARANG / SURAT JAMINAN
NO : ......................................................................... Pada hari ini ................................, tanggal .................................. telah dilakukan pengembalian barang/ surat jaminan berupa : ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... Antara KSP BINTANG JAYA yang berkedudukan di Jl. Kolonel Sutarto No. 48 Surakarta Dalam hal ini diwakili oleh : ......................................................................... Jabatan : ......................................................................... Selanjutnya sebagai PIHAK PERTAMA / YANG MENERIMA, dan Nama : ......................................................................... Alamat : ......................................................................... No.perjanjian / Anggota : ......................................................................... Selanjutnya disebut sebagai PIHAK KEDUA / YANG MENYERAHKAN Barang / surat jamian tersebut diserahkan kembali oleh Pihak Pertama kepada Pihak Kedua karena alasan : ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... Demikian Berita Acara Pengembalian Jaminan ini dibuat sebanyak dua lembar dan diberikan kepada masing-masing pihak yang bersangkutan PIHAK KEDUA / YANG MENYERAHKAN PIHAK PERTAMA / YANG MENERIMA Barang / surat jaminan telah kami terima Kembali dengan lengkap dan baik (.......................................................................) (....................................................................)
Gambar 3.129 Gambar Desain Berkas Berita Acara Pengembalian Barang
119
3.2.5.18 Laporan Harian
KSP BINTANG JAYA SURAKARTA LAPORAN HARIAN Tanggal : .....................
PENERIMAAN a. Angsuran : ............................................................................ b. Tabungan Sukarela : ............................................................................ c. Angsuran Alokasi : ............................................................................ d. Bunga Alokasi : ............................................................................ e. Tabungan Pokok : ............................................................................ f. Tabungan Wajib : ............................................................................ g. Bunga : ............................................................................ h. Denda : ............................................................................ i. Provisi : ............................................................................ j. Biaya Administrasi : ............................................................................ k. Biaya Kartu Anggota : ............................................................................ l. Biaya Materai : ............................................................................ m. Biaya Notaris : ............................................................................
_______________________________________ Total : ..................................
PENGELUARAN a. Pinjaman : ............................................................................ b. Penarikan Tabungan : ............................................................................ c. Angsuran Alokasi : ............................................................................ d. Bunga Alokasi : ............................................................................ e. Tabungan Pokok : ............................................................................ f. Tabungan Wajib : ............................................................................ g. Beban Bunga : ............................................................................
_______________________________________ Total : ..................................
Sisa Kas hari ini : ..................................
Mengetahui, Petugas Manager
Gambar 3.130 Gambar Desain Laporan Keuangan
120
3.2.5.19 Laporan Tabungan
KOPERASI BINTANG JAYA LAPORAN TABUNGAN
Periode .................... sampai . ...................
Kode Anggota Nama Tabungan Pokok Tabungan Wajib Tabungan Sukarela
Dst
Gambar 3.131 Gambar Desain Laporan Tabungan
3.2.5.20 Laporan Pinjaman
KOPERASI BINTANG JAYA LAPORAN PINJAMAN
Periode .................... sampai . ...................
Kode Pinjaman Kode Anggota Besar Pinjaman Total Pinjaman Sisa Pinjaman
Dst
Gambar 3.132 Gambar Desain Laporan Pinjaman
3.2.5.21 Laporan Angsuran
LAPORAN ANGSURAN KOPERASI BINTANG JAYA
Periode .................... sampai . ...................
Kode Pinjaman
Kode Anggota Jumlah Bunga
Jumlah Denda
Total Angsuran
Total Angsuran
Dst
Gambar 3.133 Gambar Desain Laporan Angsuran
121
3.2.5.22 Laporan Perseorangan
LAPORAN PERSEORANGAN KOPERASI BINTANG JAYA
Periode .................... sampai . ...................
Kode Anggota : .............................. Nama : .............................. Data Anggota : Tabungan Pokok : ............................... Tabungan Wajib : ............................... Tabungan :................................ Sukarela Pinjaman : ............................... Sisa Pinjaman : ...............................
Surakarta, ..............................
Gambar 3.134 Gambar Desain Laporan Perseorangan
3.2.5.23 Laporan Rugi Laba
KSP BINTANG JAYA SURAKARTA LAPORAN RUGI LABA
Periode ........................sampai..................... PENDAPATAN a. Bunga Pinjaman : ............................................................................ b. Denda Pinjaman : ............................................................................ c. Provisi : ............................................................................ d. Biaya Adm : ............................................................................ e. Biaya Kartu Anggota : ............................................................................ f. Biaya Materai : ............................................................................ g. Biaya Notaris : ............................................................................
_______________________________________ Total : ..................................
PENGELUARAN a. Bunga Pinjaman : ............................................................................
_______________________________________ Total : ..................................
RUGI / LABA : ..................................
Mengetahui, Petugas Manager
Gambar 3.135 Gambar Desain Laporan Rugi Laba
122
3.2.5.24 Laporan Neraca
KSP BINTANG JAYA SURAKARTA LAPORAN NERACA
Periode ........................sampai.....................
No Akun Nama Akun Debet Kredit
111 Kas 112 Piutang 21 Tabungan Sukarela 22 Angsuran Alokasi 23 Bunga Alokasi 31 Tabungan Pokok 32 Tabungan Wajib TOTAL
Gambar 3.136 Gambar Desain Laporan Neraca
3.2.5.25 List Pinjaman
KSP BINTANG JAYA SURAKARTA DAFTAR PINJAMAN ANGGOTA
Periode ........................sampai.....................
Kode Pinjaman
Nama Anggota
Besar Pinjaman
Jumlah Angsuran
Penyetujuan (Ya / Tidak)
Alasan
Gambar 3.137 Gambar Desain List Pinjaman Anggota
123
BAB IV
IMPLEMENTASI SISTEM
Pada bab ini akan dibahas bagaimana pengimplementasian sistem dari tahap
analisis dan desain ke dalam bahasa pemrograman dan pengujian sistem.
4.1. Spesifikasi software dan hardware yang digunakan
Sistem ini dibuat dengan spesifikasi Software dan Hardware sebagai berikut.
1. Spesifikasi Software
a. Sistem Operasi Microsoft Windows XP Professional Service Pack 2.
b. IDE NetBeans 5.5.
c. Basisdata MySQL 5.0.
d. Bahasa Pemrograman J2SE.
2. Spesifikasi Hardware
a. Processor Intel Pentium 4.
b. Memori 512 MB.
c. Harddisk 40 GB.
4.2. Pembuatan Database
Pada bagian ini dilakukan pembuatan database baru pada MySQl yang
didalamnya berisi semua tabel yang dibutuhkan dalam Sistem Informasi Koperasi.
123
124
Adapun langkah-langkah yang dilakukan untuk membuat database baru adalah
sebagai berikut:
1. Membuat database baru dengan nama koperasi.
2. Untuk membuat tabel, dapat menggunakan sintak SQL atau menggunakan
create new table pada MySQL Query Browser dan menggunakan fasilitas
create table pada SQLyog.
Tabel-tabel yang digunakan untuk membangun sistem ini adalah sebagai berikut:
1. Tabel akun
2. Tabel alokasi_dana
3. Tabel anggota
4. Tabel angsuran
5. Tabel berkas_berita_acara_pengembalian_barang
6. Tabel berkas_berita_serah_terima_jaminan
7. Tabel berkas_hasil_peninjauan
8. Tabel berkas_permohonan_kredit
9. Tabel berkas_surat_alokasi_dana
10. Tabel berkas_surat_kuasa_kendaraan
11. Tabel berkas_surat_kuasa_tanah
12. Tabel berkas_surat_perjanjian
13. Tabel data_koperasi
14. Tabel instansi
15. Tabel Jaminan_kendaraan
125
16. Tabel Jaminan_tanah
17. Tabel jurnal_transaksi
18. Tabel log_login
19. Tabel log_request
20. Tabel pinjaman
21. Tabel tabungan_pokok
22. Tabel tabungan_sukarela
23. Tabel tabungan_wajib
24. Tabel user_koperasi
4.3. Seting User Database
Seting user database diperlukan agar semua client dapat mengakses database
server. Seting tersebut dapat dilakukan dengan menggunakan SQLyog, adapun
langkah-langkah yang perlu dilakukan adalah sebagai berikut:
1. Masuk ke database mysql.
2. Data Host pada tabel user diganti dari localhost menjadi % (semua host bisa
mengakses database server).
3. Restart service mysql.
126
4.4. Koneksi Java dan MySQL
Untuk melakukan koneksi dari Java ke MySQL dengan menggunakan JDBC
(Java Databases Connectivity), sehingga diperlukan driver khusus (mysql-connector-
java-5.0.4-bin.jar) yang digunakan untuk menangani proses komunikasi dari client ke
database server.
Untuk memudahkan dalam melakukan konektifitas database dan managemen
sintak SQL maka dibuat file khusus untuk melakukan koneksi dengan database
mysql yang disimpan dalam file koneksi.java. File tersebut akan selalu dipanggil jika
aplikasi client akan mengakses database server.
package konektor; import java.sql.*; import pind_kop_bj.*; public class koneksi { public Connection con; public Statement st; public ResultSet rs; private String set_koneksi; public String url; public static void cekDriver() { try{ Class.forName("com.mysql.jdbc.Driver"); }catch(Exception e) { e.printStackTrace(); } } public void cekKoneksi() { try{ koneksi a = new koneksi(); String k = form_setting_ip.field_url.ge tText(); con = DriverManager.getConnection(k,"ro ot",""); st = con.createStatement(); }catch(Exception e){ e.printStackTrace(); } } }
Dalam file koneksi.java terdapat dua buah fungsi yaitu :
127
1. Fungsi cekDriver()
fungsi cekDriver() digunakan untuk melakukan pengecekan terhadap driver
mysql.
2. Fungsi cekKoneksi()
Fungsi cekKoneksi() digunakan untuk mendefinisikan lokasi dari database
server secara spesifik. Data lokasi server tersebut diperoleh dari form setting
ip yang telah diisi oleh user yang ada di client, yang terdiri dari alamat server
(alamat IP), port mysql dan nama database yang digunakan.
4.5. Pembuatan Antar Muka (User Interface)
Dalam pembuatan antar muka Sistem Informasi Koperasi ini yang sangat
diperhatikan adalah pada subsistem transaksi, karena subsistem tersebut yang paling
sering diakses oleh user.
1. Form Setting IP
Setiap user yang akan memakai sistem, telebih dahulu harus menentukan
koneksi ke database server yang akan dipakai. Data yang harus dimasukkan yaitu
alamat server (alamat ip), port mysql dan nama database yang akan digunakan.
Setelah user memasukkan data, kemudian user akan mengklik button KONEK, jika
koneksi berhasil maka akan muncul pesan “Koneksi Berhasil!’ dan akan muncul form
login untuk user, tetapi jika koneksi tidak berhasil maka akan muncul pesan “Koneksi
Gagal!”. Form Setting IP dapat dilihat pada Gambar 4.1.
128
Gambar 4.1 Gambar Form Setting IP
2. Form Login
Pada form ini user harus memasukkan username dan password untuk proses
otentikasi. Jika username dan password valid maka akan muncul form menu utama
untuk masing-masing level. Dalam sistem informasi koperasi terdapat tiga buah level
yaitu admin, manager dan petugas. Form Login dapat dilihat pada Gambar 4.2
Gambar 4.2 Gambar Form Login
129
3. Form Menu Utama untuk admin
Form menu utama untuk admin merupakan form yang digunakan untuk
menambah, mencari dan menghapus user koperasi. Dari form ini, admin dapat
menampilkan form pencarian user.
Pada form pencarian user, admin dapat mencari data user, kemudian dapat
menghapus data user. Jika admin akan menghapus data user, admin harus memilih
data user dan mengklik kanan data tersebut, setelah itu secara otomatis data tersebut
akan dihapus. Form Menu Utama untuk Admin dapat dilihat pada Gambar 4.3
Gambar 4.3 Gambar Form Menu Utama untuk Admin
130
4. Form Menu Utama (untuk manager dan petugas koperasi)
Form menu utama adalah form awal untuk mengakses form-form yang lain.
Terdapat dua user yang dapat menggunakan form ini, yaitu manager dan petugas
koperasi. Di dalam form menu utama terdapat beberapa menu yang dapat digunakan
oleh user berdasarkan levelnya. Menu transaksi, berkas, dan laporan adalah menu
yang dapat digunakan oleh petugas koperasi, sedangkan menu data dan menu
penyetujuan pinjaman hanya dapat digunakan oleh manager koperasi. Form Menu
Utama untuk Petugas dapat dilihat pada Gambar 4.4.
Gambar 4.4 Gambar Form Menu Utama untuk Manager dan Petugas
131
5. Form Keanggotaan
Form Keanggotaan merupakan form yang digunakan untuk menambah
anggota baru, mengedit dan menghapus data anggota. Jika user akan melakukan
pencarian, user harus mengklik button CARI sehingga muncul form keanggotaan
cari, di dalam form tersebut user dapat memilih data anggota yang akan diedit dengan
mengklik kanan data yang dikehendaki. Form Keanggotaan dapat dilihat pada
Gambar 4.5.
Gambar 4.5 Gambar Form Keanggotaan
132
6. Form Tabungan Wajib
Form tabungan wajib merupakan form yang digunakan menambah, mengedit,
mencari dan mencetak data tabungan wajib. Jika user akan melakukan pencarian,
user harus mengklik button CARI sehingga muncul form tabungan wajib cari, di
dalam form tersebut user dapat mencetak dan memilih data tabungan wajib yang akan
diedit dengan mengklik kanan data yang dikehendaki. Pengeditan data hanya dapat
dilakukan terhadap data yang disimpan pada hari itu juga. Setelah itu, user juga dapat
melakukan pencetakan slip pembayaran tabungan wajib yang baru. Form Tabungan
Wajib dapat dilihat pada Gambar 4.6.
Gambar 4.7 Gambar Form Tabungan Wajib
133
Pada saat user mengklik button SIMPAN (menyimpan data) maka program
akan menjalankan prosedur insert_tab_wajib, berikut merupakan listing program
yang digunakan:
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`insert_tab_waj ib`$$ CREATE PROCEDURE `insert_tab_wajib`( v_kode varchar(30), v_tgl varchar(10), v_besar double, banyak_bulan int, v_user int) BEGIN declare v_kode_wajib varchar(30); declare v_total double; declare v_total_ulang double; declare x int default 2; declare v_wajib double; declare v_kode_valid varchar(30); declare v_ket_valid varchar(10); declare v_tgl_daftar varchar(10); declare v_tgl_max varchar(10); declare v_tgl_ulang varchar(10); -- start transaction; select kode_anggota into v_kode_valid from anggota where kode_anggota = v_kode; -- select tab_wajib into v_wajib from data_koperasi; -- select total_tab_wajib into v_total from tabungan_w ajib where kode_anggota = v_kode order by kode_tab_wajib desc limit 0,1; -- if(v_total is null )then -- jika blum pernah nabung if(banyak_bulan = 1)then -- cm bayar 1 X select buat_kode_wajib() into v_kode_wajib; insert into tabungan_wajib(kode_tab_wajib,ko de_anggota, tgl_tab_wajib,besar_tab_wajib,total_tab_waji b,created_date,kode_user) values (v_kode_wajib,v_kode,v_tgl,v_besar,v_ besar,curdate(),v_user); -- v_besar = 10000 -- jurnal insert into jurnal_transaksi(kode_transaksi, kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,32,v_kode,curdate(),0,v _besar,0); insert into jurnal_transaksi(kode_transaksi, kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,111,v_kode,curdate(),v_ besar,0,1); else -- lbh dari 1 X select buat_kode_wajib() into v_kode_wajib; insert into tabungan_wajib(kode_tab_wajib,ko de_anggota,tgl_tab_wajib, besar_tab_wajib,total_tab_wajib,created_date ,kode_user)
134
values (v_kode_wajib,v_kode,v_tgl,v_wajib,v_ wajib,curdate(),v_user); -- v_wajib = 10000 -- jurnal insert into jurnal_transaksi(kode_transaksi, kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,32,v_kode,curdate(),0,v _wajib,0); -- insert into jurnal_transaksi(kode_transaksi, kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,111,v_kode,curdate(),v_ wajib,0,1); while x <= banyak_bulan do select buat_kode_wajib() into v_kode_waj ib; select tgl_tab_wajib into v_tgl_ulang fr om tabungan_wajib where kode_anggota = v_kode order by kod e_tab_wajib desc limit 0,1; select total_tab_wajib into v_total_ulang from tabungan_wajib where kode_anggota = v_kode order by kod e_tab_wajib desc limit 0,1; insert into tabungan_wajib(kode_tab_wajib,kode_anggota,tgl_tab_ wajib, besar_tab_wajib,total_tab_wajib,created_ date,kode_user) values (v_kode_wajib,v_kode,date_add(v_tgl_ulan g,interval 1 month), v_wajib,v_total_ulang + v_wajib,curdate( ),v_user); -- jurnal insert into jurnal_transaksi(kode_transa ksi,kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,32,v_kode,curdate(),0,v_wa jib,0); -- insert into jurnal_transaksi(kode_transa ksi,kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,111,v_kode,curdate(),v_waj ib,0,1); set x = x + 1; end while; end if; -- if(banyak_bulan = 1)then else -- udah pernah nabung if(banyak_bulan = 1) then select buat_kode_wajib() into v_kode_wajib; insert into tabungan_wajib(kode_tab_wajib,kode_ang gota,tgl_tab_wajib, besar_tab_wajib,total_tab_wajib,created_dat e,kode_user) values (v_kode_wajib,v_kode,v_tgl,v_wajib,v_wajib + v_total,curdate(),v_user); -- jurnal insert into jurnal_transaksi(kode_transaksi ,kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,32,v_kode,curdate(),0,v_wajib ,0); -- insert into jurnal_transaksi(kode_transaksi ,kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,111,v_kode,curdate(),v_wajib, 0,1); else select buat_kode_wajib() into v_kode_wajib; insert into tabungan_wajib(kode_tab_wajib,kode_ang gota,tgl_tab_wajib, besar_tab_wajib,total_tab_wajib,created_dat e,kode_user) values (v_kode_wajib,v_kode,v_tgl,v_wajib,v_wajib + v_total,curdate(),v_user); -- -- jurnal insert into jurnal_transaksi(kode_transaksi ,kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,32,v_kode,curdate(),0,v_wajib ,0);
135
-- insert into jurnal_transaksi(kode_transaksi ,kode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,111,v_kode,curdate(),v_wajib, 0,1); select total_tab_wajib into v_total_ulang from tab ungan_wajib where kode_anggota = v_kode order by kode_t ab_wajib desc limit 0,1; -- while x <= banyak_bulan do select total_tab_wajib into v_total_ulang from tabungan_wajib where kode_anggota = v_kode order by ko de_tab_wajib desc limit 0,1; select tgl_tab_wajib into v_tgl_ulang from tab ungan_wajib where kode_anggota = v_kode order by ko de_tab_wajib desc limit 0,1; -- select buat_kode_wajib() into v_kode_wa jib; insert into tabungan_wajib(kode_tab_wajib,kode_anggota,tgl_tab_ wajib, besar_tab_wajib,total_tab_wajib,created _date,kode_user) values (v_kode_wajib,v_kode,date_add(v_tgl_ula ng, interval 1 month), v_wajib, v_total_ulang + v_wajib,curdat e(),v_user); -- jurnal insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,32,v_kode,curdate(),0,v_w ajib,0); -- insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota, tgl_transaksi,debet,kredit,cek_kas) values (v_kode_wajib,111,v_kode,curdate(),v_wa jib,0,1); set x = x + 1; end while; end if; -- if(banyak_bulan = 1) then end if; -- if(v_total is null )then if exists(select kode_anggota from anggota where ko de_anggota = v_kode)then commit; else rollback; end if; END$$ DELIMITER ;$$
Sedangkan untuk mengedit data, program akan menjalankan procedure
update_tab_wajib, berikut merupakan listing program yang digunakan.
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`update_tab_waj ib`$$ CREATE PROCEDURE `update_tab_wajib`( v_kode_tab varchar(15), v_kode_anggota varchar(18), v_tgl_tab date,
136
v_banyak_bln int) BEGIN declare v_wajib double; declare x int default 2; declare v_tgl_ulang date; declare v_total_ulang double; declare v_total_lama double; declare v_tgl_lama date; declare v_kode_baru varchar(18); declare kode_hapus varchar(30); -- -- start transaction; select tgl_tab_wajib into v_tgl_lama from tabungan_ wajib where kode_anggota = v_kode_anggota and tgl_tab_wajib < current_date() order by tgl_tab _wajib desc limit 0,1; select v_tgl_lama; -- select total_tab_wajib into v_total_lama from tabun gan_wajib where kode_anggota = v_kode_anggota and tgl_tab_wajib = v_tgl_lama; select v_total_lama; -- select tab_wajib into v_wajib from data_koperasi; -- select v_wajib; -- select kode_tab_wajib into kode_hapus from tabun gan_wajib where created_date = v_tgl_tab and kode_anggota = v_kode_ anggota; -- select kode_hapus; delete from jurnal_transaksi where kode_transaksi i n (select kode_tab_wajib from tabungan_wajib where created_date = v_tgl_tab and kode_anggota = v_kode_anggota); if(v_tgl_tab = current_date())then if(v_total_lama is null) then -- baru pertama ka li nyimpen if(v_banyak_bln > 1)then delete from tabungan_wajib where created_d ate = v_tgl_tab and kode_anggota = v_kode_anggota; -- select buat_kode_wajib() into v_kode_baru; insert into tabungan_wajib (kode_tab_wajib,kode_anggota,tgl_tab_wajib,besar_ta b_wajib,total_tab_wajib,created_date) values (v_kode_baru,v_kode_anggota,v_tgl_tab,v_wajib,v_waj ib,curdate()); -- jurnal insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,32,v_kode_anggota,v_tgl_tab,0 ,v_wajib,0); -- insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,111,v_kode_anggota,v_tgl_tab, v_wajib,0,1); while x <= v_banyak_bln do select tgl_tab_wajib into v_tgl_ulang from tab ungan_wajib where kode_anggota = v_kode_anggota ord er by kode_tab_wajib desc limit 0,1; --
137
select total_tab_wajib into v_total_ulang from tabungan_wajib where kode_anggota = v_kode_anggota ord er by kode_tab_wajib desc limit 0,1; -- select buat_kode_wajib() into v_kode_ba ru; insert into tabungan_wajib(kode_tab_wajib,kode_anggota,tgl_tab_ wajib,besar_tab_wajib,total_tab_wajib,created_date) values (v_kode_baru,v_kode_anggota,date_add(v_ tgl_ulang,interval 1 month),v_wajib,v_total_ulang + v_wajib,curdate()); -- jurnal insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,32,v_kode_anggota,v_tgl_ta b,0,v_wajib,0); -- insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,111,v_kode_anggota,v_tgl_t ab,v_wajib,0,1); set x = x + 1; end while; else -- v_banyak_bln > 1)then // cm ngedit 1 delete from tabungan_wajib where created_ date = v_tgl_tab and kode_anggota = v_kode_anggota; -- select buat_kode_wajib() into v_kode_baru ; insert into tabungan_wajib (kode_tab_wajib,kode_anggota,tgl_tab_wajib,besar_ta b_wajib,total_tab_wajib,created_date) values (v_kode_baru,v_kode_anggota,v_tgl_tab,v_wajib,v_waj ib,curdate()); -- jurnal insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,32,v_kode_anggota,v_tgl_tab ,0,v_wajib,0); -- insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,111,v_kode_anggota,v_tgl_ta b,v_wajib,0,1); end if; -- if(v_banyak_bln > 1)then else -- udah pernah nyimpen if(v_banyak_bln > 1)then delete from tabungan_wajib where created_d ate = v_tgl_tab and kode_anggota = v_kode_anggota; -- select buat_kode_wajib() into v_kode_baru; insert into tabungan_wajib (kode_tab_wajib,kode_anggota,tgl_tab_wajib,besar_ta b_wajib,total_tab_wajib,created_date) values (v_kode_baru,v_kode_anggota,v_tgl_t ab,v_wajib,v_wajib + v_total_lama,curdate()); -- jurnal insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas)
138
values (v_kode_baru,32,v_kode_anggota,v_tgl_tab ,0,v_wajib,0); -- insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,111,v_kode_anggota,v_tgl_ta b,v_wajib,0,1); while x <= v_banyak_bln do select tgl_tab_wajib into v_tgl_ulang from tab ungan_wajib where kode_anggota = v_kode_anggota ord er by kode_tab_wajib desc limit 0,1; -- select total_tab_wajib into v_total_ula ng from tabungan_wajib where kode_anggota = v_kode_anggota ord er by kode_tab_wajib desc limit 0,1; -- select buat_kode_wajib() into v_kode_ba ru; insert into tabungan_wajib(kode_tab_wajib,kode_anggota,tgl_tab_ wajib,besar_tab_wajib,total_tab_wajib,created_date) values (v_kode_baru,v_kode_anggota,date_add(v_ tgl_ulang,interval 1 month),v_wajib,v_total_ulang + v_wajib,curdate()); -- jurnal insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,32,v_kode_anggota,v _tgl_tab,0,v_wajib,0); -- insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,111,v_kode_anggota,v_tgl_t ab,v_wajib,0,1); set x = x + 1; end while; else -- (v_banyak_bln > 1) // cm mo edit 1 aj ah delete from tabungan_wajib where created_d ate = v_tgl_tab and kode_anggota = v_kode_anggota; -- select buat_kode_wajib() into v_kode_baru; insert into tabungan_wajib (kode_tab_wajib,kode_anggota,tgl_tab_wajib,besar_ta b_wajib,total_tab_wajib,created_date) values (v_kode_baru,v_kode_anggota,v_tgl_t ab,v_wajib,v_wajib + v_total_lama,curdate); -- jurnal insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,32,v_kode_anggota,v_tgl_tab,0 ,v_wajib,0); -- insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (v_kode_baru,111,v_kode_anggota,v_tgl_tab, v_wajib,0,1); end if; -- if(v_banyak_bln > 1)then end if; end if; -- if(v_tgl_tab = current_date())then if exists (select kode_tab_wajib from tabungan_waji b where
139
kode_tab_wajib=v_kode_tab)then commit; else rollback; end if; END$$ DELIMITER ;$$
Setelah menjalankan proses simpan dan edit, selanjutnya user dapat mencetak slip
pembayaran tabungan wajib, berikut merupakan listing program yang digunakan:
koneksi.cekDriver(); koneksi k = new koneksi(); prop p = new prop(); String reportSource = p.letak_report()+ "slip_tab_wajib.jasper"; Map<String,Object> params = new HashMap <String,Object>(); try { k.cekKoneksi(); String parameter1 = "kode_anggota"; String parameter2 = "kode_user"; String parameter3 = "jml_bulan"; String parameter4 = "bulan_awal"; String parameter5 = "bulan_akhir"; String jml_bulan = this.field_bulan .getText(); String bulan_awal = this.field_awal _bulan.getText(); String bulan_akhir = this.field_awa l_bulan1.getText(); String kode_anggota = this.field_ko de_anggota.getText(); user_koperasi u = new user_koperasi (); String kode_user = u.cek_kode_user(menu_utama_petugas.field_username.g etText()); HashMap hm = new HashMap(); hm.put(parameter1,kode_anggota); hm.put(parameter2,kode_user); hm.put(parameter3,jml_bulan); hm.put(parameter4,bulan_awal); hm.put(parameter5,bulan_akhir); JasperPrint jasperPrint = JasperFillManager.fillReport(reportSource,hm,k.con) ; JasperViewer.viewReport(jasperPrint ,false); } catch (JRException ex) { ex.printStackTrace(); }
7. Form Tabungan Sukarela
Form tabungan sukarela merupakan form yang digunakan menambah,
mengedit, mencari dan mencetak data tabungan sukarela. Jika user akan melakukan
pencarian, user harus mengklik button CARI sehingga muncul form tabungan
140
sukarela cari, di dalam form tersebut user dapat mencetak dan memilih data tabungan
sukarela yang akan diedit dengan mengklik kanan data yang dikehendaki. Pengeditan
data hanya dapat dilakukan terhadap data yang disimpan pada hari itu juga. Setelah
itu, user juga dapat melakukan pencetakan slip pembayaran tabungan sukarela yang
baru. Form Tabungan Sukarela dapat dilihat pada Gambar 4.7.
Pada saat user mengklik button SIMPAN (menyimpan data) maka program
akan menjalankan prosedur insert_tab_sukarela, berikut merupakan listing program
yang digunakan:
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`insert_tab_suk arela_2`$$ CREATE PROCEDURE `insert_tab_sukarela_2`(v_kode var char(18), v_tgl varchar(10), v_besar double, v_user int) BEGIN declare v_total double;
Gambar 4.7 Gambar Form Tabungan Sukarela
141
declare v_kode_valid varchar(18); declare kode_tab varchar(18); -- pengecekan anggota select kode_anggota into v_kode_valid from anggota where kode_anggota = v_kode; -- pengecekan total tab kmrn select total_tab_sukarela into v_total from tabunga n_sukarela where kode_anggota = v_kode order by kode_tab_sukarela desc limit 0,1; -- start transaction; if exists (select kode_anggota from anggota where k ode_anggota = v_kode) then if(v_kode_valid is not null) then if(v_total is null) then select buat_kode_sukarela_2() into kode_tab; insert into tabungan_sukarela(kode_tab_sukare la,kode_anggota, tgl_tab_sukarela,besar_tab_sukarela,jml_penar ikan,total_tab_sukarela, keterangan,created_date,kode_user) values(kode_tab,v_kode,v_tgl,v_besar,0,v_besar,'tab ungan',curdate(),v_user); -- untuk jurnal tab sukarela 21 k insert into jurnal_transaksi(kode_transaksi,k ode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (kode_tab,21,v_kode,v_tgl,0,v_besar,0) ; insert into jurnal_transaksi(kode_transaksi,k ode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (kode_tab,111,v_kode,v_tgl,v_besar,0,1 ); else select buat_kode_sukarela_2() into kode_tab; insert into tabungan_sukarela(kode_tab_sukarela,kode_anggota,tg l_tab_sukarela, besar_tab_sukarela,jml_penarikan,total_tab_sukarela ,keterangan,created_date,kode_user) values(kode_tab,v_kode,v_tgl,v_besar,0,v_tot al + v_besar,'tabungan',curdate(),v_user); -- untuk jurnal insert into jurnal_transaksi(kode_transaksi,k ode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (kode_tab,21,v_kode,v_tgl,0,v_besar,0) ; insert into jurnal_transaksi(kode_transaksi,k ode_akun,kode_anggota, tgl_transaksi,debet,kredit,cek_kas) values (kode_tab,111,v_kode,v_tgl,v_besar,0,1 ); end if; -- if(v_total is null) then end if; commit; else rollback; end if; END$$ DELIMITER ;$$
Sedangkan untuk mengedit data, program akan menjalankan procedure
update_tab_sukarela, berikut merupakan listing program yang digunakan.
142
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`update_tab_suk arela`$$ CREATE PROCEDURE `update_tab_sukarela`( v_kode_tab varchar(15), v_tgl_baru varchar(10), v_besar_baru double ) BEGIN declare total_lama double; declare v_kode_anggota varchar(18); -- declare kode_tab_cursor_next varchar(15); declare total_lama_cursor double; declare besar_cursor double; declare penarikan_cursor double; declare done int default 0; declare cur_kode_tab cursor for select kode_tab_suk arela from tabungan_sukarela where kode_tab_suka rela >= v_kode_tab and kode_anggota = v_kode_anggota; declare continue handler for sqlstate '02000' set d one=1; -- start transaction; select kode_anggota into v_kode_anggota from tabung an_sukarela where kode_tab_sukarela = v_kode_tab; -- select total_tab_sukarela into total_lama from tabu ngan_sukarela where kode_tab_sukarela < v_kode_tab and kod e_anggota = v_kode_anggota order by kode_tab_sukarela desc limit 0,1; -- select total_lama; if(total_lama is not null)then -- update tabungan_sukarela set tgl_tab_sukarela = v_tgl_baru, besar_tab_sukarela = v_besar_baru, total_tab_sukarela = v_besar_baru + total_lama where kode_tab_sukarela = v_kode_tab; -- untuk jurnal update jurnal_transaksi set kredit = v_besar_baru where kode_transaksi = v_kode_tab and kode_akun = 21; -- update jurnal_transaksi set debet = v_besar_baru where kode_transaksi = v_kode_tab and kode_akun = 111; -- open cur_kode_tab; repeat fetch cur_kode_tab into kode_tab_cursor_nex t; if not done then select total_tab_sukarela into total_l ama_cursor from tabungan_sukarela where kode_tab_sukarela < kode_tab_cur sor_next and kode_anggota = v_kode_anggota
143
order by kode_tab_sukarela desc limit 0,1; select total_lama_cursor; -- select besar_tab_sukarela into besar_c ursor from tabungan_sukarela where kode_tab_sukarela = kode_tab_cur sor_next and kode_anggota = v_kode_anggota; select besar_cursor; -- if (besar_cursor > 0)then update tabungan_sukarela set total_tab_sukarela = total_lama _cursor + besar_cursor where kode_tab_sukarela = kode_tab_ cursor_next and kode_anggota = v_kode_anggota; else select jml_penarikan into penarikan _cursor from tabungan_sukarela where kode_tab_sukarela = kode_tab_ cursor_next and kode_anggota = v_kode_anggota; -- update tabungan_sukarela set total_tab_sukarela = total_lama _cursor - penarikan_cursor where kode_tab_sukarela = kode_tab_ cursor_next and kode_anggota = v_kode_anggota; end if; end if; until done end repeat; close cur_kode_tab; else update tabungan_sukarela set tgl_tab_sukarela = v_tgl_baru, besar_tab_sukarela = v_besar_baru, total_tab_sukarela = v_besar_baru where kode_tab_sukarela = v_kode_tab; -- untuk jurnal update jurnal_transaksi set kredit = v_besar_baru where kode_transaksi = v_kode_tab and kode_akun = 21; -- update jurnal_transaksi set debet = v_besar_baru where kode_transaksi = v_kode_tab and kode_akun = 111; -- -- select total_tab_sukarela; open cur_kode_tab; repeat fetch cur_kode_tab into kode_tab_cursor_nex t; if not done then select total_tab_sukarela into total_l ama_cursor from tabungan_sukarela where kode_tab_sukarela < kode_tab_cur sor_next and kode_anggota = v_kode_anggota order by kode_tab_sukarela desc limit 0,1; select total_lama_cursor; -- select besar_tab_sukarela into besar_c ursor from tabungan_sukarela
144
where kode_tab_sukarela = kode_tab_cur sor_next and kode_anggota = v_kode_anggota; select besar_cursor; -- if (besar_cursor > 0)then update tabungan_sukarela set total_tab_sukarela = total_lama _cursor + besar_cursor where kode_tab_sukarela = kode_tab_ cursor_next and kode_anggota = v_kode_anggota; else select jml_penarikan into penarikan _cursor from tabungan_sukarela where kode_tab_sukarela = kode_tab_ cursor_next and kode_anggota = v_kode_anggota; -- update tabungan_sukarela set total_tab_sukarela = total_lama _cursor - penarikan_cursor where kode_tab_sukarela = kode_tab_ cursor_next and kode_anggota = v_kode_anggota; end if; end if; until done end repeat; close cur_kode_tab; end if; if exists(select kode_tab_sukarela from tabungan_su karela where kode_tab_sukarela = v_kode_tab)then commit; else rollback; end if; END$$ DELIMITER ;$$
Setelah menjalankan proses simpan dan edit, selanjutnya user dapat mencetak slip
pembayaran tabungan sukarela, berikut merupakan listing program yang digunakan:
prop p = new prop(); koneksi.cekDriver(); koneksi k = new koneksi(); String reportSource = p.letak_report()+"slip_tab_su karela.jasper"; Map<String,Object> params = new Has hMap<String,Object>(); try { k.cekKoneksi(); String parameter1 = "kode_anggo ta"; String parameter2 = "kode_user" ; String kode_anggota = this.fiel d_kode_anggota.getText(); user_koperasi u = new user_kope rasi(); String kode_user = u.cek_kode_user(menu_utama_petugas.field_username.g etText()); HashMap hm = new HashMap(); hm.put(parameter1,kode_anggota) ; hm.put(parameter2,kode_user); JasperPrint jasperPrint = JasperFillManager.fillReport(reportSource,hm,k.con) ;
145
JasperViewer.viewReport(jasperP rint,false); } catch (JRException ex) { ex.printStackTrace(); }
8. Form Penarikan Tabungan
Form penarikan tabungan merupakan form yang digunakan menambah,
mengedit, mencari dan mencetak data penarikan tabungan. Jika user akan melakukan
pencarian, user harus mengklik button CARI sehingga muncul form penarikan
tabungan cari, di dalam form tersebut user dapat mencetak dan memilih data
penarikan tabungan yang akan diedit dengan mengklik kanan data yang dikehendaki.
Pengeditan data hanya dapat dilakukan terhadap data yang disimpan pada hari itu
juga. Setelah itu, user juga dapat melakukan pencetakan slip penarikan tabungan yang
baru. Form Penarikan Tabungan dapat dilihat pada Gambar 4.8.
Gambar 4.8 Gambar Form Penarikan Tabungan
146
Pada saat user mengklik button SIMPAN (menyimpan data) maka program
akan menjalankan prosedur insert_penarikan_tab berikut merupakan listing program
yang digunakan:
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`insert_penarik an_tab`$$ CREATE PROCEDURE `insert_penarikan_tab`(v_kode varc har(20), v_tgl varchar(10), v_penarikan double, v_user int) BEGIN declare v_total double default 0; declare v_kode_valid varchar(20); declare kode_tab varchar(20); declare v_tgl_max varchar(10); declare v_tgl_daftar varchar(10); -- select kode_anggota into v_kode_valid from anggota where kode_anggota = v_kode; -- select total_tab_sukarela into v_total from tabunga n_sukarela where kode_anggota = v_kode order by kode_tab_sukar ela desc limit 0,1; -- start transaction; if exists (select kode_anggota from anggota where k ode_anggota = v_kode ) then select kode_anggota from anggota where kode_anggota = v_kode; if(v_kode_valid is not null)then if(v_penarikan <= v_total)then select buat_kode_sukarela_2() into kode_tab; insert into tabungan_sukarela(kode_tab_sukarela,kode_anggota,tg l_tab_sukarela, besar_tab_sukarela,jml_penarikan,total_tab_sukarela ,keterangan,created_date,kode_user) values(kode_tab,v_kode,v_tgl,0,v_penarikan,v_t otal - v_penarikan,'penarikan',curdate(),v_user); -- untuk jurnal tab sukarela berkurang --> d insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (kode_tab,21,v_kode,v_tgl,v_penarikan, 0,0); insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values (kode_tab,111,v_kode,v_tgl,0,v_penarik an,1); end if; end if; commit; else rollback;
147
end if; END$$ DELIMITER ;$$
Sedangkan untuk mengedit data, program akan menjalankan procedure
update_penarikan_tab, berikut merupakan listing program yang digunakan.
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`update_penarik an_tab`$$ CREATE PROCEDURE `update_penarikan_tab`(v_kode_tab varchar(15), v_tgl_baru varchar(10), v_penarikan_baru double) BEGIN declare total_lama double; declare v_kode_anggota varchar(18); -- cursor untuk ngambil tab_berikutnya yg akan di u pdate seterusnya declare kode_tab_cursor_next varchar(18); declare total_lama_cursor double; declare besar_cursor double; declare penarikan_cursor double; declare done int default 0; declare cur_kode_tab cursor for select kode_tab_suk arela from tabungan_sukarela where kode_tab_suka rela > v_kode_tab and kode_anggota = v_kode_anggota; declare continue handler for sqlstate '02000' set d one=1; start transaction; -- ngambil kode_anggota select kode_anggota into v_kode_anggota from tabung an_sukarela where kode_tab_sukarela = v_kode_tab; -- ngambil total tab sebelumnya select total_tab_sukarela into total_lama from tabu ngan_sukarela where kode_tab_sukarela < v_kode_tab and kod e_anggota = v_kode_anggota order by kode_tab_sukarela desc limit 0,1; -- update total dan besar (yg pertama) update tabungan_sukarela set tgl_tab_sukarela = v_tgl_baru, jml_penarikan = v_penarikan_baru, total_tab_sukarela = total_lama - v_penarikan_baru where kode_tab_sukarela = v_kode_tab; -- untuk jurnal update jurnal_transaksi set kredit = v_penarikan_baru where kode_transaksi = v_kode_tab and kode_akun = 1 11; -- update jurnal_transaksi set debet = v_penarikan_baru where kode_transaksi = v_kode_tab and kode_akun = 2 1; -- cursor open cur_kode _tab; repeat fetch cur_kode_tab into kode_tab_cursor_nex t;
148
if not done then select total_tab_sukarela into total_l ama_cursor from tabungan_sukarela where kode_tab_sukarela < kode_tab_cur sor_next and kode_anggota = v_kode_anggota order by kode_tab_sukarela desc limit 0,1; -- select besar_tab_sukarela into besar_c ursor from tabungan_sukarela where kode_tab_sukarela = kode_tab_cur sor_next and kode_anggota = v_kode_anggota; -- if(besar_cursor > 0)then update tabungan_sukarela set total_tab_sukarela = total_lama _cursor + besar_cursor where kode_tab_sukarela = kode_tab_ cursor_next and kode_anggota = v_kode_anggota; else select jml_penarikan into penarikan _cursor from tabungan_sukarela where kode_tab_sukarela = kode_tab_ cursor_next and kode_anggota = v_kode_anggota; -- update tabungan_sukarela set total_tab_sukarela = total_lama _cursor - penarikan_cursor where kode_tab_sukarela = kode_tab_ cursor_next and kode_anggota = v_kode_anggota; end if; end if; until done end repeat; close cur_kode_tab; if exists(select kode_tab_sukarela from tabungan_su karela where kode_tab_sukarela = v_kode_tab)then commit; else rollback; end if; END$$ DELIMITER ;$$
Setelah menjalankan proses simpan dan edit, selanjutnya user dapat mencetak slip
penarikan tabungan sukarela, berikut merupakan listing program yang digunakan:
koneksi.cekDriver(); koneksi k = new koneksi(); prop p = new prop(); String reportSource = p.letak_report()+"slip_penari kan_tab.jasper"; Map<String,Object> params = new Has hMap<String,Object>(); try { k.cekKoneksi(); String parameter1 = "kode_anggo ta"; String parameter2 = "kode_user" ; String kode_anggota = this.fiel d_kode_anggota.getText(); user_koperasi u = new user_kope rasi();
149
String kode_user = u.cek_kode_user(menu_utama_petugas.field_username.g etText()); HashMap hm = new HashMap(); hm.put(parameter1,kode_anggota) ; hm.put(parameter2,kode_user); JasperPrint jasperPrint = JasperFillManager.fillReport(reportSource,hm,k.con) ; JasperViewer.viewReport(jasperP rint,false); } catch (JRException ex) { ex.printStackTrace(); }
9. Form Angsuran
Form angsuran merupakan form yang digunakan menambah, mencari dan
mencetak data angsuran. Jika user akan melakukan pencarian, user harus mengklik
button cari sehingga muncul form angsuran cari, di dalam form tersebut user dapat
mencetak data angsuran dengan mengklik kanan data yang dikehendaki. Form
Angsuran dapat dilihat pada Gambar 4.9
Gambar 4.9 Gambar Form Angsuran
150
Pada saat user mengklik button SIMPAN (menyimpan data) maka program
akan menjalankan procedure untuk insert angsuran, berikut merupakan listing
program yang digunakan:
1. Procedure insert_angsuran, digunakan untuk menambah data angsuran tanpa
menggunakan alokasi dana
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`insert_angsura n`$$ CREATE PROCEDURE `insert_angsuran`( v_kode_pinjaman varchar(20), v_tgl date, v_user int ) BEGIN declare v_bunga double; declare v_bsr_angsuran double; declare v_denda double; declare kode_ang varchar(30); declare v_sisa_pinj double; declare v_kode_anggota varchar(30); declare v_ket_1 varchar(30); declare tgl_skrg date; -- start transaction; -- select curdate() into tgl_skrg; select kode_anggota into v_kode_anggota from pinjam an where kode_pinjaman = v_kode_pinjaman; -- select v_kode_pinjaman; -- select buat_kode_angsuran() into kode_ang; -- select kode_ang; select hitung_bunga_pinjaman(v_kode_pinjaman,v_tgl) into v_bunga; -- select v_bunga; select hitung_angsuran_perbulan(v_kode_anggota) int o v_bsr_angsuran; -- select v_bsr_angsuran; select hitung_denda_angsuran(v_kode_pinjaman,v_tgl) into v_denda; -- select v_denda; select hitung_angsuran_ke(v_kode_pinjaman) into v_k et_1; -- select v_ket_1; select hitung_sisa_pinjaman(v_kode_pinjaman,v_bsr_a ngsuran) into v_sisa_pinj; -- select v_sisa_pinj; -- insert into angsuran() values (kode_ang,v_kode_pinjaman,v_tgl,v_bunga,v_bsr_angsu ran,v_denda,v_ke
151
t_1,v_sisa_pinj,v_tgl,v_user); -- untuk JURNAL -- angsuran 44 k, kas 111 d insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(kode_ang,112,v_kode_anggota,v_tgl,0,v_bsr_an gsuran,0); insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(kode_ang,111,v_kode_anggota,v_tgl,v_bsr_angs uran,0,1); -- bunga pinjaman 45 k,kas 111 d insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit) values(kode_ang,41,v_kode_anggota,v_tgl,0,v_bunga); insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit) values(kode_ang,111,v_kode_anggota,v_tgl,v_bunga,0) ; -- denda 411, kas 111 d insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit) values(kode_ang,42,v_kode_anggota,v_tgl,0,v_denda); insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit) values(kode_ang,111,v_kode_anggota,v_tgl,v_denda,0) ; -- select sisa_pinjaman into v_sisa_akhir from angsura n where kode_angsuran = kode_ang; if(v_sisa_akhir = 0)then update pinjaman set keterangan = 'lunas' where kode_pinjaman = v_kode_pinjaman; end if; if(select kode_pinjaman from pinjaman where kode_pi njaman = v_kode_pinjaman)then commit; else rollback; end if; END$$ DELIMITER ;$$
2. Procedure insert_angsuran_2, digunakan untuk menambah data angsuran
dengan menggunakan alokasi dana
152
Setelah menjalankan proses simpan selanjutnya user dapat mencetak slip pembayaran
angsuran, berikut merupakan listing program yang digunakan:
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`insert_angsura n_2`$$ CREATE PROCEDURE `insert_angsuran_2`( v_kode_pinjaman varchar(20), v_tgl date, v_user int ) BEGIN declare v_ket varchar(20); declare kode_ang varchar(20); -- dari tabel alokasi dana declare bunga_al double; declare angsuran_al double; declare denda_al double; -- dari angsuran ASLI !!! declare bunga_ang double; declare denda_ang double default 0; declare angsuran_ang double; -- dari pinjaman declare jml_ang double; declare besar_pinj double; declare pokok_ang double; declare sisa_pinj double; -- ceking declare cek_bunga double; declare cek_denda double default 0; declare cek_angsuran double; -- declare DF_tgl_ang varchar(10); declare tgl_ang date; declare DF_v_tgl varchar(10); declare pot_bunga double; declare bunga_ang_pokok double; -- declare v_kode_anggota varchar(40); declare v_sisa_akhir double; -- select kode_anggota into v_kode_anggota from pinjam an where kode_pinjaman = v_kode_pinjaman; -- select buat_kode_angsuran() into kode_ang; select hitung_bunga_pinjaman(v_kode_pinjaman,v_tgl) into bunga_ang; select hitung_angsuran_perbulan(v_kode_anggota) int o angsuran_ang; select hitung_denda_angsuran(v_kode_pinjaman,v_tgl) into denda_ang; select hitung_angsuran_ke(v_kode_pinjaman) into v_k et; select hitung_sisa_pinjaman(v_kode_pinjaman,angsura n_ang) into sisa_pinj; -- select angsuran into angsuran_al from alokasi_dana where kode_pinjaman = v_kode_pinjaman;
153
select bunga into bunga_al from alokasi_dana where kode_pinjaman = v_kode_pinjaman; insert into angsuran() values (kode_ang,v_kode_pinjaman,v_tgl,bunga_ang,angsuran_ ang,denda_ang,v_ket,sisa_pinj,curdate(),v_user); -- untuk JURNAL -- angsuran 44 k, kas 111 d insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(kode_ang,112,v_kode_anggota,v_tgl,0,angs uran_ang,0); insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(kode_ang,111,v_kode_anggota,v_tgl,angsur an_ang,0,1); -- bunga pinjaman 45 k,kas 111 d insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(kode_ang,41,v_kode_anggota,v_tgl,0,bunga _ang,0); insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(kode_ang,111,v_kode_anggota,v_tgl,bunga_ ang,0,0); -- denda 411, kas 111 d insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(kode_ang,42,v_kode_anggota,v_tgl,0,denda _ang,0); insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(kode_ang,111,v_kode_anggota,v_tgl,denda_ ang,0,0); -- -- ANGSURAN if(angsuran_al > angsuran_ang)then update alokasi_dana set angsuran = angsura n_al - angsuran_ang where kode_pinjaman = v_kode_pinjaman; else update alokasi_dana set angsuran = 0 where kode_pinjaman = v_kode_pinjaman; end if; -- UNTUK JURNAL -- angsuran berkurang sebesar a ngsuran_ang insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(v_kode_pinjaman,22,v_kode_anggota,curdate(), cek_angsuran,0,0); insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(v_kode_pinjaman,111,v_kode_anggota,curdate() ,0,cek_angsuran,1); -- BUNGA
154
if(bunga_al > bunga_ang)then update alokasi_dana set bunga = bunga_al - bunga_ang where kode_pinjaman = v_kode_pinjaman; else update alokasi_dana set bunga = 0 where kode_pinjaman = v_kode_pinjaman; end if; -- UNTUK JURNAL -- bunga berkurang sebesar bung a_ang insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(v_kode_pinjaman,23,v_kode_anggota,curdate(), cek_bunga,0,0); insert into jurnal_transaksi(kode_transaksi,kode_akun,kode_angg ota,tgl_transaksi,debet,kredit,cek_kas) values(v_kode_pinjaman,111,v_kode_anggota,curdate() ,0,cek_bunga,1); -- -- NGESET LUNAS select sisa_pinjaman into v_sisa_akhir from angsura n where kode_angsuran = kode_ang; if(v_sisa_akhir = 0)then update pinjaman set keterangan = 'lunas' where kode_pinjaman = v_kode_pinjaman; end if; -- if(select kode_pinjaman from pinjaman where kode_pi njaman = v_kode_pinjaman)then commit; else rollback; end if; END$$ DELIMITER ;$$
10. Form Berkas
Pada intinya semua fungsi yang ada dalam subsistem berkas adalah sama,
hanya berbeda jenis berkasnya saja. Dalam form berkas, user dapat melakukan
penambahan, pencarian, pengeditan dan pencetakan data berkas.. Jika user akan
mencari data berkas, user harus mengklik button CARI terlebih dahulu sehingga akan
muncul form pencarian berkas. Dalam form pencarian, user dapat memilih berkas
155
yang akan diedit atau dicetak dengan mengklik kanan data tersebut Form Berkas
dapat dilihat pada Gambar 4.10
Gambar 4.10 Gambar Form Berkas Permohonan Kredit
Pada saat user mengklik button SIMPAN (menyimpan data) pada form Berkas
Permohonan Kredit maka program akan menjalankan prosedur
insert_berkas_permohonan_kredit berikut merupakan listing program yang
digunakan:
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`insert_berkas_ permohonan_kredit`$$ CREATE PROCEDURE `insert_berkas_permohonan_kredit`( v_kode_berkas_2 varchar(20), v_kode_anggota varchar(20), v_jenis_usaha varchar(30), v_mulai_berdiri_tgl varchar(10), v_jenis_perusahaan varchar(30),
156
v_modal varchar(30), v_jumlah_brg_produksi varchar(30), v_pendapatan_kotor_prosuksi varchar(30), v_pendapatan_bersih_prduksi varchar(30), v_biaya_operasional varchar(30), v_nama_bank varchar(30), v_bsr_pinjmn_bank_lain varchar(30), v_awal_angsur_bank_lain varchar(30), v_besar_kredit_minta varchar(30), v_jangka_waktu_kredit varchar(30), v_alasan varchar(255), v_sarat_siup tinyint(4), v_sarat_sertifikat tinyint(4), v_sarat_stnk tinyint(4), v_sarat_no_rangka tinyint(4), v_sarat_kk tinyint(4), v_sarat_KTP tinyint(4), v_jml_barang tinyint(2), v_kotor tinyint(2), v_bersih tinyint(2), v_op tinyint(2), v_jangka tinyint(2), v_tgl date, v_user int ) BEGIN declare kode varchar(20); select buat_kode_berkas_PK() into kode; insert into berkas_permohonan_kredit(kode_berkas_PK , kode_berkas, kode_anggota, jenis_usaha, mulai_berdiri_tgl, jenis_perusahaan, modal, jumlah_brg_produksi, pendapatan_kotor_prosuksi, pendapatan_bersih_prduksi, biaya_operasional, nama_bank, bsr_pinjmn_bank_lain, awal_angsur_bank_lain, besar_kredit_minta, jangka_waktu_kredit, alasan, sarat_siup, sarat_sertifikat, sarat_stnk, sarat_no_rangka, sarat_kk, sarat_KTP, jenis_jumlah_barang, jenis_pendapatan_kotor, jenis_pendapatan_bersih, jenis_biaya_op, jenis_jangka_waktu, tgl_berkas, created_date,
157
kode_user ) values( kode, v_kode_berkas_2, v_kode_anggota, v_jenis_usaha, v_mulai_berdiri_tg l, v_jenis_perusahaan, v_modal, v_jumlah_brg _produksi, v_pendapatan_kotor_prosuksi, v_pendapatan_bersih_prduksi, v_biaya_operasional, v_nama_bank, v_bsr_pinjmn_bank_lain, v_awal_angsur_bank_lain, v_besar_kredit_minta, v_jangka_waktu_kredit, v_alasan, v_sarat_siup, v_sarat_sertifikat, v_sarat_stnk, v_sarat_no_rangka, v_sarat_kk, v_sarat_KTP, v_jml_barang, v_kotor, v_bersih, v_op, v_jangka, v_tgl, curdate(), v_user ); END$$ DELIMITER ;$$
Sedangkan untuk mengedit data, program akan menjalankan procedure
update_berkas_permohonan_kredit, berikut merupakan listing program yang
digunakan.
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`update_berkas_ permohonan_kredit`$$ CREATE PROCEDURE `update_berkas_permohonan_kredit`( v_kode_berkas_2 varchar(20), v_jenis_usaha varchar(30), v_mulai_berdiri_tgl varchar(10), v_jenis_perusahaan varchar(30), v_modal varchar(30), v_jumlah_brg_produksi varchar(30),
158
v_pendapatan_kotor_prosuksi varchar(30), v_pendapatan_bersih_prduksi varchar(30), v_biaya_operasional varchar(30), v_nama_bank varchar(30), v_bsr_pinjmn_bank_lain varchar(30), v_awal_angsur_bank_lain varchar(30), v_besar_kredit_minta varchar(30), v_jangka_waktu_kredit varchar(30), v_alasan varchar(255), v_sarat_siup tinyint(4), v_sarat_sertifikat tinyint(4), v_sarat_stnk tinyint(4), v_sarat_no_rangka tinyint(4), v_sarat_kk tinyint(4), v_sarat_KTP tinyint(4), v_jml_barang tinyint(2), v_kotor tinyint(2), v_bersih tinyint(2), v_op tinyint(2), v_jangka tinyint(2), v_tgl date ) BEGIN declare v_kode_berkas_pk varchar(20); start transaction; -- select kode_berkas_pk from berkas_permohonan_kre dit where kode_berkas = v_kode_berkas_2; update berkas_permohonan_kredit set jenis_usaha = v_jenis_usaha, mulai_berdiri_tgl = v_mulai_berdiri_tgl, jenis_perusahaan = v_jenis_perusahaan, modal = v_modal, jumlah_brg_produksi = v_jumlah_brg_produksi, pendapatan_kotor_prosuksi = v_pendapatan_kotor_pros uksi, pendapatan_bersih_prduksi = v_pendapatan_bersih_prd uksi, biaya_operasional = v_biaya_operasional, nama_bank = v_nama_bank, bsr_pinjmn_bank_lain = v_bsr_pinjmn_bank_lain, awal_angsur_bank_lain = v_awal_angsur_bank_lain, besar_kredit_minta = v_besar_kredi t_minta, jangka_waktu_kredit = v_jangka_waktu_kredit, alasan = v_alasan, sarat_siup = v_sarat_siup, sarat_sertifikat = v_sarat_sertifikat, sarat_stnk = v_sarat_stnk, sarat_no_rangka = v_sarat_no_rangka, sarat_kk = v_sarat_kk, sarat_KTP = v_sarat_KTP, jenis_jumlah_barang = v_jml_barang, jenis_pendapatan_kotor = v_kotor, jenis_pendapatan_bersih = v_bersih, jenis_biaya_op = v_op, jenis_jangka_waktu = v_jangka, tgl_berkas = v_tgl where kode_berkas = v_kode_berkas_2; if exists(select kode_berkas from berkas_permohonan _kredit where kode_berkas = v_kode_berkas_2)then commit;
159
else rollback; end if; END$$ DELIMITER ;$$
Setelah menjalankan proses simpan dan edit, selanjutnya user dapat mencetak berkas
permohonan kredit berikut merupakan listing program yang digunakan:
koneksi.cekDriver(); koneksi k = new koneksi(); prop p = new prop(); String reportSource = p.letak_report()+"berkas_permohonan_kredit_klik_kan an.jasper"; Map<String,Object> params = new HashMap <String,Object>(); try { k.cekKoneksi(); String parameter1 = "kode_berkas"; String kode_anggota =this.field_kod e_berkas_2.getText(); HashMap hm = new HashMap(); hm.put(parameter1,kode_anggota); JasperPrint jasperPrint = JasperFillManager.fillReport(reportSource,hm,k.con) ; JasperViewer.viewReport(jasperPrint ,false); } catch (JRException ex) { ex.printStackTrace(); } double akhir = Calendar.getInstance().g etTimeInMillis(); log_request log = new log_request(); log.setUser_kop(menu_utama_petugas.fiel d_username.getText()); log.setAwal(String.valueOf(awal)); log.setAkhir(String.valueOf(akhir)); log.setKeterangan("cetak berkas permoho nan kredit"); log.addLog(log);
11. Form Laporan
Pada intinya semua fungsi yang ada di subsistem laporan mempunyai cara
kerja yang sama dengan subsistem berkas. Pada form laporan, user harus
memasukkan data-data laporan (seperti periode laporan, dan nama anggota),
kemudian mengklik button CETAK. Form Laporan dapat dilihat pada Gambar 4.11
160
Gambar 4.11 Gambar Form Laporan Perseorangan
Pada saat user mengklik button CETAK pada form laporan neraca, maka
program akan menselect data yang ada pada view laporan neraca, berikut merupakan
listing yang digunakan :
DELIMITER $$; DROP VIEW IF EXISTS `koperasi`.`laporan_neraca`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL S ECURITY DEFINER VIEW `coba` AS select `a`.`kode_akun` AS `kode_akun`,`b` .`nama_akun` AS `nama_akun`,`a`.`tgl_transaksi` AS `tgl_transaksi`, sum(`a`.`debet`) AS `debet`,sum(`a`.`kredit`) AS `kredit` from (`jurnal _transaksi` `a` join `akun` `b`) where ((`a`.`kode_akun` = `b`.`kode_aku n`) and (`a`.`kode_akun` <> 111)) group by `a`.`kode_akun`,`a`.`tgl_transaks i` union select `a`.`kode_akun` AS `kode_akun`,`b`.`nama_akun` AS `nama_akun`,`a`.`tgl_transaksi` AS `tgl_transaksi`, sum(`a`.`debet`) AS `debet`,sum(`a`.`kredit`) AS `kredit` from (`jurnal _transaksi` `a` join `akun` `b`) where ((`a`.`kode_akun` = `b`.`kode_aku n`) and (`a`.`kode_akun` = 111) and (`a`.`cek_kas` = 1)) group by `a`.`kode_akun`,`a`.`tgl_transaksi`$$ DELIMITER ;$$
double awal_waktu = Calendar.getInstance().getTimeI nMillis(); buat_laporan(awal,akhir); koneksi.cekDriver(); koneksi k = new koneksi(); prop p = new prop(); String reportSource = p.letak_report()+ "laporan_neraca.jasper"; Map<String,Object> params = new HashMap <String,Object>(); try {
161
k.cekKoneksi(); String parameter1 = "tgl_awal"; String parameter2 = "tgl_akhir"; String tgl_awal = this.ambil_tgl_da te_cooser_awal(); String tgl_akhir = this.ambil_tgl_d ate_cooser_akhir(); HashMap hm = new HashMap(); hm.put(parameter1,tgl_awal); hm.put(parameter2,tgl_akhir); JasperPrint jasperPrint = JasperFillManager.fillReport(reportSource,hm,k.con) ; JasperViewer.viewReport(jasperPrint ,false); } catch (JRException ex) { ex.printStackTrace(); } double akhir_waktu = Calendar.getInsta nce().getTimeInMillis(); log_request log = new log_request(); log.setUser_kop(menu_utama_petugas.fiel d_username.getText()); log.setAwal(String.valueOf(awal_waktu)) ; log.setAkhir(String.valueOf(akhir_waktu )); log.setKeterangan("cetak laporan neraca "); log.addLog(log);
4.6. Skenario Penggunaan Sistem
Pada saat petugas koperasi akan menggunakan sistem, ada beberapa skenario
yang akan dijalankan sesuai dengan alur prosedur yang telah ditetapkan dalam
Koperasi Bintang Jaya. Berikut ini adalah beberapa skenario yang dijalankan pada
saat petugas koperasi menggunakan sistem :
4.6.1. Skenario Pendaftaran Anggota
Jenis keanggotaan dalam Koperasi Bintang Jaya terbagi menjadi dua yaitu
anggota dan nasabah. Seorang anggota koperasi berhak untuk melakukan semua
transaksi yang ada dalam koperasi sedangkan nasabah hanya dapat melakukan
transaksi tabungan sukarela dan penarikan tabungan. Jika seorang calon anggota
koperasi akan menjadi anggota tetap koperasi, maka sistem akan menjalankan
skenario 1 dan jika calon anggota akan menjadi nasabah maka sistem akan
menjalankan skenario 2.
162
Skenario 1
Seorang calon anggota koperasi yang akan menjadi anggota tetap koperasi,
pada saat pendaftarannya harus membayar tabungan pokok dan akan mendapatkan
slip pembayaran tabungan pokok.
Skenario 2
Seorang calon anggota koperasi yang akan menjadi nasabah koperasi, pada
saat pendaftarannya tidak membayar tabungan pokok.
4.6.2. Skenario Tabungan Wajib
Proses pembayaran tabungan wajib yang ada dalam koperasi bintang jaya
dibagi menjadi dua macam yaitu, menabung untuk satu bulan atau beberapa bulan
sekaligus. Jika seorang anggota akan menabung untuk satu bulan maka sistem akan
menjalankan skenario 1 dan jika akan menabung untuk beberapa bulan sekaligus
maka sistem akan menjalankan skenario 2.
Skenario 1
Jika anggota akan menabung untuk satu bulan, pada awalnya sistem akan
melakukan pengecekan apakah bulan ini sudah menabung atau belum, jika belum
menabung maka sistem akan menyimpan tabungan tersebut dengan data
tgl_tab_wajib sama dengan tanggal saat ini, tetapi jika anggota tersebut ternyata
sudah menabung untuk bulan ini, maka sistem akan menanyakan “Apakah akan
melanjutkan untuk berikutnya ?” dan jika jawabannya “iya”, maka sistem akan
menyimpan tabungan tersebut dengan data tgl_tab_wajib sama dengan tanggal
setelah anggota tersebut terakhir menabung. Sebagai contoh, anggota ani akan
163
menabung untuk bulan ini (April) maka sistem akan melakukan pengecekan apakah
anggota ani sudah menabung untuk bulan April atau belum?, jika belum maka sistem
akan menyimpan data tabungan dengan tgl_tab_wajib = xx-04-2008 (xx = tanggal
saat ini), tetapi jika ternyata anggota ani sudah menabung sampai bulan Juli, maka
sistem akan menyimpan data tabungan tersebut dengan tgl_tab_wajib = xx-08-2008
(bulan Agustus).
Skenario 2
Jika anggota akan menabung untuk beberapa bulan sekaligus, pada awalnya
sistem akan melakukan pengecekan apakah bulan ini sudah menabung atau belum,
jika belum menabung maka sistem akan menyimpan tabungan sebanyak “x” kali
(sesuai dengan uang dibayarkan), tetapi jika anggota tersebut ternyata sudah
menabung untuk bulan ini, maka sistem akan menanyakan “Apakah akan
melanjutkan untuk berikutnya ?” dan jika jawabannya “iya”, maka sistem akan
menyimpan tabungan tersebut sebanyak “x” kali. Sebagai contoh, anggota ani akan
menabung untuk tiga bulan sekaligus dan ternyata pada bulan ini (April), anggota ani
belum menabung, maka sistem akan melakukan penyimpanan sebanyak tiga kali,
berikut merupakan tabel penyimpanannya seperti yang terlihat pada Tabel 4.1.
Tabel 4.1 Tabel Penyimpanan Tabungan Wajib 1
Tanggal Besar tabungan Saldo 30000 07-04-2008 10000 40000 07-05-2008 10000 50000 07-06-2008 10000 60000
164
Akan tetapi jika ternyata anggota ani sudah menabung sampai bulan Juli maka
proses penyimpannya akan terlihat seperti pada Tabel 4.2.
Tabel 4.2 Tabel Penyimpanan Tabungan Wajib 2
Tanggal Besar tabungan Saldo 30000 07-08-2008 10000 40000 07-09-2008 10000 50000 07-10-2008 10000 60000
4.6.3. Skenario Tabungan Sukarela
Anggota dan nasabah koperasi berhak untuk menabung sukarela. Dalam
skenario ini tidak ada hal yang khusus yang perlu diperhatikan. Jika ada seorang
anggota koperasi yang menabung, maka secara otomatis saldo tabungan akan
bertambah sesuai dengan besar tabungan yang dibayarkan. Saldo tabungan sukarela
akan bertambah sebesar 1/30 % setiap harinya.
4.6.4. Skenario Penarikan Tabungan
Anggota dan nasabah yang sudah membayar tabungan sukarela berhak untuk
melakukan penarikan tabungan. Pada saat anggota akan melakukan penarikan, sistem
akan melakukan pengecekan apakah besarnya penarikan yang akan diambil lebih
kecil dari saldo tabungannya atau tidak?, dan jika besarnya penarikan lebih besar dari
saldo tabungan maka sistem akan menampilkan peringatan. Besarnya penarikan yang
dapat diambil harus lebih kecil atau sama dengan besarnya saldo tabungan sukarela
yang terakhir.
165
4.6.5. Skenario Pinjaman
Seorang anggota koperasi yang akan meminjam dana kepada koperasi,
terlebih dahulu harus mengisi berkas permohonan kredit. Apabila anggota tersebut
sudah mengisi berkas permohonan kredit selanjutnya petugas koperasi akan
melakukan peninjauan, dan hasil peninjauan tersebut akan diisikan dalam berkas hasil
peninjauan. Selanjutnya, manager koperasi akan melihat berkas hasil peninjauan
tersebut dan akan menentukan apakah pinjaman tersebut layak untuk diterima atau
tidak dan juga menentukan besarnya pinjaman yang akan diberikan. Apabila
pinjaman anggota disetujui, kemudian anggota dapat membuat berkas-berkas yang
lainnya, seperti berkas surat perjanjian kredit, berkas surat kuasa alokasi dana dan
berkas-berkas yang lainnya.
4.6.6. Skenario Angsuran
Setiap anggota koperasi yang mempunyai pinjaman diharuskan membayar
bunga sebesar 3 % dan harus dibayarkan pada saat membayar angsuran. Jika ada
anggota koperasi yang mengangsur lebih dari satu kali dalam satu bulan, maka
anggota tersebut tetap diwajibkan untuk membayar bunga, hanya saja besarnya bunga
berkurang sebesar 25 % (mendapatkan potongan bunga). Apabila ada anggota yang
terlambat membayar angsuran maka diharuskan membayar denda sebesar 1 %.
Anggota koperasi juga dapat menyimpan alokasi dana, alokasi dana tersebut dapat
digunakan untuk membayar angsuran berikutnya.
Pada saat anggota membayar angsuran, secara otomatis sistem akan mengecek
apakah anggota tersebut mempunyai alokasi dana atau tidak?, jika “iya” maka sistem
166
akan menanyakan “Apakah akan menggunakan alokasi dana atau tidak?”, jika “iya”
maka secara otomatis besarnya alokasi dana akan berkurang.
4.6.7. Skenario Berkas
Dalam skenario berkas tidak ada hal khusus yang harus diperhatikan. Seorang
petugas koperasi dapat menambah, mengedit dan mencetak berkas.
4.6.8. Skenario Laporan
Dalam skenario laporan tidak ada hal khusus yang harus diperhatikan.
Seorang petugas koperasi dapat mencetak laporan tetapi sebelumnya petugas tersebut
harus memasukkan periode laporan tersebut (misal dari tahun 2003 sampai dengan
tahun 2008).
167
BAB V
ANALISIS HASIL
5.1. Pengujian Aplikasi
Dari hasil implementasi dengan menggunaan teknologi client/server database,
ternyata program dapat berjalan dengan baik. Dengan menggunakan client/server,
client dapat mengakses data yang ada di server dengan baik. Waktu yang dibutuhkan
aplikasi yang ada di client untuk mengakses server ternyata sangat bergantung pada
jumlah data yang ada dalam database. Dalam hal ini percobaan dilakukan dengan
menampilkan data-data tabungan wajib dan waktu yang diukur merupakan waktu
yang digunakan untuk melakukan query data dengan jumlah data yang berbeda.
Contoh hasil dalam menampilkan data-data tabungan wajib sebanyak 10.000 record
terlihat pada Gambar 5.1.
167
168
Gambar 5.1. Contoh Hasil Menampilkan Data Sebanyak 10.000 record
Kumpulan data hasil percobaan menampilkan data tabungan wajib dapat
terlihat pada Tabel 5.1.
169
Tabel 5.1. Tabel Hasil Percobaan Menampilkan Data
JUMLAH RECORD Komputer 10 100 1000 10000
I II III Rata-rata I II III Rata-rata I II III Rata-rata I II III Rata-rata A (Server) 0 0 0 0 0 0 0 0 63 31 32 42 281 281 204 255.3333
B 0 16 16 16 0 15 0 15 62 47 31 46.6667 203 203 187 197.6667 C 0 0 15 15 0 63 16 39.5 94 16 32 47.3333 250 250 172 224 D 15 16 16 15.6667 16 0 15 15.5 64 64 109 79 296 218 266 260 E 16 16 16 16 16 31 31 26 172 234 47 151 437 438 454 443
170
Dari Tabel 5.1, dapat dilihat waktu yang diperlukan untuk menampilkan data
tergantung dari jumlah data yang akan ditampilkan, semakin banyak data yang akan
ditampilkan berarti semakin lama pula waktu yang diperlukan untuk menampilkan
data tersebut.
5.2 Analisis Transaksi (Locking)
Pada saat sistem akan melakukan suatu transaksi terhadap suatu tabel yang
ada di dalam database, seperti transaksi insert, update dan delete, sistem akan melock
tabel tersebut (dengan menggunakan exclusive lock) terlebih dahulu, setelah itu akan
menjalankan store procedure dan jika proses tersebut sudah selesai dikerjakan maka
tabel akan di-unlock. Hal tersebut dilakukan agar transaksi-transaksi tidak saling
mencampuri dan untuk menjaga agar data yang dimasukkan tetap konsisten. Oleh
karena itu jika ada dua transaksi yang akan melakukan lock ke suatu tabel pada saat
yang sama, maka salah satu dari transaksi tersebut akan digagalkan dan user
diharuskan untuk menyimpan datanya kembali (misal dengan mengklik button
simpan). Pada saat melakukan locking, disetiap transaksi akan diberi waktu delay
dengan menggunakan listing program berikut :
float i = 0; while(i<=20000){ // System.out.println("i --> "+i); i++; }
Berikut ini merupakan ilustrasi pengujian yang dilakukan dengan
menggunakan dua buah client, client A dan client B, kedua client tersebut akan
melakukan proses penambahan data tabungan wajib pada saat yang bersamaan.
171
Client A melakukan penambahan data tabungan wajib untuk anggota ‘Ira
Utami’ sebesar Rp.10.000,- (pembayaran tabungan wajib untuk satu bulan). Proses
transaksi untuk Client A dapat terlihat pada Gambar 5.2.
Gambar 5.2 Form Tabungan Wajib untuk Client A
172
Client B melakukan penambahan data tabungan wajib untuk anggota
‘Bintoro’ sebesar Rp.20.000,- (pembayaran tabungan wajib untuk dua bulan
sekaligus). Proses transaksi untuk Client B dapat terlihat pada Gambar 5.3.
Gambar 5.3 Form Tabungan Wajib untuk Client B
Client A dan Client B akan melakukan proses penyimpanan pada waktu yang
bersamaan, setelah kedua client mengklik button SIMPAN, maka dapat dilihat bahwa
transaksi Client A berhasil dan transaksi Client B gagal. Hasil transksi Client A
dapat terlihat pada Gambar 5.4 dan untuk Client B pada Gambar 5.5.
173
Gambar 5.4 Gambar Form Tabungan Wajib untuk Cleint A (Berhasil)
Gambar 5.5 Gambar Form Tabungan Wajib untuk Cleint B
174
Semua transaksi dalam sistem ini menggunakan exclusive lock. Metode lock
ini akan me-lock tabel dan jika transaksi telah selesai dijalankan maka tabel tersebut
akan di-unlock. Keuntungan dengan menggunakan metode tersebut yaitu transaksi
tidak akan dicampuri oleh transaski-transaksi lain walaupun hanya perintah query
(select). Oleh karena itu, jika ada banyak user maka akan terjadi masalah karena
transaksi-transaksi yang dijalankan oleh user tersebut akan gagal sebelum tabel di
unlock. Untuk mengatasi masalah tersebut sistem dapat menggunakan locking di level
record (locking record). Dengan menggunakan locking record ini hanya record
tertentu saja yang akan di lock (tidak keseluruhan record yang ada dalam tabel). Akan
tetapi penggunaan locking record dalam store procedure tidak dapat dilakukan
Berikut merupakan listing store procedure untuk locking record total_tab_wajib
untuk anggota yang mempunyai kode_tab_wajib = v_kode:
DELIMITER $$; DROP PROCEDURE IF EXISTS `koperasi`.`coba_loking`$$ CREATE PROCEDURE `koperasi`.`coba_loking` ( v_kode varchar(30) ) BEGIN lock table tabungan_wajib as data_lock read; select total_tab_wajib from tabungan_wajib where kode_tab_wajib = v_kode as data_lock; END$$ DELIMITER ;$$
175
Jika store procedure tersebut dieksekusi maka akan muncul pesan error seperti yang
terlihat berikut ini:
(0 row(s) affected) (0 ms taken) Error Code : 1314 LOCK is not allowed in stored procedures (0 ms taken)
Kumpulan data hasil percobaan menggunakan aplikasi yang memakai metode
locking dan yang tidak (tanpa menggunakan waktu delay), dapat terlihat pada Tabel
5.2.
Tabel 5.2. Tabel Hasil Percobaan Menggunakan Aplikasi yang Menggunakan
Locking dan yang Tidak di Server
Waktu yang dibutuhkan (ms) Scenario Keterangan
Locking Tidak Insert anggota sebagai anggota 94 93 Cetak slip tabungan pokok 703 704
Pendaftaran anggota
Insert anggota sebagai nasabah 74 72
Insert untuk satu bulan 31 31 Insert untuk beberapa bulan sekaligus 47 48 Tabungan wajib Cetak slip tabungan wajib 125 120
Insert tabungan sukarela 47 31
Tabungan sukarela Cetak slip tabungan sukarela 94 82
Insert penarikan 31 31 Penarikan
tabungan Cetak slip penarikan tabungan 160 149
Pinjaman Insert pinjaman 63 58
Insert angsuran tanpa alokasi dana 62 63 Angsuran
Insert angsuran dengan alokasi dana 68 65
Berkas Insert berkas permohonan kredit 32 35
176
Cetak berkas permohonan kredit 188 170
Laporan Cetak laporan neraca 703 608
Dari Tabel 5.2, dapat dilihat waktu yang diperlukan untuk melakukan insert
anggota (sebagai anggota) yang menggunakan locking sejumlah 94 milisecond,
sedangkan yang tidak menggunakan locking sejumlah 93 milisecond. Ternyata waktu
yang dibutuhkan untuk menjalankan aplikasi tidak menunjukkan perbedaan yang
besar, yaitu hanya 1 milisecond. Hal tersebut terjadi karena waktu yang dibutuhkan
untuk mengeksekusi statement lock dan unlock sangat sedikit.
177
5.3 Kelebihan dan Kekurangan Sistem
5.3.1 Kelebihan Sistem
Berikut adalah beberapa kelebihan sistem:
1. Semua query yang digunakan dalam sistem ini, menggunakan store procedure
dan function sehingga dapat mempercepat proses transaksi.
2. Tidak akan terjadi deadlock, karena jika ada dua transaksi yang saling
bertabrakan maka hanya satu transaksi yang akan dijalankan, dan transaksi
yang lainnya akan dianggap gagal. Jika transaksi gagal maka user diharuskan
menyimpan datanya kembali.
3. Program disertai dengan fasilitas setting database sehingga aplikasi sangat
fleksibel untuk dijalankan dimana saja tanpa harus merubah setting koneksi di
source code programnya.
5.3.2 Kekurangan Sistem
Berikut adalah beberapa kelemahan sistem:
1. Sistem ini tidak mengatasi masalah keamanan jaringan, hal tersebut
dikarenakan penulis tidak membahas hal-hal yang berhubungan dengan
keamanan jaringan.
179
BAB VI
PENUTUP
6.1. Kesimpulan
Setelah sistem ini dibuat diperoleh beberapa kesimpulan:
1. Dengan menggunakan client/server database maka akan mempermudah
pelayanan terhadap anggota koperasi.
2. Penerapan konsep locking pada sistem client/server database kurang sesuai.
3. Waktu yang dibutuhkan untuk menampilkan sejumlah data tergantung dari
banyaknya data tersebut, semakin banyak data yang akan ditampilkan maka
waktu yang dibutuhkan pun semakin banyak.
6.2. Saran
Dari sistem yang dibuat masih dibutuhkan beberapa saran antara lain :
1. Sistem ini masih dapat dikembangkan lagi untuk meningkatkan pelayanan
terhadap anggota koperasi terutama dalam hal pembuatan laporan.
178
180
DAFTAR PUSTAKA
Budi, Sutedjo, Dharma, Oetomo, Konssep dan Aplikasi Pemrogramman Client Server
dan Sistem Terdistribusi, Penerbit Andi, , 2006,Yogyakarta.
Connooly, Thomas dan Carolyn Begg, Database System : A Practical to Design,
Implementation and Management 3th Edition, Person Education Limited
2002, England.
Whitten, Bentley Dittman, System Analysis and Design Method 6th Edition,
Irwin/McGraw-Hill, 2004, New York.
Polina, Maria Agnes dan Jong Jek Siang, Kiat Jitu Menyusun Skripsi Jurusan Teknik
Informatika/Komputer, Penerbit Andi, 2005, Yogyakarta.
Pedoman Penulisan Skripsi, Univeritas Sanata Dharma, Yogyakarta , 2004.
http://www.jasonclawson.com/2008/05/23/mysql-stored-procedure-performance-
tricks/
179