BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Tinjauan perusahaan yang dilakukan penulis terhadap perusahaan meliputi
sejarah perusahaan, struktur organisasi dan fungsinya tetapi lebih memfokuskan
pada bagian penggajian. Adapun latar belakang dari ruang lingkup kegiatan
perusahaan, penulis akan menguraikan dibawah ini.
3.1.1. Sejarah Perusahaan
Sebelum dimulainya izin usaha perkebunan PT. Sinar Siak Dian Permai.
PT.KPN adalah salah satu perusahaan yang bergerak di bidang perkebunan kelapa
sawit yang beralamat Estate Office di Jl. Raya Lintas Timur KM 31 Kabupaten
Siak-Riau yang berdiri pada tahun 1971.
Pada tahun 2005 PT. KPN diambil alih oleh Wilmar Group dan pada 2006
berubahlah nama menjadi PT. Sinar Siak Dian Permai hingga saat ini, setelah
perkebunan dikelola dengan baik maka didirikanlah pemukiman dan semua
prasarana yang menunjang kegiatan di areal perkebunan dengan tanda daftar
perusahaan ( TDP ) No.040111501547 yang di keluarkan oleh pemerintah kota
Pekan baru provinsi Riau. Perusahaan ini juga mengembangkan Batching plant di
beberapa provinsi di indonesia yang didukung oleh tenaga kerja profesional dan
berpengalaman.
PT. Sinar Siak Dian Permai memiliki visi dan misi yang sangat variabel
dengan perusahaan induk yakni, Wilmar Group. Visi dan misi PT. Sinar Siak
Dian Permai adalah:
17
18
Visi “ Menjadi market leader dibidang Trading TBS dan menjadi produksi
minyak kelapa sawit terbesar”.
Misi ”Men-suport penyediaan bahan baku minyak kelapa sawit dan menjadi
sumber informasi terhadap perkembangan produksi sawit di wilayah
oprasionalnya ke Trading Departemen dan Wilmar Group”.
3.1.2. Struktur Organisasi dan Fungsi
Untuk mencapai tujuannya, sebuah perusahaan memerlukan organisasi.
Organisasi yang baik dalam perusahaan adalah yang berdasarkan perencanaan
mengenai apa dan siapa pelaksananya serta bagaimana cara melaksanakan
pekerjaan yang paling efisien. Struktur organisasi merupakan alat yang
memberikan pengelompokan kegiatan-kegiatan khusus. Berikut ini merupakan
struktur organisasi PT. Sinar Siak Dian Permai.
STRUKTUR ORGANISASI
PT. SINAR SIAK DIAN PERMAI
Sumber : PT.Sinar Siak Dian Permai Tahun 2019
Gambar III.I. Struktur Organisasi PT. Sinar Siak Dian Permai
19
Berikut adalah Fungsi dan wewenang dari bagian penggajian yang terdapat
pada struktur organisasi PT.Sinar Siak Dian Permai, sebagai berikut:
1. Devisioner Manager
mempunyai fungsi wewenang mengangkat, memutasi, mempromosikan
dan memberikan sanksi serta memberhentikan karyawan PT. Sinar Siak Dian
Permai dibawah direksi. menyampaikan dan bertanggung jawab atas laporan
semua kegiatan perusahaan serta mengadakan koordinasi, konsultasi dan tindak-
tindak dengan pemerintahan maupun swasta dalam usaha meningkatkan dan
mengembangkan perusahaan. bertindak sebagai pimpinan umum perusahaan
mengkoordinir tindakan direksi dalam oprasional perusahaan.
2. KTU
mempunyai fungsi mencatat, menyimpan mengamankan dan memelihara
dokumen perusahaan, menyelenggarakan kegiatan administrasi karyawan
menyiapkan laporan dengan bagian lainnya.
3. PGA
mempunyai fungsi menyusun rencana dan strategi perusahaan dalam
jangka panjang di bidang masing-masing karywan, mengidentifikasi seluruh asfek
kegiatan perusahaan, menyusun prosedur kerja dan kebijakan dilingkungan.
4. Casher
mempunyai fungsi mendistribusikan laporan harian ke departemen/
jabatan terkait, mengarsipkan catatan mutu, mengadakan peralatan pendukung
oprasional seperti kertas dan lain-lain, menyampaikan keluhan personil produksi
ke PGA, menyerahkan data cuti lembur dan konfensasi ke PGA tepat waktu, dan
melaporkan setiap permasalahan dalam pembuatan surat-surat yang keluar kepada
Head of Departement.
5. Payroll
mempunyai fungsi berkaitan dengan sumber daya manusia dibidang
akuntansi untuk memproses gaji karyawan atau perhitungan gaji karyawan dan
20
distribusi gaji karyawan berdasarkan absensi jam kerja atau jumlah hari dan
lembur dalam satu bulan serta potangan, serta tunjangan masa kerja dan
memastikan setiap karyawan tidak mendapatkan slip gaji yang salah, dan
menyerahkan laporan gaji karyawan ke devisioner manager setiap bulan.
3.2. Tinjauan Kasus
Dalam persaingan di dunia bisnis kecepatan dan keakuratan dalam
pengolahan data sangat penting demi kemajuan usaha. Dalam bidang penggajian
khususnya, dalam melakukan penggajian tentu saja memerlukan perhitungan gaji
dan perusahaan harus menghitung dengan cara melakukan penggajian secara
detail tanpa kesalahan dalam perhitungan, tetapi masih banyak yang melakukan
aktifitas atau transaksi secara manual. Untuk mencari sebuah data memerlukan
waktu yang cukup lama dikarenakan banyaknya dokumen, meskipun dokumen
tersebut telah tersusun rapi tetapi tetap saja membutuhkan waktu yang cukup lama
untuk mencari dokumen tersebut. Untuk memudahkan proses penggajian di PT.
Sinar Siak Dian Permai, maka diperlukan suatu analisa dan usulan atas
kelemahan yang dapat memberikan kemudahan dalam melakukan transaksi.
Berikut proses analisa usulan terkait yakni, melakukan login, input file data user,
data karyawan, data bagian, transaksi hitung gaji, laporan slip gaji, laporan data
kayawan, laporan data absen, pengaturan, backup&restore, ubah password dan
logout.
3.2.1. Proses Bisnis Sistem Berjalan
Sesuai dengan ruang lingkup yang dibahas dalam tugas akhir ini, maka
proses analisa usulan sistem berjalan yang diambil dari rancang bangun sistem
21
informasi akuntasi pada PT. Sinar Siak Dian Permai. Secara umum proses bisnis
sistem berjalan meliputi:
1. Prosedur Absensi
Mandor menyediakan buku absensi karyawan untuk di masukkan ke
laporan harian realisasi pekerja dan finger print sebagai alat bantu absen yang
dilakukan saat karyawan masuk dan keluar jam kerja, dimana setiapbulannya akan
diarsipkan. hasil data absensi finger print akan masukan kebagian EBSI masing-
masing mandor, setelah itu mandor menyerahkan absensi dan laporan harian
realisasi pekerja kebagian Payroll. Kemudian mengarsipkan data itu kedalam arsip
absensi.
2. Prosedur Perhitungan Gaji
Bagian payroll membuat data perhitungan gaji atas dasar data laporan
harian realisasi pekerja dari mandor dan data absen beserta data finger print,
kemudian menghitung gaji untuk slip gaji berdasarkan pendapatan harian kerja
perhari sebesar 112.000 setiap masing-masing karyawan dan tunjangan serta
lembur dan potongan lainnya juga mendapatkan satu hari cuti setiap bulannya.
setelah perhitungan selesai kemudian membuat slip gaji, bagian payroll minta
persetujuan devisioner manager untuk di ACC, setelah di tanda tangani diarsipkan
menjadi arsip data perhitungan slip gaji / amprahan gaji,.
3. Prosedur Pembayaran Gaji
Proses penyerahan gaji dilakukan pada awal bulan. bagian Payroll
menyerahkan slip gaji kepada masing-masing karyawan kemudian
menandatangani sebagai bukti penyerahan gaji dan copy slip gaji yang di tanda
tangani diarsipkan. Kemudian gaji dibayarkan kepada karyawan.
22
3.2.2. Activity Diagram
Sumber : PT. Sinar Siak Dian Permai (2019)
Gambar III.2.Activity diagram PT. Sinar Siak Dian Permai
23
3.2.3. Dokumen Masukan
Dokumen masukan berisi mengenai gambaran masukkan yang dihasilkan
oleh bagian penggajian, dimana setiap masukkan yang dapat dirinci sebagai
besikut:
1. Nama Dokumen : Absensi Karyawan
Fungsi : Untuk mengetahui kehadiran kayawan
Sumber : Karyawan
Tujuan : mandor
Media : Kertas
Frekuensi : Setiap karyawan masuk kerja
Jumlah : 1 Lembar
2. Nama Dokumen : Data laporan harian realisasi pekerjaan
Fungsi : Mengetahui karyawan yang menerima harian kerja
Sumber : mandor
Tujuan : bagian payroll
Media : Setiap hari kerja
Frekuensi : Kertas
Jumlah : 1 Lembar
3. Nama Dokumen : Data Karyawan
Fungsi :Untuk mengetahui jumlah karyawan yang
menerima gaji
Sumber : PGA
Tujuan : payroll
Media : Kertas
Frekuensi : Setiap bulan
Jumlah : 1 Lembar
24
3.2.4. Dokumen Keluaran
Dokumen keluaran adalah dokumen yang dihasilkan dari proses sistem
output atau disebut dengan dokumen keluaran. Adapun yang termasuk dalam
dokumen keluaran sebagai berikut:
1. Nama Dokumen : Rekap Absen finger
Fungsi : Untuk mengetahui data absen kayawan
Sumber : Karyawan
Tujuan : payroll
Media : Kertas
Frekuensi : Setiap bulan
Jumlah : 1 Lembar
2, Nama Dokumen :Perhitungan Gaji
Fungsi : Untuk Mengetahui hitungan gaji selama sebulan
Sumber : payroll
Tujuan : devisioner manager
Media : Setiap akan melakukan laporan gaji
Frekuensi : Kertas
Jumlah : 1 Lembar
3. Nama Dokumen : Slip Gaji
Fungsi :Sebagai bukti menerimaan gaji karyawan
Sumber : payroll
Tujuan : karyawan
Media : Kertas
Frekuensi : Setiap awal bulan
Jumlah : 1 Lembar
25
3.2.5. Permasalahan Pokok
Berdasarkan hasil pengamatan dan analisa terdapat beberapa permasalahan
yang dihadapi di PT. Sinar Siak Dian Permai diantaranya sebagai berikut:
1. Keamanan data tidak terjamin
2. Kerapihan Data Kurang
3. Prosedur perhitungan gaji yang dilakukan secara manual yang kemungkinan
dapat menyebabkan kesalahan dalam perhitungan gaji sehingga keakuratan
data masih rendah.
4. Membutuhkan waktu yang lebih lama dan membutuhkan ketelitian yang
tinggi dalam perhitungan absensi dan prosedur perhitungan untuk slip gaji.
3.2.6. Pemecahan Masalah
Untuk mengatasi permasalahan-permasalahan diatas, maka diperlukan adanya
sistem terkomputerisasi sehingga menghasilkan informasi lebih mudah, cepat dan
akurat. Adapun alternatif pemecahan masalah sebagai berikut:
1. Keamanandata lebih terjamin, dan dapat lebih meringkas penyimpanan data
atau arsip data yang tidak perlu.
2. Dengan data yang diproses secara terkomputerisasi maka informasi yang
dihasilkan lebih efektif dan efisien, rapih dan lebih mengikuti perkembangan
zaman.
3. perhitungan perincian gaji, dan format slip gaji menggunakan sistem yang
tersimpan ke dalam database sehingga bisa mempersingkat waktu pengerjaan
dan mempunyai tempat penyimpanan data yang relatif aman.
26
4. Perlunya sistem aplikasi penggajian khusus yang terkomputerisasi untuk
meminimalisasi adanya kesalahan pencatatan dan perhitungan gaji.
3.3. Analisa Kebutuhan Software
Analisa kebutuhan software merupakan hasil dari data-data yang telah
dilakukan analisa mengenai permasalahan yang telah diterjadi pada PT. Sinar Siak
Dian Permai dalam pengolahan data penggajian. Ada pun analisa kebutuhan
software akan dijelaskan dengan Analisa kebutuhan, Use Case Diagram dan
Activity Diagram.
3.3.1. Analisa Kebutuhan
Berikut ini spesifikasi sistem penggajian PT. Sinar Siak Dian Permai:
1. Halaman Payroll
a. Login payroll
b. payroll dapat mengakses menu utama
c. payroll dapat menginput data karyawan
d. payroll dapat menginput data bagian
e. payroll dapat melakukan transaksi untuk slip gaji
f. payroll dapat melakukan laporan data karyawan
g. payroll dapat melakukan laporan absen
h. payroll dapat melakukan laporan transaksi cetak slip Gaji
i. payroll dapat melakukan backup&restore data
27
j. payroll dapat melakukan ganti password
k. payroll logout
2. Halaman Divisioner Manager
a. Login Divisioner manager
b. D.manager dapat mengakses menu utama
c. .D manager dapat menginput data user
d. D.manager dapat mengakses data karyawan
e. Devisioner manager dapat megakses data bagian
f. D.manager dapat melakukan laporan data karyawan
g. D.manger dapat melakukan laporan absen
h. D.manager dapat melakukan laporan transaksi cetak slip Gaji
i. D.manager dapat melakukan backup&restore data
j. D.manager dapat melakukan ganti password
k. Divisioner manager logout
28
3.3.2. Use Case Diagram
1. Halaman payroll
Input Username
LogIn
Input Password
PAYROLL
Menu
File
Menu Transaksi
Mengelolah Data Karyawan
Mengelolah Data Bagian
Menu Laporan
Mengelolah Transaksi
Pengaturan
Melihat Laporan karyawan
Log Out Melihat Laporan Transaksi
Melihat
Laporan Absen
Mengolah BackUp data
Keluar Dari
Program
Keluar Dari
Program
Mengolah Ubah
password
Sumber : Penulis (2019)
Gambar III.3. Use case diagram halaman payroll
<<extend>> <<extend
>>
<<extend>> <<extend
>>
29
Tabel III.1.
Deskripsi use case payroll
Use Case Narative Halaman payroll
Tujuan Payroll dapat melihat data yang ada di dalam
halaman payroll.
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke
halaman payroll yang di dalamnya ada menu
file, data karyawan, data bagian, menu transaksi,
menu laporan karyawan,transaksi slip gaji
,absen,pengaturan untuk cadangan&pulih data
,ubah password,keluar dari akun dan sistem.
Skenario Utama
Aktor payroll
Kondisi Awal Aktor membuka aplikasi halaman payroll
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu
utama
2. Aktor memilih data file
3. Aktor memilih data
transaksi
4. Aktor memilih data
laporan
5. Aktor memilih keluar
-Sistem ini akan menampilkan menu utama
-Sistem ini akan menampilkan informasi data
karyawan dan data bagian
-Sistem ini akan menampilkan informasi data
transaksi untuk slip gaji
-Sistem ini akan menampilkan informasi data
laporan karyawan,absen,transaksi cetak cetak
slip gaji,
-Sistem ini akan menampilkan keluar program
30
2. Halaman D.Manager Input
Username
LogIn
Input Password
D.MANAGER
Menu File
Mengelolah Data Karyawan
Mengelolah Data Bagian
Menu
Laporan
Mengolah Data User
Pengaturan
Melihat Laporan karyawan
Log Out
Melihat Laporan Transaksi
Melihat Laporan Absen
Mengolah BackUp data
Keluar Dari
Program
Keluar Dari
Program
Mengolah Ubah
password
Sumber : Penulis (2019)
Gambar III.4.Use case diagram halaman D.manager
<<
exte
nd
>>
<<
exte
nd
>>
<<
exte
nd
>>
<<
exte
nd
>>
31
Tabel III.2.
Deskripsiuse case DManager
Use Case Narative Halaman D.Manager
Tujuan D.Manager dapat melihat data yang ada di
dalam halaman Devisioner Manager
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke
halaman Devisioner Manager yang di dalamnya
ada menu file, data user, data karyawan,data
bagian,laporan,pengaturan,keluar akun
Skenario Utama
Aktor Devisioner Manager
Kondisi Awal Aktor membuka Aplikasi halaman D.Manager
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu
utama
2. Aktor memilih data file
3. Aktor memilih data
laporan
4. Aktor memilih menu
pengaturan
-Sistemini aka menampilkan menu utama
-Sistem ini akan menampilkan informasi data
user,data karyawan,data bagian
-Sistem ini akan menampilkan informasi data
laporan karywan,,absen,transaksi cetak slip gaji
-Sistem ini akan menampilkan informasi
cadangan&pulih data,ubah password
5. Aktor memilih menu
keluar
-Sistem ini akan menampilkan informasi keluar
program
32
3.3.1. Activity Diagram
1. Halaman payroll
a. payroll dapat melakukan login.
Sumber : Penulis (2019)
Gambar III.5.Activity diagram halaman payroll melakukan login
33
b. payroll dapat mengakses menu utama.
Sumber : Penulis (2019)
Gambar III.6.Activity diagram halaman payroll mengakses menu utama
34
c. payroll dapat menginput data karyawan
Sumber : Penulis (2019)
Gambar III.7. Activity diagram halaman payrolll data karawan
35
d. payroll dapat menginput data bagian
Sumber : Penulis (2019)
Gambar III.8. Activity diagram halaman payrolll data bagian
36
e. payroll dapat melakukan transaksi slip gaji
Sumber : Penulis (2019)
Gambar III.9. Activity diagram halaman payrolll data transaksi
37
f. payroll dapat mengakses laporan data karyawan
Sumber : Penulis (2019)
Gambar III.10. Activity diagram halaman payrolll laporan karyawan
g. payroll dapat mengakses laporan data absen
Sumber : Penulis (2019)
Gambar III.11. Activity diagram halaman payrolll laporan absen
38
h. payroll dapat mengakses laporan transaksi cetak slip gaji
Sumber : Penulis (2019)
Gambar III.12. Activity diagram halaman payrolll laporan transaksi
39
i. payroll dapat melakukan backup&restore data
Sumber : Penulis (2019)
Gambar III.13. Activity diagram halaman payrolll cadangan&pulih data
40
j. payroll dapat melakukan ubah password
Sumber : Penulis (2019)
Gambar III.14. Activity diagram halaman payrolll ubah password
41
k. payroll logout
Sumber : Penulis (2019)
Gambar III.15. Activity diagram halaman payrolll logout
2. Halaman Devisioner Manager.
a. D.manager dapat melakukan login.
Sumber : Penulis (2019)
Gambar III.16. Activity diagram halaman D.manager melakukan login.
42
b. D. manager dapat mengakses menu utama
Sumber : Penulis (2019)
Gambar III.17. Activity diagram halaman D.manager mengakses menu utama
43
c. D. manager dapat menginput data user
Sumber : Penulis (2019)
Gambar III.18. Activity diagram halaman D.manager menginput data user
44
d. D.manager dapat mengakses data karyawan
Sumber : Penulis (2019)
Gambar III.19. Activity diagram D.manager mengakses data karyawan
45
e. D.manager dapat mengakses data bagian
Sumber : Penulis (2019)
Gambar III.20. Activity diagram halaman D.manager mengakses data bagian
46
f. D.manager dapat mengakses laporan data karyawan
Sumber : Penulis (2019)
Gambar III.21. Activity diagram D.manager mengakses laporan karyawan
g. D.manager dapat mengakses laporan data absen
Sumber : Penulis (2019)
Gambar III.22. Activity diagram D.manager mengakses laporan absen
47
h. D.manager dapat mengakses laporan transaksi cetak slip gaji
Sumber : Penulis (2019)
Gambar III.23. Activity diagram halaman D,manager laporan transaksi
48
i. D,manager dapat melakukan cadangan&pulih data
Sumber : Penulis (2019)
Gambar III.24. Activity diagram halaman D,manager cadang&pulihkan data
49
j. D.manager dapat melakukan ubah password
Sumber : Penulis (2019)
Gambar III.25. Activity diagram halaman D.manager ubah password
k. D.manager Logout
Sumber : Penulis (2019)
Gambar III.26. Activity diagram halaman D.manager logout
50
3.4. Desain
Desain adalah bagian dari rancangan suatu sistem atau gambaran mengenai
sistem yang akan berjalan.
3.4.1. Entity Relationship Diagram (ERD)
Entity Relationship Diagram (ERD) menjelaskan hubungan antar data
dalam basis data yang terdiri dari objek-objek dasar yang mempunyai hubungan
atau relasi antar objek-objek tersebut. ERD yang ada pada sistem ini sebagai
berikut
Sumber : Penulis
Gambar III.27. Entity Relationship Diagram Penggajia
51
3.4.2. Logical Record Structure (LRS)
Logical Record Structure (LRS) adalah kelanjutan dari ERD yang
menunjukkan gambaran dari database yang terhubung. Berikut ini adalah LRS
dari analisa usulan sistem penggajian pada PT.Snar Siak Dian Permai:
Sumber: penulis
Gambar III.28. Logical Record Structure Penggajian
52
3.4.3. Spesifikasi File
1. Spesifikasi Filen Data User
Nama File : File User
Fungsi User : Digunakan untuk menginput data user
Akronim : User
Tipe File : user
Media File : Hardisk
Organisasi File : Indexed sequential
Akses File : Random
Panjang Record : 56byte
Field Key : Kode_User
Sofware : MysQL
Tabel III.3. Spesifikasi File User
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode_User Kode_User Varchar 8 Primary Key
2 Nama_User Nama_User Varchar 15
3 username Username Varchar 10
4 password Password Vachar 8
5 Hak_akses Hak_akses Vachar 15
53
2. Spesifikasi File Data karyawan
Nama File : File Data karyawan
Fungsi Guru : Digunakan untuk menginput karyawan
Akronim : karyawan
Tipe File : File karyawan
Media File : Hardisk
Akses File : Random
Panjang Record : 130character
Field Key : nik
Sofware : MysQL
Tabel III.4. Spesifikasi File Data karyawan
No Elemen Data Akronim Tipe Panjang Keterangan
1 Nik Nik Varchar 17 Primary Key
2 Nama_karyawan Nama_karyawan Varchar 25
3 Kode_bagian Kode_bagian Varchar 8 Foreign Key
4 Tgl_bergabung Tgl_bergabung date
5 Tgl_lahir Tgl_lahir date
6 pendidikan Pendidikan Varchar 8
7 J_kelamin J_kelamin Varchar 10
8 alamat Alamat Varchar 50
54
9 No_telepon No_telepon bigint 12
3. Spesifikasi File Data transaksi
Nama File : File Data transaksi
Fungsi Gaji : Digunakan untuk mengelola transaksi
Akronim : transaksi
Tipe File : File Transaksi
Media File : Hardisk
Organisasi File : Indexed sequential
Akses File : Random
Panjang Record : 190character
Field Key : no_transaksi
Sofware : MysQL
Tabel III.5. Spesifikasi File Data transaksi
No Elemen Data Akronim Tipe Panjang Keterangan
1 No_transaksi No_transaksi Varchar 20 Primeri Key
2 Tgl_transaksi Tgl_transaksi date
3 Kode_users Kode_users Varchar 8 Foreign Key
4 Nik Nik Varchar 17 Foreign Key
5 T_jabatan T_jabatan integer 8
55
6 Upah_panen Upah_panen integer 8
7 Gaji_pokok Gaji_pokok integer 10
8 T_masa_kerja T_masa_kerja integer 6
9 Insentif Insentif integer 8
10 Bulan Bulan integer 8
11 Lembur Lembur integer 8
12 Ttl_lembur Ttl_lembur integer 10
13 Absen Absen integer 5
14 Ttl_absen Ttl_absen integer 5
15 Gaji_kotor Gaji_kotor integer 12
16 Bpjsjht Bpjsjht integer 8
17 Pph21 Pph21 integer 8
18 Bpjsp Bpjsp integer 8
19 Bpjskes Bpjskes integer 8
20 Ttlpot Ttlpot integer 10
21 Gaji_bersih Gaji_bersih integer 15
56
4. Spesifikasi File Data bagian
Nama File : File Data bagian
Fungsi Gaji : Digunakan untuk menginput bagian
Akronim : bagian
Tipe File : File bagian
Media File : Hardisk
Organisasi File : Indexed sequential
Akses File : Random
Panjang Record : 65character
Field Key : kode_bagian
Sofware : MysQL
Tabel III.6. Spesifikasi File Data bagian
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode_bagian Kode_bagian Varchar 8 Primary key
2 Nama_bagian Nama_bagian Varchar 15
3 Gaji_pokok Gaji_pokok integer 10
4 Upah_panen Upah_panen integer 8
5 T_masa_kerja T_masa_kerja integer 8
6 T_jabatan T_jabatan integer 8
7 insentif Insentif integer 8
57
3.4.4. Sequence Diagram
Sumber : Penulis
Gambar III.29. Sequence Diagram Transaksi
58
3.4.5. Deployment Diagram
Menggambarkan tata letak sebuah sistem secara fisik, menampakkan
bagian-bagian software yang berjalan pada bagian-bagian hardware,
menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan
jenis hubungannya.
Sumber : Penulis
Gambar 1II.30.Deployment Diagram Sistem Penggajian
59
3.4.6 User Interface
1 Halaman Payroll
a. Form login
form login yang diminta untuk memasukan username dan
Password untuk dapat melakukan login. setelah username dan password
diisi klik button login untuk ke tampilan menu utama.
Sumber : Penulis (2019)
Gambar III.31. User interface form login
Sumber : Penulis (2019)
Gambar III.32. User interface pesan pemberitahuan berhasil masuk ke
halaman aplikasi penggajian Payroll
60
b. Tampilan menu utama payroll
Setelah melakukan login akan muncul halaman jendela menu
utama dimana di halaman berisi nama hak akses payroll dan tanggal
Sumber : Penulis (2019)
Gambar III.33. User interface menu utama payroll
c. Form data kata karyawan
Dimenu karyawan payroll dapat menginput data karyawan yang
ada di PT.Sinar Siak Dian Permai kemudian klk simpan.
Sumber : Penulis (2019)
Gambar III.34. User interface menu data karyawan
61
Sumber : Penulis (2019)
Gambar III.35. User interface menu edit data karyawan
d. Form data bagian
Dimenu bagian payroll dapat menginput data bagian karyawan
yang ada di PT.Sinar Siak Dian Permai kemudian klk simpan
Sumber : Penulis (2019)
Gambar III.36. User interface menu data bagian
62
Sumber : Penulis (2019)
Gambar III.37. User interface menu data bagian tersimpan
e. Form transaksi
Isi keselurahan data di form transaksi seperti : data karyawan,daftar
hadir,pendapatan,potongan , klik proses Total (automatis) . setelah itu
klik Simpan untuk menyimpan data transaksi. Klik cancel untuk
membersihkan form transaksi kembali seperti semula.
Sumber : Penulis (2019)
Gambar III.38. User interface menu data transaksi
63
f. Form cetak laporan karyawan
Untuk mengetahui data karyawan hanya klik Laporan karyawan
Sumber : Penulis (2019)
Gambar III.39. User interface laporan karyawan
g. Form cetak laporan absen
Untuk mengetahui absen karyawan hanya klik Laporan absen
Sumber : Penulis (2019)
Gambar III.40. User interface laporan absensi karyawan
64
h. Form cetak laporan transaksi slip gaji
Masukan periode,bulan yang diinginkan setelah itu klik Cetak
Sumber : Penulis (2019)
Gambar III.41. User interface laporan transaksi slip gaji
65
i. Form cadangan & pulihkan data
Piih jendela penyimpanan yang di inginkan setelah itu klik
cadang/pulihkan
Sumber : Penulis (2019)
Gambar III.42. User interface form cadang&pulih data
66
j. Form ubah password
ubah password sesuai yang di inginkan setelah itu klik update
Sumber : Penulis (2019)
Gambar III.43. User interface form Ubah password
k. Payroll logout
Ke menu utama pillih keluar setelah itu klik keluar akun
Sumber : Penulis (2019)
Gambar III.44. User interface payroll Logout
67
2 Halaman Devisioner Manager
a. Form login
form login yang diminta untuk memasukan username dan
Password untuk dapat melakukan login. setelah username dan password
diisi klik button login untuk ke tampilan menu utama.
Sumber : Penulis (2019)
Gambar III.45. User interface form login
Sumber : Penulis (2019)
Gambar III.46. User interface pesan pemberitahuan berhasil masuk ke
halaman aplikasi penggajian Devisioner Manager
68
b. Tampilan menu utama Devisioner Manager
Setelah melakukan login akan muncul halaman menu utama dimana di
halaman berisi nama hak akses Devisioner Manager dan tanggal
Sumber : Penulis (2019)
Gambar III.47. User interface menu utama D.manager
c. Form data user
Dimenu user D.Manager dapat menginput Staff yang ada di
PT.Sinar Siak Dian Permai kemudian klk simpan.
Sumber : Penulis (2019)
Gambar III.47. User interface menu user D.manager
69
d. Form data kata karyawan
Dimenu karyawan D.manager dapat mengakses data karyawan
yang ada di PT. Sinar Siak Dian Permai kemudian klk simpan.
Sumber : Penulis (2019)
Gambar III.48. User interface menu data karyawan
Sumber : Penulis (2019)
Gambar III49. User interface menu edit data karyawan
70
e. Form data bagian
Dimenu bagian D.manager dapat mengakses data bagian karyawan
yang ada di PT. Sinar Siak Dian Permai kemudian klk simpan
Sumber : Penulis (2019)
Gambar III.50. User interface menu data bagian
Sumber : Penulis (2019)
Gambar III.51. User interface menu data bagian tersimpan
71
f. Form cetak laporan karyawan
Untuk mengetahui data karyawan hanya klik Laporan karyawan
Sumber : Penulis (2019)
Gambar III.52. User interface laporan karyawan
g. Form cetak laporan absen
Untuk mengetahui absen karyawan hanya klik Laporan absen
Sumber : Penulis (2019)
Gambar III.53. User interface laporan absensi karyawan
72
h. Form cetak laporan transaksi slip gaji
Masukan periode,bulan yang diinginkan setelah itu klik Cetak
Sumber : Penulis (2019)
Gambar III.54. User interface laporan transaksi slip gaji
73
i. Form cadangan & pulihkan data
Piih jendela penyimpanan yang di inginkan setelah itu klik
cadang/pulihkan
Sumber : Penulis (2019)
Gambar III.55. User interface form cadang&pulih data
74
j. Form ubah password
ubah password sesuai yang di inginkan setelah itu klik update
Sumber : Penulis (2019)
Gambar III.56. User interface form Ubah password
k. D.Manager logout
Ke menu utama pillih keluar setelah itu klik keluar akun
Sumber : Penulis (2019)
Gambar III.57. User interface form Logout D.Manager
75
3.5. Implementasi
3.5.1. Code Generation
package view;
import java.awt.event.KeyEvent;
import java.io.File;
import java.sql.*;
import java.text.DecimalFormat;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
/**
*
76
* @author USER
*/
public class transaksi extends javax.swing.JFrame {
koneksi kon = new koneksi();
/**
* Creates new form transaksi
*/
public transaksi() {
initComponents();
kon.setKoneksi();
//setSize(670, 600);
ltanggal2.setVisible(false);
}
public String Kode;
public String getKode() {
return Kode;
}
77
public String nik;
public String getNik() {
return nik;
}
void bersih() {
tnotrans.setText("");
tnik.setText("");
tnama.setText("");
tjabatan.setText("");
tstatus.setText("");
tbulan.setText("");
ttahun.setText("");
thadir.setText("0");
tlembur.setText("0");
tgapok.setText("0");
tpanen.setText("0");
tmasa.setText("0");
tjbt.setText("0");
tinsentif.setText("0");
78
tulembur.setText("0");
tpph.setText("0");
tpph1.setText("0");
tpph2.setText("0");
lgaji.setText("0");
talpa.setText("0");
lgajikotor.setText("0");
ltotpot.setText("0");
}
void nonaktif() {
tnotrans.setEnabled(false);
tnik.setEnabled(false);
tnama.setEnabled(false);
tjabatan.setEnabled(false);
tstatus.setEnabled(false);
tbulan.setEnabled(false);
ttahun.setEnabled(false);
thadir.setEnabled(true);
tlembur.setEnabled(true);
79
tgapok.setEnabled(false);
tpanen.setEnabled(false);
tmasa.setEnabled(false);
tjbt.setEnabled(false);
tinsentif.setEnabled(false);
tulembur.setEnabled(false);
talpa.setEnabled(false);
tpph.setEnabled(false);
tpph1.setEnabled(false);
tpph2.setEnabled(false);
}
private void cetakstruk(){
try{
String file = "src/report/slipgaji.jasper";
// jasperDesign = JRXmlLoader.load(file);
HashMap param = new HashMap();
param.put("notrans", tnotrans.getText());
//jasperReport = JasperCompileManager.compileReport(jasperDesign);
80
JasperPrint print = JasperFillManager.fillReport(file, param,
kon.setKoneksi());
JasperViewer.viewReport(print, false);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
public void angka(java.awt.event.KeyEvent evt) {
char a = evt.getKeyChar();
if (!((Character.isDigit(a) || (a == KeyEvent.VK_BACK_SPACE) || (a ==
KeyEvent.VK_DELETE)))) {
evt.consume();
}
}
public void setnik() {
try {
String sql = "SELECT bagian.kode_bagian, bagian.nama_bagian,
bagian.gaji_pokok,
81
bagian.upah_panen,bagian.t_masa_kerja,bagian.t_jabatan,bagian.insentif,ka
ryawan.nama_karyawan,karyawan.kode_bagian,karyawan.tgl_bergabung,k
aryawan.nik FROM karyawan INNER JOIN bagian ON
karyawan.kode_bagian = bagian.kode_bagian WHERE karyawan.nik ='" +
tnik.getText() + "'";
kon.rs = kon.st.executeQuery(sql);
if (kon.rs.next()) {
String nik_col = kon.rs.getString("karyawan.nik");
String nama = kon.rs.getString("nama_karyawan");
String jab = kon.rs.getString("nama_bagian");
String gol = kon.rs.getString("tgl_bergabung");
String gaji = kon.rs.getString("gaji_pokok");
String tunjab = kon.rs.getString("upah_panen");
String stat = kon.rs.getString("t_masa_kerja");
String stat1 = kon.rs.getString("t_jabatan");
String stat2 = kon.rs.getString("insentif");
tnama.setText(nama);
tjabatan.setText(jab);
tgapok.setText(gaji);
tpanen.setText(tunjab);
82
tmasa.setText(stat);
tstatus.setText(gol);
tjbt.setText(stat1);
tinsentif.setText(stat2);
thadir.setEnabled(true);
thadir.requestFocus();
tnik.setEnabled(false);
bcari.setEnabled(false);
} else {
JOptionPane.showMessageDialog(this, "NIK tidak terdaftar",
"Informasi", JOptionPane.INFORMATION_MESSAGE);
tnik.setText("");
tnama.setText("");
tjabatan.setText("");
tstatus.setText("");
tnik.requestFocus();
}
} catch (SQLException error) {
JOptionPane.showMessageDialog(null, error);
83
}
}
public void setkehadiran() {
try {
String query = "Select * from master";
kon.rs = kon.st.executeQuery(query);
while (kon.rs.next()) {
int honor = kon.rs.getInt("honor_lembur");
int makan = kon.rs.getInt("uang_makan");
int transport = kon.rs.getInt("uang_transport");
int potongan_alpa = kon.rs.getInt("potongan_alpa");
//menghitung potongan alpa
int alpa = Integer.parseInt(thadir.getText());
int pot_alpa = alpa * potongan_alpa;
talpa.setText(Integer.toString(pot_alpa));
//menghitung uang makan
int umakan = alpa * (makan / 30);
int totmakan = makan - umakan;
tinsentif.setText(Integer.toString(totmakan));
84
//menghitung uang transport
int utrans = alpa * (transport / 30);
int tottrans = transport - utrans;
tjbt.setText(Integer.toString(tottrans));
//menghitung lembur
int lembur = Integer.parseInt(tlembur.getText());
int hitung = lembur * honor;
tulembur.setText(Integer.toString(hitung));
}
} catch (SQLException error) {
JOptionPane.showMessageDialog(null, error);
}
}
void bulan() {
String bulan = tbulan.getText();
int hadir = Integer.parseInt(thadir.getText());
if (bulan.equals("December")) {
if (hadir > 31) {
85
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
Desember hanya sampai 31", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("January")) {
if (hadir > 31) {
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
Januari hanya sampai 31", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("February")) {
if (hadir > 29) {
86
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
Februari hanya sampai 29", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("March")) {
if (hadir > 31) {
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
Maret hanya sampai 31", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("April")) {
if (hadir > 30) {
87
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
April hanya sampai 30", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("May")) {
if (hadir > 31) {
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
Mei hanya sampai 31", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("June")) {
if (hadir > 30) {
88
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
Juni hanya sampai 30", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("July")) {
if (hadir > 31) {
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
Juli hanya sampai 31", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("August")) {
if (hadir > 31) {
89
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
Agustus hanya sampai 31", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("September")) {
if (hadir > 30) {
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
September hanya sampai 30", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("October")) {
if (hadir > 31) {
90
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
Oktober hanya sampai 31", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
} else if (bulan.equals("November")) {
if (hadir > 30) {
JOptionPane.showMessageDialog(this, "Jumlah tanggal pada bulan
November hanya sampai 30", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
thadir.setEnabled(true);
thadir.setText("0");
thadir.requestFocus();
bproses.setEnabled(false);
}
}
}
91
private void SimpanData() {
try{
String cek="select * from transaksi where nik='"+tnik.getText()+"'";
kon.rs=kon.st.executeQuery(cek);
if (kon.rs.next()){
kon.rs.last();
JOptionPane.showMessageDialog(null,"Gaji Karyawan :
'"+tnik.getText()+"' sudah Dibayarkan Bulan ini ");
//bersih();
} else{
try {
String sql = "insert into transaksi values('" + tnotrans.getText() +
"','" + ltanggal2.getText() + "','" + ladmin.getText() + "','" + tnik.getText() +
"','" + tbulan.getText() + "','" + ttahun.getText() + "','" + lgaji.getText() +
"')";
kon.st.executeUpdate(sql);
String detail = "insert into detail_transaksi values ('" +
tnotrans.getText() + "','" + tgapok.getText() + "','" + tpanen.getText() + "','"
+ tmasa.getText() + "','" + tjbt.getText() + "','" + tinsentif.getText() + "','" +
tlembur.getText() + "','" + tulembur.getText() + "','" + thadir.getText() +
92
"','" + talpa1.getText() + "','" + talpa.getText() + "','" + tpph1.getText() +
"','"+ tpph.getText() + "','"+ talpa1.getText() + "','"+ ltotpot.getText() +
"','"+ lgajikotor.getText() + "')";
kon.st.executeUpdate(detail);
JOptionPane.showMessageDialog(null, "Data berhasil disimpan");
cetakstruk();
bersih();
nonaktif();
btambah.setEnabled(true);
bproses.setEnabled(false);
bcari.setEnabled(false);
bsimpan.setEnabled(false);
bkeluar.setText("Keluar");
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
93
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
tnotrans = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
ltanggal = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
94
jLabel4 = new javax.swing.JLabel();
tnik = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
tnama = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
tjabatan = new javax.swing.JTextField();
bcari = new javax.swing.JButton();
tstatus = new javax.swing.JTextField();
jLabel18 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jLabel7 = new javax.swing.JLabel();
tgapok = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
tpanen = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
tmasa = new javax.swing.JTextField();
tjbt = new javax.swing.JTextField();
jLabel11 = new javax.swing.JLabel();
tulembur = new javax.swing.JTextField();
95
jLabel15 = new javax.swing.JLabel();
tinsentif = new javax.swing.JTextField();
jLabel16 = new javax.swing.JLabel();
jSeparator2 = new javax.swing.JSeparator();
jLabel19 = new javax.swing.JLabel();
lgajikotor = new javax.swing.JLabel();
jLabel20 = new javax.swing.JLabel();
jPanel4 = new javax.swing.JPanel();
jLabel12 = new javax.swing.JLabel();
tbulan = new javax.swing.JTextField();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
thadir = new javax.swing.JTextField();
tlembur = new javax.swing.JTextField();
ttahun = new javax.swing.JTextField();
jLabel24 = new javax.swing.JLabel();
btambah = new javax.swing.JButton();
bproses = new javax.swing.JButton();
jPanel5 = new javax.swing.JPanel();
96
jLabel21 = new javax.swing.JLabel();
talpa = new javax.swing.JTextField();
tpph = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
jSeparator3 = new javax.swing.JSeparator();
jLabel22 = new javax.swing.JLabel();
jLabel23 = new javax.swing.JLabel();
ltotpot = new javax.swing.JLabel();
tpph1 = new javax.swing.JTextField();
jLabel27 = new javax.swing.JLabel();
jLabel29 = new javax.swing.JLabel();
tpph2 = new javax.swing.JTextField();
talpa1 = new javax.swing.JTextField();
jLabel30 = new javax.swing.JLabel();
ltanggal2 = new javax.swing.JLabel();
bsimpan = new javax.swing.JButton();
bkeluar = new javax.swing.JButton();
jPanel6 = new javax.swing.JPanel();
jLabel25 = new javax.swing.JLabel();
97
jLabel17 = new javax.swing.JLabel();
lgaji = new javax.swing.JLabel();
jLabel26 = new javax.swing.JLabel();
ladmin = new javax.swing.JLabel();
jLabel28 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOS
E);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swin
g.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))));
98
jLabel2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/datatransaksi.png")));
// NOI18N
tnotrans.setEnabled(false);
jLabel1.setText("Nomor Transaksi");
jLabel3.setText("Tanggal Transaksi :");
ltanggal.setText("tanggal");
jPanel2.setBackground(new java.awt.Color(255, 255, 255));
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swin
g.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)), "Data
Karyawan"));
jLabel4.setText("NIK");
tnik.setEnabled(false);
tnik.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
tnikKeyPressed(evt);
}
});
99
jLabel5.setText("Nama");
tnama.setEnabled(false);
jLabel6.setText("Bagian");
tjabatan.setEnabled(false);
bcari.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/cari.png"))); // NOI18N
bcari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bcariActionPerformed(evt);
}
});
tstatus.setEnabled(false);
jLabel18.setText("Tanggal Masuk Kerja");
javax.swing.GroupLayout jPanel2Layout = new
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
100
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6)
.addComponent(jLabel18))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING, false)
.addComponent(tstatus,
javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
.addComponent(tnama)
.addComponent(tjabatan)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(tnik,
javax.swing.GroupLayout.PREFERRED_SIZE, 132,
javax.swing.GroupLayout.PREFERRED_SIZE)
101
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(bcari,
javax.swing.GroupLayout.PREFERRED_SIZE, 29,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(jLabel4)
.addComponent(tnik,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bcari))
102
.addGap(7, 7, 7)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(jLabel5)
.addComponent(tnama,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(9, 9, 9)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.A
lignment.BASELINE)
.addComponent(jLabel6)
.addComponent(tjabatan,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
103
.addComponent(tstatus,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel18))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel3.setBackground(new java.awt.Color(255, 255, 255));
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swin
g.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)),
"Pendapatan"));
jPanel3.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel7.setText("Gaji Pokok");
jPanel3.add(jLabel7, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 30, -1, -1));
tgapok.setEnabled(false);
jPanel3.add(tgapok, new
org.netbeans.lib.awtextra.AbsoluteConstraints(129, 27, 100, -1));
104
jLabel8.setText("Upah Panen");
jPanel3.add(jLabel8, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 56, -1, -1));
tpanen.setEnabled(false);
jPanel3.add(tpanen, new
org.netbeans.lib.awtextra.AbsoluteConstraints(129, 53, 100, -1));
jLabel9.setText("Tunjangan Masa Kerja");
jPanel3.add(jLabel9, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 85, -1, -1));
tmasa.setEnabled(false);
jPanel3.add(tmasa, new
org.netbeans.lib.awtextra.AbsoluteConstraints(129, 85, 100, -1));
tjbt.setEnabled(false);
jPanel3.add(tjbt, new
org.netbeans.lib.awtextra.AbsoluteConstraints(129, 116, 100, -1));
jLabel11.setText("Tunjangan Jabatan");
jPanel3.add(jLabel11, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 119, -1, -1));
tulembur.setEnabled(false);
tulembur.addActionListener(new java.awt.event.ActionListener() {
105
public void actionPerformed(java.awt.event.ActionEvent evt) {
tulemburActionPerformed(evt);
}
});
jPanel3.add(tulembur, new
org.netbeans.lib.awtextra.AbsoluteConstraints(129, 176, 100, -1));
jLabel15.setText("Lembur");
jPanel3.add(jLabel15, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 179, -1, -1));
tinsentif.setEnabled(false);
jPanel3.add(tinsentif, new
org.netbeans.lib.awtextra.AbsoluteConstraints(129, 147, 100, -1));
jLabel16.setText("Insentif");
jPanel3.add(jLabel16, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 150, -1, -1));
jPanel3.add(jSeparator2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 207, 214, 10));
jLabel19.setText("Gaji Kotor");
jPanel3.add(jLabel19, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 223, -1, -1));
106
lgajikotor.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
lgajikotor.setText("0");
jPanel3.add(lgajikotor, new
org.netbeans.lib.awtextra.AbsoluteConstraints(160, 220, 80, 20));
jLabel20.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel20.setText("Rp.");
jPanel3.add(jLabel20, new
org.netbeans.lib.awtextra.AbsoluteConstraints(128, 223, -1, -1));
jPanel4.setBackground(new java.awt.Color(255, 255, 255));
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swin
g.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)), "Data
kehadiran"));
jPanel4.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel12.setText("Bulan");
jPanel4.add(jLabel12, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 30, -1, -1));
tbulan.setEnabled(false);
jPanel4.add(tbulan, new
org.netbeans.lib.awtextra.AbsoluteConstraints(214, 27, 190, -1));
107
jLabel13.setText("Jumlah tidak hadir dalam sebulan");
jPanel4.add(jLabel13, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 92, -1, -1));
jLabel14.setText("Jumlah Lembur dalam sebulan");
jPanel4.add(jLabel14, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 123, -1, -1));
thadir.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
thadirKeyPressed(evt);
}
public void keyReleased(java.awt.event.KeyEvent evt) {
thadirKeyReleased(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
thadirKeyTyped(evt);
}
});
jPanel4.add(thadir, new
org.netbeans.lib.awtextra.AbsoluteConstraints(214, 89, 190, -1));
108
tlembur.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
tlemburKeyPressed(evt);
}
public void keyReleased(java.awt.event.KeyEvent evt) {
tlemburKeyReleased(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
tlemburKeyTyped(evt);
}
});
jPanel4.add(tlembur, new
org.netbeans.lib.awtextra.AbsoluteConstraints(214, 120, 190, -1));
ttahun.setEnabled(false);
jPanel4.add(ttahun, new
org.netbeans.lib.awtextra.AbsoluteConstraints(214, 58, 190, -1));
jLabel24.setText("Tahun");
jPanel4.add(jLabel24, new
org.netbeans.lib.awtextra.AbsoluteConstraints(15, 61, -1, -1))
109
btambah.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/trans.png"))); //
NOI18N
btambah.setText("Input");
btambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btambahActionPerformed(evt);
}
});
bproses.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/proses.png"))); //
NOI18N
bproses.setText("Proses");
bproses.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bprosesActionPerformed(evt);
}
});
jPanel5.setBackground(new java.awt.Color(255, 255, 255));
110
jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swin
g.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)),
"Potongan"));
jPanel5.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel21.setText("BPJS JHT");
jPanel5.add(jLabel21, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 20, -1, -1));
talpa.setEnabled(false);
jPanel5.add(talpa, new
org.netbeans.lib.awtextra.AbsoluteConstraints(130, 20, 100, -1));
tpph.setEnabled(false);
jPanel5.add(tpph, new
org.netbeans.lib.awtextra.AbsoluteConstraints(130, 80, 100, -1));
jLabel10.setText("BPJS Kesehatan");
jPanel5.add(jLabel10, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 80, 80, -1));
jPanel5.add(jSeparator3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 170, 220, 10));
jLabel22.setText("Total Potongan");
111
jPanel5.add(jLabel22, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 180, -1, -1));
jLabel23.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel23.setText("Rp.");
jPanel5.add(jLabel23, new
org.netbeans.lib.awtextra.AbsoluteConstraints(130, 180, -1, -1));
ltotpot.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
ltotpot.setText("0");
jPanel5.add(ltotpot, new
org.netbeans.lib.awtextra.AbsoluteConstraints(160, 180, 80, 20));
tpph1.setEnabled(false);
jPanel5.add(tpph1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(130, 50, 100, -1));
jLabel27.setText("BPJS JP");
jPanel5.add(jLabel27, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 50, -1, -1));
jLabel29.setText("PPh21");
jPanel5.add(jLabel29, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 110, 80, -1));
112
tpph2.setEnabled(false);
jPanel5.add(tpph2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(130, 110, 100, -1));
talpa1.setEnabled(false);
jPanel5.add(talpa1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(130, 140, 103, -1));
jLabel30.setText("Ketidakhadiran");
jPanel5.add(jLabel30, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 140, -1, -1));
ltanggal2.setText("tanggal");
bsimpan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/simpan.png"))); //
NOI18N
bsimpan.setText("Simpan");
bsimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bsimpanActionPerformed(evt);
}
});
113
bkeluar.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/logout.png"))); //
NOI18N
bkeluar.setText("Keluar");
bkeluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bkeluarActionPerformed(evt);
}
});
jPanel6.setBackground(new java.awt.Color(255, 255, 255));
jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swin
g.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))));
jLabel25.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
jLabel25.setText("Gaji Bersih");
jLabel17.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel17.setText("Rp.");
lgaji.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
lgaji.setText("0");
114
javax.swing.GroupLayout jPanel6Layout = new
javax.swing.GroupLayout(jPanel6);
jPanel6.setLayout(jPanel6Layout);
jPanel6Layout.setHorizontalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addComponent(jLabel25)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(jPanel6Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel17)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addComponent(lgaji,
javax.swing.GroupLayout.PREFERRED_SIZE, 95,
javax.swing.GroupLayout.PREFERRED_SIZE)))
115
.addContainerGap())
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel25)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(jLabel17)
.addComponent(lgaji))
.addContainerGap(19, Short.MAX_VALUE))
);
jLabel26.setText("Admin :");
ladmin.setText("ladmin");
116
jLabel28.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/img/Webp.net-compress-
image (4).jpg"))); // NOI18N
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.A
lignment.LEADING)
.addComponent(jSeparator1)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
117
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addComponent(jPanel2,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(bsimpan)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(bkeluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 85,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(btambah,
javax.swing.GroupLayout.PREFERRED_SIZE, 87,
javax.swing.GroupLayout.PREFERRED_SIZE)
118
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(bproses)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(jPanel6,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(jPanel4,
javax.swing.GroupLayout.DEFAULT_SIZE, 413, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.A
lignment.LEADING)
.addComponent(jPanel5,
javax.swing.GroupLayout.PREFERRED_SIZE, 244,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 244,
javax.swing.GroupLayout.PREFERRED_SIZE)))
119
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.TRAILING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE, 49,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addComponent(jLabel28,
javax.swing.GroupLayout.PREFERRED_SIZE, 278,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(101, 101, 101)
.addComponent(ltanggal2)
.addGap(158, 158, 158))
120
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel26)
.addGap(67, 67, 67)
.addComponent(ladmin))))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(41, 41, 41)
.addComponent(tnotrans,
javax.swing.GroupLayout.PREFERRED_SIZE, 168,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(89, 89, 89)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(ltanggal))))
.addGap(19, 19, 19)))
.addContainerGap())
);
121
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(ltanggal2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(jLabel26)
.addComponent(ladmin)))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addComponent(jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE, 67,
javax.swing.GroupLayout.PREFERRED_SIZE)
122
.addComponent(jLabel28,
javax.swing.GroupLayout.Alignment.TRAILING))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addComponent(jSeparator1,
javax.swing.GroupLayout.PREFERRED_SIZE, 10,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(tnotrans,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1)
.addComponent(jLabel3)
.addComponent(ltanggal))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
123
.addComponent(jPanel2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addComponent(jPanel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 154,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(1, 1, 1)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.A
lignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(btambah,
javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bproses,
javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE))
124
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING, false)
.addComponent(bsimpan,
javax.swing.GroupLayout.DEFAULT_SIZE, 34, Short.MAX_VALUE)
.addComponent(bkeluar,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addComponent(jPanel6,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 246,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(jPanel5,
javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)))
125
.addContainerGap())
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
126
.addComponent(jPanel1,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
private void tnikKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
setnik();
}
}
private void bcariActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
boolean closable = true;
datakaryawan lk = new datakaryawan(null, closable);
lk.trans = this;
lk.setVisible(true);
lk.setResizable(true);
127
tnik.setText(nik);
setnik();
}
private void tulemburActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void thadirKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
tlembur.setEnabled(true);
tlembur.requestFocus();
thadir.setEnabled(false);
}
}
private void thadirKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
angka(evt);
}
128
private void tlemburKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
bproses.setEnabled(true);
bproses.requestFocus();
tlembur.setEnabled(false);
}
}
private void tlemburKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
angka(evt);
}
private void btambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
bersih();
Date skrg = new Date();
SimpleDateFormat notrans = new SimpleDateFormat("ddMMyyyy-
HHmmss");
SimpleDateFormat bulan = new SimpleDateFormat("MMMM");
129
SimpleDateFormat tahun = new SimpleDateFormat("yyyy");
tbulan.setText(bulan.format(skrg));
ttahun.setText(tahun.format(skrg));
tnotrans.setText(notrans.format(skrg));
bcari.setEnabled(true);
tnik.setEnabled(true);
tnik.requestFocus();
bkeluar.setText("Batal");
btambah.setEnabled(false);
}
private void bprosesActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
bulan();
// setkehadiran();
//penghitungan gaji kotor
float a = Float.parseFloat(tgapok.getText());
float b = Float.parseFloat(tpanen.getText());
float c = Float.parseFloat(tmasa.getText());
float d = Float.parseFloat(tjbt.getText());
130
float e = Float.parseFloat(tinsentif.getText());
float f = Float.parseFloat(tulembur.getText());
float gajikotor = a + b + c + d + e + f;
lgajikotor.setText(Float.toString(gajikotor));
//penghitungan pajak diambil dari golongan dan gaji kotor
double pph = gajikotor * 0.015;
tpph2.setText(Double.toString(pph));
double jht = gajikotor * 0.002;
talpa.setText(Double.toString(jht));
double jp = gajikotor * 0.001;
tpph1.setText(Double.toString(jp));
double jk = gajikotor * 0.001;
tpph.setText(Double.toString(jk));
//penghitungan potongan
double g = Double.parseDouble(talpa.getText());
double h = Double.parseDouble(tpph1.getText());
double i = Double.parseDouble(tpph.getText());
double j = Double.parseDouble(tpph2.getText());
double k = Double.parseDouble(talpa1.getText());
131
double totalpotongan = g + h + i + j + k;
ltotpot.setText(Double.toString(totalpotongan));
DecimalFormat df = new DecimalFormat("#.##");
//penghitungan gaji bersih
double gaji_kotor = Double.parseDouble(lgajikotor.getText());
double potongan = Double.parseDouble(ltotpot.getText());
double gajibersih = gaji_kotor - potongan;
this.lgaji.setText(String.valueOf(df.format(gajibersih)));
//lgaji.setText(Double.toString(gajibersih));
bproses.setEnabled(false);
bsimpan.setEnabled(true);
}
private void bsimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
SimpanData();
bersih();
nonaktif();
btambah.setEnabled(true);
bproses.setEnabled(false);
132
bcari.setEnabled(false);
bsimpan.setEnabled(false);
bkeluar.setText("Keluar");
}
private void bkeluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String keluar = bkeluar.getText();
if (keluar.equals("Batal")) {
Date skrg = new Date();
SimpleDateFormat tgl = new SimpleDateFormat("dd MMMM
yyyy");
SimpleDateFormat tgl2 = new SimpleDateFormat("yyyy-MM-dd");
ltanggal.setText(tgl.format(skrg));
ltanggal2.setText(tgl2.format(skrg));
bersih();
nonaktif();
btambah.setEnabled(true);
bproses.setEnabled(false);
bcari.setEnabled(false);
133
bsimpan.setEnabled(false);
bkeluar.setText("Keluar");
} else {
this.dispose();
}
}
private void thadirKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
int absen;
if (thadir.getText().equals("")) {
talpa1.setText("");
} else {
absen = Integer.parseInt(thadir.getText());
//uanglembur = Integer.parseInt(tuanglembuar.getText());
//total=Integer.parseInt(lbltotal.getText());
int ttlabsen = absen * 50000;
talpa1.setText(Integer.toString(ttlabsen));
}
}
134
private void tlemburKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
DecimalFormat df = new DecimalFormat("#.##");
if (tlembur.getText().equals("")) {
tulembur.setText("");
} else {
int lembur;
lembur = Integer.parseInt(tlembur.getText());
//uanglembur = Integer.parseInt(tuanglembuar.getText());
//total=Integer.parseInt(lbltotal.getText());
int ttlabsen = lembur * 100000;
tulembur.setText(Integer.toString(ttlabsen));
}
}
private void formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
Date skrg = new Date();
SimpleDateFormat tgl=new SimpleDateFormat("dd MMMM yyyy");
135
SimpleDateFormat tgl2=new SimpleDateFormat("yyyy-MM-dd");
ltanggal.setText(tgl.format(skrg));
ltanggal2.setText(tgl2.format(skrg));
ladmin.setText(Kode);
// bersih();
nonaktif();
//bproses.setEnabled(false);
bcari.setEnabled(false);
bsimpan.setEnabled(false);
}
/**
* @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.
136
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(transaksi.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(transaksi.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
137
java.util.logging.Logger.getLogger(transaksi.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(transaksi.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new transaksi().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton bcari;
private javax.swing.JButton bkeluar;
private javax.swing.JButton bproses;
private javax.swing.JButton bsimpan;
138
private javax.swing.JButton btambah;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel21;
private javax.swing.JLabel jLabel22;
private javax.swing.JLabel jLabel23;
private javax.swing.JLabel jLabel24;
private javax.swing.JLabel jLabel25;
139
private javax.swing.JLabel jLabel26;
private javax.swing.JLabel jLabel27;
private javax.swing.JLabel jLabel28;
private javax.swing.JLabel jLabel29;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel30;
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.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JSeparator jSeparator1;
140
private javax.swing.JSeparator jSeparator2;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JLabel ladmin;
private javax.swing.JLabel lgaji;
private javax.swing.JLabel lgajikotor;
private javax.swing.JLabel ltanggal;
private javax.swing.JLabel ltanggal2;
private javax.swing.JLabel ltotpot;
private javax.swing.JTextField talpa;
private javax.swing.JTextField talpa1;
private javax.swing.JTextField tbulan;
private javax.swing.JTextField tgapok;
private javax.swing.JTextField thadir;
private javax.swing.JTextField tinsentif;
private javax.swing.JTextField tjabatan;
private javax.swing.JTextField tjbt;
private javax.swing.JTextField tlembur;
private javax.swing.JTextField tmasa;
private javax.swing.JTextField tnama;
141
private javax.swing.JTextField tnik;
private javax.swing.JTextField tnotrans;
private javax.swing.JTextField tpanen;
private javax.swing.JTextField tpph;
private javax.swing.JTextField tpph1;
private javax.swing.JTextField tpph2;
private javax.swing.JTextField tstatus;
private javax.swing.JTextField ttahun;
private javax.swing.JTextField tulembur;
// End of variables declaration
}
142
3.5.2. Blackbox Testing
1. . Form Login
Tabel III.7.
Hasil Pengujian Black Box Testing Form Login
No Skenario
Pengujian
Test Case Hasil yang
diharapkan
Hasil
Pengujian
Kesimpulan
1 Nama User dan
Password tidak
diisi kemudian
klik tombol
“LOGIN”
Username:
(kosong)
Password :
(kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan “Harap
isi
Username!”
Sesuai
harapan
Valid
2 Mengetikkan
Nama User
dan Password
tidak diisi atau
kosong
kemudian klik
tombol
“LOGIN”
Username:
(admin)
Password :
(kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan “Gagal
Login!”
Sesuai
harapan
Valid
3 Nama User
tidak diisi
(kosong) dan
Password diisi
kemudian klik
tombol
“LOGIN”
Username:
(kosong)
Password :
(admin)
Sistem akan
menolak
akses dan
menampilkan
pesan “Harap
isi
Username!”
Sesuai
harapan
Valid
4 Mengetikkan
salah satu
kondisi salah
pada Nama
User atau
Password
kemudian klik
tombol
“LOGIN”
Username:
admin
(benar)
Password :
5678
(salah)
Sistem akan
menolak
akses dan
kembali
diarahkan ke
halaman
Login dan
menampilkan
pesan
menampilkan
pesan “Gagal
Login”
Sesuai
harapan
Valid
143
5 Mengetikan
Nama User
dan Password
dengan data
yang benar
kemudian klik
tombol
“LOGIN”
Username:
payroll
(benar)
Password :
123
(benar)
Sistem akan
menerima
akses Login
dan akan
menampilkan
pesan
“Berhasil
Login”
Sesuai
harapan
Valid
2. Form Data Karyawan
Tabel III.8.
Hasil Pengujian Black Box Testing FormData Karyawan
No Skenario
Pengujian
Test Case Hasil yang
diharapkan
Hasil
Pengujian
Kesimpulan
1 Klik Tombol
“Tambah data
Karyawan”
kemudian
mengetikkan
pada textbox
Nik
Nama
Karyawan,
bagian, Tanggal
bergabung,
tanggal lahir,
Pendidikan,
jenis kelamin,
alamat,
no.telepon
kemudian pilih
“SIMPAN “
Nama
Karyawan:
Data
nik: Data
Sistem akan
menampilkan
pesan “Data
Berhasil
Disimpan”
Sesuai
harapan
Valid
nama
karyawan:
Data
bagian: Data
tanggal
bergabung:
Data
tanggal
lahir: Data
pendidikan:
Data
jenis
kelamin:
Data
alamat: Data
144
no telepon:
Data
2 Klik Tombol
“Tambah ”
kemudian pada
textbox
Nik,nama
karyawan,
Bagian,tanggal
bergabung,
tanggal lahir,
pendidikan,
jenis kelamin,
alamat,
no.telepon,
semuanya
kosong atau
salah satu
kosong,
kemudian pilih
“SIMPAN “
Nik:
(kosong)
Nama
karyawan:
(kosong)
bagian:
(kosong)
Tanggal
bergabung:
(kosong)
Tanggal
lahir:
(kosong)
pendidikan:
(kosong)
Sistem akan
menampilkan
pesan “Data
Gagal
Tersimpan”
Sesuai
harapan
Valid
Jenis
kelamin:
(kosong)
alamat:
(kosong)
No.telepon:
(kosong)
145
3. Form Data Users
Tabel III.9.
Hasil Pengujian Black Box Testing FormData Users
No Skenario
Pengujian
Test Case Hasil yang
diharapkan
Hasil
Pengujian
Kesimpulan
1 Klik Tombol
“Tambah data
users” kemudian
mengetikkan
pada textbox
Kode
users,nama
users,usersname,
password,hak
akses,kemudian
pilih “SIMPAN
“
Kode users:
Data
Nama
users: Data
usersnamae:
Data
password:
Data
hak akses:
Data
Sistem akan
menampilkan
pesan “Data
Berhasil
Disimpan”
Sesuai
harapan
Valid
2 Klik Tombol
“Tambah data
users” kemudian
mengetikkan
pada textbox
Kode
users,nama
users,usersname,
password,hak
akses, semuanya
kosong atau
salah satu
kosong,
kemudian pilih
“SIMPAN “
Kode users:
(kosong)
Nama
users:
(kosong)
usersnamae:
(kosong)
password:
(kosong)
hak akses:
(kosong)
Sistem akan
menampilkan
pesan “Data
Gagal
Tersimpan”
Sesuai
harapan
Valid
146
4. Form Data Bagian
Tabel III.10.
Hasil Pengujian Black Box Testing FormData Bagian
No Skenario
Pengujian
Test Case Hasil yang
diharapkan
Hasil
Pengujian
Kesimpulan
1 Klik Tombol
“Tambah data
Bagian”
kemudian
mengetikkan
pada textbox
Kode
bagian,nama
bagian,gaji
pokok,upah
panen,tunjangan
masa
kerja,tunjangan
jabatan,insentif,
kemudian pilih
“SIMPAN “
Kode
bagian: Data
Nama
bagian: Data
Gaji pokok:
Data
Upah panen:
Data
Tunjangan
masa kerja:
Data
Sistem akan
menampilkan
pesan “Data
Berhasil
Disimpan”
Sesuai
harapan
Valid
Tunjangan
jabatan:
Data
insentif:
Data
2 Klik Tombol
“Tambah data
Bagian”
kemudian
mengetikkan
pada textbox
Kode bagian,
nama bagian,
gaji pokok,
upah panen,
tunjangan masa
kerja,
tunjangan
jabatan,
Kode
bagian:
(kosong)
Nama
bagian:
(kosong)
Gaji pokok:
(kosong)
Upah panen:
(kosong)
Sistem akan
menampilkan
pesan “Data
Gagal
Tersimpan”
Sesuai
harapan
Valid
147
insentif,
semuanya
kosong atau
salah satu
kosong,
kemudian pilih
“SIMPAN “
Tunjangan
masa kerja:
(kosong)
Tunjangan
jabatan:
(kosong)
insentif::
(kosong)
5. Form Menu Transaksi
Tabel III.11.
Hasil Pengujian Black Box Testing FormMenu Transaksi
No Skenario
Pengujian
Test Case Hasil yang
diharapkan
Hasil
Pengujian
Kesimpulan
1 Klik Tombol
“Tambah Data
transaksi”
kemudian
mengetikkan
pada textbox
nomor transaksi,
memilih data
karyawan,
memilih data
kehadiran,
memilih
pendapatan,
memilih
potongan
kemudian pilih
“SIMPAN “
Nomor
transaksi:
Data
Data
karyawan:
Data
Data
kehadiran:
Data
pendapatan:
Data
potongan:
Pilih Data
Sistem akan
menampilkan
pesan “Data
Berhasil
Disimpan”
Sesuai
harapan
Valid
2 Klik Tombol
“Tambah Data
transaksi”
kemudian
mengetikkan
Nomor
transaksi:
Data
Data
Sistem akan
menampilkan
pesan “Data
Gagal
Tersimpan”
Sesuai
harapan
Valid
148
pada textbox
nomor transaksi,
memilih data
karyawan,
memilih data
kehadiran,
memilih
pendapatan,
memilih
potongan
kemudian pilih
“SIMPAN “
karyawan:
Data
Data
kehadiran:
Data
pendapatan:
Data
potongan:
tidak
memilih
Data
3 Klik Tombol
“Tambah Data
transaksi”
kemudian
mengetikkan
pada textbox
nomor transaksi,
memilih data
karyawan,
memilih data
kehadiran,
memilih
pendapatan,
memilih
potongan
kemudian pilih
“SIMPAN “
Nomor
transaksi:
Data
Data
karyawan:
Data
Data
kehadiran:
Data
pendapatan:
Data
potongan:
tidak
memilih
Data
Sistem akan
menampilkan
pesan “Data
Gagal
Tersimpan”
Sesuai
harapan
Valid
4 Klik Tombol
“Tambah Data
transaksi”
kemudian
mengetikkan
pada textbox
nomor transaksi,
memilih data
karyawan,
memilih data
kehadiran,
Nomor
transaksi:
(kosong)
Data
karyawan:
(kosong)
Data
kehadiran:
(kosong)
Sistem akan
menampilkan
pesan “Data
Gagal
Tersimpan”
Sesuai
harapan
Valid
149
memilih
pendapatan,
memilih
potongan
kemudian pilih
“SIMPAN “
pendapatan:
(kosong)
potongan:
memilih
(kosong)
3.5.3. Spesifikasi Hardware dan Software
Tabel III.12.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Operasi Windows 7
Processor Intel ® Atom ™ Processor N450 (1,66GHz,
512KB Cache)
RAM 1GB Memory
Harddisk 160 GB HDD
Monitor 10.1” LED LCD
Keyboard StandardKeyboard
Printer Laser Jet
Mouse Standard
Software
Kebutuhan menjalankan aplikasi secara local :
Bahasa Pemrograman : java NeatBeans 8.1
DBMS : MySQL
Top Related