32
3.1. Tinjauan Perusahaan
3.1.1. Sejarah Perusahaan
TK Assa’adatul Mahmudiyah merupakan salah satu pendidikan anak usia dini
yang berada didaerah Pabuaran-Subang. Pada saat itu pendidikan anak usia dini
belum berkembang seperti sekarang. Pendidikan anak usia dini belum dianggap
penting bagi masyarakat sekitar, padahal pendidikan anak usia dini sangat
mempengaruhi dalam tumbuh kembangnya anak. Pada tahun 1996 Yayasan
Assa’adatul Mahmudiyah yang dimotori oleh keluarga besar H. Jayadi sepakat untuk
mendirikan Taman Kanak-Kanak (TK) Assa’adatul Mahmudiyah di Desa
Cihambulu-Pabuaran. Pada awal berdiri TK Assa’adatul Mahmudiyah hanya
memiliki 2 kelas yaitu kelas nol kecil dan nol besar. Tahun 1996-2006 Sekolah TK
assa’adatul Mahmudiyah belum bisa beroperasi sendiri dan masih bernaungan atau
menginduk ke pusat yang ada didaerah Karawang yaitu di KEBADKO Karawang
atau BKPRRI Karawang, karena setiap ada kegiatan seperti manasik haji, ujian
maupun wisuda dilaksankannya dikarawang.
Pada tahun 2007 dengan kepala sekolah baru yaitu Ibu Leli Auliyah, S.Pd,
mengajukan permohonan Surat Izin Operasional. Tahun 2010 Sekolah TK
Assa’adatul Mahmudiyah sudah mempunyai akte notaris, SK Kemenhumham, Surat
Izin Operasional, NISN, NSS, dan lain-lain. Sekolah TK Assa’adatul Mahmudiyah
sudah terakteditas B. Dari tahun ke tahun jumlah bertambah karena kualitas yang ada
di TK Assa’adatul Mahmudiyah sangat bagus, dan sekarang terdapat 6 kelas yaitu 3
kelas nol kecil dan 3 kelas nol besar dan memiliki 7 guru dengan 5 guru yang sudag
bersertifikat. Sekolah TK Assa’adatul Mahmudiyah memiliki ekstrakulikuler yaitu
ekstrakulikurel menari dan mewarnai. Saat ini telah berkembang menjadi salah satu
Taman Kanak-Kanak yang banyak mendapat prestasi.
3.1.2. Visi Misi TK Assa’adatul Mahmudiyah
TK. Assa’adatul Mahmudiyah mempunyai visi dan misi sebagai berikut:
1. Visi
Dengan semangat yang tinggi melalui proses pembelajaran bermain sambil belajar
dapat menumbuh kembangkan insan yang ceria, cerdas, mandiri dan kreatif serta
memiliki moral yang luhur dan berwawasan nasional.
2. Misi
a. Mewujudkan pendidikan yang berkualitas, bermutu dan bermoral dengan
meningkatkan kompetensi Sumber Daya Manusia (SDM).
b. Mewujudkan insan yang ceria, cerdas, mandiri dan kreatif.
c. Menciptakan lingkungan sekolah yang aman, nyaman dan bersih.
d. Menjadikan sekolah yang berkualitas dalam bidang pendidikan.
3.1.3. Struktur Organisasi
Struktur organisasi TK. Assa’adatul Mahmudiyah tersusun berdasarkan
fungsi masing-masing bagian. Bagian-bagian tersebut sudah mempunyai hak dan
tanggung jawabnya. Struktur organisasi tersebut dibuat untuk memetakan pekerjaan
yang terdapat dalam TK. Assa’adatul Mahmudiyah. Struktur sangat dibutuhkan
untuk mempermudah dalam mengetahui tugas masing-masing karyawan, mengetahui
tanggung jawab serta wewenang setiap unit kerja.
Berikut adalah struktur organisasi TK. Assa’adatul Mahmudiyah
Sumber: (TK Assa’adatul Mahmudiyah, 2019)
Gambar.III.1 Struktur Organisasi
Fungsi dari tiap-tiap bagian sebagai berikut:
1. Kepala TK
a. Memahami semua peraturan dan pedoman yang berhubungan dengan
sekolah.
b. Mengatur situasi didalam lingkungan sekolah.
c. Mengendalikan kegiatan kelompok.
e. Mengadakan evaluasi atas semua kegiatan dan jasa sekolah untuk
peningkatan mutu berkelanjutan.
f. Mengawasi pemeliharaan semua saran fisik serta pelengkapan sekolah.
g. Memberikan laporan berkala kepada atasan (yayasan) atau pihak-pihak yang
terkait dengan sekolah, tentang semua kegiatan yang ada di sekolah.
h. Memeriksa daftar hadir guru.
2. Sekertaris
a. Berkaitan dengan surat menyurat.
b. Melakukan agenda dan penataan persuratan.
c. Membuat undangan untuk pertemuan atau keperluan lain.
d. Melakukan dokumentasi setiap kegiatan dan kearsipan.
3. Bendahara
a. Membuat laporan keuangan.
b. Menyediakan keuangan berdasarkan kebutuhan.
c. Mendistribusikan keuangan berdasarkan kebutuhan.
4. Tenaga Pendidikan
a. Melakukan proses belajar mengajar dikelas tepat waktu
b. Mendidik siswa menjadi terampil dan mandiri.
c. Mengecek kehadiran siswa dikelas.
3.2. Tinjauan Kasus
3.2.1. Proses Bisnis Sistem Berjalan
1. Prosedur Penerimaan Kas
Pengelolaan sistem akuntansi penerimaan kas TK Assa’adatul Mahmudiyah
masih menggunakan manual. Dimana proses penerimaaan kas dari pembayaran
SPP dimulai dari murid atau wali murid melakukan pembayaran yang akan
diterima oleh bendahara sekolah dengan memberikan kartu SPP dan bendahara
mengisi pada kartu SPP tersebut. Bagian bendahara juga mencatat pembayaran
SPP dibuku kas. Setelah dicatat, bagian bendahara memberikan kartu SPP
tersebut kepada murid atau wali murid. Lalu murid atau wali murid menerima
kartu SPP yang akan dipegang oleh murid atau wali murid sebagai bukti.
Kemudian bendahara sekolah membuat laporan pembayaran SPP dalam bentuk
Microsoft Word dengan perhitungannya menggunakan kalkulator yang setiap
bulannya akan diberikan kepada kepala sekolah sebagai data pencatatan SSP.
Proses penerimaan kas dari dana Bantuan Operasioanal Sekolah Daerah
(BOSDA) dimulai dari pihak sekolah mengajukan proposal dana Bosda,
dimana bagian bendahara membuat Rancangan Anggaran Biaya (RAB) untuk
dimasukkan ke dalam proposal. Setelah dibuat, bendahara memberikan kepada
kepala sekolah untuk dicek dan disetujui. Setelah itu dilampirkan ke dalam
proposal. Pihak sekolah memberikan pengajuan propsal kepada pihak Dinas
Pendidikan dan Kebudayaan Subang (DPKS). Setelah diterima, pihak Dinas
Pendidikan dan Kebudayaan Subang akan mengkaji proposal tersebut, dimana
ketika pengajuan proposal disetujui maka pihak Dinas Pendidikan dan
Kebudayaan Subang akan menghubungi pihak sekolah bahwa proposal yang
diajukan disetujui dan dana dicairkan. Tetapi, ketika pengajuan proposal tidak
disetujui maka pihak sekolah memberikan pengajuan proposal kembali. Setelah
mengetahui proposal yang diajukan diterima, pihak sekolah langsung datang ke
Dinas Pendidikan dan Kebudayaan Subang untuk mengambil dana tersebut.
Pihak Dinas Pendidikan dan Kebudayaan Subang memberikan dan yang telah
dicairkan kepada pihak sekolah. Setelah dana diterima, bagian bedahara
mencatat dana tersebut di buku kas dan membuat laporan yang akan diberikan
kepada pihak sekolah. Setelah menerima laporan kepala sekolah menkaji
laporan tersebut dan langsung diberikan kepada pihak Dinas Pendidikan dan
Kebudayaan Subang sebagai laporan alokasi penggunaan dana bosda.
2. Prosedur Pengeluaran Kas
Pengelolaan pengeluaran kas di TK. Assa’adatul Mahmudiyah dilakukan setiap
bulan dan tahunan. Setiap sekolah memerlukan dana untuk sesuatu hal
contohnya pembelian perlengkapan, dimana dimulai dari bendahara membuat
catatan apa saja yang harus dibeli. Setelah itu catatan yang telah dibuat
diberikan kepada kepala sekolah. Setelah disetujui, bendahara langsung
mencairkan dana tersebut. Bendahara melakukan pembelian dan pihak toko
memberikan nota. Bendahara menerima nota tersebut. Setelah itu, bagian
bendahara mencatat nota tersebut dibuku kas sebagai catatan laporan setiap
bulannya yang akan diberikan kepada kepala sekolah dan kepala sekolah
menerima laporan tersebut.
3. Prosedur Laporan
Proses laporan kas TK Assa’adatul Mahmudiyah dimulai dari bendahara
mengecek setiap transaksi penerimaan dan pengeluaran kas yang ada di buku
kas. Bendahara membuat laporan dengan menggunakan Microsoft Word.
setelah dibuat laporan diserahkan kepada kepala sekolah dan kepala sekolah
menerima laporan tersebut.
3.2.2. Activity Diagram
1. Activity Diagram Penerimaan Kas’
a. Penerimaan kas dari pembayaran SPP
Sumber: (TK. Assa’adatul Mahmudiyah, 2020
)
Gambar III.2 Activity Diagram
b. Penerimaan kas dari dana Bosda
Sumber: (TK. Assa’adatul Mahmudiyah, 2020)
Gambar III.3 Activity Diagram
2. Activity Diagram Pengeluaran Kas
Sumber: (TK. Assa’adatul Mahmudiyah, 2020)
3. Activity Diagram laporan
Sumber: (TK. Assa’adatul Mahmudiyah, 2020)
Gambar III.5 Activity Diagram Laporan
3.2.3. Dokumen Masukan
Dokumen masukkan merupakan segala bentuk masukan yang berupa
dokumen dan diolah dalam proses agar dapat menghasilkan dokumen keluaran yang
diinginkan. Adapun dokumen masukan yang digunakan adalah sebagai berikut:
1. Nama Dokumen : Kartu SPP (surat persetujuan pembayaran)
Fungsi
: Untuk pembayaran iuran setiap bulannya
Sumber
: Siswa/wali murid
Tujuan
: Bendahara
Media
: Kertas
Jumlah
: 1 (satu) lembar
Frekuensi
: Setiap melakukan pembayaran SPP
Bentuk
: Lampiran A.1.
2. Nama Dokumen : Nota Pembelian
Fungsi
: Untuk
Sumber
: Guru
Tujuan
: Bendahara
Media
: Kertas
Jumlah
: 1 (satu) lembar
Frekuensi
: Setiap melakukan pembelian
Bentuk
: Lampiran A.2.
3.2.4. Dokumen Keluaran
Dokumen keluaran adalah sebagai bentuk keluaran berupa dokumen yang
merupakan hasil pengolahan. Adapun dokumen yang dihasilkan adalah sebagai
berikut:
1. Nama Dokumen
: Data RAB (Rancangan Anggaran Biaya)
Fungsi
: untuk pengajuan permohonan dana
Sumber
: Bendahara
Tujuan
: Kepala Dinas Pendidikan dan Kebudayaan Subang
Media
: Kertas
Jumlah
: 1 (satu) lembar
Frekuensi
: Setiap satu semester
Bentuk
:.Lampiran B.1
2. Nama Dokumen : Laporan Kas
Sumber
: Bendahara
Tujuan
: Kepala Sekolah
Media
: Kertas
Jumlah
: 1 (satu) lembar
Frekuensi
: setiap satu tahun sekali
Bentuk
: Lampiran B.3
3. Nama Dokumen : Laporan Penggunaan Dana Bosda
Fungsi
: sebagai catatan dana Bosda yang diterima
Sumber
: Bendahara
Tujuan
: Kepala Dinas Pendidikan dan Kebudayaan Subang
Media
: Kertas
Jumlah
: 1 (satu) lembar
Frekuensi
: setiap satu tahun sekali
Bentuk
: Lampiran B.4
3.2.5. Permasalahan Pokok
Berdasarkan hasil riset untuk sistem penerimaan dan pengeluaran kas pada
TK Assa’adatul Mahmudiyah. Penulis menemukan beberapa permasalahan pokok
yang mengahambat kegiatan tersebut. Adapun permasalahan yang ditemukan
diuraiakan sebagai berikut:
1. Pencatatan setiap transaksi penerimaan dan pengeluaran kas masih dilakukam
secara sederhana yaitu dengan masih menggunakan sebuah buku. Dengan masih
menggunakan buku merasa kesulitan dalam pencarian data serta memakan waktu
yang lama.
2. Membutuhkan anggaran dana dalam pencatatan keuangan karena buku akan
cepat habis dan itu akan menghabiskan dana serta sering terjadi kehilangan data
dalam penyimpananya.
3. Perhitungan akuntansinya masih menggunakan hitungan biasa (kalkulator) yang
menyebabkan sering terjadinya kesalahan, dimana anggaran sering kelebihan atau
kekurangan dalam perhitungannya.
3.2.6. Pemecahan Masalah
Dengan melihat permasalahan yang ada, maka untuk mengatasi permasalahan
tersebut penulis mengajukan alternatif pemecahan masalah yaitu dengan membuat
sistem yang sudah terkomputerisasi dari pencatatan masuk dan keluarnya kas serta
pembuatan laporannya menggunakan komputer serta program khusus.
Beberapa keuntungan yang dapat diperoleh dari penggunaan aplikasi program
pada komputer yaitu:
1. Dengan membuat sebuah program berbasis web atau dekstop yang berguna
untuk pengelololaan kas masuk dan kas keluar sehingga memudahkan bagian
bendahara untuk mengelolahnya dan membuat laporan dengan cepat sehingga
menghasilkan informasi yang benar tentang data-data yang ada.
2. Dengan adanya sebuah sistem yang sudah terkomputersasi akan sangat
banyak menghemat dana dalam pengelolaanya.
3. Mempermudah dalam proses perhitungannya, sehingga meminimalisir
terjadinya kecurangan atau kesalahan.
3.3. Analisa Kebutuhan Software
3.3.1. Analisis Kebutuhan
Dalam rancang bangun sistem informasi akuntansi penerimaan dan
pengeluaran kasi ini ada terdapat 3 (tiga) jen is user yang saling berinteraksi dalam
lingkungan sistem tersebut, yaitu admin, bendahara dan kepala sekolah.
A. Kepala Sekolah
A.1. Kepala Sekolah melakukan login
A.2. Kepala Sekolah mencetak laporan
B. Bendahara
B.1. Bagian Bendahara melakukan login
B.2. Bagian Bendahara mengelola data akun
B.3. Bagian Bendahara mencatat transaksi kas masuk
B.4. Bagian Bendahara mencatat transaksi kas keluar
B.5. Bagian Bendahara mencetak laporan
C. Admin
C.1. Admin melakukan login .
C.2. Admin mengelola data user
C.3. Admin mengelola data akun
C.4. Admin mencatat transaksi kas masuk
C.5. Admin mencatat transaksi kas keluar
C.6. Admin mencetak laporan
D. Kebutuhan Sistem
a. User harus melakukan login menggunakan username dan password dan
setiap selesai menggunakan aplikasi harus melakukan logout agar
keamanan data terjaga.
b. Sistem dapat mencetak laporan penerimaan dan pengeluaran kas.
3.3.2. Use Case Diagram
Gambar III.6. Use Case Diagram
Tabel III.1.
Skenario Use Case Diagram Login
Use case login
Tujuan
Untuk mengakses sistem
Aktor
Admin
Kondisi awal
Form login masih kosong
Skenario utama
1. Admin memasukan username dan password
2. Sistem akan memeriksa valid tidaknya data masukan dengan
memerikasa ke tabel user
3. Masuk ke aplikasi pengelolaan kas
Skenario alternatif
1. Jika form login yang di input masih ada yang kosong, maka
sistem akan menampilkan pesan "please fill out this field"
2. jika form login yang diinput sudah sesuai, maka sistem akan
menampilkan pesan " login berhasil "
Tabel III.2.
Skenario Use Case Diagram Data User
Use case data user
Tujuan
Mengijinkan admin untuk mengelola data user
Aktor
Admin
Kondisi awal
login tervalidasi dan valid
Skenario utama
1. Admin memilih menu data user
2. Sistem akan menampilkan form data user untuk diinput
3. Admin memilih data yang akan diubah, maka menampilkan
data akun dari akun yang akan diubah
4. Admin memilih data yang akan dihapus, maka akan
menampilkan pesan
Skenario alternatif
1. Jika form user yang di input masih ada yang kosong, maka
sistem akan menunjukan pesan "please fill out this field"
2. jika form user yang diinput sudah sesuai, maka sistem akan
menampilkan pesan " data berhasil disimpan"
3. jika form sudah diubah, maka sistem akan menampilkan pesan
bahwa data berhas
4. data yang dihapus akan menampilkan pesan konfirmasi apakah
data benar dihapus
Kondisi akhir
sistem menampilkan data user
Tabel III.3.
Skenario Use Case Diagram Data Akun
Use case data akun
Tujuan
Mengijinkan admin untuk mengelola data akun
Aktor
Admin
Kondisi awal
login tervalidasi dan valid
Skenario utama
1. Admin memilih menu data akun
2. Sistem akan menampilkan form data akun untuk diinput,
memasukan data akun sesuai kolom yang ada
3. Admin memilih data yang akan diubah, maka menampilkan
data akun dari akun yang akan diubah
4. Admin memilih data yang akan dihapus, maka akan
menampilkan pesan
Skenario alternatif
1. Jika form masih ada yang kosong, maka sistem akan
menunjukan pesan "please fill out this field"
2. jika form sudah sesuai, maka sistem akan menampilkan pesan
" data berhasil disimpan"
3. jika form sudah diubah, maka sistem akan menampilkan pesan
bahwa data berhas
4. data yang dihapus akan menampilkan pesan konfirmasi apakah
data benar dihapus
Tabel III.4.
Skenario Use Case Diagram Transaksi Kas Masuk
Use case transaski kas masuk
Tujuan
Mengijinkan admin untuk mengelola data transaksi kas masuk
Aktor
Admin
Kondisi awal
login tervalidasi dan valid
Skenario utama
1. Admin memilih menu transaksi kas masuk
2. Sistem akan menampilkan form kas masuk untuk diinput
3. Admin memilih data yang akan dihapus, maka akan
menampilkan pesan
Skenario alternatif
1. Jika form yang di input masih ada yang kosong, maka sistem
akan menunjukan pesan "please fill out this field"
2. Jika form kas masuk yang diinput sudah sesuai, maka sistem
akan menampilkan pesan " data berhasil disimpan"
3. data yang dihapus akan menampilkan pesan konfirmasi apakah
data benar dihapus
Kondisi akhir
sistem menampilkan data kas masuk yang telah diinput
Tabel III.5.
Skenario Use Case Diagram Transaksi Kas Keluar
Use case transaski kas keluar
Tujuan
Mengijinkan admin untuk mengelola data transaksi kas keluar
Aktor
Admin
Kondisi awal
login tervalidasi dan valid
Skenario utama
1. Admin memilih menu transaksi kas keluar
2. Sistem akan menampilkan form kas keluar untuk diinput
3. Admin memilih data yang akan dihapus, maka akan
menampilkan pesan
Skenario alternatif
1. Jika form yang di input masih ada yang kosong, maka sistem
akan menunjukan pesan "please fill out this field"
2. Jika form kas masuk yang diinput sudah sesuai, maka sistem
akan menampilkan pesan " data berhasil disimpan"
3. data yang dihapus akan menampilkan pesan konfirmasi apakah
data benar dihapus
Kondisi akhir
sistem menampilkan data kas keluar yang telah diinput
Tabel III.6.
Skenario Use Case Diagram Mencetak Laporan
Use case mencetak laporan
Tujuan
Untuk mencetak laporan
Aktor
Admin
Skenario utama
1. Admin memilih menu laporan
2. Sistem akan menampilkan form laporan yang akan dicetak
Skenario alternatif
1. Jika melakukan cetak secara keseluruhan, maka klik tombol
seluruh data
2. Jika melakukan cetak berdasarkan periode, maka mengisi form
periode dan klik tombol data
Kondisi akhir
sistem menampilkan laporan
3.3.3. Activity Diagram
1. Admin mengelola data user
2. Admin mengelola data akun
3. Admin mengelola kas masuk
4. Admin mengelola kas keluar
5. Admin mencetak laporan
3.4. Desain
3.4.1. Entity Relationship Diagram
tbl_kasmasuk_detail tbl_kasmasuk tbl_kaskeluar_detail tbl_kaskeluar tbl_akun tbl_jurnal tbl_bukubesar
1
M
1
1
M
1
1
1
1
Memiliki1
1
MemilikiM
Memiliki1
MemilikiM
Memiliki1
Memiliki1
MemilikiM
Memiliki1
Memiliki1
MemilikiM
nominal_kasmasuk kd_kasmasuk kd_akun kd_kasmasuk tgl_kasmasuk ket_kasmasuk kd_kasmasuk kd_akun kd_kasmasuk kd_kasmasuk kd_jurnal kd_kas kd_kas kd_akun kd_akun tgl_jurnal kd_kas nominal_kaskeluar kd_kaskeluar tgl_kaskeluar ket_kaskeluar kd_kaskeluar kd_kaskeluar kd_kaskeluar kd_kaskeluar kd_akun kd_akun jenis_akun kd_akun nm_akun kd_akun saldo_normal kd_bukubesar kd_kas kd_akun tgl_bukubesar saldo_kredit saldo_debet nominal_debet nominal_kredit saldo_debet saldo_kredit tbl_user Memiliki Memiliki id_user username password hak_akses1
M
1
M
id_user id_user id_user id_user3.4.2. Logical Record Structure
tbl_kasmasuk_detail kd_kasmasuk ** kd_akun ** tbl_kasmasuk kd_kasmasuk * id_user ** tgl_kasmasuk ket_kasmasuk nominal_kasmasuk tbl_bukubesar kd_bukubesar * kd_kas ** kd_akun ** nominal_debet nominal_kredit tgl_bukubesar saldo_debet saldo_kredit tbl_akun kd_akun * nm_akun jenis_akun saldo_normal tbl_jurnal kd_jurnal * kd_kas ** kd_akun ** tgl_jurnal saldo_debet saldo_kredit tbl_kaskeluar_detail kd_kaskeluar ** kd_akun ** tbl_kaskeluar kd_kaskeluar * id_user ** tgl_kaskeluar ket_kaskeluar nominal_kaskeluar 1 1 1 1 tbl_user id_user * username password hak_aksesKeterangan:
* = Primary Key
** = Foreign Key
Gambar III.13 Logical Strukture Diagram
3.4.3. Spesifikasi File
Dalam spesifikasi file, sistem ini menggunakkan aplikasi basis data
(database) pada MySQL dengan nama database db_pengelolaankas.sql spesifikasi
1. Spesifikasi File User
Nama File
: Tabel tbl_use r
Akronim
: tbl_user.sql
Fungsi
: Mengelola dan menyimpan data user
Tipe File
: File Master
Ukuran Record
: 61 byte
Media
: Hard disk
Field Key
: id_user
Software
: MySQL
Tabel III.7.
Spesifikasi File User
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Kode id_user Integer 11 Primary Key
2. Nama nm_user Varchar 20
3. Password Password Varchar 30
4. Hak akses hak_akses Enum “admin”,”bendahara” dan “kepala sekolah”
2. Spesifikasi File Akun
Nama File
: Tabel tbl_akun
Akronim
: tbl_akun.sql
Fungsi
: mengelola dan menyimpan data akun
Tipe File
: File Master
Ukuran Record
: 100 byte
Media
: Hard disk
Field Key
: kd_akun
Tabel III.8.
Spesifikasi File Akun
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Kode kd_akun Varchar 10 Primary Key
2. Nama akun nm_akun Varchar 50
3. Jenis akun jenis_akun Varchar 30
4. Saldo normal saldo_normal Varchar 10
3. Spesifikasi File Kas Masuk
Nama File
: Tabel tbl_kasmasuk
Akronim
: tbl_kasmasuk.sql
Fungsi
: mengelola dan menimpan data kas masuk
Tipe File
: File Transaksi
Ukuran Record
: 32 byte
Media
: Hard disk
Field Key
: kd_kasmasuk
Software
: MySQL
Tabel III.9.
Spesifikasi File Kas Masuk
No. Elemen Data Akronim
Tipe
Panjang Keterangan
1.
Kode
kd_kasmasuk
Varchar
10
Primary Key
2.
Tanggal
tgl_kasmasuk
Date
3.
Keterangan
ket_kasmasuk
Text
4.
Nominal
nominal_kasmasuk Integer
11
4. Spesifikasi File Kas Keluar
Nama File
: Tabel tbl_kaskeluar
Akronim
: tbl_kaskeluar.sql
Fungsi
: Mengelola dan menyimpan data kas keluar
Tipe File
: File Transaksi
Ukuran Record
: 32 byte
Media
: Hard disk
Field Key
: kd_kaskeluar
Software
: MySQL
Tabel III.10.
Spesifikasi File Kas Keluar
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Kode kd_kaskeluar Varchar 10 Primary Key
2. Tanggal tgl_kaskeluar Date
3. Keterangan ket_kaskeluar Text
4. Nominal nominal_kaskeluar Integer 11
5. Id id_user integer 11
5. Spesifikasi File Jurnal
Nama File
: Tabel tbl_jurnal
Akronim
: tbl_jurnal.sql
Fungsi
: Mencatat setiap transaksi yang terjadi
Tipe File
: File Laporan
Ukuran Record
: 53 byte
Media
: Hard disk
Field Key
: kd_jurnal
Tabel III.11.
Spesifikasi File Jurnal
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Kode jurnal kd_jurnal Integer 11 Primary Key
2. Kode kas kd_kas Varchar 10
3. Kode akun kd_akun Varchar 10
4. Tanggal jurnal tgl_jurnal Date
5. Saldo debet saldo_debet Integer 11
6. Saldo kredit saldo_kredit Integer 11
6. Spesifikasi File Buku Besar
Nama File
: Tabel tbl_bukubesar
Akronim
: tbl_bukubesar.sql
Fungsi
: Mempersiapkan laporan keuangan
Tipe File
: File Transaksi
Ukuran Record
: 75 byte
Media
: Hard disk
Field Key
: kd_bukubesar
Software
: MySQL
Tabel III.12.
Spesifikasi File Buku Besar
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Kode buku besar kd_bukubesar Integer 11 Primary Key
2. Kode kas kd_kas Varchar 10
3. Kode akun kd_akun Varchar 10
4. Nominal debet nominal_debet Integer 11
5. Nominal kredit nominal_kredit Integer 11
8. Saldo debet saldo_debet Integer 11
9. Saldo kredit saldo_kredit Integer 11
3.4.4. Class Diagram
Diagram Class atau kelas diagram menggambarkan struktur sistem dari segi
pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Dibawah ini
merupakan gambar class diagram untuk menggambarkan struktur sistem yang akan
dibuat untuk membangun sistem.
Gambar III.14 Class Diagram
3.4.5. Sequence Diagram
Bentuk dari sequence diagram rancangan sistem penerimaan dan
pengeluaran pada TK. Assa’adatul Mahamudiyah digambarkan sebagai berikut:
1. Sequence Penerimaan Kas
2. Sequence Pengeluaran Kas
3.4.6. Component Diagram
Gambar III.18 Component Diagram
3.4.7. Development Diagram
Deployment Diagram memberikan gambaran bagaimana sistem secara fisik
yang terlihat, menampakan bagian software yang berjalan pada
bagian-bagian hardware. Sistem terdiri dari node-node dimana setiap node diwakili oleh
sebuah kubus. Garis yang menghubungkan antara dua kubus menunjukan hubungan
diantara kedua node tersebut. Berikut gambar deployement diagram:
Gambar III.19 Deployment Diagram
3.4.8. User Interfice
1. Halaman Login Admin
2. Halaman Menu Utama
Gambar III.21 Halaman Menu Utama
3. Halaman Tambah User
4. Halaman Edit User
Gambar III.23 Halaman Edit User
5. Halaman Tambah Akun
6. Halaman Edit Akun
Gambar III.25 Halaman Edit Akun
7. Halaman Tambah Kas Masuk
8. Halaman Tambah Kas Keluar
Gambar III.27 Halaman Tambah Kas Keluar
9. Halaman Laporan Akun
10. Halaman Laporan Kas Masuk
Gambar III.29 Halaman Laporan Kas Masuk
11. Halaman Laporan Kas Keluar
12. Halaman Laporan Jurnal
Gambar III.31 Halaman Laporan Jurnal
13. Halaman Laporan Buku Besar
3.5. Implementasi
3.5.1. Code Generartion
1. Transaksi Kas Masuk
a.
Index.jsp
<%@page import="java.sql.DriverManager"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> <%String driver = "com.mysql.jdbc.Driver";
String connectionUrl = "jdbc:mysql://localhost:3306/"; String database = "db_pengelolaankas";
String userid = "root"; String password = ""; try {
Class.forName(driver);
} catch (ClassNotFoundException e) { e.printStackTrace(); }
Connection connection = null; Statement statement = null; ResultSet resultSet = null; %>
<div class="col-md-12"> <!-- Basic Card Example --> <div class="card shadow mb-4"> <div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Table Master Kas Masuk</h6> </div>
<div class="card-body"> <div class="row"> <div class="col-md-3">
<a href="index.jsp?halaman=createkasmasuk" class="btn btn-primary btn-icon- split" title="Tambah Data">
<span class="icon text-white-50"> <i class="fa fa-plus"></i>
</span>
<span class="text">Data Kas Masuk</span> </a> </div> </div> <br> <div class="row"> <div class="col-md-12">
<div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead>
<tr>
<th>No</th>
<th>Kode Kas Masuk</th> <th>Tanggal</th> <th>Keterangan</th> <th>Nominal</th> <th>Action</th> </tr> </thead> <tbody> <% try { connection = DriverManager.getConnection(connectionUrl + database, userid, password);
statement = connection.createStatement(); String sql = "select * from tbl_kasmasuk"; resultSet = statement.executeQuery(sql); int no = 1; while (resultSet.next()) { %> <tr> <td align="center"><%=no++%></td> <td><%=resultSet.getString("kd_kasmasuk")%></td> <td><%=resultSet.getString("tgl_kasmasuk")%></td> <td><%=resultSet.getString("ket_kasmasuk")%></td> <td>Rp. <%=resultSet.getString("nominal_kasmasuk")%>.-</td> <td> <a href="index.jsp?halaman=detailkasmasuk&kd_kasmasuk=<%=resultSet.getString(" kd_kasmasuk")%>" title="Data Detail" class="btn btn-info btn-sm">
<i class="fa fa-info"> </i> </a>
<a onclick="if (confirm('Anda yakin menghapus data ini..?')){return true;} else {return false;}"
href="../kasmasuk/hapus.jsp?kd_kasmasuk=<%=resultSet.getString("kd_kasmasuk") %>" title="Hapus Data" class="btn btn-danger btn-sm">
<i class="fa fa-trash"></i> </a>
</td> </tr> <%
} connection.close(); } catch (Exception e) { e.printStackTrace(); } %> </tbody> </table> </div> </div> </div> </div> </div> </div>
b. Create.jsp
<%@page import="java.sql.DriverManager"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> <%String driver = "com.mysql.jdbc.Driver";
String connectionUrl = "jdbc:mysql://localhost:3306/"; String database = "db_pengelolaankas";
String userid = "root"; String password = ""; try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); }
Connection connection = null; Statement statement = null; ResultSet resultSet = null;
int year = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR); %>
<div class="col-md-12"> <!-- Basic Card Example --> <div class="card shadow mb-4"> <div class="card-header py-3"> <p align="right">
<a href="index.jsp?halaman=home">Home</a> <i class="fa fa-angle-right"></i> <a href="index.jsp?halaman=kasmasuk">Master Kas Masuk</a> <i class="fa fa-angle-double-right"></i> Add Kas Masuk
</p>
<h4 class="m-0 font-weight-bold text-primary">Add Kas Masuk </h4> </div>
<div class="card-body">
<form method="post" action="../kasmasuk/simpan.jsp"> <div class="form-group">
<div class="container"> <div class="row">
<div class="col-md-2">
<label>Kode Kas Masuk</label> <%
try {
connection = DriverManager.getConnection(connectionUrl + database, userid, password);
statement = connection.createStatement();
String sql = "select max(right(kd_kasmasuk,4)) as no from tbl_kasmasuk";
resultSet = statement.executeQuery(sql); while (resultSet.next()) {
if (resultSet.first() == false) {
out.println("<input type='hidden' class='form-control' name='kd_kasmasuk' placeholder='Kode Kas Masuk' maxlength='10' value='KM" + year + "0001'>");
out.println("<input type='text' readonly required class='form-control' name='kd_kasmasuk' placeholder='Kode Kas Masuk' maxlength='10' value='KM" + year + "0001'>");
} else {
resultSet.last();
int autonokm = resultSet.getInt(1) + 1; String nokm = String.valueOf(autonokm); int noLong = nokm.length();
for (int a = 1; a < 5 - noLong; a++) { nokm = "0" + nokm;
}
String nomkm = "KM" + year + nokm;
out.println("<input type='hidden' class='form-control' name='kd_kasmasuk' placeholder='Kode Kas Masuk' maxlength='10' value='" + nomkm + "'>");
out.println("<input type='text' readonly required class='form-control' name='kd_kasmasuk' placeholder='Kode Kas Masuk' maxlength='10' value='" + nomkm + "'>");
}
} catch (Exception e) { out.println(e); }
%>
<input type="hidden" class="form-control" readonly="" name="id_user" value="<%out.println(session.getAttribute("id_user"));%>"> </div> </div> <br> <div class="row"> <div class="col-md-3"> <label>Akun Kredit</label>
<select class="form-control" name="kd_akunkredit" required="">
<option value="">Pilih Akun Kredit</option> <%
String sqlakun = "select * from tbl_akun"; resultSet = statement.executeQuery(sqlakun); while (resultSet.next()) { %> <option value="<%=resultSet.getString("kd_akun")%>"><%=resultSet.getString("kd_akun" )%> - <%=resultSet.getString("nm_akun")%></option> <% }%> </select> </div> <div class="col-md-3"> <label>Tanggal</label>
<input type="date" class="form-control" name="tgl_kasmasuk" placeholder="Tanggal" required="">
</div>
<div class="col-md-3"> <label>Akun Kas</label>
<select class="form-control" name="kd_akunkas" required=""> <option value="">Pilih Akun Kas</option>
<%
String sqlakunkas = "select * from tbl_akun where left(kd_akun,2)=11"; resultSet = statement.executeQuery(sqlakunkas); while (resultSet.next()) { %> <option value="<%=resultSet.getString("kd_akun")%>"><%=resultSet.getString("kd_akun" )%> - <%=resultSet.getString("nm_akun")%></option> <% }%> </select>
</div>
<div class="col-md-3"> <label>Nominal</label>
<input type="number" min="0" class="form-control" name="nominal_kasmasuk" placeholder="Nominal" required=""> </div> </div> <br> <div class="row"> <div class="col-md-6"> <label>Keterangan</label>
<textarea class="form-control" name="ket_kasmasuk" placeholder="Keterangan" required=""></textarea> </div> </div> </div> </div> <hr>
<button class="btn btn-info" onclick="if (confirm('Simpan..?')) { return true;
} else { return false;
}" type="submit"><i class="fa fa-paper-plane"></i> Simpan</button> </form> </div> </div> </div>
c. Detail.jsp
<%@page import="java.sql.DriverManager"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> <%String kd_kasmasuk = request.getParameter("kd_kasmasuk"); String tgl = null;
String nom = null; String ket = null;
String driver = "com.mysql.jdbc.Driver";
String connectionUrl = "jdbc:mysql://localhost:3306/"; String database = "db_pengelolaankas";
String userid = "root"; String password = "";
try {
Class.forName(driver);
} catch (ClassNotFoundException e) { e.printStackTrace();
}
Connection connection = null; Statement statement = null; ResultSet resultSet = null;
connection = DriverManager.getConnection(connectionUrl + database, userid, password);
statement = connection.createStatement();
String sql = "select * from tbl_kasmasuk where kd_kasmasuk = '" + kd_kasmasuk + "'"; resultSet = statement.executeQuery(sql); if (resultSet.next()) { tgl = resultSet.getString("tgl_kasmasuk"); ket = resultSet.getString("ket_kasmasuk"); nom = resultSet.getString("nominal_kasmasuk"); } %> <div class="col-md-12"> <!-- Basic Card Example --> <div class="card shadow mb-4"> <div class="card-header py-3"> <p align="right">
<a href="index.jsp?halaman=home">Home</a> <i class="fa fa-angle-right"></i> <a href="index.jsp?halaman=kasmasuk">Master Kas Masuk</a> <i class="fa fa-angle-double-right"></i> Detail Kas Masuk
</p>
<h4 class="m-0 font-weight-bold text-primary">Table Detail Kas Masuk</h4> </div> <div class="card-body"> <div class="row"> <div class="col-md-12"> <div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead> <tr>
<th colspan="4" style="text-align: right;">Tanggal : <% out.print(tgl);%> </tr> <tr> <th colspan="4">Keterangan : <% out.print(ket);%> </tr> <tr> <th>No</th>
<th>Kode Kas Masuk</th> <th>Kode Akun</th> <th>Nama Akun</th> </tr> </thead> <tbody> <% try { connection = DriverManager.getConnection(connectionUrl + database, userid, password);
statement = connection.createStatement();
String sql1 = "select * from tbl_kasmasuk_detail join tbl_akun on tbl_kasmasuk_detail.kd_akun = tbl_akun.kd_akun where
tbl_kasmasuk_detail.kd_kasmasuk = '"+kd_kasmasuk+"'"; resultSet = statement.executeQuery(sql1); int no = 1; while (resultSet.next()) { %> <tr> <td align="center"><%=no++%></td> <td><%=resultSet.getString("kd_kasmasuk")%></td> <td><%=resultSet.getString("kd_akun")%></td> <td><%=resultSet.getString("nm_akun")%></td> </tr> <% } connection.close(); } catch (Exception e) { e.printStackTrace(); } %> </tbody> <tfoot> <tr>
<td colspan="3" align="center">Nominal (Kredit / Debet)</td>
<td align="center">Rp. <% out.print(nom); %>.-</td> </tr>
</table> </div> </div> </div> </div> </div> </div>
d. Hapus.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page import="java.sql.*,java.util.*"%>
<%
String kd_kasmasuk = request.getParameter("kd_kasmasuk"); try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_pengelolaankas", "root", ""); Statement st = conn.createStatement();
int a = st.executeUpdate("DELETE FROM tbl_jurnal WHERE kd_kas='" + kd_kasmasuk + "'");
String sql = "SELECT * FROM tbl_kasmasuk where kd_kasmasuk='" + kd_kasmasuk + "'";
ResultSet rss = st.executeQuery(sql); rss.next();
String salawal = rss.getString(5);
String sql1 = "SELECT max(kd_bukubesar) FROM tbl_bukubesar"; ResultSet rsss = st.executeQuery(sql1);
rsss.next();
String kdbuku = rsss.getString(1); if (kdbuku != null) {
String sql2 = "SELECT * FROM tbl_bukubesar where kd_bukubesar='" + kdbuku + "'";
ResultSet rssss = st.executeQuery(sql2); rssss.next();
String kd_bukubesar = rssss.getString(1); String kd_kas = rssss.getString(2); String kd_akun = rssss.getString(3); String nominal_debet = rssss.getString(4);
String nominal_kredit = rssss.getString(5); String tgl_bukubesar = rssss.getString(6); String saldo_debet = rssss.getString(7); String saldo_kredit = rssss.getString(8);
if (saldo_kredit.equals("0")) {
int saldebet = Integer.parseInt(saldo_debet); int saldawal = Integer.parseInt(salawal); int total = saldebet - saldawal;
if (total > 0) {
int math = Math.abs(total);
String saldo = Integer.toString(math);
int xs = st.executeUpdate("Update tbl_bukubesar set kd_kas='" + kd_kas + "',kd_akun='" + kd_akun + "',nominal_debet='" + nominal_debet + "',nominal_kredit='" + nominal_kredit + "',tgl_bukubesar='" + tgl_bukubesar + "',saldo_debet='" + saldo + "',saldo_kredit='0' where kd_bukubesar='" + kd_bukubesar + "'");
} else {
int math = Math.abs(total);
String saldo = Integer.toString(math);
int xs = st.executeUpdate("Update tbl_bukubesar set kd_kas='" + kd_kas + "',kd_akun='" + kd_akun + "',nominal_debet='" + nominal_debet + "',nominal_kredit='" + nominal_kredit + "',tgl_bukubesar='" + tgl_bukubesar + "',saldo_debet='0',saldo_kredit='" + saldo + "' where kd_bukubesar='" + kd_bukubesar + "'");
} } else {
int salkredit = Integer.parseInt(saldo_kredit); int saldawal = Integer.parseInt(salawal); int total = salkredit - saldawal;
if (total > 0) {
int math = Math.abs(total);
String saldo = Integer.toString(math);
int xs = st.executeUpdate("Update tbl_bukubesar set kd_kas='" + kd_kas + "',kd_akun='" + kd_akun + "',nominal_debet='" + nominal_debet + "',nominal_kredit='" + nominal_kredit + "',tgl_bukubesar='" + tgl_bukubesar + "',saldo_debet='" + saldo + "',saldo_kredit='0' where kd_bukubesar='" + kd_bukubesar + "'");
} else {
int math = Math.abs(total);
String saldo = Integer.toString(math);
int xs = st.executeUpdate("Update tbl_bukubesar set kd_kas='" + kd_kas + "',kd_akun='" + kd_akun + "',nominal_debet='" + nominal_debet + "',nominal_kredit='" + nominal_kredit + "',tgl_bukubesar='" + tgl_bukubesar + "',saldo_debet='0',saldo_kredit='" + saldo + "' where kd_bukubesar='" + kd_bukubesar + "'");
} } }
int b = st.executeUpdate("DELETE FROM tbl_bukubesar WHERE kd_kas='" + kd_kasmasuk + "'");
int i = st.executeUpdate("DELETE a.*,b.* FROM tbl_kasmasuk a,tbl_kasmasuk_detail b WHERE a.kd_kasmasuk='" + kd_kasmasuk + "' and b.kd_kasmasuk='" + kd_kasmasuk + "'");
out.println("<script>alert('Data Kas Masuk, Kode Kas Masuk : " + kd_kasmasuk + " berhasil Di Hapus')</script>"
+ "<meta http-equiv='refresh' content='1;../layout/index.jsp?halaman=kasmasuk'/>"); } catch (Exception e) { System.out.print(e); e.printStackTrace(); out.println(e); } %>
e. Simpan.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <% try { Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_pengelolaankas", "root", ""); Statement st = con.createStatement();
String id_user = request.getParameter("id_user");
String kd_kasmasuk = request.getParameter("kd_kasmasuk"); String kd_akunkredit = request.getParameter("kd_akunkredit"); String tgl_kasmasuk = request.getParameter("tgl_kasmasuk"); String ket_kasmasuk = request.getParameter("ket_kasmasuk"); String kd_akunkas = request.getParameter("kd_akunkas");
String nominal_kasmasuk = request.getParameter("nominal_kasmasuk"); String strQuery = "SELECT COUNT(*) FROM tbl_kasmasuk where kd_kasmasuk='" + kd_kasmasuk + "'";
ResultSet rs = st.executeQuery(strQuery); rs.next();
String Countrow = rs.getString(1); if (Countrow.equals("0")) {
int a = st.executeUpdate("insert into
k)values('" + kd_kasmasuk + "','" + id_user + "','" + tgl_kasmasuk + "','" + ket_kasmasuk + "','" + nominal_kasmasuk + "')");
String sql = "SELECT max(kd_bukubesar) FROM tbl_bukubesar"; ResultSet rss = st.executeQuery(sql);
rss.next();
String kdbuku = rss.getString(1); if (kdbuku != null) {
String sql1 = "SELECT * FROM tbl_bukubesar where kd_bukubesar='" + kdbuku + "'";
ResultSet rsss = st.executeQuery(sql1); rsss.next();
String saldodebet = rsss.getString(7); String saldokredit = rsss.getString(8);
if (saldokredit.equals("0")) {
int debet = Integer.parseInt(saldodebet);
int kasmasukdebet = Integer.parseInt(nominal_kasmasuk); int total = debet + kasmasukdebet;
String saldo_debet = Integer.toString(total); int d = st.executeUpdate("insert into
tbl_bukubesar(kd_kas,kd_akun,nominal_debet,nominal_kredit,tgl_bukubesar,saldo_ debet,saldo_kredit)values('" + kd_kasmasuk + "','" + kd_akunkredit + "','" +
nominal_kasmasuk + "','0','" + tgl_kasmasuk + "','" + saldo_debet + "','0')"); } else {
int kredit = Integer.parseInt(saldokredit);
int kasmasukdebet = Integer.parseInt(nominal_kasmasuk); int total = kredit - kasmasukdebet;
if (total > 0) {
int math = Math.abs(total);
String saldo_kredit = Integer.toString(math); int d = st.executeUpdate("insert into
tbl_bukubesar(kd_kas,kd_akun,nominal_debet,nominal_kredit,tgl_bukubesar,saldo_ debet,saldo_kredit)values('" + kd_kasmasuk + "','" + kd_akunkredit + "','" +
nominal_kasmasuk + "','0','" + tgl_kasmasuk + "','0','" + saldo_kredit + "')"); } else {
int math = Math.abs(total);
String saldo_debet = Integer.toString(math); int d = st.executeUpdate("insert into
tbl_bukubesar(kd_kas,kd_akun,nominal_debet,nominal_kredit,tgl_bukubesar,saldo_ debet,saldo_kredit)values('" + kd_kasmasuk + "','" + kd_akunkredit + "','" +
nominal_kasmasuk + "','0','" + tgl_kasmasuk + "','" + saldo_debet + "','0')"); }
} else {
int d = st.executeUpdate("insert into
tbl_bukubesar(kd_kas,kd_akun,nominal_debet,nominal_kredit,tgl_bukubesar,saldo_ debet,saldo_kredit)values('" + kd_kasmasuk + "','" + kd_akunkredit + "','" +
nominal_kasmasuk + "','0','" + tgl_kasmasuk + "','" + nominal_kasmasuk + "','0')"); }
for (int i = 1; i <= 2; i++) { if (i % 2 == 0) {
int b = st.executeUpdate("insert into
tbl_kasmasuk_detail(kd_kasmasuk,kd_akun)values('" + kd_kasmasuk + "','" + kd_akunkredit + "')");
int c = st.executeUpdate("insert into
tbl_jurnal(kd_kas,kd_akun,tgl_jurnal,saldo_debet,saldo_kredit)values('" + kd_kasmasuk + "','" + kd_akunkredit + "','" + tgl_kasmasuk + "','0','"+ nominal_kasmasuk +"')");
} else if (i % 2 == 1) {
int b = st.executeUpdate("insert into
tbl_kasmasuk_detail(kd_kasmasuk,kd_akun)values('" + kd_kasmasuk + "','" + kd_akunkas + "')");
int c = st.executeUpdate("insert into
tbl_jurnal(kd_kas,kd_akun,tgl_jurnal,saldo_debet,saldo_kredit)values('" +
kd_kasmasuk + "','" + kd_akunkas + "','" + tgl_kasmasuk + "','"+ nominal_kasmasuk +"','0')");
} }
out.println("<script>alert('Data Kas Masuk, Kode Kas Masuk : " + kd_kasmasuk + " berhasil Disimpan')</script>"
+ "<meta http-equiv='refresh'
content='1;../layout/index.jsp?halaman=kasmasuk'/>"); } else {
out.println("<script>alert('Data Kas Masuk, Kode Kas Masuk : " + kd_kasmasuk + " Sudah Ada')</script>"
+ "<meta http-equiv='refresh' content='1;../layout/index.jsp?halaman=createkasmasuk'/>"); } } catch (Exception e) { e.printStackTrace(); out.println(e); } %>
2. Transaksi Kas Keluar
a. Index.jsp
<%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> <%
String driver = "com.mysql.jdbc.Driver";
String connectionUrl = "jdbc:mysql://localhost:3306/"; String database = "db_pengelolaankas";
String userid = "root"; String password = ""; try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); }
Connection connection = null; Statement statement = null; ResultSet resultSet = null; %>
<div class="col-md-12"> <!-- Basic Card Example --> <div class="card shadow mb-4"> <div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Table Master Kas Keluar</h6>
</div>
<div class="card-body"> <div class="row"> <div class="col-md-3">
<a href="index.jsp?halaman=createkaskeluar" class="btn btn-primary btn-icon-split" title="Tambah Data">
<span class="icon text-white-50"> <i class="fa fa-plus"></i> </span>
<span class="text">Data Kas Keluar</span> </a>
</div> </div> <br>
<div class="col-md-12">
<div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead> <tr>
<th>No</th>
<th>Kode Kas Keluar</th> <th>Tanggal</th> <th>Keterangan</th> <th>Nominal</th> <th>Action</th> </tr> </thead> <tbody> <% try { connection = DriverManager.getConnection(connectionUrl + database, userid, password);
statement = connection.createStatement(); String sql = "select * from tbl_kaskeluar"; resultSet = statement.executeQuery(sql); int no = 1; while (resultSet.next()) { %> <tr> <td align="center"><%=no++%></td> <td><%=resultSet.getString("kd_kaskeluar")%></td> <td><%=resultSet.getString("tgl_kaskeluar")%></td> <td><%=resultSet.getString("ket_kaskeluar")%></td> <td>Rp. <%=resultSet.getString("nominal_kaskeluar")%>.-</td> <td> <a href="index.jsp?halaman=detailkaskeluar&kd_kaskeluar=<%=resultSet.getString("k d_kaskeluar")%>" title="Data Detail" class="btn btn-info btn-sm">
<i class="fa fa-info"> </i> </a>
<a onclick="if (confirm('Anda yakin menghapus data ini..?')){return true;} else {return false;}"
href="../kaskeluar/hapus.jsp?kd_kaskeluar=<%=resultSet.getString("kd_kaskeluar") %>" title="Hapus Data" class="btn btn-danger btn-sm">
<i class="fa fa-trash"></i> </a>
</td> </tr>
<% } connection.close(); } catch (Exception e) { e.printStackTrace(); } %> </tbody> </table> </div> </div> </div> </div> </div> </div>
b. Create.jsp
<%@page import="java.sql.DriverManager"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> <%String driver = "com.mysql.jdbc.Driver";
String connectionUrl = "jdbc:mysql://localhost:3306/"; String database = "db_pengelolaankas";
String userid = "root"; String password = ""; try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); }
Connection connection = null; Statement statement = null; ResultSet resultSet = null;
int year = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR); %>
<div class="col-md-12"> <!-- Basic Card Example --> <div class="card shadow mb-4">
<div class="card-header py-3"> <p align="right">
<a href="index.jsp?halaman=home">Home</a> <i class="fa fa-angle-right"></i> <a href="index.jsp?halaman=kaskeluar">Master Kas Keluar</a> <i class="fa fa-angle-double-right"></i> Add Kas Keluar
</p>
<h4 class="m-0 font-weight-bold text-primary">Add Kas Keluar </h4> </div>
<div class="card-body">
<form method="post" action="../kaskeluar/simpan.jsp"> <div class="form-group">
<div class="container"> <div class="row">
<div class="col-md-2">
<label>Kode Kas Keluar</label> <%
try {
connection = DriverManager.getConnection(connectionUrl + database, userid, password);
statement = connection.createStatement();
String sql = "select max(right(kd_kaskeluar,4)) as no from tbl_kaskeluar";
resultSet = statement.executeQuery(sql); while (resultSet.next()) {
if (resultSet.first() == false) {
out.println("<input type='hidden' class='form-control' name='kd_kaskeluar' placeholder='Kode Kas Keluar' maxlength='10' value='KK" + year + "0001'>");
out.println("<input type='text' readonly required class='form-control' name='kd_kaskeluar' placeholder='Kode Kas Keluar' maxlength='10' value='KK" + year + "0001'>");
} else {
resultSet.last();
int autonokk = resultSet.getInt(1) + 1; String nokk = String.valueOf(autonokk); int noLong = nokk.length();
for (int a = 1; a < 5 - noLong; a++) { nokk = "0" + nokk;
}
String nomkk = "KK" + year + nokk;
out.println("<input type='hidden' class='form-control' name='kd_kaskeluar' placeholder='Kode Kas Keluar' maxlength='10' value='" + nomkk + "'>");
out.println("<input type='text' readonly required class='form-control' name='kd_kaskeluar' placeholder='Kode Kas Keluar' maxlength='10' value='" + nomkk + "'>");
} } } catch (Exception e) { out.println(e); } %>
<input type="hidden" class="form-control" readonly="" name="id_user" value="<%out.println(session.getAttribute("id_user"));%>"> </div> </div> <br> <div class="row"> <div class="col-md-3"> <label>Akun Kas</label>
<select class="form-control" name="kd_akunkas" required=""> <option value="">Pilih Akun Kas</option>
<%
String sqlakunkas = "select * from tbl_akun where left(kd_akun,2)=11"; resultSet = statement.executeQuery(sqlakunkas); while (resultSet.next()) { %> <option value="<%=resultSet.getString("kd_akun")%>"><%=resultSet.getString("kd_akun" )%> - <%=resultSet.getString("nm_akun")%></option> <% }%> </select> </div> <div class="col-md-3"> <label>Tanggal</label>
<input type="date" class="form-control" name="tgl_kaskeluar" placeholder="Tanggal" required="">
</div>
<div class="col-md-3"> <label>Akun Debet</label>
<select class="form-control" name="kd_akundebet" required="">
<option value="">Pilih Akun Debet</option> <%
String sqlakun = "select * from tbl_akun"; resultSet = statement.executeQuery(sqlakun); while (resultSet.next()) {
<option value="<%=resultSet.getString("kd_akun")%>"><%=resultSet.getString("kd_akun" )%> - <%=resultSet.getString("nm_akun")%></option> <% }%> </select> </div> <div class="col-md-3"> <label>Nominal</label>
<input type="number" min="0" class="form-control" name="nominal_kaskeluar" placeholder="Nominal" required=""> </div> </div> <br> <div class="row"> <div class="col-md-6"> <label>Keterangan</label>
<textarea class="form-control" name="ket_kaskeluar" placeholder="Keterangan" required=""></textarea> </div> </div> </div> </div> <hr>
<button class="btn btn-info" onclick="if (confirm('Simpan..?')) { return true;
} else { return false;
}" type="submit"><i class="fa fa-paper-plane"></i> Simpan</button> </form> </div> </div> </div>
c. Detail.jsp
<%@page import="java.sql.DriverManager"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> <%String kd_kaskeluar = request.getParameter("kd_kaskeluar"); String tgl = null;
String nom = null; String ket = null;
String driver = "com.mysql.jdbc.Driver";
String connectionUrl = "jdbc:mysql://localhost:3306/"; String database = "db_pengelolaankas";
String userid = "root"; String password = ""; try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); }
Connection connection = null; Statement statement = null; ResultSet resultSet = null;
connection = DriverManager.getConnection(connectionUrl + database, userid, password);
statement = connection.createStatement();
String sql = "select * from tbl_kaskeluar where kd_kaskeluar = '" + kd_kaskeluar + "'"; resultSet = statement.executeQuery(sql); if (resultSet.next()) { tgl = resultSet.getString("tgl_kaskeluar"); ket = resultSet.getString("ket_kaskeluar"); nom = resultSet.getString("nominal_kaskeluar"); } %> <div class="col-md-12"> <!-- Basic Card Example --> <div class="card shadow mb-4"> <div class="card-header py-3"> <p align="right">
<a href="index.jsp?halaman=home">Home</a> <i class="fa fa-angle-right"></i> <a href="index.jsp?halaman=kaskeluar">Master Kas Keluar</a> <i class="fa fa-angle-double-right"></i> Detail Kas Keluar
</p>
<h4 class="m-0 font-weight-bold text-primary">Table Detail Kas Keluar</h4> </div> <div class="card-body"> <div class="row"> <div class="col-md-12"> <div class="table-responsive">