BAB4 PERANCANGAN S IS TEM INFORMAS I AKUNTANS I PENGGAJIAN PADA PT. EKA JAYA PERKAS A
3.3 Analysis Document 4.1.1 The Task 3.3.1
Purpose Sistem Informasi Akuntansi Penggajian pada PT. EKA JAYA PERKASA
dirancang dengan tujuan untuk mempermudah kegiatan penggajian dalam perusahaan yang dilakukan setiap akhir bulan. Sistem ini juga mendukung pengendalian internal baik pengendalian dari sistem terkomputerisasi maupun pengendalian internal secara manual. Sistem ini dimulai dari pencatatan waktu kehadiran karyawan, perhitungan gaji beserta tunjangan-tunjangan, potongan gaji dan laporan-laporan yang berkaitan dengan penggajian. Output dari sistem ini sendiri berupa laporan yang dibutuhkan dalam kegiatan penggajian pada PT. EKA JAYA PERKASA. 3.3.2
System Definition Rancangan sistem informasi akuntansi penggajian yang diusulkan dimulai dari
aktivitas absensi karyawan. Pada saat masuk dan pulang kerja, setiap karyawan melakukan absensi ke dalam sistem yang secara otomatis akan mencatat waktu kehadiran dan waktu pulang kerja dari karyawan yang bersangkutan. Pada saat istirahat karyawan juga wajib melakukan absensi untuk mencatat waktu istirahatnya. Periode penggajian yang ditetapkan dihitung mulai dari tanggal 25 bulan sebelumnya sampai tanggal 24 bulan berjalan.
83 Karyawan yang akan bekerja lembur terlebih dahulu harus mengisi formulir kerja lembur yang telah terdapat dalam sistem. Setelah proses pengisian selesai maka formulir tersebut akan dikirimkan kepada Manager bagiannya untuk disetujui. Apabila disetujui maka secara otomatis status formulir kerja lembur akan berubah dan data lembur karyawan tersebut akan bertambah. Karyawan tetap yang telah memiliki hak cuti dapat mengambil cuti dengan mengisi formulir permohonan cuti yang terdapat dalam sistem. Dengan memasukkan NIK maka sistem akan secara otomatis menampilkan jumlah cuti tahunan yang tersisa. Karyawan dapat memilih jenis cuti yang akan diambil dan setelah formulir permohonan cuti diisi maka akan dikirimkan ke Manager bagiannya untuk disetujui. Apabila disetujui maka status di formulir permohonan cuti akan berubah dan jumlah hak cuti karyawan bersangkutan akan berkurang secara otomatis. Tunjangan Hari Raya dibedakan pemabagiannya kepada karyawan muslim dan non muslim. Untuk karyawan muslim maka akan mendapat THR 2 (dua) minggu sebelum Idul Fitri, sedangkan karyawan non muslim akan mendapat THR 2 (dua) minggu sebelum Natal. Besarnya THR yang diberikan sesuai dengan perhitungan THR yang ditetapkan oleh perusahaan. Karyawan dapat melakukan klaim atas tunjangan kesehatan dan pengobatan dengan mengisi formulir pengajuan klaim yang terdapat dalam sistem dan menyerahkan berkas-berkas terkait ke HR&GA Manager. HR&GA Manager kemudian akan mengotorisasi pengajuan klaim tersebut dan men-check list berkasberkas yang ada. Sistem juga akan menampilkan sisa hak klaim dari karyawan tersebut sebagai pertimbangan bagi HR&GA Manager untuk melakukan otorisasi.
84 Karyawan juga dapat melakukan pinjaman dari perusahaan dengan jumlah sebesar 1 (satu) bulan gaji pokoknya. Untuk mendapat pinjaman, karyawan diwajibkan mengisi formulir pinjaman karyawan yang terdapat dalam sistem dan memasukkan jumlah yang ingin dipinjam dan alasan peminjaman. Setelah itu formulir tersebut akan dikirimkan ke Finance Manager untuk disetujui. Finance Manager akan memutuskan untuk menyetujui atau menolak pengajuan pinjaman tersebut. Apabila disetujui maka data pengajuan akan disimpan dalam sistem dan secara otomatis manambah jumlah pinjaman yang terdapat dalam database Karyawan. Pada saat penghitungan gaji, pinjaman ini akan mengurangi gaji bulanan dari karyawan tersebut. Pada akhir bulan, Personnel Staff akan menyiapkan penghitungan gaji dari tiap karyawan berdasarkan data dari database sistem. Variabel gaji dari karyawan meliputi absensi, cuti, lembur, lembur khusus, tunjangan, bonus atau komisi, dan pinjaman. Setelah didapat gaji bersih bulanan dari setiap karyawan maka akan dikurangi pajak sesuai dengan perhitungan PPh pasal 21. Perhitungan PPh 21 akan dihitung secara otomatis oleh sistem. Setelah proses penghitungan selesai maka akan dikirim ke HR&GA Manager untuk diotorisasi. Penghitungan gaji yang telah diotorisasi kemudian akan dikirimkan ke Finance Manager untuk proses pemindahan dana ke rekening karyawan. Setelah Finance Manager selesai memproses pembayaran gaji karyawan maka Finance Manager akan mengubah status bayar dari gaji tersebut. Setiap bulan sistem akan menghasilkan Laporan Absensi, Laporan Pinjaman, Laporan Gaji, Laporan Klaim, dan Surat Pemberitahuan massa yang digunakan
85 untuk perpajakan. Setiap akhir tahun sistem dapat digunakan untuk mencetak Laporan Insentif Tunjangan. System definiton dari Sistem Informasi Akuntansi Penggajian pada PT. EKA JAYA PERKASA adalah sebagai berikut: 1. Functionality Sistem ini berfungsi untuk mempermudah kegiatan penggajian, seperti: pencatatan waktu hadir, penghitungan gaji bulanan karyawan dengan variabel yang berhubungan seperti lembur, cuti, bonus atau komisi, tunjangantunjangan dan potongan gaji berupa pinjaman dan pajak. 2. Application Domain Pengguna dari sistem ini adalah karyawan, Personnel_staff, HR&GA_M anager, Finance_M anager, M anager_Bagian dan M anaging_Director. 3. Condition Sistem ini dijalankan apabila karyawan ingin melakukan absensi waktu hadir dan waktu pulang kerja serta melakukan login untuk mulai menggunakan sistem. Sistem ini berfungsi menangani seluruh kegiatan yang berhubungan dengan penggajian, seperti: otorisasi cuti atau lembur, penghitungan gaji bulanan karyawan beserta tunjangan-tunjangan dan potongan gaji karyawan. 4. Technology Teknologi yang digunakan untuk mengembangkan dan menjalankan sistem ini adalah perangkat komputer, printer, dan jaringan LAN untuk menghubungkan beberapa komputer dalam perusahaan.
86 5. Object Object yang terlibat adalah Karyawan_Non_Penjualan, Karyawan_Penjualan, Jabatan,
Histori_Gaji,
Absensi,
Permintaan_Lembur, Pinjaman,
Hari_Libur,
Permintaan_Cuti,
Cuti,
Tunjangan_M edis, Bonus, Detil_Bonus,
Komisi, Detil_Komisi, Lembur_Khusus dan Pajak. 6. Responsibility Sistem ini memiliki tanggung jawab untuk mempermudah proses penghitungan gaji bulanan karyawan dan menghasilkan laporan-laporan yang berkaitan dengan penggajian. 3.3.3
Context
3.3.3.1
Problem Domain
Berikut gambar 4.1 menggambarkan r ich picture dari sistem informasi akuntansi penggajian yang diusulkan.
22.Histori_Gaji (paid) 3. PengajuanLembur,C uti,Pinjam an,Klaim
2.data_absensi 1. NIK,password PC_um um
Karyawan
6. PengajuanPinjaman
18. Histori_Gaji (approved/denied)
Server
4.PengajuanCuti,Lembur 5.Cuti,Lembur (approved/denied) 16HistoriGaji 19Histori_Gaji $ $
21.gaji_kary_percobaan 13.Bonus,Kom isi 15.kom ponenGaji 8. Pinjaman
Manager_Bagian
$ $
9.lampiran (kwitansi,resep,diagnosa)
14.Bonus,Komisi (approved)
10.PengajuanKlaim 7.Pinjam an (approved/denied) 11.Klaim (approved/denied)
25.LaporanPinjaman 12.Bonus,Kom isi Finance_Manager 20.gaji_kary_tetap
27.SPT massa, tahunan
$
Bank
26.LaporanAbsensi,Gaji, Klaim, Tunjangan,Pinjaman
H R&GA_Manager
Departem enPajak
24.LaporanAbsensi
17.Histori_Gaji Personnel_Staff
23.SlipGaji
Gambar 4.1 Rich Picture sistem yang diusulkan
Managing_Director
88 3.3.3.2
Application Domain
Sistem informasi akuntansi penggajian yang dirancang mendukung tugas dari karyawan-karyawan dalam perusahaan. Karyawan menggunakan sistem untuk mencatat waktu kehadiran dan pulang kerja, mengajukan lembur, mengajukan cuti, mengajukan pinjaman dan mengajukan klaim. Manager_bagian akan mengotorisasi permintaan cuti dan lembur dari karyawan. HR&GA Manager menggunakan sistem untuk mengotorisasi pengajuan klaim tunjangan, mengubah data karyawan seperti data pribadi maupun data finansial karyawan, mendata bonus, mendata komisi, mengotorisasi penghitungan gaji, mencetak slip gaji, membuat Laporan Klaim, Laporan Insentif Tunjangan dan membuat Laporan Gaji. Personnel staff akan menghitung gaji karyawan termasuk THR dan pajak, dan membuat Laporan Absensi. Finance Manager mengotorisasi pinjaman yang diajukan oleh karyawan, membuat Laporan Pinjaman dan membuat SPT (Surat Pemberitahuan) baik massa maupun tahunan. Managing Director melakukan otorisasi atas pengajuan pinjaman dan klaim yang dilakukan oleh HR&GA Manager dan Finance Manager, mendata dan juga mengotorisasi bonus/ komisi. 4.1.2 Problem Domain 4.1.2.1 Clusters Cluster karyawan digambarkan pada gambar 4.2 berikut.
89 <
> karyawan Karyawan
Karyawan_Non_Penjualan
Kar yawan_Penjualan
Gambar 4.2 Cluster karyawan Cluster cuti terlihat pada gambar 4.3 berikut <> Cuti 1
Cuti
*
Perm intaan_Cuti
Gambar 4.3 Cluster Cuti Cluster Bonus terlihat pada gambar 4.4 berikut <> Bonus *
1
Detil_Bonus
Bonus
Gambar 4.4 Cluster Bonus
90 Cluster Komisi terlihat pada gambar 4.5 berikut <> Komisi Komisi
Detil_Ko misi 1
*
Gambar 4.5 Cluster Komisi Cluster Pajak terlihat pada gambar 4.6 berikut <> Pajak Pajak
Gambar 4.6 Cluster Pajak 4.1.2.2 Structure Class diagram dari sistem informasi akuntansi penggajian yang akan dirancang adalah seperti yang terlihat pada gambar 4.7 berikut.
91 1 *
Cuti
Hari_Libur
Pinjaman
Permintaan_Cuti
Absensi
Permintaan_Lembur
1
1
* * 1 1 1
*
1
1 1 *
Karyaw an Lembur_Khusus
1 *
* *
1 1
Histori_Gaji
1 Karyawan_Non_Penjualan
Jabatan
Karyawan_Penjualan 1
*
* 1
Tunjangan_Medis
Bonus
Detil_Bonus
Detil_Komisi
Komisi
* 1
*
*
1
Gambar 4.7 Class Diagram 4.1.2.3 Classes 3.4.3.1
Absensi
Class Absensi digunakan untuk menyimpan data absensi dari masing-masing karyawan. Class Absensi memilki atribut seperti yang terlihat pada gambar 4.8. Statechart diagram pada gambar 4.9 menjelaskan behaviour dari class Absensi.
92
Absensi -kode_absen : Integer -NIK : String -tanggal : Date -jam_masuk : String -jam_klr_istirahat : String -jam_msk_istirahat : String -jam_keluar : String -keterangan : String +mencatat_waktu_kerja() +menghitung_gaji() +mendapat_lembur_khusus()
Gambar 4.8 Class Absensi / mendapat_lembur_khusus
/ menghitung_gaji
/ mencatat_waktu_kerja aktif
Gambar 4.9 Statechart Diagram dari Class Absensi 3.4.3.2
Karyawan
Class Karyawan terdiri dari class Karyawan_Non_Penjualan dan class Karyawan_Penjualan. Class Karyawan memiliki atribut yang berisi data-data karyawan yang bekerja dalam perusahaan seperti terlihat pada gambar 4.10. Class Karyawan_Non_Penjualan dan class Karyawan_Penjualan memiliki beberapa behaviour yang berbeda seperti terlihat pada statechart diagram gambar 4.11 dan gambar 4.12.
93
Karyawan -NIK : String -nama : String -alamat : String -agama : String -jenis_kelamin : Boolean -tempat_lahir : String -tanggal_lahir : Date -email : String -no_telp : Long -no_rekening : long -NPWP : String -single/married : Boolean -jumlah anak : Integer -jumlah_tanggungan : Integer -tanggal_mulai_kerja : Date -status_karyawan : String -kode_jabatan : String -cabang : String -gaji_pokok : Double -sisa_hak_cuti : Integer -sisa_cuti_besar : Integer -jumlah_lembur : Integer -sisa_hak_klaim : Integer -jumlah_pinjaman : Double -jumlah_sakit -password : String +mencatat_waktu_kerja() +meminta_cuti() +mengajukan_lembur() +mengklaim_tunjangan() +mengajukan_pinjaman() +mendapat_bonus() +menghitung_gaji() +merekrut() +mmebuat_histori()
Karyawan_Non_Penjualan
Karyawan_Penjualan +mendapat_komisi() +mendapat_lembur_khusus()
Gambar 4.10 Class Karyawan
94 / mengajukan_pin jaman / mem inta_cuti / m endapat_bonus / mere krut
/ m encat at_waktu_kerja available
/ menghitung_gaji aktif
proses
/ m engajukan_lembur / mengklaim _tunjangan
[berhenti_kerja]
Gambar 4.11 Statechart Diagram dari Class Karyawan_Non_Penjualan / mendapat_bonus /mengajukan_pinjaman / meminta_c uti / mengajukan_lembur / merekrut
/menc atat_waktu_kerja
/ menghitung_gaji
available
ak tif
proses /mendapat_k omisi
/ mengklaim_tunjangan
[berhenti_kerja]
/mendapat_lembur_k husus
Gambar 4.12 Statechart Diagram dari Class Karyawan_Penjualan 3.4.3.3
Cuti
Class Cuti menyimpan jenis-jenis cuti yang ada dengan membedakan masingmasing jenis cuti dengan kode_cuti yang berbeda-beda serta jumlah hari cuti yang bervariasi untuk masing-masing jenis cuti. Atribut untuk class Cuti terlihat pada gambar 4.13. Statechart diagram pada gambar 4.14 menggambarkan behaviour dari class cuti. Cuti -kode_cuti : String -jenis_cuti : String -jumlah_hari_cuti : String -max_pengambilan : String +meminta_cuti()
Gambar 4.13 Class Cuti
95 / meminta_cuti aktif
Gambar 4.14 Statechart Diagram dari Class Cuti 3.4.3.4
Permintaan_Cuti
Class Permintaan_Cuti digunakan untuk menyimpan data permintaan cuti yang diajukan oleh karyawan dan memilki atribut seperti dalam gambar 4.15. Behaviour dari class Permintaan_Cuti digambarkan pada statechart gambar 4.16.
Permintaan_Cuti -kode_permintaan : String -NIK : String -kode_cuti : String -tanggal_mulai_cuti : Date -tanggal_selesai_cuti : Date -alasan_cuti : String -status_otorisasi : String +meminta_cuti() +menyetujui_cuti() +menghitung_gaji()
Gambar 4.15 Class Permintaan_Cuti / menyetujui_cuti
/ meminta_cuti available
active [tidak_disetujui]
/ menghitung_gaji
Gambar 4.16 Statechart Diagram dari Class Permintaan_Cuti 3.4.3.5
Permintaan_Lembur
Class Permintaan_Lembur digunakan untuk menyimpan data permintaan lembur yang diajukan oleh karyawan dan memilki atribut seperti dalam gambar 4.17. Behaviour dari class Permintaan_Lembur digambarkan pada statechart gambar 4.18.
96
Permintaan_Lembur -kode_lembur : String -NIK : String -tanggal : Date -alasan_lembur : String -jam_selesai_lembur : Date -status_otorisasi : String +mengajukan_lembur() +menyetujui_lembur() +menghitung_gaji()
Gambar 4.17 Class Permintaan_Lembur / menyetujui_lembur
/ mengajukan_lembur available
active
[tidak_disetujui]
/ menghitung_gaji
Gambar 4.18 Statechart Diagram dari Class Permintaan_Lembur 3.4.3.6
Bonus
Class Bonus pada gambar 4.19 memiliki atribut kode_bonus untuk membedakan jumlah bonus yang diberikan kepada masing-masing karyawan dan diberikan pada periode tertentu. Class Bonus memiliki behaviour mendapat_bonus dan menghitung_gaji dan digambarkan dalam statechart diagram pada gambar 4.20.
Detil_Bonus -kode_bonus : String -NIK : String -grade : String -jumlah_bonus : Long +mendapat_bonus() +menghitung_gaji()
*
1
Bonus -kode_bonus : String -periode : Date -status_otorisasi : String +mendapat_bonus() +menghitung_gaji()
Gamabar 4.19 Class Bonus
97 / mendapat_bonus
/ menghitung_gaji aktif
Gambar 4.20 Statechart Diagram dari Class Bonus 3.4.3.7
Komisi
Class Komisi pada gambar 4.21 memiliki atribut kode_komisi untuk membedakan jumlah komisi yang diberikan kepada masing-masing karyawan divisi penjualan bagian marketing & sales dan diberikan pada periode tertentu. Class Komisi
memiliki
behaviour
mendapat_komisi
dan
menghitung_gaji
dan
digambarkan dalam statechart diagram pada gambar 4.22.
Detil_Komisi -kode_komisi : String -NIK : String -unit : Integer -profit : Long -jumlah_komisi : Long +mendapat_komisi() +menghitung_gaji()
Komisi *
1
-kode_komisi : String -periode : Date -status_otorisasi : String +mendapat_komisi() +menghitung_gaji()
Gambar 4.21 Class Komisi / mendapat_komisi
/ menghitung_gaji aktif
Gambar 4.22 Statechart Diagram dari Class Komisi 3.4.3.8
Pinjaman
Class Pinjaman pada gambar 4.23 memiliki atribut yang digunakan untuk menyimpan data pengajuan pinjaman dari karyawan. Setiap kali karyawan mengajukan pinjaman akan disimpan dalam kode_pinjaman yang berbeda. Dalam satu kode_pinjaman akan berisi NIK, tanggal peminjaman, besarnya jumlah
98 pinjaman serta alasan mengajukan pinjaman dan status pinjaman. Behaviour dari class Pinjaman digambarkan pada statechart diagram gambar 4.24.
Pinjaman -kode_pinjaman : String -NIK : String -tanggal_peminjaman : Date -jumlah_pinjaman : Long -alasan : String -jumlah_cicilan : Integer -periode_pinjaman_lunas : String -status_pinjaman : Boolean -jumlah_belum_dibayar : Double -status_otorisasi : String +mengajukan_pinjaman() +menyetujui_pinjaman() +menghitung_gaji()
Gambar 4.23 Class Pinjaman / menyetujui_pinjaman
/ mengajukan_pinjaman available
active [tidak_disetujui]
/ menghitung_gaji
Gambar 4.24 Statechart Diagram dari Class Pinjaman 3.4.3.9
Lembur_Khusus
Class Lembur_Khusus pada gambar 4.25 memiliki atribut kode_LK untuk membedakan jumlah lembur khusus yang diberikan kepada masing-masing karyawan
divisi
penjualan
dan
diberikan
pada
periode
tertentu.
Class
Lembur_Khusus memiliki behaviour mendapat_lembur_khusus dan menghitung_gaji dan digambarkan dalam statechart diagram pada gambar 4.26.
99 Lembur_khusus -kode_LK : St ring -NIK : St ring -kode_absensi : String -tanggal : Dat e +mendapat_lembur_khusus() +menghitung_gaji()
Gambar 4.25 Class Lembur_Khusus / mendapat_lembur_khusus
/ menghitung_gaji aktif
Gambar 4.26 Statechart Diagram dari Class Lembur_Khusus 3.4.3.10
Hari_Libur
Class Hari_Libur menyimpan data hari libur yang mewajibkan karyawan penjualan tetap masuk kerja. Gambar 4.27 menggambarkan class Hari_Libur beserta dengan atributnya. Sedangkan untuk behaviour dari class Hari_Libur digambarkan pada statechart diagram gambar 4.28 Hari_Libur -Tanggal : Date -Hari : String -Keterangan : String +mendapat_lembur_khusus()
Gambar 4.27 Class Hari_Libur / mendapat_lembur_khusus available
Gambar 4.28 Statechart Diagram dari Class Hari_Libur
100 3.4.3.11
Jabatan
Class Jabatan pada gambar 4.29 memiliki atribut kode_jabatan untuk membedakan tiap jenis jabatan yang ada dalam perusahaan. Behaviour dari class Jabatan digambarkan pada statechart diagram gambar 4.30 berikut. Jabatan -kode_jabatan : String -jabatan : String +merekrut()
Gambar 4.29 Class Jabatan / merekrut available
Gambar 4.30 Statechart Diagram dari Class Jabatan 3.4.3.12 Histori_Gaji Class Histori_Gaji pada gambar 4.31 digunakan untuk menampung jumlah penghitungan gaji karyawan setiap bulannya. Class Histori_Gaji menyimpan data yang akan digunakan untuk membuat laporan slip gaji dan membuat SPT untuk perpajakan. Behaviour dari class Histori_Gaji terlihat pada gambar 4.32 berikut.
101
Histori_Gaji -NIK : String -bulan : String -gaji_bulanan : Double -UMT : Double -tunjangan_medis : Double -THR : Double -uang_lembur : Double -uang_lembur_khusus : Double -bonus/komisi : Double -pinjaman : Double -biaya_jabatan : Double -pajak : Double -status_otorisasi : String -status_bayar : Boolean +membuat_histori()
Gambar 4.31 Class Histori_Gaji / membuat_histori
[dihapus] Available
Gambar 4.32 Statechart Diagram dari Class Histori_Gaji 3.4.3.13 Tunjangan_Medis Class Tunjangan_M edis pada gambar 4.33 memiliki atribut kode_TM yang digunakan untuk menyimpan data klaim tunjangan kesehatan dan pengobatan dari karyawan. Behaviour dari class Tunjangan_M edis digambarkan pada statechart diagram gambar 4.34 dibawah.
Tunjangan_Medis -kode_TM : String -NIK : String -jumlah_klaim_TM : Long -tanggal : Date -lampiran : String -status_otorisasi : String +mengklaim_tunjangan() +menyetujui_klaim() +menghitung_gaji()
Gambar 4.33 Class Tunjangan_Medis
102 / menyetujui_klaim
/ mengklaim_tunjangan available
aktif [tidak_disetujui]
/ menghitung_gaji
Gambar 4.34 Statechart Diagram dari Class Tunjangan_Medis 3.4.3.14 Pajak Class Pajak pada gambar 4.35 digunakan untuk menyimpan peraturan pajak yang berlaku untuk penghitungan pajak sebagai pemotong gaji. Atribut dari class pajak terdiri dari golongan, PKP, PTKP, persentase dan status tanggungan. Behaviour dari class Pajak digambarkan pada statechart diagram gambar 4.36 dibawah. Class Pajak tidak digambarkan pada class diagram. Class Pajak merupakan class yang terpisah karena class ini tidak memiliki relation baik asosiasi, agregat maupun generalisasi dengan class lain yang ada dalam class diagram. Pajak -golongan : String -jumlah_PKP : Double -status_tanggungan : String -persentase : Integer -PTKP : Double +menghitung_gaji()
Gambar 4.35 Class Pajak / menghitung_gaji available
Gambar 4.36 Statechart Diagram dari Class Pajak
4.1.2.4 Events Tabel 4.1 berikut adalah event table untuk sistem informasi akuntansi penggajian yang dirancang.
mencatat_waktu_kerja
*
*
M erekrut
+
+
membuat_histori
*
*
meminta_cuti
*
*
menyetujui_cuti mengajukan_lembur
menyetujui_klaim
* + +
*
*
*
+ +
*
*
+ +
Komisi
Bonus
Khusus
Lembur_
Hari_Libur
Pinjaman
Medis
Tunjangan_
Lembur
Permintaan_
Cuti
Cuti
Permintaan_
Absensi
Histori_Gaji
Jabatan
+
+
menyetujui_lembur mengklaim_tunjangan
Penjualan
Karyawan_
Event
n_Penjaualan
Class
Karyawan_No
Tabel 4.1 Event Table
104
mengajukan_pinjaman
*
*
+
menyetujui_pinjaman mendapat_bonus
+ *
*
+
mendapat_komisi
*
mendapat_lembur_khusus
*
+
*
+
menghitung_gaji
*
+ * +
+
+
*
+ +
+
+
105 4.1.3 Application Domain 4.1.3.1 Usage Dalam sistem informasi akuntansi penggajian yang diusulkan mempunyai beberapa aktor yang akan menggunakan sistem ini. Aktor-aktor tersebut adalah karyawan,
M anager_Bagian,
Personnel_staff,
HR&GA_M anager,
M anaging_Director dan Finance_M anager. 3.5.1.1
Overview
Actor table yang dapat dilihat pada tabel 4.2 dan use-case diagram pada gambar 4.37 menggambarkan interaksi aktor dengan sistem. Tabel 4.2 Actor table
M elakukan_Absensi
X
M engajukan_Cuti
X
M engotorisasi_Cuti M engajukan_Lembur
X X X
Tunjangan_M edis M engotorisasi_Klaim_
X
X
Tunjangan_M edis M engajukan_Pinjaman
X
M engotorisasi_Pinjaman_
X
Karyawan M enghitung_gaji
X
X
Director
Managing_
Manager
HR&GA_
Staff
Finance_
Staff
Personnel_
Bagian
X
M engotorisasi_Lembur M engajukan_Klaim_
Manager_
Usecase
karyawan
Actor
106 M engotorisasi_Penghitungan_
X
Gaji M engubah_Data_
X
Karyawan M endata_Bonus
X
X
M endata_Komisi
X
X
M embuat_Laporan_
X
Absensi_Bulanan M embuat_Laporan_Gaji
X
M embuat_Slip_Gaji
X
M embuat_Laporan_Pinjaman
X
M embuat_Laporan_Tunjanga
X
n_M edis M embayar_Gaji
X
M embuat_SPT
X
M engubah_Data_Pajak
X
107 Sistem Informasi Akuntansi Penggaj ian pada PT.EKA JAYA PERKASA Melak ukan_Absensi
Mengajukan_Lembur Mengotorisasi_Lemb ur Mengajukan_Cuti Mengotorisasi_Cuti Mengajukan_K laim_T unjangan_Medis Mengotorisasi_Klaim _Tunjangan_Medis karyawan Mengajukan_Pinjam a n
Mengotorisasi_Pinj aman_Karyawan Manager_Bagian
Menghitung_Gaji Mengotorisasi_Peng hitungan_Gaji
Membuat_Laporan_Ab sensi_Bulanan
Personnel_Staff Membuat_Slip_Gaji
Mengubah_Data_Kary awan
HR&GA_Manager
Mendata_Bonus
Mendata_K omisi
Managing_Director
Membuat_Laporan_Ga ji Finance_Manager Membuat_Laporan_Kl aim
M engubah_Data_Paja k
Membuat_Laporan_Pem injam an_Karyawan
Mengotorisasi_Pemb ayaran_Gaji
Membuat_SPT
Gambar 4.37 U se-case Diagram sistem yang diusulkan
108 3.5.1.2
Actors
Berikut ini adalah actor specification dari sistem yang diusulkan. Tabel 3.5 menjelaskan
peran
dari
karyawan.
Tabel
3.6
menjelaskan
peran
dari
M anager_Bagian. Tabel 3.7 menjelaskan peran dari Personnel_Staff. Tabel 3.8 menjelaskan peran dari Finance_Staff. Tabel 3.9 menjelaskan peran dari HR&GA_M anager. Tabel 4.3 Definisi actor karyawan Karyawan Purpose
Setiap karyawan memiliki tugas dan wewenang yang sesuai dengan jabatannya dalam perusahaan. karyawan yang bekerja dalam perusahaan memiliki hak untuk mendapat cuti, uang lembur baik lembur biasa maupun lembur khusus, klaim tunjangan kesehatan, bonus/komisi dan gaji yang sesuai.
Characterization karyawan adalah orang yang telah memiliki ijin kerja dan aktif bekerja di perusahaan. Baik karyawan tetap maupun percobaan dan karyawan divisi penjualan maupun non penjualan.
Tabel 4.4 Definisi actor Manager_Bagian M anager_Bagian Purpose
M anager_Bagian merupakan manager dari tiap-tiap divisi dan memiliki tanggung jawab atas divisi tersebut. M anager_Bagian juga harus mengotorisasi permintaan cuti, lembur yang diajukan oleh karyawan dalam divisinya.
Characterization M anager_Bagian harus memiliki pengalaman yang cukup untuk melaksanakan tugasnya dalam perusahaan dan juga harus memiliki wawasan yang luas dalam hal mengambil beberapa keputusan.
109 Tabel 4.5 Definisi actor Personnel_Staff Personnel_Staff Purpose
Personnel_Staff bertanggung jawab untuk melakukan kegiatankegitan yang berhubungan dengan personalia perusahaan seperti menghitung gaji karyawan dan membuat laporan absensi
Characterization Personnel_Staff harus memiliki pengalaman dalam bidang personalia agar dapat melaksanakan tugas dan tanggung jawabnya dengan baik.
Tabel 4.6 Definisi actor Finance_Manager Finance_M anager Purpose
Finance_M anager memiliki tanggung jawab untuk mengurus keuangan perusahaan baik dalam hal penerimaan maupun pengeluaran kas. Finance_M anager juga bertanggung jawab untuk mengotorisasi pengajuan pinjaman dari karyawan, membuat laporan berkaitan dengan keuangan perusahaan seperti Laporan Pinjaman dan SPT baik massa maupun tahunan.
Characterization Finance_M anager harus memiliki pengalaman yang cukup untuk melaksanakan tugasnya dalam perusahaan dan juga harus memiliki wawasan yang luas dalam hal mengambil beberapa keputusan.
Tabel 4.7 Definisi actor HR&GA_Manager HR&GA_M anager Purpose
HR&GA_M anager memiliki tanggung jawab untuk mengatur segala kegiatan personalia khususnya dalam hal mengubah data karyawan dan besarnya gaji karyawan dengan catatan adanya
110 laporan mutasi, demosi, maupun promosi, mendata bonus, mendata komisi, mengotorisasi pengajuan klaim dari karyawan, mengotorisasi
penghitungan
gaji
oleh
Personnel_staff,
membuat Laporan Klaim, mencetak slip gaji dan mencetak laporan gaji. Setiap akhir tahun HR&GA_M anager akan membuat Laporan Insentif Tunjangan yang berisi data karyawan yang tidak pernah melakukan klaim atas tunjangan medis selama tahun tersebut. Characterization HR&GA_M anager harus memiliki pengalaman yang cukup untuk melaksanakan tugasnya dalam perusahaan dan juga harus memiliki wawasan yang luas dalam hal mengambil beberapa keputusan.
Tabel 4.8 Definisi actor Managing_Director M anaging_Director Purpose
M anaging_Director memiliki tanggung jawab untuk mendata serta mengotorisasi bonus dan komisi dari setiap karyawan dalam
perusahaan
serta
melakukan
otorisasi
terhadap
pengajuan yang dilakukan oleh manager. M anaging_Director merupakan pemegang kendali perusahaan secara keseluruhan. Characterization M anaging_Director harus memiliki pengalaman yang cukup untuk melaksanakan tugasnya dalam perusahaan dan juga harus memiliki wawasan yang luas dalam hal mengambil beberapa keputusan.
3.5.1.3
Use Cases
Tabel 4.9 sampai dengan tabel 4.30 merupakan tabel use-case description yang menjelaskan masing-masing proses interaksi antara actor dengan sistem dalam usecase diagram.
111 Tabel 4.9 Use-case Specification untuk ”Melakukan_Absensi” M elakukan_Absensi Use Case
Proses “M elakukan_Absensi” bertujuan untuk mencatat waktu kerja karyawan. Proses ini dimulai pada saat karyawan memasukkan NIK dan password untuk melakukan pencatatan waktu kerja baik pada saat masuk maupun pulang kerja. Sistem akan mengecek NIK dan password yang dimasukkan karyawan dan apabila sesuai maka karyawan telah berhasil melakukan absensi. Pada saat absensi pulang kerja, sistem akan mengecek apakah karyawan memiliki pengajuan lembur pada hari tersebut untuk memastikan jam_keluar dari karyawan telah sesuai. Apabila tidak sesuai sistem secara otomatis dapat mengganti status pengajuan lembur dari karyawan tersebut.
Objects
Karyawan, Absensi
Function
Generate_date&time, Get_NIK, Get_tanggal, Cek_jam_sekarang,
s
Get_last_code,Generate_kode_absen,Add_new,Get_jam_keluar_istirahat , Compute_lama_istirahat, Update_jam_masuk_istirahat, Update_jam_keluar_istirahat, Update_jam_keluar
Tabel 4.10 Use-case Specification untuk ”Mengajukan_Cuti” M engajukan_Cuti Use Case
Proses “M engajukan_Cuti” dimulai pada saat karyawan yang telah login mengisi Form Pengajuan Cuti dan memilih jenis cuti yang akan diajukan. Kemudian karyawan melengkapi formulir dengan memilih tanggal mulai dan selesai cuti dan alasan cuti. Sistem akan menghitung dan mengecek jumlah hari cuti yang diambil oleh karyawan. Setelah selesai karyawan akan mengirim formulir permohonan tersebut kepada M anager_Bagian untuk diotorisasi. Apabila data yang dimasukkan karyawan tidak sesuai dengan
112 kriteria yang ada maka akan muncul pesan kesalahan. Jika data telah sesuai maka pengajuan cuti tersebut akan dikirimkan kepada M anager_Bagian. Objects
Karyawan, Cuti, Permintaan_Cuti, Hari_Libur
Functions
Get_jenis_cuti, Get_NIK, Generate_masa_berlaku, Get_sisa_hak_cuti, Get_max_pengambilan_cuti, Get_tanggal, Compute_jlh_hari_cuti_diambil, Get_last_code,Generate_kode_permintaan, Add_new
Tabel 4.11 Use-case Specification untuk ”Mengotorisasi_Cuti” M engotorisasi_Cuti Use Case
Proses “M engotorisasi_Cuti” dimulai pada saat Manager_Bagian membuka Form Otorisasi Cuti yang berisi pengajuan cuti yang diajukan oleh karyawan. Setelah memeriksa formulir yang diajukan maka Manager_Bagian akan memutuskan menyetujui atau tidak menyetujui formulir permohonan cuti tersebut. Apabila formulir disetujui maka status otorisasi dari pengajuan tersebut akan berubah menjadi approved. Jika Manager_Bagian tidak menyetujui maka status otorisasi menjadi denied.
Objects
Permintaan_Cuti, Karyawan, Jabatan
Functions
Get_kode_permintaan, Get_kode_jabatan,
Get_status_otorisasi, Get_jabatan,
Get_nama,
Update_status_otorisasi,
Update_sisa_hak_cuti.
Tabel 4.12 Use-case Specification untuk ”Mengajukan_Lembur” M engajukan_Lembur Use Case
Proses “M engajukan_Lembur” dimulai pada saat karyawan yang telah login mengisi Form Pengajuan Lembur. karyawan melengkapi
113 formulir dengan memasukkan alasan lembur. Setelah selesai karyawan akan mengirim formulir permohonan tersebut kepada M anager_Bagian untuk diotorisasi. Apabila data yang dimasukkan karyawan tidak sesuai dengan kriteria yang ada maka akan muncul pesan kesalahan. Jika data telah sesuai maka formulir pengajuan akan dikirim kepada M anager_Bagian untuk diotorisasi. Objects
Karyawan, Permintaan_Lembur
Functions
Get_NIK,
Cek_tanggal,
Get_tanggal,
Get_last_code,
Generate_kode_lembur, Add_new.
Tabel 4.13 Use-case Specification untuk ”Mengotorisasi_Lembur” M engotorisasi_Lembur Use Case
Proses
“M engotorisasi_Lembur”
dimulai
pada
saat
Manager_Bagian membuka Form Otorisasi Lembur yang berisi pengajuan kerja lembur yang diajukan oleh karyawan. Setelah memeriksa formulir yang diajukan maka Manager_Bagian akan memutuskan menyetujui atau tidak menyetujui formulir kerja lembur tersebut. Apabila formulir disetujui maka status otorisasi pengajuan tersebut akan berubah menjadi approved. Dan sebaliknya apabila tidak disetujui makan status otorisasinya menjadi denied. Objects
Permintaan_Lembur, Absensi, Karyawan, Jabatan
Functions
Get_NIK, Get_tanggal, Get_jam_keluar, Get_kode_lembur, Get_status_otorisasi, Get_nama, Get_kode_jabatan, Get_jabatan, Update_status_otorisasi, Update_jumlah_lembur.
Tabel 4.14 Use-case Specification untuk ”Mengajukan_Klaim_Tunjangan_Medis” M engajukan_Klaim_Tunjangan_M edis Use Case
Proses ”M engajukan_Klaim_Tunjangan_M edis” dimulai pada saat
114 karyawan yang telah login mengisi Form Pengajuan Klaim dengan memasukkan jumlah yang akan diklaim. Setelah selesai karyawan akan mengirim formulir pengajuan tersebut kepada Personnel_Staff untuk diotorisasi. Apabila data yang dimasukkan karyawan tidak sesuai dengan kriteria yang ada maka akan muncul pesan kesalahan. Jika data telah sesuai maka akan dikirim kepada Personnel_Staff untuk diotorisasi. Objects Functions
Karyawan, Tunjangan_M edis Get_NIK, Get_tanggal_masuk, Generate_tanggal_berlaku_TM, Get_sisa_hak_klaim,0Compute_total_klaim, Get_status_otorisasi,
Get_last_code,
Generate_kode_TM,
Add_new.
Tabel 4.15 Use-case Specification untuk ”Mengotorisasi_Klaim_Tunjangan_Medis” M engotorisasi_Klaim_Tunjangan_M edis Use Case
Proses
“M engotorisasi_Lembur”
HR&GA_Manager
dimulai
atau Managing_Director
pada
saat
membuka Form
Otorisasi Tunjangan M edis yang berisi pengajuan klaim tunjangan yang diajukan oleh karyawan. Setelah memeriksa formulir dan bukti-bukti dokumen yang diserahkan oleh karyawan maka akan HR&GA_Manager
atau
Managing_Director
men-checklist
dokumen yang dilampirkan dan memutuskan menyetujui atau tidak menyetujui pengajuan klaim tersebut. Apabila disetujui maka status pengajuan tersebut akan berubah menjadi approved dan menjadi denied apabila tidak disetujui. Objects
Karyawan, Jabatan, Tunjangan_M edis
Functions
Get_kode_TM , Get_status_otorisasi, Get_nama, Get_kode_jabatan, Get_jabatan, Get_tanggal_mulai_kerja, Get_status_karyawan, Get-
115 _gaji_pokok, Compute_jumlah_klaim_diperbolehkan, Get_sisa_hak_klaim, Compute_jumlah_klaim, Update_status_otorisasi, Update_sisa_hak_klaim.
Tabel 4.16 Use-case Specification untuk ”Mengajukan_Pinjaman” M engajukan_Pinjaman Use Case
Proses “M engajukan_Pinjaman” dimulai pada saat karyawan yang telah login mengisi Form Pengajuan Pinjaman. Kemudian karyawan melengkapi formulir dengan memasukkan jumlah pinjaman, alasan peminjaman dan data lainnya. Setelah selesai karyawan akan mengirim formulir permohonan tersebut kepada Finance_M anager untuk diotorisasi. Apabila data yang dimasukkan karyawan tidak sesuai dengan kriteria yang ada maka akan muncul pesan kesalahan. Jika data telah sesuai maka pengajuan akan dikirim kepada Finance_M anager untuk diotorisasi.
Objects
Karyawan, Pinjaman
Functions
Get_NIK, Compute_besar_cicilan, Get_jumlah_pinjaman, Get_last_code, Generate_kode_pinjaman, Compute_periode_pinjaman_lunas, Compute_jumlah_belum_dibayar, Generate_kode_pinjaman, Add_new.
Tabel 4.17 Use-case Specification untuk ”Mengotorisasi_Pinjaman” M engotorisasi_Pinjaman Use Case
Proses
“M engotorisasi_Pinjaman”
Finance_Manager
atau
dimulai
Managing_Director
pada
saat
membuka
Form
Otorisasi Pinjaman yang berisi pengajuan pinjaman yang diajukan
116 oleh karyawan. Setelah memeriksa formulir yang diajukan maka Finance_Manager atau Managing_Director akan memutuskan menyetujui atau tidak menyetujui pengajuan pinjaman karyawan tersebut. Apabila disetujui maka status otorisasi pada pengajuan tersebut akan berubah menjadi approved dan karyawan akan diberikan uang sebesar pinjaman yang diajukannya. Apabila tidak disetujui maka status otorisasi menjadi denied. Objects
Karyawan, Jabatan, Pinjaman
Functions
Get_kode_pinjaman, Get_status_otorisasi, Get_nama, Get_kode_jabatan, Get_jabatan, Get_tanggal_mulai_kerja, Get_status_karyawan, Get_gaji_pokok, Update_status_otorisasi, Update_jumlah_pinjaman.
Tabel 4.18 Use-case Specification untuk ”Menghitung_Gaji” M enghitung_Gaji Use Case
Proses “M enghitung_Gaji” dimulai pada saat Personnel_staff menekan tombol hitung yang terdapat dalam Form Hitung Gaji. Setelah button hitung ditekan maka sistem akan mulai menghitung jumlah_absensi,
jumlah_telat,
jumlah_sakit,
jumlah_cuti,
jumlah_lembur dan jumlah_lembur khusus dari masing-masing karyawan yang terdapat dalam database Karyawan. Setelah penghitungan selesai maka hasil penghitungan tersebut akan ditampilkan dalam GridView. Kemudian Personnel_staff akan mengisi besarnya tarif untuk UM T, lembur dan lembur khusus. Setelah itu button Save ditekan untuk menghitung seluruh komponen gaji dari masing-masing karyawan. Selesai proses penghitungan gaji tersebut maka seluruh komponen gaji akan disimpan dalam database Histori_Gaji. Objects
Karyawan, Absensi, Permintaan_Cuti, Lembur_Khusus, Hari_Libur,
117 Tunjangan_M edis,
Pinjaman,
Bonus,
Detil_Bonus,
Komisi,
Detil_Komisi, Pajak. Functions
Get_periode, Get_NIK, Get_kode_jabatan, Get_tanggal, Get_last_code_lembur_khusus, Generate_kode_LK, Compute_jumlah_LK, Add_jumlah_LK, Compute_jumlah_absen, Add_jumlah_absen, Get_jam_masuk, Compute_jumlah_telat, Add_jumlah_telat, Get_status_otorisasi_permintaan_cuti, Get_tanggal_mulai_cuti, Get_tanggal_selesai_cuti, Get_tanggal_hari_libur, Compute_jumlah_cuti, Add_jumlah_cuti, Get_jumlah_sakit, Get_jumlah_lembur, Compute_jlh_hari_kerja_efektif, Get_gaji_pokok, Get_jumlah_absen, Get_jumlah_cuti, Compute_gaji_bulanan, Get_jumlah_telat, Compute_UMT, Get_jumlah_lembur, Compute_lembur, Get_jumlah_LK, Compute_lembur_khusus, Cek_kode_jabatan, Get_kode_komisi, Get_status_komisi, Get_status_otorisasi_komisi, Get_jumlah_komisi, Get_kode_bonus, Get_status_otorisasi_bonus, Get_jumlah_bonus, Get_status_pinjaman, Get_status_otorisasi_pinjaman, Get_jumlah_pinjaman, Get_jumlah_cicilan, Compute_pinjaman, Get_status_otorisasi_TM, Get_jumlah_klaim_TM , Compute_klaim, Get_jumlah_tanggungan, Get_jenis_kelamin, Get_status_pernikahan, Generate_status_tanggungan, Get_status_tanggungan, Compute_gaji_kotor, Compute_biaya_jabatan, Compute_PKP, Get_PTKP, Get_NPWP, Compute_pajak,
118 Cek_bulan, Get_agama, Get_tanggal_mulai_kerja, Compute_lama_kerja, Compute_THR, Add_new_histori.
Tabel 4.19 Use-case Specification untuk ”Mengotorisasi_Penghitungan_Gaji” M engotorisasi_Penghitungan_Gaji Use Case
Proses “M engotorisasi_Penghitungan_Gaji” dimulai pada saat HR&GA_Manager membuka Form Otorisasi Penghitungan Gaji. Setelah
memeriksa penghitungan
gaji yang dieksekusi oleh
Personnel_Staff maka HR&GA_Manager akan mengotorisasinya. Apabila terdapat kesalahan dalam penghitungan kesalahan
memasukkan
mengganti
gaji seperti
tarif maka HR&GA_Manager dapat
status_otorisasi
menjadi
“denied”
sehingga
mengharuskan Personnel_staff untuk menghitung ulang gaji dari tiap
karyawan.
Apabila
HR&GA_Manager
menyetujui
penghitungan gaji maka secara otomatis sistem akan meng-update jumlah sakit dan jumlah lembur dari tiap-tiap karyawan. Objects
Karyawan, Permintaan_Lembur, Histori_Gaji
Functions
Get_NIK, Update_status_otorisasi, Update_jumlah_sakit, Get_NIK, Get_tanggal , Update_jumlah_lembur, Get_tanggal_mulai_kerja, Compute_sisa_hak_cuti, Update_sisa_hak_cuti, Compute_sisa_hak_klaim, Update_sisa_hak_klaim, Delete_histori.
Tabel 4.20 Use-case Specification untuk ”Mengubah_Data_Karyawan” M engubah_Data_Karyawan Use Case
Proses
“
M engubah_Data_Karyawan”
dilakukan
oleh
HR&GA_Manager apabila terdapat perubahan data karyawan baik berupa data pribadi, data karir maupun data pajak. Pengubahan data
119 karyawan
didasarkan
adanya
konfirmasi
dari
karyawan
bersangkutan. Untuk pengubahan data gaji maka didasarkan atas adanya surat mutasi, promosi maupun demosi. Objects
Karyawan, Pajak
Functions
Get_NIK,
Generate_status_tanggungan,
Get_status_tanggungan,
Get_PTKP, Update.
Tabel 4.21 Use-case Specification untuk ”Mendata_Bonus” M endata_Bonus Use Case
HR&GA_Manager mendata bonus karyawan (staff) ke dalam sistem setiap bulan berdasarkan laporan tertulis dari manager tiap bagian kemudian
mengirimkan
kepada
Managing_Director
untuk
diotorisasi. Sedangkan Managing_Director akan mendata bonus dari manager tiap bagian dan mengambil keputusan untuk mengotorisasi bonus dari seluruh karyawan dalam perusahaan. Setelah diotorisasi maka bonus akan disimpan dalam database sistem yang kemudian digunakan
untuk
menghitung
gaji
bulanan
masing-masing
karyawan. Objects
Karyawan, Bonus, Detil_Bonus
Functions
Get_NIK, Get_periode, Get_last_code, Generate_kode_bonus, Get_grade, Compute_bonus, Add_new, Get_kode_bonus, Update_grade, Update_bonus, Update_status_otorisasi.
Tabel 4.22 Use-case Specification untuk ”Mendata_Komisi” M endata_Komisi Use Case
HR&GA_Manager mendata komisi karyawan bagian M arketing & Sales ke dalam sistem setiap bulan berdasarkan laporan tertulis dari Store M anager kemudian mengirimkan kepada Managing_Director
120 untuk
diotorisasi. Managing_Director
akan
memeriksa dan
mengotorisasi komisi tersebut. Objects
Karyawan, Komisi, Detil_Komisi
Functions
Get_NIK, Get_kode_jabatan, Get_periode, Get_last_code, Generate_kode_komisi, Compute_komisi, Add_new, Get_kode_komisi, Update_status_otorisasi.
Tabel 4.23 Use-case Specification untuk ”Membuat_Laporan_Absensi_Bulanan” M embuat_Laporan_Absensi_Bulanan Use Case
Setiap akhir bulan, Personnel_staff akan membuat laporan absensi bulanan dengan membuka Form Laporan Absensi yang terdapat dalam sistem. Laporan absensi yang akan dicetak berupa rekap absensi karyawan dari masing-masing cabang maupun pusat. Rekap absensi berisi data jumlah hadir, jumlah telat, jumlah cuti, jumlah sakit, jumlah lembur biasa dan lembur khusus.
Objects
Absensi, Permintaan_Cuti, Hari_Libur, Karyawan, Lembur_Khusus
Functions
Get_cabang, Get_bulan, Get _tahun, Get_NIK, Get_kode_jabatan, Get_tanggal, Get_last_code_lembur_khusus, Generate_kode_LK, Compute_jumlah_LK, Compute_jumlah_absen, Get_jam_masuk,Compute_jumlah_telat, Get_status_otorisasi_permintaan_cuti, Get_tanggal_mulai_cuti, Get_tanggal_selesai_cuti, Get_tanggal_hari_libur, Compute_jumlah_cuti, Get_jumlah_sakit, Get_jumlah_lembur.
121 Tabel 4.24 Use-case Specification untuk “Membuat_Laporan_Gaji” M embuat_Laporan_ Gaji Use Case
HR&GA_Manager membuat laporan gaji dengan menggunakan Form Laporan Gaji yang terdapat dalam sistem. HR&GA dapat memilih periode dan cabang yang akan dicetak laporan gajinya dan kemudian sistem akan mencetak laporan gaji tersebut. Laporan_Gaji dapat dibuat setelah status otorisasi penghitungan gaji dan status bayar dari gaji bulanan karyawan telah diotorisasi. Laporan_Gaji yang dicetak adalah laporan yang berisi komponen gaji detil yang diklasifikasikan berdasarkan tiap-tiap cabang atau pusat.
Objects
Karyawan, Histori_Gaji
Functions
Get_cabang, Get_periode, Get_tahun, Get_NIK, Get_kode_jabatan, Get_bulan, Compute_gaji_bersih, Print.
Tabel 4.25 Use-case Specification untuk “Membuat_S lip_Gaji” M embuat_Slip_Gaji Use Case
HR&GA_Manager membuat slip gaji dengan memilih Form Slip Gaji yang terdapat dalam sistem kemudian sistem akan mencetak slip gaji dari karyawan yang dipilih sesuai dengan periode yang dipilih. Slip_Gaji dapat dibuat setelah status otorisasi penghitungan gaji karyawan telah diotorisasi. Slip_Gaji yang dicetak adalah slip gaji yang berisi komponen detil dari gaji bulanan yang diterima oleh karyawan pada bulan tersebut.
Objects
Karyawan, Histori_Gaji
Functions
Get_NIK, Get_bulan, Get_tahun, Get_bulan, Compute_gaji_bersih, Print.
122 Tabel 4.26 Use-case Specification untuk “Membuat_Laporan_Klaim” M embuat_Laporan_Klaim Use Case
HR&GA_Manager membuat Laporan_Klaim setiap bulan dengan memilih Form Laporan Klaim yang terdapat dalam sistem. Sistem kemudian
akan
mencetak
Laporan_Klaim yang berisi data
pengajuan klaim pada periode yang dipilih dimana status otorisasi nya adalah “approved”. Pada akhir tahun, HR&GA_Manager juga dapat membuat Laporan Insentif Tunjangan yang berisi data karyawan yang tidak pernah mengklaim tunjangan medis guna untuk pemberian bonus tunjangan pada awal tahun. Objects
Tunjangan_M edis, Karyawan
Functions
Get_cabang, Get_bulan, Get_tahun, Get_kodeTM , Get_NIK, Get_tanggal, Get_status_otorisasi, Print, Get_gaji_pokok,Get_sisa_hak_klaim,Compute_insentif_tunjangan.
Tabel 4.27 Use-case Specification untuk “Membuat_Laporan_Pinjaman” M embuat_Laporan_Pinjaman Use Case
Finance_Manager membuat Laporan_Pinjaman setiap bulan dengan menggunakan Form Laporan Pinjaman terdapat dalam sistem. Sistem kemudian akan mencetak Laporan_Pinjaman yang berisi data karyawan yang mengajukan pinjaman pada periode yang dipilih dengan
syarat
pinjaman
tersebut
telah
diotorisasi
oleh
Finance_Manager Objects
Pinjaman, Karyawan
Functions
Get_cabang, Get_bulan, Get_tahun, Get_kode_pinjaman, Get_NIK, Get_tanggal_peminjaman, Get_status_otorisasi, Print.
123 Tabel 4.28 Use-case Specification untuk “Membayar_Gaji” M embayar_Gaji Use Case
Finance_Manager setelah melakukan transfer gaji karyawan dan pembayaran cash gaji karyawan akan mengubah status bayar yang terdapat dalam Histori_Gaji sebagai tanda bahwa gaji karyawan pada bulan bersangkutan telah dibayarkan dan laporan gaji dapat dicetak.
Objects
Karyawan, Pinjaman, Histori_Gaji
Functions
Get_NIK, Get_bulan, Get_tahun, Compute_gaji_bersih, Get_no_rekening, Update_status_bayar, Update_jumlah_pinjaman, Update_status_pinjaman.
Tabel 4.29 Use-case Specification untuk “Membuat_S PT” M embuat_SPT Use Case
Finance_Manager membuat SPT masa dan tahunan dengan memilih periode pada Form SPT. Sistem kemudian akan mencetak laporan yang dipilih .
Objects
Karyawan, Histori_Gaji
Functions
Get_bulan, Get_tahun, Compute_jumlah_NIK, Compute_jmlh_penerima_penghasilan, Compute_jumlah_gaji_kotor, Compute_jumlah_pajak, Get_NIK, Compute_jmlh_kary_NPWP, Compute_jmlh_kary_nonNPWP, Compute_jumlah_pajak_tahunan,Compute_pajak_kurang/lebih_bayar
124 Tabel 4.30 Use-case Specification untuk “Mengubah_Data_Pajak” M engubah_Data_Pajak Use Case
Proses “M engubah_Data_Pajak” dilakukan oleh HR&GA_Manager hanya pada saat terdapat perubahan peraturan perpajakan oleh pemerintah. Form Pengubahan Data Pajak pada saat pertama kali diakses akan menampilkan data pajak yang sedang berlaku. HR&GA dapat mengubah data dan kemudian menekan button Save untuk menyimpan perubahan data.
Objects
Pajak
Functions
Get_PKP_min, Get_PKP_max, Get_status_tanggungan, Update_data_PKP, Update_data_PTKP
4.1.3.2 Function 3.5.2.1
Complete Function List
Tabel 4.31 berikut menyajikan function list dari masing-masing proses yang terdapat dalam usecase diagram. Tabel 4.31 Complete Function List Function
Complexity
Type
Simple
Read,Compute,Update
Generate_date&time
Simple
Compute
Get_NIK
Simple
Read
Get_tanggal
Simple
Read
Cek_jam_sekarang
Simple
Read
Get_last_code
Simple
Read
Generate_kode_absen
Simple
Compute
M elakukan_Absensi
125 Add_new
Simple
Update
Get_jam_keluar_istirahat
Simple
Read
Compute_lama_istirahat
Simple
Compute
Update_jam_masuk_istirahat
Simple
Update
Update_jam_keluar_istirahat
Simple
Update
Update_jam_keluar
Simple
Update
Simple
Read,Compute,Update
Get_jenis_cuti
Simple
Read
Get_NIK
Simple
Read
Generate_masa_berlaku
Simple
Compute
Get_sisa_hak_cuti
Simple
Read
Get_max_pengambilan_cuti
Simple
Read
Get_tanggal
Simple
Read
Compute_jlh_hari_cuti_diambil
Simple
Compute
Get_last_code
Simple
Read
Generate_kode_permintaan
Simple
Compute
Add_new
Simple
Update
Simple
Read,Update
Get_kode_permintaan
Simple
Read
Get_status_otorisasi
Simple
Read
Get_nama
Simple
Read
Get_kode_jabatan
Simple
Read
Get_jabatan
Simple
Read
M engajukan_Cuti
M engotorisasi_Cuti
126 Update_status_otorisasi
Simple
Update
Update_sisa_hak_cuti
Simple
Update
Simple
Read,Update,Compute
Get_NIK
Simple
Read
Cek_tanggal
Simple
Read
Get_tanggal
simple
Read
Get_last_code
Simple
Read
Generate_kode_lembur
Simple
Compute
Add_new
Simple
Update
Simple
Read,Update
Get_NIK
Simple
Read
Get_tanggal
Simple
Read
Get_jam_masuk
Simple
Read
Get_kode_lembur
Simple
Read
Get_status_otorisasi
Simple
Read
Get_nama
Simple
Read
Get_kode_jabatan
Simple
Read
Get_jabatan
Simple
Read
Update_status_otorisasi
Simple
Update
Update_jumlah_lembur
Simple
Update
Simple
Read,Update,Compute
Get_NIK
Simple
Read
Get_tanggal_masuk
Simple
Read
M engajukan_Lembur
M engotorisasi_Lembur
M engajukan_Klaim_Tunjangan_M edis
127 Generate_tanggal_berlaku_TM
Simple
Compute
Get_sisa_hak_klaim
Simple
Read
Compute_total_klaim
Simple
Compute
Get_status_otorisasi
Simple
Read
Get_last_code
Simple
Read
Generate_kode_TM
Simple
Compute
Add_new
Simple
Update
Medium
Read,Update,Compute
Get_kode_TM
Simple
Read
Get_status_otorisasi
Simple
Read
Get_nama
Simple
Read
Get_kode_jabatan
Simple
Read
Get_jabatan
Simple
Read
Get_tanggal_mulai_kerja
Simple
Read
Get_status_karyawan
Simple
Read
Get_gaji_pokok
Simple
Read
Compute_jumlah_klaim_diperbolehkan
Medium
Compute
Get_sisa_hak_klaim
Simple
Read
Compute_jumlah_klaim
Simple
Compute
Update_status_otorisasi
Simple
Update
Update_sisa_hak_klaim
Simple
Update
Simple
Read,Update,Compute
Simple
Read
M engotorisasi_Klaim_Tunjangan_M edis
M engajukan_Pinjaman Get_NIK
128 Compute_besar_cicilan
Simple
Compute
Get_jumlah_pinjaman
Simple
read
Get_last_code
Simple
Read
Generate_kode_pinjaman
Simple
Compute
Compute_periode_pinjaman_lunas
Simple
Compute
Compute_jumlah_belum_dibayar
Simple
Compute
Add_new
Simple
Update
M engotorisasi_Pinjaman
Simple
Read,Update
Get_kode_pinjaman
Simple
Read
Get_status_otorisasi
Simple
Read
Get_nama
Simple
Read
Get_kode_jabatan
Simple
Read
Get_jabatan
Simple
Read
Get_tanggal_mulai_kerja
Simple
Read
Get_status_karyawan
Simple
Read
Get_gaji_pokok
Simple
Read
Update_status_otorisasi
Simple
Update
Update_jumlah_pinjaman
Simple
Update
Complex
Read,Compute,Update
Get_periode
Simple
Read
Get_NIK
Simple
Read
Get_kode_jabatan
Simple
Read
Get_tanggal
Simple
Read
M enghitung_gaji
129 Get_last_code_lembur_khusus
Simple
Read
Generate_kode_LK
Medium
Compute
Compute_jumlah_LK
Complex
Compute
Add_jumlah_LK
Simple
Update
Compute_jumlah_absen
Simple
Compute
Add_jumlah_absen
Simple
Update
Get_jam_masuk
Simple
Read
Compute_jumlah_telat
Simple
Compute
Add_jumlah_telat
Simple
Update
Get_status_otorisasi_permintaan_cuti
Simple
Read
Get_tanggal_mulai_cuti
Simple
Read
Get_tanggal_selesai_cuti
Simple
Read
Get_tanggal_hari_libur
Simple
Read
Compute_jumlah_cuti
Complex
Compute
Add_jumlah_cuti
Simple
Update
Get_jumlah_sakit
Simple
Read
Get_jumlah_lembur
Simple
Read
Compute_jlh_hari_kerja_efektif
Simple
Compute
Get_gaji_pokok
Simple
Read
Get_jumlah_absen
Simple
Read
Get_jumlah_cuti
Simple
Read
Complex
Compute
Simple
Read
Compute_gaji_bulanan Get_jumlah_telat
130 Compute_UMT
Simple
Compute
Get_jumlah_lembur
Simple
Read
Compute_lembur
Simple
Compute
Get_jumlah_LK
Simple
Read
Compute_lembur_khusus
Simple
Compute
Cek_kode_jabatan
Simple
Read
Get_kode_komisi
Simple
Read
Get_status_komisi
Simple
Read
Get_status_otorisasi_komisi
Simple
Read
Get_jumlah_komisi
Simple
Read
Get_kode_bonus
Simple
Read
Get_status_otorisasi_bonus
Simple
Read
Get_jumlah_bonus
Simple
Read
Get_status_pinjaman
Simple
Read
Get_status_otorisasi_pinjaman
Simple
Read
Get_jumlah_pinjaman
Simple
Read
Get_jumlah_cicilan
Simple
Read
Compute_pinjaman
Simple
Compute
Get_status_otorisasi_TM
Simple
Read
Get_jumlah_klaim_TM
Simple
Read
Compute_klaim
Simple
Compute
Get_jumlah_tanggungan
Simple
Read
Get_jenis_kelamin
Simple
Read
131 Get_status_pernikahan
Simple
Read
Generate_status_tanggungan
Medium
Read
Get_status_tanggungan
Simple
Read
Compute_gaji_kotor
Medium
Compute
Compute_biaya_jabatan
Medium
Compute
Compute_PKP
Simple
Compute
Get_PTKP
Simple
Read
Get_NPWP
Simple
Read
Complex
Compute
Cek_bulan
Simple
Read
Get_agama
Simple
Read
Get_tanggal_mulai_kerja
Simple
Read
Compute_lama_kerja
Smple
Compute
Compute_THR
Medium
Compute
Add_new_histori
Simple
Update
Simple
Read,Compute,Update
Get_NIK
Simple
Read
Update_status_otorisasi
Simple
Update
Update_jumlah_sakit
Simple
Update
Get_tanggal
Simple
Read
Update_jumlah_lembur
Simple
Update
Get_tanggal_mulai_kerja
Simple
Read
Compute_sisa_hak_cuti
Simple
Compute
Compute_pajak
M engotorisasi_Penghitungan_Gaji
132 Update_sisa_hak_cuti
Simple
Update
Compute_sisa_hak_klaim
Simple
Compute
Update_sisa_hak_klaim
Simple
Update
Delete_histori
Simple
Update
Medium
Read,Update
Get_NIK
Simple
Read
Generate_status_tanggungan
Medium
Read
Get_status_tanggungan
Simple
Read
Get_PTKP
Simple
Read
Update
Simple
Update
M endata_Bonus
Simple
Read,Update,Compute
Get_NIK
Simple
Read
Get_periode
Simple
Read
Get_last_code
Simple
Read
Generate_kode_bonus
Simple
Compute
Get_grade
Simple
Read
Compute_bonus
Simple
Compute
Add_new
Simple
Update
Get_kode_bonus
Simple
Read
Update_grade
Simple
Update
Update_bonus
Simple
Update
Update_status_otorisasi
Simple
Update
Simple
Read,Compute,Update
M engubah_Data_Karyawan
M endata_Komisi
133 Get_NIK
Simple
Read
Get_kode_jabatan
Simple
Read
Get_periode
Simple
Read
Get_last_code
Simple
Read
Generate_kode_komisi
Simple
Compute
Compute_komisi
Simple
Compute
Add_new
Simple
Update
Get_kode_komisi
Simple
Read
Update_status_otorisasi
Simple
Update
Complex
Read,Compute
Get_cabang
Simple
Read
Get_bulan_laporan
Simple
Read
Get_tahunan
Simple
Read
Get_NIK
Simple
Read
Get_kode_jabatan
Simple
Read
Get_tanggal
Simple
Read
Get_last_code_lembur_khusus
Simple
Read
Generate_kode_LK
Medium
Compute
Compute_jumlah_LK
Complex
Compute
Compute_jumlah_absen
Simple
Compute
Get_jam_masuk
Simple
Read
Compute_jumlah_telat
Simple
Compute
Get_status_otorisasi_permintaan_cuti
Simple
Read
M embuat_Laporan_Absensi_Bulanan
134 Get_tanggal_mulai_cuti
Simple
Read
Get_tanggal_selesai_cuti
Simple
Read
Get_tanggal_hari_libur
Simple
Read
Compute_jumlah_cuti
Complex
Compute
Get_jumlah_sakit
Simple
Read
Get_jumlah_lembur
Simple
Read
M embuat_Laporan_Gaji
Simple
Read,Compute
Get_cabang
Simple
Read
Get_bulan_laporan
Simple
Read
Get_tahun
Simple
Read
Get_NIK
Simple
Read
Get_kode_jabatan
Simple
Read
Get_bulan
Simple
Read
Compute_gaji_bersih
Simple
Compute
Print
Simple
Read
Simple
Read,Compute
Compute_hari_kerja_efektif
Simple
Read
Get_cabang
Simple
Read
Get_bulan_laporan
Simple
Read
Get_tahun
Simple
Read
Get_bulan
Simple
Compute
Compute_gaji_bersih
Simple
Read
M embuat_Slip_Gaji
Print
135 Simple
Read
Get_cabang
Simple
Read
Get_bulan_laporan
Simple
Read
Get_tahun
Simple
Read
Get_kode_pinjaman
Simple
Read
Get_NIK
Simple
Read
Get_tanggal_peminjaman
Simple
Read
Get_status_otorisasi
Simple
Read
Print
Simple
Read
Simple
Read,Compute
Get_cabang
Simple
Read
Get_bulan
Simple
Read
Get_tahun
Simple
Read
Get_kodeTM
Simple
Read
Get_NIK
Simple
Read
Get_tanggal
Simple
Read
Get_status_otorisasi
Simple
Read
Print
Simple
Read
Get_gaji_pokok
Simple
Read
Get_sisa_hak_klaim
Simple
Read
Compute_insentif_tunjangan
Simple
Compute
Simple
Read,Compute,Update
Simple
Read
M embuat_Laporan_Pinjaman
M embuat_Laporan_Tunjangan_M edis
M embayar_Gaji Get_NIK
136 Get_bulan
Simple
Read
Compute_gaji_bersih
Simple
Compute
Get_no_rekening
Simple
Read
Update_status_bayar
Simple
Update
Update_jumlah_pinjaman
Simple
Update
Update_status_pinjaman
Simple
Update
M embuat_SPT
Simple
Read,Compute
Get_bulan
Simple
Read
Get_tahun
Simple
Read
Compute_jumlah_NIK
Simple
Compute
Compute_jmlh_penerima_penghasilan
Simple
Compute
Compute_jumlah_gaji_kotor
Simple
Compute
Compute_jumlah_pajak
Simple
Compute
Get_NIK
Simple
Read
Compute_jmlh_kary_NPWP
Simple
Compute
Compute_jmlh_kary_nonNPWP
Simple
Compute
Compute_jumlah_pajak_tahunan
Simple
Compute
Compute_pajak_kurang/lebih_bayar
Simple
Compute
M engubah_Data_Pajak
Simple
Read, Update
Get_PKP_min
Simple
Read
Get_PKP_max
Simple
Read
Get_status_tanggungan
Simple
Read
Update_data_PKP
Simple
Update
137 Update_data_PTKP
3.5.2.2
Simple
Update
Specification of Functions (complex only)
Dari hasil analisis, terdapat 4 (empat) function yang bersifat complex, antara lain sebagai berikut: 1. Function Compute_jumlah_cuti Digunakan untuk menghitung banyaknya jumlah hari cuti dari masing-masing karyawan dalam 1 (satu) periode penghitungan gaji. 2. Function Compute_jumlah_LK Digunakan untuk menghitung banyaknya jumlah hari dimana karyawan mendapat lembur khusus. 3. Function Compute_gaji_bulanan Digunakan untuk menghitung besarnya gaji bulanan masing-masing karyawan berdasarkan jumlah kehadiran dalam periode penghitungan gaji. 4. Function Compute_pajak Digunakan untuk menghitung besarnya pajak tiap bulan dari masing-masing karyawan. Untuk lebih jelasnya, function yang complex akan dirinci pada operation specification yang terdapat dalam design document. 3.5.2.3
Sequence Diagram
Sequence Diagram dari masing-masing usecase dapat dilihat pada gambar 4.38 sampai dengan gambar 4.61 berikut.
138 sd MelakukanAbsensi
karyawan Window: Absensi
<>
:Karyawan
:Absensi
Perm intaanLembur
generate_dat e&ti me() entry_NIK ent y_password opt
kl ik_absen_m asuk get_NIK() NIK password get_NIK() get _tanggal() kode_absen al t [absen_ m asuk]
cek_jam _sekarang() get _last _code() last_code
generate_kode_absen() add_new() [ absen_ m asuk_ istirahat]
get_jam_keluar_ist irahat () jam _keluar_ist irahat
comput e_l am a_istirahat () updat e_jam_m asuk_ist irahat ()
opt
klik_absen_kel uar get_NIK() NI K password get_NI K() get _t anggal() kode_absen get_jam _keluar_istirahat() jam _keluar_istirahat
cek_jam-sekarang() al t [ jam=sekarang] [absen_ istirahat] [jam <>sekarang] absen_ pulang]
updat e_jam _keluar_istirahat()
get _NI K() get _tanggal() kode_lem bur updat e_jam _selesai_lembur()
opt [jam _keluar<18.30]
update_status_otorisasi()
update_jam_keluar()
klik_close
Gambar 4.38 Sequence Diagram Melakukan Absensi
139 sd MengajukanCuti
karyawan <>
W indow:FormPengajuanCuti <>
:ListT ipeCuti
:Cuti
:Karyawan
:Permi ntaan_Cuti
:Hari_Libur
get_NIK() NIK jenis_kelamin j umlah_anak get_jenis_cuti() jenis_cuti :TblHakCuti
< >
generate_masa_berlaku() get_sisa_hak_cuti() sisa_hak_cuti get_max_pengambilan_cuti() max_pengambilan_cuti pil ih_tipe_cuti get_jenis_cuti() return pilih_tab_cuti masa_berlaku sisa_hak_cuti max_pengambilan_cuti pilih_tanggal_mulai pilih_tanggal _selesai get_tanggal() keterangan
compute_jlh_hari _cuti_diambil() entry_alasan_cuti kl ik_ajukan_cuti get_NIK() get_tanggal() kode_permintaan get_last_code() last_code
generate_kode_permintaan() add_new()
opt [exit]
klik_batal
Gambar 4.39 Sequence Diagram Mengajukan_Cuti
140 sd Mengotorisasi _Cuti
Manager_Bagi an Window: FormOtorisasiCuti
:Permintaan_Cuti
<>
:Karyawan
:Jabatan
:GridPerm intaanCuti *get_kode_permintaan() get_status_otorisasi() result
loop
pil ih_kode_permintaan get_kode_permintaan() result get_nama() nama get_kode_jabatan() get_jabatan() jabatan jabatan
opt
kli k_approved
[Approve]
update_status_otorisasi () opt update_sisa_hak_cuti() [tahunan/besar]
opt
klik_denied update_status_otorisasi ()
[Denied]
opt [exit]
kli k_keluar
Gambar 4.40 Sequence Diagram Mengotorisasi_Cuti
141 sd MengajukanLembur
Window: Form PengajuanLembur karyawan <>
:Permintaan_Lem bur
:Karyawan
get_NIK() NIK pilih_tanggal_lembur entry_alasan_lembur klik_ajukan_lembur
cek_tanggal() get_NIK() get_tanggal() kode_lembur get_NIK() get_tanggal() jam_masuk opt [jam_ masuk <> null]
get_last_code() last_code
generate_kode_lembur() add_new() opt [exit]
klik_batal
Gambar 4.41 Sequence Diagram Mengajukan_Lembur
:Absensi
142 sd Mengotorisasi Lembur
Manager_Bagian create
W indow: FormOtorisasiLembur <>
:Permintaan_ Lembur
:Karyawan
:Jabatan
: GridViewLembur
*get_kode_le mbur() get_ NIK() get_kode_jabatan() get_status_otori sasi() get_tanggal() resu lt
l oop
pilih_kode_lembur get_kode_lembur() result get_na ma() nama get_kode_jabatan() get_jab atan() jabatan jabatan
opt
kl ik_appro ve update_status_otori sasi()
[approved]
update_jumlah_lembur()
opt
kli k_deny
[denied]
opt [exit]
update_status_otori sasi()
klik_keluar
Gambar 4.42 Sequence Diagram Mengotorisasi_Lembur
143
sd MengajukanKlaimTunjanganMedis
karyawan<> Window: FormTunjanganMedis
:Tunjangan_Medis
:Karyawan
get_NIK() NIK get_tanggal_masuk() tanggal_masuk
generate_tanggal_berlaku_TM() get_sisa_hak_klaim() sisa_hak_klaim entry_jumlah_klaim
compute_total_klaim() ajukan_klaim get_NIK() get_status_otorisasi()
opt [kode_TM status_ otorisasi _pending=0]
get_last_code() last_code
generate_kode_TM() add_new()
opt [exit]
klik_batal
Gambar 4.43 Sequence Diagram Mengajukan_Klaim_Tunjangan_Medis
144 sd Mengo torisasi Kl aimTunjang anMedis
HR &GA_Manage r&Mana ging_ Directo r Window: FormOtorisasiTunja ngan Med is <>
:Tu njang anMedis
:Karyawan
:Jabatan
:GridTunjan ganMedis
<>
*ge t_kod e_TM() g et_ status_otoriasi() result loop pil ih_kod e_TM get_kode_ TM() result get_nama() nama get_kode_j abatan() get_jab ata n() jabatan jabatan get_tangga l_mulai _kerja() tan ggal_mu lai_kerj a get_sta tus_ka ryawa n() status_karyawan ge t_g aji_p okok() gaji_pokok
compute_ju mlah_kla im_dip erbolehka n() get_sisa_hak_ kl aim() sisa_ha k_ klaim
compu te_j umlah_ kl aim() checkli st_la mpiran op t
kli k_approve update_statu s_oto ri sasi()
[a pproved]
up date_sisa_ha k_klaim()
opt
klik_d eny
[d enied]
opt
update_statu s_oto ri sasi()
kl ik_kelua r
[exi t]
Gambar 4.44 Sequence Diagram Mengotorisasi_Klaim_Tunjangan_Medis
145 sd MengajukanPinjaman
karyawan <>
Window: FormPinjaman
:Pinjam an NudPinjaman
<> get_NIK() NIK get_NIK() gaji_pokok pilih_jumlah_pinjaman entry_alasan_peminjaman pilih_jumlah_cicilan
com pute_besar_cicilan() klik_pengajuan_pinjaman get_jumlah_pinjaman() jumlah_pinjaman opt [jumlah _pinja man = 0]
get_last_code() last_code
generate_kode_pinjaman()
compute_periode_pinjaman_lunas()
com pute_jumlah_belum_dibayar() add_new() opt
klik_batal
[exit]
Gambar 4.45 Sequence Diagram Mengajukan_Pinjaman
:Karyawan
146 sdMengotorisasiPinjaman
Finance_Manager&Managing_Direc tor <> Window: FormOtorisasiPinjaman <>
:Pinjaman
:Karyawan
:Jabatan
:GridViewPinjaman *get_kode_pinjaman() get_status_otorisasi() result
pilih_kode_pinjaman
loop
get_kode_pinjaman() result get_nama() nama get_kode_jabatan() get_jabatan() jabatan jabatan get_tanggal_m ulai_kerja() tanggal_mulai_kerja get_status_karyawan() status_karyawan get_gaji_pokok() gaji_pokok
opt
klik_approve update_status_otorisasi()
[approved]
update_jumlah_pinjam an()
opt
klik_deny update_status_otorisasi()
[denied]
opt
klik_keluar
[exit]
Gambar 4.46 Sequence Diagram Mengotorisasi_Pinjaman_Karyawan
147 s d M enghitu ngG aji
Personnel_ Staff <> Window:F ormHitungGaji
:Karyawan
:Absens i
:Perm intaan_C uti
:Hari_ Lib ur
:Lembur_Khus us
:Komisi
:Detil _Kom si i
:Bonus
:Detil _Bonus
:Pin aj m an
:Tunja ngan_M edis
G rid ViewAbsens i <>
get_ periode() alt [Hitung Gaji ]
k il k_hitung ol op ref
Hitung_J um al h add_NIK() add_jum al h_abs en() add_jumlah_te lat() add_ju mlah_cuti() add_jum al h_s ak ti () add_jumlah_le mbur() add_jum al h_LK()
entry _UM T entry _lembur entry _le mbur_k husus klik _s av e ol op ref ref ref ref ref
Hitu ngG ajiBulanan,UMT,Lem bur,LemburKhusus GetBonus/Komisi Hit ungPinjaman HitungKla m i Tunjangan Hitu ngBiay aJ abatan,Pajak add_new ()
[Hitung THR]
klik_HitungTH R ol op ref
opt
HitungTHR
k il k _c el ar clear()
klik _k eluar
Gambar 4.47 Sequence Diagram Menghitung_gaji
:Pajak
:His tori_G aji
148
sd_HitungJumlah Window:FormHitungGaji
:Karyawan
:Absensi
:Perm intaan_Cuti
:Hari_Libur
get_NIK() NIK get_kode_jabatan() jabatan get_NIK() get_tanggal() k ode_abs en get_tanggal() tanggal get_NIK() get_tanggal() get_last_code() last_c ode() generate_kode_LK() kode_LK
com pute_jumlah_LK() get_NIK() get_tanggal() kode_absen
com pute_jumlah_abs en() get_jam _masuk() jam_masuk
compute_jumlah_telat() get_NIK() get_status_otorisasi() kode_permintaan get_tanggal_mulai_cuti() tanggal_mulai_cuti() get_tanggal_s elesai_cuti() tanggal_s elesai_cuti get_tanggal() tanggal
com pute_jumlah_cuti() get_jumlah_sakit() jumlah_sakit get_jumlah_lembur() jumlah_lembur
Gambar 4.47a Sequence Diagram HitungJumlah
:Lem bur_Khusus
149 sd HitungGajiBulanan,UMT,Lembur,LemburKhusus
Window:FormHitungGaji
:Karyawan GridViewAbsensi
compute_jlh_hari_kerja_efektif() get_NIK() NIK get_gaji_pokok() gaji_pokok get_jumlah_absen() jumlah_absen get_jumlah_cut i() jumlah_cuti get_jumlah_sakit() jumlah_sakit
comput e_gaji_bulanan() get_jumlah_absen() jumlah_absen get _jumlah_telat() jumlah_telat
compute_UMT() get_jumlah_lembur() jumlah_lembur
compute_lembur() get_jumlah_LK() jumlah_LK
compute_lembur_khusus()
Gambar 4.47b Sequence Diagram HitungGajiBulanan ,UMT, Lembur, LemburKhusus
150 sd GetBonus/Komisi
Window:FormH itungGaji
:Karyawan
:Bonus
:Detil_Bonus
:Komisi
get_kode_jabatan() kode_jabatan
cek_kode_jabatan()
alt
get_kode_komisi()
[NIK=J1602]
kode_komisi get_status_otorisasi() status_otorisasi
opt get_kode_komisi() [status Approved]
komisi get_NIK() NIK gat_jumlah_komisi() jumlah_komisi
[ NIK!=J1602]
get_kode_bonus() kode_bonus get_status_otorisasi() status_otorisasi
opt [status Approved]
get_kode_bonus() kode_bonus get_N IK() NIK get_jum lah_bonus() jumlah_bonus
Gambar 4.47c Sequence Diagram GetBonus/Komisi
:Detil_Komisi
151 sd HitungPinjaman
Window:FormHitungGaji
:Pinjaman
get_NIK() get_status_pinjaman() get_status_otorisasi() kode_pinjaman get_jumlah_pinjaman() jumlah_pinjaman get_jumlah_cicilan() jumlah_cicilan
compute_pinjaman()
Gambar 4.47d Sequence Diagram HitungPinjaman sd HitungKlaimTunjangan
Window:FormHitungGaji
:Tunjangan_Medis
get_NIK() get_status_otorisasi() kode_TM get_jumlah_klaim_TM() jumlah_klaim_TM
compute_klaim()
Gambar 4.47e Sequence Diagram HitungKlaimTunjangan
152 sd HitungPajak
Window:FormHitungG aji
:Karyawan
Message331() NIK get_jumlah_t anggungan() jumlah_t anggungan get_jenis_kelamin() jenis_kelamin get_status_pernikahan() status_pernikahan
generate_stat us_tanggungan() get_status_t anggungan() PTKP
compute_gaji_kotor()
compute_biaya_jabat an()
compute_PKP() get_PKP() persent ase get _NPWP() NPWP
compute_pajak()
Gambar 4.47f Sequence Diagram HitungPajak
:Pajak
153 sd HitungTHR
Window:FormHitungGaji
:Karyawan
:Hari_Libur
:Histori_Gaji
get_tanggal() tanggal
cek_bulan() get_NIK() get_kode_jabatan() get_agama() NIK get_tanggal_mulai_kerja() tanggal_mulai_kerja
compute_lama_kerja() get_gaji_pokok() gaji_pokok
compute_THR() add_new()
Gambar 4.47g Sequence Diagram HitungTHR
154 sd MengotorisasiPengjitunganGaji
HR&GA _Manager <> Window:For mOtorisasiGaji <>
:HistoriGaji
:Karyawan
:P emintaan_Lembur
:GridViewGaji get_NIK () result
alt [Approve]
klik_approve update_status _otoris asi() *update_jumlah_s akit() *get_NIK () get_tanggal() kode_lembur *update_jumlah_lembur() *get_tanggal_mulai_k erja() tanggal_mulai_kerja
*compute_sis a_hak_c uti() *update_sisa_hak_cuti()
*compute_s isa_hak_klaim() *update_sisa_hak_klaim() [Deny]
klik_deny delete_histor i()
klik_k eluar
Gambar 4.48 Sequence Diagram Mengotorisasi_Penghitungan_Gaji
155 sdMengubahDataKaryawan
HR&GA_Manager <>
Window: FormPengubahanDataKary awan <>
:Karyawan :ListKaryawan get_NIK() NIK
loop pilih_NIK get_NIK() result klik_ubah_data_karyawan e dit_data_p rib adi edit_data_karir edit_ data_paja k klik_save
opt generate_status_ tanggungan() [data_pajakedited]
get_status-tanggu ngan() get_PTKP() PTKP
update()
klik_close
Gambar 4.49 Sequence Diagram Mengubah_Data_Karyawan
:Pajak
156 sd MendataBonus
HR&GA_Manager create
Window:FormBonus
:Karyawan
:Bonus
:Detil_Bonus
:GridViewB onus
<>
:Lis tGrade
<>
*get_NIK() NIK cabang
get_periode() get_last_code() las t_code
generate_kode_bonus () loop
pilih_NIK pilih_grade *get_grade() res ult
klik_save loop get_NIK() grade
compute_bonus() add_new() add_new()
klik_keluar
Gambar 4.50 Sequence Diagram Mendata_Bonus (actor HR&GA_Manager)
157 sd MendataBonus
Managing_Director <>
Window:FormBonus
:Bonus
<>
:Detil_Bonus
:GridViewBonus <>
:ListGrade
*get_kode_bonus() get_per iode() result get_kode_bonus( ) *get_NIK( ) NIK kode_bonus NIK *get_grade() grade get_gr ade() grade loop
pilih_NIK edit_grade update_grade() update_grade()
klik_approve loop
get_NIK() gr ade
compute_bonus( ) update_bonus( ) update_bonus() update_status_otorisasi()
klik_keluar
Gambar 4.51 Sequence Diagram Mendata_Bonus (actor Managing_Director)
158 sd MendataKomisi
HR&GA_Manager create
Window:FormKomisi
:Karyawan
create
:Komisi
:Detil_Komisi
:GridViewKomisi *g et_NIK() get_kode_jabatan() NIK cabang get_periode() get_last_code() last_code
generate_kode_komisi() pilih_NIK entry_unit entry_profit klik_save get_NIK() unit profit
compute_komisi() add_new() add_new()
klik_keluar
Gambar 4.52 Sequence Diagram Mendata_Komisi (actor HR&GA_Manager)
159 sd MendataKomisi
Managing_Director <>
Window: FormKomisi
:Komisi
<>
:Det il_Komisi
: GridViewKomisi *get_kode_komisi() get_periode() result
get_kode_komisi() result klik_approve update_stat us_otorisasi() klik_keluar
Gambar 4.53 Sequence Diagram Mendata_Komisi (actor Managing_Director)
160 sd Membuat LaporanAbsensi
Personnel_St af f <>
Window: LaporanA bsensi
:Karyawan
:Absensi
:P ermintaan_Cuti
:Hari_Li bur
:Lem bur_Khusus
:List Bulan
<>
:ListCabang
<>
<>
: ListTahun
*get _cabang() cabang loop
pilih_cabang get_cabang() result pilih_bulan get _bulan() result pilih_tahun get_tahun() result kl ik_print *get_NI K() get_kode_jabatan() NIK com pute_jum lah() ref Hi tungJumlah <>
:Laporan_Absensi
klik_print print() close() klik_keluar
Gambar 4.54 Sequence Diagram Membuat_Laporan_Absensi_Bulanan
161 sd MembuatLaporanGaji
HR&GA_Manager <>
Window:LaporanGaji
:K aryawan
<>
:His tori_Gaji
:ListBulan :ListCabang
<> :ListTahun
<> *get_cabang() cabang
loop pilih_c abang get_cabang() result pilih_bulan get_bulan() result pilih_tanggal get_tahun() return klik_print *get_NIK( ) get_kode_jabatan() NIK get_NIK() get_bulan() result
com pute_gaji_bersih() <>
:LaporanGaji
klik_ok print() clos e() klik_keluar
Gambar 4.55 Sequence Diagram Membuat_Laporan_Gaji
162 sd Me mb uatSlipGaji
HR &GA_Manag er <>
Wi ndow:SlipGaji
:Karyawan
:H isto ri _Ga ji
:L istBul an
<>
:Li stCa bang
<>
:ListTah un
<>
*ge t_ca bang() cabang compu te_ hari_kerja _efekti f() loo p
p ilih _bula n get_bula n() bula n pili h_tahun g et_ tah un() tahun pili h_caba ng get_caba ng() cab ang klik_cetak Laporan :Sl ipGaji
<> *g et_NIK() result loo p
pili h_NIK *ge t_ NIK() get_bul an resul t
compute_g aji_b ersi() klik_pri nt p rint() close()
klik_kel uar
Gambar 4.56 Sequence Diagram Membuat_S lip_Gaji
163 sdMembuatLaporanPinj aman
Fi nance_Manager <>
Window:LaporanPinjaman
:Karyawan
:Pinjaman
:ListPeriode <> :ListCabang <> <>
:Tahun
*get_cabang() cabang l oop
pi lih_cabang get_cabang() result pi lih_bul an get_bul an() resul t pi lih_tahun get_tahun() result get_tanggal_peminjaman() get_kode_pinj aman()
get_status_otorisasi () result klik_cetakLaporan <>
:LaporanPinj aman
klik_ok print() close()
kli k_kluar
Gambar 4.57 Sequence Diagram Membuat_Laporan_Pinjaman
164 sdMembuatLaporanKlaim
HR&GA_Manager <>
W indow:LaporanKlaim
: Karyawan
:T unjangan_Medis
: List Bulan
<>
:ListCabang
<>
:Tahun
<> *get_cabang() cabang loop
pili h_cabang get _cabang() result pili h_bulan get _bulan() result pilih_tahun get _tahun() result opt
klik_cetak Laporan get _kode_T M() get_NIK() get _tanggal() get_status_ot orisasi() result <>
:LaporanKlaim
klik_print print() close()
opt
kl ik_cet ak Laporan Insent if get_NI K() get _gaji_pokok() get_sisa_hak_klaim () NIK sisa_hak_klaim <>
:LaporanInsent ifTunjangan
compute_insentif _tunjangan() klik_print pri nt () close()
klik_kluar
Gambar 4.58 Sequence Diagram Membuat_Laporan_Tunjangan_Medis
165 sdMembayarGa ji
Finance_Manager <>
W indow:FormOtorisasiGaji << create>>
:Histori _Gaji
:Karyawan
:Pi njama n
:GridViewGaji get_NIK() get_bulan() result
compute _gaji_bersih() get_NIK() get_no_rekeni ng() no_rekening pilih_NIK
klik_save update_status_bayar() update_status_bayar() * update_j umlah _pinjaman() opt update_status_pi njaman() [jumlah_pinja man= 0] klik_ke luar
Gambar 4.59 Sequence Diagram Membayar_Gaji
166 s d MembuatSPT
Finance_Manager <>
W indow:SPT
: Karyawan
<>
<> loop
:Hist or i_Gaji
: ListB ulan :ListTahun
pilih_bulan *get _bulan() r esult pilih_tahun *get_tahun() res ult
opt
k lik_c etak SPM21 : SPM21
<>
*get_NIK( ) N IK
compute_jmlh_penerima_pe nghasilan( ) *get_NIK () get_bulan( ) result
c ompute_gaji_kot or ()
compute_jumlah_pajak() klik_print print() close( )
opt
klik_cetak 1721 : SPT
<> *get_NIK( ) res ult
comput e_jm lh_pener ima_pe nghasilan() *get_NIK( ) get _bulan( ) r esult
compute_gaji_k otor( )
c ompute_jumlah_pajak( )
comput e_jumlah_ k ary awan_NPW P() c ompute_jmlh_ k ary_non NPW P() compute_pajak_ t ahunan( ) comput e_pajak_ kurang/ lebih_bayar () klik_pr int pri nt( ) clos e( )
klik_k eluar
Gambar 4.60 Sequence Diagram Membuat_S PT
167
HR&GA_Manager <>
:Window:F ormPengubahanDataPaja k <>
:Pajak :GridViewPKP :GridViewPTKP <> *get_PKP_min() *get_PKP_max() PKP_min PKP_max persentase *get_status_tanggungan() status_tanggungan PTKP
klik_edit edit_data_pajak klik_save update_data_PKP() update_data_PKP() update_data_PTKP() update_data_PTKP()
klik_cancel
opt
refresh() klik_keluar
Gambar 4.61 Sequence Diagram Mengubah_Data_Pajak 4.1.3.3 User Interface 3.5.3.1
Dialogue Style
Sistem akan dirancang dengan menggunakan menu selection sebagai jenis navigasi dialog dan formulir untuk kebutuhan data entry. Adapun alasan pemilihannya adalah jenis dialog ini lebih mudah digunakan oleh user dibandingkan
168 command language ataupun direct manipulation yang memerlukan pelatihan yang lebih untuk user. Setiap user yang telah login akan memiliki tampilan window sesuai dengan hak aksesnya masing-masing. Sistem yang dirancang juga memiliki fasilitas untuk mencetak laporan yang dibutuhkan berkaitan dengan kegiatan penggajian. Tabel 4.32 berikut menggambarkan overview dari window user interface dan printout atau laporan yang dihasilkan sistem. Tabel 4.32 User-interface Windows and Printout Windows
Printouts
Menu Form Pengajuan Cuti
-
Form Pengajuan Lembur
-
Form Pengajuan Tunjangan M edis
-
Form Pengajuan Pinjaman
-
Form Otorisasi Cuti
-
Form Otorisasi Lembur
-
Form Otorisasi Tunjangan M edis
-
Form Otorisasi Pinjaman
-
Form Pengubahan Data Karyawan
-
Form Pengubahan Data Pajak
-
Form Data Bonus
-
Form Data Komisi
-
Form Otorisasi Bonus
-
169 Form Otorisasi Komisi
-
Form Hitung Gaji
-
Form Otorisasi Hitung Gaji
-
Form Slip Gaji
Slip Gaji
Form Laporan
Laporan Absensi, Laporan Pinjaman, Laporan Klaim, Laporan Gaji Bulanan, SPT masa dan SPT tahunan.
3.5.3.2
Overview
Gambar 4.62 adalah gambar navigation diagram dari user interface sistem yang diusulkan.
. FormP engubahanDat aKaryawan
FormAbsen
FormOtorisasiBonus
close
men uPe ndataanKomisi
menuUbah Data menuAbsensi logou t/exit
FormOtorisasiLembur
FormOt orisasiGaji
menuO to ri sasiPengahitungan /Pembayaran cl ose close
close
buttonKel uar
FormKomisi
me nuStatusDataDiri
menuO to ri sasi Bonus menuO to ri sasiLembur menu OtorisasiCut
FormLogin
buttonKelua r menuLo gin
FormOtorisasiCuti FormPengajuanCuti
FormDataDiri
close
FormOtorisasiKomisi
MDIS istemPenggajianPTEkaJayaPerkasa me nuOtorisasiKomisi menuStatusCuti
FormStatusCuti
menuPen gajuanCu ti close menuSta tusLembur
FormStatusLembur
button Kel uar cl ose Lo gin/exi t buttonKelu ar close
clo se
FormP engajuanLembur
buttonKelua r menuStatusPinj aman
menuPengajua nLembur
close
FormOtorisasiPinjaman
FormPengajuanPinjaman menu OtorisasiPinjaman close
FormBonus
menuPengaj uan T unjan gan Medis
menuStatus bu tton T unjang anMe dis Keluar
menu UbahPajak close
butto nKe luar menu Pen data anBonus
FormStatusPinjaman
menuPen gajuanPin jaman
buttonKeluar
menuOtorisasi T unjan ganMedis
clo se
FormPengubahanDatapajak
menuHi tun gGaji /T HR
Laporan
FormHitungGaji FormOtorisasiTunjanganMedis
bu ttonPrint
PrintP riview FormP engajuanTunjanganMedis
FormS tatusTunjanganMedis
me nuLaporan
Gambar 4.62 Navigation Diagram dari total user interface sistem yang diusulkan
171 3.5.3.3
Examples
Gambar 4.63 sampai gambar 4.88 merupakan gambar user interface dari sistem yang diusulkan.
Gambar 4.63 Form Main Menu
Gambar 4.64 Form Absen
172
Gambar 4.65 Form Login
Gambar 4.66 Form Data Diri
173
Gambar 4.67 Form S tatus Cuti
Gambar 4.68 Form S tatus Lembur
Gambar 4.69 Form S tatus Pinjaman
174
Gambar 4.70 Form S tatus Tunjangan Medis
Gambar 4.71 Form Pengajuan Cuti
175
Gambar 4.72 Form Pengajuan Lembur
Gambar 4.73 Form Pengajuan Pinjaman
Gambar 4.74 Form Pengajuan Tunjangan Medis
176
Gambar 4.75 Form Otorisasi Cuti
Gambar 4.76 Form Otorisasi Lembur
177
Gambar 4.77 Form Otorisasi Pinjaman
Gambar 4.78 Form Otorisasi Tunjangan Medis
178
Gambar 4.79 Form Otorisasi Bonus
Gambar 4.80 Form Otorisasi Komisi
179
Gambar 4.81 Form Pengubahan Data Karyawan
Gambar 4.82 Form Pengubahan Data Pajak
180
Gambar 4.83 Form Otorisasi Gaji (HR&GA_Manager)
Gambar 4.84 Form Otorisasi Gaji (Finance_Manager)
181
Gambar 4.85 Form Pendataan Bonus
Gambar 4.86 Form Pendataan Komisi
182
Gambar 4.87 Form Hitung Gaji
Gambar 4.88 Form Laporan
183 4.1.3.4 The Technical Platform Sistem ini akan dikembangkan dengan menggunakan personal computer. Sistem akan dikembangkan dengan menggunakan Visual Studio 2005 bahasa pemrograman VB.NET dan terhubung dengan database yang menggunakan SQL Server 2005. Sistem juga menggunakan Crystal Report built-in dari Visual Studio 2005 untuk membuat laporan yang diperlukan. Antarmuka pengguna dibuat dengan berbasiskan window. Program aplikasi sistem merupakan desktop application dan dioperasikan dengan hardware standard yaitu keyboard dan mouse. 4.1.4 Recommendations 4.1.4.1 The System’s Usefulness and Feasibility Sistem yang dirancang berfungsi untuk mendukung aktivitas penggajian dalam perusahaan dan meminimalisasi kemungkinan terjadinya masalah. Sistem ini dirancang dengan memperhatikan kebutuhan dari perusahaan untuk mencapai tujuan perusahaan. Sistem ini mendukung aktivitas absensi yang terintegrasi dengan penggajian sehingga diharapkan dapat mengatasi kesalahan-kesalahan yang mungkin terjadi dan mempercepat serta mempermudah aktivitas penggajian dalam perusahaan. 4.1.4.2 Strategy Rancangan sistem yang baru akan dipresentasikann kepada perusahaan sebelum diimplementasikan. Dengan hal ini maka diharapkan perusahaan dapat lebih memahami kegunaan sistem dan dapat menerapkannya dalam aktivitas penggajian perusahaan. Sistem akan diimplementasikan dengan menggunakan strategi implementasi secara parallel. Sistem yang baru diimplementasikan berjalan seiring dengan sistem yang lama dan sampai akhirnya sistem yang lama akan tergantikan dengan sistem
184 yang baru. Hal ini dimaksudkan agar karyawan perusahaan dapat mempelajari sistem sehingga dapat menyesuaikan diri dengan sistem baru. 4.1.4.3 Developement Economy Sumber daya manusia digunakan untuk merancang dan mengembangkan sistem sebanyak 1 (satu) orang yang merangkap sebagai sistem analis dan programmer. Sedangkan perkiraan waktu yang dibutuhkan untuk mengembangkan sistem memerlukan waktu sekitar 6 (enam) bulan dimulai dari bulan A gustus dan diharapkan dapat selesai selambat-lambatnya bulan Januari tahun berikutnya.
4.2 Design Document 4.2.1 The Task 4.2.1.1 Purpose Sistem penggajian yang dikembangkan berfungsi mendukung seluruh aktivitas yang berhubungan dengan penggajian mulai dari aktivitas absensi harian karyawan, penghitungan gaji bulanan sampai dengan pembuatan laporan sehubungan dengan aktivitas penggajian dalam perusahaan. 4.2.1.2 Corrections to the Analysis Hasil analisis sistem yang telah dilakukan pada tahap awal memiliki beberapa perubahan. Perubahan atas analisis sistem berupa: 1. Class Karyawan setelah dilakukan revised hanya mempunyai 1 (satu) behaviour. yaitu merekrut. 2. Behaviour untuk class Karyawan_Penjualan setelah revised mengikuti class Karyawan.
185 3. Class Cuti setelah dilakukan revised tidak mempunyai behaviour sehingga ditambahkan behaviour dasar dari class Cuti yaitu mendata_cuti. 4. Class Hari_Libur setelah dilakukan revised juga tidak mempunyai behaviour sehingga ditambahkan behaviour
dasar
dari class
Hari_Libur
yaitu
mendata_hari_libur. 5. Class Pinjaman setelah dilakukan revised hanya mempunyai behaviour mengajukan_pinjaman dan menyetujui_pinjaman. 6. Class Jabatan setelah dilakukan revised tidak mempunyai behaviour sehingga ditambahkan behaviour dasar dari class Jabatan yaitu mendata_jabatan. 7. Penambahan
atribut
NIK
pada
class
Absensi,
Permintaan_Cuti,
Permintaan_Lembur, Pinjaman, Tunjangan_M edis, Detil_Bonus, Detil_Komisi, Lembur_khusus tidak dilakukan karena pada awal sebelum revised atribut NIK telah ada pada class-class tersebut. 4.2.1.3 Quality Goals Tabel 4.33 berikut menunjukkan prioritas kriteria atas perancangan sistem yang akan dikembangkan. Tabel 4.33 Priority Design Criteria Criteria
Very
Important
Important Usable
Important
X
Secure
X
Efficient
X
Correct
X
Less
Irrelevant
Easily Fullfiled
186 Reliable
X
Maintainable
X
Testable
X
Flexible
X
Comprehensible
X
Reusable
X
Portable
X
Interoperable
X
4.2.2 Technical Platform 4.2.2.1 Equipment Sistem yang dikembangkan akan dijalankan pada komputer dengan spesifikasi umum untuk komputer client dan server seperti terlihat pada tabel 4.34 berikut: Tabel 4.34 Tabel S pesifikasi Specification
Client
Server
Pentium4 2,8GHz
Pentium4 3,06 GHz
√
√
Memory
256MB
1GB
Hard Disk Drive
80GB
120GB
Floppy Disk (optional)
√
√
CD-ROM
√
√
Monitor
CRT / LCD
CRT / LCD
√
√
100Mbps
100Mbps
√
√
Processor Mother Board
Keyboard and Mouse NIC Graphic Card
187 Printer Operating System
√
-
Windows XP
Windows 2000 server
4.2.2.2 System Software Sistem akan dikembangkan dengan menggunakan Visual Studio 2005 bahasa pemrograman VB.NET dan terhubung dengan database yang menggunakan SQL Server 2005. Sistem juga menggunakan Crystal Report built-in dari Visual Studio 2005 untuk membuat laporan yang diperlukan. Operation System pada komputer client menggunakan Microsoft XP Professional. 4.2.2.3 System Interfaces Sistem yang dikembangkan memerlukan printer untuk mencetak formulirformulir serta laporan-laporan. Jaringan yang digunakan untuk menghubungkan antara client dan server adalah dengan menggunakan Local Area Network. 4.2.2.4 Design Language Bahasa perancangan yang digunakan dalam dokumentasi pengembangan sistem adalah berdasarkan notasi Unified Modelling Language (UML) yang menggunakan Microsoft Office Visio 2000. 4.2.3 Architectu re 4.2.3.1 Component Arhitectu re Pengembangan sistem dilakukan dengan menggunakan component architeture tipe client-server dengan pola centralized data dimana client mempunyai user interface dan
function, sedangkan server hanya mempunyai model. Sistem ini
digunakan pada 1 (satu) server dan 6 (enam) client antara lain: karyawan,
188 M anager_Bagian, HR&GA_M anager, M anaging_Director, Personnel_Staff dan Finance_M anager. Gambar 4.89 berikut menggambarkan client-server architecture dengan pola centralized data. client_ Managing_Director
client_karyawa n
U_karyawan
F_karyawan
U_Managing_Director
client_ HR&GA_Manager
F_Managing_Director U_HR&GA_Manager
ser ver
F_HR&GA_M anager
M_server
cli ent_ Manager_Bagian
client_ Personnel_Staff
U_Manager_Bagian
F_Manager_Bagian
client_ Finane_Manager
U_Personnel_Staff
F_Finance_Manager F_Personnel_Staff
U_Finance_Manager
Gambar 4.89 Component Diagram Centralized Data
189 4.2.3.2 Process Arhitecture Deployment diagram menggunakan pola centralized pattern, dimana pada client terdapat user interface dan function sedangkan pada server hanya terdapat model. Pada client HR&GA_M anager, Personnel_Staff dan Finance_M anager mempunyai printer yang digunakan untuk mencetak laporan. Deployment diagram digambarkan pada gambar 4.90 berikut.
190
client_kar yawan client_HR&GA_Manager U_karyawan
U_HR&GA_Manager
F_kar yawan
F_HR&GA_Manager
ActiveOBj ect
S I_HR&GA_M anager
SI_karyawan
PRinter
server
client_Personnel_S taff
client_Manager_Bagian SI_server U_Manager_Bagian
SI_Per sonnel_Staff
M _server F_Per sonnel_Staff F_Manager_Bagian
ac tiveObject U_Personnel_Staff SI_M anager _Bagian
pRinter client_Managing_Director client_Finance_Manager SI_Managing_Director
F_Managing_Dirrector
U_Managing_Dir ector
S I_Finance_M anager
F_Finance_Manager
Acti veObject
U_Finance_M anager
ACtiveObj ect
Pr inter
Gambar 4.90 Deployment Diagram Centralized Data
Pr inteR
191 4.2.3.3 Standards Perancangan window dan pesan kesalahan sistem yang dikembangkan menggunakan standard window. Tabel 4.35 menggambarkan beberapa standard button yang digunakan dalam sistem yang diusulkan. Tabel 4.35 Standard Button Button
Description M encatat waktu hadir dan waktu istirahat masuk. M encatat waktu keluar istirahat dan waktu pulang kerja. M endapatkan hak akses untuk menggunakan sistem sesuai dengan jabatan masing-masing karyawan. M engajukan cuti baik cuti besar, cuti tahunan maupun cuti khusus. M engajukan lembur M engajukan pinjaman M engajukan klaim tunjangan pengobatan dan kesehatan. M enyetujui pengajuan baik cuti, lembur, pinjaman maupun klaim atas tunjangan, menyetujui penghitungan gaji dan pembayaran gaji. M enolak pengajuan baik cuti, lembur, pinjaman maupun klaim atas tunjangan dan tidak menyetujui penghitungan gaji. M enghitung jumlah hari hadir, terlambat, cuti, sakit, lembur dan lembur khusus.
192 M enghitung jumlah tunjangan hari raya. M enyimpan data. M enghapus data dalam grid. M encetak slip gaji dan laporan. M enutup form.
Sedangkan gambar 4.91 menggambarkan beberapa standard message yang digunakan dalam sistem yang diusulkan.
Gambar 4.91 Standard Message
193 4.2.4 Components 4.2.4.1 Model Component Model
component
mengimplementasikan
kebutuhan
model
dan
menggambarkan hasil revisi atau perbaikan dari class diagram yang telah dibuat pada tahap analisis awal. 4.2.4.1.1 Structure Gambar 4.92 menggambarkan class diagram hasil revised dari class diagram yang dibuat pada analisis awal.
195 4.2.4.1.2 Classes Berikut adalah spesifikasi dari class yang terdiri dari atribut dan behaviour. Karyawan Purpose : M enyimpan data karyawan yang bekerja dalam perusahaan dan digunakan untuk menghitung gaji bulanan. Atribut :
NIK,
nama,
alamat,
agama,
jenis_kelamin,
tempat_lahir,
tanggal_lahir, email, no_telp, no_rekening, NPWP, single/married, jumlah_anak,
jumlah_tanggunan,
tanggal_mulai_kerja,
status_karyawan, kode_jabatan, cabang, gaji_pokok, sisa_hak_cuti, sisa_cuti_besar,
jumlah_lembur,
sisa_hak_klaim,
jumlah_sakit,
jumlah_pinjaman dan password. Behaviour : merekrut. Jabatan Purpose : M enyimpan jenis-jenis jabatan yang ada dalam perusahaan. Atribut : kode_jabatan, jabatan. Behaviour: mendata_jabatan Absensi Purpose : M enyimpan data absensi harian dari setiap karyawan. Atribut :
kode_absen,
NIK,
tanggal,
jam_masuk,
jam_klr_istirahat,
jam_msk_istirahat, jam_keluar, keterangan. Behaviour:mencatat_waktu_kerja, menghitung_gaji, mendapat_lembur_khusus. Cuti Purpose : M enyimpan jenis-jenis cuti yang berlaku dalam perusahaan. Atribut : kode_cuti, jenis_cuti, jumlah_hari_cuti, max_pengambilan.
196 Behaviour: mendata_cuti. Permintaan_Cuti Purpose: M enyimpan pengajuan cuti baik cuti tahunan, cuti besar maupun cuti khusus yang diajukan oleh karyawan. Atribut :
kode_permintaan,
NIK,
kode_cuti,
tanggal_mulai_cuti,
tanggal_selesai_cuti, alasan_cuti, status_otorisasi. Behaviour: meminta_cuti, menyetujui_cuti, menghitung_gaji Permintaan_Lembur Purpose : M enyimpan pengajuan lembur yang diajukan oleh karyawan. Atribut : kode_lembur, NIK, tanggal, alasan_lembur, jam_selesai_lembur, status_otorisasi. Behaviour: mengajukan_lembur, menyetujui_lembur, menghitung_gaji. Pinjaman Purpose : M enyimpan pengajuan pinjaman yang diajukan oleh karyawan. Atribut : kode_pinjaman, NIK, tanggal_peminjaman, jumlah_pinjaman, alasan, jumlah_cicilan, periode_pinjaman_lunas, status_pinjaman, jumlah_belum_dibayar, status_otorisasi. Behaviour: mengajukan_pinjaman, menyetujui_pinjaman. Tunjangan_Medis Purpose : M enyimpan pengajuan klaim tunjangan yang diajukan oleh karyawan. Atribut : kode_TM , NIK, jumlah_klaim_TM , tanggal, status_otorisasi. Behaviour: mengklaim_tunjangan, menyetujui_klaim, menghitung_gaji.
197 Hari_Libur Purpose : M enyimpan data hari libur nasional. Atribut : Tanggal, Hari, Keterangan. Behaviour: mendata_hari_libur. Lembur_Khusus Purpose : M enyimpan lembur khusus yang diperoleh karyawan cabang. Atribut : kode_LK, NIK, kode_absensi, tanggal. Behaviour: mendapat_lembur_khusus, menghitung_gaji. Bonus Purpose : M enyimpan bonus bulanan yang didapat oleh masing-masing karyawan. Atribut : kode_bonus, periode, status_otorisasi. Behaviour: mendapat_bonus, menghitung_gaji. Detil_Bonus Purpose : M enyimpan data karyawan yang mendapat bonus pada bulan tertentu. Atribut : kode_bonus, NIK, grade, jumlah_bonus. Behaviour: mendapat_bonus, menghitung_gaji. Komisi Purpose : M enyimpan komisi per bulan yang didapat oleh karyawan bagian Marketing & Sales. Atribut : kode_komisi, periode, status_otorisasi. Behaviour: mendapat_komisi, menghitung_gaji.
198 Detil_Komisi Purpose : M enyimpan data karyawan yang mendapat komisi pada bulan tertentu. Atribut : kode_komisi, NIK, unit, profit, jumlah_komisi. Behaviour: mendapat_komisi, menghitung_gaji. Histori_Gaji Purpose : M enyimpan hasil perhitungan gaji dari tiap karyawan. Atribut : NIK,
bulan,
uang_lembur,
gaji_bulanan,
UM T,
uang_lembur_khusus,
tunjangan_medis, bonus/komisi,
THR,
pinjaman,
biaya_jabatan, pajak, status_otorisasi, status_bayar. Behaviour: membuat_histori. 4.2.4.2 Function Component Gambar 4.93 berikut adalah gambar Function Component yang terdiri dari beberapa function complex dan function yang terdapat client/server pada component diagram.
194
Permintaan_Cuti -kode_permintaan : String -NIK : String -kode_cuti : String -tanggal_mulai_cuti : Date -tanggal_selesai_cuti : Date -alas an_cuti : String -status_otorisasi : String +mem inta_cuti() +menyetujui_cuti( ) +menghitung_gaji()
-kode_bonus : S tring -NIK : String -grade : String -jumlah_bonus : Long +m endapat_bonus() +m enghitung_gaji() *
Karyawan
1
*
1 1
Cuti -kode_cuti : String -jenis_c uti : String -jumlah_hari_c uti : String -m ax_pengambilan : Str ing +mendata_cuti()
1
1
P injaman -kode_pinjaman : String -NIK : String -tanggal_pem injaman : Date -jumlah_pinjaman : Long -alasan : S tring -jumlah_cicilan : Integer -periode_pinjaman_lunas : String -status_pinjaman : Boolean -jumlah_belum_dibayar : Double -status_otorisas i : String +mengajukan_pinjam an( ) +menyetujui_pinjaman()
-NIK : String -nama : String -alamat : String -agama : String -jenis_kelam in : Boolean -tempat_lahir : String -tanggal_lahir : Date -em ail : String -no_telp : Long -no_rekening : long -NP WP : String -single/married : Boolean -jumlah anak : Integer -jumlah_tanggungan : Integer -tanggal_mulai_kerja : Date -status _karyawan : String -kode_jabatan : String -cabang : String -gaji_pokok : Double -sisa_hak_cuti : Integer -sisa_c uti_besar : Integer -jumlah_lem bur : Integer -sisa_hak_klaim : Integer -jumlah_pinjaman : Double -jumlah_sakit -password : S tring +merekrut()
*
1
Absensi -kode_absen : Integer -NIK : String -tanggal : Date -jam_masuk : String -jam_klr_istirahat : S tring -jam_msk_istirahat : String -jam_keluar : String -keterangan : String +mencatat_wak tu_kerja() +menghitung_gaji() +mendapat_lem bur_khusus()
*
1 * Lembur_khusus
1
1 *
Jabatan -kode_jabatan : String -jabatan : String +m endata_jabatan()
-kode_LK : String -NIK : String -kode_absensi : Str ing -tanggal : Date +mendapat_lembur_khusus () +menghitung_gaji()
Tunjangan_Medis
Karyawan_Penjualan 1
*
Bonus -k ode_bonus : String -periode : Date -s tatus_otorisasi : S tring +mendapat_bonus() +menghitung_gaji()
Hari_Libur
1
1
1
-Tanggal : Date -Hari : String -Keterangan : S tring +mendata_hari_libur()
1
1
Karyawan_Non_Penjualan
*
Detil_Bonus
1 *
*
-kode_TM : String -NIK : String -jumlah_klaim_TM : Long -tanggal : Date -lampiran : String -status _otorisas i : String +mengklaim _tunjangan() +menyetujui_klaim() +menghitung_gaji() *
Permintaan_Lembur
*
-kode_lembur : String -NIK : String -tanggal : Date -alasan_lembur : String -jam_selesai_lembur : Date -status_otorisasi : S tring +mengajuk an_lembur() +menyetujui_lembur() +menghitung_gaji()
Histori_Gaji -NIK : String -bulan : String -gaji_bulanan : Double -UMT : Double -tunjangan_m edis : Double -THR : Double -uang_lembur : Double -uang_lembur_khusus : Double -bonus/komisi : Double -pinjaman : Double -biaya_jabatan : Double -pajak : Double -status _otorisas i : String -status _bayar : B oolean +mem buat_histori()
Gambar 4.92 Revised Class Diagram
Detil_Komisi -kode_komisi : String -NIK : String -unit : Integer -profit : Long -jumlah_k omisi : Long +m endapat_komisi() +m enghitung_gaji() * 1 Komisi -kode_komisi : String -periode : Date -status_otorisasi : String +mendapat_kom isi() +menghitung_gaji()
«ca ll» «cal l» «ca ll»
< <ModelC omponent>> Per minta an_Cuti -kode _perm intaa n : String -NIK : Stri ng -kode _cuti : Strin g -ta ngg al_m ula i_cu ti : Date -ta ngg al_s ele sai_ cuti : Da te -ala san_ cuti : String -sta tu s_otori sasi : Stri ng
<< Func tionC omponent>> *
1
+me minta_ cuti() +me nyetuju i_cu ti () +me nghi tu ng_ gaj i() *
1 1
Cuti -kode _cuti : Strin g -jen is_cu ti : String -juml ah_ hari _cuti : Strin g -max_p enga mbi lan : Stri ng
1
+me nda ta _cuti()
1
Pinjama n -kod e_p inj aman : Stri ng -NIK : Strin g -tang gal _pe minj aman : Date -ju mlah _pi nja man : Long -al asan : Stri ng -ju mlah _cici lan : Intege r -pe riod e_p inj aman _lu nas : Strin g -status_p inj aman : Boo lea n -ju mlah _be lum_ dib ayar : D oub le -status_o to risasi : String + meng aju kan_ pin jama n() + menye tu jui _pi njam an()
*
1
1
Penghitungan_Jumlah_C uti
-kod e_bo nus : Stri ng -pe ri ode : Date -status_o to risasi : String +m enda pat_b onu s() « call » itung _ga ji() +m engh
«ca ll»
-kod e_a bsen : In te ger -NIK : Strin g -tang gal : Date -ja m_ma suk : String -ja m_kl r_istira hat : String -ja m_msk_ istirah at : String -ja m_ke luar : Stri ng -ketera nga n : String + menca ta t_ waktu_ kerja () + meng hitun g_g aji ()
*
Pe nghitunga n_ Gaji_Bulanan
Har i_ Libur -Tan gga l : Da te -H ari : S tri ng -Ke te rang an : Strin g + men data_ hari _li bur() 1
« call »
«ca ll» «ca ll» «ca ll» *
1
Le mbur _khusus -kode _LK : Stri ng -NIK : String -kode _ab sensi : String -ta ngg al : D ate +me nda pat_l embu r_khu sus() +me ngh itung _ga ji() « call »
«ca ll»
1
1
Ja ba tan
*
Pence taka n_ Slip_Gaji «cal l» « call » «cal l»
-ko de_ TM : Strin g -N IK : Stri ng -j umla h_kl aim _TM : Lon g -tan gga l : Da te -l ampi ran : Stri ng -status « call » _otoris asi : Strin g + men gkla im_tun jan gan () + men yetuju i_kl aim() + men ghi tu ng_ gaj i() «cal l»
Kar yawan_Penjua la n
* 1
-ko de_ lemb ur : String -N IK : Strin g -tan gga l : Da te -a lasa n_l embu r : Stri ng -j am_se lesa i_l embu r : Date -status_ otorisa si : Strin g + men gaju kan_ lem bur() + men ye tu jui _le mbu r() + men ghitun g_g aji ()
«ca ll» Pe nghitunga n_ Pajak
« call » 1
1
Perm intaa n_ Le mbur
«ca ll» » « call «ca ll»
«cal l»
Tunja ngan_Me dis
*
Pe nghitunga n_ Jumlah_LK «ca ll»
«cal l»
Pe nc etaka n_ La pora n_ Ga ji
+m end ata_j abatan ()
1
K arya wa n_ Non_ Penjualan
«ca ll»
Abse ns i
-kod e_j aba ta n : String -ja batan : Stri ng
+me rekrut()
Bonus
-kode _bon us : Strin g -NIK : Stri ng -grade : String -juml ah_ bon us : Lo ng +me ndap at_bo nus() +me nghi tu ng_ gaj i() *
Ka ryawan -NIK : String -nam a : String -ala mat : String -aga ma : Strin g -jen is_k ela min : Bo ole an -tempa t_ lah ir : String -tangg al_ lah ir : Da te -ema il : Strin g -no_ te lp : Long -no_ reken ing : lon g -NPWP : Strin g -sin gle/ma rried : Bool ean -jum lah a nak : Integ er -jum lah _tang gung an : In te ger -tangg al_ mul ai_k erja : Date -status_ka ryawan : String -kode _ja batan : String -caba ng : Stri ng -gaj i_p okok : Dou ble -sisa _ha k_cuti : Integ er -sisa _cuti_ besa r : In te ger -jum lah _le mbur : Integ er -sisa _ha k_kla im : Intege r -jum lah _pi njam an : D oub le -jum lah _saki t -pass word : Strin g
*
De til_B onus
1
*
Histori_Gaji -NIK : String -bul an : Stri ng -gaj i_b ula nan : Dou ble -UMT : Dou ble -tunja nga n_me dis : Dou ble -TH R : Do ubl e -uan g_l embu r : Dou ble -uan g_l embu r_khu sus : D oubl e -bon us/komi si : Do ubl e -pin jam an : D oub le -bia ya_j aba ta n : Do ubl e -paj ak : D oubl e -status_o to risasi : Stri ng -status_b ayar : Bo ole an +me mbua t_his to ri()
*
« call » Pencetak an_Lapor an_Absensi «ca ll»
Penceta kan_SPT
«ca ll» Pe nc etaka n_ La pora n_ Klaim
D etil_ Komisi -ko de_k omisi : String -NIK : Strin g -u nit : Intege r -p ro fi t : Lon g -j umla h_ko misi : Long + mend apa t_ komi si() + meng hitun g_g aji ()
Komisi *
1
«cal l»
-kode _komi si : Strin g -peri ode : Date -sta tu s_otori sasi : Stri ng +me nda pat_ko misi() +me ngh itung _gaj i() «cal l»
«ca ll»
Penceta kan_Laporan_Pinja man
Pajak -go lon gan : Stri ng -ju mlah _PKP : Do ubl e -status_tan ggu nga n : String -pe rsentase : In te ger -PTKP : Dou ble +m eng hitun g_ga ji()
«cal l»
Gambar 4.93 Function Component
200 4.2.4.2.1 Operation Specification Tabel 4.36 sampai tabel 4.45 menggambarkan operation specification dari function yang terdapat dalam function component. Sedangkan sequence dari masingmasing function terlihat pada gambar 4.94 samapi gambar 4.103. Tabel 4.36 Operation ” Pencetakan_LaporanAbsensi” Name Category
Purpose
M encetak Laporan Absensi _ Active x Passive
_ Update _ Compute x Read _ Signal
Untuk mencetak laporan absensi bulanan yang merupakan rekap absensi.
Input Data
cabang, periode
Conditions
Class Absensi berisi kode_absensi yang menyimpan NIK yang bekerja pada cabang yang dipilih dan tanggal yang berada dalam periode pencetakan laporan. Kode_Cuti dalam class Permintaan_Cuti menyimpan NIK yang bekerja di cabang yang dipilih dan status otorisasi yang telah diapproved.
Effects
Laporan absensi yang berisi rekap absensi dapat dicetak
Algorithm
“SELECT a.NIK, b.kode_absen, b.tanggal FROM Karyawan a, Absensi b WHERE a.NIK = b.NIK and b.tanggal = “periode”;” jumlah_absen = sum(kode_absen) “SELECT a.NIK, c.kode_permintaan, c.tanggal_mulai_cuti, c.tanggal_selesai_cuti, c.status_otorisasi FROM Karyawan a, Permintaan_Cuti
c,
WHERE
a.NIK=
c.NIK
and
c.tanggal_mulai_cuti = “periode’ and tanggal_selesai_cuti= “periode”;” jumlah_cuti_diambil = sum (kode_permintaan)
201 “SELECT a.NIK, c.kode_Permintaan, c.tanggal_mulai_cuti, c.tanggal_selesai_cuti, d.tanggal FROM Permintaan_Cuti c, Hari_Libur
d
WHERE
a.NIK=
c.NIK
and
c.tanggal_mulai_cuti = d.tanggal and c.tanggal_mulai_cuti = “periode’ and tanggal_selesai_cuti= “periode”;” jumlah_bukan_cuti = sum (kode_permintaan) jumlah_cuti = jumlah_cuti_diambil – jumlah_bukan_cuti “SELECT jumlah_sakit, jumlah_lembur FROM Karyawan;” “SELECT
a.kode_LK,
b.NIK
,
tanggal
FROM
Lembur_Khusus a, Karyawan b WHERE tanggal = “periode’ jumlah_LK = sum (kode_LK) Data Structure
String, Integer, Date
Placement
Pencetakan_LaporanAbsensi
Involved Objects
Absensi,
Permintaan_Cuti,
Hari_Libur Triggering Events
mencetak_laporan_absensi
Lembur_Khusus,
Karyawan,
202
:Penc etakan_LaporanAbsensi
:Karyawan
:Absensi
:Per mintaan_Cuti
:Hari_Libur
:Lembur_Khus us
r ead read not- found result read not- found result read not-found r esult read not-found res ult read not-found res ult
result
Gambar 4.94 Sequence dari Function Pencetakan_Laporan Absensi
Tabel 4.37 Operation ” Pencetakan_LaporanGaji” Name Category
Purpose
M encetak Laporan Gaji _ Active x Passive
_ Update _ Compute x Read _ Signal
Untuk mencetak laporan gaji bulanan karyawan yang dikelompokkan berdasarkan cabang atau pusat.
Input Data
cabang, periode
Conditions
status_otorisasi dan status_bayar pada class Histori_Gaji telah diapproved.
Effects
Laporan Gaji bulanan dapat dicetak
203 Algorithm
SELECT * FROM Histori_Gaji WHERE tanggal = “periode”
and
status_otorisasi
=
“Approved”
and
status_bayar = “Approved” SELECT a.NIK, b.cabang FROM Histori_gaji a, Karyawan b WHERE cabang = “cabang” and a.NIK=b.NIK Data Structure
String, Integer, Date
Placement
Pencetakan_Laporan_Gaji
Involved Objects
Karyawan, Histori_Gaji
Triggering Events
mencetak_laporan_gaji
:Pencetakan_LaporanGaji
:Karyawan
:Histori_Gaji
read read not-found result read not-found result res ult
. Gambar 4.95 Sequence dari Function Pencetakan_LaporanGaji
Tabel 4.38 Operation ”Pencetakan_LaporanPinjaman” Name Category
M encetak Laporan Pinjaman _ Active x Passive
_ Update _ Compute x Read _ Signal
204 Purpose
Untuk mencetak laporan pinjaman dalam periode bulan tertentu yang berisi data pinjaman oleh karyawan.
Input Data
periode
Conditions
Class Pinjaman memiliki kode_pinjaman yang menyimpan data pinjaman dengan status_otorisasi telah diapproved dan tanggal_peminjaman berada dalam periode pencetakan laporan.
Effects
Laporan Pinjaman dapat dicetak.
Algorithm
SELECT * FROM Pinjaman WHERE tanggal = “periode” and status_otorisasi = “Approved” SELECT a.NIK, b.cabang FROM Pinjaman a, Karyawan b WHERE cabang = “cabang” and a.NIK=b.NIK
Data Structure
String, Integer, Date
Placement
Pencetakan_LaporanPinjaman
Involved Objects
Karyawan, Pinjaman
Triggering Events
mencetak_laporan_pinjaman
: Pencet akan_LaporanPinjaman
:Karyawan
:Pinjaman
read read not-found result read not-found result result
Gambar 4.96 Sequence dari Function Pencetakan_LaporanPinjaman
205 Tabel 4.39 Operation ”Pencetakan_LaporanKlaim” Name Category
Purpose
M encetak Laporan Klaim _ Active x Passive
_ Update _ Compute x Read _ Signal
Untuk mencetak laporan klaim yang berisi data klaim tunjangan medis yang diajukan oleh karyawan
Input Data
Periode, jenis laporan
Conditions
Class
Tunjangan_M edis
memiliki
kode_TM
yang
menyimpan NIK yang mengajukan klaim pada periode pencetakan laporan klaim dan status_otorisasi dari pengajuan tersebut telah diganti menjadi “approved”. Effects
Laporan Klaim dapat dicetak
Algorithm
Select case jenis_laporan Case 1 : Laporan Klaim Case 2 : Laporan Insentif Tunjangan End select If pilih = 1 then SELECT * FROM Tunjangan_M edis WHERE tanggal = “periode” and status_otorisasi = “Approved” SELECT a.NIK, b.cabang FROM Tunjangan_M edis a, Karyawan b WHERE cabang = “cabang” and a.NIK = b.NIK Else SELECT
NIK,
sisa_hak_klaim
FROM
WHERE sisa_hak_klaim = gaji_pokok / 2 End if Data Structure
String, Integer, Date
Placement
Pencetakan_LaporanKlaim
Involved Objects
Karyawan, Tunjangan_M edis
Karyawan
206 Triggering Events
mencetak_laporan_tunjangan_medis
:Pencetakan_LaporanKlaim
:Karyawan
:Tunjangan_Medis
read read not-found result read not-found result result
Gambar 4.97 Sequence dari Function Pencetakan_LaporanKlaim
Tabel 4.40 Operation ”Pencetakan_SlipGaji” Name Category
Purpose
M encetak Slip Gaji _ Active x Passive
_ Update _ Compute x Read _ Signal
Untuk mencetak slip gaji masing-masing karyawan setiap bulannya.
Input Data
NIK, periode
Conditions
status_otorisasi penghitungan gaji dalam class Histori_Gaji telah diganti menjadi “approved”.
Effects
Slip Gaji masing-masing karyawan dapat dicetak
Algorithm
SELECT * FROM Histori_Gaji WHERE bulan = “periode” and NIK = “NIK” jumlah_gaji_bersih = gaji_bulanan + UMT + uang_lembur +
207 uang_lembur_khusus
+
bonus
+ komisi + THR +
tunjangan_klaim – pinjaman – pajak Data Structure
String, Integer, Date
Placement
Pencetakan_SlipGaji
Involved Objects
Karyawan, Histori_Gaji
Triggering Events
menghitung_gaji
:Pencetakan_SlipGaji
:Karyawan
:Histori_Gaji
read read not-found result read not-found result res ult
Gambar 4.98 Sequence dari Function Pencetakan_SlipGaji
Tabel 4.41 Operation ”Pencetakan_S PT” Name Category
Purpose
M encetak SPT _ Active x Passive
_ Update _ Compute x Read _ Signal
Untuk mencetak surat pemberitahuan yang diperlukan untuk perpajakan.
Input Data
Periode, jenis_SPT
Conditions
Class Histori_Gaji dengan komponen gaji yang didalamnya
208 telah memiliki nilai pada periode bulan yang dipilih. Effects
SPT dapat dicetak
Algorithm
SELECT
nama,
gaji_bulanan,
UMT,
uang_lembur,
uang_lembur_khusus, bonus/komisi, THR, pajak FROM Histori_Gaji, Karyawan WHERE bulan = “periode” Data Structure
String, Double, Date
Placement
Pencetakan_SPT
Involved Objects
Karyawan, Histori_Gaji
Triggering Events
mencetak_SPT
:Pencetakan_SPT
:Karyawan
:Histori_Gaji
read read not-found result read not-found result res ult
Gambar 4.99 Sequence dari Function Pencetakan_S PT
Tabel 4.42 Operation ”Penghitungan_Jumlah_Cuti” Name Category
Purpose
M enghitung Jumlah Cuti x Active _ Passive
_ Update x Compute x Read _ Signal
M enghitung jumlah cuti setiap karyawan dalam periode 1
209 (satu) bulan. Input Data
tanggal_mulai_cuti, tanggal_selesai_cuti
Conditions
Pada class Permintaan Cuti terdapat NIK yang akan dihitung jumlah cutinya dan status dari kode permintaan cuti tersebut adalah “approved”
Effects
Jumlah cuti dari masing-masing karyawan pada bulan tertentu dapat dihasilkan
Algorithm
“SELECT a.NIK, c.kode_permintaan, c.tanggal_mulai_cuti, c.tanggal_selesai_cuti, c.status_otorisasi FROM Karyawan a, Permintaan_Cuti
c,
WHERE
a.NIK=
c.NIK
and
tanggal_mulai_cuti >= mulai and tanggal_mulai_cuti <= selesai;” jumlah_cuti_diambil = sum (kode_permintaan) “SELECT a.NIK, c.kode_Permintaan, c.tanggal_mulai_cuti, c.tanggal_selesai_cuti, d.tanggal FROM Permintaan_Cuti c, Hari_Libur
d
WHERE
a.NIK=
c.NIK
and
c.tanggal_mulai_cuti = d.tanggal” jumlah_bukan_cuti = sum (kode_permintaan) jumlah_cuti = jumlah_cuti_diambil – jumlah_bukan_cuti Data Structure
String, Integer, Date
Placement
Penghitungan_Jumlah_Cuti
Involved Objects
Permintaan_Cuti, Karyawan, Hari_Libur
Triggering Events
menghitung_gaji
210
:Penghitungan_Jumlah_Cuti
:Karyawan
:Permintaan_Cuti
:Hari_Libur
read+c ompute read not-found result read not-found result read not-found result result
Gambar 4.100 Sequence dari Function Penghitungan_Jumlah_Cuti
Tabel 4.43 Operation ”Penghitungan_LK” Name Category
Purpose
M enghitung Lembur Khusus x Active _ Passive
_ Update x Compute x Read _ Signal
M enghitung jumlah lembur khusus yang diperoleh karyawan yang bekerja di cabang.
Input Data
NIK, tanggal, kode_absensi
Conditions
Kode_LK telah digenerate, class Absensi mempunyai NIK yang hadir pada tanggal tertentu dimana tanggal tersebut pada class Hari_Libur merupakan hari libur nasional yang
211 mewajibkan karyawan cabang tetap hadir bekerja. Tanggal tersebut juga harus dalam periode perhitungan gaji bulan tersebut. Effects
Jumlah lembur khusus dalam periode tanggal 25 (dua puluh lima) bulan sebelumnya sampai tanggal 24 (dua puluh empat) bulan berjalan dapat diketahui.
Algorithm
SELECT NIK, kode_jabatan FROM Karyawan SELECT NIK, tanggal, kode_absensi FROM Absensi SELECT tanggal FROM Hari_Libur if tanggal = tanggal then generate_kode_LK end if SELECT
kode_LK,
tanggal
FROM
Lembur_Khusus
WHERE tanggal >= mulai and tanggal <=selesai jumlah_LK = sum (kode_LK) Data Structure
String, Integer, Date
Placement
Penghitungan_Jumlah_LK
Involved Objects
Absensi, Karyawan, Hari_Libur, Lembur_Khusus
Triggering Events
menghitung_gaji
212
:Penghit ungan_Jumla h_LK
:Karyawan
:Absensi
:Hari_Libur
:Lembur_Khusus
read +co mpute read not -found result read not -found result read not-found result rea d not-found result result
Gambar 4.101 Sequence dari Function Penghitungan_Jumlah_LK
Tabel4.44 Operation ”Penghitungan_Gaji_Bulanan” Name Category
Purpose
M enghitung Gaji Bulanan x Active _ Passive
_ Update x Compute x Read _ Signal
M enghitung besarnya gaji bulanan masing-masing karyawan berdasarkan jumlah kehadirannya dalam periode perhitungan gaji.
Input Data
NIK, tanggal, kode_absensi, kode_permintaan, jumlah_sakit, gaji_pokok.
Conditions
NIK terdapat dalam class Absensi dan Cuti dengan tanggal
213 yang berada dalam periode penghitungan gaji. Effects
Gaji
bulanan
berdasarkan
kehadiran
masing-masing
karyawan dapat dihasilkan. Algorithm
JlhHariEfektif = DateDiff (Dateinterval.Day, mulai, selesai) – hari_minggu “SELECT a.NIK, b.kode_absen, b.tanggal FROM Karyawan a, Absensi b WHERE a.NIK = b.NIK and b.tanggal >= mulai and b.tanggal <=selesai;” jumlah_absen = sum(kode_absen) “SELECT a.NIK, c.kode_permintaan, c.tanggal_mulai_cuti, c.tanggal_selesai_cuti, c.status_otorisasi FROM Karyawan a, Permintaan_Cuti
c,
WHERE
a.NIK=
c.NIK
and
c.tanggal_mulai_cuti >= mulai and c.tanggal_mulai_cuti <= selesai;” jumlah_cuti_diambil = sum (kode_permintaan) “SELECT a.NIK, c.kode_Permintaan, c.tanggal_mulai_cuti, c.tanggal_selesai_cuti, d.tanggal FROM Permintaan_Cuti c, Hari_Libur
d
WHERE
a.NIK=
c.NIK
and
c.tanggal_mulai_cuti = d.tanggal and tanggal >= mulai and tanggal <=selesai” jumlah_bukan_cuti = sum (kode_permintaan) jumlah_cuti = jumlah_cuti_diambil – jumlah_bukan_cuti SELECT jumlah_sakit, gaji_pokok FROM Karyawan. gaji_bulanan =(jumlah_absen + jumlah_cuti + jumlah_sakit) * gaji_pokok / jlhHariEfektif Data Structure
String, Integer, Date
Placement
Penghitungan_Gaji_Bulanan
Involved Objects
Karyawan, Absensi, Permintaan_Cuti,Hari_Libur
Triggering Events
menghitung_gaji
214
:Penghitungan_Gaji_Bulanan
:Karyawan
: Absensi
:Permintaan_Cuti
: Hari_Libur
read+comput e read not -found result read not-found result read not-f ound result read not-f ound result result
Gambar 4.102 S equence dari Function Penghitungan_Gaji_Bulanan
Tabel 4.45 Operation ”Penghitungan_Pajak” Name Category
M enghitung Pajak _ Active x Passive
_ Update x Compute x Read _ Signal
Purpose
M enghitung pajak dari gaji bruto tiap bulan
Input Data
NIK, bulan, gaji_pokok, uang_lembur, uang_lembur_khusus bonus/komisi, THR, jumlah_tanggungan, status_pernikahan, PTKP, persentase
Conditions
gaji bruto
dapat
dihasilkan
dari
class
Histori_Gaji.
215 jumlah_tanggungan, status pernikahan serta NPWP dari tiap NIK dalam class Karyawan tersedia. Effects
Pajak tiap bulan dihitung dan digunakan sebagai pengurang gaji karyawan.
Algorithm
gaji_bulanan =(jumlah_absen + jumlah_cuti + jumlah_sakit) * gaji_pokok / jlhHariEfektif UM T = (jumlah_absen-jumlah_telat) * tarif_UM T uang_lembur = jumlah_lembur * tarif_lembur uang_lembur_khusus = jumlah_LK * tarif_LK gaji_kotor = (gaji_bulanan + UM T + uang_lembur + uang_lembur_khusus + THR + bonus + komisi) SELECT * FROM Pajak PKP = (gajikotor *12) – (biaya_jabatan)*12 – PTKP If IsNumeric(PKP_max) = true then If PKP > PKP_max then PKP=PKP-PKP_max Pajak = pajak + (PKP_max * persentase)/100 Else Pajak = pajak + (PKP * persentase)/100 Endif Else Pajak = pajak + (PKP * persentase)/100 endif Pajak = pajak/12 SELECT NPWP FROM Karyawan If NPWP =isdbNull then Pajak = pajak + (20 * pajak)/100 End if
Data Structure
String, Integer
Placement
Penghitungan_Pajak
Involved Objects
Karyawan, Pajak, Absensi, Permintaan_Cuti, Hari_Libur,
216 Lembur_Khusus,
Bonus,
Detil_Bonus,
Komisi,
Detil_Komisi. Triggering Events Penghitungan_P ajak
:Kary awan
menghitung_gaji :Absens i
:Permintaan_C uti
:H ar i_Libur
:Lembur_Khusus
Bonus
:Detil_Bonus
: Komisi
:D et il_Komisi
Objec t1
read r ea d not-f ound r es ult r ea d not -found r es ult read not- found r es ult read not- found r es ult r ea d not -found result read not- found result read not -found result r ea d not -found result r ea d not- found result read not -found result r es ult
Gambar 4.103 Sequence dari Function Penghitungan_Pajak
4.2.4.3 User-Interface Component Seperti yang terlihat pada gambar 4.104, setiap window dan printout akan diimplementasikan sebagai sebuah class dengan sebuah object. Class window dan printout mewarisi karakteristik umum dari standard user-interface library.
217 Pada saat sistem mulai digunakan , class “Control” men-generate sebuah object yang diberikan control. Control object ini menangani menu umum dan mendelegasikan control kepada user-interface object lainnya.
<< component >>
UI Control
<< component >>
Windows
<< component >>
Print
Form Absensi
Form Status Data Diri
Slip Gaji
Form Login
Form Status Lembur
Laporan Absensi Bulanan
Form P engajuan Lembur
Form Status Cuti
Laporan Gaji
Form P engajuan Cuti
Form Status P injaman
Laporan P injaman
Form P engajuan P injaman
Form Status Tunjangan
Laporan Tunjangan
Form P engajuan Tunjangan
Form P encetakan Laporan Absensi
Form Otorisasi Lembur
Form P encetakan Laporan Gaji
Form Otorisasi Cuti
Laporan Insentif Tunjangan
Form Otorisasi Pinjaman
Form P encetakan Laporan P injaman
Form Otorisasi Tunjangan
Form P encetakan Laporan Tunjangan
Form Hitung Gaji
Form P encetakan SP T
Form P engubahan Data Diri
Form P encetakan Slip Gaji
Form P engubahan Data P ajak
Form Otorisasi Gaji
<< component >>
Surat P emberitahuan Masa Surat P emberitahuan Tahunan
UI Window
VB.net Run Time Support
Print
Gambar 4.104 Class Diagram for the User Interface
218 4.2.5 Recommendations 4.2.5.1 The System’s Usefulness Perancangan sistem informasi akuntansi penggajian secara keseluruhan harus dievaluasi berdasarkan kriteria perancangan yang penting dengan penjelasan sebagai berikut: •
Usable merupakan kriteria yang sangat penting karena sistem yang dirancang harus sesuai dan sejalan dengan konteks serta alur proses bisnis dari perusahaan.
•
Secure merupakan kriteria penting karena sistem yang dirancang harus dilengkapi dengan keamanan data maupun informasi dan memiliki batas hak akses oleh setiap karyawan yang menggunakan sistem.
•
Efficient merupakan kriteria penting dalam perancangan sistem untuk penghematan penggunaan sumber daya seperti penggunaan kertas dan juga menghemat waktu dalam hal pencatatan maupun pengendalian.
•
Correct merupakan kriteria yang sangat penting mengingat sistem yang dirancang berhubungan dengan penghitungan gaji karyawan sehingga hasil dari sistem juga harus tepat dan sesuai dengan kebutuhan kegiatan penggajian.
•
Reliable merupakan kriteria yang sangat penting agar sistem yang dirancang memiliki kehandalan dalam mengeksekusi fungsi, data dalam sistem dapat dipercaya dan dapat dipertanggungjawabkan.
•
Maintainable merupakan kriteria penting dalam hal biaya untuk memelihara dan memperbaiki sistem apabila terdapat error atau bug.
219 •
Flexible merupakan kriteria penting karena biaya yang dibutuhkan untuk memodifikasi sistem perlu mendapat perhatian khusus. Hal ini disebabkan sering terjadi perubahan prosedur seperti prosedur perhitungan pajak penghasilan sehingga flexible menjadi kriteria yang penting dalam perancangan sistem informasi akuntansi penggajian ini.
•
Comprehensible merupakan kriteria penting karena sistem yang dirancang harus user friendly sehingga mudah untuk dipahami dan mudah untuk digunakan.
4.2.5.2 Plan for Initiating Use Perencanaan penggunaan sistem yang baru pada awalnya memerlukan instalasi dan pelatihan dari pihak yang merancang dan mengembangkan sistem. Setelah proses instalasi maka pelatihan akan dilakukan dan wajib diikuti oleh seluruh karyawan perusahaan yang akan berinteraksi dengan sistem informasi akuntansi penggajian ini. Selama proses pelatihan, karyawan diharapkan dapat memberikan feedback atau saran atas sistem yang baru tersebut sehingga sistem akan dapat digunakan sesuai dengan kebutuhan dari penggunanya. 4.2.5.3 Implementation Plan Sistem informasi akuntansi penggajian pada PT. EKA JAYA PERKASA direncanakan akan diimplementasikan dengan menggunakan metode paralel selama 1 (satu) bulan. Sistem baru dan sistem lama dijalankan secara bersamaan untuk menguji keandalan dan keakuratan penghitungan berbagai komponen gaji dan upah yang bertujuan untuk mengurangi resiko yang mungkin terjadi pada saat sistem yang lama dikonversikan ke sistem yang baru. Jika sistem yang baru ternyata masih belum
220 cukup akurat maka perlu dilakukan maintance sehingga pada bulan berikutnya sistem yang baru dapat dipakai sepenuhnya untuk menggantikan sistem lama.