Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
BAB III
ANALISA SISTEM BERJALAN
3.1. Tinjauan Perusahaan
PT Anugerah Rizki Putra Karawang diresmikan sejak tanggal 01 November
2008 dan disahkan secara hukum dengan nomor 693/BH/MENEG.1/XII/2007
sebagai jasa jahit sarung tangan beralamat di jalan Aji abdul gani dusun cariu timur
Rt 03/Rw 03 desa. pangula utara kecamatan kota baru kabupaten karawang . yang
memiliki luas gedung 10.000 m2 di dalam gedung berisi 50 mesin jait dan
beroperasi hanya enam hari , yaitu setiap hari Senin – Jumat pukul 07.30 – 16.30
WIB sedangkan hari Sabtu hanya beroperasi hingga pukul 13.00 WIB dan hari
Minggu diliburkan.
3.2.1. Sejarah Perusahaan
PT Anugerah Rizki Putra didirikan atas gagasan dan ide dari Ibu Ira
Suwira. Karena melihat banyaknya pengangguran di daerah tersebut, akhirnya Ibu
Ira berinisiatif untuk membuka peluang usaha dan mengurangi pengangguran di
daerah tersebut. Jadi Ibu Ira membangun sebuah usaha kecil yaitu perusahaan jasa
jahit, dia membangun usaha jahit karena pernah bekerja di perusahaan besar
menjadi operator penjahit. Pertama kali Ibu Ira membuka usahanya, dia hanya
memperkerjakan 2 orang pegawai saja, pada waktu itu Bu Ira kesusahan dengan
tempat usahanya, jadi ibu ira memutuskan untuk mengontrak di sebuah bangunan.
Tapi selama dua tahun usaha nya selalu berpindah-pindah tempat, karena
keterbatasan sesuatu hal.
Dari saat berpindah – pindah tempat, usaha Bu Ira semakin meningkat
dengan pesanan jahitan yang selalu ada, sehingga karyawan Bu Ira semakin
bertambah, dan penghasilannya pun semakin meningkat. Jadi Bu Ira semakin
mengembangkan usahanya itu dan membeli tanah sendiri dengan hasil usahanya.
Setelah dua tahun mengontrak di sebuah gedung yang berpindah-pindah, Bu Ira
membeli salah satu tanah di daerah dusun cariu timur Rt 03/03 pangula utara kota
baru. Semakin pesatnya usaha ibu ira, lalu ibu ira berinisiatif membangun sebuah
gedung untuk usahanya sendiri di tanah yang sudah di beli, setelah Bu Ira memiliki
gedung usaha sendiri, lalu Bu ira pindah usahanya ke gedung milik sendiri.
Pada saat itu Manager PT. Seyon Indonesia menawarkan kerja sama
dengan Bu Ira, untuk menjahit produk sarung tangan PT. Seyon Indonesia. Pada
tahun 2010 Bu ira resmi bekerja sama dengan PT Seyon Indonesia, dan mempunyai
karyawan hampir 52 orang, lalu resmi menjadi perusahaan di bidang jasa dan di
beri nama PT. Anugerah Rizki Putra. Semua bahan yang diperlukan untuk produksi
dari PT. Seyon Indonesi sedangkan PT.Anugerah Rizki Putra hanya menjahit bahan
yang dikirim oleh PT. Seyon Indonesia menjadi barang jadi yaitu sarung tangan,
Setelah selesai PT. Anugerah Rizki Putra memberikan semua hasil sarung tangan ke
PT. Seyon Indonesia. Lalu PT.Seyon Indonesia membayar nya melalui cek,
sehingga perusahaan Bu Ira pun pendapatan nya stabil, karena dia sudah bekerja
sama dengan PT. Seyon Indonesia dan pengeluaran kas nya juga seperti gaji
karyawan tetap sebulan sekali, dan prosedur perhitungan pendapatan kas dan
pengeluaran kas pun berjalan setiap bulan.
3.1.2. Struktur Organisasi dan Fungsi
Sumber: PT. Anugerah Rizki Putra
Gambar III.1
Struktur Manajemen PT Anugrah Rizki Putra
Berikut ini merupakan fungsi dari masing-masing anggota manejemen
perusahaan :
1. Pemilik Perusahaan
Pemilik perusahaan adalah dia yang mengelola perusahaan secara
menyeluruh. Dan mempunyai tugas sebagai berikut :
a. Menyusun program kerja yang sedang berjalan.
b. Menjalankan kerjasama antara PT.Anugerah Rizki putra dengan PT.
Seyon Indonesia
c. Memberikan hasil laporan produk sarung tangan ke PT. Seyon Indonesia.
d. Mengambil hasil bayaran dari PT. Seyon Indonesia.
DIREKTUR
IBU IRA SUIRA
PENGAWAS PRODUKSI
IBU SUTRIA
KARYAWAN
ADMIN
IBU ROHATIN
2. Admin
Admin adalah orang yang mengerjakan sistem yang ada di
perusahaan . tugas/wewenangnya sebagai berikut :
a. Memeriksa kiriman bahan dari PT . Seyon.
b. Membantu memeriksa hasil jahit untuk di kirim
c. Menghitung hasil produk sarung tangan yang sudah selesai.
d. Menghitung biaya pengeluaran kas.
e. Pembukuan kas
3. Pengawas Produksi
Pengawas Produksi adalah orang yang mengawasi berjalannya produksi,
mempunyai tugas/wewenang sebagai berikut:
a. Mengawasi setiap karyawan.
b. Membantu keperluan produksi pada karyawan.
c. Mengecek hasil jahit karyawan.
4. Karyawan
Karyawan adalah orang yang bekerja/mengerjakan semua proses produksi
(menjahit), mempunyai tugas/wewenang sebagi berikut;
Menjahit bahan mentah menjadi barang jadi.
3.2. Tinjauan Kasus
Perusahaan PT. Anugerah Rizki Putra perusahaan yang bergerak dalam
bidang jasa, yaitu perusahaan jasa menjahit sarung tangan, yang bekerja sama dengan
perusahaan PT. Seyon Indonesia, perusahaan ini masih membuat laporan dengan
sederhana yang masih menggunakan buku dan alat tulis, dengan perhitungan yang
masih menggunakan kalkulator.
3.2.1. Proses Bisnis Sistem Berjalan
1. Prosedur Pengajuan kas keluar dan penerimaan kas
Admin menghitung pengeluaran kas seperti biaya gaji perhari selama satu bulan,
biaya listrik dan biaya pembelian alat yang di butuhkan perusahaan . Kemudian
admin mengajukan data kas keluar kepada pemilik, lalu pemilik memberikan dana
pengeluaran kas kepada admin. Lalu admin mencatat dana penerimaan kas
tersebut ke dalam buku kas.
2. Prosedur Pembayaran kas keluar
Setelah admin menerima dana kas keluar, admin melakukan pembayaran
pengeluaran kas seperti biaya gaji yang di berikan kepada karyawan, kemudian
karyawan menerima gaji, dan karyawan melakukan ttd terima gaji untuk di
serahkan kepada admin sebagai bukti sudah menerima gaji. Admin melakukan
pembayaran listrik kepada PLN lalu PLN memberikan struk pembayaran listrik
kepada admin sebagai bukti sudah melakukan pembayaran listrik . Di saat
perusahan membutuhkan peralatan yang dibutuhkan, Admin membeli alat yang
dibutuhkan untuk kegiatan produksi ke toko, lalu toko memberikan nota kepada
admin sebagai bukti atas pembelian.
3. Prosedur Pencatatan Laporan Kas
Semua bukti transaksi tersebut di arsipkan oleh admin ke dalam arsip pengeluaran
kas. Setelah itu Admin mencatat semua transaksi pembayaran pengeluaran kas ke
dalam buku pengeluaran kas dengan jumlah yang tercatat pada bukti transaksi
pengeluaran kas, kemudian menyerahkan buku Laporan kas dan bukti
pengeluaran kas kepada pemilik.
3.2.2. Activity Diagram
1. Prosedur Pengajuan kas keluar dan penerimaan kas
Gambar III.2
Activity Diagram
Pengajuan kas keluar dan penerimaan kas
3. Prosedur Pencatatan Laporan Kas
Gambar III.4
Activity Diagram
Pencatatan Laporan Kas
3.2.3. Dokumen Masukan
1. Nama Dokumen : Nota Pembelian
Fungsi : Untuk mengetahui pembelian pengeluaran kas
Sumber : Toko
Tujuan : Admin
Freuensi : Setiap Transaksi
Media : Kertas
Format : lampiran A-1
2. Nama Dokumen : Struk Pembayaran Listrik
Fungsi : Untuk mengetahuirincian biaya listrik
Sumber : PLN
Tujuan : Admin
Freuensi : Setiap bulan
Media : Kertas
Format : lampiran A-2
3. Nama Dokumen : Tanda Terima Gaji
Fungsi : Untuk bukti pembayaran gaji
Sumber : Karyawan
Tujuan : Admin
Freuensi : Setiap Pembayaran Gaji
Media : Kertas
Format : lampiran A-3
3.2.4. Dokumen Keluaran
1. Nama Dokumen : Buku Catatan Pengeluaran Kas
Fungsi : Untukpengeularan perusahaan
Sumber : Admin
Tujuan : Pemilik perusahaan
Freuensi : Setiap ada transaksi pengeluaran kas
Media : Kertas
Format : lampiran B-1
3.2.5. Permasalahan Pokok
Setelah melakukan pengamatan pada PT . Anugerah Rizki Putra, penulis
menemukan beberapa permasalahan yang di hadapi dalam sistem berjalan:
1. Semua dokumen-dokumen pengeluaran kas tidak tersusun dan tersimpan
dengan rapi, sehingga mengakibatkan hilang dan rusaknya dokumen
2. Pembuatan laporan keuangan masih menggunakan proses pencatatan dalam
buku sebagai alat tulis dan penghitungan menggunakan kalkulator, sehingga
membutuhkan waktu yang lama dan tidak efisien.
3. Tidak adanya pencatatan jurnal, sehingga tidak
3.2.6. Pemecahan Masalah
Berdasarkan uraian masalah yang diteliti pada PT. Anugerah Rizki
Putra, solusi untuk memecahkan permasalahan yang ada ialah dengan
penyediaan sistem yang berkualitas dan mampu bekerja secara efektif dan cepat,
maka penulis akan memberikan pemecahan masalah sebagai berikut:
1. Penyimpanan doumen-dokumen penting disimpan lebih rapi dan sesuia
dengan kelompok dokumennya, sehingga dapat memudahkan pencarian
dokumen saat dibutuhkan.
2. Perlu dibuatkan program yang dapat membantu dalam proses penginputan,
perhitungan dan pembuatan laporan agar dapat memberikan efisiensi waktu
dan kinerja admin.
3. Membuat jurnal untuk menginput transaksi dari pengeluaran kas yang
terjadi pada PT. Anugerah Rizki Putra.
3.3. Analisis Kebutuhan Software
3.3.1. Tahapan Analisis
Analisis kebutuhan software untuk program pengeluaran kas pada
PT.Anugerah Rizki Putra di usulkan dengan beberapa prosedur di antaranya:
A. Admin:
A.1. Admin dapat login
A.2. Admin dapat mengelola data transaksi
A.3. Admin dapat mengelola file master
A.4. Admin dapat mengakses laporan
B. Pemilik:
B.1. Pemilik dapat login
B.2. Pemilik dapat mengakses laporan
3.3.2. Use case Diagram
A.1. Use case Diagram Login Admin
Gambar III.5
Use Case Diagram Halaman Login Admin
Tabel III.1
Deskripsi Use Case Diagram Halaman Login Admin
Use Case Narative Halaman Admin
Tujuan
Admin dapat melihat data yang ada di
dalam sistem halaman admin
Deskripsi
Sistem ini memungkinkan aktor untuk
masuk ke halaman admin yang di
dalamnya ada file master, data transaksi
dan laporan
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka Aplikasi halaman
admin
Aksi Aktor Reaksi Sistem
1. Aktor memilih file master Sistem ini akan menampilkan informasi
file master
2. Aktor memilih data transaksi Sistem ini akan menampilakan data
transaksi
3. Aktor memilih Laporan Sistem ini akan menampilakan data
laporan
Kondisi Akhir Jika perintah sesuai maka sistem akan
menampilkan apa yang di inginkan
A.2. Use case Diagram Mengelola Transaksi
Gambar III.6
Use Case Diagram Transaksi
Tabel III.2
Deskripsi Use Case Diagram Transaksi
Use Case Narative Halaman Admin
Tujuan
Admin dapat melihat data yang ada di
dalam sistem transaksi
Deskripsi
Sistem ini memungkinkan aktor untuk
masuk ke halaman transaksi yang di
dalamnya ada pemasukan dan
pengeluaran
Skenario Utama
Aktor Admin
Kondisi Awal Aktor memilih data transaksi
pemasukan atau transaksi pengeluaran
Aksi Aktor Reaksi Sistem
1. Aktor memilih tombol “Baru”
2. Aktor mengitput data transaksi
3. Aktor memilih tombol “Simpan”
Sistem menyimpan data transaksi dan
menampikan keterangan berhasil
menyimpan data
4. Aktor memillih tombol “ Cari”
berdasarkan tanggal pemasukan
Sistem mencari data transaksi
pemasukan
5. Aktor memilih data transaksi
pemasukan atau pengeluaran
Sistem ini akan menampilakan data
yang di cari
6. Aktor merubah data yang salah
7. Aktor memilih tombol “Ubah”
Sitem ini akan mengubah data
kedalam database
8. Aktor memilih tombol “Hapus” Sistem ini akan menghapus data
Kondisi Akhir Jika perintah sesuai maka sistem akan
menampilkan apa yang di inginkan
A.3. Use case Diagram Mengelola File Master
Gambar III.7
Use Case Diagram File Master
Tabel III.3
Deskripsi Use Case Diagram File Master
Use Case Narative Halaman Admin
Tujuan
Admin dapat melihat data yang ada di
dalam sistem file master
Deskripsi
Sistem ini memungkinkan aktor untuk
masuk ke halaman File master yang di
dalamnya ada data akun, saldo awal
dan jurnal
Skenario Utama
Aktor Admin
Kondisi Awal Aktor memilih data akun, Jurnal dan
Saldo Awal
Aksi Aktor Reaksi Sistem
1. Aktor memilih tombol “Baru”
2. Aktor mengitput data transaksi
3. Aktor memilih tombol “Simpan”
Sistem menyimpan data akun dan
menampikan keterangan berhasil
menyimpan data
4. Aktor memillih tombol “ Cari”
berdasarkan kode akun atau no
jurnal
Sistem mencari data akun atau data
jurnal
5. Aktor memilih data akun atau data
jurnal
Sistem ini akan menampilakan data
yang di cari
6. Aktor memilih tombol “Hapus” Sitem ini akan menghapus data
7. Aktor mengedit data akun yang
salah
8. Aktor memilih tombol “Edit”
Sistem akan mengubah ke daam
database
Kondisi Akhir Jika perintah sesuai maka sistem akan
menampilkan apa yang di inginkan
A.4. Use case Diagram Mengakses Laporan
Gambar III.8
Use Case Diagram Halaman Laporan
Tabel III.4
Deskripsi Use Case Diagram Halaman Laporan
Use Case Narative Halaman Admin
Tujuan
Admin dapat melihat data yang ada
di dalam sistem laporan
Deskripsi
Sistem ini memungkinkan aktor
untuk masuk ke halaman laporan
yang di dalamnya ada laporan
anggaran keluar dan laporan jurnal
Skenario Utama
Aktor Admin
Kondisi Awal Aktor memilih data laporan anggaran
keluar dan laporan jurnal
Aksi Aktor Reaksi Sistem
1. Aktor memillih tombol “ Cari”
berdasarkan tanggal
Sistem mencari data laporan
pengeluaran atau jurnal.
2. Aktor memilih data transaksi
pengeluaran atau jurnal
Sistem ini akan menampilakan data
yang di cari
3. Aktor memilih tombol “Tampilkan” Sitem ini akan menampikan data
4. Aktor memilih tombol “Cetak” Sistem ini akan mencetak data
Kondisi Akhir
Jika perintah sesuai maka sistem
akan menampilkan apa yang di
inginkan
Tabel III.5
Deskripsi Use Case Diagram Halaman Login Pemilik
Use Case Narative Halaman Admin
Tujuan
Admin dapat melihat data yang ada
di dalam sistem halaman pemilik
Deskripsi
Sistem ini memungkinkan aktor
untuk masuk ke halaman admin
yang di dalamnya ada laporan kas
keluar dan laporan jurnal
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka Aplikasi halaman
admin
Aksi Aktor Reaksi Sistem
1. Aktor memilih laporan kas keluar Sistem ini akan menampilkan
informasi kas keluar
2. Aktor memilih laporan jurnal Sistem ini akan menampilakan data
jurnal
Kondisi Akhir Jika perintah sesuai maka sistem
akan menampilkan apa yang di
inginkan
B.2. Use case Diagram mengakses Laporan
Gambar III.10
Use Case Diagram Halaman Laporan Pemilik
Tabel III.6
Deskripsi Use Case Diagram Halaman Laporan Pemilik
Use Case Narative Halaman pemilik
Tujuan
Pemlik dapat melihat data yang ada di
dalam sistem laporan
Deskripsi
Sistem ini memungkinkan aktor untuk
masuk ke halaman laporan yang di
dalamnya ada laporan kas keluar dan
laporan jurnal
Skenario Utama
Aktor Admin
Kondisi Awal Aktor memilih data laporan kas keluar
dan laporan jurnal
Aksi Aktor Reaksi Sistem
5. Aktor memillih tombol “ Cari”
berdasarkan tanggal
Sistem mencari data laporan pengeluaran
kas atau jurnal.
6. Aktor memilih data transaksi
pengeluaran atau jurnal
Sistem ini akan menampilakan data yang
di cari
7. Aktor memilih tombol “Tampilkan” Sitem ini akan menampikan data
Kondisi Akhir Jika perintah sesuai maka sistem akan
menampilkan apa yang di inginkan
3.3.3. Activity Diagram
A.1. Activity Diagram Halaman login Admin
Gambar III.11
Activity Diagram Halaman Login Admin
A.2. Activity Diagram Halaman transaksi
1. Transaksi Pemasukan
Gambar III.12
Activity Diagram Halaman Transaksi Pemasukan
A.3. Activity Diagram Halaman file master
1. Data Akun
Gambar III.14
Activity Diagram Halaman Data Akun
A.4. Activity Diagram Halaman laporan
1. Laporan pengeluaran kas
Gambar III.17
Activity Diagram Halaman Laporan pengeluaran kas
B.2. Activity Diagram Halaman Laporan
1. Laporan pengeluaran kas
Gambar III.20
Activity Diagram Halaman laporan Pengeluaran kas pemilik
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
ADMINMaster_akun
Kas_out
Membuat
1
1
*User_name
Nama_lengkapHak_akses
password
tmJurnal
1
*No_jurnal
Kode_akun debit
kredit
Tanggal
keterangan
Saldo_normal
Jenis_akun
*Kode_akun
Nama_akun
Tgl_km
keterangan
Tgl_date
memo
Kode_akun
nominal
No_kk
Membuat
Membuat
Kas_out_detail
Kas_in
Memiliki Saldo_awal
**Kode_akun
Saldo_debet
Saldo_kredit
1
*No_kk
Kode_akun
nominal
*No_km
Kode_akun
nominal
1
MM
1
11
Membuat1 1
Gambar III.22
Entity Relationship Diagram (ERD)
3.4.2. Logical Record Structure (LRS)
admin
*user_namenama_lengkaphak_aksespassword
tmjurnal
*no_jurnalkode_akuntanggaldebitkreditketerangan
master_ akun
*kode_akunnama_akunjenis_akunsaldo_normalid admin
Kas_in
no_km (PK)tgl_kmkode_akunnominalketerangan
Kas_out_detail
no_kkkode_akunnominal
Kas_out
*no_kk (PK)tgl_datekode_akunmemonominal
1
1
1 1
M
1
M
Saldo_awal
*kode_akunsaldo_debitsaldo_kredit
1
1
1
1
1
M
1
Gambar III.23
Logical Record Structure (LRS)
2.4.3. Spesifikasi File
a. Spesifikasi File Data Admin
Nama Database : kaskecil
Nama File : admin
Tipe File : File master
Akses File : Random
Panjang Record : 62 karakter
Field Key : id_admin
Tabel III.7
Spesifikasi File Data Admin
No Elemen Data Akronim Tipe Panjang Keterangan
1 user name user_name varchar 7 Primary key
2 Nama lengkap nama_lengkap varchar 25
3 password Password varchar 15
5 hak akses hak _akses varchar 15 FK
b. Spesifikasi File Data Akun
Nama Database : kaskecil
Nama File : master_akun
Tipe File : File master
Akses File : Random
Panjang Record : 95 karakter
Field Key : kd_akun
Tabel III.8
Spesifikasi File Data Akun
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode akun kd_akun varchar 20 Primary key
2 Nama akun Nama varchar 30
3 Jenis akun jenis_akun varchar 15
4 Saldo awal saldo_normal varchar 20
c. Spesifikasi File Saldo Awal
Nama Database : kaskecil
Nama File : saldo_awal
Tipe File : File master
Akses File : Random
Panjang Record : 42 karakter
Field Key : kd_akun
Tabel III.9
Spesifikasi File Data Akun
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode akun kd_akun varchar 20 Primary key
2 Saldo debit Saldo_debit int 11
3 Saldo kredit Saldo_kredit int 11
d. Spesifikasi File Kas masuk
Nama Database : kaskecil
Nama File : kas_in
Tipe File : Transaksi
Akses File : Random
Panjang Record : 121 karakter
Field Key : no_km
Tabel III.10
Spesifikasi File Kas Masuk
No Elemen Data Akronim Tipe Panjang Keterangan
1 No kas masuk no_km varchar 20 Primary key
2 Kode akun Kode_akun varchar 20 FK
3 Keterangan Keterangan varchar 50
4 Tanggal kas masuk Tgl_km varchar 20
5 Nomimal Nominal int 11
e. Spesifikasi File Kas keluar detail
Nama Database : kaskecil
Nama File : kas_out_detail
Tipe File : Transaksi
Akses File : Random
Panjang Record : 51 karakter
Field Key : no_kk
Tabel III.11
Spesifikasi File Kas Keluar Detail
No Elemen Data Akronim Tipe Panjang Keterangan
1 No kas keluar no_kk varchar 20 Primary key
2 Kode akun Kode_akun varchar 20 FK
3 Nomimal nominal int 11
f. Spesifikasi File Kas keluar
Nama Database : kaskecil
Nama File : kas_out
Tipe File : Transaksi
Akses File : Random
Panjang Record : 121 karakter
Field Key : no_kk
Tabel III.12
Spesifikasi File Kas Masuk
No Elemen Data Akronim Tipe Panjang Keterangan
1 No kas keluar no_kk varchar 20 Primary key
2 Kode akun Kode_akun varchar 20 FK
3 Keterangan memo varchar 50
4 Tanggal kas masuk Tgl_date varchar 20
5 Nomimal nominal int 11
g. Spesifikasi File Jurnal
Nama Database : kaskecil
Nama File : tmjurnal
Tipe File : Transaksi
Akses File : Random
Panjang Record : 126 karakter
Field Key : no_jurnal
Tabel III.13
Spesifikasi File Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1 No jurnal no_jurnal varchar 20 Primary key
2 Tanggal transaksi tanggal varchar 14
3 keterangan keterangan varchar 50
4 Kode akun kode_akun varchar 14 FK
5 debet debet varchar 14
6 Kredit kredit varchar 14
2.4.4. Deployment Diagram
Gambar III.25
Deployment Diagram
2.4.5. User interface
1. Halaman Login
Halaman login berfungsi untuk login ke sistem pengeluaran kas
Gambar III.26
User interface login
2. Menu Utama
Setelah login berhasil sistem akan menampilkan menu yang dimana terdapat
file master, menu transaksi, menu laporan dan logout
Gambar III.27
User interface menu utama
3. Menu File Master
Didalam menu file master terdapat submenu master yaitu jurnal dan data
akun
Gambar III.28
User interface file master
4. Menu Data Akun
Menu data akun untuk mengelola data akun
Gambar III.2971
User interface Data Akun
5. Menu Saldo Awal
Menu saldo awal untuk mengelola saldo awal
Gambar III.30
User interface Data Akun
6. Menu Jurnal
Menu Jurnal berfungsi untuk mengelola data jurnal
Gambar III.31
User interface Data Jurnal
7. Menu Transaksi
Di dalam menu transaksi terdapat submenu transaksi pemasukan dan
transaksi keluar
Gambar III.32
User interface Menu Transaksi
8. Menu Transaksi Pemasukan
Menu transaksi pemasukan berfungsi untuk mengelola data transaksi
pemasukan
Gambar III.33
User interface Transaksi Pemasukan
9. Menu Transaksi Pengeluaran
Menu transaksi pengeluaran berfungsi untuk mengelola data transaksi
pengeluaran
10. Menu Laporan
Didalam menu Laporan terdapat submenu yaitu laporan jurnal dan laporan
pengeluaran kas
Gambar III.35
User interface Menu Laporan
11. Laporan pengeluaran kas
Menu laporan pengeluaran kas berfungsi untuk melihat laporan pengeluaran
kas
Gambar III.36
User interface Laporan Pengeluaran Kas
12. Laporan Jurnal
Menu laporan jurnal berfungsi untuk melihat laporan jurnal
Gambar III.37
User interface Laporan Pengeluaran Jurnal
2.5. Implementasi
3.5.1. Code Generation
package view;
import com.mysql.jdbc.Statement;
import java.io.File;
import java.sql.Connection;
import java.util.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import utility.koneksi;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
import utility.autonumber;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author User
*/
public class Data_Pengeluaran_Kas extends javax.swing.JFrame {
JasperDesign jasperDesign1;
JasperPrint jasperPrint1;
JasperReport jasperReport1;
Map<String, Object> param = new HashMap<String, Object>();
koneksi conn= new koneksi();
String kode,tanggal,penerima,keterangan;
utility.autonumber auto;
int jml;
Date tgl;
DefaultTableModel tb;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/**
* Creates new form Data_Anggaran
*/
view.koneksi konek = new view.koneksi();
public Data_Pengeluaran_Kas() {
initComponents();
tabelmodel();
setLocationRelativeTo(this);
auto=new autonumber();
txtkode.setEditable(false);
setform(false);
setExtendedState(MAXIMIZED_BOTH);
SelectKategori();
txtkodee.hide();
}
private void SelectKategori(){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet rs = stm.executeQuery("SELECT * FROM
master_akun WHERE saldo_normal='Debet'");
cmbkode.addItem("Pilih");
while(rs.next()){
cmbkode.addItem(rs.getString("nama_akun"));
}
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(kas_in.class.getName()).log(Level.SEVERE, null,
ex);
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
txtkode = new javax.swing.JTextField();
DTtgl = new com.toedter.calendar.JDateChooser();
jPanel2 = new javax.swing.JPanel();
btnbaru = new javax.swing.JButton();
btnsimpan = new javax.swing.JButton();
btnubah = new javax.swing.JButton();
btnhapus = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tblanggaran = new javax.swing.JTable();
jPanel3 = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
txtjml = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
txtket = new javax.swing.JTextArea();
jLabel6 = new javax.swing.JLabel();
cmbkode = new javax.swing.JComboBox<>();
txtkodee = new javax.swing.JTextField();
jPanel4 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
txttotal = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_O
OSE);
jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swin
g.border.BevelBorder.RAISED));
jLabel1.setText("No Kas Keluar");
jLabel2.setText("Tanggal");
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(57, 57, 57)
.addComponent(txtkode,
javax.swing.GroupLayout.PREFERRED_SIZE, 126,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT
ED)
.addComponent(jLabel2)
.addGap(18, 18, 18)
.addComponent(DTtgl,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.TRAILING)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txtkode,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addComponent(DTtgl,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(19, Short.MAX_VALUE))
);
jPanel2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swin
g.border.BevelBorder.RAISED));
btnbaru.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/tambah.png"))); //
NOI18N
btnbaru.setText("Baru");
btnbaru.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnbaruActionPerformed(evt);
}
});
btnsimpan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/simpan.png"))); //
NOI18N
btnsimpan.setText("Tambah");
btnsimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnsimpanActionPerformed(evt);
}
})
btnubah.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/edit.png"))); // NOI18N
btnubah.setText("Ubah");
btnubah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnubahActionPerformed(evt);
}
});
btnhapus.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/hapus.png"))); //
NOI18N
btnhapus.setText("Hapus");
btnhapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnhapusActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(btnbaru)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(btnsimpan)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(btnubah)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(btnhapus)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(btnbaru)
.addComponent(btnsimpan)
.addComponent(btnubah)
.addComponent(btnhapus))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
tblanggaran.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tblanggaran.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tblanggaranMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tblanggaran);
jPanel3.setBackground(new java.awt.Color(0, 0, 255));
jPanel3.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swin
g.border.BevelBorder.RAISED));
jLabel5.setForeground(new java.awt.Color(255, 255, 255));
jLabel5.setText("Keterangan");
jLabel3.setForeground(new java.awt.Color(255, 255, 255));
jLabel3.setText("Jumlah");
txtket.setColumns(20);
txtket.setRows(5);
jScrollPane2.setViewportView(txtket);
jLabel6.setForeground(new java.awt.Color(255, 255, 255));
jLabel6.setText("Kode Akun");
cmbkode.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
cmbkodeItemStateChanged(evt);
}
});
cmbkode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbkodeActionPerformed(evt);
}
});
txtkodee.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtkodeeActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel3Layout = new
javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT
ED)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 345,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addComponent(jLabel6)
.addComponent(jLabel3))
.addGap(18, 18, 18)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(txtjml,
javax.swing.GroupLayout.PREFERRED_SIZE, 218,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(txtkodee,
javax.swing.GroupLayout.PREFERRED_SIZE, 58,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(cmbkode,
javax.swing.GroupLayout.PREFERRED_SIZE, 184,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addComponent(jLabel5)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 68,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(19, 19, 19)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(jLabel6)
.addComponent(cmbkode,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(13, 13, 13)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(txtjml,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)
.addComponent(txtkodee))
.addGap(40, 40, 40))
);
jPanel4.setBackground(new java.awt.Color(0, 0, 0));
jLabel4.setForeground(new java.awt.Color(255, 255, 0));
jLabel4.setText("Total");
txttotal.setForeground(new java.awt.Color(255, 255, 0));
txttotal.setText("jLabel7");
javax.swing.GroupLayout jPanel4Layout = new
javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT
ED)
.addComponent(txttotal)
.addContainerGap(138, Short.MAX_VALUE))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(42, 42, 42)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(jLabel4)
.addComponent(txttotal))
.addContainerGap(44, Short.MAX_VALUE))
);
jButton1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/pennualan.png"))); //
NOI18N
jButton1.setText("Simpan");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jButton1,
javax.swing.GroupLayout.PREFERRED_SIZE, 165,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 734, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addComponent(jPanel2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
.addGap(0, 0, 0)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG, false)
.addComponent(jPanel4,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(0, 0, 0))
);
pack();
}// </editor-fold>
private void btnsimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if
(txtjml.getText().equals("")||txtket.getText().equals("")||DTtgl.getDate()==nu
ll) {
JOptionPane.showMessageDialog(this,"Semuah Data Harus Di Isi");
}
else{
tambah();
bersih();
}
}
private void btnhapusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
hapus();
bersih();
}
private void btnubahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if
(txtjml.getText().equals("")||txtket.getText().equals("")||DTtgl.getDate()==nu
ll) {
JOptionPane.showMessageDialog(this,"Semuah Data Harus Di Isi");
}
else{
ubah();
bersih();
}
}
private void tblanggaranMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris=tblanggaran.getSelectedRow();
txtjml.setText(tblanggaran.getModel().getValueAt(baris,2).toString());
txtket.setText(tblanggaran.getModel().getValueAt(baris,1).toString());
}
private void btnbaruActionPerformed(java.awt.event.ActionEvent evt) {
if (btnbaru.getText().equals("Baru")){
setform(true);
bersih();
Setkode();
txttotal.setText("0");
tabelmodel();
btnbaru.setText("Batal");
}
else{
btnbaru.setText("Baru");
bersih();
Setkode();
txttotal.setText("0");
tabelmodel();
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String row_tgl = sdf.format(DTtgl.getDate());
String row_kode = txtkode.getText();
String row_ket = txtket.getText();
String kodee = txtkodee.getText();
String id, kode;
Integer no_kk = 0, jumlah, stok, not_found, empty = 0;
DefaultTableModel model = (DefaultTableModel)
tblanggaran.getModel();
int rowCount = model.getRowCount();
if(rowCount > 0 && !"".equals(row_tgl) && !"".equals(row_kode)){
//------- Memasukan pada tabel transaksi lihat [trbarang_] dan
mengeluarkan id terakhir
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("INSERT INTO kas_out (no_kk, tgl_date,
memo) VALUES ('" + row_kode + "', '" + row_tgl + "', '" + row_ket + "')");
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Data_Pengeluaran_Kas.class.getName()).log(Level.SEVE
RE, nul
}
for (int i = 0; i < rowCount; i++) {
not_found = 0;
stok = 0;
row_kode = ( tblanggaran.getModel().getValueAt(i, 0).toString());
kodee = (tblanggaran.getModel().getValueAt(i, 2).toString());
jumlah = Integer.parseInt((String)
tblanggaran.getModel().getValueAt(i, 4));
//------- Mengurangi stok dengan data jumlah
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet sql = stm.executeQuery("SELECT saldo_debet
FROM saldo_awal WHERE kode_akun = '" + kodee + "'");
sql.next();
sql.last();
if (sql.getRow() == 1){
stok = (sql.getInt("saldo_debet") - jumlah);
} else {
not_found = 1;
}
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Data_Pengeluaran_Kas.class.getName()).log(Level.SEVE
RE, null, ex);
}
if(not_found == 0){
//------- Mengupdate jumlah stok barang
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("UPDATE saldo_awal SET
saldo_debet='" + stok + "' WHERE kode_akun = '" + kodee + "'");
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(saldo_awal.class.getName()).log(Level.SEVERE,
null, ex);
}
//------- Memasukan pada table transaksi detail
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("INSERT INTO kas_out_detail(no_kk,
kode_akun, nominal) VALUES ('" + row_kode + "', '" + kodee + "', '" +
jumlah + "')");
empty = 1;
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(saldo_awal.class.getName()).log(Level.SEVERE, null, ex);
}
}else{
JOptionPane.showMessageDialog(null, "Sistem tidak
menemukan akun dengan kode = " + kodee , "akun " + kodee + " Gagal
Disimpan", JOptionPane.ERROR_MESSAGE);
}
//------- Opsi jika terdapat barang yang belum satupun di
masukan
if(empty == 0){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("DELETE FROM kas_out WHERE no_kk
= '" + row_kode + "'");
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(saldo_awal.class.getName()).log(Level.SEVERE,
null, ex);
}
}else{
}
}
JOptionPane.showMessageDialog(null, "Berhasil menyimpan data
transaksi");
try {
HashMap hash = new HashMap();
hash.put("no_keluar", txtkode.getText());
File file = new File("src/report/nota_anggaran_keluar.jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(file);
JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint =
JasperFillManager.fillReport(jasperReport, hash, konek.openkoneksi());
JasperViewer.viewReport(jasperPrint, false);
}catch (ClassNotFoundException | JRException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
}
this.hide();
}else{
JOptionPane.showMessageDialog(null, "Terdapat inputan yang
kosong.");
}
}
private void cmbkodeItemStateChanged(java.awt.event.ItemEvent evt) {
String nm_kategori = cmbkode.getSelectedItem().toString();
if(!nm_kategori.equals("")){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet sql = stm.executeQuery("SELECT kode_akun
FROM master_akun WHERE nama_akun='"+nm_kategori+"'");
if(sql.next()){
txtkodee.setText(sql.getString("kode_akun"));
}
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Frmjurnal.class.getName()).log(Level.SEVERE,
null, ex);
}
}else{
txtkode.setText("");
} // TODO add your handling code here:
}
private void cmbkodeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtkodeeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting
code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the
default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Data_Pengeluaran_Kas.class.getName())
.log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Data_Pengeluaran_Kas.class.getName())
.log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Data_Pengeluaran_Kas.class.getName())
.log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Data_Pengeluaran_Kas.class.getName())
.log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Data_Pengeluaran_Kas().setVisible(true);
}
});
}
// Variables declaration - do not modify
private com.toedter.calendar.JDateChooser DTtgl;
private javax.swing.JButton btnbaru;
private javax.swing.JButton btnhapus;
private javax.swing.JButton btnsimpan;
private javax.swing.JButton btnubah;
private javax.swing.JComboBox<String> cmbkode;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable tblanggaran;
private javax.swing.JTextField txtjml;
private javax.swing.JTextArea txtket;
private javax.swing.JTextField txtkode;
private javax.swing.JTextField txtkodee;
private javax.swing.JLabel txttotal;
// End of variables declaration
public int simpan(){
try{
String sql="insert into kas_out "+
"values"+
"('"+txtkode.getText()+"', "+
"'"+sdf.format(DTtgl.getDate())+"', "+
"'"+txtket.getText()+"' "+
")";
conn.simpanData(sql);
}
catch(Exception e){
System.out.printf(null, e);
} return 0;
}
public int simpansetilI(){
for (int x = 0; x < tblanggaran.getRowCount(); x++) {
try {
String sql="insert into kas_out_detail "+
"values"+
"(null,'"+tblanggaran.getValueAt(x, 0).toString()+"', "+
"'"+tblanggaran.getValueAt(x, 1).toString()+"', "+
"'"+tblanggaran.getValueAt(x, 2).toString()+"' "+
")";
conn.simpanData(sql);
ResultSet rs2=conn.ambilData("SELECT SisaAnggaran from
tbl_jurnal group by kode_jurnal "
+ "having kode_jurnal=max(kode_jurnal) order by kode_jurnal
desc ");
rs2.next();
int jml=rs2.getInt(1);
String sql2="insert into tbl_jurnal "+
"values"+
"(null, "+
"'"+tblanggaran.getValueAt(x, 0).toString()+"', "+
"NULL, "+
"'"+sdf.format(DTtgl.getDate())+"','0', "+
"'"+tblanggaran.getValueAt(x, 2).toString()+"'
,'"+tblanggaran.getValueAt(x, 1).toString()+"'"
+ " ,("+jml+"-"+tblanggaran.getValueAt(x, 2).toString()+")"+
")";
conn.simpanData(sql2);
} catch (SQLException ex) {
Logger.getLogger(Data_Pengeluaran_Kas.class.getName()).log(Level.SEVE
RE, null, ex);
}
}
return 0;
}
public void tambah(){
Object[] data = new Object[6];
data[0] = txtkode.getText();
data[1] = sdf.format(DTtgl.getDate());
data[2] = txtkodee.getText();
data[3] = txtket.getText();
data[4] = txtjml.getText();
tb.addRow(data);
int subtotal=0;
for (int x = 0; x < tblanggaran.getRowCount(); x++) {
subtotal = subtotal + Integer.parseInt(tblanggaran.getValueAt(x,
2).toString().replace(".", ""));
txttotal.setText(""+subtotal);
}
}
public void ubah(){
Object qty=txtjml.getText();
Object ket=txtket.getText();
int baris =tblanggaran.getSelectedRow();
tblanggaran.setValueAt(qty, baris, 2);
tblanggaran.setValueAt(ket, baris, 3);
int subtotal=0;
for (int x = 0; x < tblanggaran.getRowCount(); x++) {
subtotal = subtotal + Integer.parseInt(tblanggaran.getValueAt(x,
2).toString().replace(".", ""));
txttotal.setText(""+subtotal);
}
}
public void hapus(){
int baris =tblanggaran.getSelectedRow();
tb.removeRow(baris);int subtotal=0;
for (int x = 0; x < tblanggaran.getRowCount(); x++) {
subtotal = subtotal + Integer.parseInt(tblanggaran.getValueAt(x,
2).toString().replace(".", ""));
txttotal.setText(""+subtotal);
}
}
public int hapus(String kd){
String sql="delete from barang where kode = '"+kd+"'";
conn.simpanData(sql);
return 0;
}
public void tabelmodel(){
tb =new DefaultTableModel();
tb.addColumn("No Kas Keluar");
tb.addColumn("Tanggal");
tb.addColumn("Kode Akun");
tb.addColumn("Keterangan");
tb.addColumn("Jumlah");
tblanggaran.setModel(tb);
}
void setform(boolean flag){
txtjml.setEditable(flag);
txtket.setEditable(flag);
}
void bersih(){
txtjml.setText("");
// DTtgl.setDate(null);
}
public void Setkode(){
try {
auto.SetAutoNumber("kas_out","no_kk","KK");
txtkode.setText(auto.GetAutoNumber());
} catch (Exception e) {
System.out.printf(null, e);
}
}
}
3.4.2. Blacbox Testing
A. Form Login Admin
Tabel III.14
Hasil Pengujian Balck Box Testing Form Login Admin
No No Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1. Nama user dan
password tidak
diisi kemudian
klik tombol
Nama user
(kosong)
Password
Sistem akan
menolak akses
dan
menampilkan
Sesuai
harapan
Valid
login (kosong) pesan “coba
periksa kembali
user name dan
password anda”
2. Mengetikkan
Nama user dan
Pssword tidak
diisi atau
kosong
kemudian klik
tombol login
Nama user
(rohatin)
Password
(kosong)
Sistem akan
menolak akses
dan
menampilkan
pesan “coba
periksa kembali
user name dan
password anda”
Sesuai
harapan
Valid
3. Nama user
tidak di isi
(kosong) dan
Password diisi
kemudian klik
tombol login
Nama user
(kosong)
Password
(12345)
Sistem akan
menolak akses
dan
menampilkan
pesan “coba
periksa kembali
user name dan
password anda ”
Sesuai
harapan
Valid
4. Mengetikkan
salah satu
kondisi slah
pada Nama
Nama user
rohatin
(benar)
Sistem akan
menolak akses
akan kembali
diarahkan ke
Sesuai
harapan
Valid
user atau
Password
kemudian klik
tombol login
Password
Admin
(salah)
halaman login
dan
menampilkan
pesan “coba
periksa kembali
user name dan
password anda”
5. Mengetikkan
Nama user dan
password
dengan data
yang benar
kemudian klik
tombol login
Nama user
rohatin
(benar)
Password
12345
(salah)
Sistem akan
menerima akses
login dan akan
menampilkan
pesan “Login
Berhasil Selamat
Datang di
Halaman
Admin, rohatin”
Sesuai
harapan
Valid
B. Form Pengeluaran kas
Tabel III.15
Hasil Pengujian Balck Box Testing Form pengeluaran kas Admin
No No Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpula
n
1. Kode akun dan
keterangan
tidak di isi
Kode akun
(kosong)
Sistem akan
menolak akses
dan
Sesuai
harapan
Valid
kemudian pilih
tombol simpan
keterangan
(kosong)
menampilkan
pesan “Semua
data harus di isi”
2. Mengetikkan
kode akundan
keterangan
tidak diisi atau
kosong
kemudian klik
tombol tambah
Kode akun
(AK0000002)
Keterangan
(kosong)
Sistem akan
menolak akses
dan
menampilkan
pesan “Semua
data harus di isi”
Sesuai
harapan
Valid
3. Nama kode
akun tidak di
isi (kosong)
dan keterangan
diisi kemudian
klik tombol
tambah
Kode akun
(kosong)
keterangan
(biaya gaji)
Sistem akan
menolak akses
dan
menampilkan
pesan “Semua
data harus di isi”
Sesuai
harapan
Valid
4. Mengetikkan
kode akun da n
keterangan
kemudian pilih
tombol tambah
Kode akun r
(AK0000002)
keterangan
(biaya gaji)
Sistem akan
menerima dan
menmpilkan
data yang
tersimpan ke
dalam tabel
Sesuai
harapan
Valid
3.5.3. Spesifikasi Hardware dan Software
Tabel III.16
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Window 7 32-bit
Processor Celeron, @2,13 GHzg
RAM 2 GB
Harddisk 100 GB
Monitor 14” LED
Keyboard 108 key
Printer Dot Matrix
Mouse Standart
Software
Kebutuhan menjalankan aplikasi secara local:
Bahasa script programming : JAVA 7.1
Web Server : Apache 3.2
DBSM : MySQL