i
SISTEM INFORMASI LEMBAGA KEUANGAN MIKRO SUBSISTEM TABUNGAN PADA BANK PERKREDITAN RAKYAT
( STUDI KASUS PADA BANK PERKREDITAN RAKYAT WILAYAH DAERAH ISTIMEWA YOGYAKARTA )
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh:
Fransiskus Paranso
055314065
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2010
ii
THE INFORMATION SYSTEM OF MICROFINANCE INSTITUTIONS: A SAVING SUBSYSTEM AT BANK PERKREDITAN RAKYAT
( A CASE STUDY AT BANK PERKREDITAN RAKYAT DAERAH ISTIMEWA YOGYAKARTA)
A Thesis
Presented as Partial of the Requirements to
Obtain the Sarjana Teknik Degree In Informatics Engineering
By:
Fransiskus Paranso
055314065
INFORMATICS ENGINEERING STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2010
iii
HALAMAN PERSETUJUAN
SKRIPSI
SISTEM INFORMASI LEMBAGA KEUANGAN MIKRO
SUBSISTEM TABUNGAN PADA BANK PERKREDITAN RAKYAT
(STUDI KASUS PADA BANK PERKREDITAN RAKYAT WILAYAH
DAERAH ISTIMEWA YOGYAKARTA)
Oleh :
Fransiskus Paranso
NIM : 055314065
Pembimbing
P.H. Prima Rosa, S.Si., M.Sc.
Tanggal: .....................................
iv
HALAMAN PENGESAHAN
SKRIPSI
SISTEM INFORMASI LEMBAGA KEUANGAN MIKRO
SUBSISTEM TABUNGAN PADA BANK PERKREDITAN RAKYAT
(STUDI KASUS PADA BANK PERKREDITAN RAKYAT WILAYAH
DAERAH ISTIMEWA YOGYAKARTA)
Dipersiapkan dan ditulis Oleh
Fransiskus Paranso
NIM : 055314065
Telah dipertahankan di depan Panitia Penguji
pada tanggal 14 Desember 2009
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Ketua : P.H. Prima Rosa, S.Si., M.Sc. ................................
Sekretaris : Ridowati Gunawan, S.Kom., M.T. ................................
Anggota : Stevanus Wisnu Wijaya, S.T., M.T. ................................
Yogyakarta, ............................
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
Yosef Agung Cahyanta, S.T., M.T.
v
HALAMAN PERSEMBAHAN
Father! In your hands I place my spirit! (Luke 23:46) Kupersembahkan karyaku ini kepada Tuhan dan Sahabat Sejatiku Yesus Kristus Bunda Maria yang selalu mendoakan dan menyertaiku.......... Keluargaku tercinta Papa Herkulanus Aci & Mama Magdalena Dasmawati yang selalu mendoakan dan memberikan kepercayaan yang begitu besar kepadaku. Kedua kakakku yang cantik, yang selalu menghadapi kesusahan dan berbagi keceriaan bersama sejak kita ada di dunia ini...... Sahabat-sahabat terbaikku............. I Kadek Dendy S., Ign. Hans Veda, Linus Wedar Duanto, Stephanus Christiono, Greg. Arief S., A.G. Ari Bagoes, Catur Edi, Phalita Nari Wastu, Fenti Iskandari, Margareta Ratna, Tessa Paulin, M.G. Esti Anjar, Dya Sifa S., Florensia Dwinta, Natalia Demtha, Dila Marsella, Bernadeta Sepina, Weny Natalia, Romy Hasibuan,Bayu Pamungkas, Acep Kardana, Christ Pasaribu, Wharton Pasaribu, Firdaus Hasibuan, Stefanus Dani yang menjadi tempat berbagi, diskusi dan memberi dukungan yang tiada akhirnya... Serta teman-teman seperjuanganku di SaOS & CoP, tempat dimana aku dapat mencurahkan dan mengembangkan ide-ide liarku...
dan untuk semua orang yang tak pernah menyerah terhadap masalah
meskipun maut yang harus dihadapi......
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi dengan judul :
SISTEM INFORMASI LEMBAGA KEUANGAN MIKRO
SUBSISTEM TABUNGAN PADA BANK PERKREDITAN RAKYAT
(STUDI KASUS PADA BANK PERKREDITAN RAKYAT WILAYAH
DAERAH ISTIMEWA YOGYAKARTA)
yang dibuat untuk melengkapi sebagian persyaratan menjadi Sarjana Teknik pada
Program Studi Teknik Informatika, Fakultas Sains dan Teknologi Universitas
SanataDharma Yogyakarta, sejauh yang saya ketahui bukan merupakan tiruan
atau duplikasi dari skripsi yang sudah dipublikasikan dan atau pernah dipakai
untuk mendapatkan gelar kesarjanaan di lingkungan Universitas Sanata Dharma
Yogyakarta maupun di Perguruan Tinggi atau Instansi manapun, kecuali bagian
yang sumber informasinya dicantumkan sebagaimana mestinya.
Yogyakarta, Januari 2010
Penulis
Fransiskus Paranso
NIM 055314065
vii
ABSTRAKSI
Sistem informasi lembaga keuangan mikro pada Bank Perkreditan Rakyat (BPR) adalah sistem yang digunakan menangani proses bisnis perbankan sehari-hari. Sistem ini dikembangkan untuk mempermudah proses transaksi bank mulai dari customer service, tabungan, deposito, perkreditan, teller, utilitas dan pencatatan akuntansi.
Dalam tugas akhir ini dibuat sebuah subsistem dari sistem informasi lembaga keuangan mikro (microbank) pada Bank Perkreditan Rakyat (BPR) yaitu subsistem backoffice yang menangani masalah tabungan. Subsistem ini menangani semua proses data rekening, perhitungan bunga, daftar bunga, pajak dan administrasi tabungan, pemindahbukuan hasil perhitungan bunga, penghapusan transaksi, dan pencetakan laporan. Perhitungan bunga menggunakan metode perhitungan saldo transaksi terkecil, dimana nilai terkecil saldo transaksi dalam satu bulan merupakan nilai dasar pemberian bunga dalam satu bulan.
Sistem berhasil dikembangkan menggunakan metodologi FAST dan diimplementasikan menggunakan bahasa pemrograman Java dan basis data MySQL 5.1, Netbeans 6.5.1 dan SQL Yog 5.22. Selain itu sistem yang dibuat dapat berjalan pada platform sistem operasi Windows dan Linux
Sistem ini diharapkan dapat membantu pegawai pada kantor pendukung (back office) dalam melakukan fungsi-fungsi perhitungan tabungan secara otomatis.
viii
ABSTRACT
Information systems microfinance institutions at Bank Perkreditan Rakyat (BPR) is a system that is used to handle daily banking business processes. This system was developed to facilitate the process of banking transactions ranging from customer service, savings, deposits, credits, teller, utilities and accounting records.
In this thesis a subsystem of the microfinance institutions information system was made to handle backoffice saving. This subsystem handles all account data processing, calculation of interest, a list of interest, tax and administrative savings, overbooking, the elimination of transactions, and printing reports. The interest calculation using the transaction balance calculation method of the smallest balace transaction, where the smallest value of balance transaction in a month is the basis of the interest provision in a month.
The system was successfully developed using FAST methodology and was implemented using the Java programming language and MySQL database 5.1, NetBeans 6.5.1 and SQL Yog browser 5.22. The system also can run on Windows and Linux operating system platform.
This system is expected to help and support employees in the back office to perform the functions of savings calculations automatically.
ix
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Fransiskus Paranso
NIM : 055314065
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
SISTEM INFORMASI LEMBAGA KEUANGAN MIKRO
SUBSISTEM TABUNGAN PADA BANK PERKREDITAN RAKYAT
(STUDI KASUS PADA BANK PERKREDITAN RAKYAT WILAYAH
DAERAH ISTIMEWA YOGYAKARTA)
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan,
mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan
data, mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau
media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya
maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya
sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 12 Januari 2010
Yang menyatakan
Fransiskus Paranso
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus yang
telah mengaruniakan kasih-Nya kepada penulis sehingga dapat menyelesaikan
tugas akhir ini. Puji syukur kepada Bunda Maria yang selalu menyertai dan
mendoakan penulis selama proses penyelesaian tugas akhir ini.
Dalam penyelesaian tugas akhir ini ada begitu banyak pihak yang telah
memberikan bantuan dan perhatian dengan caranya masing-masing sehingga
tugas akhir ini dapat diselesaikan. Oleh karena itu saya mengucapkan terimakasih
kepada :
1. P.H. Prima Rosa, S.Si., M.Sc., selaku Dosen Pembimbing yang telah
banyak memberikan bimbingan dan masukan dalam penyelesaian
tugas akhir ini.
2. Ridowati Gunawan, S.Kom., M.T., dan Stevanus Wisnu Wijaya,
S.T., M.T., selaku dosen penguji yang telah memberikan banyak
masukan untuk menyempurnakan tugas akhir ini.
3. Keluargaku tercinta, Bapak Herkulanus Aci dan Ibu Magdalena
Dasmawati, Kak Riasa Barata Nian, dan Kak Rita Nian Jubata Mare’
yang tak pernah berhentinya memberikan kasihnya, dukungannya
dan kepercayaannya kepada penulis selama proses penyelesaian
tugas akhir ini
4. Nurma Evy Hendrayani, M.Kom., selaku pembimbing lapangan
yang memberikan banyak bantuan terhadap data-data yang
xi
dibutuhkan penulis.
5. I Kadek Dendy S., sebagai rekan satu tim dengan penulis dalam
menyelesaikan tugas akhir ini.
6. Seluruh staff dosen dan laboran Teknik Informatika Universitas
Sanata Dharma yang telah memberikan bekal ilmu, arahan dan
pengalaman selama penulis menempuh studi.
7. Semua pihak yang telah membantu penulisan baik secara langsung
maupun tidak langsung, yang tidak dapat penulis sebutkan satu-
persatu.
Penulis amat sadar bahwa tugas akhir ini masih jauh dari sempurna.
Oleh karena itu, berbagai masukan yang bermanfaat dalam perbaikan dan
pengembangan tugas akhir ini sangat penulis harapkan.
Akhir kata semoga tugas akhir ini dapat berguna bagi semua pihak yang
membutuhkan.
Yogyakarta, Januari 2010
Penulis
xii
DAFTAR ISI
SISTEM INFORMASI LEMBAGA KEUANGAN MIKRO ________________ i
HALAMAN PENGESAHAN ______________________________________ iv
HALAMAN PERSEMBAHAN _____________________________________ v
PERNYATAAN KEASLIAN KARYA _______________________________ vi
ABSTRAKSI __________________________________________________ vii
ABSTRACT __________________________________________________ viii
LEMBAR PERNYATAAN PERSETUJUAN __________________________ ix
KATA PENGANTAR ____________________________________________ x
DAFTAR ISI __________________________________________________ xii
DAFTAR GAMBAR ____________________________________________ xvi
DAFTAR TABEL ______________________________________________ xx
DAFTAR LAMPIRAN __________________________________________ xxi
BAB I PENDAHULUAN _________________________________________ 1
1.1. Latar Belakang Masalah ___________________________________ 1
1.2. Rumusan Masalah _______________________________________ 2
1.3. Batasan Masalah _________________________________________ 2
1.4. Tujuan dan Manfaat Penelitian ______________________________ 3
1.5. Metode Penelitian ________________________________________ 4
1.6. Sistematika Penulisan _____________________________________ 5
BAB II LANDASAN TEORI ______________________________________ 8
2.1. Sistem Informasi ________________________________________ 8
2.1.1. Konsep Dasar Sistem ___________________________________ 8
2.1.2. Konsep Dasar Informasi ________________________________ 11
xiii
2.2. Konsep Dasar Sistem Informasi ____________________________ 11
2.3. Analisis dan Desain Berbasis Objek _________________________ 13
2.3.1. Object Oriented Analysis (OOA) _________________________ 13
2.3.2. Object Oriented Design (OOD) __________________________ 14
2.3.3. UML (Unified Modelling Languange) _____________________ 15
2.4. Diagram Relasi Entitas ___________________________________ 21
2.5. Sistem Pemrosesan Transaksi ______________________________ 25
2.6. Lembaga Keuangan Mikro (LKM) __________________________ 26
2.7. Bank Perkreditan Rakyat _________________________________ 27
2.8. Metode Perhitungan Bunga Tabungan Berdasarkan Saldo Transaksi
Terkecil ______________________________________________ 28
2.9. Java _________________________________________________ 29
2.10. JDBC ________________________________________________ 32
2.11. MySQL ______________________________________________ 33
2.11.1. Structure Query Languange ___________________________ 34
2.11.2. Stored Procedure ___________________________________ 35
BAB III ANALISIS DAN PERANCANGAN SISTEM __________________ 40
3.1. Analisis Sistem _________________________________________ 40
3.1.1. Deskripsi Sistem Saat Ini _______________________________ 40
3.1.2. Fase Definisi Ruang Lingkup (Scope Definition Phase) ________ 42
3.1.2.1. Perumusan Masalah _______________________________ 42
3.1.2.2. Pernyataan Masalah _______________________________ 43
3.1.3. Fase Analisis Masalah (Problem Analysis Phase) _____________ 44
3.1.3.1. Analisis Sebab-Akibat (Cause-Effect Analysis) ___________ 44
3.1.4. Fase Analisis Kebutuhan (Requirement Analysis Phase) ________ 45
3.1.4.1. Gambaran Sistem yang Baru _________________________ 45
3.1.4.2. Pihak-Pihak yang Terlibat dalam Sistem ________________ 46
3.1.4.3. Diagram Use Case ________________________________ 47
xiv
3.1.4.4. Narasi Use Case __________________________________ 60
3.2. Perancangan Sistem ____________________________________ 104
3.2.1. Fase Desain Logis (Logical Design Phase) _________________ 104
3.2.2.1. Diagram Aktifitas (Activity Diagram) _________________ 104
3.2.2.2. Diagram Relasi Entitas (ER Diagram)_________________ 120
3.2.2. Fase Desain Fisik (Physical Design Phase) _________________ 121
3.2.2.1. Diagram Sekuensial ______________________________ 121
3.2.1.3. Diagram Kelas Lengkap ___________________________ 131
3.2.1.4. Desain Tabel ____________________________________ 131
3.2.1.5. Rancangan Antarmuka ____________________________ 136
BAB IV IMPLEMENTASI DAN HASIL ___________________________ 151
4.1. Fase Konstruksi dan Percobaan ___________________________ 151
4.1.1. Karakteristik Sistem __________________________________ 151
4.1.2. Kebutuhan Sistem ____________________________________ 152
4.1.2.1. Kebutuhan Perangkat Keras ________________________ 152
4.1.2.2. Kebutuhan Perangkat Lunak ________________________ 153
4.2. Implementasi Sistem ___________________________________ 153
4.2.1. Pembuatan Basis Data ________________________________ 153
4.2.2. Pembangunan Sistem _________________________________ 158
4.2.2.1. Arsitektur Pembangunan Sistem _____________________ 158
4.2.2.2. Koneksi Sistem ke Basis Data _______________________ 162
4.2.2.3. Penanganan Verifikasi Direksi dan Manajer ____________ 164
4.2.2.4. Pengelolaan Produk Tabungan ______________________ 169
4.2.2.5. Pengelolaan Grup Tabungan ________________________ 188
4.2.2.6. Pengelolaan Kode Referensi Transaksi Tabungan ________ 203
4.2.2.7. Pengelolaan Data Rekening Tabungan ________________ 216
4.2.2.8. Perhitungan Bunga dan Pajak Tabungan _______________ 235
4.2.2.9. Daftar Bunga, Pajak dan Administrasi Tabungan ________ 246
4.2.2.10. Pemindahbukuan _________________________________ 248
4.2.2.11. Penghapusan Transaksi Tabungan ____________________ 252
xv
4.2.2.12. Pencetakan Laporan Nominatif ______________________ 255
4.2.2.13. Pencetakan Laporan Bunga, Pajak dan Administrasi Tabungan _
______________________________________________ 256
4.2.2.14. Pencetakan Laporan Transaksi Tabungan ______________ 257
4.2.2.15. Pencetakan Laporan Mutasi Tabungan ________________ 257
BAB V ANALISIS HASIL ______________________________________ 259
5.1. Analisis Hasil Implementasi ______________________________ 259
5.1.1. Analisis Unjuk Kerja Multiplatform Subsistem yang Baru _____ 259
5.1.2. Analisis Unjuk Kerja Teknologi Basis Data Subsistem yang Baru 260
5.2. Kelebihan dan Kekurangan Subsistem ______________________ 265
BAB VI PENUTUP ____________________________________________ 267
6.1. Kesimpulan _____________________________________________ 267
6.2. Saran __________________________________________________ 267
DAFTAR PUSTAKA __________________________________________ 269
LAMPIRAN _________________________________________________ 271
xvi
DAFTAR GAMBAR
Gambar 2.1. Karakteristik Sebuah Sistem ___________________________ 11
Gambar 2.2. Blok sistem informasi yang terintegrasi __________________ 13
Gambar 2.3. Diagram Relasi Entitas _______________________________ 21
Gambar 2.4. Entitas ___________________________________________ 21
Gambar 2.5. Atribut ___________________________________________ 22
Gambar 2.6. Identifier atau kunci _________________________________ 23
Gambar 2.7. Relasi Antar Entitas _________________________________ 23
Gambar 2.8. Transaksi lalu lintas query ____________________________ 37
Gambar 3.1. Diagram Konteks Sistem yang Lama ____________________ 40
Gambar 3.2. Diagram Use case direksi _____________________________ 48
Gambar 3.3. Use case Paket Pengelolaan Produk Tabungan _____________ 49
Gambar 3.4. Use case Paket Tabel Pendukung _______________________ 49
Gambar 3.5. Use case Paket Pengelolaan Kode Grup Tabungan __________ 50
Gambar 3.6. Use case Paket Pengelolaan Konfigurasi Tabel Pendukung ____ 51
Gambar 3.7. Diagram Use case Manajer ____________________________ 54
Gambar 3.8. Use case Paket Pengelolaan Data Rekening _______________ 55
Gambar 3.9. Use case Paket Pengelolaan Bunga dan Pajak Tabungan ______ 56
Gambar 3.10. Use Case Paket Pengelolaan Transaksi Tabungan ___________ 56
Gambar 3.11. Use case Paket Pencetakan Laporan _____________________ 57
Gambar 3.12. Diagram Aktifitas Login _____________________________ 104
Gambar 3.13. Diagram Aktifitas Logout ____________________________ 105
Gambar 3.14. Diagram Aktifitas Penambahan Produk Tabungan _________ 105
Gambar 3.15. Diagram Aktifitas Pengubahan Produk Tabungan __________ 106
Gambar 3.16. Diagram Aktifitas Penghapusan Produk Tabungan _________ 106
Gambar 3.17. Diagram Aktifitas Pencarian Produk Tabungan ____________ 107
Gambar 3.18. Diagram Aktifitas Penambahan Kode Grup Tabungan ______ 107
Gambar 3.19. Diagram Aktifitas Pengubahan Kode Grup Tabungan _______ 108
Gambar 3.20. Diagram Aktifitas Penghapusan Kode Grup Tabungan ______ 108
Gambar 3.21. Diagram Aktifitas Pencarian Kode Grup Tabungan _________ 109
xvii
Gambar 3.22. Diagram Aktifitas Penambahan Kode Referensi ___________ 109
Gambar 3.23. Diagram Aktifitas Pengubahan Kode Referensi____________ 110
Gambar 3.24. Diagram Aktifitas Penghapusan Kode Referensi ___________ 110
Gambar 3.25. Diagram Aktifitas Pencarian Kode Referensi _____________ 111
Gambar 3.26. Diagram Aktifitas Penambahan Data Rekening ____________ 111
Gambar 3.27. Diagram Aktifitas Pengubahan Data Rekening ____________ 112
Gambar 3.28. Diagram Aktifitas Penghapusan Data Rekening ___________ 113
Gambar 3.29. Diagram Aktifitas Pencarian Data Rekening ______________ 114
Gambar 3.30. Diagram Aktifitas Perhitungan Bunga dan Pajak ___________ 114
Gambar 3.31. Diagram Aktifitas Pemindahbukuan ____________________ 115
Gambar 3.32. Diagram Aktifitas Penghapusan Transaksi _______________ 116
Gambar 3.33. Diagram Aktifitas Pencarian Bunga, Pajak dan Administrasi
Tabungan ________________________________________ 117
Gambar 3.34. Diagram Aktifitas Pengubahan Bunga, Pajak, dan Administrasi
Tabungan ________________________________________ 117
Gambar 3.35. Diagram Aktifitas Pencetakan Laporan Nominatif Tabungan _ 118
Gambar 3.36. Diagram Aktifitas Laporan Transaksi Tabungan ___________ 118
Gambar 3.37. Diagram Aktifitas Laporan Daftar Mutasi Tabungan ________ 119
Gambar 3.38. Diagram Aktifitas Laporan Bunga, Pajak, dan Administrasi __ 119
Gambar 3.39. Diagram Relasi Entitas (ER Diagram) ___________________ 120
Gambar 3.40. Rancangan Antarmuka Login _________________________ 136
Gambar 3.41. Rancangan Antarmuka menu utama direksi_______________ 137
Gambar 3.42. Rancangan Antarmuka menu utama manajer ______________ 138
Gambar 3.43. Rancangan Antarmuka Produk Tabungan ________________ 139
Gambar 3.44. Rancangan Antarmuka Pencarian Produk Tabungan ________ 140
Gambar 3.45. Rancangan Antarmuka Menu Utama Tabel Pendukung ______ 140
Gambar 3.46. Rancangan Antarmuka Grup Tabungan __________________ 141
Gambar 3.47. Rancangan Antarmuka Pencarian Grup Tabungan _________ 141
Gambar 3.48. Rancangan Antarmuka Kode Referensi Transaksi Tabungan__ 142
Gambar 3.49. Rancangan Antarmuka Pencarian Kode Referensi Transaksi
Tabungan ________________________________________ 142
xviii
Gambar 3.50. Rancangan Antarmuka Pengelolaan Data Rekening ________ 143
Gambar 3.51. Rancangan Antarmuka Pencarian Nasabah _______________ 144
Gambar 3.52. Rancangan Antarmuka Pencarian Rekening ______________ 145
Gambar 3.53. Rancangan Antarmuka Perhitungan Bunga _______________ 145
Gambar 3.54. Rancangan Antarmuka Pemindahbukuan ________________ 146
Gambar 3.55. Rancangan Antarmuka Daftar Bunga dan Pajak Tabungan ___ 147
Gambar 3.56. Rancangan Antarmuka Penghapusan Transaksi Tabungan ___ 148
Gambar 3.57. Rancangan Antarmuka Periode Laporan Bunga, Pajak, dan
Administrasi Tabungan ______________________________ 148
Gambar 3.58. Rancangan Antarmuka Periode Laporan Mutasi Tabungan ___ 149
Gambar 3.59. Rancangan Antarmuka Periode Laporan Nominatif Tabungan 149
Gambar 3.60. Rancangan Antarmuka Periode Laporan Transaksi Tabungan _ 150
Gambar 4.1. Tampilan Login ___________________________________ 165
Gambar 4.2. Tampilan Utama Direksi _____________________________ 168
Gambar 4.3. Tampilan Utama Manajer ____________________________ 169
Gambar 4.4. Tampilan Utama Pengelolaan Produk Tabungan ___________ 170
Gambar 4.5. Tampilan Pencarian Produk Tabungan __________________ 185
Gambar 4.6. Tampilan Pengelolaan Grup Tabungan __________________ 189
Gambar 4.7. Tampilan Pencarian Grup Tabungan ____________________ 200
Gambar 4.8. Tampilan Pengelolaan Kode Referensi Transaksi Tabungan __ 203
Gambar 4.9. Tampilan Pencarian Kode Referensi Transaksi Tabungan ____ 214
Gambar 4.10. Tampilan Pengelolaan Data Rekening Tabungan __________ 217
Gambar 4.11. Tampilan Pencarian Data Nasabah _____________________ 218
Gambar 4.12. Pencarian Data Rekening Tabungan ____________________ 232
Gambar 4.13. Tampilan Perhitungan Bunga dan Pajak Tabungan _________ 236
Gambar 4.14. Tampilan Kesalahan Belum Melakukan Perhitungan Bunga Pada
Bulan Sebelumnya _________________________________ 236
Gambar 4.15. Tampilan Peringatan Sudah Melakukan Perhitungan Bunga dan
Pajak pada Bulan Ini ________________________________ 237
Gambar 4.16. Tampilan Pencarian dan Daftar Bunga, Pajak dan Administrasi
Tabungan ________________________________________ 247
xix
Gambar 4.17. Tampilan Pemindahbukuan ___________________________ 248
Gambar 4.18. Tampilan Penghapusan Data Transaksi __________________ 253
Gambar 4.19. Tampilan Pencetakan Laporan Nominatif Tabungan ________ 256
Gambar 4.20. Tampilan Pencetakan Laporan Bunga, Pajak dan Administrasi
Tabungan ________________________________________ 256
Gambar 4.21. Tampilan Pencetakan Laporan Transaksi Tabungan ________ 257
Gambar 4.22. Tampilan Pencetakan Laporan Mutasi Tabungan __________ 257
xx
DAFTAR TABEL Tabel 2.1. Tabel Komponen Use Case ______________________________ 18
Tabel 2.2. Tabel Notasi Relasi ____________________________________ 24
Tabel 3.1. Pernyataan Masalah ___________________________________ 43
Tabel 3.2. Analisis Sebab Akibat __________________________________ 44
Tabel 3.3. Aktor Use Case _______________________________________ 47
Tabel 3.4. Ringkasan Use Case Direksi _____________________________ 52
Tabel 3.5. Ringkasan Use Case Manajer ____________________________ 57
Tabel 3.6. Tabel groupdef ______________________________________ 131
Tabel 3.7. Tabel kode_periode_administrasi ________________________ 131
Tabel 3.8. Tabel kodegroup1tabung ______________________________ 131
Tabel 3.9. Tabel kodestatustabungan ______________________________ 131
Tabel 3.10. Tabel mutasi ________________________________________ 132
Tabel 3.11. Tabel pengguna _____________________________________ 132
Tabel 3.12. Tabel nasabah _______________________________________ 132
Tabel 3.13. Tabel tabungan ______________________________________ 133
Tabel 3.14. Tabel produk_tabungan _______________________________ 133
Tabel 3.15. Tabel statushitungbungablnini __________________________ 134
Tabel 3.16. Tabel tabtrans _______________________________________ 134
Tabel 3.17. Tabel temp_tabung ___________________________________ 135
Tabel 3.18. Tabel kodetranstabungan ______________________________ 135
Tabel 5.1. Perbandingan server MySQL ___________________________ 260
xxi
DAFTAR LAMPIRAN
Lampiran 1. Kelas Diagram Lengkap Login ________________________ 272
Lampiran 2. Kelas Diagram Lengkap Pengelolaan Produk Tabungan _____ 273
Lampiran 3. Kelas Diagram Lengkap Pengelolaan Grup Tabungan _______ 274
Lampiran 4. Kelas Diagram Lengkap Pengelolaan Kode Pemilik Tabungan 275
Lampiran 5. Kelas Diagram Lengkap Pengelolaan Kode Referensi _______ 276
Lampiran 6. Kelas Diagram Lengkap Pengelolaan Data Rekening _______ 277
Lampiran 7. Kelas Diagram Lengkap Perhitungan Bunga dan Pajak Tabungan _
________________________________________________ 278
Lampiran 8. Kelas Diagram Lengkap Pengelolaan Daftar Bunga, Pajak dan ___
Administrasi Tabungan _____________________________ 279
Lampiran 9. Kelas Diagram Lengkap Pemindahbukuan _______________ 280
Lampiran 10. Kelas Diagram Lengkap Pengelolaan Transaksi Tabungan ___ 281
Lampiran 11. Kelas Diagram Lengkap Pengelolaan Pencetakan Laporan ___ 282
Lampiran 12. Diagram Sekuensial Login ___________________________ 283
Lampiran 13. Diagram Sekuensial Logout Direksi ____________________ 284
Lampiran 14. Diagram Sekuensial Logout Manajer ___________________ 285
Lampiran 15. Diagram Sekuensial Penambahan Produk Tabungan ________ 285
Lampiran 16. Diagram Sekuensial Pengubahan Produk Tabungan ________ 286
Lampiran 17. Diagram Sekuensial Penghapusan Produk Tabungan _______ 286
Lampiran 18. Diagram Sekuensial Pencarian Produk Tabungan __________ 287
Lampiran 19. Diagram Sekuensial Penambahan Grup Tabungan _________ 288
Lampiran 20. Diagram Sekuensial Pengubahan Grup Tabungan __________ 289
Lampiran 21. Diagram Sekuensial Penghapusan Grup Tabungan _________ 290
Lampiran 22. Diagram Sekuensial Pencarian Grup Tabungan ____________ 291
Lampiran 23. Diagram Sekuensial Penambahan Data Rekening __________ 292
Lampiran 24. Diagram Sekuensial Pengubahan Data Rekening __________ 293
Lampiran 25. Diagram Sekuensial Penghapusan Data Rekening __________ 294
Lampiran 26. Diagram Sekuensial Pencarian Data Rekening ____________ 295
Lampiran 27. Diagram Sekuensial Perhitungan Bunga dan Pajak Tabungan _ 296
xxii
Lampiran 28. Diagram Sekuensial Pencarian Daftar Bunga, Pajak dan
Administrasi Tabungan ______________________________ 297
Lampiran 29. Diagram Sekuensial Pengubahan Daftar Bunga, Pajak dan
Administrasi Tabungan ______________________________ 298
Lampiran 30. Diagram Sekuensial Pemindahbukuan __________________ 299
Lampiran 31. Diagram Sekuensial Penghapusan Transaksi ______________ 300
Lampiran 32. Diagram Sekuensial Pencetakan Laporan Nominatif ________ 301
Lampiran 33. Diagram Sekuensial Pencetakan Laporan Bunga, Pajak dan
Administratif Tabungan _____________________________ 301
Lampiran 34. Diagram Sekuensial Pencetakan Laporan Transaksi Tabungan 302
Lampiran 35. Diagram Sekuensial Pencetakan Laporan Mutasi Tabungan __ 302
Lampiran 36. Daftar Nama Metode yang Menggunakan Konsep Transaksi _ 303
1
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Subsistem tabungan pada sistem informasi lembaga keuangan mikro
Bank Perkreditan Rakyat adalah sebuah subsistem yang menangani berbagai
proses transaksi tabungan pada bagian kantor pendukung (back office). Transaksi-
transaksi tabungan yang ditangani pada subsistem ini meliputi pembuatan
rekening tabungan, perhitungan bunga dan pajak tabungan, pemindahbukuan,
penghapusan transaksi tabungan, dan pencetakan berbagai laporan.
Subsistem tabungan yang digunakan oleh Bank Perkreditan Rakyat di
wilayah Daerah Istimewa Yogyakarta, saat ini masih memiliki beberapa masalah
yaitu hanya mampu berjalan pada sistem operasi Windows dan basis data yang
tidak mendukung konsep transaksi. Kemampuan subsistem informasi tabungan
yang hanya dapat berjalan pada Windows mengakibatkan Bank Perkreditan
Rakyat harus mengeluarkan biaya tambahan untuk membeli sistem operasi
Windows yang asli. Sedangkan tidak didukungnya konsep transaksi oleh basis
data subsistem tabungan yang digunakan oleh Bank Perkreditan Rakyat di
wilayah Daerah Istimewa Yogyakarta mengakibatkan jika terjadi kegagalan
sistem maka proses transaksi yang harus diulang dari awal. Kegagalan sistem juga
2
berakibat pada data transaksi tabungan yang tidak seimbang pada laporan
keuangan di setiap akhir bulan dalam subsistem akuntasi.
Dari beberapa masalah di atas, maka diperlukan untuk membuat suatu
aplikasi lembaga keuangan mikro yang menangani masalah tabungan. Sistem baru
dari subsistem tabungan akan dapat menangani berbagai data transaksi tabungan
secara konsisten dan dapat berjalan di berbagai platform sistem operasi khususnya
Windows dan Linux.
1.2. Rumusan Masalah
Berdasarkan latar belakang di atas dapat dirumuskan beberapa
permasalahan yaitu bagaimana cara mengembangkan sistem informasi lembaga
keuangan mikro dengan spesifikasi:
a. menggunakan bahasa pemrograman yang dapat berjalan di berbagai
plaform sistem operasi?
b. menggunakan basis data yang mendukung konsep transaksi dalam
basis data?
1.3. Batasan Masalah
Batasan-batasan dari masalah di atas adalah:
a. Sistem tidak menangani perhitungan akuntansi yang meliputi
pembukuan pada neraca dan buku besar.
3
b. Sistem ditampilkan dalam ruang lingkup window application.
c. Sistem dapat digunakan oleh banyak pengguna (multiuser).
d. Sistem dapat berjalan di sistem operasi Windows dan Linux yang
sudah memiliki JRE (Java Runtime Environment).
e. Sistem dikembangkan hanya untuk tingkat jaringan komputer lokal
(Local Area Network).
1.4. Tujuan dan Manfaat Penelitian
Tujuan dari penelitian adalah membuat suatu subsistem tabungan dari
sistem informasi lembaga keuangan mikro Bank Perkreditan Rakyat dengan
spesifikasi:
a. dapat menampung data transaksi tabungan dalam ukuran besar, dan
dapat berjalan di berbagai platform sistem operasi.
b. dapat menghitung saldo dari rekening tabungan, bunga tabungan,
pajak, dan biaya administrasi rekening,
Manfaat dari penelitian adalah membantu pegawai pada kantor
pendukung (back office) dalam melakukan fungsi-fungsi perhitungan tabungan
secara otomatis.
4
1.5. Metode Penelitian
Metodologi penelitian yang dilaksanakan dan cara-cara yang digunakan
untuk mengembangkan sistem informasi lembaga keuangan mikro Bank
Perkreditan Rakyat ini menggunakan metode FAST (Framework for the
Application of System Thinking) . Tahap-tahap yang dikerjakan berdasarkan FAST
adalah :
a. Tahap definisi ruang lingkup (scope definition) merupakan tahap
penentuan kelayakan dan batasan-batasan dari sistem yang akan
dibangun. Hasil dari tahap ini adalah pernyataan masalah yang
dihadapi.
b. Tahap analisis masalah (problem analysis) merupakan tahap
analisis terhadap masalah-masalah utama yang dihadapi dan akan
diselesaikan oleh sistem informasi. Pada tahap ini akan dilakukan
studi terhadap referensi yang dimiliki oleh sistem yang lama serta
menganalisis permasalahan dari sistem yang lama. Dalam tahap ini
akan menghasilkan analisis sebab-akibat (cause-effect analysis).
c. Tahap analisis kebutuhan (requirement analysis) merupakan tahap
pengumpulan data akan kebutuhan sistem yang baru dan
menganalisisnya. Metode dalam pengumpulan data ini
menggunakan cara observasi dan studi literatur. Hasil dari tahap ini
direpresentasikan dengan use-case diagram.
d. Tahap desain logis (logical design) merupakan tahap pembuatan
rancangan sistem informasi secara logis dan fisik, baik
5
perancangan diagram aktifitas, diagram relasi entitas dan diagram.
e. Tahap desain fisik dan integrasi (physical design and integration)
merupakan tahap perancangan sistem secara fisik dan
mengintegrasikannya. Dalam tahap ini dibuat diagram sekuensial,
diagram kelas lengkap, rancangan tabel dan rancangan antarmuka
sistem.
f. Tahap konstruksi dan pengujian merupakan tahap pembuatan
sistem dan melakukan pengujian meliputi unjuk kerja, uji masukan
dan keluaran dari sistem.
1.6. Sistematika Penulisan
Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I. PENDAHULUAN
Bab ini memberikan gambaran singkat mengenai sistem informasi
lembaga keuangan mikro subsistem tabungan pada Bank Perkreditan
Rakyat yang meliputi latar belakang, rumusan masalah, batasan masalah,
tujuan dan manfaat penelitian, metodologi penelitian, dan sistematika
penulisan.
6
BAB II. LANDASAN TEORI
Bab ini mengemukakan teori-teori yang menjadi acuan dalam
perancangan dan pembuatan sistem informasi lembaga keuangan mikro
subsistem tabungan pada Bank Perkreditan Rakyat.
BAB III. ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi uraian mengenai pernyataan masalah, analisis
masalah menggunakan PIECES, gambaran sistem saat ini, cause-effect
analysis, gambaran sistem baru, orang-orang yang terlibat dalam sistem,
diagram konteks, diagram use case, ringkasan use case, diagram aktifitas,
diagram sekuensial, diagram kelas, dan perancangan tampilan untuk
pembuatan sistem informasi lembaga keuangan mikro subsistem
tabungan pada Bank Perkreditan Rakyat.
BAB IV. IMPLEMENTASI DAN HASIL
Bab ini akan menguraikan proses pembuatan sistem secara fisik
menggunakan rancangan sistem yang sudah ditulis di bab III.
BAB V. ANALISIS HASIL
Bab ini berisi tentang uraian mengenai analisis dari sistem
informasi lembaga keuangan mikro pada Bank Perkreditan Rakyat
antara lain tentang unjuk kerja basis data, unjuk kerja multiplatform dan
kelebihan serta kekurangan sistem.
7
BAB VI. PENUTUP
Bab ini menguraikan kesimpulan dan saran-saran dari sistem
informasi lembaga keuangan mikro subsistem tabungan.
8
BAB II
LANDASAN TEORI
2.1. Sistem Informasi
2.1.1. Konsep Dasar Sistem Sistem dapat didefinisikan dengan menggunakan dua pendekatan,
yaitu pertama menekankan pada prosedur dan yang kedua menekankan
pada komponen. Pada pendekatan pertama, sistem didefinisikan sebagai
suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan,
berkumpul bersama-sama untuk melakukan suatu kegiatan atau
menyelesaikan suatu sasaran tertentu. Sedangkan pada pendekatan kedua,
sistem didefinisikan sebagai kumpulan dari elemen-elemen yang
berinteraksi untuk mencapai tujuan tertentu (Jerry Fitz Gerald, 1981).
Sistem memiliki karakteristik atau sifat-sifat sebagai berikut
(Jogiyanto, 2001):
1. Komponen Sistem
Komponen-komponen yang dimiliki suatu sistem saling berinteraksi
dan bekerjasama untuk membentuk satu kesatuan. Setiap komponen
memiliki sifat-sifat dari sistem untuk menjalankan suatu fungsi tertentu
dan mempengaruhi proses suatu sistem secara keseluruhan. Komponen
dari sistem ini dapat juga berupa sub sistem atau bagian dari suatu
sistem.
9
2. Batasan Sistem
Diantara suatu sistem dengan sistem yang lain terdapat suatu daerah
yang disebut sebagai batasan sistem. Batasan sistem ini
memungkinkan bagi suatu sistem untuk dipandang sebagai suatu
kesatuan. Batasan sistem ini juga menunjukkan ruang lingkup dari
sistem tersebut.
3. Lingkungan Luar Sistem
Lingkungan luar sistem merupakan segala sesuatu yang berada di luar
batasan sistem, yang mempengaruhi operasi sistem. Lingkungan luar
ini dapat bersifat menguntungkan sistem, namun dapat juga
merugikan.
4. Penghubung Sistem
Penghubung sistem merupakan media penghubung antar subsistem.
Media ini memungkinkan sumber-sumber daya mengalir dari suatu
subsistem ke subsistem yang lainnya, dan juga untuk mengintegrasikan
subsistem-subsistem tersebut sehingga membentuk satu kesatuan.
5. Masukan Sistem
Masukan sistem adalah energi yang diberikan kepada sistem. Masukan
dapat berupa masukan perawatan dan masukan sinyal. Masukan
perawatan dimasukkan supaya sistem tersebut dapat beroperasi.
Sedangkan masukan sinyal dimasukkan ke dalam sistem untuk
diproses agar dapat diperoleh keluaran.
10
6. Keluaran Sistem
Keluaran sistem merupakan hasil dari energi yang diolah dan
diklasifikasikan menjadi keluaran yang berguna. Keluaran ini dapat
menjadi masukan untuk subsistem yang lainnya.
7. Pengolahan Sistem
Pengolahan pada suatu sistem menjadi bagian yang akan mengubah
masukan menjadi keluaran.
8. Sasaran Sistem
Sasaran sistem merupakan tujuan yang hendak dicapai oleh suatu
sistem. Jika suatu sistem tidak memiliki sasaran, maka operasi pada
sistem tidak akan ada gunanya. Sasaran ini akan sangat menentukan
masukan yang dibutuhkan sistem dan keluaran yang harus dihasilkan.
Suatu sistem dikatakan berhasil jika sasaran atau tujuan telah tercapai.
11
Dari karakteristik atau sifat-sifat sistem tersebut, maka suatu sistem
dapat digambarkan sebagai berikut (Jogiyanto, 2001):
Gambar 2.1. Karakteristik Sebuah Sistem
2.1.2. Konsep Dasar Informasi
2.2. Konsep Dasar Sistem Informasi
Sistem Informasi adalah susunan dari orang, data, proses,
komunikasi, dan teknologi informasi yang berinteraksi untuk mendukung
dan memperbaiki operasi dalam satu bisnis hari demi hari, dan juga
mendukung penyelesaian masalah dan membuat keputusan yang
dibutuhkan oleh manajemen dan pengguna (Whitten, 2004).
Blok-blok dalam sistem informasi adalah (Jogiyanto, 2001):
1. Blok Masukan (input block)
Blok masukan mewakili data yang masuk ke dalam sistem informasi.
Blok ini termasuk di dalamnya metode-metode dan media-media untuk
12
menangkap data yang akan dimasukkan yang dapat berupa dokumen
dasar.
2. Blok Model (model block)
Blok ini terdiri dari kombinasi prosedur, logika dan model matematis,
yang akan memanipulasi data masukan dan data yang tersimpan di
basisdata dengan cara yang sudah tertentu, untuk menghasilkan
keluaran yang diinginkan.
3. Blok Keluaran (output block)
Produk dari sistem informasi adalah keluaran yang merupakan
informasi yang berkualitas dan dokumentasi yang berguna untuk
semua tingkatan manajemen serta semua pemakai sistem.
4. Blok Teknologi (technology block)
Blok teknologi merupakan kotak alat (tool box) dalam sistem
informasi, yang digunakan untuk menerima masukan, menjalankan
model, menyimpan dan mengakses data, menghasilkan dan
mengirimkan keluaran, dan membantu pengendalian dari sistem secara
keseluruhan. Blok ini terdiri atas tiga bagian penting, yaitu teknisi
(brainware), perangkat lunak (software) dan perangkat keras
(hardware).
5. Blok Basisdata (database block)
Basisdata merupakan kumpulan dari data yang saling berhubungan
satu sama lain, tesimpan di media penyimpanan (perangkat keras)
komputer dan dibutuhkan perangkat lunak untuk memanipulasinya.
13
6. Blok Kendali (control block)
Blok kendali dirancang dan diterapkan untuk meyakinkan bahwa hal-
hal yang dapat merusak sistem dapat dicegah atau jika terlanjur terjadi,
dapat langsung diatasi. Hal-hal yang dapat merusak sistem ini, seperti
bencana alam, api, temperatur atau suhu, air, debu, kecurangan-
kecurangan, kegagalan sistem itu sendiri, ketidakefisienan, sabotas dan
lain sebagainya.
Dari keenam blok tersebut di atas, maka dapat digambarkan sebagai
berikut :
Gambar 2.2. Blok sistem informasi yang terintegrasi
2.3. Analisis dan Desain Berbasis Objek
2.3.1. Object Oriented Analysis (OOA)
Object Oriented Analysis merupakan pendekatan yang
digunakan untuk mengidentifikasikan fungsionalitas dari kebutuhan
sistem dari perspektif user dan mengidentifikasikan objek, atribut,
14
behaviour, dan relasi yang mendukung kebutuhan fungsional sistem
(Whitten, 2004).
2.3.2. Object Oriented Design (OOD)
Object Oriented Design merupakan pendekatan yang digunakan
untuk menspesifikasikan solusi perangkat lunak dalam bentuk
kolaborasi objek, atribut, dan fungsinya. Tahap ini merupakan
kelanjutan dari proses object oriented analysis. Dalam tahap ini
terdapat tiga jenis objek, yaitu (Whitten, 2004):
1. Entitas Object, merupakan sebuah objek yang berisi informasi yang
berhubungan dengan bisnis dan secara khusus bersifat persisten dan
disimpan dalam database.
2. Interface Object, merupakan sebuah objek yang disediakan untuk
menggambarkan bagaimana sebuah aktor akan berkomunikasi dengan
sistem. Contoh : sebuah window, dialog box. Interface object
mempunyai dua tanggung jawab, yaitu :
a. Menterjemahkan masukan user ke dalam informasi yang dapat
dimengerti oleh sistem dan sistem dapat menggunakannya
untuk memproses kejadian bisnis.
b. Membawa data yang berhubungan ke dalam suatu kejadian
bisnis dan menterjemahkan data untuk dipresentasikan secara
tepat kepada user.
15
3. Control Object, merupakan sebuah objek yang berisi aplikasi logik
yang bukan merupakan tanggung jawab entitas object. Control object
akan mengkoordinasikan message antar interface object dan entitas
object dan mengurutkan message yang terjadi.
2.3.3. UML (Unified Modelling Languange)
UML merupakan konfensi pemodelan yang digunakan untuk
menentukan atau menggambarkan sebuah sistem software yang terkait
dengan objek. UML tidak menentukan sebuah metode untuk
mengembangkan sistem tetapi hanya berupa notasi (Whitten, 2004).
UML memberikan sembilan diagram yang dikelompokan ke
dalam lima kelompok dengan sudut pandang yang berbeda terhadap
sebuah model sistem. Berikut adalah kelompok-kelompok tersebut:
1. USE-CASE MODEL DIAGRAM
Use case diagram adalah sekumpulan diagram yang menggambarkan
interaksi antara sistem dan eksternal sistem dan user. Use case secara
behavioral berhubungan dengan urutan langkah-langkah, baik
secaraotomatis maupun manual dengan tujuan untuk melengkapi bisnis
tunggal, misalnya login ke sistem, manambah data barang, menghapus
data barang, dan sebagainya. Actor adalah segala sesuatu yang
dibutuhkan untuk berinteraksi dengan sistem untuk mengubah
informasi.
16
Use Case Diagram terdiri atas beberapa komponen,
yaitu :
1. Use Case
Use case adalah urutan langkah-langkah yang
secara tindakan saling terkait, baik terotomatisasi maupun
secara manual, untuk tujuan melengkapi satu tugas bisnis
tunggal ( Whitten, 2004 ).
2. Pelaku
Pelaku adalah segala sesuatu yang perlu
berinteraksi dengan sistem untuk pertukaran informasi
(Whitten, 2004 ). Adapun terdapat empat tipe pelaku, yaitu :
2.1. Primary business actor ( pelaku bisnis utama )
Stakeholder yg mendapat keuntungan utama dari
proses mengeksekusi use case.
2.2. Primary system actor ( pelaku sistem utama )
Stakeholder yg secara langsung berinteraksi dg sistem
utk menginisiasi atau memicu kejadian bisnis atau
sistem.
2.3. External server actor ( pelaku pelayan luar )
Stakeholder yg merespon terhadap permintaan dari use
case.
2.4. External receiver actor ( pelaku penerima luar )
Stakeholder yg bukan merupakan pelaku utama tetapi
17
menerima sesuatu yg berharga dari use case.
3. Relationship ( Hubungan )
Relationship adalah hubungan antar use case
dengan pelaku maupun antar use case (Whitten, 2004).
Adapun terdapat lima tipe relationship yaitu :
Association
Suatu relasi antara seorang aktor dan sebuah use case
dimana terjadi interaksi yg terjadi diantara mereka.
Extends
Sebuah use case berisi langkah-langkah yang
dringkas dari sebuah use case yang lebih kompleks
agar menjadi use case yang lebih sederhana namun
secara fungsi lebih meluas.
Abstract
Suatu use case yg mengurangi redudansi antara dua
atau lebih use case dg cara mengkombinasikan
langkah - langkah yg umum yg ditemui dalam use
case tersebut.
Depends on
Sebuah relasi use case yang menentukan bahwa use
case yang lain harus dibuat sebelum current use case.
Inheritance
Suatu relasi use case dimana tindakan yg sama dari
18
dua aktor menginisiasi use case yg sama
diekstrapolasi dan dibentuk menjadi aktor baru secara
abstrak untuk mengurangi redundancy.
Adapun komponen yang digunakan dalam pembuatan
use-case diagram, digambarkan ,dengan simbol sebagai berikut :
Tabel 2.1. Tabel Komponen Use Case
Simbol Keterangan
Simbol dari pelaku atau aktor
use case.
Simbol dari use case atau
fungsi sistem.
Simbol relasi association.
Simbol relasi extends.
Simbol relasi abstract.
Simbol relasi depends on.
Simbol relasi inheritance.
19
2. STATIC STRUCTURE DIAGRAM
Ada 2 diagram yang tergolong dalam kelompok ini yaitu:
a. Class diagram menggambarkan struktur dari objek sistem. Class
diagram memperlihatkan class dalam sistem beserta relasi antara
class.
b. Object diagram sama dengan class diagram, tetapi lebih dari pada
menggambarkan class, object diagram memodelkan object instance
secara aktual, memperlihatkan nilai tertentu dari atribut instance.
Diagram ini tidak sering digunakan seperti class diagram tetapi
digunakan untuk membantu developer memahami struktur dari sistem.
3. INTERACTION DIGARAM
Interaction diagram memodelkan sebuah interaksi, yang berisi
sekumpulan objek dan relasinya, dan juga message yang dikirim antara
objek dan relasinya. Diagram ini memodelkan dinamic behaviour dari
sistem. Ada dua diagram yaitu:
a. Sequence diagram menjelaskan interaksi objek yang disusun dalam
suatu urutan waktu. Diagram ini secara khusus berasosiasi dengan use
case. Sequence diagram memperlihatkan tahap demi tahap apa yang
seharusnya terjadi untuk menghasilkan sesuatu didalam use case.
b. Collaboration diagram sama dengan sequence diagram tetapi tidak
berfokus pada timing atau ‘sequence’ dari message. Menggambarkan
20
interkasi (collaboration) antar objek dalam format network. Antara
sequence diagram dan collaboration diagram bersifat isomorphic,
yang berarti dapat melakukan transformasi satu bentuk ke bentuk yang
lainnya.
4. STATE DIAGRAM
State diagram terdiri dari dua diagram yaitu:
a. Statechart diagram digunakan untuk model dinamic behaviour dari
particular object.
b. Activity diagram digunakan untuk menggambarkan aliran sequen dari
aktifitas dari proses bisnis atau sebuah use case.
5. IMPLEMENTATION DIAGRAM
Implementation diagram terdiri dari dua diagram:
a. Component diagram digunakan untuk menggambarkan organisasi dan
ketergantungan dari komponen sistem software. Component diagram
dapat digunakan utnuk memperlihatkan bagaimana kode program
dibagi ke dalam modul-modul (atau komponen).
b. Deployment diagram menggambarkan arsitektur secara fisik dalam
bentuk ‘node’ untuk hardware dan software dalam sistem.
Menggambarkan konfigurasi dari run-time software component,
processor, dan peralatan lain yang membentuk arsitektur sistem.
21
2.4. Diagram Relasi Entitas
Diagram relasi entitas (Entity relationship diagram) merupakan
sebuah model data yang menggunakan beberapa notasi untuk
menggambarkan data ke dalam bentuk entitas dan relasinya.
Gambar 2.3. Diagram Relasi Entitas
Entitas adalah sebuah kumpulan dari orang, tempat, objek,
kejadian atau konsep yang diperlukan untuk menyimpan data. Nama
entitas berupa kata benda tunggal ( singular noun ).
Gambar 2.4. Entitas
22
Atribut merupakan sebuah properti yang deskriptif atau
karakteristik dari sebuah entitas. Sinonimnya adalah elemen, properti, dan
field.
Gambar 2.5. Atribut
Key merupakan sebuah atribut atau kelompok atribut yang
diasumsikan memiliki nilai yang unik untuk setiap instance. Sering juga
disebut dengan pengenal (identifier).
1. Concatenated key merupakan sekelompok atribut yang memiliki
identitas instance dari sebuah entitas yang unik Sinonimnya composite
key dan compound key.
2. Candidate key merupakan satu dari nilai key yang akan berfungsi
sebagai primary key dari sebuah entitas. Sinonimnya adalah candidate
identifier
23
3. Primary key merupakan sebuah candidate key yang paling umum
digunakan untuk mengidentifikasikan secara unik instance dari entitas
yang tunggal.
4. Alternate key merupakan sebuah candidate key yang tidak dapat dipilih
untuk menjadi primary key. Sinonimnya adalah secondary key.
Gambar 2.6. Identifier atau kunci
Relasi adalah sebuah asosiasi bisnis normal yang ada antara satu
atau lebih entitas. Relasi mungkin juga mewakili suatu kejadian yang
menghubungkan antara entitas atau logika gabungan antara entitas.
Gambar 2.7. Relasi Antar Entitas
Kardinalitas merupakan minimum dan maksimum kejadian dari
sebuah entitas yang dihubungkan dengan kejadian tunggal dari entitas
Student CurriculumIs being studied by is enrolled in
24
yang lain. Karena seluruh relasi adalah bidirectional maka kardinalitas
harus didefinisikan pada kedua arah untuk setiap relasi.
Tabel 2.2. Tabel Notasi Relasi
INTERPRETASI
KARDINALITAS
CONTOH
MINIMUM
CONTOH
MAKSIMUM
NOTASI
GRAFIS
Tepat satu (satu
dan hanya satu)
1 1
atau
Nol atau satu 0 1
Satu atau lebih 1 Banyak ( > 1 )
Nol, satu atau lebih 0 Banyak ( > 1 )
Lebih dari satu >1 >1
25
Foreign key adalah sebuah primary key dari sebuah entitas yang
digunakan oleh entitas yang lain untuk mengidentifikasikan instance dari
sebuah relasi.
Relasi yang tidak khusus (nonspecific relationship) merupakan
relasi dimana banyak instance dari sebuah entitas berasosiasi dengan
banyak instance dari entitas yang lainnya. Disebut juga dengan relasi
many-to-many relationship. Nonspecific relationship harus diselesaikan.
Kebanyakan dari nonspecific relationship diselesaikan dengan sebuah
entitas asosiatif.
Key-base data model bertujuan untuk menghilangkan nonspecific
relationship jika ada, menambah asosiatif entitas termasuk primary dan
alternate key, dan kardinalitas yang tepat.
Fully attributed data model bertujuan untuk memasukkan seluruh
atribut.
2.5. Sistem Pemrosesan Transaksi
Sistem pemrosesan transaksi adalah sebuah sistem yang mengatur
akses kepada DBMS. Sistem pemrosesan transaksi umumnya terdiri dari
pemantau pemprosesan transaksi, satu atau lebih DBMS, dan sekelompok
aplikasi yang berisi transaksi (M. Lewis, 2002).
Transaksi memiliki komponen yang membedakannya dengan sistem
yang biasa. Komponen untuk membuat sebuah transaksi dikenal dengan
26
istilah ACID yaitu (M. Lewis, 2002):
a. Atomicity, merujuk pada sistem harus memastikan bahwa transaksi
dapat berjalan. Jika transaksi tidak berjalan, maka tidak memiliki
akibat apapun.
b. Consistent, merujuk pada kondisi dimana perancang basis data
dapat mengasumsikan ketika menjalankan transaksi, basis data
memenuhi aturan integritas data yang memuaskan. Perancang basis
data memiliki tanggung jawab untuk memastikan ketika eksekusi
transaksi telah selesai, maka basis data tetap memenuhi aturan
integritas.
c. Isolation, merujuk pada walaupun transaksi dijalankan bersama-
sama, memiliki hasil yang sama dengan transaksi yang dijalankan
secara serial.
d. Durable, merujuk pada sistem harus memastikan bahwa ketika
transaksi berhasil maka tersimpan dalam basis data baik di
komputer atau media dimana basis data disimpan.
2.6. Lembaga Keuangan Mikro (LKM)
Lembaga keuangan yang terlibat dalam penyaluran kredit mikro
umumnya disebut Lembaga Keuangan Mikro (LKM). Menurut Asian
Development Bank (ADB), lembaga keuangan mikro (microfinance)
adalah lembaga yang menyediakan jasa penyimpanan (deposits), kredit
(loans), pembayaran berbagai transaksi jasa (payment services) serta
27
money transfers yang ditujukan bagi masyarakat miskin dan pengusaha
kecil (insurance to poor and low-income households and their
microenterprises) (Wijono,2005).
LKM di Indonesia menurut Bank Indonesia dibagi menjadi dua
kategori yaitu LKM yang berwujud bank serta non bank. LKM yang
berwujud bank adalah BRI Unit Desa, BPR dan BKD (Badan Kredit
Desa). Sedangkan yang bersifat non bank adalah koperasi simpan pinjam
(KSP), unit simpan pinjam (USP), lembaga dana kredit pedesaan (LDKP),
baitul mal wattanwil (BMT), lembaga swadaya masyarakat (LSM), arisan,
pola pembiayaan Grameen, pola pembiayaan ASA, kelompok swadaya
masyarakat (KSM), dan credit union (Wijono, 2005).
2.7. Bank Perkreditan Rakyat
Bank Perkreditan Rakyat atau BPR adalah salah satu jenis bank
resmi yang melayani golongan pengusaha mikro, kecil dan menengah
dengan lokasi yang pada umumnya dekat dengan tempat masyarakat yang
membutuhkan. BPR sudah ada sejak jaman sebelum kemerdekaan yang
dikenal dengan sebutan Lumbung Desa, Bank Desa, Bank Tani dan Bank
Dagang Desa atau Bank Pasar (Undang-Undang No. 7 tahun 1992 tentang
Perbankan dan sebagaimana telah diubah dengan Undang-Undang No. 10
tahun 1998).
28
Fungsi BPR tidak hanya sekedar menyalurkan kredit kepada para
pengusaha mikro, kecil dan menengah, tetapi juga menerima simpanan dari
masyarakat. Dalam penyaluran kredit kepada masyarakat menggunakan
prinsip 3T, yaitu Tepat Waktu, Tepat, Jumlah, Tepat Sasaran, karena
proses kreditnya yang relatif cepat, persyaratan lebih sederhana, dan sangat
mengerti akan kebutuhan Nasabah.
Jenis layanan yang diberikan BPR adalah :
Menghimpun dana masyarakat dalam bentuk deposito berjangka,
tabungan dan atau bentuk lain yang dipersamakan dengan itu.
Memberikan kredit dalam bentuk Kredit Modal Kerja, Kredit
Investasi, maupun Kredit Konsumsi.
2.8. Metode Perhitungan Bunga Tabungan Berdasarkan Saldo
Transaksi Terkecil
Metode saldo transaksi terkecil bunga dalam satu bulan dihitung
berdasarkan saldo terkecil dalam bulan tersebut. Bunga dihitung dengan
rumus sebagai berikut (DPNP dan Biro Hubungan Masyarakat Bank
Indonesia, 2008):
...................................................(2.1)
29
Keterangan:
ST = saldo terkecil
i= suku bunga tabungan pertahun,
t = jumlah hari dalam 1 bulan,
365 = jumlah hari dalam 1 tahun.
2.9. Java
Java merupakan pemrograman yang dikembangkan oleh Sun
Microsystem dan dirancang sedemikian rupa agar program yang dibuat
menggunakan Java dapat berjalan pada semua platform. Java merupakan
pemrograman berorientasi objek (OOP), dengan kata lain rancangan
Java merupakan suatu teknik yang memusatkan rancangan pada data
(objek) dan antarmuka(Didik D.P, 2004).
Dibandingkan dengan bahasa pemrograman yang lain,
pemrograman Java memiliki banyak keunggulan, diantaranya
(http://scqolbu.com/pemrograman/94.html):
a. Sederhana
Bahasa pemrograman Java menggunakan sintaks mirip dengan
C++ namun sintaks pada Java telah banyak diperbaiki terutama
menghilangkan penggunaan pointer yang rumit dan multiple
inheritance. Java juga menggunakan automatic memory allocation
30
dan memory garbage collection.
b. Berorientasi objek (Object Oriented)
Java menggunakan pemrograman berorientasi objek yang membuat
program dapat dibuat secara modular dan dapat dipergunakan
kembali. Pemrograman berorientasi objek memodelkan dunia
nyata kedalam objek dan melakukan interaksi anatara objek-objek
tersebut.
c. Dapat didistribusikan dengan mudah
Java dibuat untuk membuat aplikasi terdistribusi secara mudah
dengan adanya libraries networking yang terintegrasi pada java.
d. Interpreter
Program Java dijalankan menggunakan interpreter yaitu Java
Virtual Machine (JVM). Hal ini menyebabkan kode java yang telah
dikompilasi menjadi java bytecodes dapat dijalankan pada platform
yang berbeda-beda.
e. Tangguh
Java mempunyai reliabilitas yang tinggi. Compiler pada java
mempunyai kemampuan mendeteksi kesalahan secara lebih teliti
dibandingkan bahasa pemrograman lain. Java mempunyai runtime
31
exception handling untuk membantu mengatasi kesalahan pada
pemrograman.
f. Aman
Sebagai bahasa pemrograman untuk aplikasi internet dan
terdistribusi, java memiliki beberapa mekanisme keamanan untuk
menjaga aplikasi tidak digunakan untuk merusak sistem komputer
yang menjalankan aplikasi tersebut.
g. Architecture Neutral
Program java merupakan platform independen . Program cukup
mempunyai satu buah versi yang dapat dijalankan pada platform
yang berbeda dengan Java Virtual Machine.
h. Portabel
Kode maupun program java dapat dengan mudah dibawa ke
platform yang berbeda-beda tanpa harus dikompilasi ulang.
i. Multithreading
Java mempunyai kemampuan untuk membuat suatu program yang
dapat melakukan beberapa pekerjaan secara sekaligus dan
simultan.
32
j. Dinamis
Java didesain untuk dapat dijalankan pada lingkungan yang
dinamis. Perubahan pada suatu kelas dengan menambahkan
properti ataupun metode dapat dilakukan tanpa mengganggu
program yang menggunakan kelas tersebut.
2.10. JDBC
JDBC merupakan API Java Database Connectivity dan merupakan
bagian dari Java Enterprise APIs dari JavaSoft. Class JDBC terdapat di
dalam paket java.sql, dan semua program Java menggunakan method serta
objek dari paket tersebut untuk membaca serta menulis data source (Didik
D.P., 2004).
Pada prinsipnya JDBC memiliki Driver Manager yang berfungsi
untuk mengatur driver serta menampilkan daftar driver aktif pada program
aplikasi. JDBC memungkinkan kita untuk membuat aplikasi dengan Java
dalam mengakses database server, baik itu secara lokal (stand-alone)
maupun secara remote. JDBC API memudahkan untuk mengirimkan
perintah SQL ke sistem basis data relasional dan mendukung beragam
perintah SQL.
Dengan JDBC dapat dibuat program dengan portabilitas tinggi dan
cukup mudah karena secara umum pemrograman JDBC tidak memiliki
perbedaan kode yang berarti untuk pemrograman pada basis data tertentu
33
dengan basis data lain. Perbedaan utama pada kode hanyalah kode yang
mendefinisikan driver dari server basis data serta perintah SQL tertentu
yang mungkin memiliki perbedaan sintak atau perintah SQL khusus yang
hanya terdapat pada database tertentu. Pemrograman JDBC memiliki
struktur seperti melakukan koneksi, membuat object statement,
mengeksekusi perintah SQL, mendapatkan hasil query, serta menangani
kesalaahan.
2.11. MySQL
MySQL (My Structure Query Language) merupakan sebuah aplikasi
database open source. MySQL dikembangkan dengan tujuan untuk
menyediakan basis data dengan koneksi yang aman dan cepat, memiliki
keamanan yang tinggi, mudah digunakan dan dapat dipakai oleh semua
orang. MySQL sendiri sebenarnya merupakan pengembangan dari mSQL
dengan optimasi konektifitas, peningkatan unjuk kerja dan perbedaan
antarmuka SQL.
Tingkat kecepatan dan keamanan yang tinggi membuat MySQL
sangat cocok digunakan dan sangat populer sebagai aplikasi untuk
mengakses basis data di internet.
Beberapa kemampuan MySQL antara lain :
1. MySQL bisa diakses dan dimanipulasi dari beberapa bahasa
pemrograman, diantaranya adalah C, C++, Java, Perl, Python, Java
dan lain-lain.
34
2. MySQL mendukung tipe data yang umum digunakan, seperti float,
double, char, varchar, text, blob, date, integer dan lain-lain.
3. MySQL mendukung subset fungsi query dan pengelompokkan lanjut,
termasuk diantaranya group by dan order by.
4. MySQL memungkinkan alokasi password tiap server. Password yang
melalui MySQL telah terenkripsi.
5. MySQL bisa diperoleh secara gratis untuk penggunaan pribadi,
termasuk aplikasi-aplikasi lain yang diperlukan dalam memakai
MySQL.
2.11.1. Structure Query Languange SQL merupakan bahasa standar yang digunakan untuk mengakses
dan memanipulasi basis data. Perintah-perintah dasar SQL antara lain :
1. Perintah untuk membuat basis data.
CREATE DATABASE nama_basis data;
2. Perintah untuk membuat tabel.
CREATE TABLE nama_tabel (nama_field1 tipe_data1, nama_field2 tipe_data2, …)
3. Perintah untuk membaca data yang tersimpan di dalam tabel.
SELECT * FROM nama_tabel;
SELECT nama_field1, nama_field2, … FROM nama_tabel;
4. Perintah untuk menambahkan data ke dalam tabel.
35
INSERT INTO nama_tabel (nama_field1, nama_field2, …) values (data_field1, data_field2, …);
5. Perintah untuk mengubah data yang tersimpan di dalam tabel.
UPDATE nama_tabel SET nama_field1 = nilai_baru1, nama_field2 = nilai_baru2, … WHERE kriteria;
6. Perintah untuk menghapus data yang tersimpan di dalam tabel.
DELETE FROM nama_tabel WHERE kriteria;
7. Perintah untuk mengurutkan data.
SELECT nama_field1, nama_field2, … FROM nama_tabel ORDER BY nama_field ASC || DESC;
2.11.2. Stored Procedure
Di dalam MySQL seri 5, memiliki kemampuan tambahan yang
dinamakan stored procedure. Stored procedure adalah prosedur-prosedur
operasi yang ditempatkan di dalam server basis data. Umumnya, stored
procedure ditulis dalam SQL. Stored procedure ini sangat penting dalam
sistem basis data client-server karena menempatkan prosedur di dalam
server berarti prosedur itu dapat tersedia untuk semua client. Ketika
prosedur tersebut diubah, semua client akan mendapatkan versi terbarunya
secara otomatis (tanpa perlu diadakan update aplikasi client). Stored
procedure selain bersifat terintegrasi dengan server juga sudah
terkompilasi, sehingga pemrosesan kode yang terjadi di dalam stored
36
procedure akan berlangsung lebih cepat dibandingkan dengan
mengeksekusi beberapa statement SQL secara sekuensial.
Pendefinisian stored procedure pada DBMS Engine masih termasuk
tahap pendefinisian DDL (Data Definition Language). Ciri utama query
SQL termasuk ke dalam DDL adalah dengan penggunaan keyword
CREATE, ALTER atau DROP. Kedudukan CREATE PROCEDURE,
CREATE FUNCTION, maupun CREATE TRIGGER setara dengan proses
pendefinisian DDL yang paling umum dipergunakan, CREATE TABLE,
yang mana dalam konteks pembahasan pengembangan sistem pada
umumnya, fase pendefinisian DDL ini termasuk dalam siklus desain
sistem dalam System Development Lifecycle (SDLC).
Gambar di bawah ini adalah ilustrasi sederhana dari lalu-lintas
transaksi query yang berada pada sisi server dengan transaksi query pada
sisi client melalui antarmuka pemrograman.
37
Gambar 2.8. Transaksi lalu lintas query
Seperti terlihat pada gambar di atas, pemrosesan query pada sistem
yang menerapkan stored procedure sangat menghemat lalu-lintas
pengiriman query dari program aplikasi di sisi client kepada DBMS
Engine. Jumlah query yang dikirimkan hanya satu, yaitu pengeksekusian
procedure. Berbeda jauh dengan pemrosesan query yang dilakukan tanpa
stored procedure, melainkan mengandalkan programming pada sisi client,
dimana jumlah query yang dikirimkan sangatlah banyak bergantung pada
kontrol perulangan (loop) yang dijalankan.
Selain stored procedure masih terdapat stored function dan trigger
dalam MySQL seri 5. Stored function adalah sebuah blok PL/SQL yang
memiliki nama yang mengembailkan nilai balik. Trigger adalah sebuah
38
blok PL/SQL atau procedur PL/SQL yang berhubungan dengan table,
view, schema atau basis data yang akan dieksekusi secara implicit pada
saat kejadian tertentu terjadi.
Berikut perintah untuk membuat stored procedure :
1. Membuat procedure. Perintah :
CREATE PROCEDURE nama_procedure ([parameter_proc[,…]])
[characteristic ..] routine_body
2. Membuat function. Perintah :
CREATE FUNCTION nama_function ([parameter_proc[,…]])
RETURN type [characteristic ..] routine_body
3. Membuat trigger. Perintah :
CREATE [DEFINER = { user | current_user } ] TRIGGER
trigger_name trigger_time trigger_event ON table_name
FOR EACH ROW trigger_statement
4. Pemanggilan procedure. Perintah :
CALL nama_proc(parameter_proc);
5. Pemanggilan function. Perintah :
SELECT nama_function(parameter_function);
6. Melihat procedure dan function yang ada. Perintah :
SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;
7. Melihat isi procedure dan function. Perintah :
SHOW CREATE PROCEDURE nama_procedure;
SHOW CREATE FUNCTION nama_function;
8. Menghapus procedure dan function. Perintah :
39
DROP PROCEDURE nama_procedure;
DROP FUNCTION nama_function;
40
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
3.1.1. Deskripsi Sistem Saat Ini
Gambar dibawah menunjukan secara kontekstual proses dari sistem lama
yang ada di Bank Perkreditan Rakyat Wilayah Daerah Istimewa Yogyakarta.
Gambar 3.1. Diagram Konteks Sistem yang Lama
Proses transaksi perbankan di Bank Perkreditan Rakyat dimulai dari
penerimaan nasabah baru yang dilakukan di subsistem customer service. Dalam
41
subsistem ini informasi pribadi dari seorang nasabah dapat diperoleh.
Setelah pencatatan di subsistem customer service selesai, maka proses
pencatatan transaksi dilanjutkan di subsistem teller. Subsistem ini menangani
pencatatan transaksi tabungan, deposito, dan kredit. Hasil dari subsistem teller
akan digunakan oleh berbagai subsistem seperti customer service, tabungan,
kredit, deposito dan akuntansi.
Subsistem tabungan merupakan sistem yang menggunakan data-data dari
subsistem teller dan customer service dan kemudian mengolahnya terutama yang
memiliki hubungan dengan produk tabungan, transaksi dan perhitungan bunga
tabungan. Pengguna dari sistem ini terdiri dari beberapa kelompok yaitu manajer
dan direksi. Untuk dapat menjalankan sistem ini, setiap pengguna harus login
terlebih dahulu. Dalam proses login ini, penentuan tingkat akses dari sistem
ditentukan, apakah pengguna merupakan seorang direksi atau manajer tabungan.
Manajer tabungan dapat melakukan aksi-aksi tertentu dalam subsistem
tabungan seperti pengolahan data rekening, perhitungan bunga, pajak dan
administrasinya, pemindahbukuan tabungan, pengelolan blokir tabungan, validasi
dan penghapusan transaksi tabungan, dan mencetak berbagai laporan. Pada
waktu-waktu tertentu, laporan transaksi tabungan nantinya diserahkan kepada
pihak direksi Bank Perkreditan Rakyat oleh Manajer tabungan yang dilakukan
secara berkala.
Direksi tabungan adalah pihak yang dapat membuat dan memasukkan
data-data sebuah produk tabungan beserta kebijakan-kebijakan yang digunakan
dari setiap produk tabungan.
42
3.1.2. Fase Definisi Ruang Lingkup (Scope Definition Phase)
3.1.2.1. Perumusan Masalah
Subsistem tabungan yang ada saat ini masih memiliki kendala-kendala
sehingga menyebabkan kesulitan pegawai Bank Perkreditan Rakyat dalam
menangani transaksi tabungan dilihat dari:
Performance : Kemampuan server basis data yang belum mendukung konsep
stored procedure, trigger, cursor,transaction, dan memiliki integritas data yang
rendah membuat proses transaksi dalam subsistem tabungan sering mengalami
kegagalan.
Tampilan antarmuka dari sistem sering membuat pengguna kebingungan.
Penggunaan komponen tree dalam menu utama sistem sering membuat pengguna
frustasi ketika mencari sebuah menu.
Information : Informasi transaksi tabungan yang dihasilkan belum bisa diyakini
sepenuhnya. Ini disebabkan karena belum digunakannya konsep transaksi dalam
server basis data untuk menanggulagi jika terjadi kegagalan dalam proses
transaksi tabungan.
Economics : Sistem lama juga belum mampu berjalan di berbagai platform sistem
operasi. Hanya di sistem operasi Windows saja sistem yang lama dapat berjalan.
Ini membuat pihak manajemen Bank Perkreditan Rakyat harus mengeluarkan
biaya lebih untuk membeli sistem operasi Windows yang asli.
43
Control : Karena server basis data yang digunakan belum mendukung konsep
transaksi, maka proses transaksi tabungan tidak aman. Kemungkinan nilai
transaksi yang salah sangat besar. Akibatnya pada akhir bulan sering muncul
perhitungan di neraca dan buku besar yang tidak seimbang.
Eficiency : Ketidakefisienan dalam sistem yang ada timbul karena seringnya
terjadi kegagalan sistem ketika mencatat proses transaksi tabungan. Kegagalan ini
membuat proses transaksi harus diulang.
Services : -
3.1.2.2. Pernyataan Masalah Tabel 3.1. Pernyataan Masalah
Pernyataan masalah dan kesempatan Solusi
1. Kemampuan dari basis data yang lama masih belum mampu mendukung konsep transaksi.
Membuat sistem baru menggunakan server basis data yang mendukung konsep transaksi dan memiliki integritas data yang tinggi.
2. Sistem yang lama tidak mampu berjalan di berbagai platform sistem operasi.
Membuat sistem baru yang yang dapat berjalan di berbagai platform sistem operasi menggunakan bahasa pemrograman yang mendukung berbagai platform sistem operasi.
3. Tampilan antarmuka yang tidak baik. Ini membuat pengguna sistem sering kebingungan.
Membuat sistem baru yang memiliki tampilan antarmuka yang lebih baik sehingga mudah dipelajari dan digunakan.
44
3.1.3. Fase Analisis Masalah (Problem Analysis Phase)
3.1.3.1. Analisis Sebab-Akibat (Cause-Effect Analysis)
Tabel 3.2. Analisis Sebab Akibat
ANALISIS PENYEBAB DAN AKIBAT TUJUAN MEMPERBAIKI SISTEM
MASALAH PENYEBAB DAN
AKIBAT TUJUAN SISTEM BATASAN SISTEM
Basis data pada
sistem saat ini tidak
mendukung konsep
transaksi
Penggunaan
server basis data
MySQL 3 yang
belum
mendukung
konsep transaksi.
Akibatnya, unjuk
kerja dari sistem
menurun dan
konsistensi data
tidak terjamin.
Mengurangi
tingkat kesalahan
sistem yang
sering terjadi
ketika
menjalankan
transaksi
tabungan.
Penggunaan server
basis data yang
mendukung konsep
transaksi dalam
basis data.
Ketidakmampuan
sistem berjalan
pada berbagai
platform sistem
operasi. Sistem
hanya berjalan
pada sistem
operasi Windows
saja
Perlunya biaya
tambahan untuk
pembelian sistem
operasi Windows
yang asli.
Akibatnya Bank
Perkreditan
Rakyat harus
mengeluarkan
biaya lebih untuk
pembelian sistem
operasi Windows
Mengurangi
pengeluaran biaya
lebih untuk
pembelian sistem
operasi Windows
yang asli.
Sistem dapat
berjalan pada
sistem operasi yang
bersifat cuma-
cuma.
45
pada setiap unit
komputer.
3.1.4. Fase Analisis Kebutuhan (Requirement Analysis Phase)
3.1.4.1. Gambaran Sistem yang Baru
Secara kontekstual tidak ada perbedaan antara sistem yang lama dengan
sistem yang baru.
Untuk menjalankan sistem, semua pengguna harus login terlebih dahulu
yang akan menentukan tingkat akses dari sistem informasi perbankan mikro Bank
Perkreditan Rakyat. Setelah proses login selesai maka pengguna dapat
menggunakan sistem untuk mencatat dan mengolah data tabungan.
Pengguna sistem memasukkan data-data tabungan di dalam forms yang
kemudian data ini diolah dan disimpan ke dalam basis data dari sistem. Dari data
ini seorang manajer tabungan dapat melakukan aksi-aksi tertentu terhadap
transaksi tabungan seperti pengolahan data rekening, perhitungan bunga, pajak
dan administrasinya, pemindahbukuan tabungan, pengelolan blokir tabungan,
validasi dan penghapusan transaksi.
Setelah semua proses pengolahan data selesai dan disimpan dalam basis
data, manajer juga dapat mencetak berbagai laporan dari subsistem tabungan yang
kemudian dilaporkan kepada pihak direksi Bank Perkreditan Rakyat.
46
Pembuatan produk tabungan dan kebijakannya masih menjadi hak dari
Direksi tabungan yang harus disetujui oleh pihak direksi Bank Perkreditan
Rakyat.
3.1.4.2. Pihak-Pihak yang Terlibat dalam Sistem
a. Direksi
Pihak yang menggunakan menu direksi yang fungsi utamanya adalah
membuat dan mengatur kebijakan dari sebuah produk tabungan dan
pengelolaan berbagai kode-kode dalam transaksi tabungan.
b. Manajer
Pihak yang menggunakan menu kantor pendukung (back office)
yang fungsinya melakukan pengelolaan data terhadap rekening
tabungan nasabah.
c. Subsistem teller
Subsistem yang menerima dan memasukan data rekening tabungan
ke dalam Sistem Informasi Lembaga Keuangan Mikro Bank
Perkreditan Rakyat
d. Subsistem customer service
Subsistem yang menerima dan memasukan data pribadi nasabah ke
dalam Sistem Informasi Lembaga Keuangan Mikro Bank
Perkreditan Rakyat.
47
3.1.4.3. Diagram Use Case
3.1.4.3.1. Tabel Aktor Use Case Aktor use case merupakan aktor yang terlibat dan memiliki kepentingan
utama di subsistem tabungan. Setiap aktor memiliki hak tertentu untuk
menjalankan subsistem tabungan yang ditentukan oleh proses login.
Terdapat beberapa aktor dalam subsistem tabungan yaitu Direksi dan
Manajer.
Tabel 3.3. Aktor Use Case
Aktor Keterangan
Orang / kelompok yang mempunyai hak akses /
kewenangan khusus untuk melakukan penambahan,
perubahan, penghapusan data tabungan dan membuat
produk-produk tabungan beserta kebijakannya serta
mengelola berbagai kode-kode yang dibutuhkan dalam
transaksi tabungan.
Orang / kelompok yang mempunyai hak akses /
kewenangan khusus untuk melakukan penambahan,
koreksi, penghapusan data transaksi tabungan, dan
mencetak laporan.
48
3.1.4.3.2. Diagram Use Case Direksi
Gambar 3.2. Diagram Use case direksi
49
A. Diagram Use Case Paket Produk Tabungan
Gambar 3.3. Use case Paket Pengelolaan Produk Tabungan
B. Diagram Use Case Paket Tabel Pendukung
Gambar 3.4. Use case Paket Tabel Pendukung
50
B.1. Diagram Use Case Paket Pengelolaan Grup Tabungan
Gambar 3.5. Use case Paket Pengelolaan Kode Grup Tabungan
51
B.2. Diagram Use Case Paket Pengelolaan Kode Referensi Transaksi
Tabungan
Gambar 3.6. Use case Paket Pengelolaan Konfigurasi Tabel Pendukung
52
3.1.4.3.3. Ringkasan Use Case Direksi
Tabel 3.4. Ringkasan Use Case Direksi
Nama Use-Case Deskripsi Use-Case Pelaku yang
berpartisipasi
Login Use case ini menggambarkan proses
masuk ke sistem.
Direksi
Pembuatan Produk
Tabungan
Use case ini menggambarkan proses
pembuatan produk tabungan
Direksi
Pengubahan
Produk Tabungan
Use case ini menggambarkan proses
pengubahan produk tabungan
Direksi
Penghapusan
Produk Tabungan
Use case ini menggambarkan proses
menghapus produk tabungan
Direksi
Pencarian Produk
Tabungan
Use case ini menggambarkan proses
mencari produk tabungan
Direksi
Penambahan Grup
Tabungan
Use case ini menggambarkan proses
penambahan grup petugas
administratif (Administrative
Officer) baru.
Direksi
Pengubahan Grup
Tabungan
Use case ini menggambarkan proses
pengubahan grup petugas
administratif (Administrative
Officer) baru.
Direksi
Penghapusan Grup
Tabungan
Use case ini menggambarkan proses
penghapusan grup petugas
administratif (Administrative
Officer) baru.
Direksi
Pencarian Grup Use case ini menggambarkan proses Direksi
53
Tabungan pencarian grup petugas administratif
(Administrative Officer).
Penambahan Kode
Referensi
Use case ini menggambarkan proses
menambah kode-kode yang
digunakan dalam transaksi tabungan
Direksi
Pengubahan Kode
Referensi
Use case ini menggambarkan proses
pengubahan kode-kode yang
digunakan dalam transaksi tabungan
Direksi
Penghapusan Kode
Referensi
Use case ini menggambarkan proses
menghapus kode-kode yang
digunakan dalam transaksi tabungan
Direksi
Pencarian Kode
Referensi
Use case ini menggambarkan proses
pencarian kode-kode yang
digunakan dalam transaksi tabungan
Direksi
Logout Use case ini menggambarkan proses
keluar dari sistem
Direksi
54
3.1.4.3.4. Diagram Use Case Manajer
Gambar 3.7. Diagram Use case Manajer
55
A. Diagram Use Case Paket Data Rekening
Gambar 3.8. Use case Paket Pengelolaan Data Rekening
56
B. Diagram Use Case Paket Bunga dan Pajak Tabungan
Pengelolaan Bunga dan Pajak Tabungan
Manajer
<<depends on>>
Perhitungan Bunga,Pajak,Administrasi Tabungan
Pemindahbukuan PerhitunganBunga,Pajak, Administrasi
Tabungan
PengubahanBunga,Pajak, Administrasi Tabungan
Pencarian Bunga,Pajak, Administrasi Tabungan
<<depends on>>
Gambar 3.9. Use case Paket Pengelolaan Bunga dan Pajak Tabungan
C. Diagram Use Case Paket Transaksi Tabungan
Gambar 3.10. Use Case Paket Pengelolaan Transaksi Tabungan
57
D. Diagram Use Case Paket Pencetakan Laporan
Gambar 3.11. Use case Paket Pencetakan Laporan
3.1.4.3.5. Ringkasan Use Case Manajer
Tabel 3.5. Ringkasan Use Case Manajer
Nama Use-Case Deskripsi Use-Case Pelaku yang
berpartisipasi
Login Use case ini menggambarkan proses
masuk ke sistem.
Manajer
Penambahan Data
Rekening
Use case ini menggambarkan proses
penambahan data pada rekening
nasabah.
Manajer
Pengubahan Data
Rekening
Use case ini menggambarkan proses
Pengubahan data rekening nasabah.
Manajer
58
Penghapusan Data
Rekening
Use Case ini menggambarkan proses
penghapusan data dari rekening
Manajer
Pencarian Data
Rekening
Use Case ini menggambarkan proses
pencarian data rekening nasabah
Manajer
Penghitungan Bunga,
Pajak, Administrasi
Tabungan
Use case ini menggambarkan proses
menghitung bunga dan pajak tabungan
untuk setiap rekening.
Manajer
Pemindahbukuan Use case ini menggambarkan proses
pemindahbukuan dari hasil perhitungan
bunga dan pajak tabungan ke dalam
rekening tabungan.
Manajer
Pencarian Bunga dan
Pajak Tabungan
Use case ini menggambarkan proses
pencarian bunga dan pajak tabungan
suatu rekening
Manajer
Pengubahan Bunga
dan Pajak Tabungan
Use case ini menggambarkan proses
pengubahan nilai bunga dan pajak
tabungan pada rekening tabungan.
Manajer
Penghapusan
Transaksi
Use case ini menggambarkan proses
penghapusan transaksi yang sudah
tercatat. Penghapusan dapat dilakukan
apabila ada transaksi yang belum
mengalami proses kesalahan dalam
memasukkan data transaksi tabungan.
Manajer
Pencetakan Laporan
Nominatif Tabungan
Use case ini menggambarkan proses
pencetakan laporan yang menampilkan
Manajer
59
saldo akhir nasabah, saldo rata-rata
nasabah, saldo bagi hasil/bagi hasil dan
pajak masing-masing nasabah.
Pencetakan Laporan
Transaksi Tabungan
Use case ini menggambarkan proses
pencetakan laporan yang menampilkan
transaksi setoran dan penarikan dalam
selang waktu tertentu
Manajer
Pencetakan Laporan
Daftar Mutasi
Tabungan
Use case ini menggambarkan proses
pencetakan laporan yang menampilkan
jumlah mutasi saldo simpanan dalam
selang waktu tertentu.
Manajer
Pencetakan Laporan
Bunga, Pajak dan
Administrasi
Use case ini menggambarkan proses
pencetakan laporan yang menampilkan
jumlah bunga, pajak dan administrasi
untuk setiap rekening dalam selang
waktu tertentu
Manajer
Logout Use case ini menggambarkan proses
keluar dari sistem.
Manajer
60
3.1.4.4. Narasi Use Case 1. Narasi Login
Penulis : Fransiskus Paranso Tanggal: 19 November 2008 Versi : 1.0
Nama Use-case: Login Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-001 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi, Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses untuk masuk ke sistem. Use case ini berguna untuk menjaga hak khusus yang juga menentukan level akses penggunaan sistem.
Kondisi Awal: Direksi dan Manajer telah memiliki username dan password Pemicu: Use case ini digunakan apabila Direksi atau Manajer ingin
masuk ke dalam sistem. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1: Direksi atau Manajer menjalankan Sistem Informasi Lembaga Keuangan Mikro Subsistem Tabungan Langkah 3: Direksi atau Manajer memasukkan username dan password, tanggal aplikasi serta konfirmasi tanggal aplikasi. Langkah 4: Direksi atau Manajer menekan tombol ”MASUK”
Langkah 2: Sistem meminta memasukkan username dan password Langkah 5: Sistem memeriksa validitas dari username dan password di basis data serta kesesuaian dari tanggal aplikasi dan konfirmasinya.
61
Langkah 6: Sistem masuk ke menu utama
Aktifitas Alternatif:
Langkah Alternatif 4: Direksi atau Manajer menekan tombol “BATAL” sehingga sistem tidak jadi masuk ke menu utama dan kembali ke menu utama. Langkah Alternatif 5: Jika username dan password yang dimasukkan tidak sesuai atau tanggal aplikasi dengan konfirmasi tanggal aplikasi tidak sama, maka sistem akan memberikan peringatan.
Kesimpulan: Pengguna dapat masuk ke dalam sistem dengan level akses tertentu.
Kondisi Akhir: Direksi atau Manajer berhasil login dan masuk ke menu utama
Direksi atau Manajer tidak jadi masuk ke sistem Prosedur Bisnis: Direksi atau Manajer harus memasukan username dan
password dengan benar Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password.
2. Narasi Logout
Penulis : Fransiskus Paranso Tanggal: 19 November 2008 Versi : 1.0
Nama Use-case: Logout Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-002 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi, Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses untuk keluar dari sistem.
Kondisi Awal: Direksi dan Manajer telah berhasil masuk ke dalam sistem Pemicu: Use case ini digunakan apabila Direksi atau Manajer ingin
keluar dari sistem. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1: Direksi atau Manajer memilih menu
62
keluar Langkah 3: Direksi atau Manajer memilih tombol “YA”
Langkah 2: Sistem melakukan konfirmasi apakah pengguna ingin keluar dari sistem. Langkah 4: Pengguna keluar dari sistem dan sistem berhenti.
Aktifitas Alternatif:
Langkah Alternatif 3: Direksi atau Manajer tidak menekan tombol “KELUAR” sehingga pengguna tidak jadi keluar dari sistem. Langkah Alternatif 4 : Kembali ke tampilan utama sistem
Kesimpulan: Pengguna dapat keluar dari sistem. Kondisi Akhir: Direksi atau Manajer berhasil keluar sistem
Direksi atau Manajer tidak berhasil keluar dari sistem Prosedur Bisnis: Direksi atau Manajer harus berhasil login kedalam sistem
utama. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password.
3. Narasi Penambahan Produk Tabungan
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Menambah Produk Tabungan Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-003 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses penambahan produk tabungan
Kondisi Awal: Direksi telah login Pemicu: Use case ini digunakan apabila Direksi ingin menambah
produk tabungan baru. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
63
Langkah 1: Direksi memilih menu produk tabungan Langkah 3: Direksi memasukkan data baru untuk membuat produk tabungan pada form produk tabungan. Langkah 4 : Direksi menekan tombol “SIMPAN”.
Langkah 2: Sistem menampilkan antarmuka produk tabungan. Langkah 5: Sistem menyimpan data-data produk tabungan ke dalam basis data. Langkah 6: Sistem menampilkan pesan bahwa data produk tabungan yang baru berhasil disimpan.
Aktifitas Alternatif:
Langkah Alternatif 1 : Direksi memilih menu yang lain . Langkah Alternatif 2: Sistem menampilkan antarmuka sesuai dengan masukan dari Direksi. Langkah Alternatif 4: Direksi menekan tombol “KELUAR”. Langkah Alternatif 4 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 4 : Direksi menekan tombol “HAPUS”. Langkah Alternatif 5 : Sistem menampilkan antarmuka menu utama Direksi. Langkah Alternatif 5 : Sistem akan menanyakan untuk membersihkan antarmuka Produk Tabungan atau tidak. Langkah Alternatif 5 : Sistem akan memunculkan pesan kesalahan karena tidak ada data yang dapat dihapus. Langkah Alternatif 6: Jika penyimpanan data gagal maka sistem memunculkan pesan kegagalan.
Kesimpulan: Sistem dapat menyimpan produk tabungan yang baru sesuai dengan masukan dari aktor.
Kondisi Akhir: Data produk tabungan tersimpan dalam basis data. Data produk tabungan tidak tersimpan dalam basis
data. Prosedur Bisnis: Direksi harus memasukkan data yang sesuai dengan sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi
4. Narasi Pengubahan Produk Tabungan
Penulis : Fransiskus Paranso Tanggal: 21 November 2008
64
Versi : 1.0 Nama Use-case: Pengubahan Produk
Tabungan Jenis Use-Case
Kebutuhan Bisnis: ID Use-case: SILKMST-004 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pengubahan produk tabungan
Kondisi Awal: Direksi telah login Direksi sudah memilih menu produk tabungan Direksi sudah melakukan proses pencarian terhadap
produk tabungan yang ingin diubah. Pemicu: Use case ini digunakan apabila Direksi ingin mengubah
produk tabungan yang sudah ada. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1: Direksi memasukkan data perubahan untuk produk tabungan dari hasil pencarian. Langkah 2: Direksi menekan tombol “SIMPAN”.
Langkah 3: Sistem menyimpan data pengubahan produk tabungan. Langkah 4: Sistem menampilkan pesan pengubahan produk tabungan berhasil.
Aktifitas Alternatif:
Langkah Alternatif 2 : Direksi menekan tombol “KELUAR”. Langkah Alternatif 2 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 2 : Direksi menekan tombol “HAPUS”. Langkah Alternatif 3 : Sistem menampilkan antarmuka menu utama Direksi. Langkah Alternatif 3 : Sistem akan menanyakan untuk membersihkan antarmuka Produk Tabungan atau tidak. Langkah Alternatif 3 : Sistem akan memunculkan pesan kesalahan karena tidak ada data yang dapat dihapus.
65
Langkah Alternatif 4 : Jika pengubahan data gagal maka sistem memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat mengubah produk tabungan sesuai dengan masukan dari aktor.
Kondisi Akhir: Data perubahan produk tabungan tersimpan dalam basis data.
Data perubahan produk tabungan tidak tersimpan dalam basis data.
Prosedur Bisnis: Direksi harus memasukkan data yang sesuai dengan sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi
5. Narasi Penghapusan Produk Tabungan
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Penghapusan Produk Tabungan
Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-005 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses penghapusan produk tabungan yang sudah dibuat.
Kondisi Awal: Direksi telah login Direksi sudah memilih menu produk tabungan Direksi sudah melakukan proses pencarian terhadap
produk tabungan yang ingin dihapus. Pemicu: Use case ini digunakan apabila Direksi ingin menghapus
produk tabungan yang sudah ada. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1: Direksi menekan tombol “HAPUS” untuk menghapus produk tabungan.
Langkah 2: Sistem memunculkan antarmuka konfirmasi untuk menanyakan penghapusan data.
66
Langkah 3 : Direksi menekan tombol “YES”.
Langkah 4 : Sistem menghapus produk tabungan berdasarkan masukan Direksi dari dalam basis data. Langkah 5: Sistem menampilkan pesan proses penghapusan berhasil.
Aktifitas Alternatif:
Langkah Alternatif 1 : Direksi menekan tombol “KELUAR”. Langkah Alternatif 1 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 1 : Direksi menekan tombol “SIMPAN”. Langkah Alternatif 2 : Sistem menampilkan antarmuka menu utama Direksi. Langkah Alternatif 2 : Sistem akan menanyakan untuk membersihkan antarmuka Produk Tabungan atau tidak. Langkah Alternatif 2 : Sistem akan mengubah data produk tabungan sesuai dengan data-data yang ada di antarmuka Produk Tabungan. Langkah Alternatif 3 : Direksi menekan tombol “NO”. Langkah Alternatif 4 : Sistem kembali ke antarmuka Produk Tabungan. Langkah Alternatif 5: Jika penghapusan data gagal maka sistem memunculkan pesan kesalahan
Kesimpulan: Sistem dapat menghapus produk tabungan sesuai dengan masukan dari aktor.
Kondisi Akhir: Data produk tabungan terhapus dari basis data. Data produk tabungan tidak terhapus dari basis
data. Prosedur Bisnis: Direksi harus memasukkan data yang sesuai dengan sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi
6. Narasi Pencarian Produk Tabungan
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Pencarian Produk Tabungan Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-006 Prioritas: Tinggi Sumber: -
67
Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pencarian produk tabungan yang sudah dibuat.
Kondisi Awal: Direksi telah login. Direksi sudah memilih menu produk tabungan.
Pemicu: Use case ini digunakan apabila Direksi ingin mencari produk tabungan.
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Direksi menekan tombol “LIHAT TABEL”. Langkah 3: Direksi memasukkan kriteria pencarian pada panel “Kriteria Filter Informasi”. Kemudian Direksi menekan tombol “PROSES”. Langkah 5 : Direksi memilih salah satu baris sebagai hasil pencarian. Kemudian Direksi menekan tombol “PILIH”.
Langkah 2 : Sistem menampilkan halaman pencarian produk tabungan. Langkah 4: Sistem melakukan pencarian di basis data sesuai dengan kriteria yang dimasukkan Direksi. Hasil pencarian dimunculkan di panel “Data Produk Tabungan Tercatat”. Langkah 6: Sistem menampilkan halaman Produk Tabungan dengan data dari hasil pilihan di halaman pencarian Produk Tabungan.
Aktifitas Alternatif:
Langkah Alternatif 1 : Direksi menekan tombol “KELUAR”. Langkah Alternatif 1 : Direksi menekan tombol “SIMPAN”.
68
Langkah Alternatif 1 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 1 : Direksi menekan tombol “HAPUS”. Langkah Alternatif 2 : Sistem kembali ke tampilan utama menu tabel pendukung. Langkah Alternatif 2 : Jika data pada fields di Produk Tabungan kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields Produk Tabungan tidak kosong maka sistem menyimpan data dari halaman Produk Tabungan sebagai data perubahan. Langkah Alternatif 2 : Sistem akan menanyakan untuk membersihkan form. Jika jawaban “YES” maka sistem akan membersihkan semua masukan yang ditulis di atas halaman Produk Tabungan. Jika “NO”, maka sistem akan kembali ke halaman Produk Tabungan Langkah Alternatif 2 : Sistem menampilkan pesan kesalahan data tidak dapat dihapus. Langkah Alternatif 3 : Admistrator langsung memilih data yang sudah ada pada panel hasil pencarian Produk Tabungan, dan menekan tombol “PILIH”. Langkah Alternatif 3 : Direksi menekan tombol “REFRESH”. Langkah Alternatif 4 : Sistem menampilkan halaman Produk Tabungan dengan data dari hasil pilihan di halaman pencarian Produk Tabungan. Langkah Alternatif 4 : Sistem menampilkan kondisi awal tabel hasil pencarian kode grup tabungan . Langkah Alternatif 6 : Jika data pencarian tidak ditemukan, maka akan memunculkan pesan bahwa data tidak ditemukan.
Kesimpulan: Sistem dapat mencari produk tabungan sesuai dengan masukan dari Direksi.
Kondisi Akhir: Sistem menemukan hasil pencarian dan menampilkannya di antarmuka produk tabungan
Sistem tidak menemukan data pencarian produk tabungan.
Prosedur Bisnis: Direksi harus berhasil login kedalam sistem utama dan memilih menu produk tabungan.
Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat. Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi.
7. Narasi Penambahan Grup Tabungan
Penulis : Fransiskus Paranso Tanggal: 5 September 2009 Versi : 1.0
69
Nama Use-case: Penambahan Grup Tabungan Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-07 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses penambahan Grup Tabungan.
Kondisi Awal: Direksi telah login Direksi sudah memilih sub menu Grup di menu
Tabel Pendukung. Pemicu: Use case ini digunakan apabila Direksi ingin menambahkan
Grup Tabungan yang baru. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Direksi memasukkan data-data untuk grup tabungan yang baru Langkah 2 : Direksi menekan tombol “SIMPAN”
Langkah 3: Sistem menyimpan grup tabungan yang baru kedalam basis data. Langkah 4: Sistem menampilkan pesan penyimpanan grup tabungan yang baru berhasil.
Aktifitas Alternatif:
Langkah Alternatif 2 : Direksi menekan tombol “KELUAR”. Langkah Alternatif 2 : Direksi menekan tombol “HAPUS”. Langkah Alternatif 2 : Direksi menekan tombol “BERSIHKAN” Langkah Alternatif 3 : Sistem kembali ke tampilan utama menu tabel pendukung. Langkah Alternatif 3 : Sistem menampilkan pesan kesalahan data tidak dapat dihapus. Langkah Alternatif 3 : Sistem akan menanyakan untuk membersihkan form. Jika jawaban “YES” maka sistem akan membersihkan semua masukan yang ditulis di atas halaman grup tabungan. Jika “NO”, maka sistem akan kembali ke
70
halaman grup tabungan. Langkah Alternatif 4 : Jika ada kesalahan masukan atau proses penyimpanan gagal maka sistem memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat menyimpan data-data grup tabungan yang baru sesuai dengan masukan aktor.
Kondisi Akhir: Sistem menyimpan grup tabungan yang baru. Sistem tidak menyimpan data-data grup tabungan
yang baru. Prosedur Bisnis: Direksi harus memasukkan data yang sesuai dengan sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi
8. Narasi Pengubahan Grup Tabungan
Penulis : Fransiskus Paranso Tanggal: 5 September 2009 Versi : 1.0
Nama Use-case: Pengubahan Grup Tabungan Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-008 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pengubahan grup tabungan.
Kondisi Awal: Direksi telah login Direksi sudah memilih sub menu Grup di menu Tabel
Pendukung. Direksi sudah melakukan pencarian grup tabungan
yang akan diubah dari dalam basis data. Pemicu: Use case ini digunakan apabila Direksi ingin mengubah grup
tabungan. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Direksi memasukkan data-data perubahan untuk grup tabungan sesuai dengan hasil
71
pencarian. Langkah 2 : Direksi menekan tombol “SIMPAN”
Langkah 3: Sistem mengubah grup tabungan dan menyimpan data-data grup tabungan baru kedalam basis data. Langkah 4: Sistem menampilkan pesan perubahan data grup tabungan berhasil.
Aktifitas Alternatif:
Langkah Alternatif 2 : Direksi menekan tombol “KELUAR”. Langkah Alternatif 2 : Direksi menekan tombol “HAPUS”. Langkah Alternatif 2 : Direksi menekan tombol “BERSIHKAN” Langkah Alternatif 3 : Sistem kembali ke tampilan utama menu tabel pendukung. Langkah Alternatif 3 : Sistem menampilkan pesan kesalahan data tidak dapat dihapus. Langkah Alternatif 3 : Sistem akan menanyakan untuk membersihkan form. Jika jawaban “YES” maka sistem akan membersihkan semua masukan yang ditulis di atas halaman grup tabungan. Jika “NO”, maka sistem akan kembali ke halaman grup tabungan. Langkah Alternatif 4 : Jika ada kesalahan masukan atau proses penyimpanan gagal maka sistem memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat menyimpan data-data perubahan grup tabungan yang baru sesuai dengan masukan aktor.
Kondisi Akhir: Sistem menyimpan grup tabungan yang baru. Sistem tidak menyimpan data-data grup tabungan
yang baru. Prosedur Bisnis: Direksi harus memasukkan data yang sesuai dengan sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi
9. Narasi Penghapusan Grup Tabungan
Penulis : Fransiskus Paranso Tanggal: 5 September 2009 Versi : 1.0
72
Nama Use-case: Penghapusan Grup Tabungan
Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-009 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses penghapusan grup tabungan.
Kondisi Awal: Direksi telah login Direksi sudah memilih sub menu Grup di menu Tabel
Pendukung. Direksi sudah melakukan pencarian grup tabungan
yang akan dihapus dari dalam basis data. Pemicu: Use case ini digunakan apabila Direksi menghapus grup
tabungan. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Direksi menekan tombol “HAPUS”. Langkah 3: Direksi menekan tombol “YES”.
Langkah 2: Sistem akan menanyakan apakah akan menghapus data. Langkah 4 : Sistem menghapus data grup tabungan dari basis data. Langkah 5: Sistem menampilkan pesan penghapusan data grup tabungan berhasil.
Aktifitas Alternatif:
Langkah Alternatif 1 : Direksi menekan tombol “KELUAR”. Langkah Alternatif 1 : Direksi menekan tombol “SIMPAN”. Langkah Alternatif 2 : Direksi menekan tombol “BERSIHKAN” Langkah Alternatif 3 : Sistem kembali ke tampilan utama menu tabel pendukung. Langkah Alternatif 3 : Sistem menyimpan data dari halaman grup tabungan sebagai data perubahan. Langkah Alternatif 3 : Sistem akan menanyakan untuk membersihkan form. Jika jawaban “YES” maka sistem akan
73
membersihkan semua masukan yang ditulis di atas halaman grup tabungan. Jika “NO”, maka sistem akan kembali ke halaman grup tabungan. Langkah Alternatif 3 : Direksi menekan tombol “NO”. Langkah Alternatif 4 : Sistem kembali ke halaman grup tabungan. Langkah Alternatif : Jika ada kesalahan masukan atau proses penghapusan gagal maka sistem memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat menghapus data grup tabungan sesuai dengan masukan dari aktor
Kondisi Akhir: Sistem menghapus data grup tabungan. Sistem tidak menghapus data grup tabungan.
Prosedur Bisnis: Direksi harus memasukkan data yang sesuai dengan kebutuhan sistem
Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi.
10. Narasi Pencarian Grup Tabungan
Penulis : Fransiskus Paranso Tanggal: 5 September 2009 Versi : 1.0
Nama Use-case: Pencarian Grup Tabungan Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-010 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pencarian grup tabungan.
Kondisi Awal: Direksi telah login Direksi sudah memilih sub menu Grup Tabungan di
menu Tabel Pendukung. Pemicu: Use case ini digunakan apabila Direksi ingin mencari grup
74
tabungan tertentu. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Direksi menekan tombol “LIHAT TABEL” pada panel grup tabungan. Langkah 3: Direksi memasukkan kriteria pencarian pada panel “Kriteria Filter Informasi”. Kemudian Direksi menekan tombol “PROSES”. Langkah 5 : Direksi memilih salah satu baris sebagai hasil pencarian. Kemudian Direksi menekan tombol “PILIH”.
Langkah 2 : Sistem menampilkan halaman pencarian grup tabungan. Langkah 4: Sistem melakukan pencarian di basis data sesuai dengan kriteria yang dimasukkan Direksi. Hasil pencarian dimunculkan di panel “Data Grup Tercatat”. Langkah 6: Sistem menampilkan halaman Grup Tabungan dengan data dari hasil pilihan di halaman pencarian grup tabungan.
Aktifitas Alternatif:
Langkah Alternatif 1 : Direksi menekan tombol “KELUAR”. Langkah Alternatif 1 : Direksi menekan tombol “SIMPAN”. Langkah Alternatif 1 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 1 : Direksi menekan tombol “HAPUS”. Langkah Alternatif 1 : Direksi menekan tombol “LIHAT TABEL” di panel data rekening. Langkah Alternatif 2 : Sistem kembali ke tampilan utama menu tabel pendukung. Langkah Alternatif 2 : Jika data pada fields di Grup Tabungan kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields Grup Tabungan tidak kosong maka sistem menyimpan data dari halaman Referensi Transaksi Tabungan sebagai data perubahan.
75
Langkah Alternatif 2 : Sistem akan menanyakan untuk membersihkan form. Jika jawaban “YES” maka sistem akan membersihkan semua masukan yang ditulis di atas halaman grup tabungan. Jika “NO”, maka sistem akan kembali ke halaman grup tabungan. Langkah Alternatif 2 : Sistem menampilkan pesan kesalahan data tidak dapat dihapus. Langkah Alternatif 2 : Sistem menampilkan halaman pencarian data rekening tabungan. Langkah Alternatif 3 : Admistrator langsung memilih data yang sudah ada pada panel hasil pencarian grup tabungan, dan menekan tombol “PILIH”. Langkah Alternatif 3 : Direksi menekan tombol “REFRESH”. Langkah Alternatif 4 : Sistem menampilkan halaman Grup Tabungan dengan data dari hasil pilihan di halaman pencarian grup tabungan. Langkah Alternatif 4 : Sistem menampilkan kondisi awal tabel hasil pencarian grup tabungan . Langkah Alternatif 6 : Jika data pencarian tidak ditemukan, maka akan memunculkan pesan bahwa data tidak ditemukan.
Kesimpulan: Sistem dapat mencari data grup tabungan sesuai dengan masukan dari Direksi.
Kondisi Akhir: Sistem menemukan hasil pencarian sesuai dengan masukan dari Direksi.
Sistem tidak menemukan hasil pencarian sesuai dengan masukan dari Direksi.
Prosedur Bisnis: Direksi harus memasukkan data yang sesuai dengan sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat. Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi.
11. Narasi Penambahan Kode Referensi Transaksi Tabungan
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Penambahan Kode Referensi Transaksi Tabungan
Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-016 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
76
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses penambahan kode referensi transaksi tabungan.
Kondisi Awal: Direksi telah login. Direksi sudah memilih menu tabel pendukung Direksi sudah memilih sub menu Kode Referensi
Transaksi Tabungan
Pemicu: Use case ini digunakan apabila Direksi ingin menambahkan kode referensi yang baru.
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Direksi memasukkan data-data untuk kode referensi transaksi tabungan yang baru. Langkah 2 : Direksi menekan tombol “SIMPAN”.
Langkah 3: Sistem menyimpan kode transaksi yang baru ke dalam basis data. Langkah 4: Sistem menampilkan penyimpanan kode transaksi tabungan yang baru berhasil.
Aktifitas Alternatif:
Langkah Alternatif 1 Direksi tidak memasukkan data-data untuk kode referensi tabungan yang baru. Langkah Alternatif 2 : Direksi menekan tombol “KELUAR”. Langkah Alternatif 2 : Direksi menekan tombol “HAPUS”. Langkah Alternatif 2 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 3 : Sistem kembali ke antarmuka menu Tabel Pendukung. Langkah Alternatif 3 : Sistem memuculkan pesan kesalahan karena tidak ada data kode referensi tabungan yang dapat dihapus. Langkah Alternatif 3 : Sistem menanyakan untuk membersihkan antarmuka Kode Referensi Transaksi Tabungan. Langkah Alternatif 4 : Jika ada kesalahan masukan atau proses penyimpanan gagal maka sistem memunculkan pesan
77
kesalahan. Kesimpulan: Sistem dapat menyimpan data-data kode referensi transaksi
yang baru sesuai dengan masukan dari aktor. Kondisi Akhir: Sistem menyimpan data-data untuk kode referensi
transaksi tabungan yang baru. Sistem tidak menyimpan data-data untuk kode
referensi transaksi tabungan yang baru.
Prosedur Bisnis: Direksi harus memasukkan data kode referensi transaksi tabungan yang sesuai ke dalam sistem.
Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat. Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi.
12. Narasi Pengubahan Kode Referensi
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Pengubahan Kode Referensi
Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-017 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses mengubah kode referensi transaksi tabungan.
Kondisi Awal: Direksi telah login. Direksi telah memilih menu tabel pendukung. Direksi telah memilih sub menu Kode Referensi
Transaksi Tabungan Direksi telah mencari data kode referensi transaksi
tabungan yang ingin diubah Pemicu: Use case ini digunakan apabila Direksi ingin mengubah
kode referensi transaksi tabungan yang sudah ada. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Direksi memasukkan data-data untuk kode referensi
78
transaksi tabungan yang ingin diubah berdasarkan hasil pencarian. Langkah 2 : Direksi menekan tombol “SIMPAN”.
Langkah 3: Sistem menyimpan kode transaksi yang baru diubah ke dalam basis data. Langkah 4: Sistem menampilkan pesan pengubahan kode transaksi tabungan yang baru berhasil.
Aktifitas Alternatif:
Langkah Alternatif 2 : Direksi menekan tombol “KELUAR”. Langkah Alternatif 2 : Direksi menekan tombol “HAPUS”. Langkah Alternatif 2 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 3 : Sistem kembali ke antarmuka menu tabel pendukung. Langkah Alternatif 3 : Sistem menghapus data dari basis data. Langkah Alternatif 3 : Sistem menanyakan untuk membersihkan antarmuka Kode Referensi Transaksi Tabungan. Langkah Alternatif 4 : Jika ada kesalahan masukan atau proses penyimpanan gagal maka sistem memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat mengubah dan menyimpan data-data kode referensi transaksi yang baru sesuai dengan masukan dari aktor.
Kondisi Akhir: Sistem menyimpan perubahan data-data untuk kode referensi transaksi tabungan yang baru.
Sistem tidak menyimpan perubahan data-data untuk kode referensi transaksi tabungan yang baru.
Prosedur Bisnis: Direksi harus memasukkan data sesuai dengan sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat. Dapat diakses hanya oleh pengguna yang memiliki
username password Direksi.
79
13. Narasi Penghapusan Kode Referensi
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Penghapusan Kode Referensi Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-018 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses menghapus kode referensi transaksi tabungan yang sudah ada.
Kondisi Awal: Direksi telah login. Direksi telah memilih menu tabel pendukung Direksi telah memilih sub menu Kode Referensi
Transaksi Tabungan Direksi sudah melakukan pencarian terhadap data
yang mau dihapus. Pemicu: Use case ini digunakan apabila Direksi ingin menghapus kode
referensi transaksi tabungan. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Direksi menghapus kode referensi transaksi tabungan berdasarkan hasil pencarian dengan menekan tombol “HAPUS”.
Langkah 2: Sistem melakukan konfirmasi, jika ya, maka sistem menghapus produk tabungan berdasarkan masukan Direksi di dalam basis data, jika tidak maka sistem kembali ke antar muka tabel pendukung. Langkah 3 : Sistem menampilkan pesan penghapusan kode referensi transaksi tabungan berhasil.
Aktifitas Alternatif:
Langkah Alternatif 1 : Direksi menekan tombol “KELUAR” Langkah Alternatif 1 : Direksi menekan tombol “SIMPAN”.
80
Langkah Alternatif 1 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 2 : Sistem kembali ke antarmuka menu tabel pendukung. Langkah Alternatif 2 : Sistem mengubah data di basis data sesuai dengan data yang ada di antarmuka Kode Referensi Transaksi Tabungan. Langkah Alternatif 2 : Sistem menanyakan untuk membersihkan antarmuka Kode Referensi Transaksi Tabungan. Langkah Alternatif 3 : Jika ada kesalahan masukan atau proses penghapusan gagal maka sistem memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat menghapus data-data kode referensi transaksi tabungan sesuai dengan masukan dari aktor.
Kondisi Akhir: Sistem menghapus kode referensi transaksi tabungan yang dipilih direksi.
Sistem tidak menghapus kode referensi transaksi tabungan yang dipilih direksi .
Prosedur Bisnis: Direksi harus memasukkan data sesuai dengan sistem untuk dapat dihapus.
Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat. Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi.
14. Narasi Pencarian Kode Referensi
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Pencarian Kode Referensi Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-019 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pencarian kode referensi transaksi tabungan yang sudah ada.
Kondisi Awal: Direksi telah login. Direksi sudah memilih submenu Kode Referensi
81
Transaksi dari menu tabel pendukung.
Pemicu: Use case ini digunakan apabila Direksi ingin mencari kode referensi transaksi tabungan.
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Direksi menekan tombol “LIHAT TABEL” . Langkah 3: Direksi memasukkan kriteria pencarian pada panel “Kriteria Filter Informasi”. Kemudian Direksi menekan tombol “PROSES”. Langkah 5 : Direksi memilih salah satu baris sebagai hasil pencarian. Kemudian Direksi menekan tombol “PILIH”.
Langkah 2 : Sistem menampilkan halaman pencarian Kode Referensi Transaksi Tabungan. Langkah 4: Sistem melakukan pencarian di basis data sesuai dengan kriteria yang dimasukkan Direksi. Hasil pencarian dimunculkan di panel “Data Kode Referensi Transaksi Tercatat”. Langkah 6: Sistem menampilkan halaman Kode Referensi Transaksi Tabungan dengan data dari hasil pilihan di halaman pencarian Kode Referensi Transaksi Tabungan.
Aktifitas Alternatif:
Langkah Alternatif 1 : Direksi menekan tombol “KEMBALI”. Langkah Alternatif 1 : Direksi menekan tombol “SIMPAN”. Langkah Alternatif 1 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 1 : Direksi menekan tombol “HAPUS”. Langkah Alternatif 2 : Sistem kembali ke tampilan utama menu tabel pendukung.
82
Langkah Alternatif 2 : Jika data pada fields di Kode Referensi Transaksi Tabungan kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields Kode Referensi Transaksi Tabungan tidak kosong maka sistem menyimpan data dari halaman Kode Referensi Transaksi Tabungan sebagai data perubahan. Langkah Alternatif 2 : Sistem akan menanyakan untuk membersihkan form. Jika jawaban “YES” maka sistem akan membersihkan semua masukan yang ditulis di atas halaman Kode Referensi Transaksi Tabungan. Jika “NO”, maka sistem akan kembali ke halaman Kode Referensi Transaksi Tabungan tanpa melakukan perubahan. Langkah Alternatif 2 : Sistem menampilkan pesan kesalahan data tidak dapat dihapus. Langkah Alternatif 2 : Sistem menampilkan halaman pencarian data Kode Referensi Transaksi Tabungan. Langkah Alternatif 3 : Admistrator langsung memilih data yang sudah ada pada panel hasil pencarian Kode Referensi Transaksi Tabungan, dan menekan tombol “PILIH”. Langkah Alternatif 3 : Direksi menekan tombol “REFRESH”. Langkah Alternatif 4 : Sistem menampilkan halaman Kode Referensi Transaksi Tabungan dengan data dari hasil pilihan di halaman Kode Referensi Transaksi Tabungan. Langkah Alternatif 4 : Sistem menampilkan kondisi awal tabel hasil pencarian Kode Referensi Transaksi Tabungan. Langkah Alternatif 6 : Jika data pencarian tidak ditemukan, maka akan memunculkan pesan bahwa data tidak ditemukan.
Kesimpulan: Sistem dapat mencari data-data kode referensi transaksi yang sesuai dengan masukan dari aktor.
Kondisi Akhir: Sistem menemukan kode referensi transaksi tabungan yang dipilih direksi.
Sistem tidak menemukan kode referensi transaksi tabungan yang dipilih direksi
Prosedur Bisnis: Direksi harus memasukkan kata kunci yang sesuai untuk melakukan pencarian.
Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Direksi
15. Narasi Penambahan Data Rekening
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Penambahan Data Rekening Jenis Use-Case
83
Kebutuhan Bisnis: ID Use-case: SILKMST-021 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses penambahan data rekening tabungan.
Kondisi Awal: Manajer telah login. Manajer telah memilih menu data rekening Manjer telah memilih nasabah pemilik rekening baru
yang akan ditambahkan. Pemicu: Use case ini digunakan apabila Manajer ingin menambah
data rekening tabungan. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Manajer memasukkan data baru rekening tabungan. Langkah 2 : Manajer menekan tombol “SIMPAN”.
Langkah 3 : Sistem menyimpan data rekening tabungan yang baru. Langkah 4 : Sistem menampilkan pesan penyimpanan data rekening berhasil.
Aktifitas Alternatif:
Langkah Alternatif 2 : Manajer menekan tombol “KELUAR”. Langkah Alternatif 2 : Manajer menekan tombol “BERSIHKAN”. Langkah Alternatif 2 : Manajer menekan tombol “HAPUS”. Langkah Alternatif 3 : Sistem kembali ke tampilan utama. Langkah Alternatif 3 : Sistem akan menanyakan untuk membersihkan halaman. Jika jawaban “YES” maka sistem akan membersihkan semua masukan yang ditulis di atas halaman Data Rekening. Jika “NO”, maka sistem akan kembali ke halaman Data Rekening. Langkah Alternatif 3 : Jika data pada fields Data Rekening
84
kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields Data Rekening tidak kosong maka sistem menyimpan data dari halaman Data Rekening sebagai data perubahan. Langkah Alternatif 4 : Jika ada kesalahan masukan atau proses penyimpanan gagal maka sistem memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat menyimpan data rekening yang baru sesuai dengan masukan dari aktor.
Kondisi Akhir: Sistem menyimpan data rekening yang baru. Sistem tidak menyimpan data rekening yang baru.
Prosedur Bisnis: Manajer harus memasukkan data yang sesuai dengan sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat. Dapat diakses hanya oleh pengguna yang memiliki
username dan password Manajer.
16. Narasi Pengubahan Data Rekening
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Pengubahan Data Rekening
Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-022 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pengubahan data rekening tabungan.
Kondisi Awal: Manajer telah login. Manajer telah memilih menu data rekening. Manajer telah memilih data rekening yang ingin
diubah. Pemicu: Use case ini digunakan apabila Manajer ingin mengubah
data rekening tabungan. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Manajer memasukkan data baru rekening tabungan sesuai
85
dengan hasil pencarian. Langkah 2 : Manajer menekan tombol “SIMPAN”.
Langkah 3 : Sistem menyimpan data rekening tabungan yang baru diubah ke dalam basis data. Langkah 4 : Sistem menampilkan pesan pengubahan data rekening berhasil.
Aktifitas Alternatif:
Langkah Alternatif 2 : Manajer menekan tombol “KELUAR”. Langkah Alternatif 2 : Manajer menekan tombol “BERSIHKAN”. Langkah Alternatif 2 : Manajer menekan tombol “HAPUS”. Langkah Alternatif 3 : Sistem kembali ke tampilan utama. Langkah Alternatif 3 : Sistem akan menanyakan untuk membersihkan halaman. Jika jawaban “YES” maka sistem akan membersihkan semua masukan yang ditulis di atas halaman Data Rekening. Jika “NO”, maka sistem akan kembali ke halaman Data Rekening. Langkah Alternatif 3 : Jika data pada fields Data Rekening kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields Data Rekening tidak kosong maka sistem menyimpan data dari halaman Data Rekening sebagai data perubahan. Langkah Alternatif 4 : Jika ada kesalahan masukan atau proses pengubahan gagal maka sistem memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat menyimpan data rekening yang baru diubah sesuai dengan masukan dari aktor.
Kondisi Akhir: Sistem menyimpan data rekening yang baru diubah. Sistem tidak menyimpan data rekening yang baru
diubah. Prosedur Bisnis: Manajer harus memasukkan data yang sesuai dengan
sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Manajer
86
17. Narasi Penghapusan Data Rekening
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Penghapusan Data Rekening
Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-017 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses penghapusan data rekening tabungan.
Kondisi Awal: Manajer telah login Manajer telah memilih menu data rekening. Manajer telah memilih data rekening yang ingin
dihapus. Pemicu: Use case ini digunakan apabila Manajer ingin menghapus
data rekening tabungan. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Manajer menghapus rekening tabungan sesuai dengan hasil pencarian dengan menekan tombol “HAPUS”.
Langkah 2 : Sistem melakukan konfirmasi, jika ya, maka sistem menghapus produk tabungan berdasarkan masukan Direksi di dalam basis data, jika tidak maka sistem kembali ke antar muka data rekening. Langkah 3 : Sistem menampilkan hasil proses penghapusan data rekening.
Aktifitas Alternatif:
Langkah Alternatif 1 : Manajer menekan tombol “KELUAR”. Langkah Alternatif 1 : Manajer menekan tombol
87
“BERSIHKAN”. Langkah Alternatif 1 : Manajer menekan tombol “SIMPAN”. Langkah Alternatif 2 : Sistem kembali ke tampilan utama. Langkah Alternatif 2 : Sistem akan menanyakan untuk membersihkan halaman. Jika jawaban “YES” maka sistem akan membersihkan semua masukan yang ditulis di atas halaman Data Rekening. Jika “NO”, maka sistem akan kembali ke halaman Data Rekening. Langkah Alternatif 2 : Jika data pada fields Data Rekening kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields Data Rekening tidak kosong maka sistem menyimpan data dari halaman Data Rekening sebagai data perubahan.. Langkah Alternatif 3 : Jika ada kesalahan masukan atau proses penyimpanan gagal maka sistem memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat menghapus data rekening sesuai dengan masukan dari aktor.
Kondisi Akhir: Sistem menghapus data rekening sesuai dengan masukan dari aktor.
Sistem tidak menghapus data rekening sesuai dengan masukan dari aktor.
Prosedur Bisnis: Manajer harus berhasil login kedalam sistem utama dan memilih menu data rekening.
Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Manajer
18. Narasi Pencarian Data Rekening
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Pencarian Data Rekening Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-024 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
88
Deskripsi: Use case ini menggambarkan proses pencarian data rekening tabungan.
Kondisi Awal: Manajer telah login. Manajer telah memilih menu data rekening
Pemicu: Use case ini digunakan apabila Manajer ingin mencari data rekening tabungan.
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1: Manajer memilih tab “Data Rekening Nasabah Tercatat. Langkah 3 : Manajer memasukkan kriteria pencarian pada panel “Kriteria Filter Informasi”. Kemudian Direksi menekan tombol “PROSES”. Langkah 5 : Manajer memilih salah satu baris sebagai hasil pencarian. Kemudian Direksi menekan tombol “PILIH”.
Langkah 2 : Sistem menampilkan antarmuka tab Data Rekening Nasabah Tercatat. Langkah 4 Sistem melakukan pencarian di basis data sesuai dengan kriteria yang dimasukkan Manajer Hasil pencarian dimunculkan di panel “Data Rekening Nasabah”. Langkah 6: Sistem menampilkan Form Data Nasabah dengan data dari hasil pilihan di halaman pencarian Form Data Nasabah.
Aktifitas Alternatif:
Langkah Alternatif 1 : Direksi menekan tombol “KEMBALI”. Langkah Alternatif 1 : Direksi menekan tombol “SIMPAN”. Langkah Alternatif 1 : Direksi menekan tombol “BERSIHKAN”. Langkah Alternatif 1 : Direksi menekan tombol “HAPUS”.
89
Langkah Alternatif 2 : Sistem kembali ke tab Form Data Nasabah. Langkah Alternatif 2 : Jika data pada fields di Form Data Nasabah kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields Form Data Nasabah tidak kosong maka sistem menyimpan data dari halaman Form Data Nasabah sebagai data perubahan. Langkah Alternatif 2 : Sistem akan menanyakan untuk membersihkan form. Jika jawaban “YES” maka sistem akan membersihkan semua masukan yang ditulis di atas Form Data Nasabah. Jika “NO”, maka sistem akan kembali ke Form Data Nasabah tanpa melakukan perubahan. Langkah Alternatif 2 : Jika data pada fields di Form Data Nasabah kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields Form Data Nasabah tidak kosong maka sistem akan menanyakan untuk menghapus data apa tidak. (Lihat narasi use case Penghapusan Data Rekening). Langkah Alternatif 3 : Manajer langsung memilih data yang sudah ada pada panel hasil pencarian Kode Referensi Transaksi Tabungan, dan menekan tombol “PILIH”. Langkah Alternatif 3 : Manajer menekan tombol “REFRESH”. Langkah Alternatif 4 : Sistem menampilkan Form Data Nasabah dengan data dari hasil pilihan di pencarian Data Rekening Nasabah Tercatat. Langkah Alternatif 4 : Sistem menampilkan kondisi awal tabel hasil pencarian Data Rekening Nasabah Tercatat. Langkah Alternatif 6 : Jika data pencarian tidak ditemukan, maka akan memunculkan pesan bahwa data tidak ditemukan.
Kesimpulan: Sistem dapat mencari data rekening sesuai dengan masukan dari aktor.
Kondisi Akhir: Sistem menampilkan hasil pencarian data rekening. Sistem tidak menampilkan hasil pencarian data
rekening. Prosedur Bisnis: Manajer harus memasukkan kata kunci yang sesuai dengan
sistem. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat. Dapat diakses hanya oleh pengguna yang memiliki
username dan password Manajer.
90
19. Narasi Perhitungan Bunga dan Pajak Tabungan
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Perhitungan Bunga dan Pajak Tabungan
Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-025 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
Waktu
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses perhitungan bunga dan pajak tabungan setiap periode 1 bulan.
Kondisi Awal: Manajer telah login. Pemicu: Use case ini digunakan apabila Manajer ingin menghitung
bunga dan pajak tabungan jika transaksi sudah mencapai periode 1 bulan.
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1: Manajer memilih menu perhitungan bunga dan pajak Langkah 3: Manajer memasukkan tanggal awal perhitungan dan tanggal akhir perhitungan bunga, pajak, dan administrasi tabungan. Manajer juga memilih check box koreksi perhitungan. Langkah 4: Manajer menekan tombol “HITUNG”
Langkah 2: Sistem menampilkan antarmuka perhitungan bunga dan pajak tabungan Langkah 5: Sistem melakukan perhitungan bunga dan pajak tabungan untuk semua rekening tabungan sesuai dengan tanggal periode yang sudah
91
ditentukan direksi. Langkah 6: Sistem memunculkan pesan perhitungan bunga dan pajak tabungan berhasil dilakukan.
Aktifitas Alternatif:
Langkah Alternatif 1: Manajer tidak memilih menu bunga dan pajak tabungan. Langkah Alternatif 2 : Sistem memunculkan tampilan sesuai dengan menu yang dipilih pada Langkah Alternatif 3. Langkah Alternatif 4: Manajer menekan tombol “KELUAR”. Langkah Alternatif 5 : Sistem kembali ke menu utama Manajer Tabungan. Langkah Alternatif 6: Sistem tidak melakukan perhitungan bunga dan memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat melakukan perhitungan bunga dan pajak tabungan untuk setiap periode 1 bulan.
Kondisi Akhir: Sistem menghitung bunga dan pajak tabungan untuk semua rekening sesuai dengan masukan tanggal periode dari Manajer.
Sistem tidak menghitung bunga dan pajak tabungan untuk semua rekening sesuai dengan masukan tanggal periode dari Manajer
Prosedur Bisnis: Manajer harus berhasil login kedalam sistem utama dan memilih menu perhitung bunga dan pajak
Batasan Implementasi dan Spesifikasi
4.1.2.1. Harus dapat diakses setiap saat 4.1.2.2. Dapat diakses hanya oleh pengguna yang
memiliki username dan password Manajer.
20. Narasi Pemindahbukuan Perhitungan Bunga,Pajak dan
Administrasi Tabungan
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Pemindahbukuan Perhitungan Bunga,Pajak dan Administrasi Tabungan
Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-026 Prioritas: Tinggi Sumber: - Pelaku Bisnis Manajer
92
Utama: Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
Subsistem Akuntasi
Deskripsi: Use case ini menggambarkan proses pemindahbukuan tabungan.
Kondisi Awal: Manajer telah login. Pemicu: Use case ini digunakan apabila Manajer ingin
memindahbukukan hasil perhitungan bunga dan pajak ke dalam rekening tabungan.
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1: Manajer memilih menu pemindahbukuan Langkah 3: Manajer memasukkan tanggal pemindahbukuan tabungan. Langkah 4: Manajer menekan tombol “PINDAH BUKU”
Langkah 2: Sistem menampilkan antarmuka pemindahbukuan Langkah 5: Sistem melakukan proses pemindahbukuan hasil perhitungan bunga ke rekening tabungan. Langkah 6 : Sistem memberitahukan proses pemindahbukuan selesai.
Aktifitas Alternatif:
Langkah Alternatif 1: Manajer memilih menu yang lain dan tidak masuk ke menu pemindahbukuan. Langkah Alternatif 2 : Sistem menampilkan tampilan sesuai dengan menu yang dipilih Langkah Alternatif 1. Langkah Alternatif 3 : Manajer menekan tombol “KELUAR”. Langkah Alternatif 4 : Sistem kembali ke tampilan utama. Langkah Alternatif 6 : Jika proses pemindahbukuan gagal maka akan memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat melakukan pemindahbukuan tabungan untuk
93
setiap periode 1 bulan. Kondisi Akhir: Sistem memindahbukukan hasil perhitungan bunga
ke rekening tabungan Sistem tidak memindahbukukan hasil perhitungan
bunga ke rekening tabungan. Prosedur Bisnis: Manajer harus memasukkan masukan yang sesuai dengan
sistem. Batasan Implementasi dan Spesifikasi
4.1.2.3. Harus dapat diakses setiap saat 4.1.2.4. Dapat diakses hanya oleh pengguna yang
memiliki username dan password Manajer.
21. Narasi Hapus Transaksi
Penulis : Fransiskus Paranso Tanggal: 21 November 2008 Versi : 1.0
Nama Use-case: Penghapusan Transaksi Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-027 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
Subsistem teller
Deskripsi: Use case ini menggambarkan proses penghapusan transaksi tabungan secara manual.
Kondisi Awal: Manajer telah login. Pemicu: Use case ini digunakan apabila Manajer menghapus
transaksi tabungan yang tidak benar dari teller secara manual.
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1: Manajer memilih menu hapus transaksi Langkah 3: Manajer memilih daftar transaksi yang tidak valid. Langkah 4 : Manajer menekan tombol “HAPUS”.
Langkah 2: Sistem menampilkan antarmuka hapus transaksi Langkah 5 : Sistem
94
menghapus transaksi yang tidak valid dari basis data. Langkah 6 : Sistem memunculkan pesan proses transaksi yang tidak valid sudah dihapus.
Aktifitas Alternatif:
Langkah Alternatif 1: Manajer memilih menu yang lain dan tidak masuk ke menu validasi transaksi. Langkah Alternatif 2 : Sistem menampilkan menu yang dipilih sesuai dengan Langkah Alternatif 1. Langkah Alternatif 4 : Manajer menekan tombol “KELUAR”. Langkah Alternatif 5 : Sistem kembali ke tampilan awal. Langkah Alternatif 6 : Jika proses penghapusan gagal maka akan memunculkan pesan kesalahan.
Kesimpulan: Sistem dapat menghapus transaksi yang tidak valid. Kondisi Akhir: Daftar transaksi yang tidak valid dihapus dari
sistem Daftar transaksi yang tidak valid tidak terhapus dari
sistem.
Prosedur Bisnis: Manajer harus memasukkan masukan yang sesuai dengan sistem.
Sudah melakukan proses transaksi tabungan yang memiliki tanggal yang sama dengan tanggal aplikasi ketika login.
Batasan Implementasi dan Spesifikasi
4.1.2.5. Harus dapat diakses setiap saat. 4.1.2.6. Dapat diakses hanya oleh pengguna yang
memiliki username dan password Manajer.
22. Narasi Pencarian Bunga dan Pajak Tabungan Penulis : Fransiskus Paranso Tanggal: 21 November 2008
Versi : 1.0 Nama Use-case: Pencarian Bunga dan Pajak
Tabungan Jenis Use-Case
Kebutuhan Bisnis: ID Use-case: SILKMST-028 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang -
95
Berkepentingan Deskripsi: Use case ini menggambarkan proses pencarian bunga dan
pajak tabungan setelah proses perhitungan bunga dilakukan. Kondisi Awal: Manajer telah login.
Manajer telah memilih check box koreksi perhitungan. Pemicu: Use case ini digunakan apabila Manajer ingin mencari bunga
dan pajak rekening tertentu pada periode tertentu. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Manajer memilih menu Daftar Bunga Tabungan dan Pajak. Langkah 3: Manajer memasukkan kriteria pencarian pada panel “Kriteria Filter Informasi”. Kemudian Manajer menekan tombol “PROSES”.
Langkah 2 : Sistem menampilkan halaman Daftar Bunga Tabungan dan Pajak. Langkah 4: Sistem melakukan pencarian di basis data sesuai dengan kriteria yang dimasukkan Manajer. Langkah 5 : Hasil pencarian dimunculkan di tabel hasil pencarian
Aktifitas Alternatif:
Langkah Alternatif 3 : Manajer menekan tombol “KELUAR”. Langkah Alternatif 3 : Manajer menekan tombol “SIMPAN”. Langkah Alternatif 3: Manajer menekan tombol “REFRESH”. Langkah Alternatif 4: Sistem kembali ke tampilan utama menu Manajer Tabungan Langkah Alternatif 4 : Jika data pada fields di data rekening nasabah kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields data rekening nasabah maka sistem menyimpan data dari halaman Kode Referensi Transaksi Tabungan sebagai data perubahan. Langkah Alternatif 4: Sistem menampilkan kondisi awal tabel hasil pencarian data rekening nasabah tabungan. Langkah Alternatif 5 : Jika data pencarian tidak ditemukan,
96
maka akan memunculkan pesan bahwa data tidak ditemukan. Kesimpulan: Sistem dapat mencari data-data rekening nasabah yang sesuai
dengan masukan dari aktor. Kondisi Akhir: Sistem menemukan data rekening nasabah yang
dicari Manajer Sistem tidak menemukan data rekening nasabah yang
dicari Manajer Prosedur Bisnis: Manajer harus memasukkan kata kunci yang sesuai untuk
melakukan pencarian. Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Manajer
23. Narasi Pengubahan Bunga dan Pajak Tabungan Penulis : Fransiskus Paranso Tanggal: 21 November 2008
Versi : 1.0 Nama Use-case: Pengubahan Bunga dan Pajak
Tabungan Jenis Use-Case
Kebutuhan Bisnis: ID Use-case: SILKMST-029 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Direksi
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pengubahan bunga dan pajak tabungan setelah proses perhitungan bunga dilakukan.
Kondisi Awal: Manajer telah login. Manajer telah memilih check box koreksi perhitungan. Manajer telah memilih menu Daftar Bunga Tabungan
dan Pajak. Manajer telah melakukan proses pencarian data
rekening nasabah pada periode tertentu Pemicu: Use case ini digunakan apabila Manajer ingin mengubah
bunga dan pajak rekening tertentu pada periode tertentu. Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Manajer memilih salah satu baris sebagai hasil pencarian, kemudian mengubah data hasil perhitungan bunga dan
97
pajak tabungan. Langkah 2 : Manajer menekan tombol “SIMPAN”.
Langkah 3 : Sistem menyimpan hasil perubahan perhitungan bunga dan pajak tabungan ke dalam basis data. Langkah 4 : Sistem memberitahukan bahwa proses pengubahan hasil perhitungan bunga dan pajak tabungan berhasil.
Aktifitas Alternatif:
Langkah Alternatif 2 : Manajer menekan tombol “KELUAR”. Langkah Alternatif 2: Manajer menekan tombol “SIMPAN”. Langkah Alternatif 2: Manajer menekan tombol “REFRESH”. Langkah Alternatif 3: Sistem kembali ke tampilan utama menu Manajer Tabungan Langkah Alternatif 3 : Jika data pada fields di data rekening nasabah kosong maka sistem akan memunculkan pesan kesalahan. Jika data pada fields data rekening nasabah maka sistem menyimpan data dari halaman Kode Referensi Transaksi Tabungan sebagai data perubahan. Langkah Alternatif 3: Sistem menampilkan kondisi awal tabel hasil pencarian data rekening nasabah tabungan. Langkah Alternatif 4 : Jika data pencarian tidak ditemukan, maka akan memunculkan pesan bahwa data tidak ditemukan.
Kesimpulan: Sistem dapat mencari data-data rekening nasabah yang sesuai dengan masukan dari aktor.
Kondisi Akhir: Sistem menemukan data rekening nasabah yang dicari Manajer
Sistem tidak menemukan data rekening nasabah yang dicari Manajer
Prosedur Bisnis: Manajer harus memasukkan kata kunci yang sesuai untuk melakukan pencarian.
Batasan Implementasi dan Spesifikasi
Harus dapat diakses setiap saat Dapat diakses hanya oleh pengguna yang memiliki
username dan password Manajer
24. Narasi Pencetakan Laporan Nominatif Tabungan Penulis : Fransiskus Paranso Tanggal: 21 November 2008
Versi : 1.0 Nama Use-case: Pencetakan Laporan Jenis Use-Case
98
Nominatif Tabungan Kebutuhan Bisnis: ID Use-case: SILKMST-030 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pencetakan laporan nominatif tabungan.
Kondisi Awal: Manajer telah login Pemicu: Use case ini digunakan apabila Manajer mau mencetak
laporan saldo akhir nasabah, saldo rata-rata nasabah, saldo bunga dan pajak masing-masing nasabah.
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Manajer memilih menu laporan nominatif tabungan. Langkah 3 : Manajer memasukkan tanggal nominatif yang ingin dicetak. Langkah 4 : Manajer menekan tombol “CETAK”.
Langkah 2: Sistem menampilkan antarmukan menu pencetakan laporan nominatif tabungan. Langkah 5 : Sistem mencetak laporan nominatif tabungan.
Aktifitas Alternatif:
Langkah Alternatif 1 : Manajer memilih submenu yang lain dan tidak masuk ke menu pencetak laporan nominatif tabungan. Langkah Alternatif 2 : Sistem menampilkan antarmuka yang sesuai dengan menu yang dipilih pada Langkah Alternatif 1. Langkah Alternatif 4 : Manajer menekan tombol “BATAL”. Langkah Alternatif 5 : Sistem kembali ke tampilan awal.
Kesimpulan: Sistem dapat mencetak laporan nominatif tabungan berdasarkan periode tertentu.
Kondisi Akhir: Sistem mencetak laporan nominatif tabungan.
99
Sistem tidak mencetak laporan nominatif tabungan. Prosedur Bisnis: Manajer harus memasukkan tanggal nominatif yang ingin
dicetak secara tepat. Batasan Implementasi dan Spesifikasi
4.1.2.7. Harus dapat diakses setiap saat. 4.1.2.8. Dapat diakses hanya oleh pengguna yang
memiliki username dan password Manajer.
25. Narasi Pencetakan Laporan Transaksi Tabungan Penulis : Fransiskus Paranso Tanggal: 21 November 2008
Versi : 1.0 Nama Use-case: Pencetakan Laporan
Transaksi Tabungan Jenis Use-Case
Kebutuhan Bisnis: ID Use-case: SILKMST-031 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pencetakan laporan transaksi tabungan.
Kondisi Awal: Manajer telah login Pemicu: Use case ini digunakan apabila Manajer mau mencetak
laporan transaksi setoran dan penarikan dalam selang waktu tertentu.
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Manajer memilih menu laporan transaksi tabungan. Langkah 3 : Manajer memasukkan tanggal selang waktu transaksi tabungan yang ingin dicetak. Langkah 4 : Manajer menekan tombol “CETAK”.
Langkah 2: Sistem menampilkan antarmukan menu pencetakan laporan transaksi tabungan. Langkah 5 : Sistem
100
mencetak laporan transaksi tabungan.
Aktifitas Alternatif:
Langkah Alternatif 1 : Manajer memilih submenu yang lain dan tidak masuk ke menu pencetak laporan transaksi tabungan. Langkah Alternatif 2 : Sistem menampilkan antarmuka yang sesuai dengan menu yang dipilih pada Langkah Alternatif 1. Langkah Alternatif 4 : Manajer menekan tombol “BATAL”. Langkah Alternatif 5 : Sistem kembali ke tampilan awal.
Kesimpulan: Sistem dapat mencetak laporan transaksi tabungan berdasarkan periode tertentu.
Kondisi Akhir: Sistem mencetak laporan transaksi tabungan. Sistem tidak mencetak laporan transaksi tabungan.
Prosedur Bisnis: Manajer harus memasukkan selang waktu laporan transaksi yang ingin dicetak secara tepat.
Batasan Implementasi dan Spesifikasi
4.1.2.9. Harus dapat diakses setiap saat. 4.1.2.10. Dapat diakses hanya oleh pengguna yang
memiliki username dan password Manajer.
26. Narasi Pencetakan Laporan Daftar Mutasi Tabungan Penulis : Fransiskus Paranso Tanggal: 21 November 2008
Versi : 1.0 Nama Use-case: Pencetakan Laporan Daftar
Mutasi Tabungan Jenis Use-Case
Kebutuhan Bisnis: ID Use-case: SILKMST-032 Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pencetakan laporan daftar mutasi tabungan.
Kondisi Awal: Manajer telah login Pemicu: Use case ini digunakan apabila Manajer mau mencetak
laporan yang menampilkan jumlah mutasi saldo simpanan dalam periode waktu tertentu
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Manajer
101
memilih menu laporan daftar mutasi tabungan. Langkah 3 : Manajer memasukkan tanggal selang waktu mutasi tabungan yang ingin dicetak. Langkah 4 : Manajer menekan tombol “CETAK”.
Langkah 2: Sistem menampilkan antarmukan menu pencetakan laporan daftar mutasi tabungan. Langkah 5 : Sistem mencetak laporan daftar mutasi tabungan.
Aktifitas Alternatif:
Langkah Alternatif 1 : Manajer memilih submenu yang lain dan tidak masuk ke menu pencetak laporan daftar mutasi tabungan. Langkah Alternatif 2 : Sistem menampilkan antarmuka yang sesuai dengan menu yang dipilih pada Langkah Alternatif 1. Langkah Alternatif 4 : Manajer menekan tombol “KELUAR”. Langkah Alternatif 5 : Sistem kembali ke tampilan awal.
Kesimpulan: Sistem dapat mencetak laporan daftar mutasi tabungan berdasarkan periode tertentu.
Kondisi Akhir: Sistem mencetak laporan daftar mutasi tabungan. Sistem tidak mencetak laporan daftar mutasi
tabungan. Prosedur Bisnis: Manajer harus memasukkan selang waktu laporan daftar
mutasi yang ingin dicetak secara tepat. Batasan Implementasi dan Spesifikasi
4.1.2.11. Harus dapat diakses setiap saat. 4.1.2.12. Dapat diakses hanya oleh pengguna yang
memiliki username dan password Manajer.
27. Narasi Pencetakan Laporan Bunga, Pajak dan Administrasi Penulis : Fransiskus Paranso Tanggal: 21 November 2008
Versi : 1.0 Nama Use-case: Pencetakan Laporan
Bunga, Pajak dan Administrasi
Jenis Use-Case Kebutuhan Bisnis:
ID Use-case: SILKMST-033
102
Prioritas: Tinggi Sumber: - Pelaku Bisnis Utama:
Manajer
Pelaku Lain yang Terlibat
-
Pihak Lain yang Berkepentingan
-
Deskripsi: Use case ini menggambarkan proses pencetakan laporan bunga, pajak dan administrasi tabungan.
Kondisi Awal: Manajer telah login Pemicu: Use case ini digunakan apabila Manajer mau mencetak
laporan yang menampilkan jumlah bunga, pajak dan administrasi pada waktu tertentu
Urutan Aktifitas Normal :
Aksi Aktor Respon Sistem
Langkah 1 : Manajer memilih menu laporan bunga, pajak dan administrasi tabungan. Langkah 3 : Manajer memasukkan tanggal transaksi bunga, pajak dan administrasi tabungan yang ingin dicetak. Langkah 4 : Manajer menekan tombol “CETAK”.
Langkah 2: Sistem menampilkan antarmukan menu pencetakan laporan bunga, pajak dan administrasi tabungan. Langkah 5 : Sistem mencetak laporan bunga, pajak dan administrasi tabungan.
Aktifitas Alternatif:
Langkah Alternatif 1 : Manajer memilih submenu yang lain dan tidak masuk ke menu pencetak laporan bunga, pajak dan administrasi tabungan. Langkah Alternatif 2 : Sistem menampilkan antarmuka yang sesuai dengan menu yang dipilih pada Langkah Alternatif 1. Langkah Alternatif 4 : Manajer menekan tombol “KELUAR”. Langkah Alternatif 5 : Sistem kembali ke tampilan awal.
Kesimpulan: Sistem dapat mencetak laporan bunga, pajak dan
103
administrasi tabungan berdasarkan periode tertentu. Kondisi Akhir: Sistem mencetak laporan bunga, pajak dan
administrasi tabungan. Sistem tidak mencetak laporan bunga, pajak dan
administrasi tabungan. Prosedur Bisnis: Manajer harus memasukkan selang waktu laporan bunga,
pajak dan administrasi yang ingin dicetak secara tepat. Batasan Implementasi dan Spesifikasi
4.1.2.13. Harus dapat diakses setiap saat. 4.1.2.14. Dapat diakses hanya oleh pengguna yang
memiliki username dan password Manajer.
104
3.2. Perancangan Sistem
3.2.1. Fase Desain Logis (Logical Design Phase)
3.2.2.1. Diagram Aktifitas (Activity Diagram)
1. Login
Gambar 3.12. Diagram Aktifitas Login
105
2. Logout Subsistem TabunganAdministrator / Manajer Tabungan
Administrator / Manajer Tabungan memilih menu Keluar Sistem menanyakan konfirmasi kepada pengguna untuk keluar
Admininstrator dan Manajer melakukan konfirmasi
Sistem keluar dan berhenti
[ya]
Sistem kembali ke tampilan utama
[tidak]
Gambar 3.13. Diagram Aktifitas Logout
3. Penambahan Produk Tabungan Subsistem TabunganAdministrator Tabungan
Administrator memilih produk tabungan Sistem menampilkan antarmuka produk tabungan
Administrator memasukkan data produk tabungan baru
Sistem menyimpan data produk tabungan baru
Sistem memunculkan pesan proses penyimpanan berhasil
[simpan]
[kembali ke menu utama]
[penyimpanan data berhasil]
[penyimpanan data gagal]
Gambar 3.14. Diagram Aktifitas Penambahan Produk Tabungan
106
4. Pengubahan Produk Tabungan
Gambar 3.15. Diagram Aktifitas Pengubahan Produk Tabungan
5. Penghapusan Produk Tabungan
Gambar 3.16. Diagram Aktifitas Penghapusan Produk Tabungan
107
6. Pencarian Produk Tabungan
Gambar 3.17. Diagram Aktifitas Pencarian Produk Tabungan
7. Penambahan Kode Grup Tabungan Administrator Tabungan Subsistem Tabungan
Administrator memilih submenu Kode Grup Sistem menampilkan antarmuka Kode Grup
Administrator memasukkan data kode grup tabungan yang baru
Sistem menyimpan kode grup tabungan yang baru
Sistem memunculkan proses penyimpanan berhasil
[simpan]
[penyimpanan data gagal]
[penyimpanan data berhasil]
[kembali ke menu tabel pendukung]
Gambar 3.18. Diagram Aktifitas Penambahan Kode Grup Tabungan
108
8. Pengubahan Kode Grup Tabungan Subsistem TabunganAdministrator Tabungan
Administrator memasukkan data perubahan kode grup tabungan
Sistem mengubah kode grup tabungan
Sistem memunculkan proses penyimpanan berhasil
[simpan]
[pengubahan data gagal]
[pengubahan data berhasil]
[kembali ke menu tabel pendukung]
Gambar 3.19. Diagram Aktifitas Pengubahan Kode Grup Tabungan
9. Penghapusan Kode Grup Tabungan
Gambar 3.20. Diagram Aktifitas Penghapusan Kode Grup Tabungan
109
10. Pencarian Kode Grup
Gambar 3.21. Diagram Aktifitas Pencarian Kode Grup Tabungan
11. Penambahan Kode Referensi
Gambar 3.22. Diagram Aktifitas Penambahan Kode Referensi
110
12. Pengubahan Kode Referensi
Gambar 3.23. Diagram Aktifitas Pengubahan Kode Referensi
13. Penghapusan Kode Referensi
Gambar 3.24. Diagram Aktifitas Penghapusan Kode Referensi
111
14. Pencarian Kode Referensi Subsistem TabunganAdministrator Tabungan
Administrator memilih menu kode referensi transaksi Sistem menampilkan antarmuka kode referensi transaksi
Administrator memasukkan kata kunci pencarian untuk kode referensi transaksi tabungan
Sistem mencari kode referensi pada basis data[cari]
[data ditemukan]
Sistem memunculkan hasil pencarian kode referensi
[data tidak ditemukan][tidak]
Gambar 3.25. Diagram Aktifitas Pencarian Kode Referensi
15. Penambahan Data Rekening
Gambar 3.26. Diagram Aktifitas Penambahan Data Rekening
112
16. Pengubahan Data Rekening
Gambar 3.27. Diagram Aktifitas Pengubahan Data Rekening
113
17. Penghapusan Data Rekening
Gambar 3.28. Diagram Aktifitas Penghapusan Data Rekening
114
18. Pencarian Data Rekening
Gambar 3.29. Diagram Aktifitas Pencarian Data Rekening
19. Perhitungan Bunga dan Pajak
Gambar 3.30. Diagram Aktifitas Perhitungan Bunga dan Pajak
115
20. Pemindahbukuan Manajer Tabungan Subsistem Tabungan
Manajer memilih menu pemindahbukuan Sistem menampilkan antarmuka pemindahbukuan
Manajer melakukan pemindahbukuan
Sistem melakukan pemindahbukuan ke rekening tabungan[ya]
[pemindahbukuan berhasil]
Sistem memunculkan pesan pemindahbukuan berhasil
[pemindahbukuan gagal][tidak]
Manajer memasukkan tanggal perhitungan bunga
Gambar 3.31. Diagram Aktifitas Pemindahbukuan
116
21. Penghapusan Transaksi Manajer Tabungan Subsistem Tabungan
Manajer memilih menu hapus transaksi Sistem menampilkan antarmuka hapus transaksi
Manajer menghapus transaksi yang tidak valid
Sistem menghapus transaksi yang tidak valida dari basis data[hapus]
[penghapusan berhasil]
Sistem memunculkan pesan proses penghapusan berhasil
[penghapusan gagal]
klik keluar
[kembali ke menu utama]
Gambar 3.32. Diagram Aktifitas Penghapusan Transaksi
117
22. Pencarian Bunga, Pajak dan Administrasi Tabungan
Gambar 3.33. Diagram Aktifitas Pencarian Bunga, Pajak dan Administrasi
Tabungan
23. Pengubahan Bunga, Pajak, dan Administrasi Tabungan Administrator Tabungan Subsistem Tabungan
Administrator memasukkan data perubahan bunga,pajak, administrasi tabungan
Sistem mengubah bunga,pajak, administrasi tabungan
Sistem memunculkan proses pengubahan bunga,pajak, administrasi tabungan berhasil
[simpan]
[pengubahan data gagal]
[pengubahan data berhasil]
[tidak]
Gambar 3.34. Diagram Aktifitas Pengubahan Bunga, Pajak, dan Administrasi
Tabungan
118
24. Pencetakan Laporan Nominatif Tabungan Subsistem TabunganManajer Tabungan
Manajer memilih menu laporan nominatif tabungan Sistem menampilkan antarmuka laporan nominatif tabungan
Manajer memasukkan tanggal nominatif tabungan
Sistem mencetak laporan nominatif tabungan[cetak]
[keluar]
Gambar 3.35. Diagram Aktifitas Pencetakan Laporan Nominatif Tabungan
25. Pencetakan Laporan Transaksi Tabungan
Gambar 3.36. Diagram Aktifitas Laporan Transaksi Tabungan
119
26. Pencetakan Laporan Daftar Mutasi Tabungan Subsistem TabunganManajer Tabungan
Manajer memilih menu laporan daftar mutasi tabungan Sistem menampilkan antarmuka laporan daftar mutasi tabungan
Manajer memasukkan tanggal daftar mutasi tabungan
Sistem mencetak laporan daftar mutasi tabungan[cetak]
[tidak]
Gambar 3.37. Diagram Aktifitas Laporan Daftar Mutasi Tabungan
27. Pencetakan Laporan Bunga, Pajak, dan Administrasi
Gambar 3.38. Diagram Aktifitas Laporan Bunga, Pajak, dan Administrasi
120
3.2.2.2. Diagram Relasi Entitas (ER Diagram)
Gambar 3.39. Diagram Relasi Entitas (ER Diagram)
121
3.2.2. Fase Desain Fisik (Physical Design Phase)
3.2.2.1. Diagram Sekuensial
(Gambar diagram sekuensial terlampir pada lampiran 12 sampai lampiran 35)
Mengidentifikasi kelas dalam desain use case :
1. Use Case Login
Kelas Antarmuka, Pengendali, dan Entitas dari Use-CaseLogin
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0001-Form Login Login Handler
LoginDatabase
Pengguna
2. Use Case Logout
Kelas Antarmuka, Pengendali, dan Entitas dari Use-Case Logout
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002-Form
FrameUtamaDireksi
Login Handler
LoginDatabase
Pengguna
3. Use Case Penambahan Produk Tabungan
Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pembuatan Produk Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
ControllerProdukTabungan
Pengguna
ProdukTabungan
122
W0003- Form
FrameProdukTabungan
4. Use Case Pengubahan Produk Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pengubahan Produk Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0003- Form
FrameProdukTabungan
ControllerProdukTabungan
Pengguna
ProdukTabungan
5. Use Case Penghapusan Produk Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penghapusan Produk Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0003- Form
FrameProdukTabungan
ControllerProdukTabungan
Pengguna
ProdukTabungan
6. Use Case Pencarian Produk Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pencarian Produk Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0003- Form Produk
Tabungan
W00031- Form
ControllerProdukTabungan
Pengguna
ProdukTabungan
123
DialogCariProduk
Tabungan
7. Use Case Penambahan Grup Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penambahan Grup Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0004- Form
DialogKodeGrupTabungan
ControllerKodeGrupTabungan
Pengguna
ProdukTabungan
8. Use Case Pengubahan Grup Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pengubahan Grup Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0004- Form
DialogKodeGrupTabungan
ControllerKodeGrupTabungan
Pengguna
ProdukTabungan
9. Use Case Penghapusan Grup Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penghapusan Grup Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0004- Form
DialogKodeGrupTabungan
ControllerKodeGrupTabungan
Pengguna
ProdukTabungan
124
10. Use Case Pencarian Grup Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pencarian Grup Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireks
i
W0004- Form
DialogKodeGrup
Tabungan
W00041-Form
DialogCariKodeGr
upTabungan
ControllerKodeGrupTabungan
Pengguna
KodeGrupTabungan
11. Use Case Penambahan Kode Referensi Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penambahan Kode Referensi Transaksi Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0006- Form
DialogKodeRefTrans
aksi
ControllerKodeReferensiTransaksiTab
ungan Pengguna
EntitasKodeTrans
Tabungan
12. Use Case Pengubahan Kode Referensi Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pengubahan Kode Referensi Transaksi Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0006- Form
DialogKodeRefTrans
ControllerKodeReferensiTransaksiTab
ungan Pengguna
EntitasKodeTrans
Tabungan
125
aksi
13. Use Case Penghapusan Kode Referensi Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penghapusan Kode Referensi Transaksi Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0006- Form
DialogKodeRefTrans
aksi
ControllerKodeReferensiTransaksiTab
ungan Pengguna
EntitasKodeTrans
Tabungan
14. Use Case Pencarian Kode Referensi Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penambahan Kode Referensi Transaksi Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W0002- Form
FrameUtamaDireksi
W0006- Form
DialogKodeRefTrans
aksi
W00061- Form
DialogCariKodeRefe
rensi
ControllerKodeReferensiTransaksiTab
ungan Pengguna
EntitasKodeTrans
Tabungan
15. Use Case Penambahan Data Rekening Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penambahan Data Rekening
Kelas Antarmuka Kelas Pengendali Kelas Entitas
126
W002- Form
FrameUtamaManajer
W015- Form
DialogDataRekeningNasabah
W0151- Form
DialogCariNasabah
ControllerDataRekeningNasabah
Pengguna
EntitasTabungan
16. Use Case Pengubahan Data Rekening Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pengubahan Data Rekening
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
W015- Form
DialogDataRekeningNasabah
ControllerDataRekeningNasabah
Pengguna
EntitasTabungan
17. Use Case Penghapusan Data Rekening Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penghapusan Data Rekening
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
W015- Form
DialogDataRekeningNasabah
ControllerDataRekeningNasabah
Pengguna
EntitasTabungan
18. Use Case Pencarian Data Rekening Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penghapusan Data Rekening
Kelas Antarmuka Kelas Pengendali Kelas Entitas
127
W002- Form
FrameUtamaManajer
W015- Form
DialogDataRekeningNasabah
ControllerDataRekeningNasabah
Pengguna
EntitasTabungan
19. Use Case Perhitungan Bunga dan Pajak Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Perhitungan Bunga dan Pajak Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
W016- Form
DialogOpsiHitungBunga
PerhitunganBunga
Pengguna
TempTabung
20. Use Case Pengubahan Daftar Bunga, Pajak, dan Administrasi
Tabungan
Kelas Antarmuka, Pengendali, dan Entitas dari Use-Case Pengubahan
Daftar Bunga, Pajak, dan Administrasi Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
W030- Form
DialogBungadanPajakTabungan
TempTabung
Pengguna
TempTabung
21. Use Case Pencarian Bunga, Pajak dan Administrasi Tabungan Kelas Antarmuka, Pengendali, dan Entitas dari Use-Case Pencarian
Bunga, Pajak dan Administrasi Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
128
W002- Form
FrameUtamaManajer
W030- Form
DialogBungadanPajakTabungan
TempTabung
Pengguna
TempTabung
22. Use Case Pemindahbukuan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pemindahbukuan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
W017- Form
DialogOverbooking
Overbooking
Pengguna
EntitasTabungan
EntitasTransaksiTabungan
23. Use Case Penghapusan Transaksi Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Penghapusan Transaksi
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
W019- Form
Penghapusan
transaksi
ControllerTransaksiTabungan
Pengguna
EntitasTransaksiTabungan
24. Use Case Pencetakan Laporan Nominatif Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pencetakan Laporan Nominatif Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
ReportController
Pengguna
EntitasTabungan
129
W022- Form Pencetakan
Laporan Nominatif
Tabungan
EntitasNasabah
25. Use Case Pencetakan Laporan Transaksi Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pencetakan Laporan Transaksi Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
W023- Form Pencetakan
Laporan Transaksi
Tabungan
ReportController
Pengguna
EntitasTabungan
EntitasNasabah
26. Use Case Pencetakan Laporan Daftar Mutasi Tabungan Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pencetakan Laporan Daftar Mutasi Tabungan
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
W024- Form Pencetakan
Laporan Daftar Mutasi
Tabungan
ReportController
Pengguna
EntitasTabungan
EntitasNasabah
Nasabah
130
27. Use Case Pencetakan Laporan Bunga, Pajak dan Administrasi Tabungan
Kelas Antarmuka, Pengendali, dan Entitas
dari Use-Case Pencetakan Laporan Bunga, Pajak dan Administrasi
Kelas Antarmuka Kelas Pengendali Kelas Entitas
W002- Form
FrameUtamaManajer
W025- Form Pencetakan
Laporan Daftar Mutasi
Tabungan
ReportController
Pengguna
Tabungan
ProdukTabungan
Nasabah
131
3.2.1.3. Diagram Kelas Lengkap
(Diagram kelas lengkap dapat dilihat pada lampiran 1 sampai dengan
lampiran 11).
3.2.1.4. Desain Tabel
Tabel 3.6. Tabel groupdef
Nama Kolom Tipe Data Keterangan Grup_id Int (3) Kunci Utama
GROUPNAME Char(20)
Tabel 3.7. Tabel kode_periode_administrasi
Nama Kolom Tipe Data Keterangan kode_periode_admin Int(3) Kunci Utama
deskripsi_periode_admin Varchar (20)
Tabel 3.8. Tabel kodegroup1tabung
Nama Kolom Tipe Data Keterangan KODE_GROUP1_ID Int (3) Kunci Utama
SINGKATAN Char(3)
DESKRIPSI char (30)
Tabel 3.9. Tabel kodestatustabungan
Nama Kolom Tipe Data Keterangan kode_status_tabungan Int (3) Kunci Utama
Deskripsi_status Varchar(10)
132
Tabel 3.10. Tabel mutasi
Nama Kolom Tipe Data Keterangan mutasi_id Int (11) Kunci Utama
no_rekening Varchar(20) Kunci Lainnya 1
saldo_awal Decimal(15,2)
mutasi_debet Decimal(15,2)
mutasi_kredit Decimal(15,2)
saldo_akhir Decimal(15,2)
tgl_mutasi Date
produk_tabungan_id Varchar(3)
Tabel 3.11. Tabel pengguna
Nama Kolom Tipe Data Keterangan user_id Int (3) Kunci Utama
Username Varchar (20)
Password Varchar (50)
Last_login Datetime
grup_user_id Int(3) Kunci Lain 1
Tabel 3.12. Tabel nasabah
Nama Kolom Tipe Data Keterangan nasabah_id Varchar(20) Kunci Utama
NAMA_NASABAH Varchar (100)
alamat Varchar (100)
133
Tabel 3.13. Tabel tabungan
Nama Kolom Tipe Data Keterangan
NO_REKENING Varchar (20) Kunci Utama
NO_ALTERNATIF Varchar (20)
NASABAH_ID Varchar (20) Kunci Lain 1
JENIS_TABUNGAN Char (3) Kunci Lain 2
TGL_REGISTRASI Date
SALDO_AWAL Decimal(15,2)
SALDO_SETORAN Decimal(15,2)
SALDO_PENARIKAN Decimal(15,2)
SALDO_AKHIR Decimal(15,2)
SALDO_EFEKTIF_BLN_INI Decimal(15,2)
BUNGA_BLN_INI Decimal(15,2)
PAJAK_BLN_INI Decimal(15,2)
ADM_BLN_INI Decimal(15,2)
TGL_BUNGA Date
KODE_GROUP1 Int(3) Kunci Lain 3
STATUS_AKTIF Int(1) Kunci Lain 9
PERIODE_ADM Int (1) Kunci Lain 10
LAST_TGL_ADM Date
SALDO_HITUNG_PAJAK Decimal(15,2)
PEMILIK_TABUNGAN Varchar (30)
Tabel 3.14. Tabel produk_tabungan
Nama Kolom Tipe Data Keterangan
Produk_tabungan_id Varchar (3) Kunci Utama
DESKRIPSI_JENIS_TABUNGAN Varchar (40)
SUKU_BUNGA_DEFAULT Decimal(5,2)
ADM_PER_BLN_DEFAULT Decimal(15,2)
134
PERIODE_ADM_DEFAULT Tinyint(3)
SETORAN_MINIMUM_DEFAULT Decimal(15,2)
MINIMUM_DEFAULT Decimal(15,2)
PPH_DEFAULT Decimal(15,2)
TOLERANSI_TANGGAL Tinyint(1)
SALDO_MIN_BUNGA Decimal (15,3)
GRUP_TABUNGAN Char(1)
Tabel 3.15. Tabel statushitungbungablnini
Nama Kolom Tipe Data Keterangan id_status_bln Int(11) Kunci Utama
tgl_hitung_bunga Date
Tabel 3.16. Tabel tabtrans
Nama Kolom Tipe Data Keterangan TransTab_id int(11) Kunci Utama
Tgl_trans Date
No_rekening char (3) Kunci lain 1
Kode_trans Varchar (6) Kunci lain 2
Saldo_trans Decimal (15,3)
Kuitansi char (15)
NO_TELLER tinyInt(1)
USERID tinyInt(1)
POSTED tinyInt(1)
VALIDATED tinyInt(1)
SALDO_TRANS_DEBET Decimal(15,2)
SALDO_TRANS_KREDIT Decimal(15,2)
135
Tabel 3.17. Tabel temp_tabung
Nama Kolom Tipe Data Keterangan no_rekening Char(20)
saldo_awal Decimal(15,2)
bunga Decimal(15,2)
pajak Decimal(15,2)
administrasi Decimal(15,2)
saldo_efektif Decimal(15,2)
saldo_pajak Decimal(15,2)
saldo_nominatif Decimal(15,2)
saldo_akhir Decimal(15,2)
tgl_bunga Date
tgl_admin_terakhir Date
Tabel 3.18. Tabel kodetranstabungan
Nama Kolom Tipe Data Keterangan Kode_transaksi_id Varchar (3) Kunci Utama
Deskripsi_trans Varchar (30)
Tipe_trans Char(1)
TOB Char(1)
136
3.2.1.5. Rancangan Antarmuka
3.2.1.4.1. Login
Gambar 3.40. Rancangan Antarmuka Login
137
3.2.1.4.2. Menu Utama Direksi
Gambar 3.41. Rancangan Antarmuka menu utama direksi
138
3.2.1.4.3. Menu Utama Manajer
Gambar 3.42. Rancangan Antarmuka menu utama manajer
139
3.2.1.4.4. Produk Tabungan
Gambar 3.43. Rancangan Antarmuka Produk Tabungan
140
3.2.1.4.5. Pencarian Produk Tabungan
Gambar 3.44. Rancangan Antarmuka Pencarian Produk Tabungan
3.2.1.4.6. Menu Utama Tabel Pendukung
Gambar 3.45. Rancangan Antarmuka Menu Utama Tabel Pendukung
141
3.2.1.4.7. Pengelolaan Grup Tabungan
Gambar 3.46. Rancangan Antarmuka Grup Tabungan
3.2.1.4.8. Pencarian Grup Tabungan
Gambar 3.47. Rancangan Antarmuka Pencarian Grup Tabungan
142
3.2.1.4.9. Pengelolaan Kode Referensi Transaksi Tabungan
Gambar 3.48. Rancangan Antarmuka Kode Referensi Transaksi Tabungan
3.2.1.4.10. Pencarian Kode Referensi Transaksi Tabungan
Gambar 3.49. Rancangan Antarmuka Pencarian Kode Referensi Transaksi
143
Tabungan
3.2.1.4.11. Pengelolaan Data Rekening
Gambar 3.50. Rancangan Antarmuka Pengelolaan Data Rekening
144
3.2.1.4.12. Pencarian Data Nasabah
Gambar 3.51. Rancangan Antarmuka Pencarian Nasabah
145
3.2.1.4.13. Pencarian Rekening Nasabah
Gambar 3.52. Rancangan Antarmuka Pencarian Rekening
3.2.1.4.14. Perhitungan Bunga
Gambar 3.53. Rancangan Antarmuka Perhitungan Bunga
146
3.2.1.4.15. Pemindahbukuan
Gambar 3.54. Rancangan Antarmuka Pemindahbukuan
147
3.2.1.4.16. Daftar Bunga dan Pajak Tabungan
Gambar 3.55. Rancangan Antarmuka Daftar Bunga dan Pajak Tabungan
148
3.2.1.4.17. Penghapusan Transaksi Tabungan
Gambar 3.56. Rancangan Antarmuka Penghapusan Transaksi Tabungan
3.2.1.4.18. Periode Laporan Bunga, Pajak, dan Administrasi Tabungan
Gambar 3.57. Rancangan Antarmuka Periode Laporan Bunga, Pajak, dan
Administrasi Tabungan
149
3.2.1.4.19. Periode Laporan Mutasi Tabungan
Gambar 3.58. Rancangan Antarmuka Periode Laporan Mutasi Tabungan
3.2.1.4.20. Periode Laporan Nominatif Tabungan
Gambar 3.59. Rancangan Antarmuka Periode Laporan Nominatif Tabungan
150
3.2.1.4.21. Periode Laporan Transaksi Tabungan
Gambar 3.60. Rancangan Antarmuka Periode Laporan Transaksi Tabungan
151
BAB IV
IMPLEMENTASI DAN HASIL
Fase Konstruksi dan Percobaan
Tahap ini adalah tahap yang menguraikan proses pembuatan
sistem secara fisik dan menganalisis hasil implementasi sistem informasi
lembaga keuangan mikro pada bank perkreditan rakyat subsistem
tabungan berdasarkan rancangan sistem yang sudah ditulis di bab III.p
4.1.1. Karakteristik Sistem Sistem informasi lembaga keuangan mikro subsistem tabungan
ini memiliki dua tampilan menu utama yang disesuaikan dengan
penggunaannya, yaitu Direksi dan Manajer. Penggunaan tampilan menu
utama sistem lembaga keuangan mikro subsistem tabungan ditentukan
pada saat pengguna login dalam sistem untuk pertama kalinya.
Pada menu Direksi berisi fitur-fitur untuk mengatur subsistem
tabungan seperti:
1. pengelolaan produk tabungan
2. pengelolaan kode grup tabungan
3. pengelolaan kode pemilik tabungan
4. pengelolan kode referensi transaksi tabungan
5. pengaturan bunga dan PPh produk tabungan
152
Sedangkan pada menu Manajer berisi fitur-fitur untuk
mendukung proses transaksi sehari-hari seperti:
1. pengelolaan data rekening tabungan
2. perhitungan bunga dan pajak tabungan
3. daftar bunga dan pajak tabungan
4. pemindahbukuan tabungan
5. penghapusan transaksi
6. pencetakan laporan nominatif tabungan
7. pencetakan laporan bunga, pajak, dan administratif tabungan
8. pencetakan laporan transaksi tabungan
9. pencetakan laporan mutasi tabungan
4.1.2. Kebutuhan Sistem
4.1.2.1. Kebutuhan Perangkat Keras Server
1. Processor AMD Athlon 64 3000+
2. Memori DDR1 1,5 GB
3. Motherboard Albatron K8 SLI
4. Network card
5. Free space hard disk 500 MB
Client
1. Processor AMD Turion 64 Mobile Technology 2000 Mhz
2. Memori DDR2 1GB
153
3. Motherboard Acer Aspire 5050
4. Network Adapter Realtek RTL8139/810x Family Fast
Ethernet NIC
4.1.2.2. Kebutuhan Perangkat Lunak Perangkat lunak yang digunakan untuk membangun sistem
informasi lembaga keuangan mikro ini adalah:
1. Sistem operasi Ubuntu 9.4 (Jaunty Jackalope), Linux Mint
Release 7 (Gloria) atau Windows XP Service Pack 2
2. IDE Netbeans 6.5.1
3. Java Development Kit (JDK) versi 1.6.12
4. Server basis data MySQL Server versi 5.2
5. SQL Yog Community-Edition versi 5.22a
4.2. Implementasi Sistem
4.2.1. Pembuatan Basis Data
Bagian ini mendeskripsikan tahap-tahap pembangunan basis data
baru pada MySQL yang didalamnya berisi tabel yang dibutuhkan dalam
sistem lembaga keuangan mikro. Adapun langkah-langkah yang dilakukan
untuk membuat basis data baru ini adalah sebagai berikut :
1. Membuat basis data baru dengan nama ”silkm_tabungan”
2. Membuat tabel-tabel yang dibutuhkan sistem di dalam basis
data ”silkm_tabungan”. Untuk membuat tabel tersebut,
154
dapat menggunakan sintak SQL atau menggunakan
applikasi seperti SQLyog. Tabel-tabel yang dibuat pada
basis data ini adalah sebagai berikut:
1. Tabel Groupdef Nama Kolom Tipe Data Keterangan Grup_id Int (3) Kunci Utama
GROUPNAME Char(20)
2. Tabel kode_periode_administrasi Nama Kolom Tipe Data Keterangan kode_periode_admin Int(3) Kunci Utama
deskripsi_periode_admin Varchar (20)
3. Tabel kodegroup1tabung Nama Kolom Tipe Data Keterangan KODE_GROUP1_ID Int (3) Kunci Utama
SINGKATAN Char(3)
DESKRIPSI char (30)
4. Tabel kodestatustabungan Nama Kolom Tipe Data Keterangan kode_status_tabungan Int (3) Kunci Utama
Deskripsi_status Varchar(10)
5. Tabel mutasi Nama Kolom Tipe Data Keterangan mutasi_id Int (11) Kunci Utama
no_rekening Varchar(20) Kunci Lainnya 1
saldo_awal Decimal(15,2)
mutasi_debet Decimal(15,2)
155
mutasi_kredit Decimal(15,2)
saldo_akhir Decimal(15,2)
tgl_mutasi Date
produk_tabungan_id Varchar(3)
6. Tabel Pengguna Nama Kolom Tipe Data Keterangan user_id Int (3) Kunci Utama
Username Varchar (20)
Password Varchar (50)
Last_login Datetime
grup_user_id Int(3) Kunci Lain 1
7. Tabel Nasabah Nama Kolom Tipe Data Keterangan nasabah_id Varchar(20) Kunci Utama
NAMA_NASABAH Varchar (100)
alamat Varchar (100)
8. Tabel Tabungan Nama Kolom Tipe Data Keterangan
NO_REKENING Varchar (20) Kunci Utama
NO_ALTERNATIF Varchar (20)
NASABAH_ID Varchar (20) Kunci Lain 1
JENIS_TABUNGAN Char (3) Kunci Lain 2
TGL_REGISTRASI Date
SALDO_AWAL Decimal(15,2)
SALDO_SETORAN Decimal(15,2)
SALDO_PENARIKAN Decimal(15,2)
SALDO_AKHIR Decimal(15,2)
156
SALDO_EFEKTIF_BLN_INI Decimal(15,2)
BUNGA_BLN_INI Decimal(15,2)
PAJAK_BLN_INI Decimal(15,2)
ADM_BLN_INI Decimal(15,2)
TGL_BUNGA Date
KODE_GROUP1 Int(3) Kunci Lain 3
STATUS_AKTIF Int(1) Kunci Lain 4
LAST_TGL_ADM Date
SALDO_HITUNG_PAJAK Decimal(15,2)
PEMILIK_TABUNGAN Varchar(30)
9. Tabel Produk_Tabungan Nama Kolom Tipe Data Keterangan
Produk_tabungan_id Varchar (3) Kunci Utama
DESKRIPSI_JENIS_TABUNGAN Varchar (40)
SUKU_BUNGA_DEFAULT Decimal(5,2)
ADM_PER_BLN_DEFAULT Decimal(15,2)
PERIODE_ADM_DEFAULT Tinyint(3)
SETORAN_MINIMUM_DEFAULT Decimal(15,2)
MINIMUM_DEFAULT Decimal(15,2)
PPH_DEFAULT Decimal(15,2)
SALDO_MIN_BUNGA Decimal (15,3)
GRUP_TABUNGAN Char(1)
CREATED Date
10. Tabel statushitungbungablnini Nama Kolom Tipe Data Keterangan id_status_bln Int(11) Kunci Utama
tgl_hitung_bunga Date
157
11. Tabel tabtrans Nama Kolom Tipe Data Keterangan TransTab_id int(11) Kunci Utama
Tgl_trans Date
No_rekening char (3) Kunci lain 1
Kode_trans Varchar (6) Kunci lain 2
Saldo_trans Decimal (15,3)
Kuitansi char (15)
NO_TELLER tinyInt(1)
USERID tinyInt(1)
POSTED tinyInt(1)
VALIDATED tinyInt(1)
SALDO_TRANS_DEBET Decimal(15,2)
SALDO_TRANS_KREDIT Decimal(15,2)
12. Tabel temp_tabung Nama Kolom Tipe Data Keterangan no_rekening Char(20)
saldo_awal Decimal(15,2)
bunga Decimal(15,2)
pajak Decimal(15,2)
administrasi Decimal(15,2)
saldo_efektif Decimal(15,2)
saldo_pajak Decimal(15,2)
saldo_nominatif Decimal(15,2)
saldo_akhir Decimal(15,2)
tgl_bunga Date
tgl_admin_terakhir Date
13. Tabel kodetranstabungan Nama Kolom Tipe Data Keterangan Kode_transaksi_id Varchar (3) Kunci Utama
158
Deskripsi_trans Varchar (30)
Tipe_trans Char(1)
TOB Char(1)
4.2.2. Pembangunan Sistem
4.2.2.1. Arsitektur Pembangunan Sistem
Arsitektur yang digunakan untuk membangun sistem informasi
perbankan mikro ini adalah Model-View-Controller (MVC). Arsitektur
Model-View-Controller adalah sebuah pola yang terbukti membangun
proyek secara lebih efektif. Hal itu dilakukan dengan memilah komponen
antara Model, View dan Controller pada bagian – bagian dalam proyek.
Pola MVC menyediakan sebuah solosi terhadap permasalahan tersebut
dengan membagi aplikasi menjadi bagian – bagian tersendiri, Model,
View dan Controller, memisahkan antar bagian tersebut dan membuat tata
interaksi diantaranya. Diagram di atas menunjukkan 3 komponen yang
terdapat dalam pola MVC dan interaksi yang terjadi.
159
Gambar 4.1. Diagram alur pola Model-View-Control
A. Model
Pola MVC memiliki layer yang disebut dengan Model yang
merepresentasikan data yang digunakan oleh aplikasi sebagaimana proses
bisnis yang diasosiasikan terhadapnya. Dengan memilahnya sebagai
bagian terpisah, seperti penampungan data, persistence, serta proses
manipulasi, terpisah dari bagian lain aplikasi.
Terdapat beberapa kelebihan dalam pendekatan ini. Pertama,
membuat detail dari data dan operasinya dapat ditempatkan pada area yang
ditentukan (Model) dibanding tersebar dalam keseluruhan lingkup
160
aplikasi. Hal ini memberikan keuntungan dalam proses maintenance
aplikasi.
Kedua, dengan pemisahan total antara data dengan implementasi
interface, komponen model dapat digunakan kembali oleh aplikasi lain
yang memiliki kegunaan yang hampir sama.
B. View
Layer ini mengandung keseluruhan detail dari implementasi user
interface. Disini, komponen grafis menyediakan representasi proses
internal aplikasi dan menuntun alur interaksi user terhadap aplikasi.
Penggunaan layer View memiliki beberapa kelebihan : Pertama,
memudahkan pengabungan divisi desain dalam development team. Divisi
desain dapat berkonsentrasi pada style, look & feel, dan sebagainya, dalam
aplikasi tanpa harus memperhatikan lebih pada detail yang lain.
Dan juga, memiliki layer View yang terpisah memungkinkan
ketersediaan multiple interface dalam aplikasi. Jika inti dari aplikasi
terletak pada bagian lain (dalam Model), multiple interfaces dapat dibuat
(Swing, Web, Console), secara keseluruhan memiliki tampilan yang
berbeda namun mengeksekusi komponen Model sesuai fungsionalitas
yang diharapkan.
161
C. Controller
Terakhir, arsitektur MVC memiliki layer Controller. Layer ini
menyediakan detail alur program dan transisi layer, dan juga bertanggung
jawab akan penampungan events yang dibuat oleh user dari View dan
melakukan update terhadap komponen Model menggunakan data yang
dimasukkan oleh user.
Kelebihan dalam penggunaan layer Controller secara terpisah :
Pertama, dengan menggunakan komponen terpisah untuk menampung
detail dari transisi layer, komponen view dapat didesain tanpa harus
memperhatikan bagian lain secara berlebih. Hal ini memudahkan team
pengembang multiple interface bekerja secara terpisah dari yang lain
secara simultan. Interaksi antar komponen View terabstraksi dalam
Controller.
Kedua, dengan menggunakan layer terpisah yang melakukan
update terhadap komponen Model, detail tersebut dihapus dari layer
presentasi. Layer presentasi kembali pada fungsi utamanya untuk
menampilkan data kepada user. Detail tentang bagaimana data dari user
mengubah ketetapan aplikasi disembunyikan oleh Controller. Hal ini
memisahkan dengan jelas antara presentation logic dengan business logic.
162
4.2.2.2. Koneksi Sistem ke Basis Data
Untuk melakukan koneksi antara Java Dengan MySQL Server,
maka harus digunakan suatu driver / interface JDBC (Java Database
Connectivity) yang berisi kelas-kelas untuk mengakses database server.
Driver yang digunakan pada sistem ini adalah mysql-connector-java-5.0.5-
bin.jar. Berikut ini adalah langkah-langkah serta metode untuk koneksi
dari java ke basis data.
//cek driver public boolean cekLogin() { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (java.lang.ClassNotFoundException cnfe) { javax.swing.JOptionPane.showMessageDialog(null, "Error loading driver:" + cnfe, "Error" + "", JOptionPane.ERROR_MESSAGE); } catch (java.lang.InstantiationException e) { javax.swing.JOptionPane.showMessageDialog(null, "Error loading driver:" + e, "Error" + "", JOptionPane.ERROR_MESSAGE); } catch (java.lang.IllegalAccessException e) { javax.swing.JOptionPane.showMessageDialog(null, "Error loading driver:" + e, "Error" + "", JOptionPane.ERROR_MESSAGE); } setConStr("jdbc:mysql://" + alamathost + ":" + port + "/" + database); try { conn = java.sql.DriverManager.getConnection(conStr, this.username, this.password); conn.setAutoCommit(true); setIsOk(true); cURLDB = getConStr(); System.out.println("Connecting to " + getConStr()); //System.out.print(conn); } catch (Exception e) { System.out.println(e); javax.swing.JOptionPane.showMessageDialog(null, "Koneksi gagal: " + e, "Error", JOptionPane.ERROR_MESSAGE); setIsOk(false); }
163
// login.setLoginStatus(getIsOk()); System.out.println("getIsOk: "+getIsOk()); return getIsOk(); } /** method tutup koneksi database */ public void closeConnDB() { try { conn.close(); System.out.println("Connection to " + LoginDatabase.getConStr() + " has closed"); } catch (Exception e) { System.out.println("Oops, can't close database connection!" + e); } conn = null; } //method untuk mengetahui status koneksi data base //mengembalikan informasi tentang jenis driver yang dipakai public java.sql.Connection getConnDB() { return this.conn; } public boolean getIsOk() { return this.isOK; }
Dari kode koneksi di atas terdapat 4 metode utama yaitu
cekLogin(), closeConnDB(), getConnDB(), getIsOk().
Metode cekLogin() digunakan untuk melakukan koneksi ke
server basis data sesuai dengan nilai variabel alamathost, port, dan
database. Setelah koneksi berhasil dibangun maka proses selanjutnya
adalah melakukan verifikasi username dan password dari database yang
diakses sistem. Apabila salah satu dari proses di atas gagal, maka metode
akan membalikan nilai false dan apabila berhasil metode akan membalikan
nilai true.
164
Metode closeConnDB() digunakan untuk menutup koneksi
database apabila sistem berhenti.
Metode getConnDB() digunakan untuk mendapatkan informasi
koneksi dan driver yang digunakan untuk membangun koneksi basis data
di dalam metode cekLogin().
Metode getIsOK() digunakan untuk mendapatkan status koneksi
basis data yang dibangun.
4.2.2.3. Penanganan Verifikasi Direksi dan Manajer
Sistem informasi lembaga keuangan mikro menggunakan basis
data untuk menyimpan nama pengguna dan tingkat akses aplikasi untuk
seorang Manajer dan Direksi.
Tabel pada basis data ”bukp_skripsi” yang digunakan adalah
tabel pengguna dan tabel groupdef. Tabel pengguna berfungsi untuk
menyimpan username dan pasword pengguna sistem lembaga keuangan
mikro, sedangkan tabel groupdef berfungsi untuk menyimpan definisi dari
grup dari pengguna sistem. Berikut ini adalah tampilan login sistem.
165
Gambar 4.1. Tampilan Login
Metode yang digunakan untuk verifikasi pengguna Direksi dan
Manajer adalah sebagai berikut:
/**method for login*/ public boolean loginProcedure(String tglAplikasi, String tglKonfirmAplikasi, String username, String password) { login = new Login(); boolean kondisi = false; if (!tglAplikasi.equals(tglKonfirmAplikasi)) { JOptionPane.showMessageDialog(null, "Maaf, Tanggal Aplikasi Dengan Konfirmasi Tanggal Tidak Sesuai", "Kesalahan -- Tanggal Aplikasi", JOptionPane.ERROR_MESSAGE); kondisi = false; } else { //lakukan pemeriksaan ke database java.util.Vector data = new java.util.Vector(); data.addElement(username); data.addElement(password); if (cekLogin(data)) { login.loginAsUser(entitasPengguna.getUsername(), getGroupName());
166
if (getUserId().equals("1")) { FrameUtamaDireksi frmUtamaAdmin = new FrameUtamaDireksi(false, new LoginHandler().getLastLogin(entitasPengguna.getUsername(), entitasPengguna.getPassword())); frmUtamaAdmin.setVisible(true); System.out.println(" \nmembuka frame utama admin"); } else if (getUserId().equals("12")) { FrameUtamaManajer frmManajer = new FrameUtamaManajer("tabungan", false, new LoginHandler().getLastLogin(entitasPengguna.getUsername(), entitasPengguna.getPassword())); frmManajer.setVisible(true); System.out.println(" \nmembuka frame utama manajer"); } else { JOptionPane.showMessageDialog(null, "No Frames to Show", "Error", JOptionPane.ERROR_MESSAGE); System.exit(0); } } else if (!cekLogin(data)) { javax.swing.JOptionPane.showMessageDialog(null, "Username dan password yang dimasukkan tidak sesuai!", "Pesan...", javax.swing.JOptionPane.ERROR_MESSAGE); } kondisi = true; } return kondisi; }
Dari kode verifikasi pengguna di atas, proses pertama yang
dilakukan adalah memeriksa tanggal aplikasi dengan konfirmasi tanggal
aplikasi yang dimasukkan pengguna. Tanggal aplikasi menjadi sangat
penting untuk dikonfirmasi karena nantinya akan menjadi semua tanggal
transaksi tabungan secara default. Jika tanggal aplikasi sama maka proses
akan dilanjutkan dengan memeriksa username dan password yang
dimasukkan pengguna dengan data yang ada di dalam basis data, jika tidak
167
maka akan memunculkan pesan bahwa tanggal aplikasi tidak sama.
Proses verifikasi pengguna dilakukan pada metode
cekLogin(java.util.Vector data). Jika metode cekLogin(data)
mengembalikan nilai true maka metode
login.loginAsUser(entitasPengguna.getUsername(),
getGroupName()) akan dipanggil untuk memberitahukan pengguna,
bahwa mereka masuk ke dalam sistem sebagai Direksi atau Manajer.
Selanjutnya sistem akan memanggil tampilan utama sesuai dengan akses
dari pengguna. Jika userId pengguna sama dengan 1 maka pengguna akan
masuk ke dalam sistem sebagai Direksi tabungan. Jika pengguna memiliki
idUser sama dengan 12 maka pengguna akan masuk ke dalam sistem
sebagai Manajer tabungan. Jika metode cekLogin(data)mengembalikan
nilai false, maka akan memunculkan pesan kesalahan bahwa username
dengan password yang dimasukkan pengguna tidak seusuai dengan data
pengguna yang ada dalam basis data sistem informasi lembaga keuangan
mikro subsistem tabungan.
168
Gambar 4.2. Tampilan Utama Direksi
169
Gambar 4.3. Tampilan Utama Manajer
4.2.2.4. Pengelolaan Produk Tabungan
Dalam pengelolaan produk tabungan memiliki dua buah tampilan
yaitu tampilan utama produk tabungan dan tampilan pencarian produk
tabungan. Pada tampilan utama produk tabungan digunakan untuk proses
penambahan, pengubahan dan penghapusan produk tabungan. Tampilan
pencarian produk tabungan digunakan untuk mencari produk tabungan
tertentu. Pencarian produk tabungan juga digunakan untuk memulai proses
pengubahan dan penghapusan produk tabungan.
170
4.2.2.1. Penambahan Produk Tabungan
Fitur penambahan produk tabungan digunakan untuk membuat
suatu produk tabungan yang nantinya akan ditawarkan kepada nasabah.
Gambar 4.4. Tampilan Utama Pengelolaan Produk Tabungan
Kode untuk menangkap kejadian yang dilakukan Direksi ketika
menekan tombol simpan dapat dilihat di bawah ini.
private void btnHapusProdTabActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String namaProdTab = jTextFieldNamaProdTab.getText();
java.util.Vector data = new Vector();
String kodeProdTab = jTextFieldKodeProdTab.getText();
171
if (controllerProdukTabungan.deleteData(kodeProdTab)) {
this.setData(controllerProdukTabungan.searchingPreviousId());
} else {
System.out.println("gagal menghapus produk tabungan");
}
}
private void btnSimpanProdTabActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Vector dataCollector = new java.util.Vector();
dataCollector.addElement(jTextFieldKodeProdTab.getText());//0 inPRODUK_TABUNGAN_ID
dataCollector.addElement(jTextFieldNamaProdTab.getText());//1 inDESKRIPSI_JENIS_TABUNGAN
dataCollector.addElement(numericTextFieldPersenBunga.getText());//2 inSUKU_BUNGA_DEFAULT
dataCollector.addElement(numericTextFieldBesarnyaAdmin.getText());//3 inADM_PER_BLN_DEFAULT
if (jComboBoxBulanBiayaAdmin.getSelectedIndex() == 0) {
dataCollector.addElement("1");// 4 inPERIODE_ADM_DEFAULT
} else {
dataCollector.addElement("2"); //4 inPERIODE_ADM_DEFAULT
172
}
dataCollector.addElement(numericTextFieldSetoranMinimum.getText());//5 inSETORAN_MINIMUM_DEFAULT
dataCollector.addElement(numericTextFieldSaldoMinumum.getText());//6 inMINIMUM_DEFAULT
dataCollector.addElement(numericTextFieldPph.getText());//7 inPPH_DEFAULT
dataCollector.addElement(jTextFieldAwalSetorProdTab.getText()); //8 inTOLERANSI_TANGGAL
dataCollector.addElement(jTextFieldAwalSetorProdTab.getText());//9 inSETORAN_PER_BLN_DEFAULT
dataCollector.addElement(numericTextFieldSaldoEfektifMinTerhitungBunga.getText());//10 inSALDO_MIN_BUNGA
if (jComboBoxGrupProdTab.getSelectedIndex() == 0) {
dataCollector.addElement("1");//11 inGRUP_TABUNGAN
} else if (jComboBoxGrupProdTab.getSelectedIndex() == 1) {
dataCollector.addElement("2");//11inGRUP_TABUNGAN
} else {
dataCollector.addElement("3");//11 inGRUP_TABUNGAN
}
if (controllerProdukTabungan.InsertUpdateCheck(dataCollector)) {
this.setData(controllerProdukTabungan.searchingPreviousId());
173
} else {
System.out.println("gagal memasukkan data dalam basis data");
}
}
Dari baris perintah di atas semua masukan dari Direksi akan
ditampung dalam sebuah vector data yang bernama dataCollector. Setelah
data masukan dari Direksi dikumpulkan maka akan dipanggil sebuah
metode pengendali dari kelas ControllerProdukTabungan yaitu
InsertUpdateCheck(java.util.Vector). Baris perintah metode
pengendali InsertUpdateCheck(java.util.Vector) dapat dilihat di
bawah ini.
public boolean InsertUpdateCheck(java.util.Vector dataInput) {
boolean statusInput = false;
if (dataInput.get(1).toString().isEmpty()) { // nama produk tabungan kosong
JOptionPane.showMessageDialog(null, "Maaf, Nama Produk Tabungan Tidak Dapat Kosong",
"Kesalahan -- Kesalahan Masukan", JOptionPane.ERROR_MESSAGE);
} else {
if (dataInput.get(0).toString().isEmpty()) {
setInsertCondition(this.insertData(dataInput));
//insert data
if (isInsertCondition()) {
174
JOptionPane.showMessageDialog(null, "Data Produk Tabungan " + dataInput.get(1).toString() + " Berhasil Disimpan",
"Berhasil Mengubah Data Produk Tabungan", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Data Produk Tabungan " + dataInput.get(1).toString() + " Gagal Disimpan",
"Gagal Mengubah Data Produk Tabungan", JOptionPane.ERROR_MESSAGE);
}
statusInput = isInsertCondition();
//update data
} else {
..................
..................
..................
}
}
System.out.println("inputStatus: " + statusInput);
return statusInput;
}
Dalam metode InsertUpdateCheck dilakukan pemeriksaan
terhadap masukkan dari Direksi. Jika ada masukan yang tidak sesuai,
maka metode InsertUpdateCheck akan memunculkan pesan kesalahan.
Jika semua masukan dari Direksi sudah benar, sistem kemudian
memperhatikan nilai dari nomor identitas produk tabungan kosong atau
175
tidak. Perintah untuk memeriksa kondisi nomor identitas produk tabungan
kosong atau tidak menggunakan perintah
dataInput.get(0).toString().isEmpty(). Jika nomor identitas
produk tabungan kosong maka dilakukan proses penambahan produk
tabungan. Jika tidak kosong maka dilakukan proses pengubahan produk
tabungan.
Baris perintah untuk membuat produk tabungan dapat dilihat di
bawah ini.
public boolean masukProdukTabungan(java.util.Vector data) throws SQLException {
//int lastIdxRec = getRowCount();
boolean kondisi = false;
String sql = "{ call sp_masuk_prodTab(" +
"?,?,?,?,?,?,?,?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
//ganti setiap simbol ? dengan nilai yang diharapkan
pstmt.setString(1, (String) data.get(1));
176
pstmt.setString(2, (String) data.get(2));
pstmt.setString(3, (String) data.get(3));
pstmt.setString(4, (String) data.get(4));
pstmt.setString(5, (String) data.get(5));
pstmt.setString(6, (String) data.get(6));
pstmt.setString(7, (String) data.get(7));
pstmt.setString(8, (String) data.get(8));
pstmt.executeUpdate();
//kirim sql ke database server dan jalankan
pstmt.close();
kondisi = true;
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException ex) {
cn.rollback();
ex.printStackTrace();
kondisi = false;
}
return kondisi;
}
177
Untuk membuat data produk tabungan pertama-tama akan
ditentukan level dari transaksi basis data yang akan dilakukan. Pada
metode ini mengunakan level transaksi serializable. Untuk menjalankan
stored procedure sp_masuk_prodTab maka menggunakan perintah
pstmt.executeUpdate(). Setelah itu, memberikan nilai true pada
boolean kondisi sebagai flag keberhasilan membuat produk tabungan.
Kemudian proses transaksi dalam basis data menggunakan mode commit
yang artinya nilai-nilai perubahan dari proses transaksi saat ini dijadikan
permanen di basis data dan melepaskan semua kunci basis data yang
digunakan oleh objek koneksi transaksi.
Metode masukProdukTabungan(java.util.Vector data)
akan mengembalikan sebuah nilai false jika produk tabungan gagal dibuat
dan disimpan dalam basis data. Metode transaksi yang dijalankan adalah
rollback.
4.2.2.2. Pengubahan Produk Tabungan
Fitur pengubahan produk tabungan digunakan apabila Direksi
tabungan ingin mengubah produk tabungan yang sudah dibuat. Untuk
mengubah sebuah produk tabungan, seorang Direksi tabungan terlebih
dahulu mencari produk tabungan yang ingin diubah.
Baris perintah pengubahan produk tabungan di antarmuka
pengelolaan produk tabungan dapat dilihat di bawah ini.
178
public boolean InsertUpdateCheck(java.util.Vector dataInput) {
boolean statusInput = false;
if (dataInput.get(1).toString().isEmpty()) { // nama produk tabungan kosong
JOptionPane.showMessageDialog(null, "Maaf, Nama Produk Tabungan Tidak Dapat Kosong",
"Kesalahan -- Kesalahan Masukan", JOptionPane.ERROR_MESSAGE);
} else {
if (dataInput.get(0).toString().isEmpty()) {
//insert data
....................
......................
......................
//update data
} else {
setUpdateCondition(this.updateData(dataInput));
if (isUpdateCondition()) {
JOptionPane.showMessageDialog(null, "Data Produk Tabungan " + dataInput.get(1).toString() + " Berhasil Diubah",
"Berhasil Mengubah Data Produk Tabungan", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Data Produk Tabungan " + dataInput.get(1).toString() + " Gagal Diubah",
"Gagal Mengubah Data Produk Tabungan", JOptionPane.ERROR_MESSAGE);
}
statusInput = isUpdateCondition();
179
}
}
System.out.println("inputStatus: " + statusInput);
return statusInput;
}
Perbedaannya pada pengubahan produk tabungan dengan
penambahan produk tabungan berada pada metode pengendali yang
memperhatikan nilai dari nomor identitas produk tabungan di field
jTextFieldKodeProdTab kosong atau tidak. Jika tidak kosong maka akan
dilakukan proses pengubahan data sesuai dengan nilai yang ada pada field
jTextFieldKodeProdTab. Jika kosong maka akan melakukan proses
penambahan produk tabungan.
Baris perintah pengubahan produk tabungan dapat dilihat di
bawah ini
public boolean ubahProdukTabungan(java.util.Vector data) throws SQLException {
boolean kondisi = false;
String sql = "{ call sp_ubah_prodTab(?,?,?,?,?,?,?,?,?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
180
pstmt.setString(1, (String) data.get(0));
pstmt.setString(2, (String) data.get(1));
pstmt.setString(3, (String) data.get(2));
pstmt.setString(4, (String) data.get(3));
pstmt.setString(5, (String) data.get(4));
pstmt.setString(6, (String) data.get(5));
pstmt.setString(7, (String) data.get(6));
pstmt.setString(8, (String) data.get(7));
pstmt.setString(9, (String) data.get(8));
pstmt. executeUpdate();
pstmt.close();
kondisi = true;
cn.commit();
} catch (SQLException ex) {
cn.rollback();
ex.printStackTrace();
kondisi = false;
}
return kondisi;
}
Proses pengubahan produk tabungan menggunakan level
transaksi basis data serializable. Untuk menjalankan stored procedure
181
sp_ubah_prodTab maka menggunakan perintah
pstmt.executeUpdate(). Setelah itu, memberikan nilai true pada
boolean kondisi sebagai flag keberhasilan mengubah produk tabungan.
Jika terjadi kegagalan dalam proses pengubahan produk tabungan maka
mode transaksi yang dijalankan adalah rollback.
4.2.2.3. Penghapusan Produk Tabungan
Fitur penghapusan produk tabungan dijalankan apabila Direksi
tabungan ingin menghapus produk tabungan yang ada dalam basis data.
Untuk menghapus produk tabungan, maka Direksi harus mencari produk
tabungan yang ingin dihapus terlebih dahulu.
Baris perintah untuk metode pengendali penghapusan produk
dapat dilihat dibawah ini.
public boolean deleteData(String keywordDelete) {
// boolean deleteCondition = false;
if (keywordDelete.isEmpty()) {
JOptionPane.showMessageDialog(null, "Maaf, Anda Tidak Memilih Data Tabungan Untuk Dihapus ",
" KESALAHAN -- Tidak Memilih Data Untuk Dihapus", JOptionPane.ERROR_MESSAGE);
} else {
if (javax.swing.JOptionPane.showConfirmDialog(null,
"Apakah Yakin Menghapus Produk Tabungan ? ",
"Konfirmasi..",
182
javax.swing.JOptionPane.YES_NO_OPTION) ==
javax.swing.JOptionPane.YES_OPTION) {
if (checkStatusProdTab(keywordDelete)) { //jika produk tabungan tidak digunakan
try {
setDeleteCondition(entitasProdukTabungan.hapusProdukTabungan(keywordDelete)); //lakukang pengahapusan
if (isDeleteCondition()) { //jika pengapusan berhasil
JOptionPane.showMessageDialog(null, "Data Produk Tabungan Berhasil Dihapus",
"Berhasil Menghapus Produk Tabungan", JOptionPane.INFORMATION_MESSAGE);
} else { //tidak berhasil menghapus
JOptionPane.showMessageDialog(null, "Data Produk Tabungan Gagal Dihapus", "Gagal Menghapus Produk Tabungan",
JOptionPane.ERROR_MESSAGE);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
} else { //jika produk tabungan digunakan.
JOptionPane.showMessageDialog(null, "Maaf, produk tabungan masih digunakan.",
" Kesalahan-- Tidak dapat menghapus data", JOptionPane.ERROR_MESSAGE);
}
}
183
}
return isDeleteCondition();
}
Baris perintah kelas pengendali penghapusan produk tabungan di
atas berfungsi untuk memeriksa masukan dari Direksi. Jika ada masukan
yang tidak sesuai maka sistem akan memunculkan pesan kesalahan. Jika
sudah benar maka sistem akan melakukan proses penghapusa dengan
memanggil metode hapusProdukTabungan(String) di kelas
EntitasProdukTabungan.
Baris perintah penghapusan produk tabungan di kelas
EntitasProdukTabungan dapat dilihat di bawah ini.
public boolean hapusProdukTabungan(String data) throws SQLException {
boolean kondisi = false;
String sql = "{ call sp_hapus_prodTab(?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
//ganti setiap simbol ? dengan nilai yang diharapkan
pstmt.setString(1, data);
//kirim sql ke database server dan jalankan
pstmt.executeQuery();
184
pstmt.close();
//ubah kondisi untuk memberitahukan keberhasilan
//memasukkan produk tabungan
kondisi = true;
cn.commit();
} catch (SQLException ex) {
cn.rollback();
ex.printStackTrace();
kondisi = false;
}
return kondisi;
}
Untuk menghapus data produk tabungan pertama-tama akan
ditentukan level dari transaksi basis data yang akan dilakukan. Pada
metode ini mengunakan level transaksi serializable.
Untuk menjalankan stored procedure sp_hapus_prodTab maka
menggunakan perintah pstmt.executeUpdate(). Setelah itu,
memberikan nilai true pada boolean kondisi sebagai flag keberhasilan
menghapus produk tabungan dan proses transaksi dalam basis data
menjalankan metode commit. Jika terjadi kegagalan dalam proses
penghapusan produk tabungan maka metode transaksi yang dijalankan
adalah rollback.
185
4.2.2.4. Pencarian Produk Tabungan
Fitur pencarian produk tabungan digunakan oleh Direksi jika
ingin mencari produk tabungan tertentu. Proses pencarian produk
tabungan juga diperlukan ketika Direksi ingin mengubah dan menghapus
produk tabungan tertentu. Untuk memunculkan tampilan pencarian produk
tabungan, Direksi dapat menekan tombol “Lihat Tabel” tampilan utama
pengelolaan produk tabungan.
Gambar 4.5. Tampilan Pencarian Produk Tabungan
Untuk memulai proses pencarian produk tabungan Direksi
pertama-tama memasukkan kriteria pencarian produk tabungan di panel
186
Kriteria Filter Informasi. Setelah itu Direksi akan menekan tombol
“Proses” untuk memulai proses pencarian.
Kode perintah dari metode pencarian produk tabungan dapat
dilihat dibawah ini.
public void getRecDbProdTab(String query) {
String data = “”;
queryUtama = "select PRODUK_TABUNGAN_ID, DESKRIPSI_JENIS_TABUNGAN, SUKU_BUNGA_DEFAULT,ADM_PER_BLN_DEFAULT, PERIODE_ADM_DEFAULT, SETORAN_MINIMUM_DEFAULT" +
" from produk_tabungan";
if (query != null) {
queryUtama += " where " + query;
}
System.out.println("query dari getRecDbProdTab: " + queryUtama);
try {
cn.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
cn.setAutoCommit(false);
java.sql.Statement statement = cn.createStatement();
java.sql.ResultSet resultSet = statement.executeQuery(queryUtama);
baris.removeAllElements();
while (resultSet.next()) {
187
Object[] r = {
resultSet.getString(1),
resultSet.getString(2), resultSet.getString(3),
resultSet.getString(4), resultSet.getString(5),
resultSet.getString(6)
};
data = resultSet.getString(1);
baris.addElement(r);
r = null;
}
if(data.isEmpty()){// data pencarian tidak ada
setSearchStatus(false);
}else{
setSearchStatus(true);
}
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException e) {
try {
cn.rollback();
} catch (SQLException ex) {
System.out.println(ex);
}
188
e.printStackTrace();
}
queryUtama = null;
}
Untuk melakukan pencarian pertama akan diatur tingkat
transaksi dalam basis data. Dalam metode ini digunakan tingkat transaksi
repeatable read. Kemudian queryUtama dijalankan dengan perintah
statement.executeQuery(queryUtama). Hasil dari perintah
executeQuery akan mengembalikan sebuah result set yang ditampung
dalam variabel resultSet. Data-data dari result set ini nantinya akan
mengisi baris dan kolom dari tabel hasil pencarian produk tabungan.
Metode setSearchStatus(boolean) digunakan untuk
memberikan nilai balik pada proses pencarian. Jika data yang dicari ada
dalam basis data maka setSearchStatus akan bernilai true dan false jika
data pencarian produk tabungan tidak ditemukan.
4.2.2.5. Pengelolaan Grup Tabungan
Dalam pengelolaan grup tabungan memiliki dua buah tampilan
yaitu tampilan utama grup tabungan dan tampilan pencarian grup
tabungan. Pada tampilan utama grup tabungan digunakan untuk proses
penambahan, pengubahan dan penghapusan grup tabungan. Tampilan
189
pencarian grup tabungan digunakan untuk mencari grup tabungan tertentu.
Pencarian grup tabungan juga digunakan untuk memulai proses
pengubahan dan penghapusan grup tabungan.
Gambar 4.6. Tampilan Pengelolaan Grup Tabungan
4.2.2.1. Penambahan Grup Tabungan
Untuk menambah grup tabungan Direksi memasukkan data grup
tabungan yang dibutuhkan. Setelah itu Direksi menekan tombol “Simpan”.
Kemudian sistem akan menjalankan perintah untuk menyimpan data grup
tabungan. Baris penyimpanan grup tabungan dapat dilihat di bawah ini.
public boolean insertUpdateCheck(java.util.Vector dataInput) {
boolean statusInput = false;
if (dataInput.get(1).toString().length() > 3) {
JOptionPane.showMessageDialog(null, "Maaf, Singkatan Tabungan Tidak Dapat Lebih Dari 3 Karakter",
"Kesalahan -- Masukan Tidak Sesuai ", JOptionPane.ERROR_MESSAGE);
} else {
190
if (dataInput.get(1).toString().isEmpty() || dataInput.get(2).toString().isEmpty()) { // singkatan dan deskripsi kosong
JOptionPane.showMessageDialog(null, "Data Grup Tabungan Gagal Disimpan",
"PEMBERITAHUAN -- Gagal Menyimpan ", JOptionPane.ERROR_MESSAGE);
} else {
if (dataInput.get(0).toString().isEmpty()) { //insert data
setInsertCondition(this.insertData(dataInput)); //masukkan data dalam basis data
if (isInsertCondition()) { //memasukkan data berhasil
JOptionPane.showMessageDialog(null, "Data Grup Tabungan Berhasil Disimpan",
"PEMBERITAHUAN -- Berhasil ", JOptionPane.INFORMATION_MESSAGE);
} else { // memasukkan data gagal
JOptionPane.showMessageDialog(null, "Data Grup Tabungan Gagal Disimpan",
"PEMBERITAHUAN -- Gagal Menyimpan", JOptionPane.ERROR_MESSAGE);
}
statusInput = isInsertCondition();
} else { //update data
.........................................
..........................................
..........................................
}
}
}
191
return statusInput;
}
Dalam metode ini dilakukan pemeriksaan masukan dari Direksi.
Jika ada masukan yang tidak sesuai, maka sistem akan memunculkan
pesan kesalahan. Jika masukan Direksi sudah benar maka proses akan
dilanjutkan dengan memeriksa apakah nomor identitas dari grup tabungan.
Jika kosong maka proses dilanjutkan dengan penambahan data baru grup
tabungan. Jika tidak kosong maka akan proses dilanjutkan dengan
pengubahan data grup tabungan.
Baris perintah penambahan grup tabungan dapat dilihat di bawah
ini.
public boolean masukKodeGrupTabungan(Vector dataInput) throws SQLException {
boolean kondisi = false;
setSingkatan((String) dataInput.get(1));
setDeskripsiGrup((String) dataInput.get(2));
setGrup((String) dataInput.get(3));
setJenisRekening((String) dataInput.get(4));
String query = "{call sp_masuk_kodeGrupTabungan(?,?,?,?)}";
192
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement callStmt = cn.prepareCall(query);
callStmt.setString(1, getSingkatan());
callStmt.setString(2, getDeskripsiGrup());
callStmt.setString(3, getJenisRekening());
callStmt.setString(4, getGrup());
callStmt.executeUpdate();
callStmt.close();
kondisi = true;
System.out.println("condition insert on masukKodeGrupTabungan: " + kondisi);
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException e) {
cn.rollback();
e.printStackTrace();
kondisi = false;
193
}
return kondisi;
}
Untuk membuat grup tabungan pertama-tama akan ditentukan
level dari transaksi basis data yang akan dilakukan. Pada metode ini
mengunakan level transaksi serializable. Untuk menjalankan stored
procedure ini maka menggunakan perintah callStmt.executeUpdate().
Setelah itu, memberikan nilai true pada boolean kondisi sebagai flag
keberhasilan pembuatan grup tabungan dan metode transaksi yang
dijalankan adalah commit. Jika proses pembuatan grup tabungan gagal
maka akan mengembalikan nilai false dan metode transaksi yang
dijalankan adalah rollback.
4.2.2.2. Pengubahan Grup Tabungan
Fitur pengubahan grup tabungan digunakan apabila Direksi
tabungan ingin mengubah grup tabungan yang sudah dibuat. Untuk
mengubah sebuah grup tabungan, seorang Direksi tabungan terlebih
dahulu mencari grup tabungan yang ingin diubah.
Perbedaannya pada pengubahan grup tabungan dengan
penambahan grup tabungan adalah pada proses pengubahan grup tabungan
akan memperhatikan nilai identitas grup tabungan di field
jTextFieldKodeGrupId kosong atau tidak. Jika tidak kosong maka akan
dilakukan proses pengubahan data grup tabungan sesuai dengan nilai yang
194
ada pada field jTextFieldKodeGrupId. Jika kosong maka akan melakukan
proses penambahan grup tabungan.
Baris perintah pengubahan grup tabungan di antarmuka
pengelolaan grup tabungan dapat dilihat di bawah ini.
if (jTextFieldSingkatan.getText().length() > 3) { // if singkatan character less than 3 characters
JOptionPane.showMessageDialog(null, "Maaf, Singkatan Grup Tabungan Tidak Dapat Lebih Dari 3 Karakter",
"Kesalahan -- Masukan Tidak Sesuai ", JOptionPane.ERROR_MESSAGE);
} else {
if (jTextFieldKodeGrupId.getText().isEmpty()) { // insert data
...........................
...........................
............................
} else { // update data
this.setUpdateCondition(controllerKodeGrupTabungan.updateData(dataCollector));
if (this.isUpdateCondition()) {
JOptionPane.showMessageDialog(null, "Data Kode Grup Tabungan Berhasil Disimpan",
"PEMBERITAHUAN -- Berhasil ", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Data Kode Grup Tabungan Gagal Disimpan",
"PEMBERITAHUAN -- Gagal Menyimpan ", JOptionPane.ERROR_MESSAGE);
}
}
195
}
Dari baris perintah di atas dapat dilihat bahwa dilakukan
pemeriksaan terlebih dahulu apakah ada nilai di komponen
jTextFieldKodeGrupId. Jika ada maka proses pengubahan grup tabungan
akan dijalankan, jika tidak ada maka proses penambahan grup tabungan
yang dijalankan.
Baris perintah pengubahan grup tabungan dapat dilihat di bawah
ini
public boolean ubahKodeGrupTabungan(java.util.Vector dataInput) throws SQLException {
boolean kondisi = false;
int ubahKodeGrupTabungan = 0;
setKodeGrupId((String) dataInput.get(0));
setSingkatan((String) dataInput.get(1));
setDeskripsiGrup((String) dataInput.get(2));
setGrup((String) dataInput.get(3));
setJenisRekening((String) dataInput.get(4));
tabungan.setNoRekening((String) dataInput.get(5));
String query = "{call sp_ubah_kode_grup_tabungan(?,?,?,?,?,?,?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement callStmt = cn.prepareCall(query);
196
callStmt.setString(1, getKodeGrupId());
callStmt.setString(2, getSingkatan());
callStmt.setString(3, getDeskripsiGrup());
callStmt.setString(4, getGrup());
callStmt.setString(5, getJenisRekening());
callStmt.setString(6, tabungan.getNoRekening());
callStmt.registerOutParameter(7, java.sql.Types.INTEGER);
callStmt.executeUpdate();
ubahKodeGrupTabungan = callStmt.getInt(7);
callStmt.close();
if (ubahKodeGrupTabungan != 0) { // proses pengubahan kodeGrupTabungan Berhasil
query = "{call sp_ubah_kode_grup_tabungan_step_2(?,?,?,?)}";
callStmt = cn.prepareCall(query);
callStmt.clearParameters();
callStmt.setString(1, getKodeGrupId());
callStmt.setString(2, tabungan.getNoRekening());
callStmt.registerOutParameter(3, java.sql.Types.INTEGER);
callStmt.setString(4, getGrup());
callStmt.executeUpdate();
System.out.println("transaction on ubahKodeGrupTabungan: " + callStmt.getInt(3));
callStmt.close();
}
cn.commit();
cn.setAutoCommit(true);
197
kondisi = true;
} catch (SQLException e) {
e.printStackTrace();
kondisi = false;
cn.rollback();
}
return kondisi;
}
Untuk mengubah data grup tabungan pertama-tama akan
ditentukan level dari transaksi basis data yang akan dilakukan. Pada
metode ini mengunakan level transaksi serializable. Untuk menjalankan
stored procedure sp_ubah_kode_grup_tabungan maka menggunakan
perintah pstmt.executeUpdate(). Jika berhasil mengubah grup tabungan
metode ubahKodeGrupTabungan(java.util.Vector) akan
mengembalikan nilai true dan metode transaksi yang dijalankan adalah
commit . Jika terjadi kegagalan dalam proses pengubahan grup tabungan
maka metode ubahKodeGrupTabungan(java.util.Vector) akan
mengembalikan nilai false dan mode transaksi yang dijalankan adalah
rollback.
198
4.2.2.3. Penghapusan Kode Grup Tabungan
Fitur penghapusan grup tabungan dijalankan apabila Direksi
tabungan ingin menghapus grup tabungan yang ada dalam basis data.
Untuk menghapus grup tabungan, maka Direksi harus mencari grup
tabungan yang ingin dihapus terlebih dahulu.
Baris perintah untuk penghapusan grup dapat dilihat dibawah ini.
public boolean hapusKodeGrupTabungann(Vector dataCollector) throws SQLException {
boolean kondisi = false;
setKodeGrupId((String) dataCollector.get(0));
String query = "{call sp_hapus_kodeGrupTabungan(?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement callStmt = cn.prepareCall(query);
callStmt.setString(1, getKodeGrupId());
);
callStmt.executeUpdate();
cn.commit();
cn.setAutoCommit(true);
kondisi = true;
} catch (Exception e) {
kondisi = false;
e.printStackTrace();
199
cn.rollback();
}
return kondisi;
}
Untuk menghapus data grup tabungan pertama-tama akan
ditentukan level dari transaksi basis data yang akan dilakukan. Pada
metode ini mengunakan level transaksi serializable.
Untuk menjalankan stored procedure sp_hapus_prodTab maka
menggunakan perintah pstmt.executeUpdate(). Jika berhasil
menghapus grup tabungan maka nilai true diberikan kepada boolean
kondisi sebagai flag keberhasilan menghapus grup tabungan dan metode
transaksi yang dijalankan adalah commit. Jika terjadi kegagalan dalam
proses penghapusan grup tabungan maka boolean kondisi sebagai nilai
balik akan bernilai falsei dan metode transaksi yang dijalankan adalah
rollback .
4.2.2.4. Pencarian Grup Tabungan
Fitur pencarian grup tabungan digunakan oleh Direksi jika ingin
mencari grup tabungan tertentu. Proses pencarian grup tabungan juga
diperlukan ketika Direksi ingin mengubah dan menghapus grup tabungan
grup. Untuk memunculkan tampilan pencarian grup tabungan, Direksi
dapat menekan tombol “Lihat Tabel” tampilan utama pengelolaan grup
tabungan.
200
Gambar 4.7. Tampilan Pencarian Grup Tabungan
Untuk memulai proses pencarian grup tabungan Direksi pertama-
tama memasukkan kriteria pencarian grup tabungan di panel Kriteria Filter
Informasi. Setelah itu Direksi akan menekan tombol “Proses” untuk
memulai proses pencarian.
Kode perintah dari metode pencarian grup tabungan dapat dilihat
dibawah ini.
public void getRecDbKodeGrupTabungan(String query) {
this.queryUtama = "select " + fieldKodeGrupId + ",SINGKATAN,DESKRIPSI,JENIS_REKENING" +
" from " + kodeGrupTabungan + " ";
201
if (query != null) {
this.queryUtama += " where " + query;
}
System.out.println("query di getRecDbKodeGrupTabungan " + this.queryUtama);
try {
cn.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
cn.setAutoCommit(true);
java.sql.Statement statement = cn.createStatement();
java.sql.ResultSet resultSet = statement.executeQuery(this.queryUtama);
baris.removeAllElements();
while (resultSet.next()) {
Object[] r = {resultSet.getString(1),
resultSet.getString(2),
resultSet.getString(3),
resultSet.getString(4)
};
baris.addElement(r);
r = null;
}
if (baris.isEmpty()) {
setSearchStatus(false);
} else {
202
setSearchStatus(true);
}
cn.commit();
cn.setAutoCommit(true);
} catch (java.sql.SQLException e) {
try {
cn.rollback();
} catch (SQLException ex) {
System.out.println(ex);
}
System.out.println("Error : " + e);
}
query = null;
}
Untuk melakukan pencarian pertama akan diatur tingkat
transaksi dalam basis data. Dalam metode ini digunakan tingkat transaksi
repeatable read. Kemudian queryUtama dijalankan dengan perintah
statement.executeQuery(queryUtama). Hasil dari perintah
executeQuery akan mengembalikan sebuah result set yang ditampung
dalam variabel resultSet. Data-data dari result set ini nantinya akan
mengisi baris dan kolom dari tabel hasil pencarian grup tabungan.
203
Metode setSearchStatus(boolean) digunakan untuk
memberikan nilai balik pada proses pencarian. Jika data yang dicari berada
dalam basis data maka setSearchStatus akan bernilai true atau false jika
data pencarian grup tabungan tidak ditemukan.
4.2.2.6. Pengelolaan Kode Referensi Transaksi Tabungan
Fitur pengelolaan kode referensi transaksi tabungan terdiri dari
dua tampilan yaitu, tampilan utama pengelolaan kode referensi transaksi
tabungan dan tampilan pencarian kode referensi transaksi tabungan.
Dalam tampilan utama pengelolaan kode referensi transaksi tabungan
digunakan untuk penambahan, pengubahan, dan penghapusan kode
referensi transaksi tabungan. Tampilan pencarian kode referensi transaksi
tabungan digunakan untuk mencari kode referensi transaksi tabungan
tertentu.
Gambar 4.8. Tampilan Pengelolaan Kode Referensi Transaksi Tabungan
204
4.2.2.6.1. Penambahan Kode Referensi Transaksi Tabungan
Fitur penambahan kode referensi transaksi tabungan digunakan
jika Direksi ingin menambahkan kode referensi transaksi tabungan yang
baru.
Untuk proses penambahan kode referensi transaksi tabungan
Direksi memasukkan data-data kode referensi yang baru dan kemudian
menekan tombol simpan.
Baris perintah untuk memasukkan kode referensi dalam basis
data dapat dilihat di bawah ini.
public boolean insertUpdateCheckKodeRefTransTab(java.util.Vector dataInput) {
boolean statusInput = false;
if (dataInput.get(1).toString().isEmpty()) {
JOptionPane.showMessageDialog(null, "Maaf, Nama Kode Referensi Transaksi Tabungan Tidak Dapat Kosong",
"Kesalahan -- Kesalahan Masukan", JOptionPane.ERROR_MESSAGE);
}
if (dataInput.get(0).toString().isEmpty()) {
setKondisiSimpan(this.insertData(dataInput));
if (isKondisiSimpan()) {
JOptionPane.showMessageDialog(null, "Data Kode Transaksi Tabungan Berhasil Ditambahkan",
205
"PEMBERITAHUAN -- BERHASIL ", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Data Kode Transaksi Tabungan Gagal Ditambahkan",
"PEMBERITAHUAN -- GAGAL ", JOptionPane.ERROR_MESSAGE);
}
statusInput = isKondisiSimpan();
} else {
//update data
...........................
........................
........................
}
return statusInput;
}
Dalam metode ini dilakukan pemeriksaan masukan dari Direksi.
Jika ada masukan yang tidak sesuai, maka sistem akan memunculkan
pesan kesalahan. Jika masukan Direksi sudah benar maka proses akan
dilanjutkan dengan memeriksa apakah nomor identitas dari kode referensi
tabungan. Jika kosong maka proses dilanjutkan dengan penambahan data
baru kode referensi tabungan. Jika tidak kosong maka akan proses
dilanjutkan dengan pengubahan data kode referensi tabungan.
206
Baris perintah penambahan grup tabungan dapat dilihat di bawah
ini.
public boolean masukKodeReferensi() throws SQLException {
String sql = "{ call sp_masuk_transtab(?,?,?,?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
//ganti setiap simbol ? dengan nilai yang diharapkan
pstmt.setString(1, this.getDeskripsiTrans());
pstmt.setString(2, this.getTypeTrans());
pstmt.setString(3, this.getGlTrans());
pstmt.setString(4, this.getTob());
pstmt.executeUpdate();
//kirim sql ke database server dan jalankan
pstmt.close();
setInsertStatus(true);
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException ex) {
cn.rollback();
ex.printStackTrace();
setInsertStatus(false);
207
}
return isInsertStatus();
}
Untuk membuat kode referensi tabungan pertama-tama akan
ditentukan level dari transaksi basis data yang akan dilakukan. Pada
metode ini mengunakan level transaksi serializable. Untuk menjalankan
stored procedure sp_masuk_transtab maka menggunakan perintah
callStmt.executeUpdate(). Setelah itu, memberikan nilai true pada
boolean kondisi sebagai flag keberhasilan pembuatan grup tabungan dan
metode transaksi yang dijalankan adalah commit. Jika proses pembuatan
grup tabungan gagal maka akan mengembalikan nilai false dan metode
transaksi yang dijalankan adalah rollback.
4.2.2.6.2. Pengubahan Kode Referensi Transaksi Tabungan
Fitur pengubahan kode referensi transaksi tabungan digunakan
apabila Direksi tabungan ingin mengubah kode referensi transaksi
tabungan yang sudah dibuat. Untuk mengubah sebuah kode referensi
transaksi tabungan, seorang Direksi tabungan terlebih dahulu mencari
kode referensi transaksi tabungan yang ingin diubah.
Perbedaannya pada pengubahan kode referensi transaksi
tabungan dengan penambahan kode referensi transaksi tabungan adalah
pada proses pengubahan kode referensi transaksi tabungan akan
208
memperhatikan nilai identitas kode referensi transaksi tabungan kosong
atau tidak ketika dimasukkan oleh Direksi. Jika tidak kosong maka akan
dilakukan proses pengubahan data kode referensi transaksi tabungan. Jika
kosong maka akan melakukan proses penambahan kode referensi transaksi
tabungan.
Baris perintah pengubahan kode referensi transaksi tabungan di
antarmuka pengelolaan kode referensi transaksi tabungan dapat dilihat di
bawah ini.
public boolean insertUpdateCheckKodeRefTransTab(java.util.Vector dataInput) {
boolean statusInput = false;
if (dataInput.get(1).toString().isEmpty()) {
JOptionPane.showMessageDialog(null, "Maaf, Nama Kode Referensi Transaksi Tabungan Tidak Dapat Kosong",
"Kesalahan -- Kesalahan Masukan", JOptionPane.ERROR_MESSAGE);
}
if (dataInput.get(0).toString().isEmpty()) {
................
........................
........................
} else {
setKondisiUbah(this.updateData(dataInput));
209
if (isKondisiUbah()) {
JOptionPane.showMessageDialog(null, "Data Kode Transaksi Tabungan Berhasil Diubah",
"PEMBERITAHUAN -- BERHASIL ", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Data Kode Transaksi Tabungan Gagal Diubah",
"PEMBERITAHUAN -- GAGAL ", JOptionPane.ERROR_MESSAGE);
}
statusInput = isKondisiUbah();
}
return statusInput;
}
Dari baris perintah di atas dapat dilihat bahwa dilakukan
pemeriksaan terlebih dahulu terhadap masukan dari Direksi. Jika
ditemukan masukan yang tidak sesuai maka sistem akan memunculkan
pesan kesalahan. Jika masukan dari Direksi sudah sesuai maka proses
dilanjutkan dengan pengubahan data kode referensi transaksi tabungan.
Baris perintah pengubahan kode referensi transaksi tabungan
dapat dilihat di bawah ini
public boolean ubahKodeReferensi() throws SQLException {
// boolean kondisi = false;
// int lastIdxRec = getRowCount();
210
String sql = "{ call sp_ubah_transtab(?,?,?,?,?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
pstmt.setString(1, this.getKodeTransaksiId());
pstmt.setString(2, this.getDeskripsiTrans());
pstmt.setString(3, this.getTypeTrans());
pstmt.setString(4, this.getGlTrans());
pstmt.setString(5, this.getTob());
pstmt.executeUpdate();
//kirim sql ke database server dan jalankan
pstmt.close();
setUpdateStatus(true);
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException ex) {
cn.rollback();
ex.printStackTrace();
setUpdateStatus(false);
}
return isUpdateStatus();
}
211
Untuk mengubah data kode referensi transaksi tabungan
pertama-tama akan ditentukan level dari transaksi basis data yang akan
dilakukan. Pada metode ini mengunakan level transaksi serializable. Untuk
menjalankan stored procedure sp_ubah_ transtab maka menggunakan
perintah pstmt.executeUpdate(). Jika berhasil mengubah kode referensi
transaksi tabungan metode ubahKodeReferensi() akan mengembalikan
nilai true dan metode transaksi yang dijalankan adalah commit . Jika
terjadi kegagalan dalam proses pengubahan grup tabungan maka metode
ubahKodeReferensi() akan mengembalikan nilai false dan mode
transaksi yang dijalankan adalah rollback.
4.2.2.6.3. Penghapusan Kode Referensi Transaksi Tabungan
Fitur penghapusan kode referensi transaksi tabungan dijalankan
apabila Direksi tabungan ingin menghapus produk tabungan yang ada
dalam basis data. Untuk menghapus kode referensi transaksi tabungan,
maka Direksi harus mencari kode referensi transaksi tabungan yang ingin
dihapus terlebih dahulu.
Baris perintah untuk penghapusan kode referensi transaksi dapat
dilihat dibawah ini.
public boolean hapusKodeReferensi(String kodeTransaksiId) throws SQLException {
//boolean kondisi = false;
212
this.setKodeTransaksiId(kodeTransaksiId);
String sql = "{ call sp_hapus_transtab(?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
//ganti setiap simbol ? dengan nilai yang diharapkan
pstmt.setString(1, this.getKodeTransaksiId());
//kirim sql ke database server dan jalankan
pstmt.executeQuery();
pstmt.close();
setDeleteStatus(true);
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException ex) {
cn.rollback();
ex.printStackTrace();
setDeleteStatus(false);
}
return isDeleteStatus();
}
213
Untuk menghapus data kode referensi transaksi tabungan
pertama-tama akan ditentukan level dari transaksi basis data yang akan
dilakukan. Pada metode ini mengunakan level transaksi serializable.
Untuk menjalankan stored procedure sp_hapus_transtab maka
menggunakan perintah pstmt.executeUpdate(). Jika berhasil
menghapus kode referensi transaksi tabungan maka nilai true diberikan
kepada deleteStatus sebagai flag keberhasilan menghapus kode referensi
transaksi tabungan dan metode transaksi yang dijalankan adalah commit.
Jika terjadi kegagalan dalam proses penghapusan produk tabungan maka
deleteStatus sebagai nilai balik akan bernilai false dan metode transaksi
yang dijalankan adalah rollback .
4.2.2.6.4. Pencarian Kode Referensi Transaksi Tabungan
Fitur pencarian grup tabungan digunakan oleh Direksi jika ingin
mencari kode referensi transaksi tabungan tertentu. Proses pencarian kode
referensi transaksi tabungan juga diperlukan ketika Direksi ingin
mengubah dan menghapus kode referensi transaksi tabungan. Untuk
memunculkan tampilan pencarian kode referensi transaksi tabungan,
Direksi dapat menekan tombol “Lihat Tabel” tampilan utama pengelolaan
kode referensi transaksi tabungan.
214
Gambar 4.9. Tampilan Pencarian Kode Referensi Transaksi Tabungan
Untuk memulai proses pencarian kode referensi transaksi
tabungan Direksi pertama-tama memasukkan kriteria pencarian kode
referensi transaksi tabungan di panel Kriteria Filter Informasi. Setelah itu
Direksi akan menekan tombol “Proses” untuk memulai proses pencarian.
Kode perintah dari metode pencarian kode referensi transaksi
tabungan dapat dilihat dibawah ini.
public void getRecDBKodeTransTab(String query) {
this.queryUtama = "select * from kodetranstabungan";
if (query != null) {
215
this.queryUtama += " where " + query;
}
System.out.println("query di getRecDbKodeTransTab " + this.queryUtama);
try {
java.sql.Statement statement = cn.createStatement();
java.sql.ResultSet resultSet = statement.executeQuery(this.queryUtama);
baris.removeAllElements();
while (resultSet.next()) {
Object[] r = {resultSet.getString(1),
resultSet.getString(2),
resultSet.getString(3),
resultSet.getString(4),
resultSet.getString(5)
};
baris.addElement(r);
r = null;
}
if (baris.isEmpty()) {
setSearchResultStatus(false);
}else{
setSearchResultStatus(true);
}
} catch (java.sql.SQLException e) {
216
System.out.println("Error : " + e);
}
query = null;
}
Untuk melakukan pencarian pertama akan diatur tingkat
transaksi dalam basis data. Dalam metode ini digunakan tingkat transaksi
repeatable read. Kemudian queryUtama dijalankan dengan perintah
statement.executeQuery(queryUtama). Hasil dari perintah
executeQuery akan mengembalikan sebuah result set yang ditampung
dalam variabel resultSet. Data-data dari result set ini nantinya akan
mengisi baris dan kolom dari tabel hasil pencarian kode referensi transaksi
tabungan.
Metode setSearchResultStatus(boolean) digunakan untuk
memberikan nilai balik pada proses pencarian. Jika data yang dicari berada
dalam basis data maka setSearchStatus akan bernilai true atau false jika
data pencarian kode referensi transaksi tabungan tidak ditemukan.
4.2.2.7. Pengelolaan Data Rekening Tabungan
Fitur pengelolan data rekening tabungan digunakan Manajer jika
ingin mengolah data-data dari sebuah rekening tabungan. Dalam
pengelolan data rekening tabungan memiliki tiga tampilan utama yaitu
217
tampilan utama pengelolan data rekening nasabah, pencarian data
rekening tabungan, dan pencarian data nasabah. Dalam tampilan utama
pengelolaan data rekening tabungan terdapat fitur penambahan,
pengubahan, penghapusan data rekening tabungan.
Gambar 4.10. Tampilan Pengelolaan Data Rekening Tabungan
4.2.2.7.1. Pencarian Data Nasabah
Pencarian data nasabah digunakan untuk mencari data pribadi
nasabah yang nantinya akan digunakan untuk membuat rekening
tabungan baru. Untuk memunculkan tampilan pencarian data nasabah,
218
Manajer dapat menekan tombol “Lihat Tabel” pada tampilan utama
pengelolaan data rekening tabungan.
Gambar 4.11. Tampilan Pencarian Data Nasabah
Untuk mencari data pribadi nasabah Manajer memasukkan
kriteria pencarian pada panel kriteria filter informasi. Setelah itu Manajer
menekan tombol proses untuk memulai pesan pencarian. Hasil pencarian
dimunculkan pada tabel data nasabah tercatat. Kemudian Manajer
memilih salah satu hasil pencarian dan menekan tombol “Pilih”, maka
hasil pemilihan data pencarian nasabah akan dimunculkan di tampilan
utama pengelolaan data rekening tabungan.
219
4.2.2.7.2. Penambahan Data Rekening Tabungan
Untuk mencari data pribadi nasabah Manajer memasukkan
kriteria pencarian pada panel kriteria filter informasi. Setelah itu Manajer
menekan tombol proses untuk memulai pesan pencarian. Hasil pencarian
dimunculkan pada tabel data nasabah tercatat. Kemudian Manajer
memilih salah satu hasil pencarian dan menekan tombol “Pilih”, maka
hasil pemilihan data pencarian nasabah akan dimunculkan di tampilan
utama pengelolaan data rekening tabungan.
public boolean insertUpdateRekeningTabungan(java.util.Vector dataInput, double saldoMin) {
boolean statusInput = false;
if (dataInput.get(9).toString().isEmpty()) {
JOptionPane.showMessageDialog(null, "Saldo akhir tidak dapat kosong",
"Kesalahan", JOptionPane.ERROR_MESSAGE);
} else if (dataInput.get(3).toString().isEmpty()) {
JOptionPane.showMessageDialog(null, "Nomor Nasabah/Anggota ID tidak dapat kosong",
"Kesalahan", JOptionPane.ERROR_MESSAGE);
} else {
double numeric = Double.parseDouble(dataInput.get(9).toString());
// double saldoMin = Double.parseDouble((String) dataSetter.get(4));
220
if (numeric < saldoMin) {
JOptionPane.showMessageDialog(null, "Saldo akhir harus lebih besar dari " + saldoMin + " ",
"Kesalahan", JOptionPane.ERROR_MESSAGE);
} else {
// dataCollector.addElement(numericTextFieldSaldoSaatIni.getText()); // 17 numericTextFieldSaldoSaatIni
if (dataInput.get(1).toString().isEmpty()) {
if (javax.swing.JOptionPane.showConfirmDialog(null,
"Simpan Data Rekening Tabungan Baru ?",
"KONFIRMASI",
javax.swing.JOptionPane.YES_NO_OPTION) ==
javax.swing.JOptionPane.YES_OPTION) {
setInsertStatus(this.insertData(dataInput));
if (isInsertStatus()) {
JOptionPane.showMessageDialog(null, "Data Rekening Tabungan Baru Berhasil Disimpan",
"Berhasil", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Data Rekening Tabungan Baru Gagal Disimpan",
"Kesalahan", JOptionPane.ERROR_MESSAGE);
}
}
statusInput = isInsertStatus();
221
} else {
// update rekening
.........................
.........................
.........................
}
}
return statusInput;
}
Masukan data rekening tabungan yang baru dari Manajer akan
disimpan dalam sebuah vector data yang kemudian akan diperiksa oleh
kelas pengendali rekening tabungan. Apabila ditemukan masukan yang
tidak sesuai maka kelas pengendali rekening tabungan maka akan
memunculkan pesan kesalahan. Jika semua masukan sudah sesuai maka
akan diperiksa nomor rekening dari vector dataInput. Jika nomor rekening
kosong maka proses dilanjutkan dengan penambahan data rekening
tabungan baru. Jika nomor rekening tidak kosong maka proses dilanjutkan
dengan proses pengubahan data rekening tabungan.
Baris perintah penambahan data rekening tabungan pada kelas
EntitasTabungan dapat dilihat di bawah ini.
222
public boolean masukDataRekeningNasabah(java.util.Vector data) {
boolean kondisi = false;
String sql = "{call sp_masuk_dataRekNasabah(?,?,?,?,?,?,?,?,?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
//ganti setiap simbol ? dengan nilai yang diharapkan
pstmt.setString(1, (String) data.get(0));
pstmt.setString(2, (String) data.get(2));
pstmt.setString(3, (String) data.get(3));
pstmt.setString(4, (String) data.get(4));
pstmt.setString(5, (String) data.get(5));
pstmt.setString(6, (String) data.get(6));
pstmt.setString(7, (String) data.get(7));
pstmt.setString(8, (String) data.get(8));
pstmt.setString(9, (String) data.get(9));
pstmt.executeUpdate();
//kirim sql ke database server dan jalankan
pstmt.close();
kondisi = true;
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException ex) {
223
try {
cn.rollback();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
ex.printStackTrace();
kondisi = false;
}
return kondisi;
}
Tingkat transaksi basis data yang digunakan adalah serializable
yang mana akan menjalankan transaksi secara serial yang jika terjadi
kegagalan pada salah satu proses transaksi maka transaksi akan dibatalkan
dari awal. Setelah mengatur tingkat transaksi dan mengubah auto-commit
transaksi menjadi false, maka sistem mengganti setiap parameter stored
procedure dengan nilai dari vector data dari Manajer. Kemudian
sp_masuk_dataRekNasabah dijalankan. Jika berhasil maka nilai balik dari
metode masukDataRekeningNasabah(java.util.Vector) akan bernilai true dan
metode transaksi yang dijalankan adalah commit. Jika proses
penambahan gagal maka akan mengembalikan nilai false dan metode
transaksi yang dijalankan adalah rollback.
224
4.2.2.7.3. Pengubahan Data Rekening Tabungan
Fitur pengubahan rekening tabungan digunakan apabila Manajer
tabungan ingin mengubah rekening tabungan yang sudah dibuat. Untuk
mengubah sebuah rekening transaksi tabungan, seorang Direksi tabungan
terlebih dahulu mencari rekening tabungan yang ingin diubah.
Baris perintah pengubahan rekening tabungan di kelas
pengendali pengelolaan rekening tabungan dapat dilihat di bawah ini.
public boolean insertUpdateRekeningTabungan(java.util.Vector dataInput, double saldoMin) {
boolean statusInput = false;
if (dataInput.get(9).toString().isEmpty()) {
JOptionPane.showMessageDialog(null, "Saldo akhir tidak dapat kosong",
"Kesalahan", JOptionPane.ERROR_MESSAGE);
} else if (dataInput.get(3).toString().isEmpty()) {
JOptionPane.showMessageDialog(null, "Nomor Nasabah/Anggota ID tidak dapat kosong",
"Kesalahan", JOptionPane.ERROR_MESSAGE);
} else {
double numeric = Double.parseDouble(dataInput.get(9).toString());
// double saldoMin = Double.parseDouble((String) dataSetter.get(4));
if (numeric < saldoMin) {
JOptionPane.showMessageDialog(null, "Saldo akhir harus lebih besar dari " + saldoMin + " ",
225
"Kesalahan", JOptionPane.ERROR_MESSAGE);
} else {
// dataCollector.addElement(numericTextFieldSaldoSaatIni.getText()); // 17 numericTextFieldSaldoSaatIni
if (dataInput.get(1).toString().isEmpty()) {
// insert data
.........................................
.........................................
.........................................
} else {
if (javax.swing.JOptionPane.showConfirmDialog(null,
"Ubah Data Rekening Tabungan Baru ?",
"KONFIRMASI",
javax.swing.JOptionPane.YES_NO_OPTION) ==
javax.swing.JOptionPane.YES_OPTION) {
setUpdateStatus(this.updateData(dataInput));
if (isUpdateStatus()) {
JOptionPane.showMessageDialog(null, "Data Rekening Tabungan Berhasil Diubah",
"BERHASIL", JOptionPane.INFORMATION_MESSAGE);
// this.clearFrame();
} else {
JOptionPane.showMessageDialog(null, "Data Rekening Tabungan Gagal Diubah",
226
"KESALAHAN", JOptionPane.ERROR_MESSAGE);
}
}
statusInput = isUpdateStatus();
}
}
}
return statusInput;
}
Dari baris perintah di atas dapat dilihat bahwa dilakukan
pemeriksaan terlebih dahulu terhadap masukan dari Manajer. Jika
ditemukan masukan yang tidak sesuai maka sistem akan memunculkan
pesan kesalahan. Jika masukan dari Adm Manajer telah sesuai maka
proses dilanjutkan dengan pengubahan data rekening tabungan.
Baris perintah pengubahan rekening tabungan dapat dilihat di
bawah ini.
public boolean ubahDataRekeningNasabah(java.util.Vector data) {
boolean kondisi = false;
String sql = "{ call sp_ubahDataRekNasabah(?,?,?,?,?,?,?,?,?,?)}";
try {
227
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
//ganti setiap simbol ? dengan nilai yang diharapkan
pstmt.setString(1, (String) data.get(0));
pstmt.setString(2, (String) data.get(1));
pstmt.setString(3, (String) data.get(2));
pstmt.setString(4, (String) data.get(3));
pstmt.setString(5, (String) data.get(4));
pstmt.setString(6, (String) data.get(5));
pstmt.setString(7, (String) data.get(6));
pstmt.setString(8, (String) data.get(7));
pstmt.setString(9, (String) data.get(8));
pstmt.setString(10, (String) data.get(9));
//kirim sql ke database server dan jalankan
pstmt.executeUpdate();
pstmt.close();
// baris.addElement(r);
kondisi = true;
cn.commit();
cn.setAutoCommit(true);
228
} catch (SQLException ex) {
try {
cn.rollback();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
ex.printStackTrace();
kondisi = false;
}
return kondisi;
}
Untuk mengubah data rekening tabungan pertama-tama akan
ditentukan tingkat dari transaksi basis data yang akan dilakukan. Pada
metode ini mengunakan tingkat transaksi serializable. Untuk menjalankan
stored procedure sp_ubahDataRekNasabah maka menggunakan perintah
pstmt.executeUpdate(). Jika berhasil mengubah rekening tabungan
metode ubahDataRekeningNasabah(java.util.Vector) akan
mengembalikan nilai true dan metode transaksi yang dijalankan adalah
commit . Jika terjadi kegagalan dalam proses pengubahan rekening
tabungan maka metode ubahDataRekeningNasabah(java.util.Vector)
akan mengembalikan nilai false dan mode transaksi yang dijalankan
adalah rollback.
229
4.2.2.7.4. Penghapusan Data Rekening Tabungan
Fitur penghapusan rekening tabungan dijalankan apabila Direksi
tabungan ingin menghapus produk tabungan yang ada dalam basis data.
Untuk menghapus rekening tabungan, maka Direksi harus mencari
rekening tabungan yang ingin dihapus terlebih dahulu.
Setelah menemukan data yang ingin dihapus, maka Manajer
menekan tombol “Hapus”. Kemudian sistem akan melakukan konfirmasi
apakah ingin menghapus data rekening terpilih. Jika Manajer memilih ya,
maka sistem akan menghapus data terpilih dengan memanggil metode
hapusKodeReferensi(String). Baris perintah untuk penghapusan
rekening dapat dilihat dibawah ini.
public boolean hapusKodeReferensi(String kodeTransaksiId) throws SQLException {
//boolean kondisi = false;
this.setKodeTransaksiId(kodeTransaksiId);
String sql = "{ call sp_hapus_transtab(?)}";
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
230
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
//ganti setiap simbol ? dengan nilai yang diharapkan
pstmt.setString(1, this.getKodeTransaksiId());
//kirim sql ke database server dan jalankan
pstmt.executeQuery();
pstmt.close();
setDeleteStatus(true);
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException ex) {
cn.rollback();
ex.printStackTrace();
setDeleteStatus(false);
}
return isDeleteStatus();
}
231
Untuk menghapus data rekening tabungan pertama-tama akan
ditentukan tingkat dari transaksi basis data yang akan dilakukan. Pada
metode ini mengunakan level transaksi serializable.
Untuk menjalankan stored procedure hapusKodeReferensi
maka menggunakan perintah pstmt.executeUpdate(). Jika berhasil
menghapus rekening tabungan maka nilai true diberikan kepada
setDeleteStatus sebagai flag keberhasilan menghapus rekening
tabungan dan metode transaksi yang dijalankan adalah commit. Jika terjadi
kegagalan dalam proses penghapusan produk tabungan maka
setDeleteStatus sebagai nilai balik akan bernilai false dan metode
transaksi yang dijalankan adalah rollback .
4.2.2.7.5. Pencarian Data Rekening Tabungan
Fitur pencarian rekening tabungan digunakan oleh Manajer jika
ingin mencari rekening tabungan tertentu. Proses pencarian rekening
tabungan juga diperlukan ketika Manajer ingin mengubah dan menghapus
rekening tabungan tertentu. Untuk memunculkan tampilan pencarian
rekening tabungan, Direksi dapat menekan memilih tab “Data Rekening
Tabungan Tercatat” pada tampilan utama pengelolaan rekening tabungan.
232
Gambar 4.12. Pencarian Data Rekening Tabungan
Untuk memulai proses pencarian rekening tabungan Manajer
pertama-tama memasukkan kriteria pencarian rekening tabungan di panel
Kriteria Filter Informasi. Setelah itu Manajer akan menekan tombol
“Proses” untuk memulai proses pencarian.
Kode perintah dari metode pencarian rekening tabungan dapat
dilihat dibawah ini.
public void getRecDbDataNasabah(String query) {
this.queryUtama = "select distinct tabungan.no_rekening, nasabah.nama_nasabah, nasabah.alamat, produk_tabungan.deskripsi_jenis_tabungan, tabungan.saldo_akhir" +
" from tabungan, nasabah, produk_tabungan" +
233
" where tabungan.nasabah_id=nasabah.nasabah_id " +
"and tabungan.jenis_tabungan=produk_tabungan.produk_tabungan_id ";
if (query != null) {
this.queryUtama += " and " + query;
}
System.out.println("query di getRecDbDataNasabah " + this.queryUtama);
try {
cn.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
cn.setAutoCommit(false);
java.sql.Statement statement = cn.createStatement();
java.sql.ResultSet resultSet = statement.executeQuery(this.queryUtama);
baris.removeAllElements();
while (resultSet.next()) {
Object[] r = {resultSet.getString(1),
resultSet.getString(2),
resultSet.getString(3),
resultSet.getString(4),
resultSet.getString(5)
234
};
baris.addElement(r);
r = null;
}
if (baris.isEmpty()) { //pencarian tidak menemukan data
setSearchStatus(false);
} else { // data ditemukan
setSearchStatus(true);
}
resultSet.close();
cn.commit();
cn.setAutoCommit(true);
} catch (java.sql.SQLException e) {
try {
cn.rollback();
} catch (SQLException ex) {
System.out.println(ex);
}
System.out.println("Error : " + e);
setSearchStatus(false);
}
235
query = null;
}
Untuk melakukan pencarian rekening tabungan pertama-tama
akan diatur tingkat transaksi dalam basis data. Dalam metode ini
digunakan tingkat transaksi repeatable read. Kemudian queryUtama
dijalankan dengan perintah statement.executeQuery(queryUtama).
Hasil dari perintah executeQuery akan mengembalikan sebuah result set
yang ditampung dalam variabel resultSet. Data-data dari result set ini
nantinya akan mengisi baris dan kolom dari tabel hasil pencarian rekening
tabungan.
Metode setSearchStatus(boolean) digunakan untuk
memberikan nilai balik pada proses pencarian. Jika data rekening tabungan
yang dicari ada dalam basis data maka setSearchStatus akan bernilai
true dan false jika data pencarian rekening tabungan tidak ditemukan.
4.2.2.8. Perhitungan Bunga dan Pajak Tabungan
Fitur perhitungan bunga dan pajak digunakan Manajer untuk
menghitung bunga, pajak dan administrasi rekening tabungan dalam
periode satu bulanan.
236
Gambar 4.13. Tampilan Perhitungan Bunga dan Pajak Tabungan
Untuk melakukan proses perhitungan bunga Manajer
memasukkan tanggal awal periode dan tanggal akhir periode perhitungan
bunga. Jika nanti hasil perhitungan bunga, pajak dan administrasi ingin
diubah, maka Manajer dapat memilih check list Koreksi perhitungan.
Setelah itu Manajer menekan tombol hitung.
Jika bulan sebelumnya belum dilakukan perhitungan maka
sistem akan memunculkan pesan bahwa bulan sebelumnya belum
dilakukan perhitungan bunga, pajak dan administrasi tabungan.
Gambar 4.14. Tampilan Kesalahan Belum Melakukan Perhitungan
Bunga Pada Bulan Sebelumnya
Jika perhitungan bulan ini sudah dilakukan, maka sistem akan
memunculkan pesan peringatan bahwa bulan ini sudah dilakukan
perhitungan.
237
Gambar 4.15. Tampilan Peringatan Sudah Melakukan Perhitungan
Bunga dan Pajak pada Bulan Ini
Jika manajer memilih tombol “Yes” maka sistem akan
melanjutkan proses perhitungan bunga bulan ini.
Jika masukan tanggal perhitungan bunga, pajak dan administrasi
sudah sesuai maka sistem akan melakukan proses perhitungan bunga,
pajak dan administrasi. Baris perintah perhitungan bunga dapat dilihat di
bawah ini.
public boolean hitungbunga(String tglAwal, String tglAkhir, String query) {
boolean hitungBungaCondition = false;
System.out.println("query in jButtonHitungBungaPajakActionPerformed: " + query);
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement callStmt = cn.prepareCall(query);
//java.sql.ResultSet resultSet;
callStmt.setString(1, tglAwal);
callStmt.setString(2, tglAkhir);
238
callStmt.executeUpdate();
hitungBungaCondition = true;
callStmt.close();
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException e) {
try {
cn.rollback();
} catch (SQLException ex) {
System.out.println(ex);
}
hitungBungaCondition = false;
e.printStackTrace();
}
// System.out.println("query sql: " + sql);
System.out.println("hitungBungaCondition: " + hitungBungaCondition);
return hitungBungaCondition;
}
Dari baris perintah di atas dapat dilihat bahwa dipanggil metode
perhitungan bunga yang bernama hitungbunga(String tglAwal, String tglAkhir,
String query). Dari metode ini akan melakukan perhitungan bunga di dalam
239
basis data denga memanggil stored procedure
sp_data_hitung_bunga_tabungan. Jika proses perhitungan bunga berhasil
maka akan mengembalikan nilai true dan metode transaksi yang
dijalankan adalah commit. Jika proses perhitungan bunga, pajak dan
administrasi gagal akan mengembalikan nilai false dan metode transaksi
yang dijalankan adalah rollback.
Query perhitungan bunga dapat dilihat dibawah ini.
DELIMITER $$
DROP PROCEDURE IF EXISTS `bukp_skripsi`.`sp_data_hitung_bunga_tabungan`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_data_hitung_bunga_tabungan`( tgl_awal_hitung date,tgl_akhir_hitung date)
BEGIN
DECLARE done INT DEFAULT 0;
declare counter int ;
declare v_no_rekening varchar(20);
declare v_saldo_awal decimal(15,2);
declare v_SALDO_EFEKTIF_BLN_INI decimal (15,2);
declare v_saldo_nominatif decimal (15,2);
declare v_SUKU_BUNGA_DEFAULT decimal (15,2);
declare v_ADM_PER_BLN_DEFAULT decimal(15,2);
declare v_PPH_DEFAULT decimal(15,2);
240
declare v_saldo_akhir decimal(15,2);
declare v_saldo_hitung_pajak decimal(15,2);
declare v_tgl_bunga date;
declare v_peride_adm_default char(1);
declare v_last_tgl_adm date;
declare bunga decimal(15,2);
declare pajak decimal(15,2);
declare administrasi decimal (15,2);
declare saldoAkhir decimal (15,2);
declare tglAdministrasiTerakhir date;
declare saldo_trans decimal(15,2);
declare cursorBunga cursor for select distinct tabungan.no_rekening,
tabungan.saldo_awal,
tabungan.SALDO_EFEKTIF_BLN_INI,
tabungan.saldo_nominatif,
produk_tabungan.SUKU_BUNGA_DEFAULT,
produk_tabungan.ADM_PER_BLN_DEFAULT,
produk_tabungan.PPH_DEFAULT,
tabungan.saldo_akhir,
tabungan.saldo_hitung_pajak,
tabungan.tgl_bunga,
produk_tabungan.periode_adm_default,
tabungan.last_tgl_adm
from tabungan, produk_tabungan
241
where tabungan.JENIS_TABUNGAN=produk_tabungan.PRODUK_TABUNGAN_ID
and tabungan.status_aktif =2
and datediff(tgl_awal_hitung, tabungan.tgl_registrasi) > sf_jumlah_hari_dalam_sebulan(tabungan.tgl_registrasi) -- rekening sudah dibuka lebih dari 1 bulan
and tabungan.saldo_akhir>=produk_tabungan.minimum_default
and tabungan.saldo_akhir >=produk_tabungan.saldo_min_bunga
and tabungan.tgl_bunga between tgl_awal_hitung and tgl_akhir_hitung order by tabungan.no_rekening asc;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
open cursorBunga;
REPEAT
fetch cursorBunga into
v_no_rekening,
v_saldo_awal,
v_SALDO_EFEKTIF_BLN_INI,
v_saldo_nominatif,
v_SUKU_BUNGA_DEFAULT,
v_ADM_PER_BLN_DEFAULT,
v_PPH_DEFAULT,
v_saldo_akhir,
v_saldo_hitung_pajak,
v_tgl_bunga,
v_peride_adm_default,
v_last_tgl_adm;
-- starting hitung bunga
242
if not done then
set bunga=v_SALDO_EFEKTIF_BLN_INI *v_SUKU_BUNGA_DEFAULT*sf_jumlah_hari_dalam_sebulan(tgl_awal_hitung)/365;
set pajak=v_SALDO_EFEKTIF_BLN_INI* v_PPH_DEFAULT;
if(v_peride_adm_default = 2) then -- tabungan memiliki perhitungan administrasi secara tahunan
if (sf_v_peride_adm_default_tahunan(tgl_awal_hitung,v_last_tgl_adm)=1) then -- bernilai 1 jika sudah 1 thn
set administrasi=v_SALDO_EFEKTIF_BLN_INI*v_ADM_PER_BLN_DEFAULT;
set tglAdministrasiTerakhir=v_tgl_bunga;
else
set administrasi=0.00;
set tglAdministrasiTerakhir=v_last_tgl_adm;
end if;
else
set administrasi=v_SALDO_EFEKTIF_BLN_INI*v_ADM_PER_BLN_DEFAULT;-- tabungan memiliki perhitungan administrasi secara bulanan
set tglAdministrasiTerakhir=v_tgl_bunga;
end if;
set saldoAkhir=v_saldo_akhir+bunga-pajak-administrasi;
-- insert data into temp_tabung
call sp_simpan_hasil_hitung_bunga_temp(v_no_rekening,v_saldo_awal,bunga,pajak,administrasi,
243
v_SALDO_EFEKTIF_BLN_INI,v_saldo_hitung_pajak,v_saldo_nominatif,saldoAkhir,v_tgl_bunga,tglAdministrasiTerakhir);
end if;
-- set counter=counter+1;
UNTIL done END REPEAT;
if(done) then
if(sf_status_hitung_bunga_tiap_bulan(tgl_awal_hitung) is null) then -- perhitungan bunga bulan ini belum dilakukan
insert into statusHitungBungaBlnIni (tgl_hitung_bunga)
value(tgl_awal_hitung);
else
update statusHitungBungaBlnIni set tgl_hitung_bunga= tgl_awal_hitung
where id_status_bln= sf_status_hitung_bunga_tiap_bulan(tgl_awal_hitung);
end if;
end if;
close cursorBunga;
END$$
DELIMITER ;
Dalam stored procedure di atas dapat dilihat bahwa dilakukan
pencarian data rekening tabungan yang masih aktif dengan ketentuan:
244
1. rekening sudah dibuka lebih dari satu bulan dari tanggal awal
perhitungan bunga,
2. rekening tabungan memiliki saldo akhir yang lebih dari atau sama
dengan saldo minimum produk tabungan yang digunakan oleh
rekening tersebut,
3. rekening tabungan memiliki saldo akhir yang lebih dari atau sama
dengan saldo minumum terhitung bunga produk tabungan yang
digunakan oleh rekening tersebut.
Setelah ketentuan di atas dipenuhi, maka hasil pencarian
rekening tersebut akan disimpan dalam sebuah cursor yang bernama
cursorBunga. Dari cursor cursorBunga akan dibaca setiap baris rekening
untuk dilakukan perhitungan bunga, pajak dan administrasi.
Bunga tabungan dihitung dengan perintah:
set bunga=v_SALDO_EFEKTIF_BLN_INI *v_SUKU_BUNGA_DEFAULT*sf_jumlah_hari_dalam_sebulan(tgl_awal_hitung)/365;
Pajak tabungan dihitung dengan perintah:
set pajak=v_SALDO_EFEKTIF_BLN_INI* v_PPH_DEFAULT;
Perhitungan administrasi tabungan dilakukan dengan perintah:
if(v_peride_adm_default = 2) then
if(sf_v_peride_adm_default_tahunan(tgl_awal_hitung,v_last_tgl_adm)=1) then
245
set administrasi=v_SALDO_EFEKTIF_BLN_INI*v_ADM_PER_BLN_DEFAULT;
set tglAdministrasiTerakhir=v_tgl_bunga;
else
set administrasi=0.00;
set tglAdministrasiTerakhir=v_last_tgl_adm;
end if;
else
set administrasi=v_SALDO_EFEKTIF_BLN_INI*v_ADM_PER_BLN_DEFAULT;
set tglAdministrasiTerakhir=date_add(v_last_tgl_adm,interval 1 month);
end if;
Pertama-tama akan diperiksa apakah periode administrasi
tabungan merupakan bulanan atau tahunan. Periode administrasi bulanan
memiliki kode 1 dan tahunan memiliki kode 2. Jika kode periode
administrasi tabungan adalah 2 maka tanggal administrasi tabungan
terakhir akan bernilai sama dengan tanggal periode awal perhitungan
bunga tabungan. Jika memiliki tanggal perhitungan bulanan maka tanggal
periode awal administrasi akan juga sama dengan periode awal
perhitungan bunga tabungan.
Setelah proses perhitungan bunga, pajak dan administrasi selesai
maka dilakukan perhitungan untuk saldo akhir dari rekening tabungan
dengan perintah:
246
set saldoAkhir=v_saldo_akhir+bunga-pajak-administrasi;
Jika proses perhitungan bunga, pajak, administrasi dan saldo
akhir telah selesai maka dilakukan proses pemindahan hasil perhitungan
ke tabel temp_tabung. Setelah itu tanggal awal perhitungan bunga bulan
ini dimasukkan dalam tabel statusHitungBungaBlnIni. Jika sudah
pernah dilakukan perhitungan bunga, pajak dan adminstrasi bulan ini
maka proses pengubahan tanggal perhitungan di tabel
statusHitungBungaBlnIni akan dilakukan. Jika belum pernah maka
proses penambahan tanggal perhitungan bungan akan dilakukan dalam
tabel statusHitungBungaBlnIni.
4.2.2.9. Daftar Bunga, Pajak dan Administrasi Tabungan
Fitur daftar bunga, pajak dan administrasi tabungan
menampilkan data-data bunga, pajak dan administrasi hasil perhitungan
bunga dan pajak pada periode satu bulanan. Fitur ini dapat digunakan
Manajer untuk mengubah hasil peritungan bunga, pajak dan administrasi
jika ada data yang tidak sesuai. Untuk dapat mengubah hasil perhitungan
bunga, pajak dan administrasi, komponen check box “Koreksi
Perhitungan” dipilih terlebih dahulu sebelum melakukan perhitungan
bunga pada fitur perhitungan bunga dan pajak tabungan.
247
Gambar 4.16. Tampilan Pencarian dan Daftar Bunga, Pajak dan
Administrasi Tabungan
Untuk mengubah hasil perhitungan bunga, pajak dan
administrasi tabungan Manajer dapat melakukan pencarian pada panel
“Filter Kriteria Informasi”. Hasil pencarian dimunculkan pada tabel daftar
bunga, pajak dan administrasi tabungan.
Setelah itu melakukan pencarian, Manajer memilih salah satu
baris data bunga, pajak dan administrasi tabungan. Rincian hasil pilihan
bunga, pajak dan administrasi oleh Manajer dimunculkan pada panel di
bagian bawah tabel daftar bunga, pajak dan administrasi tabungan. Dari
panel inilah Manajer dapat mengubah data hasil perhitungan bunga, pajak
dan administrasi sebelum di pindahbukukan ke dalam rekening tabungan.
248
4.2.2.10. Pemindahbukuan
Proses pemindahbukuan digunakan Manajer untuk
memindahkan hasil perhitungan bunga, pajak, administrasi dan saldo
akhir ke dalam rekening tabungan.
Gambar 4.17. Tampilan Pemindahbukuan
Baris perintah untuk melakukan proses pemindahbukuan dapat
dilihat di bawah ini.
public boolean overbookingProcess(String tglOverbooking,String pengguna) {
boolean statusoverbookingProcess = false;
String query = "{call sp_proses_overbooking(?,?)}";
try {
cn.setTransactionIsolation(cn.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement callStmt = cn.prepareCall(query);
249
callStmt.setString(1, tglOverbooking);
callStmt.setString(2, pengguna);
callStmt.executeUpdate();
callStmt.close();
cn.commit();
cn.setAutoCommit(true);
statusoverbookingProcess = true;
} catch (SQLException ex) {
try {
cn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
statusoverbookingProcess = false;
ex.printStackTrace();
}
return statusoverbookingProcess;
}
Dari perintah di atas dapat dilihat bahwa dilakukan pemanggilan
terhadap stored procedure sp_proses_overbooking yang memiliki
parameter tanggal pemindahbukuan dan identitas pengguna yang
melakukan proses pemindahbukuan. Jika proses pemindahbukuan berhasil
maka akan mengembalikan nilai true dan metode transaksi yang
250
dijalankan adalah commit. Jika proses pemindahbukuan gagal akan
mengembalikan nilai false dan metode transaksi yang dijalankan adalah
rollback.
Query dalam basis data untuk melakukan pemindahbukuan dapat
dilihat dibawah ini.
DELIMITER $$
DROP PROCEDURE IF EXISTS `bukp_skripsi`.`sp_proses_overbooking`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_proses_overbooking`(tgl_overbooking date, userId int)
BEGIN
DECLARE done INT DEFAULT 0;
declare v_no_rekening varchar(20);
declare v_bunga decimal(15,2);
declare v_pajak decimal(15,2);
declare v_administrasi decimal (15,2);
declare v_saldo_akhir decimal (15,2);
declare v_tgl_bunga date;
declare v_tgl_admin_terakhir date;
declare saldoTrans decimal (15,2);
DECLARE cursorOverbooking CURSOR FOR SELECT no_rekening,bunga,pajak,administrasi,
saldo_akhir, tgl_bunga,tgl_admin_terakhir from temp_tabung where tgl_bunga=tgl_overbooking;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
open cursorOverbooking;
251
REPEAT
fetch cursorOverbooking into v_no_rekening,v_bunga,v_pajak, v_administrasi,v_saldo_akhir,v_tgl_bunga,v_tgl_admin_terakhir;
IF NOT done THEN
set saldoTrans=v_bunga-v_pajak-v_administrasi;
update tabungan
set
bunga_bln_ini=v_bunga,
pajak_bln_ini=v_pajak,
adm_bln_ini=v_administrasi,
tgl_bunga=date_add(v_tgl_bunga,interval 1 month),
saldo_akhir=v_saldo_akhir+v_bunga-v_pajak-v_administrasi,
saldo_efektif_bln_ini=v_saldo_akhir+v_bunga-v_pajak-v_administrasi,
saldo_nominatif=v_saldo_akhir+v_bunga-v_pajak-v_administrasi,
saldo_hitung_pajak=v_saldo_akhir+v_bunga-v_pajak-v_administrasi,
last_tgl_adm=date_add(v_tgl_admin_terakhir,interval 1 month),
status_aktif=2
where no_rekening= v_no_rekening;
insert into tabtrans(tabtrans_id,tgl_trans,no_rekening,kode_trans,saldo_trans,TOB,posted,validated,kuitansi,userid,saldo_trans_kredit)
values((select sf_kode_tabtrans()+1),tgl_overbooking,v_no_rekening, sf_get_kode_Transaksi_bunga(), saldoTrans,'O',1,1,"SYS-BUNGA",userId,saldo_trans);
end if;
252
UNTIL done END REPEAT;
close cursorOverbooking;
END$$
DELIMITER ;
Dari query di atas dapat dilihat bahwa proses pemindahbukuan
dilakukan dengan membaca data pada tabel temp_tabung yang kemudian
disimpan dalam tabel tabungan. Pemindahan nilai perhitungan bunga,
pajak dan administrasi dilakukan sesuai dengan tanggal transaksi
pemindahbukuan yang dilakukan oleh Manajer.
Setelah selesai memindahkan nilai perhitungan bunga, pajak dan
administrasi tabungan maka dilakukan proses memasukkan nilai saldo
akhir ke dalam tabel tabtrans. Nilai transaksi saldo akhir digunakan
sebagai saldo transaksi kredit dalam tabel tabtrans.
4.2.2.11. Penghapusan Transaksi Tabungan
Fitur penghapusan transaksi tabungan digunakan oleh seorang
Manajer ketika ingin menghapus transaksi tabungan yang tidak benar,
seperti kesalahan masukan data rekening tabungan dari subsistem teller
atau kesalahan dalam proses pemindahbukuan. Data transaksi yang
ditampilkan dalam fitur penghapusan transaksi hanya data transaksi yang
253
sama dengan tanggal aplikasi yang dimasukkan Manajer ketika login ke
dalam sistem untuk pertama kalinya.
Gambar 4.18. Tampilan Penghapusan Data Transaksi
Untuk menghapus transaksi tabungan, Manajer memilih salah
satu baris data transaksi tabungan, kemudian menekan tombol “Hapus”.
Sistem akan menanyakan apakah ingin menghapus data terpilih. Jika
Manajer memilih ya maka sistem akan memanggil metode
hapusDataTransaksiTabungan di kelas EntitasTransaksiTabungan. Baris
perintah hapusDataTransaksiTabungan dapat dilihat dibawah ini.
public boolean hapusDataTransaksiTabungan(int rowIndex, java.util.Vector dataInput) throws SQLException {
int lastIdxRec = getRowCount();
boolean kondisi = false;
String sql = "{ call sp_hapus_Datatranstab(?)}";
254
try {
cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
cn.setAutoCommit(false);
java.sql.CallableStatement pstmt = cn.prepareCall(sql);
//ganti setiap simbol ? dengan nilai yang diharapkan
pstmt.setString(1, (String) dataInput.get(0));
//kirim sql ke database server dan jalankan
pstmt.executeUpdate();
pstmt.close();
fireTableRowsDeleted(lastIdxRec, lastIdxRec);
baris.removeElementAt(rowIndex);
kondisi = true;
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException ex) {
cn.rollback();
ex.printStackTrace();
kondisi = false;
255
}
return kondisi;
}
Tingkat transaksi basis data yang digunakan untuk menghapus
transaksi tabungan adalah serializable. Setelah mengganti parameter
masukan untuk stored procedure sp_hapus_Datatranstab maka
dieksekusi dengan perintah pstmt.executeUpdate(). Jika proses penghapusan
transaksi tabungan berhasil maka akan baris data berisi data transaksi yang
dihapus dihilangkan dari tampilan di penghapusan transaksi tabungan.
Selanjutnya transaksi basis data menjalankan metode commit. Jika
penghapusan transaksi gagal, maka transaksi basis data menjalankan
metode rollback.
4.2.2.12. Pencetakan Laporan Nominatif
Fitur pencetakan laporan nominatif digunakan Manajer untuk
mencetak data saldo nominatif semua rekening tabungan sejak rekening
dibuka hingga periode tertentu.
256
Gambar 4.19. Tampilan Pencetakan Laporan Nominatif Tabungan
Untuk mencetak laporan nominatif tabungan, Manajer
memasukkan tanggal periode cetak laporan nominatif dan kemudian
menekan tombol “Cetak”.
4.2.2.13. Pencetakan Laporan Bunga, Pajak dan Administrasi Tabungan
Fitur pencetakan laporan bunga, pajak dan administrasi
tabungan digunakan Manajer untuk mencetak data bunga, pajak dan
administrasi rekening tabungan pada periode satu bulanan.
Gambar 4.20. Tampilan Pencetakan Laporan Bunga, Pajak dan
Administrasi Tabungan
Untuk mencetak laporan bunga, pajak, dan administrasi
tabungan, Manajer memasukkan tanggal periode awal bulan dan akhir
bulan cetak laporan bunga, pajak, dan administrasi, kemudian menekan
tombol “Cetak”.
257
4.2.2.14. Pencetakan Laporan Transaksi Tabungan
Fitur pencetakan transaksi tabungan digunakan Manajer untuk
mencetak data transaksi rekening tabungan pada periode satu bulanan.
Gambar 4.21. Tampilan Pencetakan Laporan Transaksi Tabungan
Untuk mencetak laporan transaksi tabungan, Manajer
memasukkan tanggal periode awal bulan dan akhir bulan cetak laporan
transaksi, kemudian menekan tombol “Cetak”.
4.2.2.15. Pencetakan Laporan Mutasi Tabungan
Fitur pencetakan laporan mutasi tabungan digunakan Manajer
untuk mencetak laporan daftar rekening yang melakukan mutasi pada
periode waktu satu bulanan.
Gambar 4.22. Tampilan Pencetakan Laporan Mutasi Tabungan
258
Untuk mencetak laporan mutasi tabungan, Manajer
memasukkan tanggal periode awal bulan dan akhir bulan cetak laporan
mutasi tabungan, kemudian menekan tombol “Cetak”.
259
BAB V
ANALISIS HASIL
5.1. Analisis Hasil Implementasi
5.1.1. Analisis Unjuk Kerja Multiplatform Subsistem yang Baru
Subsistem tabungan yang baru dikembangkan menggunakan teknologi
bahasa pemrograman Java yang mendukung berbagai platform sistem operasi.
Subsistem tabungan yang baru juga telah diujicobakan pada dua sistem operasi
yaitu Windows XP Service Pack 2 dan Linux Mint 8 Gloria. Untuk menjalankan
subsistem tabungan yang baru diperlukan Java Virtual Machine (JVM) dan
server basis data MySQL versi 5.1.
Hasil uji coba subsistem tabungan yang baru di kedua sistem operasi
dapat berjalan dengan baik. Ujicoba kemampuan multiplatform dilakukan dengan
menempatkan satu buah server basis data yang diakses bersamaan oleh dua buah
komputer klien yang menjalankan subsistem tabungan. Komputer klien yang
pertama menggunakan sistem operasi Windows XP Service Pack 2 dan komputer
klien yang kedua menggunakan sistem operasi Linux Mint 8 Gloria.
Dengan kemampuan subsistem tabungan yang baru dapat memberikan
alternatif pilihan platform sistem operasi yang ingin digunakan untuk pengadaan
dan penggunaan subsistem tabungan dari sistem informasi lembaga keuangan
Mikro. Dengan kemampuan multiplatform yang dimiliki subsistem tabungan yang
260
baru, BPR dapat menggunakan platform tidak berbayar seperti keluarga LINUX
untuk menjalankan subsistem tabungan yang baru, sehingga dapat menekan biaya
pengadaan dan penggunaan subsistem tabungan yang baru.
5.1.2. Analisis Unjuk Kerja Teknologi Basis Data Subsistem yang Baru
Dari segi teknologi basis data, sistem baru lebih unggul jika
dibandingkan dengan sistem sebelumnya, karena pada sistem yang baru sudah
menggunakan teknologi basis data MySQL 5.1 sedangkan pada sistem yang lama
menggunakan teknologi basis data MySQL 3.
Tabel berikut adalah rangkuman perbandingan teknologi server basis
data MySQL versi 3 dengan versi 5.
Tabel 5.1. Perbandingan server MySQL
(Sumber dari http://www.wlug.org.nz/PostgresVsMysql)
261
Dari tabel di atas dapat dilihat bahwa secara pada server MySQL 3 yang
digunakan sistem yang lama belum mendukung konsep transaksi, sedangkan pada
subsistem tabungan baru yang menggunakan server MySQL 5.1 sudah
mendukung konsep transaksi, sehingga dari segi teknologi dapat disimpulkan
bahwa server basis data subsistem tabungan yang baru lebih baik dibandingkan
dengan subsistem tabungan sebelumnya.
Pada subsistem yang lama proses manipulasi data dilakukan pada tingkat
antarmuka dan tidak diletakkan pada basis data subsistem. Hal ini dilakukan
karena pada server basis data subsistem yang lama belum mengenal stored
procedure yang dapat digunakan untuk melakukan beberapa langkah sekaligus
dalam memanipulasi data tertentu. Perintah-perintah untuk manipulasi basis data
yang berada pada program aplikasi juga tidak mengunakan mekanisme transaksi
yang dapat mencegah proses manipulasi data yang tidak benar atau mengalami
kegagalan. Padahal kegagalan pada subsistem lama sering terjadi pada tingkat
program aplikasi. Jika proses manipulasi data dijalankan, kemudian subsistem
lama mengalami kegagalan maka proses manipulasi data akan diulangi dari awal.
Selain itu juga, data hasil manipulasi sebelumnya harus dihapus secara manual
untuk mencegah munculnya data yang ganda (redundancy). Namun sering
ditemukan bahwa sebelum memulai lagi transaksi yang mengalami kegagalan
sebelumnya, data transaksi yang lama tidak dihapus. Hal ini yang dapat
menimbulkan data yang ganda.
Pada subsistem yang baru setiap proses manipulasi data dalam basis data
akan menggunakan tingkat transaksi serial, sehingga jika terjadi kegagalan pada
262
salah satu proses transaksi maka transaksi akan dibatalkan (rollback). Konsep
transaksi ini digunakan untuk menjaga konsistensi data dalam basis data.
Sedangkan dalam membaca data dari sebuah tabel digunakan tingkat transaksi
repeatable-read, dimana sebuah tabel yang belum menjalankan perintah commit
tidak akan dibaca, sehingga data yang ditampilkan kepada pengguna merupakan
data yang terjamin konsistensinya.
Contoh penggunaan dari transaksi serial dapat dilihat di bawah ini.
/** *starting hitung bunga */ public boolean hitungbunga(String tglAwal, String tglAkhir, String query) { boolean hitungBungaCondition = false; System.out.println("query in jButtonHitungBungaPajakActionPerformed: " + query); try { cn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); cn.setAutoCommit(false); java.sql.CallableStatement callStmt = cn.prepareCall(query); //java.sql.ResultSet resultSet; callStmt.setString(1, tglAwal); callStmt.setString(2, tglAkhir); callStmt.executeUpdate(); hitungBungaCondition = true; callStmt.close(); cn.commit(); cn.setAutoCommit(true); } catch (SQLException e) { try { cn.rollback(); } catch (SQLException ex) { System.out.println(ex); } hitungBungaCondition = false;
263
e.printStackTrace(); } // System.out.println("query sql: " + sql); System.out.println("hitungBungaCondition: " + hitungBungaCondition); return hitungBungaCondition; }
Baris perintah diatas adalah salah satu contoh penggunakan mekanisme
transaksi secara serial pada metode perhitungan bunga tabungan. Perintah-
perintah diatas yang dicetak tebal merupakan perintah-perintah untuk melakukan
transaksi basis data secara serial. Perintah
Connection.TRANSACTION_SERIALIZABLE merupakan perintah untuk
menentukan tingkat transaksi dalam basis data menjadi serial. Selanjutkan jika
transaksi berhasil maka transaksi akan dinyatakan dalam kondisi commit dengan
perintah cn.commit(). Sementara jika mengalami kegagalan maka transaksi
akan dibatalkan dengan menggunakan perintah cn.rollback().
Contoh penggunaan dari transaksi dengan tingkat repeatable-read dapat
dilihat di bawah ini.
/** * method for getting status hitung bulan * in every month */ public boolean statusHitungBungaBlnIni(String dateHitung) { boolean kondisi = false; try { cn.setTransactionIsolation(cn.TRANSACTION_REPEATABLE_READ); cn.setAutoCommit(false); java.sql.CallableStatement callStmt = cn.prepareCall(queryStatusHitungBungaBlnIini); java.sql.ResultSet resultSet; callStmt.setString(1, dateHitung); resultSet = callStmt.executeQuery();
264
while (resultSet.next()) { statusHitungBunga = resultSet.getString(1); } if (statusHitungBunga.isEmpty()) { kondisi = false; } else { kondisi = true; } cn.commit(); cn.setAutoCommit(true); } catch (SQLException ex) { try { cn.rollback(); } catch (SQLException ex1) { System.out.println(ex1); } kondisi = false; ex.printStackTrace(); } System.out.println("statusHitungBunga: " + kondisi); return kondisi; }
Bagian yang dicetak tebal dari baris perintah diatas adalah perintah
untuk menjalankan konsep transaksi tingkat repeatable-read. Tingkat transaksi
repeatable-read berguna untuk mencegah data dari sebuah tabel dibaca terlebih
dahulu jika saja ada transaksi lain yang membaca data yang sama dan belum
berada dalam kondisi commit. Dengan konsep ini sebuah transaksi yang
membutuhkan data-data untuk menjalankan transaksi memperoleh data yang
konsisten, karena tidak dapat diubah transaksi lain sebelum dinyatakan commit
oleh transaksi yang membaca data tersebut. Jika transaksi berhasil maka akan
dinyatakan dalam kondisi commit.
Konsep transaksi serial dan repeatable-read tidak hanya diterapkan pada
kedua metode diatas. Daftar metode yang menggunakan konsep transaksi dapat
265
dilihat pada lampiran 36.
Proses manipulasi data dalam subsistem yang baru dilakukan pada
tingkat basis data. Proses perhitungan diletakkan dalam sebuah stored procedure.
Subsistem yang baru dirancang dengan mengunakan konsep transaksi dalam basis
data berguna untuk mencegah agar jika terjadi kegagalan subsistem di tingkat
program aplikasi, maka proses perhitungan di basis data tidak mengalami
kegagalan yang menghasilkan data yang tidak konsisten.
5.2. Kelebihan dan Kekurangan Subsistem
Sistem informasi lembaga keuangan mikro subsistem tabungan
memiliki beberapa kelebihan dan kekurangan.
Kelebihan dari sistem ini adalah:
1. Menggunakan teknologi basis data yang mendukung
transaction, stored procedure, triger, dan cursor untuk
menjamin konsistensi data.
2. Dapat berjalan pada platform sistem operasi Linux maupun
Windows yang sudah memiliki Java Runtime Environment
dan server basis data MySQL (untuk mesin server).
Kekurangan dari sistem ini adalah:
1. Sistem informasi lembaga keuangan mikro subsistem
tabungan belum bisa melakukan proses pembuatan suatu
rekening tabungan dengan produk tabungan yang dapat
disesuaikan dengan kebutuhan seorang nasabah.
266
2. Sistem informasi lembaga keuangan mikro subsistem
tabungan belum bisa melakukan proses backup terhadap
data-data transaksi tabungan secara berkala.
267
BAB VI
PENUTUP
6.1. Kesimpulan
Berdasarkan hasil analisis, desain dan implementasi sistem maka dapat
disimpulkan bahwa sistem informasi lembaga keuangan mikro subsistem
tabungan yang baru:
1. Dapat berjalan pada berbagai platform sistem operasi (Windows
dan Linux) sehingga dapat memberikan alternatif pilihan platform
sistem operasi yang ingin digunakan untuk pengadaan dan
penggunaan subsistem tabungan.
2. Menggunakan teknologi basis data MySQL versi 5.1 yang sudah
mendukung konsep stored procedure, trigger, cursor, constraints,
transaction, sehingga data-data transaksi tabungan tetap memiliki
integritas dan konsistensi yang baik.
3. Dapat membantu pegawai pada kantor pendukung (back office)
dalam melakukan fungsi-fungsi perhitungan tabungan secara
otomatis.
6.2. Saran
Saran untuk pengembangan sistem informasi lembaga keuangan mikro
subsistem tabungan adalah:
268
1. Sistem dapat membuat suatu rekening tabungan dengan produk
tabungan yang dapat disesuaikan dengan kebutuhan seorang
nasabah.
2. Sistem dapat melakukan proses backup terhadap data-data
transaksi tabungan secara berkala.
269
DAFTAR PUSTAKA
Bank Indonesia, 1998, Undang-Undang Nomor 7 Tahun 1992 tentang Perbankan
Sebagaimana Telah Dirubah Dengan Undang-Undang Republik Indonesia
Nomor 10 Tahun 1998, Bank Indonesia, Jakarta
Fitz Gerald, Jerry, 1981, Fundamentals of System Analysis 2nd Edition, Jhon
Willey & Sons, New York
Hermawan, Benny, 2004, Menguasai Java 2 & Object Oriented Programming,
Penerbit Andi, Yogyakarta
Jogiyanto, 2001, Analisis Disain Sistem Informasi : Pendekatan Terstruktur Teori
dan Praktek Aplikasi Bisnis, Andi Offset,Yogyakarta
Dwi Prasetyo, Didik, 2007, 150 Rahasia Pemrograman Java, PT Elex Media
Komputindo, Gramedia Jakarta
Lewis, Phillip M., 2002, Databases And Transaction Processing: An Application-
Oriented Approach, Addison-Wesley, New York
Whitten, Jeffrey L., 2004, System Analysis and Design Methods 6th edition,
McGraw-Hill, New York
Wijono, Wiloejo Wiryo, Pemberdayaan Lembaga Keuangan Mikro Sebagai
Salah Satu Pilar Sistem Keuangan Nasional: Upaya Konkrit Memutus
Mata Rantai Kemiskinan, Kajian Ekonomi dan Keuangan, Edisi Khusus
November 2005, Halaman 90-91
__________, (2009), Mengetahui Perhitungan Bunga Tabungan,
(www.bi.go.id/web/id/Tentang+BI/Edukasi/Perbankan/perbankan47.htm
diakses tanggal 23 November 2009 jam 13.19 WIB)
270
__________, (2010), Keunggulan Java,
(http://scqolbu.com/pemrograman/94.html diakses 2 January 2010 jam
2:35 WIB)
__________,(2009), http://www.wlug.org.nz/PostgresVsMysql (diakses tanggal
26 November 2009)
271
LAMPIRAN
272
Lampiran 1. Kelas Diagram Lengkap Login
273
Lampiran 2. Kelas Diagram Lengkap Pengelolaan Produk Tabungan
274
Lampiran 3. Kelas Diagram Lengkap Pengelolaan Grup Tabungan
275
Lampiran 4. Kelas Diagram Lengkap Pengelolaan Kode Pemilik Tabungan
276
Lampiran 5. Kelas Diagram Lengkap Pengelolaan Kode Referensi
277
Lampiran 6. Kelas Diagram Lengkap Pengelolaan Data Rekening
278
Lampiran 7. Kelas Diagram Lengkap Perhitungan Bunga dan Pajak Tabungan
279
Lampiran 8. Kelas Diagram Lengkap Pengelolaan Daftar Bunga, Pajak dan Administrasi Tabungan
280
Lampiran 9. Kelas Diagram Lengkap Pemindahbukuan
281
Lampiran 10. Kelas Diagram Lengkap Pengelolaan Transaksi Tabungan
282
Lampiran 11. Kelas Diagram Lengkap Pengelolaan Pencetakan Laporan
283
Lampiran 12. Diagram Sekuensial Login
284
Lampiran 13. Diagram Sekuensial Logout Direksi
285
Lampiran 14. Diagram Sekuensial Logout Manajer
Lampiran 15. Diagram Sekuensial Penambahan Produk Tabungan
286
Lampiran 16. Diagram Sekuensial Pengubahan Produk Tabungan
Lampiran 17. Diagram Sekuensial Penghapusan Produk Tabungan
287
Lampiran 18. Diagram Sekuensial Pencarian Produk Tabungan
288
Lampiran 19. Diagram Sekuensial Penambahan Grup Tabungan
289
Lampiran 20. Diagram Sekuensial Pengubahan Grup Tabungan
290
Lampiran 21. Diagram Sekuensial Penghapusan Grup Tabungan
291
Lampiran 22. Diagram Sekuensial Pencarian Grup Tabungan
292
Lampiran 23. Diagram Sekuensial Penambahan Data Rekening
293
Lampiran 24. Diagram Sekuensial Pengubahan Data Rekening
294
Lampiran 25. Diagram Sekuensial Penghapusan Data Rekening
295
Lampiran 26. Diagram Sekuensial Pencarian Data Rekening
296
Lampiran 27. Diagram Sekuensial Perhitungan Bunga dan Pajak
Tabungan
297
Lampiran 28. Diagram Sekuensial Pencarian Daftar Bunga, Pajak dan
Administrasi Tabungan
298
Lampiran 29. Diagram Sekuensial Pengubahan Daftar Bunga, Pajak dan
Administrasi Tabungan
299
Lampiran 30. Diagram Sekuensial Pemindahbukuan
300
Lampiran 31. Diagram Sekuensial Penghapusan Transaksi
301
Lampiran 32. Diagram Sekuensial Pencetakan Laporan Nominatif
Lampiran 33. Diagram Sekuensial Pencetakan Laporan Bunga, Pajak
dan Administratif Tabungan
302
Lampiran 34. Diagram Sekuensial Pencetakan Laporan Transaksi
Tabungan
Lampiran 35. Diagram Sekuensial Pencetakan Laporan Mutasi
Tabungan
303
Lampiran 36. Daftar Nama Metode yang Menggunakan Konsep
Transaksi
A. Metode yang Menggunakan Konsep Transaksi Serial
1. public boolean masukProdukTabungan(java.util.Vector data)
2. public boolean ubahProdukTabungan(java.util.Vector data)
3. public boolean hapusProdukTabungan(String data)
4. public boolean ubahProsentaseBungaDanPajak(java.util.Vector
dataProsentase)
5. public boolean masukKodeGrupTabungan(Vector dataInput)
6. public boolean ubahKodeGrupTabungan(java.util.Vector dataInput)
7. public boolean hapusKodeGrupTabungann(Vector dataCollector)
8. public boolean masukKodeReferensi()
9. public boolean ubahKodeReferensi()
10. public boolean hapusKodeReferensi(String kodeTransaksiId)
11. public boolean masukDataRekeningNasabah(java.util.Vector data)
12. public boolean ubahDataRekeningNasabah(java.util.Vector data)
13. public boolean hapusDataRekeningNasabah(String data)
14. public boolean hapusDataTransaksiTabungan(int rowIndex,
java.util.Vector dataInput)
15. public boolean overbookingProcess(String tglOverbooking,String
pengguna)
16. public boolean ubahDaftarBungaDanPajakTabungan(int rowIndex,
java.util.Vector dataInput)
17. public boolean hitungbunga(String tglAwal, String tglAkhir, String
query)
18. public boolean ubahDaftarBungaDanPajakTabungan(int rowIndex,
java.util.Vector dataInput)
B. Metode yang Menggunakan Konsep Transaksi Repeatable-Read
1. public void getRecDbProdTab(String query)
304
2. public Vector cariProdukTabungan(String kataKunci)
3. public void getRecDbKodeGrupTabungan(String query)
4. public Vector cariDataKodeGrupTabungan(String kataKunci, String
Grup)
5. public void getRecDBKodeTransTab(String query)
6. public Vector cariKodeRef(String kataKunci)
7. private void getEntityDataNasabah(String nasabahId)
8. public void getRecDbDataNasabah(String query)
9. public Vector setdataForJenisTabungan(String selectedItem, boolean
kondisi)
10. public Vector cariDataRekNasabah(String kataKunci)
11. public String nomorRekening(String produkTabungan)
12. public void getRecDBTransTab(String query, String dateCondition)
13. private void getRecDBDaftarBungaDanPajakTabungan(String query)
14. public Vector cariDataNasabah(String key)
15. public boolean dataBulanIniOverbooking(String tglAwal)
16. public boolean statusOverbookingBungaBlnIni(String dateHitung)
17. private void getRecDBDaftarBungaDanPajakTabungan(String query)
18. public boolean statusHitungBungaBlnIni(String dateHitung)
19. public boolean statusBulanSebelumnya(String dateBlnIni)
20. public boolean dataBulanIni(String tglAwal, String tglAkhir)