bab iii pembahasan - repository.bsi.ac.id filemenabung bagi masyarakat wajok hilir guna pemunuhan...
TRANSCRIPT
20
BAB III
PEMBAHASAN
3.1 Tinjauan Perusahaan
Tinjauan perusahaan merupakan hasil riset yang dilakukan oleh penulis.
Tinjauan perusahaan akan menjelaskan hasil pengambilan data dari sistem
berjalan. Data yang diambil akan dijelaskan dengan penggambaran sesungguhnya
dari tempat riset yang telah dilakukan pengamatan/observasi.
BUMDES “Prospek Mandiri” memiliki dua program simpanan yaitu SHR
(Simpanan Hari Raya) dan SAS (Simpanan Anak Sekolah). Program simpanan
hari raya disingkat SHR adalah salah satu pengembangan usaha dari BUMDES
“Prospek Mandiri” Wajok Hilir yang menyediakan wadah penyimpan atau
menabung bagi masyarakat wajok hilir guna pemunuhan kebutuhan menjelang
hari raya idul fitri. Tujuan dari program ini adalah membantu dan memudahkan
masyarakat desa wajok hilir mempersiapkan kebutuhan dana pada saat hari raya
idul fitri. Program simpanan yang kedua yaitu program simpanan anak sekolah
disingkat SAS adalah salah satu pengembangan usaha BUMDES “Prospek
Mandiri” Wajok Hilir yang menyediakan wadah menyimpan atau menabung bagi
para orang tua yang memiliki anak yang akan melanjutkan sekolah. Adapun
kelebihan program SHR (Simpanan Hari Raya) dan SAS (Simpanan Anak
Sekolah) adalah bersifat resmi karena dilindungi oleh UU No.6 Tahun 2014 dan
Perdes No.3 Tahun 2016 yang bersekertariatan di kantor desa Wajok Hilir.
Program ini juga tanpa potongan bebas biaya pajak dan administrasi. Selain
program sinpanan BUMDES “Prospek Mandiri” juga memiliki program pinjaman
bagi masyarakat desa wajok hilir. Dimana besar pinjaman Rp 1.000.000 s/d Rp
21
5.000.000 untuk tingkat pemula dan pinjaman maksimal Rp. 10.000.000. Setiap
masyarakat yang akan meminjam dikenakan biaya administrasi sebesar Rp 20.000
dan suku bunga perbulan 1,125% menetap. Setiap bulannya peminjam
melaksanakan kewajibannya membayar angsuran pokok dan jasa pinjaman yang
telah ditetapkan dan disepakati.
3.1.1 Sejarah Pembentukan BUMDES “Prospek Mandiri” Wajok Hilir
Pada hari Rabu tanggal 20 April 2016 bertempat diruang rapat Kantor Desa
Wajok Hilir telah dilaksanakan rapar desa dengan hasil kegiatan sebagai berikut:
1. Pembentukan BUMDes Wajok Hilir Kecamatan Siantan Kabupaten
Mempawah.
2. Membahas tentang pengurus BUMDes Wajok Hilir Kecamatan Siantan
Kabupaten Mempawah.
Lembaga ini bernama Badan Usaha Milik Desa Wajok Hilir yang selanjutnya
disebut BUMDes “Prospek Mandiri” Wajok Hilir. BUMDes “Prospek Mandiri”
merupakan usaha desa yang berupa badan usaha milik desa dengan perhatian
khusus untuk meningkatkan kemampuan keuangan pemerintah desa dan
pendapatan masyarakat.
BUMDes “Prospek Mandiri” berkedudukan di Desa Wajok Hilir
Kecamatan Siantan Kabupaten Mempawah Provinsi Kalimantan Barat Negara
Republik Indonesia.
22
1. Azas, Visi, Misi, Maksud dan Tujuan
Setiap perusahaan atau badan usaha pasti memiliki maksud dan tujuan
dalam mendirikan suatu usaha. Serta misi dan visi yang dijadikan pedoman untuk
melaksanakan usaha tersebut kedepanya.
Adapun azas, visi dan misi serta maksud dan tujuan pembentukan
BUMDES “Prospek Mandiri” Wajok Hilir adalah sebagai berikut:
a. Azas BUMDES “Prospek Mandiri” Wajok Hilir
BUMDES “Prospek Mandiri” Wajok Hilir berazaskan pancasila dan
Undang-Undang Dasar Negara Republik Indonesia Tahun 1945.
b. Visi BUMDES “Prospek Mandiri” Wajok Hilir
“Untuk meningkatkan kesejahteraan masyarakat desa Wajok Hilir
Kecamatan Siantan Kabupaten Mempawah”.
c. Misi BUMDES “Prospek Mandiri” Wajok Hilir
1). Didirikan untuk memudahkan perputaran barang dan jasa yang dibutuhkan
2). Memberantas praktek ijon dan rentenir dan memudahkan masyarakat desa
Wajok Hilir dalam mendapatkan modal usaha dalam skala kecil dan
berimbang sesuai dengan keberadaan modal yang dikelola BUMDes.
d. Maksud Pendirian BUMDes “Prospek Mandiri” Wajok Hilir
Maksud pendirian BUMDes “Prospek Mandiri” Wajok Hilir adalah untuk
menjadi penyedia wahana bagi masyarakat berupa pelayanan ekonomi guna
meningkatkan kualitas ekonomi masyarakat.
e. Tujuan Pendirian BUMDES “Prospek Mandiri” Wajok Hilir
Tujuan pendirian BUMDES “Prospek Mandiri” Wajok Hilir adalah
meningkatkan kemampuan keuangan pemerintah desa dalam penyelenggaraan
23
pemerintah dan meningkatkan pendapatan masyarakat melalui berbagai kegiatan
usaha ekonomi masyarakat yang sesuai dengan kebutuhan dan potensi desa
melalu wadah badan usaha milik desa.
3.1.2 Struktur Organisasi dan Fungsi BUMDES “Prospek Mandiri”
Struktur organisasi adalah kerangka kerja dan pola hubungan yang relatif
mantap dan stabil antara fungsi-fungsi tugas, posisi-posisi dan orang-orang dalam
organisasi, fungsi struktur organisasi adalah memberikan kepuasan kepada
individu-individu dalam organisasi tersebut. Berikut adalah gambar struktur
organisasi yang berada di BUMDES “Prospek Mandiri” Wajok Hilir.
Susunan Pengurus
Badan Usaha Milik Desa (BUMDES) “Prospek Mandiri”
Desa Wajok Hilir Kecamatan Siantan Kabupaten Mempawah Alamat : Jl.Raya Wajok Hilir Kec.Siantan. Kode pos 78351
Gambar III.1 Struktur Organisasi
Sumber : Hasil Penelitian (2018)
KOMISARIS
ABDUL MAJID, S.Hut
PENGAWAS
DAMAYANTI,S.Hut
ABDUL MAJID, S.Pd.i
USMAN YUSUF
KEPALA OPERASIONAL
SULASTRI, S.Pd SEKRETARIS
YUSUF EFENDI
BENDAHARA
IDA MARLINA , SE
KOORDINATOR UNIT USAHA
PERDAGANGAN UMUM
SAHLAWATI
KOORDINATOR UNIT USAHA JASA PERSEWAAN
AHMADI
KOORDINATOR UNIT USAHA PETERNAKAN/PERKEBUNAN
HENDI SUMARYO
KOORDINATOR UNIT USAHA SIMPAN PINJAM
IDA MARLINA, SE
24
Deskripsi Tugas
Merupakan suatu rincian yang menunjukkan posisi, tanggung jawab,
wewenang, fungsi dan yang harus dikerjakan oleh seorang personil didalam suatu
organisasi tersebut. Adapun uraian dan bagian-bagian yang terlibat didalam
struktur organisasi simpan pinjam BUMDES “Prospek Mandiri” Wajok Hilir
sebagai berikut:
a. Komisaris
Menurut PERDA No.3 tahun 2016 pasal 1. Komisaris mempunyai kewenang
meminta penjelasan pelaksana operasional atau direksi mengenai pengelolaan
usaaha desa.
b.Pengawas
Mempunyai tugas dan fungsi melakukan pengawasan terhadap pelaksanaan
keputusan-keputusan RAT (Rapat Anggota Tahunan) dilakukan oleh pengurus.
c. Ketua atau Kepala Operasional
1. Petanggung jawab atas kemajuan atau kemunduran koperasi
2. Membuat neraca akhir dan gabungan
3. Membuat neraca USP (Unit Simpan Pinjam)
4. Mendatangani surat
5. Memipin rapat
d. Sekretaris
1. Menanggung jawab atas barang dan konsumsi
2. Mengisi buku daftar pengurus, pengawas, dan inventaris
3. Mengagendakan surat masuk dan surat keluar
4. Membuat surat keluar serta laporan
25
e. Bendahara
1. Melayani atau menerima setoran, simpan piutang, serta titipan
2. Menyimpan barang-barang berharga
3. Melakukan penyetoran ke Bank’
4. Melakukan pengisian buku-buku dll.
f. Koordinator Unit Usaha Jasa Persewaan
1. Mengelolah unit usaha persewaan
2. Mencatat pemasukan dari persewaan
g. Koordinator Unit Usaha Perdagangan Umum
1. Mengelolah unit usaha ATK, berupa jual beli matrai dan foot copy
2. Mencatat penjualan matrai dan foto copy setiap harinya.
h. Koordinator Unit Usaha Peternakan/ perkebunan
1. Mendata usaha peternakan/ perkebunan yang dimodali oleh BUMDes
2. Mengelolah unit usaha peternakan/ perkebunan
3. Membuat laporan dan pemasukan.
3.2 Tinjauan Kasus
BUMDES “Prospek Mandiri” Wajok Hilir merupakan badan usaha milik
desa yang salah satu kegiatannya bergerak di bidang simpan pinjam. Dalam
pengelolaan data simpan pinjam bendahara masih menggunakan tulis tangan
yang dicatat ke buku besar. Baru kemudian data tersebut dipindahkan ke
dalam microsoft excel dan dicetak untuk menjadi laporan bulanan.
Dalam kegiatan transaksi simpan pinjam serta angsuran bendahara juga
masih menggunakan kalkulator untuk menghitung nimonal simpanan dan
26
angsuran. Sehingga membuat bendahara lama dalam menghadapi anggota
yang hendak melakukan transaksi simpan pinjam.
Pembuatan laporan yang telah dibuat pun masih menggunakan banyak
shet-shet. Baru kemudian di cetak dan disimpan. Sehingga arsip laporan yang
telah dicetak dan disimpa kedalam lemari. Karna terlalu bnyaknya arsip yang
dibuat pengurus pun sulit mencari arsip yang telah diinginkan.
3.2.1 Proses Bisnis Sistem Berjalan
Proses bisnis sistem yang sedang berjalan bertujuan untuk mengetahui
lebih jelas bagaimana kerja suatu sistem dan mengetahui masalah yang dihadapi
sistem.
Adapun analisa prosedur sistem yang sedang berjalan pada BUMDES
“Prospek Mandiri” Wajok Hilir adalah sebagai berikut:
1. Prosedur pengajuan simpanan
Setiap calon anggota yang ingin mendaftar menjadi anggota diwajjibkan
mengajukan simpanan dengan persyaratan membawa foto copy KTP dan
menyerahkannya ke bendahara. Kemudian bendahara akan membuatkan slip
simpanan dan menyerahkannya kepada anggota sebagai bukti menjadi anggota
BUMDES “Prospek Mandiri” Wajok Hilir.
Setiap anggota yang sudah memiliki slip simpanan dapat menyetorkan
simpanannya kepada bendahara. Kemudian bendahara akan mencatatnya ke slip
simpanan dan buku induk SAS (Simpanan Anak Sekolah) dan SHR (Simpanan
Hari Raya).
27
2. Prosedur pengajuan pinjaman
Semua masyarakat Wajok Hilir yang hendak mengajukan pinjaman harus
mengisi surat permohonan pinjaman dan surat perjanjian secara tertulis diatas
matrai. Kemudian surat permohonan dan surat perjanjian diserahkan kepada
bendahara untuk dianalisa. Anggota yang ingin melakukan pinjaman harus
menunggu beberapa hari untuk mendapatkan persetujuan. Kemudian bendahara
akan memberikan surat permohonan dan surat perjanjian yang telah diisi kepada
ketua untuk mendapatkan persetujuan dan pengesahan dari ketua. Setelah
disetujui oelh ketua, bendahara akan menyerahkan dana pinjaman kepada anggota
dan bendahara akan mencatat kedalam buku induk pinjaman sebagai bukti
pencairan dana pinjaman. Dan bendahara akan memberikan bukti pinjaman
berupa kwitansi yang diisi sesuai dengan nominal yang diajukan oleh anggota.
3. Prosedur pengembalian angsuran
Setiap anggota yang telah mimiliki pinjaman harus melakukan setoran
pengembalian angsuran setiap bulannya sesuai dengan kesepakatan. Anggota yang
hendak melakukan penyetoran harus membawa slip setoran dan memberikannya
kepada bendahara. Kemudian bendahara akan mendatangani slip setoran dan
mencatatnya kedalam buku induk angsuran. Serta memberikan bukti berupa
kwitansi pembayaran.
4. Prosedur pembuatan laporan
Dalam pembuatan laporan, bendahara membuat rekap pinjaman dan rekap
simpanan setiap bulannya dan kemudian menyerahkan ke ketua untuk di tanda
tangani.
28
3.2.2 Activity Diagram
Berikut ini activity diagram bisnis sistem berjalan pada BUMDES “Prospek
Mandiri” Wajok Hilir sebagai berikut:
1. Prosedur simpanan
Sumber: Hasil Penelitian (2018)
Gambar III. 2 Activity Diagram prosedur simpanan
29
2. Prosedur pinjaman
Sumber: Hasil Penelitian (2018)
Gambar III. 3 Activity Diagram prosedur pinjaman
3. Prosedur pengembalian angsuran
Sumber: Hasil Penelitian (2018)
Gambar III. 4 Activity Diagram prosedur pengembalian angsuran
30
4. Prosedur pembuatan laporan
Sumber: Hasil Penelitian (2018)
Gambar III. 5 Activity Diagram prosedur pembuatan laporan
3.2.3 Dokumen Masukan
Dokumen masukan adalah sebagai bentuk dokumen masukan yang akan
diolah dalam suatu proses agar dapat menghasilkan keluaran yang diinginkan.
Adapun dokumen masukan sebagai berikut:
a. Nama dokumen : Slip simpanan
Fungsi : sebagai bukti adanya setoran yang dilakukan setiap
harinya
Sumber : Bendahara
Tujuan : anggota dan bendahara
Media : Kertas
31
Format : lampiran A.1
b. Nama dokumen : Slip angsuran
Fungsi : Sebagai bukti adanya pembayaran setoran yang
dilakukan setiap bulannya
Sumber : Bendahara
Tujuan : anggota dan bendahara
Media : Kertas
Format : lampiran A.2
c. Nama dokumen : Surat perjanjian kesepakatan
Fungsi : Sebagai bukti perjanjian antara peminjam dengan
pengurus
Sumber : Bendahara
Tujuan : anggota
Media : Kertas
Format : lampiran A.3
d. Nama dokumen : Surat permohonan pinjaman
Fungsi : Sebagai bukti adanya permohonan pinjaman
Sumber : Bendahara
Tujuan : anggota
Media : Kertas
Format : lampiran A.4
e. Nama dokumen : Berita acara
Fungsi : Sebagai bukti adanya pencairan dana saat ada
pinjaman
32
Sumber : Bendahara
Tujuan : anggota dan bendahara
Media : Kertas
Format : lampiran A.5
3.2.4 Dokumen Keluaran
Dokumen keluaran adalah segala bentuk dokumen dari hasil proses
pengolahan dokumen masukan yang terjadi pada suatu sistem.
Adapun dokumen keluaran adalah sebagai berikut:
a. Nama dokumen : Kwitansi angsuran
Fungsi : sebagai bukti adanya setoran yang dilakukan setiap
harinya
Sumber : Bendahara
Tujuan : anggota dan bendahara
Media : Kertas
Format : lampiran B.1
b. Nama dokumen : Kwitansi penyerahan pinjaman
Fungsi : sebagai bukti adanya penyerahan pinjaman yang
dilakukan oleh bendahara ke anggota yang
bersangkutan
Sumber : Bendahara
Tujuan : anggota dan bendahara
Media : Kertas
Format : lampiran B.2
33
c. Nama dokumen : Laporan Bulanan
Fungsi : sebagai bukti adanya laporan yang dilakukan
setiap bulannya
Sumber : Bendahara
Tujuan : anggota dan bendahara
Media : Kertas
Format : lampiran B.3
3.2.5 Permasalahan Pokok
Dari hasil analisa yang penulis peroleh dari BUMDES “Prospek Mandiri”
Wajok Hilir, penulis menguraikan beberapa kelemahan pada sistem yang berjalan,
diantaranya:
1. Pendaftaran anggota baru masih dengan cara mengisi nama anggota yang
ingin mendaftar dengan tulis tangan, dan kemudian dicatat kedalam buku
menyebabkan kesulitan dalam mencari data anggota.
2. Penyimpanan berupa arsip-arsip membuat pengurus kesulitan dalam mencari
data dan bahkan bisa menyebabkan arsip tersebut hilang.
3. Ketika anggota melakukan penyimpanan dan pembayaran angsuran,
bendahara harus menghitung dan menjumlahkan secara manual dengan
menggunakan kalkulator, dimana bendahara harus menulis dan juga hanya
mengisi ke Microsoft Excel tanpa menggunakan rumus perhitungan yang
harus dibayar oleh anggota ketika melakukan transaksi.
4. Dalam pembuatan laporan sering terjadi kesalahan dalam pencatatan laporan
keuangan maupun transaksi simpan pinjam anggota.
34
3.2.6 Pemecahan Masalah
Berdasarkan permasalahan yang ada dari hasil analisa diatas, maka
diperlukan solusi pemecah masalah terhadap permasalah tersebut, yaitu:
1. Dengan adanya rancang bangun sistem informasi akuntansi simpan pinjam
BUMDES “Prospek Mandiri” pendaftaran anggota baru serta dalam
pencarian data anggota sudah dilakukan dengan mengimput data yang
diperlukan.
2. Dengan adanya rancang bangun sistem informasi akuntansi simpan pinjam
BUMDES “Prospek Mandiri” penyimpanan data sudah tersimpan didalam
sebuah database. Sehingga data yang diperlukan mudah dicari dan tidak
terjadi kehilangan data karena data tersebut dapat di backup.
3. Dengan adanya rancang bangun sistem informasi akuntansi simpan pinjam
BUMDES “Prospek Mandiri” perhitungan transaksi simpan dan angsuran
dapat dilakukan secara otomatis tanpa harus menghitung dengan
menggunakan kalkulator.
4. Dengan adanya rancang bangun sistem informasi akuntansi simpan pinjam
BUMDES “Prospek Mandiri” laporan dapat dilakukan dengan mudah dengan
menginput bulan transaksi laporan yang diinginkan dan langsung bisa
dicetak. .
3.3 Analisa Kebutuhan Software
Analisa kebutuhan software merupakan langkah awal untuk menentukan
perangkat lunak yang dihasilkan perangkat lunak yang baik dan sesuai dengan
35
kebutuhan pengguna sangat tergantung kepada keberhasilan dalam melakukan
analisa kebutuhan. Jika terjadi kesalahan dalam analisa kebutuhan, maka
perangkat lunak yang dibuat menjadi tidak berguna dalam (Hidayat 2017).
Analisa kebutuhan yang baik belum tentu menghasilkan perangkat lunak
yang baik. Tetapi analisa kebutuhan yang tidak tepat sudah pasti menghasilkan
perangkat lunak yang yang tidak berguna. Kesalahan analisa kebutuhan yang
diketahui ketika sudah memasuki penulisan kode atau pengujian, bahkan hampir
pada tahap penyelesaian.
3.3.1 Analisa Kebutuhan
Berdasarkan dari analisa sistem yang di amati pada BUMDES “Prospek
Mandiri” Wajok Hilir yang merupakan badan usaha milik desa yang bergerak
dalam memberikan layanan khusus masyarakat desa Wajok Hilir dalam kegiatan
simpan pinjam. Terdapat kebutuhan dalam pengolaan data pendaftaran anggota,
transaksi simpan, transaksi pinjam, transaksi angsuran, dan menghasilkan sebuah
laporan. Sistem informasi simpan pinjam ini dirancang untuk dikelola dua
pengguna, yakni Bendahara dan Ketua. Analisa kebutuhan pengguna akan sistem
informasi simpan pinjam pada BUMDes “Prospek Mandiri” Wajok Hilir adalah
sebagai berikut:
A. Bendahara
A1. Bagian bendahara login.
A2. Bagian bendahara mengakses menu utama.
A3. Mengolah menu master
A.3.1. Data Anggota
36
A.3.2.Transaksi simpanan
A.3.3. Transaksi pinjaman
A.3.4. Transaksi angsuran
A4. Mengolah menu jurnal
A.4.1. Jurnal umum
A.4.2. Akun perkiraan
A.4.3. Kelompok akun
A5. Mengolah laporan.
A.5.1. Laporan simpanan
A.5.2. Laporan pinjaman
A.5.3. Laporan angsuran
A6. Mengolah menu laporan keuangan
A.6.1 Laporan jurnal umum
A.6.2 Laporan buku besar
A7.Mengolah menu setting
A.7.1 Setting user
B. Ketua
B1. Bagian ketua login.
B2. Bagian ketua dapat memeriksa dan melihat semua laporan
B.2.1. Laporan simpanan
B.2.2. Laporan pinjaman
B.2.3. Laporan angsuran
B3. Melihat menu laporan keuangan
B.3.1. Laporan jurnal umum
37
B.3.2. Laporan buku besar
B4. Mengolah menu setting
B.4.1 Setting user
3.3.2 Use Case Diagram
Use Case Diagram adalah gambaran graphical dari beberapa atau semua
actor, use case, dan interaksi diantaranya yang memperkenalkan suatu sistem.
Gambar dibawah menjelaskan use case diagram bagian bendahara sebagai
berikut:
Sumber: Hasil Rancangan (2018)
Gambar III.6 Usa Case Diagram bagian bendahara
Bendahara dapat melakukan login pada sistem BUMDES “Prospek
Mandiri” Wajok Hilir Bendahara masuk ke menu login mengisi ussername dan
password, kemudian diverifikasi data.
38
Tabel III.1
Deskripsi Use Case Diagram
Use Case Narative Sistem Usulan
Tujuan Untuk mengolah data anggota,
transaksi simpanan, transaksi
pinjaman, transaksi angsuran, jurnal
umum, akun perkiraan, kelompok
akun, laporan simpanan laporan
pinjaman, laporan angsuran, serta
setting user.
Deskripsi Sistem yang dirancang memungkinkan
untuk mengelola data simpan pinjam
yang dimulai dari memasukkan data
sampai pengolahan laporan-laporan.
Skenario Utama
Aktor Bendahara
Kondisi awal Aktor membuka aplikasi simpan pinjam
BUMDes “Prospek Mandiri” Wajok
Hilir.
Aksi Aktor Reaksi Sistem
1. Aktor masuk ke sistem
2. Aktor mengelola data master
3. Aktor mengelola data
anggota
4. Aktor mengelola data
transaksi simpanan
5. Aktor mengelola data
transaksi pinjaman
6. Aktor Mengelola data
transaksi angsuran
7. Aktor mengolah data jurnal
8. Aktor mengolah data jurnal
umum
9. Aktor mengolah data akun
perkiraan
10. Aktor mengelolah data
kelompok akun
11. Aktor mencetak laporan
simpanan
12. Aktor Mencetak laporan
jurnal umum
13. Aktor Mencetak Laporan
pinjaman
14. Aktor Mencetak Laporan
Sistem akan menampilkan menu utama
Sistem akan menampilkan form master
Sistem akan menampilkan form data
anggota
Sistem akan menampilkan form
transaksi simpanan
Sistem akan menampilkan form
transaksi pinjman
Sistem akan Menampilkan form
transaksi angsuran
Sistem akan menampilkan form jurnal
Sistem akan menampilkan form jurnal
umum
Sistem akan menampilkan form akun
perkiraan
Sistem akan menampilkan form
kelompok akun
Sistem akan menampilkan form
Laporan simpanan
Sistem akan menampilkan form laporan
jurnal umum
Sistem akan menampilkan form laporan
pinjaman
Sistem akan menampilkan form
39
angsuran
15. Aktor Mencetak Laporan
Jurnal Umum
16. Aktor Mencetak Laporan
Buku besar
17. Aktor mengolah menu setting
user
Laporan angsuran
Sistem akan menampilkan form
Laporan jurnal umum
Sistem akan menampilkan form
Laporan buku besar
Sistem akan menampilkan menu setting
user
Kondisi Akhir Jika perintah sesuai maka sistem akan
menampilkan seperti yang diinginkan
oleh actor
Sumber: Hasil Rancangan (2018)
Gambar dibawah menjelaskan use case diagram bagian ketua sebagai
berikut:
Sumber: Hasil Rancangan (2018)
Gambar III.7 Usa Case Diagram bagian ketua
Ketua dapat melakukan login pada sistem BUMDes “Prospek Mandiri”
Wajok Hilir Bendahara masuk ke menu login mengisi ussername dan password,
kemudian diverifikasi data.
Tabel III.2
Deskripsi Use Case Diagram
Use Case Narative Sistem Usulan
Tujuan Untuk melihat atau mencetak data
Pembuatan Laporan jurnal umum,
laporan simpanan, laporan pinjaman,
laporan angsuran
Deskripsi Sistem yang dirancang memungkinkan
untuk melihat/ mencetak Laporan-
laporan dalam pembuatan laporan
40
simpan pinjam.
Skenario Utama
Aktor Ketua
Kondisi awal Aktor membuka aplikasi simpan pinjam
BUMDes “Prospek Mandiri” Wajok
Hilir
Aksi Aktor Reaksi Sistem
1. Aktor masuk ke system
2. Aktor melihat/mencetak
laporan simpanan
3. Aktor melihat/ mencetak
laporan pinjaman
4. Aktor melihat/mencetak
laporan angsuran
5. Aktor melihat/mencetak
laporan jurnal umum
6. Aktor melihat/mencetak
laporan buku besar
7. Aktor mengolah menu setting
user
Sistem akan menampilkan menu utama
Sistem akan menampilkan form laporan
simpanan
Sistem akan menampilkan form laporan
pinjaman
Sistem akan menampilkan form laporan
laporan angsuran
Sistem akan menampilkan form laporan
jurnal umum
Sistem akan menampilkan form laporan
buku besar
Sistem akan menampilkan form setting
user
Kondisi Akhir Jika perintah sesuai maka sistem akan
menampilkan seperti yang diinginkan
oleh actor
Sumber: Hasil Rancangan (2018)
3.3.3 Activity Diagram
Dibawah ini merupakan activity diagram usulan penulis yang dirancang sesuai
dengan program aplikasi Simpan Pinjam BUMDES “Prospek Mandiri” Wajok
Hilir.
1. Activity Diagram Menu Login
Didalam Activity Diagram menu login ini mencakup kegiatan login masuk
sistem simpan pinjam BUMDES “Prospek Mandiri” Wajok Hilir.
Aktor yang dapat melakukan kegiatan ini adalah bendahara dan ketua.
41
Sumber : Hasil Rancangan (2018)
Gambar III. 8 Activity Diagram Menu Login
Bendahara dan ketua melakukan login, masukkan ussername dan password
sistem akan mengecek ussername dan password, jika ussername dan password
salah akan tampil pesan dan kemudian kembali ke menu login.jika benar sistem
akan masuk ke bagian menu utama.
2. Activity Diagram Menu Utama
Didalam Activity Diagram menu utama ini mencakup seluruh kegiatan aktifitas
transaksi simpan pinjam, mulai dari data anggota, transaksi, dan jurnal umum.
Sama juga halnya dengan login, aktor yang dapat melakukan kegiatan ini
bendahara dan ketua.
42
Sumber : Hasil Rancangan (2018)
Gambar III.9 Activity Diagram Menu utama
Bendahara dan ketua masuk ke menu utama, didalam menu utama terdapat
beberapa menu dan diantaranya ada menu anggota, menu transaksi, dan menu
jurnal.
3. Activity Diagram Menu Data anggota
Didalam Activity Diagram menu data anggota ini mencakup kegiatan aktifitas
data anggota meliputi pendaftaran anggota. Aktor yang melakukan kegiatan ini
adalah bendahara dan ketua. Anggota hanya melengkapi persyaratan pendaftaran
anggota saja.
43
Sumber : Hasil Rancangan (2018)
Gambar III. 10 Activity Diagram Menu data anggota
Bendahara dan ketua masuk ke menu utama memilih menu data anggota,
di dalam data anggota terdapat tambah untuk menambah data dan kemudian
menyimpan data atau membatalkan simpanan data, dan edit untuk mengedit data,
serta hapus untuk menghapus data.
4. Activity Diagram Menu Transaksi Simpan
Didalam Activity Diagram menu transaksi simpan ini meliputi kegiatan
transaksi simpanan yang dilakukan anggota. Aktor yang dapat melakukan kegiatan
44
ini adalah ketua dan bendahara. Anggota hanya dapat melakukan simpanan tanpa
dapat mengakses sistem ini.
Sumber : Hasil Rancangan (2018)
Gambar III. 11 Activity Diagram transaksi simpanan
Bendahara dan ketua masuk ke menu utama memilih menu transaksi
simpan, didalam transaksi simpan terdapat tambah untuk menambah data dan
kemudian menyimpan data atau membatalkan simpanan data, serta hapus untuk
menghapus data.
5. Activity Diagram Menu Transaksi Pinjaman
45
Didalam Activity Diagram menu transaksi pinjaman ini meliputi kegiatan
transaksi pinjaman yang dilakukan anggota. Aktor yang dapat melakukan kegiatan
ini adalah ketua dan bendahara. Anggota hanya dapat melakukan pinjaman tanpa
dapat mengakses sistem ini.
Sumber : Hasil Rancangan (2018)
Gambar III. 12 Activity Diagram transaksi pinjaman
Bendahara dan ketua masuk ke menu utama memilih menu transaksi
pinjam, didalam transaksi pinjam terdapat tambah untuk menambah data dan
46
kemudian menyimpan data atau membatalkan simpanan data, edit untuk mengedit
data, serta hapus untuk menghapus data.
6. Activity Diagram Menu Transaksi Angsuran
Didalam Activity Diagram menu transaksi pembayaran angsuran ini
meliputi kegiatan transaksi pembayaran angsuran yang dilakukan anggota. Aktor
yang dapat melakukan kegiatan ini adalah ketua dan bendahara. Anggota hanya
dapat melakukan pembayaran angsuran tanpa dapat mengakses sistem ini.
Sumber : Hasil Rancangan (2018)
Gambar III. 13 Activity Diagram transaksi angsuran
Bendahara dan ketua masuk ke menu utama memilih menu transaksi
angsuran, didalam transaksi angsuran terdapat tambah untuk menambah data dan
47
kemudian menyimpan data atau membatalkan simpanan data dan edit untuk
mengedit data, serta hapus untuk menghapus data.
8. Activity Diagram transaksi laporan
Didalam Activity Diagram menu transaksi laporan ini meliputi kegiatan
melihat laporan semua transaksi dan mencetak laporan transaksi. Aktor yang
dapat melakukan kegiatan ini adalah ketua dan bendahara.
Sumber : Hasil Rancangan (2018)
Gambar III. 14 Activity Diagram transaksi laporan
Bendahara dan ketua masuk ke menu utama memilih menu laporan,
didalam laporan terdapat pilihan laporan simpanan, pinjaman, angsuran, jurnal.
48
Kemudian bendahara dan ketua mengimput data pilihan laporan yang akan
dicetak.
8. Activity Diagram laporan jurnal umum
Didalam Activity Diagram menu laporan jurnal umum ini meliputi
kegiatan mencetak laporan jurnal umum. Aktor yang dapat melakukan kegiatan ini
adalah ketua dan bendahara.
Sumber : Hasil Rancangan (2018)
Gambar III. 15 Activity Diagram laporan jurnal umum
Bendahara dan ketua masuk ke menu utama memilih menu laporan
keuangan, didalam laporan terdapat pilihan laporan jurnal umum dan buku besar.
Kemudian bendahara dan ketua mengimput data pilihan laporan yang akan
dicetak.
49
9. Activity Diagram laporan Buku besar
Didalam Activity Diagram menu laporan buku besar ini meliputi kegiatan
mencetak laporan buku besar. Aktor yang dapat melakukan kegiatan ini adalah
ketua dan bendahara.
Sumber : Hasil Rancangan (2018)
Gambar III. 16 Activity Diagram laporan buku besar
Bendahara dan ketua masuk ke menu utama memilih menu laporan
keuangan, didalam laporan terdapat pilihan laporan jurnal umum dan buku besar.
Kemudian bendahara dan ketua mengimput data pilihan laporan yang akan
dicetak.
50
10. Activity Diagram setting user
Didalam Activity Diagram menu setting user ini meliputi kegiatan setting
user yang berisikan pengubahan data user yang akan menggunakan aplikasi. Aktor
yang dapat melakukan kegiatan ini adalah ketua dan bendahara.
Sumber : Hasil Rancangan (2018)
Gambar III. 17 Activity Diagram Setting user
Bendahara dan ketua masuk ke menu utama memilih menu setting didalam
laporan terdapat pilihan menu setting user. Kemudian bendahara dan ketua
mengimput data user yang hendak diubah.
51
3.4 Desain
Adapun desain merupakan perencanaan dalam pembuatan sebuah objek
sistem komponen dan struktur. Sedangkan kata desain dapat digunakan sebagai
kata benda maupun kata kerja, dalam artian yang lebih luas, desain merupakan
seni terapan dan rekayasa yang berintegrasi dengan teknologi.
3.4.1 Entity Relationship Diagram (ERD)
Didalam Entity Relationship Diagram (ERD) ini mencakup seluruh
kegiatan aktifitas sistem yang diusulkan di BUMDES “Prospek Mandiri” Wajok
Hilir.
Sumber : Hasil Rancangan (2018)
Gambar III. 18 Entity Relationship Diagram (ERD)
52
3.4.2 Logical Record Structure (LRS)
Didalam Logical Record Structure (LRS) ini mencakup seluruh kegiatan
aktifitas sistem yang diusulkan di BUMDES “Prospek Mandiri” Wajok Hilir
Sumber : Hasil Rancangan (2018)
Gambar III.19 Logical Record Structure (LRS)
3.4.3 Spesifikasi File
Spesifikasi file akan menguraikan organisasi dokumen data yang
berbentuk file. Adapun Spesifikasi file perancangan sistem usulan simpan pinjam
pada BUMDes “Prospek Mandiri” sebagai berikut :
1. Spesifikasi File Data Anggota
Nama file : Data Anggota
Akronim : Data anggota.sql
Fungsi : Untuk mengolah data anggota
Tipe file : Master data
Organisasi file : Index Sequental
53
Akses File : Random
Panjang record : 825
Kunci file : id_anggota
Software : MySQL
Tabel III.3
Spesifikasi File data anggota
No Elemen Data Nama Field Tipe Panjang
Record Keterangan
1 id_anggota Id_anggota Int 11 Primary key
2 Nama_depan Nama_depan Varchar 100
3 Nama_belakang Nama_belakang Varchar 100
4 Jenis_kelamin Jenis_kelamin Varchar 1
5 Alamat Alamat Varchar 200
6 Telp Telp Varchar 14
7 File_kk Scan_kk Varchar 100
8 File_jaminan Scan_jaminan Varchar 100
9 File_ktp Scan_ktp Varchar 100
10 Foto Foto Varchar 100
11 Saldo Saldo Int 0
12 Hutang Hutang Int 0
13 Delete Delete Int 0
Sumber: Hasil Rancangan (2018)
2. Spesifikasi File Transaksi Simpananan
Nama file : Transaksi simpanan
Akronim : Transaksi simpanan.sql
Fungsi : Untuk mengelolah data transaksi simpanan
Tipe file : Master data
Organisasi file : Index Sequental
Akses File : Random
Panjang record : 46
Kunci file : id_tabungan
Software : MySQL
54
Tabel III.4
Spesifikasi File Transaksi simpananan
No Elemen
Data Nama Field Tipe
Panjang
Record Keterangan
1 Id_tabungan Id_tabungan Int 11 Primary key
2 Id_anggota Id_anggota Int 11 FK
3 User_id User_id Int 11 FK
4 Tgl_simpan Tgl_simpan Date
5 Jumlah Jumlah Int 11
6 Keterangan Keterangan Text
7 Type Type Int 1
8 deleted Deleted Int 1
Sumber: Hasil Rancangan (2018)
3. Spesifikasi File Transaksi pinjaman
Nama file : Transaksi pinjaman
Akronim : Transaksi pinjaman.sql
Fungsi : Mengolah data pinjaman
Tipe file : Master data
Organisasi file : Index Sequental
Akses File : Random
Panjang record : 68
Kunci file : id_pinjaman
Software : MySQL
Tabel III.5
Spesifikasi File transaksi pinjaman
No Elemen
Data Nama Field Tipe
Panjang
Record Keterangan
1 Id_pinjam Id_pinjam Int 11 Primary key
2 Id_anggota Id_anggota Int 11 FK
3 User_id User_id Int 11 FK
4 Tgl_pinjam Tgl_pinjam Date
5 Tgl_tempo Tgl_tempo Date
6 Jumlah Jumlah Int 11
7 Angsuran Angsuran Int 11
8 Denda Denda Int 11
9 Keterangan Keterangan Text
55
10 Status Status Int 1
11 Deleted Deleted Int 1
Sumber: Hasil Rancangan (2018)
4. Spesifikasi File Transaksi Angsuran
Nama file : Transaksi angsuran
Akronim : Transaksi angsuran.sql
Fungsi : Untuk mengolah data angsuran
Tipe file : Master data
Organisasi file : Index Sequental
Akses File : Random
Panjang record : 72
Kunci file : id_angsuran
Software : MySQL
Tabel III.6
Spesifikasi File transaksi angsuran
No Elemen
Data Nama Field Tipe
Panjang
Record Keterangan
1 Id_angsuran Id_angsuran Int 11 Primary key
2 Id_pinjam Id_pinjam Int 11 FK
3 User_id User_id Int 11 FK
4 Tgl_bayar Tgl_bayar Date
5 Tempo Tempo Date
6 Angsuran_ke Angsuran_ke Int 5
7 Bayar Bayar Int 11
8 Total_denda Total_denda Int 11
9 Total_bayar Total_bayar Int 11
10 Info Info Text
11 Deleted Deleted Int 1
Sumber: Hasil Rancangan (2018)
5. Spesifikasi File user
Nama file : User
Akronim : User.sql
Fungsi : Untuk mengolah data user
56
Tipe file : Master data
Organisasi file : Index Sequental
Akses File : Random
Panjang record : 706
Kunci file : user_id
Software : MySQL
Tabel III.7
Spesifikasi File user
No Elemen
Data Nama Field Tipe
Panjang
Record Keterangan
1 User_id User_id Int 11 Primary key
2 Username Username Varchar 50
3 Password Password Varchar 100
4 First_name First_name Varchar 100
5 Last_name Last_name Varchar 100
6 Gender Gender Varchar 1
7 Address Addres Varchar 100
8 City City Varchar 100
9 Phone Phone Varchar 13
10 Email Email Varchar 13
11 Foto Foto Varchar 100
12 Level Level Varchar 5
13 Saldo Saldo Int 11
14 Deleted Deleted Int 1
Sumber: Hasil Rancangan (2018)
6. Spesifikasi File perkiraan
Nama file : Perkiraan
Akronim : Perkiraan.sql
Fungsi : Untuk mengelolah data perkiraan
Tipe file : Master data
Organisasi file : Index Sequental
Akses File : Random
Panjang record : 96
57
Kunci file : id_perkiraan
Software : MySQL
Tabel III.8
Spesifikasi File perkiraan
No Elemen Data Nama Field Tipe Panjang
Record
Keteran
gan
1 Id_perkiraan Id_perkiraan Int 10 Primary
key
2 Id_perkiraan_group Id_perkiraan_group Int 10 FK
3 Nomor_akun Nomor_akun Char 5
4 Nama_perkiraan Nama_perkiraan Varchar 50
5 Keterangan Keterangan Tinytex
t
6 Saldo_awal Saldo_awal varchar 20
7 Deleted Deleted Int 1
Sumber: Hasil Rancangan (2018)
7. Spesifikasi File perkiraan_group
Nama file : Perkiraan group
Akronim : Perkiraangroup.sql
Fungsi : Untuk mengelolah data perkiraan group
Tipe file : Master data
Organisasi file : Index Sequental
Akses File : Random
Panjang record : 61
Kunci file : id_perkiraan_group
Software : MySQL
Tabel III.9
Spesifikasi File perkiraan group
No Elemen Data Nama Field Tipe Panjang
Record Keterangan
1 Id_perkiraan_group Id_perkiraan_group Int 10 Primary key
2 Nama_pg Nama_pg Varchar 50
3 Deleted Deleted int 1
Sumber: Hasil Rancangan (2018)
58
8. Spesifikasi File ju_detail
Nama file : Ju_detail
Akronim : Judetail.sql
Fungsi : Untuk mengelolah data jumlah debet dan kredit
Tipe file : Master data
Organisasi file : Index Sequental
Akses File : Random
Panjang record : 70
Kunci file : id_detail
Software : MySQL
Tabel III.10
Spesifikasi File Ju_detail
No Elemen Data Nama Field Tipe Panjang
Record Keterangan
1 Id_detail Id_detail Int 10 Primary key
2 Id_coa Id_coa int 10
3 Id_header Id_header int 10 FK
4 Debet Debet Varchar 20
5 Kredit Kredit Varchar 20
Sumber: Hasil Rancangan (2018)
9. Spesifikasi File ju_header
Nama file : Ju_header
Akronim : Juheader.sql
Fungsi : Untuk mengelolah jurnal umum
Tipe file : Master data
Organisasi file : Index Sequental
Akses File : Random
Panjang record : 310
Kunci file : id_header
59
Software : MySQL
Tabel III.11
Spesifikasi File ju-header
No Elemen Data Nama Field Tipe Panjang
Record Keterangan
1 Id_header Id_header Int 10 Primary key
2 Id_tabungan Id_tabungan Int 11 FK
3 Id_pinjaman Id_pinjaman Int 11 FK
4 Id_angsuran Id_angsuran Int 11 FK
5 User_id User_id Int 11 FK
6 Tgl_transaksi Tgl_transaksi Date
7 Uraian Uraian Varchar 255
8 Stt Stt Enum 1
9 Tanggal_input Tanggal_input Deletime 0
Sumber: Hasil Rancangan (2018)
10. Spesifikasi File sessions
Nama file : Sessions
Akronim : Sessions.sql
Fungsi : Untuk mengatur jalannya framwork CI
Tipe file : Master data
Organisasi file : Index Sequental
Akses File : Random
Panjang record : 226
Kunci file : session_id
Software : MySQL
Tabel III.12
Spesifikasi File sessions
No Elemen Data Nama Field Tipe Panjang
Record Keterangan
1 Session_id Session_id Varchar 40 Primary key
2 Ip_address Ip_address Varchar 16
3 User_agent User_agent Varchar 120
4 Last_activity Last_activity Int 10
5 User_data User_data Text
Sumber: Hasil Rancangan (2018)
60
3.4.4 Sequence Diagram
Sequence diagram merupakan sekumpulan pernyataan yang
menggambarkan komponen perangkat lunak dan fungsi-fungsi yang ada pada
komponen tersebut. Sequence diagram menggambarkan struktur teknis, batasan-
batasan, ciri-ciri serta antarmuka pada komponen-komponen tersebut.
Berikut ini sequence diagram yang penulis usulkan untuk BUMDE
“Prospek Mandiri” Wajok Hilir:
Sumber: Hasil Rancangan (2018)
Gambar III. 20 Sequence diagram menu login
3.4.5 Deploymet Diagram
Deployment diagram salah satu jenis alat atau bahasa (UML) yang
digunakan untuk memvisualisasikan, menspesifikasikan, dan mendokumentasikan
proses yang terjadi pada suatu sistem perangkat lunak yang akan dibangun.
61
Sumber : Hasil Rancangan (2018)
Gambar III.21 Deployment diagram
3.4.6 User Interface
User Interface bagian dari komputer dan software yang orang-orang dapat
lihat,dengar,sentuh,berbicara, atau sebaliknya, dapat mengerti atau mengarahkan.
User interface mempunyai dua element penting: input dan output.
1. Rancangan Program Login
Gambar dibawah merupakan tampilan dari menu login:
Sumbe: Hasil Rancangan (2018)
Gambar III.22 From Login
62
2. Rancangan Program Menu Utama
Gambar dibawah merupakan tampilan dari menu utama:
Sumbe: Hasil Rancangan (2018)
Gambar III. 23 Form Menu utama
3. Rancangan Program Menu Master
Gambar dibawah merupakan tampilan dari menu master:
Sumbe: Hasil Rancangan (2018)
Gambar III.24 Form Menu Master
4. Rancangan Program Menu Data Anggota
Gambar dibawah merupakan tampilan dari menu anggota:
63
Sumbe: Hasil Rancangan (2018)
Gambar III.25 Form Menu Data anggota
5. Rancangan Program Menu Transaksi Tabungan
Gambar dibawah merupakan tampilan dari menu tabungan:
Sumbe: Hasil Rancangan (2018)
Gambar III.26 Form Menu Transaksi tabungan
6. Rancangan Program Menu Transaksi Pinjaman
Gambar dibawah merupakan tampilan dari menu transaksi pinjaman:
64
Sumbe: Hasil Rancangan (2018)
Gambar III. 27 Form Menu Transaksi Pinjaman
7. Rancangan Program Menu Transaksi Angsuran
Gambar dibawah merupakan tampilan dari menu transaksi angsuran:
Sumbe: Hasil Rancangan (2018)
Gambar III.28 Form Menu Transaksi Angsuran
8. Rancangan Program Menu Jurnal
Gambar dibawah merupakan tampilan dari Menu Jurnal umum
65
Sumbe:
Hasil Rancangan (2018)
Gambar III.29 Form Menu Jurnal Umum
9 . Rancangan Program Menu Akun Perkiraan
Gambar dibawah merupakan tampilan dari menu akun perkiraan:
Sumbe: Hasil Rancangan (2018)
Gambar III.30 Form Menu Akun perkiraan
10. Rancangan Program Menu Kelompok Akun
Gambar dibawah merupakan tampilan dari menu kelompok akun:
Sumbe: Hasil Rancangan (2018)
Gambar III. 31 Form Menu Kelompok Akun
66
11. Rancangan Program Menu Laporan Simpanan
Gambar dibawah merupakan tampilan dari menu laporan simpanan:
Sumbe: Hasil Rancangan (2018)
Gambar III.32 Form Menu Laporan Simpanan
12. Rancangan Program Menu Laporan Pinjaman
Gambar dibawah merupakan tampilan dari menu laporan pinjaman:
Sumbe: Hasil Rancangan (2018)
Gambar III.33 Form Menu Laporan pinjaman
13. Rancangan Program Menu Laporan Angsuran
Gambar dibawah merupakan tampilan dari menu laporan angsuran:
67
Sumbe: Hasil Rancangan (2018)
Gambar III.34 Form Menu Laporan Angsuran
14. Rancangan Program Menu Setting User
Gambar dibawah merupakan tampilan dari menu setting user:
Sumbe: Hasil Rancangan (2018)
Gambar III.35 Form Menu Setting User
15. Tampilan Cetak Laporan Transaksi Simpanan
Gambar dibawah merupakan tampilan dari laporan cetak transaksi
simpanan:
68
Sumbe: Hasil Rancangan (2018)
Gambar III.36 Form Cetak laporan simpanan
16. Tampilan Cetak Laporan Transaksi Pinjaman
Gambar dibawah merupakan tampilan dari laporan cetak transaksi
pinjaman:
Sumbe: Hasil Rancangan (2018)
Gambar III. 37 Form Cetak laporan pinjaman
17. Tampilan Cetak Laporan Transaksi Angsuran
Gambar dibawah merupakan tampilan dari laporan cetak transaksi
angsuran:
69
Sumbe: Hasil Rancangan (2018)
Gambar III.38 Form Cetak laporan angsuran
18. Tampilan Cetak Laporan Jurnal Umum
Gambar dibawah merupakan tampilan dari laporan cetak jurnal umum:
Sumbe: Hasil Rancangan (2018)
Gambar III.39 Form Cetak laporan jurnal umum
19. Tampilan Cetak Laporan Buku Besar
Gambar dibawah merupakan tampilan dari laporan cetak buku besar:
Sumbe: Hasil Rancangan (2018)
Gambar III. 40 Form Cetak laporan Buku Besar
70
3.5 Implementasi
Suatu proses untuk menempatkan sistem informasi baru kedalam sistem
yang sudah ada. Tahapan impelementasi adalah tahapan penerapan sistem untuk
dioperasikan. Pada tahapan ini dijelaskan mengenai sistem yang dirancang serta
bagaimana cara penggunaannya (Wijianto et al. 2018) .
3.5.1 Code Generation
A. Transaksi simpanan
1. Controllers
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Tabungan extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->is_login();
}
public function is_login(){
$user_id = $this->session->userdata('user_id');
if(empty($user_id)){
redirect('admin');
}
}
public function index()
{
$this->show();
}
public function show(){
$alert = $this->session->flashdata('alert');
if(!empty($alert)){
$data['alert'] = $alert;
}
71
$data['tabungan'] = $this->m_tabungan->ambil_tabungan()-
>result();
$this->load->view('tabungan/show',$data);
}
public function add(){
$data['type'] = array(
'' => '--BELUM DIPILIH--',
'1'=> 'TABUNG',
'2'=>'TARIK'
);
$perkiraan = $this->m_perkiraan->get_all_perkiraan();
$perkiraan_options = array();
$perkiraan_options['']='--BELUM DIPILIH--';
if($perkiraan->num_rows() > 0){
foreach ($perkiraan->result_array() as $row) {
$perkiraan_options[$row['id_perkiraan']] =
strtoupper($row['nama_perkiraan']);
}
}
$data['perkiraan_options'] = $perkiraan_options;
$this->load->view('tabungan/add',$data);
}
public function edit($id_tabungan){
$data['type'] = array(
'' => '--BELUM DIPILIH--',
'1'=> 'TABUNG',
'2'=>'TARIK'
);
$data['tabungan'] = $this->m_tabungan-
>ambil_data_tabungan($id_tabungan)->row();
$this->load->view('tabungan/edit', $data);
}
public function findanggota(){
$keyword = $this->input->get('term');
$data = $this->m_anggota->find_anggota($keyword);
72
foreach($data->result() as $result)
{
$arr[] = array(
'label' =>strtoupper($result->nama_depan.'
'.$result->nama_belakang),
'value' =>$result->id_anggota
);
}
echo json_encode($arr);
}
public function save(){
$user_id = $this->session->userdata('user_id');
$jumlah = $this->input->post('jumlah');
$id_anggota = $this->input->post('id_anggota');
$type = $this->input->post('type');
$keterangan = $this->input->post('keterangan');
$tanggal = date('Y-m-d',strtotime($this->input-
>post('tgl_simpan')));
$debet = $this->input->post('debet');
$kredit = $this->input->post('kredit');
$akun_debet = $this->m_perkiraan->get_perkiraan($debet)-
>row();
$saldo_awal_debet = $akun_debet->saldo_awal;
$akun_kredit = $this->m_perkiraan->get_perkiraan($kredit)-
>row();
$saldo_awal_kredit = $akun_kredit->saldo_awal;
$saldo_debet = $saldo_awal_debet + $jumlah;
$saldo_kredit = $saldo_awal_kredit - $jumlah;
$anggota = $this->m_anggota->ambil_data_anggota($id_anggota)-
>row();
$saldo = $anggota->saldo;
if($type == 1){
$total = $jumlah + $saldo;
}elseif($type == 2 AND $saldo >= $jumlah){
$total = $saldo - $jumlah;
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Disimpan',
'type' => 'danger',
73
'icon' => 'glyphicon glyphicon-remove'
);
$this->session->set_flashdata('alert', $alert);
redirect('tabungan');
}
$data_tabungan = array(
'id_anggota' => $id_anggota,
'user_id' => $user_id,
'tgl_simpan' => $tanggal,
'jumlah' => $jumlah,
'type' => $type,
'keterangan' => $keterangan
);
$id_tabungan = $this->m_tabungan->save($data_tabungan);
if($id_tabungan > 0){
$this->m_anggota->update_tabung($id_anggota,$total);
$data_jurnal = array(
'id_tabungan'=>$id_tabungan,
'user_id'=>$user_id,
'tanggal_transaksi'=>$tanggal,
'uraian'=>$keterangan
);
$id_header = $this->m_jurnal_umum-
>save_header($data_jurnal);
if($id_header > 0){
$data_debet = array(
'id_header'=>$id_header,
'id_coa'=>$debet,
'debet'=>$jumlah,
);
$id_detil = $this->m_jurnal_umum-
>save_detil($data_debet);
if($id_detil > 0){
$data_kredit = array(
'id_header'=>$id_header,
'id_coa'=>$kredit,
'kredit'=>$jumlah
);
if($this->m_jurnal_umum-
>save_detil($data_kredit) > 0){
74
$this->m_jurnal_umum-
>update_saldo($debet,$saldo_debet);
$this->m_jurnal_umum-
>update_saldo($kredit,$saldo_kredit);
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Berhasil
Disimpan',
'type' => 'success',
'icon' => 'glyphicon
glyphicon-ok'
);
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Kredit
Gagal Disimpan',
'type' => 'danger',
'icon' => 'glyphicon
glyphicon-remove'
);
}
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Debet Gagal
Disimpan',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-
remove'
);
}
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Jurnal Gagal Disimpan',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Disimpan',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
75
$this->session->set_flashdata('alert', $alert);
redirect('tabungan');
}
public function update(){
$user_id = $this->session->userdata('user_id');
$jumlah = $this->input->post('jumlah');
$id_anggota = $this->input->post('id_anggota');
$id_tabungan = $this->input->post('id_tabungan');
// $anggota = $this->m_anggota-
>ambil_data_anggota($id_anggota)->row();
// $saldo = $anggota->saldo;
// $total = $jumlah + $saldo;
$data_tabungan = array(
'id_anggota' => $this->input->post('id_anggota'),
'user_id' => $user_id,
'tgl_simpan' => date('Y-m-d',strtotime($this->input-
>post('tgl_simpan'))),
'jumlah' => $jumlah,
'keterangan' => $this->input->post('keterangan'),
);
if($this->m_tabungan->update($id_tabungan,$data_tabungan) >
0){
//$this->m_anggota->update_tabung($id_anggota,$total);
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Berhasil Disimpan',
'type' => 'success',
'icon' => 'glyphicon glyphicon-ok'
);
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Disimpan',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
$this->session->set_flashdata('alert', $alert);
76
redirect('tabungan');
}
public function form_delete($id_tabungan){
$perkiraan = $this->m_jurnal_umum-
>get_ju_detil_perkiraan($id_tabungan);
$perkiraan_options = array();
$perkiraan_options['']='--BELUM DIPILIH--';
if($perkiraan->num_rows() > 0){
foreach ($perkiraan->result_array() as $row) {
$perkiraan_options[$row['id_perkiraan']] =
strtoupper($row['nama_perkiraan']);
}
}
$data['perkiraan_options'] = $perkiraan_options;
$data['id_tabungan'] = $id_tabungan;
$this->load->view('tabungan/delete', $data);
}
public function delete(){
$id_tabungan = $this->input->post('id_tabungan');
$debet = $this->input->post('debet');
$kredit = $this->input->post('kredit');
$tabungan = $this->m_tabungan-
>ambil_data_tabungan($id_tabungan)->row();
$id_anggota = $tabungan->id_anggota;
$type = $tabungan->type;
$jumlah = $tabungan->jumlah;
$anggota = $this->m_anggota->ambil_data_anggota($id_anggota)-
>row();
$saldo = $anggota->saldo;
if($type == 1){
$total = $jumlah - $saldo;
}elseif($type == 2){
$total = $saldo + $jumlah;
}
$akun_debet = $this->m_perkiraan->get_perkiraan($debet)-
>row();
$saldo_awal_debet = $akun_debet->saldo_awal;
77
$akun_kredit = $this->m_perkiraan->get_perkiraan($kredit)-
>row();
$saldo_awal_kredit = $akun_kredit->saldo_awal;
$saldo_debet = $saldo_awal_debet + $jumlah;
$saldo_kredit = $saldo_awal_kredit - $jumlah;
if($this->m_tabungan->delete($id_tabungan) > 0){
$this->m_anggota->update_tabung($id_anggota,$total);
$this->m_jurnal_umum-
>update_saldo($debet,$saldo_debet);
if($this->m_jurnal_umum-
>update_saldo($kredit,$saldo_kredit) > 0){
$this->m_jurnal_umum-
>delete_header($id_tabungan);
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Berhasil Dihapus',
'type' => 'success',
'icon' => 'glyphicon glyphicon-ok'
);
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Dihapus',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Dihapus',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
$this->session->set_flashdata('alert', $alert);
redirect('tabungan');
}
78
}
/* End of file tabungan.php */
/* Location: ./application/controllers/tabungan.php */
2. Models
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_tabungan extends CI_Model {
function ambil_tabungan(){
$this->db->where('tabungan.deleted', 0);
$this->db->join('anggota', 'anggota.id_anggota =
tabungan.id_anggota');
$this->db->join('user', 'user.user_id = tabungan.user_id');
return $this->db->get('tabungan');
}
function ambil_data_tabungan($id_tabungan){
$this->db->where('id_tabungan', $id_tabungan);
return $this->db->get('tabungan');
}
function ambil_tabungan_laporan($id_anggota,$tgl_awal,$tgl_akhir){
$this->db->where('tabungan.deleted', 0);
$this->db->join('anggota', 'anggota.id_anggota =
tabungan.id_anggota');
$this->db->join('user', 'user.user_id = tabungan.user_id');
$this->db->where('tabungan.id_anggota', $id_anggota);
$this->db->where('tgl_simpan >=', $tgl_awal);
$this->db->where('tgl_simpan <=', $tgl_akhir);
return $this->db->get('tabungan');
}
function ambil_tabungan_laporan_harian($tgl_awal,$tgl_akhir){
$this->db->where('tabungan.deleted', 0);
$this->db->join('anggota', 'anggota.id_anggota =
tabungan.id_anggota');
$this->db->join('user', 'user.user_id = tabungan.user_id');
$this->db->where('tgl_simpan >=', $tgl_awal);
$this->db->where('tgl_simpan <=', $tgl_akhir);
return $this->db->get('tabungan');
}
function update($id_tabungan,$data_tabungan){
79
$this->db->where('id_tabungan', $id_tabungan);
$this->db->update('tabungan', $data_tabungan);
return $this->db->affected_rows();
}
function save($data_tabungan){
$this->db->insert('tabungan', $data_tabungan);
if($this->db->affected_rows() > 0){
return $this->db->insert_id();
}else{
return 0;
}
}
function delete($id_tabungan){
$this->db->where('id_tabungan', $id_tabungan);
$this->db->update('tabungan', array('deleted'=>1));
return $this->db->affected_rows();
}
}
/* End of file m_tabungan.php */
/* Location: ./application/models/m_tabungan.php */
3. Views
a). Add
<?php
$this->load->view('header');
$this->load->view('menu_admin');
?>
<div class="container">
<div class="container-fluid">
<div class="panel panel-primary panel-costome margin-atas
margin-samping">
<div class="panel-heading">
<h3 class="panel-title" align="center">INPUT
SETORAN</h3>
</div>
<div class="panel-body">
<div style="color:red;font-size:10px">Tanda *
Wajib Diisi</div>
<?php echo
form_open_multipart('tabungan/save',array('id'=>'form-tabungan')); ?>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="form-group">
<?php
80
echo '<span class="label-required">*
</span>'.form_label('ID ANGGOTA');
$id_anggota = array(
'name'=>'id_anggota',
'class'=>'form-control',
'id'=>'findanggota',
'placeholder'=>'Ketikkan
Nama Anggota / Kode Anggota',
);
echo form_input($id_anggota);
?>
</div>
<div class="form-group">
<?php echo '<span
style="color:red;">* </span>'.form_label('TANGGAL BAYAR :'); ?>
<div class='input-group date'
id='date_pay'>
<?php
$tgl = array(
'name'=>'tgl_simpan',
'class' => 'form-
control',
'value' =>
date('d/m/Y')
);
echo form_input($tgl);
?>
<span class="input-group-
addon">
<span
class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('JUMLAH');
$jumlah = array(
'name'=>'jumlah',
'class'=>'form-control',
'placeholder'=>'Masukan
jumlah setoran'
);
81
echo form_input($jumlah);
?>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('TIPE');
echo form_dropdown('type',
$type,'','class="form-control"');
?>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('DEBET');
echo form_dropdown('debet',
$perkiraan_options,'','class="form-control"');
?>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('KREDIT');
echo form_dropdown('kredit',
$perkiraan_options,'','class="form-control"');
?>
</div>
<div class="form-group">
<?php
echo form_label('KETERANGAN');
$keterangan = array(
'name'=>'keterangan',
'class'=>'form-control',
'placeholder'=>'Masukkan
nama informasi',
'style'=>'height:150px'
);
echo form_textarea($keterangan);
?>
</div>
<script type="text/javascript">
var loadFile = function(event){
82
var output =
document.getElementById('output');
output.src =
URL.createObjectURL(event.target.files[0]);
};
</script>
<?php
$simpan = array(
'class'=>'btn btn-primary',
'style'=>'margin-top:10px' ,
'value'=>'SIMPAN'
);
echo form_submit($simpan);
echo nbs(1);
echo anchor('tabungan',
'BATAL',array('class'=>'btn btn-danger', 'style'=>'margin-top:10px'));
echo form_close();
?>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#form-tabungan').bootstrapValidator({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-
remove',
validating:'glyphicon glyphicon-
refresh'
},
fields: {
id_anggota: {
validators: {
notEmpty: {
message: 'ID
anggota tidak boleh kosong'
}
}
},
nama_belakang: {
validators: {
regexp: {
regexp: /^[a-
z'\s]+$/i,
83
message:
'Hanya a-z dan kutip saja yang diperbolehkan'
}
}
},
tgl_simpan: {
validators: {
notEmpty: {
message:
'Tanggal Belum Dipilih'
}
}
},
jumlah: {
validators: {
integer:{
message:
'Jumlah Harus Angka'
},
notEmpty: {
message:
'Jumlah tidak boleh kosong'
}
}
},
telp: {
validators: {
regexp: {
regexp: /^[0-9-
\s]+$/i,
message:
'Hanya 0-9 saja yang diperbolehkan'
},
notEmpty: {
message: 'No
Telpon tidak boleh kosong'
}
}
},
debet: {
validators: {
notEmpty: {
message:
'Debet Tidak Boleh Kosong'
}
}
},
kredit: {
84
validators: {
notEmpty: {
message:
'Kredit Tidak Boleh Kosong'
}
}
},
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
// jquery-ui autocomplete
$( "#findanggota" ).autocomplete({
source: '<?php echo site_url('tabungan/findanggota');?>',
minLength:1
});
window.setTimeout(function() {
$(".alert").fadeTo(1000, 0).slideUp(500, function(){
$(this).remove();
});
}, 2000);
$('#date_pay').datetimepicker({
locale: 'id',
format: 'DD-MM-YYYY',
useCurrent : true
});
$('#jam_masuk').datetimepicker({
locale: 'id',
format: 'HH:mm',
});
$('#jam_keluar').datetimepicker({
locale: 'id',
format: 'HH:mm',
});
});
</script>
<?php $this->load->view('footer'); ?>
b). Delete
<?php
$this->load->view('header');
$this->load->view('menu_admin');
85
?>
<div class="container margin-atas">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">PILIH AKUN
PENYESUAIAN SEBELUM HAPUS</h3>
</div>
<div class="panel-body">
<?php echo
form_open_multipart('tabungan/delete',array('id'=>'form-tabungan')); ?>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('DEBET');
echo form_hidden('id_tabungan',
$id_tabungan);
echo form_dropdown('debet',
$perkiraan_options,'','class="form-control"');
?>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('KREDIT');
echo form_dropdown('kredit',
$perkiraan_options,'','class="form-control"');
?>
</div>
<script type="text/javascript">
var loadFile = function(event) {
var output =
document.getElementById('output');
output.src =
URL.createObjectURL(event.target.files[0]);
};
</script>
<hr>
<?php
$simpan = array(
'value'=>'PROSES',
'class'=>'btn btn-info btn-sm'
);
echo form_submit($simpan);
echo nbs(1);
86
echo anchor('tabungan', 'BATAL',
array('class'=>'btn btn-primary btn-sm'));
?>
</div>
<?php echo form_close(); ?>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#form-tabungan').bootstrapValidator({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
nama_pg: {
validators: {
regexp: {
regexp: /^[0-9a-
z'\s]+$/i,
message: 'Hanya a-z ,
spasi dan kutip saja yg diperbolehkan'
},
notEmpty: {
message: 'Nama
Kelompok Tidak Boleh Kosong'
}
}
},
debet: {
validators: {
notEmpty: {
message: 'Debet Tidak
Boleh Kosong'
}
}
},
kredit: {
validators: {
notEmpty: {
message: 'Kredit
Tidak Boleh Kosong'
}
}
},
87
}
});
});
</script>
<?php $this->load->view('footer'); ?>
c). Edit
<?php
$this->load->view('header');
$this->load->view('menu_admin');
?>
<div class="container">
<div class="container-fluid">
<div class="panel panel-primary panel-costome margin-atas
margin-samping">
<div class="panel-heading">
<h3 class="panel-title" align="center">INPUT
SETORAN</h3>
</div>
<div class="panel-body">
<div style="color:red;font-size:10px">Tanda *
Wajib Diisi</div>
<?php echo
form_open_multipart('tabungan/update',array('id'=>'form-tabungan')); ?>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="form-group">
<?php
echo '<span class="label-required">*
</span>'.form_label('ID ANGGOTA');
$id_anggota = array(
'name'=>'id_anggota',
'class'=>'form-control',
'id'=>'findanggota',
'placeholder'=>'Ketikkan
Nama Anggota / Kode Anggota',
'readonly'=>'readonly',
'value'=>$tabungan-
>id_anggota
);
echo form_hidden('id_tabungan',
$tabungan->id_tabungan);
echo form_input($id_anggota);
?>
</div>
<div class="form-group">
88
<?php echo '<span
style="color:red;">* </span>'.form_label('TANGGAL BAYAR :'); ?>
<div class='input-group date'
id='date_pay'>
<?php
$tgl = array(
'name'=>'tgl_simpan',
'class' => 'form-
control',
'value' =>
date('d/m/Y',strtotime($tabungan->tgl_simpan))
);
echo form_input($tgl);
?>
<span class="input-group-
addon">
<span
class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('JUMLAH');
$jumlah = array(
'name'=>'jumlah',
'class'=>'form-control',
'placeholder'=>'Masukan
jumlah setoran',
'readonly'=>'readonly',
'value'=>$tabungan->jumlah
);
echo form_input($jumlah);
?>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="form-group">
<?php
echo form_label('KETERANGAN');
$keterangan = array(
'name'=>'keterangan',
'class'=>'form-control',
89
'placeholder'=>'Masukkan
nama informasi',
'style'=>'height:150px',
'value'=>$tabungan-
>keterangan
);
echo form_textarea($keterangan);
?>
</div>
<script type="text/javascript">
var loadFile = function(event){
var output =
document.getElementById('output');
output.src =
URL.createObjectURL(event.target.files[0]);
};
</script>
<?php
$simpan = array(
'class'=>'btn btn-primary',
'style'=>'margin-top:10px' ,
'value'=>'SIMPAN'
);
echo form_submit($simpan);
echo nbs(1);
echo anchor('tabungan',
'BATAL',array('class'=>'btn btn-danger', 'style'=>'margin-top:10px'));
echo form_close();
?>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#form-tabungan').bootstrapValidator({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-
remove',
validating:'glyphicon glyphicon-
refresh'
},
fields: {
id_anggota: {
90
validators: {
notEmpty: {
message: 'ID
anggota tidak boleh kosong'
}
}
},
nama_belakang: {
validators: {
regexp: {
regexp: /^[a-
z'\s]+$/i,
message:
'Hanya a-z dan kutip saja yang diperbolehkan'
}
}
},
tgl_simpan: {
validators: {
notEmpty: {
message:
'Tanggal Belum Dipilih'
}
}
},
jumlah: {
validators: {
integer:{
message:
'Jumlah Harus Angka'
},
notEmpty: {
message:
'Jumlah tidak boleh kosong'
}
}
},
telp: {
validators: {
regexp: {
regexp: /^[0-9-
\s]+$/i,
message:
'Hanya 0-9 saja yang diperbolehkan'
},
notEmpty: {
message: 'No
Telpon tidak boleh kosong'
91
}
}
},
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
// jquery-ui autocomplete
$( "#findanggota" ).autocomplete({
source: '<?php echo site_url('tabungan/findanggota');?>',
minLength:1
});
window.setTimeout(function() {
$(".alert").fadeTo(1000, 0).slideUp(500, function(){
$(this).remove();
});
}, 2000);
$('#date_pay').datetimepicker({
locale: 'id',
format: 'DD-MM-YYYY',
useCurrent : true
});
$('#jam_masuk').datetimepicker({
locale: 'id',
format: 'HH:mm',
});
$('#jam_keluar').datetimepicker({
locale: 'id',
format: 'HH:mm',
});
});
</script>
<?php $this->load->view('footer'); ?>
d). Show
<?php
$this->load->view('header');
$this->load->view('menu_admin');
?>
<div class="margin-atas">
<div class="container-fluid">
<div class="panel panel-primary">
92
<div class="panel-heading">
<h3 class="panel-title">DATA TABUNGAN</h3>
</div>
<div class="panel-body">
<span class="pull-left" style="margin-bottom:
10px;">
<?php
echo anchor('tabungan/add', '<span
class="glyphicon glyphicon-plus"></span>', array('class'=>'btn btn-info btn-
sm','title'=>'Tambah Data'));
echo nbs(5);
?>
</span>
<span class="pull-left"><?php echo $this-
>pagination->create_links();?></span>
<!-- <span class="pull-right">
<?php
echo
form_open('employees/show',array('class'=>'form-inline'));
// <a class="btn btn-primary" data-toggle="modal"
href='#modal-id'>Trigger modal</a>
// echo 'Klik '.anchor('#modal-id', 'disini',
array('data-toggle'=>'modal')).' untuk melihat petunjuk pemakaian';
// echo nbs(2);
?>
<div class="form-group">
<?php
$search_item = array(
'name'=>'search_users',
'class'=>'form-control input-sm',
'placeholder'=>'Ketikkan Nama
Karyawan',
'size'=>'50',
'autocomplete'=>'off'
);
echo form_input($search_item);
?>
</div>
<?php
$simpan = array(
'name'=>'simpan',
'class'=>'btn btn-primary btn-sm',
'value'=>'CARI'
);
echo form_submit($simpan);
echo nbs(1);
echo anchor('employees/show', 'RESET',
array('class'=>'btn btn-warning btn-sm'));
93
echo form_close();
?>
</span> -->
<table id="tabel" class="table table-hover table-condensed
mytable sortable">
<thead>
<th>No</th>
<th>Nama Anggota</th>
<th>Tgl Setor</th>
<th>Jumlah</th>
<th>Petugas</th>
<th>Status</th>
<th>Keterangan</th>
<th data-defaultsort='disabled'>Aksi</th>
</thead>
<tbody>
<?php
if(!empty($tabungan)){
$no = 1;
foreach ($tabungan as $row) {
?>
<tr>
<td><?php echo
$no++;?></td>
<td><?php echo
strtoupper($row->nama_depan.' '.$row->nama_belakang);?></td>
<td><?php echo
date('d/m/Y',strtotime($row->tgl_simpan)); ?></td>
<td><?php echo 'Rp.
'.number_format($row->jumlah,0,',','.'); ?></td>
<td><?php echo
strtoupper($row->first_name.' '.$row->last_name); ?></td>
<td><?php
if($row->type
== 1){
echo
'TABUNG';
}else{
echo
'TARIK';
}
?></td>
<td><?php echo
word_limiter($row->keterangan,4); ?></td>
<td>
<?php
echo
anchor('tabungan/edit/'.$row->id_tabungan, '<span class="glyphicon glyphicon-
94
pencil"></span>', array('class'=>'btn btn-success btn-xs','title'=>'Edit Data '.$row-
>nama_depan));
echo nbs(1);
echo
anchor('tabungan/form_delete/'.$row->id_tabungan, '<span class="glyphicon
glyphicon-trash"></span>', array('class'=>'btn btn-primary btn-xs','title'=>'Hapus
Data '.$row->nama_depan));
?>
</td>
</tr>
<?php }
}else{ ?>
<tr><td colspan="8" align="center"
style="background-color:#FFFEC2">BELUM ADA DATA</td></tr>
<?php
} ?>
</tbody>
</table>
</div>
</div>
</div>
<?php $this->load->view('footer'); ?>
B. Transaksi pinjam
1. Controllers
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Pinjaman extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->is_login();
}
public function is_login(){
$user_id = $this->session->userdata('user_id');
if(empty($user_id)){
redirect('admin');
}
}
public function index()
95
{
$this->show();
}
public function findanggota(){
$keyword = $this->input->get('term');
$data = $this->m_anggota->find_anggota($keyword);
foreach($data->result() as $result)
{
$arr[] = array(
'label' =>strtoupper($result->nama_depan.'
'.$result->nama_belakang),
'value' =>$result->id_anggota
);
}
echo json_encode($arr);
}
public function show(){
$alert = $this->session->flashdata('alert');
if(!empty($alert)){
$data['alert'] = $alert;
}
$data['pinjaman'] = $this->m_pinjaman->ambil_pinjaman()-
>result();
$this->load->view('pinjaman/show',$data);
}
public function add(){
$perkiraan = $this->m_perkiraan->get_all_perkiraan();
$perkiraan_options = array();
$perkiraan_options['']='--BELUM DIPILIH--';
if($perkiraan->num_rows() > 0){
foreach ($perkiraan->result_array() as $row) {
$perkiraan_options[$row['id_perkiraan']] =
strtoupper($row['nama_perkiraan']);
}
}
$data['perkiraan_options'] = $perkiraan_options;
$this->load->view('pinjaman/add',$data);
96
}
public function edit($id_pinjam){
$data['pinjaman'] = $this->m_pinjaman-
>ambil_data_pinjaman($id_pinjam)->row();
$this->load->view('pinjaman/edit',$data);
}
public function save(){
$user_id = $this->session->userdata('user_id');
$jumlah = $this->input->post('jumlah');
$id_anggota = $this->input->post('id_anggota');
$tanggal = date('Y-m-d',strtotime($this->input-
>post('tgl_pinjam')));
$keterangan = $this->input->post('keterangan');
$debet = $this->input->post('debet');
$kredit = $this->input->post('kredit');
$akun_debet = $this->m_perkiraan->get_perkiraan($debet)-
>row();
$saldo_awal_debet = $akun_debet->saldo_awal;
$akun_kredit = $this->m_perkiraan->get_perkiraan($kredit)-
>row();
$saldo_awal_kredit = $akun_kredit->saldo_awal;
$saldo_debet = $saldo_awal_debet + $jumlah;
$saldo_kredit = $saldo_awal_kredit - $jumlah;
$anggota = $this->m_anggota->ambil_data_anggota($id_anggota)-
>row();
$hutang = $anggota->hutang;
$total = $jumlah + $hutang;
$data_pinjaman = array(
'id_anggota' => $this->input->post('id_anggota'),
'user_id' => $user_id,
'tgl_pinjam' => $tanggal,
'tgl_tempo' => date('Y-m-d',strtotime($this->input-
>post('tgl_tempo'))),
'jumlah' => $jumlah,
'angsuran' => $this->input->post('angsuran'),
97
'denda' => $this->input->post('denda'),
'keterangan' => $keterangan,
);
$id_pinjam = $this->m_pinjaman->save($data_pinjaman);
if($id_pinjam > 0){
$this->m_anggota->update_pinjam($id_anggota,$total);
$data_jurnal = array(
'id_pinjaman'=>$id_pinjam,
'user_id'=>$user_id,
'tanggal_transaksi'=>$tanggal,
'uraian'=>$keterangan
);
$id_header = $this->m_jurnal_umum-
>save_header($data_jurnal);
if($id_header > 0){
$data_debet = array(
'id_header'=>$id_header,
'id_coa'=>$debet,
'debet'=>$jumlah,
);
$id_detil = $this->m_jurnal_umum-
>save_detil($data_debet);
if($id_detil > 0){
$data_kredit = array(
'id_header'=>$id_header,
'id_coa'=>$kredit,
'kredit'=>$jumlah
);
if($this->m_jurnal_umum-
>save_detil($data_kredit) > 0){
$this->m_jurnal_umum-
>update_saldo($debet,$saldo_debet);
$this->m_jurnal_umum-
>update_saldo($kredit,$saldo_kredit);
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Berhasil
Disimpan',
'type' => 'success',
'icon' => 'glyphicon
glyphicon-ok'
);
}else{
98
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Kredit
Gagal Disimpan',
'type' => 'danger',
'icon' => 'glyphicon
glyphicon-remove'
);
}
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Debet Gagal
Disimpan',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-
remove'
);
}
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Jurnal Gagal Disimpan',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Disimpan',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
$this->session->set_flashdata('alert', $alert);
redirect('pinjaman');
}
public function update(){
$id_pinjam = $this->input->post('id_pinjam');
$user_id = $this->session->userdata('user_id');
$jumlah = $this->input->post('jumlah');
$data_pinjaman = array(
'id_anggota' => $this->input->post('id_anggota'),
'user_id' => $user_id,
99
'tgl_pinjam' => date('Y-m-d',strtotime($this->input-
>post('tgl_pinjam'))),
'tgl_tempo' => date('Y-m-d',strtotime($this->input-
>post('tgl_tempo'))),
'jumlah' => $jumlah,
'angsuran' => $this->input->post('angsuran'),
'denda' => $this->input->post('denda'),
'keterangan' => $this->input->post('keterangan'),
);
if($this->m_pinjaman->update($id_pinjam, $data_pinjaman) > 0){
//$this->m_anggota->update_pinjam($id_anggota,$total);
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Berhasil Disimpan',
'type' => 'success',
'icon' => 'glyphicon glyphicon-ok'
);
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Disimpan',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
$this->session->set_flashdata('alert', $alert);
redirect('pinjaman');
}
public function form_delete($id_pinjam){
$perkiraan = $this->m_jurnal_umum-
>get_ju_detil_perkiraan_pinjam($id_pinjam);
$perkiraan_options = array();
$perkiraan_options['']='--BELUM DIPILIH--';
if($perkiraan->num_rows() > 0){
foreach ($perkiraan->result_array() as $row) {
$perkiraan_options[$row['id_perkiraan']] =
strtoupper($row['nama_perkiraan']);
}
}
$data['perkiraan_options'] = $perkiraan_options;
$data['id_pinjam'] = $id_pinjam;
100
$angsuran = $this->m_angsuran->get_check_delete($id_pinjam)-
>num_rows();
if($angsuran > 0){
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Dihapus Karena Ada Data
Angsuran',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
$this->session->set_flashdata('alert', $alert);
redirect('pinjaman');
}else{
$this->load->view('pinjaman/delete', $data);
}
}
public function delete(){
$id_pinjam = $this->input->post('id_pinjam');
$debet = $this->input->post('debet');
$kredit = $this->input->post('kredit');
$pinjaman = $this->m_pinjaman-
>ambil_data_pinjaman($id_pinjam)->row();
$jumlah = $pinjaman->jumlah;
$id_anggota = $pinjaman->id_anggota;
$anggota = $this->m_anggota->ambil_data_anggota($id_anggota)-
>row();
$hutang = $anggota->hutang;
$total = $hutang - $jumlah;
$akun_debet = $this->m_perkiraan->get_perkiraan($debet)-
>row();
$saldo_awal_debet = $akun_debet->saldo_awal;
$akun_kredit = $this->m_perkiraan->get_perkiraan($kredit)-
>row();
$saldo_awal_kredit = $akun_kredit->saldo_awal;
$saldo_debet = $saldo_awal_debet + $jumlah;
101
$saldo_kredit = $saldo_awal_kredit - $jumlah;
if($this->m_pinjaman->delete($id_pinjam) > 0){
$this->m_anggota->update_pinjam($id_anggota,$total);
$this->m_jurnal_umum-
>update_saldo($debet,$saldo_debet);
if($this->m_jurnal_umum-
>update_saldo($kredit,$saldo_kredit) > 0){
$this->m_jurnal_umum-
>delete_header_pinjaman($id_pinjam);
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Berhasil Dihapus',
'type' => 'success',
'icon' => 'glyphicon glyphicon-ok'
);
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Dihapus',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
}else{
$alert = array(
'title' => 'INFO !<br>',
'message' => 'Data Gagal Dihapus',
'type' => 'danger',
'icon' => 'glyphicon glyphicon-remove'
);
}
$this->session->set_flashdata('alert', $alert);
redirect('pinjaman');
}
}
/* End of file pinjaman.php */
/* Location: ./application/controllers/pinjaman.php */
2. Models
102
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_pinjaman extends CI_Model {
function ambil_pinjaman(){
$this->db->where('pinjaman.deleted', 0);
$this->db->join('user', 'user.user_id = pinjaman.user_id');
$this->db->join('anggota', 'anggota.id_anggota =
pinjaman.id_anggota');
return $this->db->get('pinjaman');
}
function ambil_data_pinjaman($id_pinjam){
$this->db->where('id_pinjam', $id_pinjam);
return $this->db->get('pinjaman');
}
function ambil_pinjaman_laporan($id_anggota,$tgl_awal,$tgl_akhir){
$this->db->where('pinjaman.deleted', 0);
$this->db->join('anggota', 'anggota.id_anggota =
pinjaman.id_anggota');
$this->db->where('pinjaman.id_anggota', $id_anggota);
$this->db->where('tgl_pinjam >=', $tgl_awal);
$this->db->where('tgl_pinjam <=', $tgl_akhir);
return $this->db->get('pinjaman');
}
function ambil_pinjaman_laporan_harian($tgl_awal,$tgl_akhir){
$this->db->where('pinjaman.deleted', 0);
$this->db->join('anggota', 'anggota.id_anggota =
pinjaman.id_anggota');
$this->db->where('tgl_pinjam >=', $tgl_awal);
$this->db->where('tgl_pinjam <=', $tgl_akhir);
return $this->db->get('pinjaman');
}
function ambil_pinjaman_belum_lunas(){
$this->db->where('pinjaman.deleted', 0);
$this->db->where('status', 0);
$this->db->join('user', 'user.user_id = pinjaman.user_id');
$this->db->join('anggota', 'anggota.id_anggota =
pinjaman.id_anggota');
return $this->db->get('pinjaman');
}
function save($data_pinjaman){
$this->db->insert('pinjaman', $data_pinjaman);
103
if($this->db->affected_rows() > 0){
return $this->db->insert_id();
}else{
return 0;
}
}
function update($id_pinjam, $data_pinjaman){
$this->db->where('id_pinjam', $id_pinjam);
$this->db->update('pinjaman', $data_pinjaman);
return $this->db->affected_rows();
}
function delete($id_pinjam){
$this->db->where('id_pinjam', $id_pinjam);
$this->db->update('pinjaman', array('deleted'=>1));
return $this->db->affected_rows();
}
}
/* End of file m_pinjaman.php */
/* Location: ./application/models/m_pinjaman.php */
3. Views
a). Add
<?php
$this->load->view('header');
$this->load->view('menu_admin');
?>
<div class="container">
<div class="container-fluid">
<div class="panel panel-primary panel-costome margin-atas
margin-samping">
<div class="panel-heading">
<h3 class="panel-title" align="center">INPUT
PINJAMAN</h3>
</div>
<div class="panel-body">
<div style="color:red;font-size:10px">Tanda *
Wajib Diisi</div>
<?php echo
form_open_multipart('pinjaman/save',array('id'=>'form-tabungan')); ?>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="form-group">
<?php
104
echo '<span class="label-required">*
</span>'.form_label('ID ANGGOTA');
$id_anggota = array(
'name'=>'id_anggota',
'class'=>'form-control',
'id'=>'findanggota',
'placeholder'=>'Ketikkan
Nama Anggota / Kode Anggota',
);
echo form_input($id_anggota);
?>
</div>
<div class="form-group">
<?php echo '<span
style="color:red;">* </span>'.form_label('TANGGAL PINJAM :'); ?>
<div class='input-group date'
id='date_pay'>
<?php
$tgl = array(
'name'=>'tgl_pinjam',
'class' => 'form-
control',
'value' =>
date('d/m/Y')
);
echo form_input($tgl);
?>
<span class="input-group-
addon">
<span
class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="form-group">
<?php echo '<span
style="color:red;">* </span>'.form_label('TANGGAL TEMPO :'); ?>
<div class='input-group date'
id='date_tempo'>
<?php
$tgl = array(
'name'=>'tgl_tempo',
'class' => 'form-
control',
105
'value' =>
date('d/m/Y')
);
echo form_input($tgl);
?>
<span class="input-group-
addon">
<span
class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('JUMLAH');
$jumlah = array(
'name'=>'jumlah',
'class'=>'form-control',
'placeholder'=>'Masukan
jumlah Pinjaman'
);
echo form_input($jumlah);
?>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('ANGSURAN');
$angsuran = array(
'name'=>'angsuran',
'class'=>'form-control',
'placeholder'=>'Masukan
Angsuran Pinjaman'
);
echo form_input($angsuran);
?>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="form-group">
<?php
106
echo '<span style="color:red;">*
</span>'.form_label('DENDA');
$denda = array(
'name'=>'denda',
'class'=>'form-control',
'placeholder'=>'Masukan
Denda Pinjaman'
);
echo form_input($denda);
?>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('DEBET');
echo form_dropdown('debet',
$perkiraan_options,'','class="form-control"');
?>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('KREDIT');
echo form_dropdown('kredit',
$perkiraan_options,'','class="form-control"');
?>
</div>
<div class="form-group">
<?php
echo form_label('KETERANGAN');
$keterangan = array(
'name'=>'keterangan',
'class'=>'form-control',
'placeholder'=>'Masukkan
keterangan',
'style'=>'height:150px'
);
echo form_textarea($keterangan);
?>
</div>
<script type="text/javascript">
var loadFile = function(event){
var output =
document.getElementById('output');
107
output.src =
URL.createObjectURL(event.target.files[0]);
};
</script>
<?php
$simpan = array(
'class'=>'btn btn-primary',
'style'=>'margin-top:10px' ,
'value'=>'SIMPAN'
);
echo form_submit($simpan);
echo nbs(1);
echo anchor('pinjaman',
'BATAL',array('class'=>'btn btn-danger', 'style'=>'margin-top:10px'));
echo form_close();
?>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#form-tabungan').bootstrapValidator({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-
remove',
validating:'glyphicon glyphicon-
refresh'
},
fields: {
id_anggota: {
validators: {
notEmpty: {
message: 'ID
anggota tidak boleh kosong'
}
}
},
nama_belakang: {
validators: {
regexp: {
regexp: /^[a-
z'\s]+$/i,
message:
'Hanya a-z dan kutip saja yang diperbolehkan'
}
108
}
},
tgl_pinjam: {
validators: {
notEmpty: {
message:
'Tanggal Belum Dipilih'
}
}
},
tgl_tempo: {
validators: {
notEmpty: {
message:
'Tanggal Belum Dipilih'
}
}
},
jumlah: {
validators: {
integer:{
message:
'Jumlah Harus Angka'
},
notEmpty: {
message:
'Jumlah tidak boleh kosong'
}
}
},
angsuran: {
validators: {
integer:{
message:
'Angsuran Harus Angka'
},
notEmpty: {
message:
'Angsuran tidak boleh kosong'
}
}
},
denda: {
validators: {
integer:{
message:
'Denda Harus Angka'
},
109
notEmpty: {
message:
'Denda tidak boleh kosong'
}
}
},
telp: {
validators: {
regexp: {
regexp: /^[0-9-
\s]+$/i,
message:
'Hanya 0-9 saja yang diperbolehkan'
},
notEmpty: {
message: 'No
Telpon tidak boleh kosong'
}
}
},
debet: {
validators: {
notEmpty: {
message:
'Debet Tidak Boleh Kosong'
}
}
},
kredit: {
validators: {
notEmpty: {
message:
'Kredit Tidak Boleh Kosong'
}
}
},
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
// jquery-ui autocomplete
$( "#findanggota" ).autocomplete({
source: '<?php echo site_url('pinjaman/findanggota');?>',
minLength:1
});
110
window.setTimeout(function() {
$(".alert").fadeTo(1000, 0).slideUp(500, function(){
$(this).remove();
});
}, 2000);
$('#date_pay').datetimepicker({
locale: 'id',
format: 'DD-MM-YYYY',
useCurrent : true
});
$('#date_tempo').datetimepicker({
locale: 'id',
format: 'DD-MM-YYYY',
useCurrent : true
});
$('#jam_masuk').datetimepicker({
locale: 'id',
format: 'HH:mm',
});
$('#jam_keluar').datetimepicker({
locale: 'id',
format: 'HH:mm',
});
});
</script>
<?php $this->load->view('footer'); ?>
b). Delete
<?php
$this->load->view('header');
$this->load->view('menu_admin');
?>
<div class="container margin-atas">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">PILIH AKUN
PENYESUAIAN SEBELUM HAPUS</h3>
</div>
<div class="panel-body">
<?php echo
form_open_multipart('pinjaman/delete',array('id'=>'form-pinjaman')); ?>
<div class="form-group">
111
<?php
echo '<span style="color:red;">*
</span>'.form_label('DEBET');
echo form_hidden('id_pinjam',
$id_pinjam);
echo form_dropdown('debet',
$perkiraan_options,'','class="form-control"');
?>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('KREDIT');
echo form_dropdown('kredit',
$perkiraan_options,'','class="form-control"');
?>
</div>
<script type="text/javascript">
var loadFile = function(event) {
var output =
document.getElementById('output');
output.src =
URL.createObjectURL(event.target.files[0]);
};
</script>
<hr>
<?php
$simpan = array(
'value'=>'PROSES',
'class'=>'btn btn-info btn-sm'
);
echo form_submit($simpan);
echo nbs(1);
echo anchor('pinjaman', 'BATAL',
array('class'=>'btn btn-primary btn-sm'));
?>
</div>
<?php echo form_close(); ?>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#form-pinjaman').bootstrapValidator({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
112
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
nama_pg: {
validators: {
regexp: {
regexp: /^[0-9a-
z'\s]+$/i,
message: 'Hanya a-z ,
spasi dan kutip saja yg diperbolehkan'
},
notEmpty: {
message: 'Nama
Kelompok Tidak Boleh Kosong'
}
}
},
debet: {
validators: {
notEmpty: {
message: 'Debet Tidak
Boleh Kosong'
}
}
},
kredit: {
validators: {
notEmpty: {
message: 'Kredit
Tidak Boleh Kosong'
}
}
},
}
});
});
</script>
<?php $this->load->view('footer'); ?>
c). Edit
<?php
$this->load->view('header');
$this->load->view('menu_admin');
?>
<div class="container">
<div class="container-fluid">
113
<div class="panel panel-primary panel-costome margin-atas
margin-samping">
<div class="panel-heading">
<h3 class="panel-title" align="center">INPUT
PINJAMAN</h3>
</div>
<div class="panel-body">
<div style="color:red;font-size:10px">Tanda *
Wajib Diisi</div>
<?php echo
form_open_multipart('pinjaman/update',array('id'=>'form-tabungan')); ?>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="form-group">
<?php
echo '<span class="label-required">*
</span>'.form_label('ID ANGGOTA');
$id_anggota = array(
'name'=>'id_anggota',
'class'=>'form-control',
'id'=>'findanggota',
'placeholder'=>'Ketikkan
Nama Anggota / Kode Anggota',
'readonly'=>'readonly',
'value'=>$pinjaman-
>id_anggota
);
echo form_hidden('id_pinjam',
$pinjaman->id_pinjam);
echo form_input($id_anggota);
?>
</div>
<div class="form-group">
<?php echo '<span
style="color:red;">* </span>'.form_label('TANGGAL PINJAM :'); ?>
<div class='input-group date'
id='date_pay'>
<?php
$tgl = array(
'name'=>'tgl_pinjam',
'class' => 'form-
control',
'value' =>
date('d/m/Y', strtotime($pinjaman->tgl_pinjam))
);
echo form_input($tgl);
114
?>
<span class="input-group-
addon">
<span
class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="form-group">
<?php echo '<span
style="color:red;">* </span>'.form_label('TANGGAL TEMPO :'); ?>
<div class='input-group date'
id='date_tempo'>
<?php
$tgl = array(
'name'=>'tgl_tempo',
'class' => 'form-
control',
'value' =>
date('d/m/Y',strtotime($pinjaman->tgl_tempo))
);
echo form_input($tgl);
?>
<span class="input-group-
addon">
<span
class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('JUMLAH');
$jumlah = array(
'name'=>'jumlah',
'class'=>'form-control',
'placeholder'=>'Masukan
jumlah Pinjaman',
'readonly'=>'readonly',
'value'=>$pinjaman->jumlah
);
echo form_input($jumlah);
115
?>
</div>
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('ANGSURAN');
$angsuran = array(
'name'=>'angsuran',
'class'=>'form-control',
'placeholder'=>'Masukan
Angsuran Pinjaman',
'value'=>$pinjaman-
>angsuran
);
echo form_input($angsuran);
?>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<div class="form-group">
<?php
echo '<span style="color:red;">*
</span>'.form_label('DENDA');
$denda = array(
'name'=>'denda',
'class'=>'form-control',
'placeholder'=>'Masukan
Denda Pinjaman',
'value'=>$pinjaman->denda
);
echo form_input($denda);
?>
</div>
<div class="form-group">
<?php
echo form_label('KETERANGAN');
$keterangan = array(
'name'=>'keterangan',
'class'=>'form-control',
'placeholder'=>'Masukkan
keterangan',
'style'=>'height:150px',
'value'=>$pinjaman-
>keterangan
116
);
echo form_textarea($keterangan);
?>
</div>
<script type="text/javascript">
var loadFile = function(event){
var output =
document.getElementById('output');
output.src =
URL.createObjectURL(event.target.files[0]);
};
</script>
<?php
$simpan = array(
'class'=>'btn btn-primary',
'style'=>'margin-top:10px' ,
'value'=>'SIMPAN'
);
echo form_submit($simpan);
echo nbs(1);
echo anchor('pinjaman',
'BATAL',array('class'=>'btn btn-danger', 'style'=>'margin-top:10px'));
echo form_close();
?>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#form-tabungan').bootstrapValidator({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-
remove',
validating:'glyphicon glyphicon-
refresh'
},
fields: {
id_anggota: {
validators: {
notEmpty: {
message: 'ID
anggota tidak boleh kosong'
}
117
}
},
nama_belakang: {
validators: {
regexp: {
regexp: /^[a-
z'\s]+$/i,
message:
'Hanya a-z dan kutip saja yang diperbolehkan'
}
}
},
tgl_pinjam: {
validators: {
notEmpty: {
message:
'Tanggal Belum Dipilih'
}
}
},
tgl_tempo: {
validators: {
notEmpty: {
message:
'Tanggal Belum Dipilih'
}
}
},
jumlah: {
validators: {
integer:{
message:
'Jumlah Harus Angka'
},
notEmpty: {
message:
'Jumlah tidak boleh kosong'
}
}
},
angsuran: {
validators: {
integer:{
message:
'Angsuran Harus Angka'
},
notEmpty: {
118
message:
'Angsuran tidak boleh kosong'
}
}
},
denda: {
validators: {
integer:{
message:
'Denda Harus Angka'
},
notEmpty: {
message:
'Denda tidak boleh kosong'
}
}
},
telp: {
validators: {
regexp: {
regexp: /^[0-9-
\s]+$/i,
message:
'Hanya 0-9 saja yang diperbolehkan'
},
notEmpty: {
message: 'No
Telpon tidak boleh kosong'
}
}
},
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
// jquery-ui autocomplete
$( "#findanggota" ).autocomplete({
source: '<?php echo site_url('pinjaman/findanggota');?>',
minLength:1
});
window.setTimeout(function() {
$(".alert").fadeTo(1000, 0).slideUp(500, function(){
$(this).remove();
});
}, 2000);
119
$('#date_pay').datetimepicker({
locale: 'id',
format: 'DD-MM-YYYY',
useCurrent : true
});
$('#date_tempo').datetimepicker({
locale: 'id',
format: 'DD-MM-YYYY',
useCurrent : true
});
$('#jam_masuk').datetimepicker({
locale: 'id',
format: 'HH:mm',
});
$('#jam_keluar').datetimepicker({
locale: 'id',
format: 'HH:mm',
});
});
</script>
<?php $this->load->view('footer'); ?>
d). Show
<?php
$this->load->view('header');
$this->load->view('menu_admin');
?>
<div class="margin-atas">
<div class="container-fluid">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">DATA PINJAMAN</h3>
</div>
<div class="panel-body">
<span class="pull-left" style="margin-bottom:
10px;">
<?php
echo anchor('pinjaman/add', '<span
class="glyphicon glyphicon-plus"></span>', array('class'=>'btn btn-info btn-
sm','title'=>'Tambah Data'));
echo nbs(5);
?>
</span>
120
<span class="pull-left"><?php echo $this-
>pagination->create_links();?></span>
<!-- <span class="pull-right">
<?php
echo
form_open('employees/show',array('class'=>'form-inline'));
// <a class="btn btn-primary" data-toggle="modal"
href='#modal-id'>Trigger modal</a>
// echo 'Klik '.anchor('#modal-id', 'disini',
array('data-toggle'=>'modal')).' untuk melihat petunjuk pemakaian';
// echo nbs(2);
?>
<div class="form-group">
<?php
$search_item = array(
'name'=>'search_users',
'class'=>'form-control input-sm',
'placeholder'=>'Ketikkan Nama
Karyawan',
'size'=>'50',
'autocomplete'=>'off'
);
echo form_input($search_item);
?>
</div>
<?php
$simpan = array(
'name'=>'simpan',
'class'=>'btn btn-primary btn-sm',
'value'=>'CARI'
);
echo form_submit($simpan);
echo nbs(1);
echo anchor('employees/show', 'RESET',
array('class'=>'btn btn-warning btn-sm'));
echo form_close();
?>
</span> -->
<table id="tabel" class="table table-hover table-condensed
mytable sortable">
<thead>
<th>No</th>
<th>Nama Anggota</th>
<th>Tgl Pinjam</th>
<th>Tgl Tempo</th>
<th>Jumlah</th>
<th>Angsuran</th>
<th>Denda</th>
121
<th>Status</th>
<th>Keterangan</th>
<th data-defaultsort='disabled'>Aksi</th>
</thead>
<tbody>
<?php
if(!empty($pinjaman)){
$no = 1;
foreach ($pinjaman as $row) {
?>
<tr>
<td><?php echo
$no++;?></td>
<td><?php echo
strtoupper($row->nama_depan.' '.$row->nama_belakang);?></td>
<td><?php echo
date('d/m/Y',strtotime($row->tgl_pinjam)); ?></td>
<td><?php echo
date('d/m/Y',strtotime($row->tgl_tempo)); ?></td>
<td><b><?php echo
'Rp. '.number_format($row->jumlah,0,',','.'); ?></b></td>
<td><b><?php echo
'Rp. '.number_format($row->angsuran,0,',','.'); ?></b></td>
<td><b><?php echo
'Rp. '.number_format($row->denda,0,',','.'); ?></b></td>
<td><?php
if($row->status == 0){
echo 'PROSES';
}else{
echo 'LUNAS';
}
?></td>
<td><?php echo
word_limiter($row->keterangan,4); ?></td>
<td>
<?php
//
$rincian=$this->db->query('SELECT * FROM angsuran WHERE deleted = 0
AND id_pinjam='.$row->id_pinjam);
echo
anchor('pinjaman/edit/'.$row->id_pinjam, '<span class="glyphicon glyphicon-
pencil"></span>', array('class'=>'btn btn-success btn-xs','title'=>'Edit Data '.$row-
>nama_depan));
echo nbs(1);
122
//
if(empty($rincian)){
echo
anchor('pinjaman/form_delete/'.$row->id_pinjam, '<span class="glyphicon
glyphicon-trash"></span>', array('class'=>'btn btn-primary btn-xs','title'=>'Hapus
Data '.$row->nama_depan));
// }
?>
</td>
</tr>
<?php }
}else{ ?>
<tr><td colspan="9" align="center"
style="background-color:#FFFEC2">BELUM ADA DATA</td></tr>
<?php
} ?>
</tbody>
</table>
</div>
</div>
</div>
<?php $this->load->view('footer'); ?>
123
3.5.2 Blackbox Testing
Bkackbox testing atau Pengujian adalah sebuah tindakan yang dilakukan
untuk mengukur sejauh mana objek telah memenuhi sesuai harapan. Pengujian
dalam Aplikasi simpan pinjam BUMDes “Prospek Mandiri” Wajok Hilir sebagai
berikut:
1. Pengujian terhadap Web Browser
Tabel III.13
Hasil Pengujian Black Box Browser
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Buka dengan google
Chrome
Chrome
(terbuka)
Sistem menerima
akses dan
menampilkan
sesuai tampilan
Valid
2 Buka dengan Mozilla
Fire Fox
Mozilla Fire
Fox
(terbuka)
Sistem Menerima
akses namun untuk
tampilan tanggal
tidak otomatis
Invalid
2. Pengujian terhadap Halaman Masuk
Tabel III.14
Hasil Pengujian Black Box terhadap Halaman Masuk
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Id dan kata sandi
dikosongkan
kemudian klik masuk
Id (kosong)
Dan Kata
sandi
(kosong)
Sistem menolak
akses dan
menampilkan “id
harus diisi”
Valid
2 Mengisi id dan
mengkosongkan Kata
sandi kemudian klik
masuk
Id (terisi)
dan kata
sandi
(kosong)
Sistem menolak
akses dan
menampilkan
“Kata sandi harus
diisi”
Valid
3 Mengisi id dan Kata
sandi dengan benar
kemudian klik masuk
Id (terisi)
Dan Kata
sandi
(terisi)
Sistem menerima
akses dan
menampilkan
Halaman utama
sesuai dengan Hak
akses
Valid
124
3. Pengujian terhadap Halaman data anggota
Tabel III.15
Hasil Pengujian Black Box terhadap data anggota
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data anggota tidak
diisi kemudian klik
simpan
Jika data
anggota
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data anggota telah
diisi dengan benar
Data
anggota
telah diisi
dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
5. Pengujian terhadap Halaman Transaksi pinjaman
Tabel III.16
Box terhadap Halaman Transaksi simpan
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data transaksi
simpanan tidak diisi
kemudian klik simpan
Jika
transaksi
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data transaksi
simpananan telah diisi
dengan benar
Transaksi
simpanan
telah diisi
dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
125
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
5. Pengujian terhadap Halaman Transaksi pinjaman
Tabel III.17
Hasil Pengujian Black Box terhadap HalamanTransaksi pinjaman
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data transaksi
pinjaman tidak diisi
kemudian klik simpan
Jika data
transaksi
pinjaman
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data anggota telah
diisi dengan benar
Data
transaksi
pinjaman
diisi dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
126
4. Pengujian terhadap Halaman Transaksi angsuran
Tabel III.18
Hasil Pengujian Black Box terhadap Halaman Transaksi angsuran
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data transaksi
angsuran tidak diisi
kemudian klik simpan
Jika data
transaksi
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data transaksi
angsuran telah diisi
dengan benar
Data
transaksi
angsuran
telah diisi
dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
5. Pengujian terhadap Halaman Jurnal Umum
Tabel III.19
Hasil Pengujian Black Box terhadap Halaman Jurnal Umum
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data jurnal umum
tidak diisi kemudian
klik simpan
Jika data
jurnal
umum
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data jurnal umum
telah diisi dengan
benar
Data jurnal
umum telah
diisi dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
127
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
6. Pengujian terhadap Halaman Laporan Tabungan
Tabel III.20
Hasil Pengujian Black Box terhadap Halaman Laporan tabungan
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data anggota tidak
diisi kemudian klik
simpan
Jika data
anggota
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data anggota telah
diisi dengan benar
Data
anggota
telah diisi
dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
128
5 Cetak laporan
tabungan
Pilih salah
satu data
yang akan
dicetak Klik
tombol ctrl
+p
Sistem akses dan
mencetak laporan
tabungan
Valid
7. Pengujian terhadap Halaman Laporan Pinjaman
Tabel III.21
Hasil Pengujian Black Box terhadap Halaman Laporan pinjaman
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data anggota tidak
diisi kemudian klik
simpan
Jika data
anggota
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data anggota telah
diisi dengan benar
Data
anggota
telah diisi
dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
5 Cetak laporan
tabungan
Pilih salah
satu data
yang akan
dicetak Klik
tombol ctrl
+p
Sistem akses dan
mencetak laporan
pinjaman
Valid
129
8. Pengujian terhadap Halaman Laporan Angsuran
Tabel III.22
Hasil Pengujian Black Box terhadap Halaman Laporan angsuran
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data anggota tidak
diisi kemudian klik
simpan
Jika data
anggota
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data anggota telah
diisi dengan benar
Data
anggota
telah diisi
dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
5 Cetak laporan
tabungan
Pilih saklah
satu data
yang akan
dicetak Klik
tombol ctrl
+p
Sistem akses dan
mencetak laporan
angsuran
Valid
9. Pengujian terhadap Halaman Laporan Buku besar
Tabel III.23
Hasil Pengujian Black Box terhadap Halaman Laporan Buku Besar
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data anggota tidak
diisi kemudian klik
simpan
Jika data
anggota
kosong
Sistem menolak
akses dan
menampilkan
Valid
130
pesan “data masih
ada belum terisi”
2 Data anggota telah
diisi dengan benar
Data
anggota
telah diisi
dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
5 Cetak laporan
tabungan
Pilih saklah
satu data
yang akan
dicetak Klik
tombol ctrl
+p
Sistem akses dan
mencetak laporan
buku besar
Valid
10. Pengujian terhadap Halaman Laporan Jurnal Umum
Tabel III.24
Hasil Pengujian Black Box terhadap Halaman Laporan Jurnal umum
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data anggota tidak
diisi kemudian klik
simpan
Jika data
anggota
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data anggota telah
diisi dengan benar
Data
anggota
telah diisi
dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
3 Menghapus data yang
akan di hapus
Klik salah
satu data
Sistem akses dan
data berhasil
Valid
131
detail yang
akan
dihapus
kemudian
klik
dihapus
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
5 Cetak laporan
tabungan
Pilih saklah
satu data
yang akan
dicetak Klik
tombol ctrl
+p
Sistem akses dan
mencetak laporan
jurnal umum
Valid
11. Pengujian terhadap Halaman Setting user
Tabel III.25
Hasil Pengujian Black Box terhadap Halaman setting user
No Skenario Pengujian Test Case Hasil yang
diharapkan
Kesimpulan
1 Data anggota tidak
diisi kemudian klik
simpan
Jika data
anggota
kosong
Sistem menolak
akses dan
menampilkan
pesan “data masih
ada belum terisi”
Valid
2 Data anggota telah
diisi dengan benar
Data
anggota
telah diisi
dengan
benar
Sistem akses dan
menampilkan
pesan “data
berhasil
disimpan”
Valid
3 Menghapus data yang
akan di hapus
Klik salah
satu data
detail yang
akan
dihapus
kemudian
klik
Sistem akses dan
data berhasil
dihapus
Valid
4 Mengubah data yang
akan diubah
Klik salah
satu data
yang akan
diubah
Sistem akses dan
menampilkan
pesan “ data
berhasil diubah”
Valid
132
3.5.3 Spesifikasi Hardware dan Software
Untuk menunjang kerja sistem agar dapat berjalan dengan baik,maka
dibutuhkan perangkat keras, perangkat lunak, dan pengguna denganspesifikasi
sebagai berikut:
1. Analisa Kebutuhan Perangkat Keras
Sarana dan prasarana menjadi sangat penting dalam upaya pemanfaatan
teknologi informasi salah satunya adalah perangkat keras (Hardware), adapun
spesifikasi sistem perangkat keras yang dibutuhkan adalah.:
a. PC/Laptop yang berspesifikasi sebagai berikut:
1) Prosesor 1.40 GHz
2) Memory 2 GB RAM
3) Sistem type 32 bit
4) System model aspire V5-431
5) Keyboard 86 tombol
b. Mouse Standar USB
c. Printer Brother T-700
2. Analisa Kebutuhan Perangkat Lunak
Spesifikasi sistem perangkat lunak (Software) yang dibutuhkan dalam
pembuatan sistem informasi kas masuk dan kas keluar ini adalah.
a. Sistem Operasi Windows 7 Ultimate
b. Aplikasi perancangan menggunakan PHP