BAB III PEMBAHASAN 3.1. Tinjauan Lembaga/Instansi · Bakau,sebelah barat berbatasan dengan laut...

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

Transcript of BAB III PEMBAHASAN 3.1. Tinjauan Lembaga/Instansi · Bakau,sebelah barat berbatasan dengan laut...

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.

25

3.3.2.Use Case Diagram

a. use case diagram Bendahara

Gambar III. 2

Use Case Diagram Bendahara

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

29

2. activity tambah akun

Sumber : Hasil Penelitian (2017)

Gambar III.5 Activity Diagram Akun

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

33

6. activity user

Sumber : Hasil Penelitian (2017)

Gambar III.9 Activity Diagram User

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