69
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.

BAB III ANALISA SISTEM BERJALAN · Admin adalah orang yang mengerjakan sistem yang ada di perusahaan . tugas/wewenangnya sebagai berikut : a. Memeriksa kiriman bahan dari PT . Seyon

  • 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

2. Prosedur Pembayaran kas keluar

Gambar III.3

Activity Diagram

Pembayaran kas keluar

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

B.1. Use case Diagram Login Pemilik

Gambar III.9

Use Case Diagram Halaman Login Pemilik

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

3. Transaksi Pengeluaran

Gambar III.13

Activity Diagram Halaman Transaksi Pengeluaran

A.3. Activity Diagram Halaman file master

1. Data Akun

Gambar III.14

Activity Diagram Halaman Data Akun

2. Jurnal

Gambar III.15

Activity Diagram Halaman Jurnal

3. Saldo Awal

Gambar III.16

Activity Diagram Halaman Saldo Awal

A.4. Activity Diagram Halaman laporan

1. Laporan pengeluaran kas

Gambar III.17

Activity Diagram Halaman Laporan pengeluaran kas

2. Laporan Jurnal

Gambar III.18

Activity Diagram Halaman Laporan Jurnal

B.1. Activity Diagram Halaman login Pemiliki

Gambar III.19

Activity Diagram Halaman Login Pemilik

B.2. Activity Diagram Halaman Laporan

1. Laporan pengeluaran kas

Gambar III.20

Activity Diagram Halaman laporan Pengeluaran kas pemilik

2. Laporan Jurnal

Gambar III.21

Activity Diagram Halaman Laporan Jurnal 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.3. Squence Diagram

Gambar III.24

Squence Diagram pengeluaran kas

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