bab iii pembahasan 3.1. tinjauan lembaga/instansi · mengendalikan kearsipan dan surat masuk serta...
TRANSCRIPT
16
BAB III
PEMBAHASAN
3.1. Tinjauan Lembaga/Instansi
Dalam pelaksanaan kegiatan rutin dikantor Desa Sungai Nyirih terdapat
aturan-aturan yang di tentukan, dalam hal ini akan diterangkan sejarah dan
struktur organisasi serta fungsi dari masing-masing bagian yang ada dalam
instansi.
3.1.1. Sejarah Lembaga
Secara devacto desa sungai nyirih berdiri sejak tahun 1944 yang di pimpin
langsung oleh sorang kepala desa yang bernama M.Bakri Djali. Kepemimpinan
M.Bakri Djali berakhir pada tahun 1963 setelah 19 tahun menjabat sebagai
kepala desa dan digantikan oleh Syahri Bakri yang pemilihannya dipilih
langsung oleh pihak kecamatan. Lebih kurang 20 tahun Syahri Bakri memimpin
dan di lanjutkan oleh Siri Bakri yang di sebut sebagai Pjs kepala desa. Tidak
lama kepemimpinan Siri Bakri didesa, kemudian digantikan oleh A.Rahim
Tajudin hingga berakhir masa jabatannya ditahun 1992. Seiring berjalannya
waktu maka sejak tahun 1992 pemilihan kepaladesa dipilih langsung oleh
masyarakat sampai sekarang.
Batas wilayah desa sungai nyirih sebelah utara berbatasan dengan Desa
Bakau,sebelah barat berbatasan dengan laut cina selatan, sebelah selatan
berbatasan dengan Desa Sentebang dan sebelah timur berbatasan dengan Desa
Cepala Kecamatan Tebas.
17
3.1.2. Struktur Organisasi dan Fungsi
Struktur organisasi adalah susunan sub-sub sistem dengan hubungan
wewenang dan tanggung jawab. Berikut ini merupakan struktur organisasi pada
Kantor Desa Sungai Nyirih.
Sumber : Data desa
Gambar III.1
Struktur Organisasi kantor Desa Sungai Nyirih
Fungsi dari tiap-tiap bagian adalah sebagai berikut :
1. Kepala Desa
a. Menjalankan roda pemerintahan desa dengan dasar kebijakan yang telah
ditetapkan bersama dengan BPD (Badan Perwakilan Desa).
18
b. Mengajukan suatu rancangan tentang peraturan yang akan diterapkan di suatu
desa.
c. Menetapkan peraturan desa yang sudah disetujui bersama dengan BPD.
d. Menyusun serta membuat peraturan tentang anggaran pendapatan desa yang
selanjutnya akan dibahas dan ditetapkan bersama-sama dengan BPD.
e. Melakukan pembinaan terhadap masyarakat desa dan juga ekonimi desa.
f. Pembangunan yang hendak dilakukan di desa, terlebih dahulu dikoordinasikan
dan dilaksanakan dengan partisipasi semua warga.
2. BPD (Badan Perwakilan Desa)
a. Membahas tentang rancangan atau rencana peraturan desa yang dibuat bersama
dengan kepala desa.
b. Mengawasi pelaksanaan peraturan desa bekerja sama dengan kepala desa.
c. Memberi usulan tentang pengangkatan atau pemberhentian kepala desa.
d. Membentuk panitia dalam rangka pemilihan kepala desa.
e. Menampung,mengumpulkan, dan menyalurkan aspirasi masyarakat.
f. Taat kepada semua peraturan perundang-undangan yang berlaku,
mengamalkan Pancasila serta Undang-Undang dasar 1945.
3. LPM (Lembaga Pemberdayaan Masyarakat)
a. Penampung dan penyalur aspirasi masyarakat dalam pembangunan.
b. Penananman dan pemupukan rasa persatuan dan kesatuan masyarakat dalam
rangka memperkokoh Negara Kesatuan Republik Indonesia.
c. Peningkatan kualitas dan percepatan pelayanan pemerintah kepada masyarakat.
d. Penumbuh kembangan dan penggerak prakarsa dan partisipasi, serta swadaya
gotong royong masyarakat.
19
e. Penggali, pendayaguna dan pengembangan potensi sumberdaya serta
keserasian lingkungan hidup.
4. Sekretaris Desa
a. Melaksanakan beraneka macam tugas administrasi dan menyiapkan keperluan
kepala desa supaya tugasnya berjalan dengan lancer.
b. Apabila kepala desa berhalangan untuk melakukan tugasnya, maka sekretaris
dapat menggantikan .
c. Apabila kepala desa diberhentikan untuk sementara, maka yang memegang
jabatan sementara atau melaksanakan tugas kepala desa untuk sementara
adalah sekretaris desa.
d. Mempersiapkan bantuan dalam melaksanakan penyusunan peraturan desa.
e. Mempersiapkan bahan laporan penyelenggaraan pemerintahan desa.
f. Melakukan tugas lain yang diperintahkan oleh kepala desa.
5. Kepala Urusan Administrasi
Mengurus urusan administrasi yang ada di kantor desa.
6. Kepala Urusan Keuangan
a. Mengelola administrasi keuangan desa.
b. Mempersiapkan bahan untuk menyusun APB desa.
c. Melakukan tugas lain yang diberikan atau diperintahkan oleh sekretaris desa.
7. Kepala Urusan Umum
a. Mengendalikan kearsipan dan surat masuk serta surat keluar.
b. Mencatat inventaris atau kekayaan desa.
c. Melakukan tugas administrasi umum.
20
d. Menyimpan, menyediakan, dan menyalurkan alat-alat tulis kantor serta
bertanggungjawab dalam memelihara dan perbaikan terhadap perabotan atau
perlengkapan kantor.
e. Menyiapkan bahan untuk membuat laporan.
f. Melakukan tugas lain yang di perintahkan oleh sekretaris desa.
8. Bendahara
a. Menerima, menyimpan, menatausahakan, dan membukukan uang atau surat
berharga dalam pengelolaannya.
b. Melakukan pengujian dan pembayaran berdasarkan perintah.
c. Menolak perintah pembayaran apabilatidak memenuhi persyaratan untuk
dibayarkan.
d. Mengelola rekening tempat penyimpanan.
e. Menyampaikan Laporan Pertanggungjawaban (LPJ) kepada kepala desa.
9. Kepala Urusan Pemerintahan
a. Melaksanakan administrasi kependudukan.
b. Mempersiapkan bahan untuk menyusun rancangan peraturan serta keputusan
kepala desa.
c. Melaksanakan administrasi pertanahan.
d. Mencatat monografi desa.
e. Mempersiapkan bantuan yang bertujuan untuk memperlancar penyelenggaraan
dalam pemerintahan di desa dan melakukan penataan kelembagaan
masyarakat.
f. Melakukan tugas lain yang diberikan atau diperintahkan oleh kepala desa.
21
10. Kepala Urusan Pembangunan
a. Sebagai pelaksana dalam kegiatan administrasi pembangunan.
b. Mempersiapkan bantuan untuk kajian perkembangan ekonomi warga
masyarakat.
c. Melakukan tugas lain yang diberikan atau diperintahkan oleh kepala desa.
11. Kepala Dusun
a. Membantu melaksanakan tugas dari kepala desa yang masih berada dalam
wilayah kerjanya.
b. Melaksanakan koordinasi pembangunan desa, jalannya pemerintahan desa,
serta membina masyarakat yang ada di dusun.
c. Melaksanakan pembinaan-pembinaan terhadap masyarakat dan tugas yang
berhubungan dengan pembangunan atau melaksanakan koordinasi perihal
maslah pembangunan yang terjadi di desa maupun di dusun.
3.2. Tinjauan Kasus
Bendahara menerima bukti penerimaan kemudian dicatat dibuku
penerimaan, ketika ada pengeluaran bendahara mencatat dibuku pengeluaran.
Setelah itu, berdasarkan buku penerimaan dan buku pengeluaran dicatat dibuku
kas umum. Untuk setiap semester, Bendahara akan membuat laporan penerimaan
dan laporan pengeluaran serta laporan persemester.
3.2.1. Dokumen Masukan
1. Nama Dokumen : Nota
Fungsi : Sebagai bukti penerimaan
22
Sumber : Kaur Keuangan
Tujuan : Bendahara
Media : Kertas
Jumlah : Rangkap 1
Frekuensi : Setiap terjadi transaksi pembelian
Format : Lampiran
3.2.2. Dokumen Keluaran
1. Nama : Laporan Penerimaan
Fungsi :Sebagai sumber Informasi penggunaan dana
selama 1 semester
Sumber : Kaur Keuangan
Tujuan : Bendahara
Media : Kertas
Jumlah : Rangkap 1
Frekuensi : Sekali
Format : Lampiran
2. Nama : Laporan Pengeluaran
Fungsi :Sebagai sumber Informasi penggunaan dana
selama 1 semester
Sumber : Kaur Keuangan
Tujuan : Bendahara
Media : Kertas
23
Jumlah : Rangkap 1
Frekuensi : Sekali
Format : Lampiran
3.3. Analisa Kebutuhan Softwere
Kebutuhan softwere pada aplikasi arus kas desa Sungai Nyirih Kecamatan
Jawai akan menjadi kebutuhan user dalam menggunakan aplikasi berbasis
desktop yang telah dibuat.
3.3.1. Analisa Kebutuhan
3.3.1.1.Tahap Analisis Kebutuhan Fungsi
Tahapan analisismeliputi tahapan analisis kebutuhan fungsionalitas dari masing-
masing pengguna yang berinteraksi langsung terhadap aplikasi arus kas.
A. Bendahara
A1. Bendahara bisa melakukan login.
A2. Bendahara bisa melakukan Pengolahan data master akun.
A3. Bendahara bisa melakukan pengolahan data master sumber kas.
A4. Bendahara bisa melakukan pengolahan data master jenis penerimaan.
A5. Bendahara bisa melakukan pengolahan data master jenis pengeluaran.
A6. Bendahara bisa melakukan pengolahan data master user.
A7. Bendahara bisa mengolah data transaksi kas masuk.
A8. Bendahara bisa mengolah data transaksi kas keluar.
A9. Bendahara bisa menampilkan data laporan.
24
B. Kepala Desa
B1. Kepala Desa bisa melakukan login.
B2. Kepala Desa bisa menampilkan Laporan.
B3. Kepala Desa bisa mencetak Laporan.
3.3.1.2.Tahap analisis Kebutuhan User Interface
A. Bendahara
1. Form login untuk Bendahara.
2. Form data master akun.
3. Form data master sumber kas.
4. Form data master jenis penerimaan.
5. Form data master jenis pengeluaran.
6. Form data master user.
7. Form transaksi kas masuk.
8. Form transaksi kas keluar.
9. Form menampilkan laporan.
B. Kepala Desa
1. Form login untuk Kepala Desa.
2. Form untuk menampilkan laporan.
3. Halaman laporan.
26
Berikut deskripsi atau penjelasan dari use case diagram Bendahara.
Tabel III.1
Deskripsi Use Case Diagram Bendahara
Use case Name Halaman Bendahara
Requiremen A1-A9
Goal Bendahara bisa melakukan pengolahan
data master akun, data master sumber
kas, data master jenis penerimaan , data
master jenis pengeluaran, data master
user, transaksi kas masuk, transaksi kas
keluar, dan menampilkan laporan
Pre-Conditions Bendahara mengakses halaman login
Post-Conditions Kepala Desa melakukan login dan
masuk ke halaman menu utama
Failed End Condition Bendahara dapat membatalkan login
Primary Actor Bendahara
Main Flow/Basic Path 1. Bendahara bisa melakukan
pengolahan data akun
2. Bendahara bisa melakukan
pengolahan data sumber kas
3. Bendahara bisa melakukan
pengolahan data jenis penerimaan
4. Bendahara bisa melakukan
pengolahan data jenis pengeluaran
5. Bendahara bisa melakukan
pengolahan data user
6. Bendahara bisa melakukan
pengolahan transaksi kas masuk
7. Bendahara bisa meakukan
pengolahan transaksi kas keluar
8. Bendahara bisa menampilkan
laporan
Invariant
27
b. use case diagram Kepala Desa
Gambar III.3
Use Case Diagram Kepala Desa
Berikut penjelasan atau deskripsi dari use case diagram Kepala Desa.
Tabel III.2
Deskripsi Use Case Diagram Kepala Desa
Use case Name Halaman Kepala Desa
Requiremen B1-B2
Goal Kepala Desa menampilkan laporan
Pre-Conditions Kepala Desa mengakses halaman login
Post-Conditions Kepala Desa melakukan login dan
masuk ke halaman laporan
Failed End Condition Kepala Desa dapat membatalkan login
Primary Actors Kepala Desa
Main Flow/Basic Path Kepala Desa menampilkan laporan
Invariant -
28
3.3.3.Activity Diagram
a. Activity Diagram Bendahara
1. activity login
Sumber : Hasil Penelitian (2017)
Gambar III.4 Activity Diagram Login
30
3. activity tambah sumber kas
Sumber : Hasil Penelitian (2017)
Gambar III.6 Activity Diagram Sumber Kas
31
4. activity jenis penerimaan
Sumber : Hasil Penelitian (2017)
Gambar III.7 Activity Diagram Jenis Penerimaan
32
5. activity jenis pengeluaran
Sumber : Hasil Penelitian (2017)
Gambar III.8 Activity Diagram Jenis Pengeluaran
34
7. activity transaksi kas masuk
Sumber : Hasil Penelitian (2017)
Gambar III.10 Activity Diagram kas masuk
35
8. activity transaksi kas keluar
Sumber : Hasil Penelitian (2017)
Gambar III.11 Activity Diagram Kas Keluar
36
b. Activity diagram Kepala Desa
1. activity laporan
Sumber : Hasil Penelitian (2017)
Gambar III.12 Activity Diagram Laporan
37
3.4. Desain
a. Entyity Relationship Diagram (ERD)
Sumber : Hasil Penelitian (2017)
Gambar III.13 Entyity Relationship Diagram (ERD)
38
b. Logical Record Structure (LRS)
Sumber : Hasil Penelitian (2017)
Gambar III.14 Logical Record Structure (LRS)
39
3.4.1. Softwere Architektur
a. Class Diagram
berikut penggambaran clas diagram
Sumber : Hasil penelitian (2017)
Gambar III.15 Class diagram arus kas
40
b. Sequence Diagram
Berikut penggambaran sequence diagram transaksi kas masuk dan
transaksi kas keluar :
1. Sequence diagram transaksi kas masuk
Sumber : Hasil penelitian (2017)
Gambar III. 16 Sequence Diagram Transaksi Kas Masuk
41
2. Sequence diagram transaksi kas keluar
Sumber : Hasil penelitian (2017)
Gambar III. 17 Sequence Diagram Transaksi Kas Masuk
42
3.4.2. User Interface
1. user interfase login
Sumber : Hasil Penelitian (2017)
Gambar III.18 User Interfase Login
Halaman login digunakan untuk user masuk kehalaman menu utama sesuai
dengan hak aksesnya.
2.user interface menu utama
Sumber : Hasil Penelitian (2017)
Gambar III.19 User Interfase Menu Utama
43
Menu utama digunakan untuk mengelola data master seperti data akun, data
sumber kas, jenis penerimaan, jenis pengeluaran, data user, data transaksi seperti
transaksi kas masuk dan kas keluar, dan laporan seperti laporan kas masuk dan
laporan kas keluar.
3.user interface form akun
Sumber : Hasil Penelitian (2017)
Gambar III.20 User Interfase Akun
Form akun digunakan untuk mengelola data akun dari menambah,menyimpan,
mengedit, dan menghapus.
4.user interfase data sumber kas
Sumber : Hasil Penelitian (2017)
Gambar III.21 User Interfase Sumber Kas
44
Form sumber kas digunakan untuk mengelola data sumber kas dari
menambah,menyimpan, mengedit, dan menghapus.
5.user interfase data jenis pengeluaran
Sumber : Hasil Penelitian 2017
Gambar III.22 User Interfase Jenis Pengeluaran
Form jenis pengeluaran digunakan untuk mengelola data jenis pengeluaran dari
menambah,menyimpan, mengedit, dan menghapus.
6.user interfase data jenis penerimaan
Sumber : Hasil Penelitian (2017)
Gambar III.23 User Interfase Jenis Penerimaan
Form jenis penerimaan digunakan untuk mengelola data jenis penerimaan dari
menambah,menyimpan, mengedit, dan menghapus.
45
7.user interfase user
Sumber : Hasil Penelitian (2017)
Gambar III.24 User Interfase User
Form user digunakan untuk mengelola data user dari menambah,menyimpan,
mengedit, dan menghapus.
8.user interfase transaksi kas masuk
Sumber : Hasil Penelitian (2017)
Gambar III.25 User Interfase Kas Masuk
Form kas masuk digunakan untuk mengelola data-data transaksi kas masuk.
46
9. user interfase kas keluar
Sumber : Hasil Penelitian (2017)
Gambar III.26 User Interfase Kas Keluar
Form kas keluar digunakan untuk mengelola data-data transaksi kas keluar.
10. user interfase laporan kas masuk
Sumber : Hasil Penelitian (2017)
Gambar III.27 User Interfase Laporan Kas Masuk
Form laporan kas masuk digunakan untuk mencetak laporan kas masuk.
47
11. user interfase laporan kas keluar
Sumber : Hasil Penelitian (2017)
Gambar III.28 User Interfase Laporan Kas Keluar
Form laporan kas keluar digunakan untuk mencetak laporan kas keluar.
3.5. Implementasi
3.5.1. Code Generation
1. Form login
Berikut codingan di form login :
package appkas;
import appkas.sourcee.database;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.sql.*;
import javax.swing.JOptionPane;
48
public class Login extends javax.swing.JDialog {
database dbsetting;
String driver,database,user,pass;
/**
* Creates new form Login
*/
public Login(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
dbsetting = new database();
driver = dbsetting.SettingPanel("DBDriver");
database = dbsetting.SettingPanel("DBDatabase");
user = dbsetting.SettingPanel("DBUsername");
pass = dbsetting.SettingPanel("DBPassword");
setLocationRelativeTo(this);
}
private void cekpengguna(){
try {
Class.forName(driver);
Connection kon =
DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "SELECT hak_akses FROM user WHERE
nama_user = '"+username.getText()+"' AND password =
'"+password.getText()+"'";
ResultSet rss = stt.executeQuery(SQL);
49
if (rss.next()) {
if (rss.getString("hak_akses").equals("BENDAHARA")) {
JOptionPane.showMessageDialog(null, "====Selamat
Datang Bendahara====");
MenuUtama mu = new MenuUtama();
mu.setVisible(true);
mu.bendahara();
username.setText("");
password.setText("");
this.dispose();
} else if (rss.getString("hak_akses").equals("KEPALA
DESA")){
JOptionPane.showMessageDialog(null, "====Selmat Datang
Kepala Desa=====");
MenuUtama mu = new MenuUtama();
mu.setVisible(true);
mu.kepdes();
username.setText("");
password.setText("");
this.dispose();
}
} else {
JOptionPane.showMessageDialog(null, "Login Gagal !!! Mohon
Periksa Kembali");
//BersihData();
//nip.requestFocus();
50
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Login
Gagal","informasi",JOptionPane.INFORMATION_MESSAGE);
System.out.println(e);
}
}
private void loginActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
cekpengguna();
}
2. Form menu Utama
Berikut codingan di form menu utama :
package appkas;
public class MenuUtama extends javax.swing.JFrame {
/**
* Creates new form MenuUtama
*/
public MenuUtama() {
this.setLocationRelativeTo(null);
initComponents();
}
public void bendahara(){
master.setEnabled(true);
transaksi.setEnabled(true);
laporan.setEnabled(false);
51
}
public void kepdes(){
master.setEnabled(false);
transaksi.setEnabled(false);
laporan.setEnabled(true);
}
private void kasmasukActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
kas_masuk kk=new kas_masuk(null,true);
kk.setVisible(true);
}
private void kaskeluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
kas_keluar kk=new kas_keluar(null,true);
kk.setVisible(true);
}
private void akunActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
akun kk=new akun(null,true);
kk.setVisible(true);
}
private void sumberkasActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
sumber_kas kk=new sumber_kas(null,true);
52
kk.setVisible(true);
}
private void jenispenerimaanActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
jenis_penerimaan kk=new jenis_penerimaan(null,true);
kk.setVisible(true);
}
private void jenispengeluaranActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
jenis_pengeluaran kk=new jenis_pengeluaran(null,true);
kk.setVisible(true);
}
private void userActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
user kk=new user(null,true);
kk.setVisible(true);
}
private void laporankasmasukActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
laporan_kas_masuk kk=new laporan_kas_masuk(null,true);
kk.setVisible(true);
}
53
private void laporankaskeluarActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
laporan_kas_keluar kk=new laporan_kas_keluar(null,true);
kk.setVisible(true);
}
3. Form akun
Berikut codingan transaksi kas masuk :
package appkas;
import appkas.sourcee.database;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableColumnModel;
public class akun extends javax.swing.JDialog {
database dbsetting;
String driver,database,user,pass;
private Object tabel;
/**
* Creates new form akun
*/
public akun(java.awt.Frame parent, boolean modal) {
54
super(parent, modal);
initComponents();
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=this.getSize();
if(frameSize.height > screenSize.height){
frameSize.height=screenSize.height; }
if (frameSize.width > screenSize.width){
frameSize.width=screenSize.width;}
this.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height = screenSize.height) / 4);
dbsetting = new database();
driver = dbsetting.SettingPanel("DBDriver");
database = dbsetting.SettingPanel("DBDatabase");
user = dbsetting.SettingPanel("DBUsername");
pass = dbsetting.SettingPanel("DBPassword");
table.setModel(tableModel);
Tabel(table, new int []{200,300});
setDefaulTable();
SetEditOff();
setResizable(false); }
private javax.swing.table.DefaultTableModel
tableModel=getDefaultTabelModel();
private void Tabel(javax.swing.JTable tb, int lebar[] ) {
tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
int kolom=tb.getColumnCount();
55
for(int i=0;i < kolom;i++){
javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i);
tbc.setPreferredWidth(lebar[i]);
tb.setRowHeight(17); } }
private javax.swing.table.DefaultTableModel getDefaultTabelModel() {
return new javax.swing.table.DefaultTableModel
( new Object[][] {},
new String [] {"Kode Akun","Nama Akun"} )
{ boolean[] canEdit = new boolean[]
{ false, false };
public boolean isCellEditable(int rowIndex, int columnIndex)
{ return canEdit[columnIndex]; }
};
}
String data[]=new String[3];
private void setDefaulTable(){
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database, user, pass);
Statement stt = kon.createStatement();
String SQL = "SELECT * FROM akun";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
data[0] = res.getString(1);
data[1] = res.getString(2);
56
tableModel.addRow(data); }
res.close();
stt.close();
kon.close();
} catch (Exception e){
System.err.println(e.getMessage()); }
}
int row = 0;
public void Tampil(){
row = table.getSelectedRow();
KodeAkun.setText(tableModel.getValueAt(row, 0).toString());
NamaAkun.setText(tableModel.getValueAt(row, 1).toString());
Simpan.setEnabled(false);
Edit.setEnabled(true);
Hapus.setEnabled(true);
SetEditOn();
}
public void BersihData(){
KodeAkun.setText("");
NamaAkun.setText("");
}
public void SetEditOff(){
KodeAkun.setEnabled(false);
NamaAkun.setEnabled(false); }
public void SetEditOn() {
57
KodeAkun.setEnabled(true);
NamaAkun.setEnabled(true);
}
private void SimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String KA=KodeAkun.getText();
String NA=NamaAkun.getText();
if ((KA.isEmpty()) | (NA.isEmpty()) )
{
JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan
dilengkapi");
KodeAkun.requestFocus();
}else {
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "insert into akun values ('"+KodeAkun.getText()+"',"+
"'"+NamaAkun.getText()+"')";
stt.executeUpdate(SQL);
data[0] = KodeAkun.getText();
data[1] = NamaAkun.getText();
tableModel.insertRow(0, data);
stt.close();
58
kon.close();
BersihData();
Simpan.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
private void TambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
BersihData();
KodeAkun.requestFocus();
Simpan.setEnabled(true);
Edit.setEnabled(false);
Hapus.setEnabled(false);
SetEditOn();
}
private void EditActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String KA=KodeAkun.getText();
String NA=NamaAkun.getText();
if ((KA.isEmpty()) | (NA.isEmpty()) )
59
{
JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan
dilengkapi");
KodeAkun.requestFocus();
}else {
try {
Class.forName(driver);
Connection kon =
DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "Update akun Set
nama_akun='"+NamaAkun.getText()+"'"+
"Where kode_akun='"+KodeAkun.getText()+"'";
stt.executeUpdate(SQL);
data[0] = KodeAkun.getText();
data[1] = NamaAkun.getText();
tableModel.removeRow(row);
tableModel.insertRow(row,data);
stt.close();
kon.close();
BersihData();
Simpan.setEnabled(false);
} catch (Exception ex) {
System.err.println(ex.getMessage());
60
}
}
}
private void HapusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "delete from akun where
kode_akun='"+KodeAkun.getText()+"'";
stt.executeUpdate(SQL);
data[0] = KodeAkun.getText();
data[1] = NamaAkun.getText();
tableModel.removeRow(row);
stt.close();
kon.close();
BersihData();
Simpan.setEnabled(false);
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
61
private void tableMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
Tampil();
}
private void BatalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
BersihData();
SetEditOff();
Tambah.setEnabled(true);
}
4. Form transaksi kas masuk
Berikut codingan form transaksi kas masuk :
package appkas;
import appkas.sourcee.database;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableColumnModel;
public class kas_masuk extends javax.swing.JDialog {
database dbsetting;
62
String driver,database,user,pass;
private Object tabel;
public kas_masuk(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=this.getSize();
if(frameSize.height > screenSize.height){
frameSize.height=screenSize.height;
}
if (frameSize.width > screenSize.width){
frameSize.width=screenSize.width;
}
this.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height = screenSize.height) / 4);
dbsetting = new database();
driver = dbsetting.SettingPanel("DBDriver");
database = dbsetting.SettingPanel("DBDatabase");
user = dbsetting.SettingPanel("DBUsername");
pass = dbsetting.SettingPanel("DBPassword");
table.setModel(tableModel);
Tabel(table, new int []{90,150,100,100,300,150,150,150});
setDefaulTable();
buatnomor();
TampilComboakun();
63
TampilCombouser();
TampilCombosumberkas();
TampilCombojenispenerimaan();
SetEditOff();
setResizable(false);
}
private javax.swing.table.DefaultTableModel
tableModel=getDefaultTabelModel();
private void Tabel(javax.swing.JTable tb, int lebar[] ) {
tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
int kolom=tb.getColumnCount();
for(int i=0;i < kolom;i++){
javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i);
tbc.setPreferredWidth(lebar[i]);
tb.setRowHeight(17);
}
}
private javax.swing.table.DefaultTableModel getDefaultTabelModel() {
return new javax.swing.table.DefaultTableModel
(
new Object[][] {},
new String [] {"No Transaksi","Nama Akun","Jumlah Uang","Tanggal",
"Keterangan","Nama Petugas","Sumber Kas","Jenis Penerimaan"}
)
{
64
boolean[] canEdit = new boolean[]
{
false, false, false,false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex)
{
return canEdit[columnIndex];
}
};
}
String data[]=new String[8];
private void setDefaulTable(){
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database, user, pass);
Statement stt = kon.createStatement();
String SQL = "SELECT * FROM kas_masuk";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
data[0] = res.getString(1);
data[1] = res.getString(2);
data[2] = res.getString(3);
data[3] = res.getString(4);
data[4] = res.getString(5);
data[5] = res.getString(6);
data[6] = res.getString(7);
65
data[7] = res.getString(8);
tableModel.addRow(data);
}
res.close();
stt.close();
kon.close();
} catch (Exception e){
System.err.println(e.getMessage());
}
}
int row = 0;
public void Tampil(){
row = table.getSelectedRow();
notransaksi.setText(tableModel.getValueAt(row, 0).toString());
namaakun.setSelectedItem(tableModel.getValueAt(row,
1).toString());
jumlahuang.setText(tableModel.getValueAt(row, 2).toString());
tanggal.setText(tableModel.getValueAt(row, 3).toString());
keterangan.setText(tableModel.getValueAt(row, 4).toString());
namapetugas.setSelectedItem(tableModel.getValueAt(row,
5).toString());
sumberkas.setSelectedItem(tableModel.getValueAt(row,
6).toString());
jenispenerimaan.setSelectedItem(tableModel.getValueAt(row,
7).toString());
66
simpan.setEnabled(false);
edit.setEnabled(true);
SetEditOn();
}
public void BersihData(){
namaakun.setSelectedItem("");
jumlahuang.setText("");
tanggal.setText("");
keterangan.setText("");
namapetugas.setSelectedItem("");
sumberkas.setSelectedItem("");
jenispenerimaan.setSelectedItem("");
}
public void SetEditOff(){
notransaksi.setEnabled(false);
namaakun.setEnabled(false);
jumlahuang.setEnabled(false);
tanggal.setEnabled(false);
keterangan.setEnabled(false);
67
namapetugas.setEnabled(false);
sumberkas.setEnabled(false);
jenispenerimaan.setEnabled(false);
}
public void SetEditOn() {
notransaksi.setEnabled(false);
namaakun.setEnabled(true);
jumlahuang.setEnabled(true);
tanggal.setEnabled(true);
keterangan.setEnabled(true);
namapetugas.setEnabled(true);
sumberkas.setEnabled(true);
jenispenerimaan.setEnabled(true);
}
private void tambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
notransaksi.setEnabled(false);
simpan.setEnabled(true);
edit.setEnabled(false);
SetEditOn();
}
private void simpanActionPerformed(java.awt.event.ActionEvent evt) {
68
// TODO add your handling code here:
String NA=namaakun.getSelectedItem().toString();
String JU=jumlahuang.getText();
String T=tanggal.getText();
String K=keterangan.getText();
String NP=namapetugas.getSelectedItem().toString();
String SK=sumberkas.getSelectedItem().toString();
String JP=jenispenerimaan.getSelectedItem().toString();
if ((NA.isEmpty()) | (JU.isEmpty()) | (T.isEmpty()) |
(K.isEmpty()) | (NP.isEmpty()) | (SK.isEmpty() | (JP.isEmpty())) )
{
JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan
dilengkapi");
notransaksi.requestFocus();
}else {
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "insert into kas_masuk values
('"+notransaksi.getText()+"',"+
"'"+namaakun.getSelectedItem().toString()+"',"+"'"+jumlahuang.getText()+"',"+"'
"+tanggal.getText()+"',"+"'"+keterangan.getText()+"',"+"'"+namapetugas.getSelec
tedItem().toString()+"',"+"'"+sumberkas.getSelectedItem().toString()+"',"+"'"+jeni
spenerimaan.getSelectedItem().toString()+"')";
69
stt.executeUpdate(SQL);
data[0] = notransaksi.getText();
data[1] = namaakun.getSelectedItem().toString();
data[2] = jumlahuang.getText();
data[3] = tanggal.getText();
data[4] = keterangan.getText();
data[5] = namapetugas.getSelectedItem().toString();
data[6] = sumberkas.getSelectedItem().toString();
data[7] = jenispenerimaan.getSelectedItem().toString();
tableModel.insertRow(0, data);
stt.close();
kon.close();
simpan.setEnabled(false);
SetEditOff();
BersihData();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
private void tableMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
Tampil();
}
private void batalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
70
BersihData();
SetEditOff();
tambah.setEnabled(true);
}
private void cariActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
tableModel.getDataVector().removeAllElements();
tableModel.fireTableDataChanged();
String no=isicari.getText();
String tgl=isicari.getText();
String tujuan=isicari.getText();
String jenis=isicari.getText();
String ket=isicari.getText();
String uang=isicari.getText();
try {
Class.forName(driver);
Connection kon =
DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "SELECT * FROM kas_masuk WHERE
no_transaksi_kas_masuk like '%"+no+"%'"
+ "OR tanggal_kas_masuk like '%"+tgl+"%'"
+ "OR jenis_penerimaan like '%"+jenis+"%'"
+ "OR keterangan like '%"+ket+"%'"
+ "OR jumlah_uang like '%"+uang+"%'";
ResultSet rss= stt.executeQuery(SQL);
71
while(rss.next()){
data[0]=rss.getString(1);
data[1]=rss.getString(2);
data[2]=rss.getString(3);
data[3]=rss.getString(4);
data[4]=rss.getString(5);
data[5]=rss.getString(6);
data[6]=rss.getString(7);
data[7]=rss.getString(8);
tableModel.addRow(data);
}
}
catch (Exception ex){
System.err.println(ex.getMessage());
}
}
private void isicariKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==100){
tableModel.getDataVector().removeAllElements();
tableModel.fireTableDataChanged();
try {
Class.forName(driver);
Connection kon =
DriverManager.getConnection(database,user,pass);
72
Statement stt = kon.createStatement();
String SQL = "SELECT * FROM kas_masuk" ;
ResultSet rss= stt.executeQuery(SQL);
while(rss.next()){
data[0]=rss.getString(1);
data[1]=rss.getString(2);
data[2]=rss.getString(3);
data[3]=rss.getString(4);
data[4]=rss.getString(5);
data[5]=rss.getString(6);
data[6]=rss.getString(7);
data[7]=rss.getString(8);
tableModel.addRow(data);
}
}
catch (Exception ex){
System.err.println(ex.getMessage());
}
}
}
public void buatnomor(){
try{
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
73
String SQL = "SELECT * FROM kas_masuk ORDER by
no_transaksi_kas_masuk desc ";
ResultSet res = stt.executeQuery(SQL);
if (res.next())
{
int no_urut =
Integer.parseInt(res.getString("no_transaksi_kas_masuk")) ;
notransaksi.setText(Integer.toString(no_urut+1));
}
else{
int no_urut = 1 ;
notransaksi.setText(Integer.toString(no_urut));
}
res.close();
}catch (Exception e){
}
}
public void TampilComboakun(){
try {
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt =
kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String SQL = "SELECT * FROM akun";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
74
namaakun.addItem(res.getString("nama_akun"));
}
} catch (SQLException ex) {
}
}
public void TampilCombosumberkas(){
try {
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt =
kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String SQL = "SELECT * FROM sumber_kas";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
sumberkas.addItem(res.getString("sumber"));
}
} catch (SQLException ex) {
}
}
public void TampilCombojenispenerimaan(){
try {
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt =
kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
75
String SQL = "SELECT * FROM jenis_penerimaan";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
jenispenerimaan.addItem(res.getString("jenis_penerimaan"));
}
} catch (SQLException ex) {
}
}
public void TampilCombouser(){
try {
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt =
kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String SQL = "SELECT * FROM user";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
namapetugas.addItem(res.getString("nama_user"));
}
} catch (SQLException ex) {
}
}
3.5.2. Spesifikasi Hardwere dan Softwere
1. Perangkat Lunak (Softwere)
Softwere atau perangkat lunak adalah kumpulan data elektronik yang
disimpan dan diatur oleh computer, data elektronik yang disimpan computer bisa
76
berupa program yang berguna untuk menjalankan suatu perintah. Spesifikasi
perangkat lunak yang dibutuhkan sebagai berikut :
a. Sistem : Windows 7 Ultimate
b. Editor Dekstop : NetBeans 8.1
c. Server : Xampp V3.2.2
2. Spesifikasi Perangkat Keras (Hardwere)
Hardwere atau perangkat keras adalah suatu komponen yang ada pada
computer, bisa dilihat secara kasat mata dan mampu disentuh secara
fisik.Spesifikasi perangkat keras yang dibutuhkan sebagai berikut :
a. Processor : AMD
b. Memory : 2 GB
c. System Type : 32 bit
d. Harddisk : 320 GB
e. Monitor : LCD 11,6 Inchi
f. Mouse : Standart Mouse
g. Keyboard : Standart Keyboard
3.6. Testing
1. Form login
Tabel III.3 Testing Form login
No Skenario
pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Keterangan
77
1 Bendahara
mengakses
form login
Menginput
user name
dan
password
System akan
menerima user
name dan
password
berdasarkan
hak akses lalu
menampilkan
halaman utama
sesuai
harapan
Benar
2. Form akun
Tabel III.4 Testing Form akun
No Skenario
pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Keterangan
1 Bendahara
mengakses
form akun
Menginput
kode akun
dan nama
akun
System akan
menerima
kode akun dan
nama akun
lalu
menampilkan
data akun di
tabel
sesuai
harapan
Benar
3. Form sumber kas
Tabel III.5 Testing Form sumber kas
No Skenario
pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Keterangan
1 Bendahara
mengakses
Menginput
kode
Sistem akan
menerima
sesuai
harapan
Benar
78
form sumber
kas
sumber kas
dan sumber
kas
kode sumber
kas dan nama
sumber kas
lalu
menampilkan
data akun di
tabel
4. Form jenis penerimaan
Tabel III.6 Testing Form jenis penerimaan
No Skenario
pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Keterangan
1 Bendahara
mengakses
form jenis
penerimaa
n
Menginpu
t kode
jenis
penerimaa
n dan jenis
penerimaa
n
Sistem akan
menerima kode
akun dan nama
akun lalu
menampilkan data
akun di tabel
sesuai
harapan
Benar
5. Form jenis pengeluaran
Tabel III.7 Testing Form jenis pengeluaran
No Skenario
pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Keterangan
1 Bendahara
mengakses
form jenis
pengeluara
n
Menginput
kode jenis
pengeluaran
dan jenis
pengeluaran
Sistem akan
menerima kode
jenis pengeluaran
dan jenis
pengeluaran lalu
menampilkan
data akun di tabel
sesuai
harapan
Benar
6. Form user
Tabel III.8 Testing Form user
No Skenario
pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Keterangan
1 Bendahara Menginpu Sistem akan sesuai Benar
79
mengakses
form user
t user
name
,password
dan hak
akses
menerima user
name,password
dan hak akses lalu
menampilkan
data user ditabel
harapan
7. Form transaksi kas masuk
Tabel III.9 Testing Form transaksi kas masuk
No Skenario
pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Keterangan
1 Bendahara
mengakses
form kas
masuk
Menginput
nama akun
,jumlah uang,
tanggal kas
masuk,
keterangan,
memilih jenis
penerimaan,
memilih
sumber kas
dan nama
petugas
Sistem akan
menerima nama
akun ,jumlah
uang, tanggal
kas masuk,
keterangan,
memilih jenis
penerimaan,
memilih suber
kas dan nama
petugas lalu
menampilkan
data transaksi
kas masuk
ditabel
sesuai
harapan
Benar
8. Form transaksi kas keluar
Tabel III.9 Testing Form transaksi kas keluar
80
No Skenario
pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Keterangan
1 Bendahara
mengakses
form kas
masuk
Menginput
nama akun
,jumlah uang,
tanggal kas
keluar,
keterangan,
memilih jenis
pengeluaran,
memilih
sumber kas
dan nama
petugas
Sistem akan
menerima nama
akun ,jumlah
uang, tanggal
kas keluar,
keterangan,
memilih jenis
pengeluaran,
memilih suber
kas dan nama
petugas lalu
menampilkan
data transaksi
kas masuk
ditabel
sesuai
harapan
Benar