PENERAPAN CLIENT SERVER DATABASE

209
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

Transcript of PENERAPAN CLIENT SERVER DATABASE

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

62

Gambar 3.76 Gambar ER Diagram

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

64

3.1.1.1. Logical Design

Gambar 3.78 Gambar Logical Design 1

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

67

Gambar 3.81 Gambar Logical Design 4

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

83

3.2.3.3.2 Form User Sistem Cari

Gambar 3.85 Gambar Form User Admin Cari

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