Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
30
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Dalam tinjauan perusahaan ini akan menjelaskan tentang sejarah singkat, struktur
organisasi, serta fungsinya dari masing- masing bagian yang ada di dalam perusahaan.
Berikut tinjauan perusahaan di dalam Lembaga Kursus E-Tutor Karawang.
3.1.1. Sejarah Perusahaan
Lembaga kursus e-tutor karawang berdiri pada tahun 2013 yang didirikan oleh
Ibu Susilawati yang terletak di Jl. Ahmad Yani No. 22 Kota Cikampek-Karawang.
Materi yang diajarkan didalam tempat kursus tersebut yaitu komputer Ms. Office,
Desain Grafis, Bahasa Inggris, Bahasa Jepang, Bahasa Korea dan Bahasa Arab.
Awal berdirinya lembaga kursus e-tutor karawang hanya ada 1 tutor yang
menjadi pengajar materi bahasa inggris. Seiring berkembangnya lembaga kursus
tersebut kini telah mempunyai beberapa tutor dengan materi yang diajarkan berbeda
seperti kursus komputer yang meliputi microsoft office, desain grafis dan kursus
bahasa meliputi bahasa korea, bahasa jepang dan bahasa arab.
Keuntungan belajar di lembaga kursus e-tutor karawang yaitu siswa bisa
memilih waktu belajar yang sesuai dengan keadaan siswa (sambil bekerja, sekolah
maupun keadaan tidak bersekolah atau tidak bekerja). Siswa dapat mengubah waktu
belajar sewaktu-waktu dimana proses belajar masih berjalan, maksimal siswa dalam
satu sesi hanya ada 6 siswa sehingga menjamin efektifitas penularan keterampilan dan
siswa lebih memahami materi yang diajarkan oleh tutor.
31
3.1.2. Struktur Organisasi dan Fungsi
Struktur organisasi dapat diartikan sebagai susunan dan hubungan antara bagian
dan posisi dalam perusahaan. Struktur organisasi pula menjelaskan pembagian
aktivitas kerja, serta memperhatikan hubungan fungsi dan aktivitas sampai batas-batas
tertentu.
Struktur organisasi memperlihatkan tingkat spesialisasi aktivitas tersebut, juga
menjelaskan hierarki dan susunan kewenangan serta hubungan pelaporan. Berikut ini
struktur organisasi yang ada di Lembaga Kursus E-Tutor Karawang sebagai berikut:
Sumber: Data E-Tutor(2019)
Gambar III.1
Struktur Organisasi Kursus E-Tutor
Berikut adalah tugas dan wewenang
1. Pemilik
a. Pengembangan dan keberlangsungan kursus
b. Melakukan perencanaan strategis
c. Melakukan pengorganisasian terhadap komponen perusahaan
32
d. Bersama koordinator tutor bertanggung jawab dalam pemeliharaan dan
peningkatan kualitas tutor dan siswa secara berkala
2. Admin
a. Mengatur keuangan dan administrasi
b. Pengelolaan keuangan
c. Bertanggung jawab terhadap pelayanan konsumen
d. Bertanggung jawab terhadap pencatatan administrasi
e. Memastikan kelengkapan operasional kantor dan kegiatan KBM
3. Tutor
a. Bertanggung jawab terhadap kegiatan belajar
b. Bertanggung jawab dalam menjaga kualitas pengajaran dan proses KBM
c. Membuat rekap data kehadiran siswa, nilai siswa, serta menganilisis
permasalahan siswa
d. Melayani dengan sepenuh hati dan memberikan motivasi kepada siswa
3.2. Tinjauan Kasus
Perkembangan teknologi saat ini sangat memberi dukungan bagi kemajuan
sistem pengolahan data pada perusahaan, terutama pemanfaatan teknologi yang
berbasis komputer. Penggunaan sistem komputer dalam dunia pendidikan sangat
membantu dalam pengolahan data, sehingga proses penyajian laporan dapat dilakukan
secara cepat, tepat, efisien waktu dan meminimalkan lambatnya informasi.
Komputerisasi dalam informasi penerimaan kas dan pengeluaran kas merupakan
faktor yang sangat penting untuk menilai kinerja perusahaan, dimana sistem ini
digunakan untuk mengetahui transaksi pembayaran, transaksi pengeluaran kas, serta
untuk membuat laporan.
33
Selama ini pada Kursus E-Tutor untuk pengolahan data informasi penerimaan
kas masih menggunakan buku dan pengeluaran kas dimana bukti pengeluaran kas
diarsipkan oleh admin.
3.2.1. Proses Bisnis Sistem Berjalan
Prosedur Sistem Pencatatan Arus Kas yang sudah berjalan di E-Tutor sebagai
berikut:
1. Prosedur Pendaftaran Siswa Baru
Pada proses pendaftaran, siswa datang langsung ke e-tutor lalu admin memberi
brosur serta menerangkan materi kursus yang ada di e-tutor beserta biaya kursus.
Setelah siswa memilih materi kursus, admin mencatat data siswa dengan cara
menanyakan langsung kepada siswa yang dicatat dibuku data siswa.
2. Prosedur Penerimaan Kas dari Pembayaran Kursus
Pembayaran dilakukan setiap bulan, setelah siswa mendaftar kemudian siswa
membayar pembayaran kursus dan admin melakukan pengecekan pembayaran
siswa melalui buku pembayaran bagi siswa yang ingin melakukan pembayaran
berikutnya, setelah di cek apabila ada siswa yang masih menunggak admin
memberikan info tunggakan dan menginformasikan kepada siswa pembayaran
yang harus dibayar. Admin menerima pembayaran kursus serta membuat kwitansi
pembayaran kurus yang diberikan kepada siswa lalu admin mencatat data
pembayaran kursus dibuku pembayaran.
3. Prosedur Pengeluaran Kas
Dalam prosedur pengeluaran kas, admin mengeluarkan dana sesuai yang
dibutuhkan seperti biaya listrik, biaya gedung dan biaya perlengkapan alat tulis
kantor. Bukti biaya – biaya tersebut dikumpulkan dan diarsipkan. Lalu admin
memberi bukti-bukti pengeluaran kas kepada pemilik.
34
4. Prosedur Laporan
Dalam prosedur laporan, pemilik setiap bulan mengecek data-data seperti data
pembayaran kursus serta pengeluaran kas dengan melihat arsip bukti pengeluaran
kas yang diberi oleh admin
3.2.2. Activity Diagram
1. Prosedur Pendaftaran Siswa Baru
Gambar III.2
Activity Diagram Pendaftaran Siswa
35
2. Prosedur Penerimaan Kas dari Pembayaran Kursus
Gambar III. 3
Activity Diagram Pembayaran Kursus
36
4. Prosedur Pengeluaran Kas
Gambar III.4
Activity Diagram Pengeluaran Kas
5. Prosedur Laporan
Gambar III.5
Activity Diagram Laporan
37
3.2.3. Dokumen Masukan
1. Nama Dokumen : Data Siswa
Fungsi : Sebagai bukti data siswa
Sumber : Siswa
Tujuan : Bagian Administrasi
Media : Kertas
Jumlah : Satu Lembar
Frekuensi : Setiap pendaftaran siswa
2. Nama Dokumen : Data Biaya Listrik
Fungsi : Untuk melihat biaya listrik bulan sebelumnya
Sumber : PLN
Tujuan : Bagian Administrasi
Media : Kertas
Jumlah : Satu Lembar
Frekuensi : Setiap ingin membayar biaya listrik
3. Nama Dokumen : Data Biaya Gedung
Fungsi : Untuk melihat biaya gedung
Sumber : Pemilik Gedung
Tujuan : Bagian Administrasi
Media : Kertas
Jumlah : Satu Lembar
Frekuensi : Setiap ingin membayar biaya Gedung
3.2.4. Dokumen Keluaran
1. Nama Dokumen : Kwitansi Pembayaran Kursus
Fungsi : Sebagai bukti pembayaran kursus
38
Sumber : Bagian Administrasi
Tujuan : Siswa
Media : Kertas
Jumlah : Satu Rangkap
Frekuensi : Setiap terjadi pembayaran kursus
2. Nama Dokumen : Data Pembayaran
Fungsi : Sebagai bukti pembayaran kursus siswa
Sumber : Bagian Administrasi
Tujuan : Pemilik
Media : Kertas
Jumlah : 1 Buku
Frekuensi : Setiap perbulan
3.2.5. Permasalahan Pokok
Hasil penelitian selama melakukan observasi dan wawancara dapat dikatakan
bahwa kegiatan pencatatan arus kas di Lembaga Kursus E-Tutor Karawang masih
menggunakan buku dalam mengelola arus kas. Sehingga menimbulkan lambatnya
informasi. Berikut adalah uraian hasil analisa mengenai hambatan dan masalah yang
ada pada sistem berjalan ini:
1. Proses pencatatan pendataan siswa, pembayaran kursus masih menggunakan buku.
Sedangkan pada saat pengeluaran kas hanya mengarsip bukti-bukti kas keluar
belum adanya rekapan pengeluaran kas. Sehingga menghambat untuk pengolahan
arus kas dalam lembaga kursus tersebut. Hal ini menjadi tidak efektif dan efisien
karena membutuhkan waktu yang lama dalam mencatat proses tersebut serta
pencarian data.
39
2. Lembaga kursus tersebut belum adanya laporan untuk pemilik masih menggunakan
buku dan pengeluaran kas hanya dengan bukti-bukti pengeluaran kas sehingga tidak
efektif untuk proses pengecekan arus kas dalam lembaga kursus tersebut.
3.2.6. Pemecahan Masalah
Untuk mengatasi masalah-masalah tersebut maka penulis mencoba untuk
membuat pemecahan masalah, yaitu:
1. Untuk mengefektifkan kinerja dari pengoalahan data arus kas bisa dengan
memberikan pengolahan data tersebut dengan sistem terkomputerisasi agar lebih
efektif dalam pengolahan tersebut.
2. Dibuatkan laporan pada masing masing pengolahan tersebut seperti dalam
pendaftaran dibuatkan laporan pembayaran kursus dan laporan pengeluaran kas
perbulan agar menghasilkan informasi yang lebih jelas untuk pemilik.
3.3.Analisis Kebutuhan Software
Analisis kebutuhan software merupakan langkah awal untuk menentukan
gambaran perangkat yang akan dihasilkan ketika akan mengembangkan sebuah sistem
baik sistem yang belum terkomputerisasi ataupun yang belum terkomputerisasi.
Analisis kebutuhan software yang baik belum tentu menghasilkan perangkat lunak
yang baik, sehingga dibutuhkan tahap-tahap yang rinci, spesifikasi, sesuai prosedur
dan terstruktur.
3.3.1. Analisis Kebutuhan
Program sistem informasi pada Lembaga Kursus E-Tutor Karawang belum
terkomputerisasi agar lebih efisien dengan menggunakan beberapa user. Berikut ini
spesifikasi kebutuhan software dari program sistem informasi tersebut.
A. Analisa Kebutuhan Bagian Admin akan Sistem
A.1. Admin kursus dapat melakukan Login
40
A.2. Admin kursus dapat mengelola data siswa
A.3. Admin kursus dapat mengelola transaksi dan jurnal penerimaan kas
A.4. Admin kursus dapat mengelola data penerima
A.5. Admin kursus dapat mengelola transaksi dan jurnal pengeluaran kas
A.6. Admin kursus dapat mengelola data perkiraan
A.7. Admin kursus dapat mengelola laporan
B . Analisa Kebutuhan Bagian Pemilik akan Sistem
B.1. Pemilik dapat melakukan Login
B.2. Pemilik dapat mengelola data pengguna
B.3. Pemilik dapat mengelola laporan.
3.3.2. Use Case Diagram
Diagram Use case merupakan pemodelan untuk pelakuan ( behavior ) sistem
informasi yang akan dibuat. Berikut merupakan Usecase diagram sistem usulan :
Gambar III.6
Use Case Diagram Sistem Usulan Arus Kas
41
1. Definisi Aktor
Berikut adalah deskripsi pendefinisian aktor pada sistem informasi akuntansi arus
kas kursus:
Tabel III.1.
Definisi aktor sistem arus kas
No Aktor Deskripsi
1 Admin kursus Orang yang bertugas dan memiliki hak akses
untuk melakukan operasi pengelolaan data
siswa, transaksi penerimaan kas, data penerima,
transaksi pengeluaran kas, data perkiraan dan
laporan
2 Pemilik kursus Orang yang memiliki hak akses untuk
melakukan operasi data pengguna, dan
mengelola laporan
2. Definisi Use Case
Berikut adalah deskripsi use case pada sistem informasi akuntansi arus kas
kursus:
Tabel III.2.
Definisi Use Case
No Use Case Deskripsi
1 Login Merupakan proses untuk melakukan login admin
kursus
2 Mengelola data siswa Proses pengelolaan data siswa yaitu
menambahkan data siswa, menyimpan data
siswa, mengedit data siswa, menghapus data
siswa, mencari data siswa
3 Mengelola transaksi
penerimaan kas
Proses pengelolaan transaksi penerimaan kas
yaitu menambahkan transaksi penerimaan kas,
menyimpan transaksi penerimaan kas.
4 Mengelola data
penerima
Proses pengelolaan data penerima yaitu
menambahkan data penerima, menyimpan data
penerima
5 Mengelola transaksi
pengeluaran kas
Proses pengelolaan pengeluaran kas yaitu
menambahkan transaksi pengeluaran kas,
menyimpan transaksi penerimaan kas
6 Mengelola data
perkiraan
Proses pengelolaan data perkiraan yaitu
menambahkan data perkiraan, menyimpan data
siswa
7 Mengelola data
pengguna
Proses pengelolaan data pengguna yaitu
menambahkan data pengguna, menyimpan data
42
pengguna, mengedit data pengguna, menghapus
data pengguna, mencari data pengguna
8 Mengelola Laporan Proses pengelolaan laporan yang terdiri dari
laporan penerimaan kas, laporan pengeluaran
kas, laporan jurnal kas masuk, dan laporan jurnal
kas keluar.
9 Mengelola laporan
penerimaan kas
Proses pengelolaan laporan penerimaan kas yaitu
mencari data penerimaan kas dan mencetak
laporan penerimaan kas
10 Mengelola laporan
pengeluaran kas
Proses pengelolaan laporan pengeluaran kas
yaitu mencari data pengeluaran kas dan
mencetak laporan pengeluaran kas
11 Mengelola laporan
jurnal kas masuk
Proses pengelolaan laporan jurnal kas masuk
yaitu mencari data jurnal kas masuk dan
mencetak laporan jurnal kas masuk
12 Mengelola laporan
jurnal kas keluar
Proses pengeluaran laporan jurnal kas keluar
yaitu mencari data jurnal kas keluar dan
mencetak laporan jurnal kas keluar
3. Skenario Use Case
Berikut adalah skenario jalannya masing-masing use case yang telah didefinisikan
sebelumnya:
Tabel III.3.
Skenario Use Case
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan username dan
kata sandi
2. Memeriksa valid tidaknya data
masukkan dengan memeriksa
ke tabel pengguna
3. Masuk ke program
pengelolaan arus kas
Skenario Alternatif
1. Memasukkan username dan
kata sandi
2. Memeriksa valid tidaknya data
masukan
3. Menampilkan pesan login
tidak berhasil
4. Memasukkan username dan
kata sandi
5. Memeriksa valid tidaknya data
masukan
43
6. Masuk ke program
pengelolaan arus kas.
2.3.3. Activity Diagram
Diagram Aktivitas atau Activity Diagram menggambarkan workflow (aliran
kas) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada
perangkat lunak. Berikut adalah Activity Diagram sistem usulan yang kami usulkan
1. Activity Diagram Bagian Admin
a. Activity diagram login bagian admin
Gambar III.7
Activity Diagram Login Bagian Admin
44
b. Activity diagram data siswa bagian admin
Gambar III.8
Activity Diagram Data Siswa
45
c. Activity diagram transaksi penerimaan kas bagian admin
Gambar III.9
Activity Diagram Transaksi Penerimaan Kas
46
d. Activity diagram data penerima bagian admin
Gambar III.10
Activity Diagram Data Penerima
47
e. Activity diagram transaksi pengeluaran kas bagian admin
Gambar III.11
Activity Diagram Transaksi Pengeluaran Kas
48
f. Activity diagram data perkiraan bagian admin
Gambar III.12
Activity Diagram Data Perkiraan
49
g. Activity diagram laporan kas masuk bagian admin
Gambar III.13
Activity Diagram Laporan Penerimaan Kas
50
h. Activity diagram laporan kas keluar bagian admin
Gambar III.14
Activity Diagram Laporan Pengeluaran Kas
i. Activity diagram laporan jurnal kas masuk bagian admin
Gambar III.15
Activity Diagram Laporan Jurnal Kas Masuk
51
j. Activity Diagram laporan jurnal kas keluar bagian admin
Gambar III.16
Activity Diagram Laporan Jurnal Kas Keluar
52
2. Activity Diagram Bagian Pemilik
a. Activity diagram login bagian pemilik
Gambar III.17
Activity Diagram Login Bagian Pemilik
53
b. Activity diagram data pengguna bagian pemilik
Gambar III.18
Activity Diagram Data Pengguna
54
c. Activity diagram laporan penerimaan masuk bagian pemilik
Gambar III.19
Activity Diagram Laporan Penerimaan Kas
55
d. Activity diagram laporan kas keluar bagian pemilik
Gambar III.20
Activity Diagram Laporan Pengeluaran Kas
56
e. Activity diagram laporan jurnal kas masuk bagian pemilik
Gambar III.21
Activity Diagram Laporan Jurnal Kas Masuk Pemilik
57
f. Activity Diagram Laporan Jurnal Kas Keluar Pemilik
Gambar III.22
Activity Diagram Laporan Jurnal Kas Keluar
58
3.4. Desain
Desain perangkat lunak adalah proses multi langkah yang fokus pada desain
pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat
lunak, representasi antarmuka dan prosedur pengodean. Berikut desain usulan pada
lembaga kursus e-tutor karawang.
3.4.1. Entity Relationship Diagram (ERD)
Gambar III.23
Entity Relationship Diagram (ERD) Sistem Usulan Arus Kas
59
3.4.2. Logical Record Structure (LRS)
Gambar III.24
Logical Record Structure (LRS) Sistem Usulan Arus Kas
3.4.3. Spesifikasi File
Spesifikasi file pada Lembaga Kursus E-Tutor Karawang adalah sebagai
berikut:
1. Spesifikasi File Tabel Pengguna
Nama File : File Pengguna
Fungsi : Digunakan untuk mengelola data pengguna
Akronim : pengguna
Tipe File : File Master
Akses File : Random
60
Panjang Record : 63
Kunci File : id_pengguna
Tabel III.4.
Spesifikasi File Tabel Pengguna
No Element Data Akronim Tipe Size Keterangan
1 Id pengguna id_pengguna Int 8 Primary key
2 Nama
Pengguna
nm_pengguna Varchar 20
3 Kata Sandi kt_sandi Varchar 20
4 Hak Akses hak_akses Varchar 15
2. Spesifikasi File Siswa
Nama File : File Siswa
Fungsi : Digunakan untuk mengelola data siswa
Akronim : siswa
Tipe File : File Master
Akses File : Random
Panjang Record : 108
Kunci File : kd_siswa
Tabel III.5.
Spesifikasi File Tabel Siswa
No Element Data Akronim Tipe Size Keterangan
1 Kode Siswa kd_siswa Int 8 Primary key
2 Nama Siswa nm_siswa Varchar 25
3 Tempat Lahir tempat_lahir Varchar 15
4 Tanggal Lahir tgl_lahir Date
61
5 Jenis Kelamin jns_kelamin Varchar 12
6 Alamat alamat Text
7 No Hp no_hp Varchar 13
8 Program program Varchar 35
3. Spesifikasi File Tabel Penerimaan Kas
Nama File : File Penerimaan Kas
Fungsi : Digunakan untuk mengelola penerimaan kas
Akronim : kas_masuk
Tipe File : File Transaksi
Akses File : Random
Panjang Record : 92
Kunci File : nomor
Tabel III.6.
Spesifikasi File Penerimaan Kas
No Element Data Akronim Tipe Size Keterangan
1 Nomor nomor Int 5 Primary key
2 No Kas Masuk no_km Varchar 8
3 Id Pengguna id_pengguna Varchar 8 Foreign Key
4 Tanggal Kas
Masuk
tgl_km Date
5 Kode Siswa kd_siswa Varchar 8 Foreign Key
6 Kode Perkiraan kd_perkiraan Varchar 8 Foreign Key
7 Nama Akun nm_akun Varchar 20
8 Keterangan keterangan Text
9 Jumlah Kas
Masuk
jml_km Int 15
10 Debet debet Int 10
11 Kredit kredit Int 10
62
4. Spesifikasi File Tabel Data Penerima
Nama File : File Data Penerima
Fungsi : Digunakan untuk mengetahui nama penerima kas keluar
Akronim : penerima
Tipe File : File Master
Akses File : Random
Panjang Record : 28
Kunci File : kd_penerima
Tabel III.7.
Spesifikasi File Data Penerima
No Element Data Akronim Tipe Size Keterangan
1 Kode Penerima kd_penerima Int 8 Primary key
2 Nama Penerima nm_penerima Varchar 20
3 Alamat Alamat Text
5. Spesifikasi File Tabel Pengeluaran Kas
Nama File : File Pengeluaran Kas
Fungsi : Digunakan untuk mengelola pengeluaran kas
Akronim : kas_keluar
Tipe File : File Transaksi
Akses File : Random
Panjang Record : 92
Kunci File : nomor
Tabel III.8.
Spesifikasi File Pengeluaran Kas
No Element Data Akronim Tipe Size Keterangan
1 Nomor Nomor Int 5 Primary key
63
2 No Kas Keluar no_kk Varchar 8
3 Id Pengguna id_pengguna Varchar 8 Foreign Key
4 Tanggal Kas
Keluar
tgl_kk Date
5 Kode Penerima kd_penerima Varchar 8 Foreign Key
6 Kode Perkiraan kd_perkiraan Varchar 8 Foreign Key
7 Nama Akun nm_akun Varchar 20
8 Keterangan keterangan Text
9 Jumlah Kas
Keluar
jml_kk Int 15
10 Debet Debet Int 10
11 Kredit Kredit Int 10
6. Spesifikasi File Tabel Perkiraan
Nama File : File Perkiraan
Fungsi : Digunakan untuk mengeelola data perkiraan
Akronim : perkiraan
Tipe File : File Master
Akses File : Random
Panjang Record : 38
Kunci File : kd_perkiraan
Tabel III.9.
Spesifikasi File Perkiraan
No Element Data Akronim Tipe Size Keterangan
1 Kode Perkiraan kd_perkiraan Int 8 Primary key
2 Nama Akun nm_akun Varchar 20
3 Saldo Normal saldo_normal Varchar 10
64
3.4.4. Sequence Diagram
Sequence Diagram menggambarkan kelakuan objek pada use case dengan
mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar
objek. Berikut merupakan Sequence Diagram sistem usulan:
1. Sequence Diagram Penerimaan Kas
Gambar III.25
Sequence Diagram Sistem Usulan Penerimaan Kas
65
2. Sequence Diagram pengeluaran kas
Gambar III.26
Sequence Diagram Sistem Usulan Pengeluaran Kas
66
3.4.5. Deployment Diagram
Gambar III.27
Deployment Diagram Sistem Usulan
67
3.4.6. User Interface
Dalam bagian ini penulis akan menampilkan user interface sistem informasi
arus kas pada Lembaga Kursus E-Tutor Karawang , yaitu:
1. Tampilan Login
Gambar III.28
Tampilan Login
2. Tampilan Data Siswa
Gambar III.29
Tampilan Data Siswa
68
3. Tampilan Penerimaan Kas
Gambar III.30
Tampilan Penerimaan Kas
4. Tampilan Data Penerima
Gambar III.31
Tampilan Data Penerima
69
5. Tampilan Pengeluaran Kas
Gambar III.32
Tampilan Pengeluaran Kas
6. Tampilan Perkiraan
Gambar III.33
Tampilan Data Perkiraan
70
7. Tampilan Data Pengguna
Gambar III.34
Tampilan Data Pengguna
8. Tampilan Laporan Penerimaan Kas
Gambar III.35
Tampilan Laporan Penerimaan Kas
71
9. Tampilan Laporan Pengeluaran Kas
Gambar III.36
Tampilan Laporan Pengeluaran Kas
10. Tampilan Laporan Jurnal Kas Masuk
Gambar III.37
Tampilan Laporan Jurnal Kas Masuk
72
11. Tampilan Laporan Jurnal Kas Keluar
Gambar III.38
Tampilan Laporan Jurnal Kas Keluar
3.5. Implementasi
3.5.1. Code Generation
import Database.KoneksiDatabase;
import Database.ResultSetTable;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
public class form_penerimaankas extends javax.swing.JFrame {
ResultSet rs;
KoneksiDatabase con;
73
public form_penerimaankas()
con = new KoneksiDatabase(new Database.Parameter().HOST_DB,
new Database.Parameter().USERNAME_DB,
new Database.Parameter().PASSWORD_DB);
initComponents();
setTitle("Form Penerimaan Kas");
loadtabel();
loadtabel2();
nonaktif();
tambah.setEnabled(true);
batal.setEnabled(false);
simpanb.setEnabled(false);
loaddata2();
}
private String no_km() {
String no = null;
try {
con.koneksiDatabase();
String sql = "Select right(no_km,4)+1 from kas_masuk";
ResultSet rs = con.eksekusiQuery(sql);
if (rs.next()) {
rs.last();
no = rs.getString(1);
while (no.length() < 4) {
no = "000" + no;
no = "3" + no;
no_km.setText(no);
}
} else {
no = "30001";
no_km.setText(no);
}
} catch (Exception e) {
}
return no;
}
private void loaddata2() {
rs = con.querySelectAll("siswa");
try {
while (rs.next()) {
kd_siswa.addItem(rs.getString("kd_siswa"));
}
} catch (SQLException ex) {
Logger.getLogger(form_penerimaankas.class.getName()).log(Level.SEVERE, null,
ex);
}
}
/**
* This method is called from within the constructor to initialize the form.
74
* 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();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
no_km = new javax.swing.JTextField();
jml_km = new javax.swing.JTextField();
tambah = new javax.swing.JButton();
simpanb = new javax.swing.JButton();
batal = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
data_jurnal = new javax.swing.JTable();
jDateChooser1 = new com.toedter.calendar.JDateChooser();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
kd_siswa = new javax.swing.JComboBox<>();
nm_siswa = new javax.swing.JTextField();
jScrollPane2 = new javax.swing.JScrollPane();
keterangan = new javax.swing.JTextArea();
jScrollPane3 = new javax.swing.JScrollPane();
data_kasmasuk = new javax.swing.JTable();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setBackground(new java.awt.Color(204, 204, 255));
jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(0, 0, 0)));
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel2.setText("No. Kas Masuk :");
jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 120, -1,
-1));
jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel3.setText("Tanggal Kas Masuk :");
jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(600, 210, -1,
-1));
jLabel4.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel4.setText("Keterangan :");
75
jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(600, 120, -1,
-1));
jLabel5.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18
jLabel5.setText("Jumlah Kas Masuk :");
jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(600, 260, -1,
-1));
jPanel1.add(no_km, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 120,
170, 30));
jml_km.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
jml_kmKeyTyped(evt);
}
});
jPanel1.add(jml_km, new org.netbeans.lib.awtextra.AbsoluteConstraints(780, 260,
150, 30));
tambah.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
tambah.setText("Tambah");
tambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tambahActionPerformed(evt);
}
});
jPanel1.add(tambah, new org.netbeans.lib.awtextra.AbsoluteConstraints(270, 330,
140, 40));
simpanb.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
simpanb.setText("Simpan");
simpanb.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
simpanbActionPerformed(evt);
}
});
jPanel1.add(simpanb, new org.netbeans.lib.awtextra.AbsoluteConstraints(430, 330,
130, 40));
batal.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
batal.setText("Batal");
batal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
batalActionPerformed(evt);
}
});
jPanel1.add(batal, new org.netbeans.lib.awtextra.AbsoluteConstraints(580, 330, 130,
40));
data_jurnal.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null}
},
76
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4", "Title 5"
}
));
jScrollPane1.setViewportView(data_jurnal);
jPanel1.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(540,
480, 460, 110));
jPanel1.add(jDateChooser1, new org.netbeans.lib.awtextra.AbsoluteConstraints(780,
210, 150, -1));
jLabel6.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel6.setText("Kode Siswa :");
jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 190,
150, 20));
jLabel7.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel7.setText("Nama Siswa :");
jPanel1.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 260, -1,
-1));
kd_siswa.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
kd_siswa.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] {
"==Pilih==" }));
kd_siswa.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
kd_siswaActionPerformed(evt);
}
});
jPanel1.add(kd_siswa, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 190,
130, -1));
jPanel1.add(nm_siswa, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 260,
170, 30));
keterangan.setColumns(20);
keterangan.setRows(5);
jScrollPane2.setViewportView(keterangan);
jPanel1.add(jScrollPane2, new org.netbeans.lib.awtextra.AbsoluteConstraints(770,
120, 200, 60));
data_kasmasuk.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, 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", "Title 5"
}
));
jScrollPane3.setViewportView(data_kasmasuk);
jPanel1.add(jScrollPane3, new org.netbeans.lib.awtextra.AbsoluteConstraints(30,
480, 480, 110));
77
jLabel8.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
jLabel8.setText("Tabel Transaksi");
jPanel1.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 430, -1,
-1));
jLabel9.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
jLabel9.setText("Tabel Jurnal Kas Masuk");
jPanel1.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(660, 430, -
1, -1));
jPanel2.setBackground(new java.awt.Color(255, 204, 153));
jPanel2.setBorder(new javax.swing.border.MatteBorder(null));
jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 36)); // NOI18N
jLabel1.setText(" PENERIMAAN KAS");
jPanel2.add(jLabel1);
jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 1030,
70));
jLabel11.setText("--------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------");
jPanel1.add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 400, -1,
-1));
jLabel12.setText("--------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------");
jPanel1.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 390, -1,
-1));
getContentPane().add(jPanel1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 0, 1030, 620));
pack();
}// </editor-fold>
private void simpanbActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
simpanb();
}
private void tambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
tambah.setEnabled(false);
batal.setEnabled(true);
simpanb.setEnabled(true);
simpanb.setVisible(true);
aktif();
no_km();
}
private void batalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
tambah.setEnabled(true);
batal.setEnabled(false);
simpanb.setEnabled(false);
simpanb.setVisible(true);
78
nonaktif();
clear();
loadtabel();
}
private void jml_kmKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (!Character.isDigit(evt.getKeyChar())) {
evt.consume();
}
}
private void kd_siswaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String st = (String) kd_siswa.getSelectedItem();
ResultSet rst = con.querySelectAll("siswa", "kd_siswa='" + st + "'");
try {
while (rst.next()) {
this.nm_siswa.setText(rst.getString("nm_siswa"));
}
} catch (SQLException ex) {
Logger.getLogger(form_penerimaankas.class.getName()).log(Level.SEVERE, null,
ex);
}
}
/**
* @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;
}
}
79
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(form_penerimaankas.class.getName()).log(java.u
til.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(form_penerimaankas.class.getName()).log(java.u
til.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(form_penerimaankas.class.getName()).log(java.u
til.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(form_penerimaankas.class.getName()).log(java.u
til.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new form_penerimaankas().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton batal;
private javax.swing.JTable data_jurnal;
private javax.swing.JTable data_kasmasuk;
private com.toedter.calendar.JDateChooser jDateChooser1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
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.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JTextField jml_km;
private javax.swing.JComboBox<String> kd_siswa;
80
private javax.swing.JTextArea keterangan;
private javax.swing.JTextField nm_siswa;
private javax.swing.JTextField no_km;
private javax.swing.JButton simpanb;
private javax.swing.JButton tambah;
// End of variables declaration
private void simpanb() {
try {
if (!no_km.getText().isEmpty()
&& !keterangan.getText().isEmpty() && !nm_siswa.getText().isEmpty()
&& !jml_km.getText().isEmpty()) {
String kolom[] = {"no_km", "tgl_km", "kd_siswa", "kd_perkiraan",
"nm_akun", "keterangan", "jml_km", "debet", "kredit"};
java.util.Date tgl = (java.util.Date) this.jDateChooser1.getDate();
String isi[] = {no_km.getText(), new
java.sql.Date(tgl.getTime()).toString(), kd_siswa.getSelectedItem().toString(),
("11001"),
("kas"), keterangan.getText(), jml_km.getText(), jml_km.getText(),
("0")};
System.out.println(con.queryInsert("kas_masuk", kolom, isi));
JOptionPane.showMessageDialog(this, "Data Berhasil Disimpan");
simpan2();
loadtabel();
loadtabel2();
CetakKM();
clear();
nonaktif();
tambah.setEnabled(true);
batal.setEnabled(false);
simpanb.setEnabled(false);
simpanb.setVisible(true);
} else {
JOptionPane.showMessageDialog(this, "Data isian ada yang kosong");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Error input data");
System.out.println("salah");
}
}
private void simpan2() {
try {
String kolom[] = {"no_km", "tgl_km", "kd_siswa", "kd_perkiraan", "nm_akun",
"keterangan", "jml_km", "debet", "kredit"};
java.util.Date tgl = (java.util.Date) this.jDateChooser1.getDate();
String isi[] = {no_km.getText(), new java.sql.Date(tgl.getTime()).toString(),
kd_siswa.getSelectedItem().toString(), ("41001"),
("pendapatan"), keterangan.getText(), jml_km.getText(), ("0"),
jml_km.getText()};
System.out.println(con.queryInsert("kas_masuk", kolom, isi));
81
} catch (Exception e) {
}
}
private void loadtabel() {
String namaKolom[] = {"no_km", "tgl_km", "kd_siswa", "keterangan",
"jml_km"};
rs = con.querySelect(namaKolom, "kas_masuk");
data_kasmasuk.setModel(new ResultSetTable(rs));
}
private void clear() {
no_km.setText("");
kd_siswa.setSelectedItem("==pilih==");
keterangan.setText("");
jml_km.setText("");
nm_siswa.setText("");
}
private void loadtabel2() {
String namaKolom[] = {"no_km", "kd_perkiraan", "nm_akun", "debet",
"kredit"};
rs = con.querySelect(namaKolom, "kas_masuk");
data_jurnal.setModel(new ResultSetTable(rs));
}
private void nonaktif() {
no_km.setEnabled(false);
jDateChooser1.setEnabled(false);
keterangan.setEnabled(false);
jml_km.setEnabled(false);
kd_siswa.setEnabled(false);
nm_siswa.setEnabled(false);
}
private void aktif() {
no_km.setEnabled(false);
jDateChooser1.setEnabled(true);
keterangan.setEnabled(true);
jml_km.setEnabled(true);
kd_siswa.setEnabled(true);
nm_siswa.setEnabled(false);
}
private void CetakKM() {
try {
String NamaFile = "src/laporan/bukti_kasmasuk.jasper";
Class.forName("com.mysql.jdbc.Driver").newInstance();
82
Connection koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/dbt_kursus", "root", "");
HashMap hash = new HashMap();
hash.put("kode", no_km.getText());
File file = new File(NamaFile);
JasperReport jasperReport = (JasperReport)
JRLoader.loadObject(file.getPath());
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash,
koneksi);
JasperViewer.viewReport(jasperPrint);
} catch (Exception ex) {
javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());
}
}
}
3.5.2 Black Box Testing
Black box testing yaitu menguji perangkat lunak dari segi spesifikasi
fungsional tanpa menguji desain dan kode program. Pengujian dimaksudkan untuk
mnegetahui apakah fungsi-fungsi, masukan, dan keluaran dari perangkat lunak sesuai
dengan spesifikasi yang dibutuhkan. Berikut Black box testing pada sistem usulan.
1. Pengujian Terhadap Form Login
Tabel III.10.
Hasil Blackbox Testing Form Login
No Skenario
Pengujian
Text case Hasil yang
Diharapkan
Hasil
Pengujian
Kesimpulan
1. Masukkan
Nama
Pengguna,
mengosong
kan kata
sandi. Klik
tombol
Login
Nama
pengguna,
kata sandi
[Kosong]
Sistem akan
menolak akses
dan
menampilkan
pesan “Login
Gagal, Coba
Lagi!!”
Sesuai
harapan
Valid
83
2. Data nama
pengguna
kosong,
Masukkan
kata sandi.
Klik
tombol
Login
Nama
pengguna[kos
ong], kata
sandi
Sistem akan
menolak akses
dan
menampilkan
pesan “Login
Gagal, Coba
Lagi!!”
Sesuai
harapan
Valid
3. Data nama
pengguna
kosong,
kata sandi
kosong.
Klik
tombol
Login
Nama
pengguna
[Kosong],
kata
sandi[Kosong
]
Sistem akan
menolak akses
dan
menampilkan
pesan “Login
Gagal, Coba
Lagi!!”
Sesuai
harapan
Valid
4. Masukkan
data nama
pengguna,
masukkan
kata sandi.
Klik
tombol
Login
Nama
pengguna,
kata sansi
Sistem
menerima
akses dan
menampilkan
“Login
Berhasil,Selam
at Datang ... ”
Sesuai
Harapan
Valid
2. Pengujian Terhadap Form Transaksi Penerimaan kas
Tabel III.11.
Hasil Blackbox Testing Form Transaksi Penerimaan Kas
No Skenario
Pengujian
Text case Hasil yang
Diharapkan
Hasil
Pengujian
Kesimpulan
1. Klik
tambah,
kemudian
data
transaksi
penerimaan
kas ada
yang
kosong
kosong.
Klik tombol
simpan
No_km, tgl_km,
kd_siswa,
keterangan,
jml_km[kosong]
Sistem akan
menolak
akses dan
menampilkan
pesan “Data
isian ada
yang
kosong”
Sesuai
harapan
Valid
84
2. Klik
tambah,
kemudian
data
transaksi
penerimaan
kas. Klik
tombol
simpan
No_km, tgl_km,
kd_siswa
keterangan,
jml_km
Sistem
menerima
akses dan
menampilkan
“Data
Berhasil
Disimpan”
Sesuai
harapan
Valid
3. Klik
tambah ,
kemudian
ketika
mengisi
jumlah kas
masuk
dengan
huruf tidak
bisa
dideteksi
Jml_km (dengan
huruf)
Sistem tidak
bisa
mendeteksi
karena
mengetik
huruf harus
dengan
angka
Sesuai
harapan
Valid
3. Pengujian Terhadap Form Transaksi Pengeluaran kas
Tabel III.12.
Hasil Blackbox Testing Form Transaksi Pengeluaran Kas
No Skenario
Pengujian
Text case Hasil yang
Diharapkan
Hasil
Pengujian
Kesimpulan
1. Klik
tambah,
kemudian
data
transaksi
pengeluara
n kas ada
yang
kosong.
Klik
tombol
simpan
No_kk,
tgl_kk,kd_pe
nerima,
keterangan,
jml_kk[koso
ng]
Sistem akan
menolak akses
dan
menampilkan
pesan “Data
isian ada yang
kosong”
Sesuai
harapan
Valid
2. Klik
tambah,
kemudian
data
transaksi
pengeluara
n kas. Klik
No_kk,
tgl_kk,kd_pe
nerima,ketera
ngan, jml_kk
Sistem
menerima akses
dan
menampilkan
“Data berhasil
disimpan”
Sesuai
harapan
Valid
85
tombol
simpan
3. Klik
tambah ,
kemudian
ketika
mengisi
jumlah kas
kelur
dengan
huruf tidak
bisa
dideteksi
Jml_kk
(dengan
huruf)
Sistem tidak
bisa mendeteksi
karena
mengetik huruf
harus dengan
angka
Sesuai
harapan
Valid
3.5.3. Spesifikasi Hardware dan Software
Spesifikasi Hardware merupakan penjelasan mengenai bentuk-bentuk file
database yang digunakan untuk pengolahan proses sistem. Berikut adalah spesifikasi
hardware dan software:
Tabel III.13.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Operasi Microsoft Windows XP
Processor Intel
RAM 1 GB
Keyboard 108 key
Printer Dot Matrix
Mouse Standard
Software Bahasa Pemrograman : Java Neatbeans 8.1
Aplikasi Pendukung : Jasper Report
DBMS : MY SQL
Anti Virus : Smadav