bab iii pembahasan...17 bab iii pembahasan 3.1. tinjauan perusahaan 3.1.1. sejarah perusahaan pt....
TRANSCRIPT
17
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
3.1.1. Sejarah Perusahaan
PT. Esensi Indonesia adalah sebuah perusahaan Perseroan Terbatas yang
terdaftar dan berkantor pusat di Bandung Jawa Barat. Sebuah perusahaan jasa facility
services lokal yang dikelola oleh para anak bangsa Indonesia professional yang telah
memiliki pengalaman luas dalam bidang Facility Services di dalam dan luar negeri
dan telah memiliki akreditasi NPMA (National Pest Management Association)
Virginia – USA dan PCT ltd (Nemesis Baiting System) Brisbane – Australia.
PT. Esensi Indonesia berdiri pada Oktober 2010 dengan Nomer Pokok Wajib
Pajak No. 31.268.241.2-005.001 dan berlokasi Jl. Raya Jatiwaringin No.20 RT. 005
RW. 005 Cipinang Melayu, Makasar Jakarta Timur dan mulai beroperasi pada
Januari 2011 oleh seorang praktisi ternama Bpk. Heri Supriatianto selaku President
Director yang telah sukses mengembangkan beberapa perusahaan sejenis di Bandung
dan kota-kota lain di Indonesia bahkan sukses juga mengembangkan beberapa
perusahaan di beberapa negara ASEAN salah satunya Brunei Darussalam dan
Malaysia, adapun saat ini kami telah hadir di kota Jakarta, Cirebon dan Sukabumi.
1. Visi :
Ingin dikenal diperhitungkan sebagai perusahaan jasa Facility Services local
yang kredibel.
18
2. Misi :
Memberikan pelayanan yang luar biasa melalui karyawan (orang-orang) yang
baik yang senantiasa menggunakan cara-cara yang benar dan sop yang benar.
3. Aspirasi Perusahaan :
Dapat bersaing dipasar melalui service excellence sebagai perusahaan facility
services local yang kredibel.
3.1.2. Struktur Organisasi dan Fungsi
Berikut ini adalah struktur dan fungsi yang ada di PT. Esensi Indonesia pada
area MNC FINANCIAL CENTER :
Sumber : Bagian Human Resources Departement PT.Esensi Indonesia
Gambar III.1 Struktur Organisasi
Dalam struktur organisasi perusahaan masing-masing jabatan mempunyai
tanggung jawab dan wewenang yang berbeda sesuai bidang keahliannya, Adapun
tugas dari tiap-tiap bagian sebagai berikut:
1. Supervisor
a. Bertugas untuk mengatur kerjanya para bawahannya (staff).
19
b. Menyampaikan kebijakan yang disampaikan oleh jabatan di atasnya kepada
seluruh bawahan dan groupnya.
c. Melaksanakan tugas, proyek, dan pekerjaan secara langsung.
d. Menegakkan aturan yang telah ditentukan oleh perusahaan.
2. Administrasi
a. Membuat laporan bulanan .
b. Melakukan arsip data.
c. Membuat agenda kantor.
3. Team Leader
a. Membuaut schedule kegiatan atau jadwal kegiatan perusahaan.
b. Memonitor atau memantau progress pekerjaan yang dilakukan tenaga ahli.
c. Bertanggung jawab dalam melaksanakan koordinasi dalam membina
kerjasama dengan team yang solid.
d. Mengkoordinir seluruh aktifitas tim dalam mengelola seluruh kegiatan baik
dilapangan maupun dikantor.
4. Cleaner
a. Membersihkan kantor dan lingkungan kantor.
b. Memelihara tanaman.
c. Menyiapkan dan mengecek alat tulis dan barang cetakan.
d. Membantu menyediakan keperluan setiap karyawan.
3.2. Tinjauan Kasus
Dalam persaingan di dunia bisnis kecepatan dan keakuratan dalam
pengolahan data sangat penting dalam kemajuan usaha. Terutama PT. Esensi
Indonesia dalam bidang pelayanan jasa, masih melakukan pengolahan sistem
20
penggajian pada PT. Esensi Indonesia masih dilakukan secara manual yang bisa
mengakibatkan lamanya proses pengolahan data dan pencarian data karyawan
sehingga membutuhkan waktu yang cukup lama, karena datanya masih tersimpan
berupa arsip-arsip kertas. Untuk memudahkan proses sistem penggajian dalam PT.
Esensi indonesia, maka dari itu diperlukan suatu program aplikasi yang dapat
memberikan kemudahan dalam sistem penggajian karyawan dengan menggunakan
sistem Visual Basic 6.0
3.2.1. Proses Bisnis Sistem Berjalan
Kegiatan rangkaian yang terstruktur dalam pelaksanaan satu proses, dalam
sistem kelancaran pengolahan tiap data, ataupun bentuk aktifitas apabila didukung
dengan prosedur yang baik dan tepat, maka sistem berjalan tampak teratur dan output
yang dihasilkan serta mutu pelayanan akan lebih baik.
Pada prosedur sistem akuntansi berjalan ini ada beberapa prosedur yang
didetapkan pada PT. Esensi Indonesia sebagai berikut:
1. Proses Absensi Karyawan
Semua karyawan yang datang diwajibkan untuk melakukan absensi setiap masuk
dan pulang untuk mengetahui data kehadiran. Pada akhir bulan absen tersebut
akan direkap oleh bagian Administrasi setelah absen direkap maka rekap absen
diberikan kepada bagian Human Resources Development, setelah itu Human
Resources Development akan menyerahkan rekap absen kebagian administrasi.
Kemudian bagian administrasi melakukan pencairan gaji dan membuat slip gaji
kemudian mencetak laporan gaji bulanan yang akan diberikan kepada direksi.
2. Proses Perhitungan Gaji
Setiap akan dilakukannya penyerahan gaji kepada karyawan, Administrasi akan
melakukan perhitungan seluruh gaji karyawan berdasarkan data karyawan.
21
Perhitungan gaji biasanya dilakukan 5-7 hari sebelum penyerahan gaji. Proses
perhitungan dilakukan mulai dari menghitung tunjangan seperti uang
transportasi. Perhitungan gaji juga berpengaruh dengan adanya potongan BPJS
Ketenaga Kerjaan. Dari hasil perhitungan tersebut nantinya Administrasi akan
membuatkan laporan gaji dari seluruh karyawan. Nantinya data gaji yang telah
dibuat akan diserahkan ke Direksi.
3. Proses Pembayaran Gaji
Proses pembayaran gaji dilakukan pada akhir bulan oleh Administrasi
berdasarkan gaji yang telah disetujui oleh direksi. Berdasarkan rekap gaji
tersebut maka bagian Administrasi akan membuatkan slip gaji. Masing-masing
karyawan nantinya akan menerima slip gaji yang nantinya akan di tanda tangani
oleh masing-masing karyawan sebagai tanda bahwa karyawan tersebut telah
menerima gaji dan juga slip gaji.
4. Laporan Gaji Karyawan
Setelah melakukan proses pembayaran gaji kemudian Administrasi akan
menyerahkan laporan gaji karyawan yang telah dibayarkan sesuai dengan
periode pembayaran gaji kepada Direksi.
22
3.2.2. Activity Diagram
Gambar III.2 Activity Diagram Proses Bisnis Sistem Berjalan
3.2.3. Dokumen Masukan
Dokumen masukan merupakan dokumen yang mengalami proses awal dari
sistem penggajian karyawan, adapun bentuk dokumen masukan adalah :
1. Form Data Karyawan
Nama Dokumen : Data Karyawan
Fungsi : Mengelola data karyawan
Sumber : Human Resources Development
Tujuan : Admin Financial
Media : Kertas
Jumlah : 1 Lembar
23
Frekuensi : Setiap penambahan dan perubahan data karyawan
Bentuk : Lihat Lampiran A.1
2. From Absensi Karyawan
Nama Dokumen : Absensi
Fungsi : Data Absensi
Sumber : Karyawan
Tujuan : Admin
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap Hari
Bentuk : Lihat Lampiran A.2
3.2.4. Dokumen Keluaran
Pada sistem keluaran dan penyajian laporan dibutuhkan suatu keluaran data
dari sumber data yang ada. Untuk itu perlu adanya spesifikasi keluaran yang nantinya
digunakan sebagai kerangka penyesuaian data yang dipindahkan dari sumber data.
Bentuk dokumen keluaran tersebut adalah sebagai berikut :
1. Rekap Absen
Nama Dokumen : Laporan rekapitulasi absen
Fungsi : Untuk mengetahui jumlah kehadiran karyawan
Sumber : Admin
Tujuan : Human Resource Development dan Direksi
Media : Kertas
Jumlah : Sesuai kebutuhan
Frekuensi : Setiap akhir bulan
Bentuk : Lihat Lampiran B.1
24
2. Laporan Data Gaji Bulanan
Nama Dokumen : Laporan Data Gaji Bulanan
Fungsi : Untuk mengetahui data gaji bulanan
Sumber : Admin
Tujuan : Human Resource Development dan Direksi
Media : Kertas
Jumlah : Sesuai kebutuhan
Frekuensi : Sesuai Permintaan
Bentuk : Lihat Lampiran B.2
3. Slip Gaji Karyawan
Nama Dokumen : Slip gaji
Fungsi : Sebagai bukti penerimaan gaji
Sumber : Admin
Tujuan : Karyawan
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap periode 1 (satu) bulan
Bentuk : Lihat Lampiran B.3
3.2.5. Permasalahan Pokok
Berdasarkan pengamatan atau observasi penulis permasalahan yang ada
bahwa PT. Esensi Indonesia dalam mengelola proses penggajian karyawan mulai
dari pengolahan data karyawan, penghitungan gaji, pembuatan slip gaji, serta
pembuatan laporan gaji bulanan masih menggunakan sistem manual sehingga data
dapat dimanipulasi.
25
Apabila proses penggajian karyawan PT. Esensi Indoenasia masih dilakukan
secara manual dan sederhana akan mengakibatkan seperti :
1. Dengan proses manual informasi yang dihasilkan akan membutuhkan waktu
yang lama.
2. Proses data kehadiran atau absensi masih bersifat manual sehingga
membutuhkan waktu yang lama dalam pembutan laporan perbulannya.
3. Permintaan informasi yang sulit dikarenakan hanya disimpan bentuk arsip buku
bukan sistem.
3.2.6. Pemecahan Masalah
Dengan melihat adanya beberapa permasalahan yang ada pada sistem berjalan
di PT. Esensi Indonesia, maka untuk mengatasi permasalahan tersebut penulis
mengajukan pemecahan masalah yaitu dengan mengkomputerisasi sistem penggajian
karyawan PT. Esensi Indonesia mulai dari proses data absensi karyawan, proses
perhitungan gaji karyawan, proses pembayaran gaji karyawan, sampai perhitungan
gaji dan pembuatan laporan dengan menggunakan visual basic 6.0 sebagai aplikasi
programnya.
Beberapa keuntungan yang dapat diperoleh dari penggunaan aplikasi pada
komputer :
1. Penyelesaian pekerjaan dapat dilakukan dengan cepat dan akurat, sehingga
menghasilkan informasi yang besar.
2. Penanganan data dan penyimpanan data akan lebih baik sehingga terciptanya
suatu ketertarikan dalam hal pencatatan data.
3. Faktor kesalahan lebih kecil atau jarang terjadi dibandingkan dengan
menggunakan sistem manual.
4. Karyawan lebih cepat dan akurat dalam mendapatkan slip gaji.
26
3.3. Analisis Kebutuhan Software
3.3.1. Analisis Kebutuhan
Dari hasil analisa yang telah dilakukan pada PT. Esensi Iindonesia penulis
telah merancang suatu sistem informasi dan media yang dapat menyelesaikan
masalah tersebut. Adapun spesifikasi kebutuhan (System Requirement) sebagai
berikut :
Halaman Administrasi :
A.1. Admin Login
A.2. Admin Melakukan Entri Data Karyawan
A.3. Admin Memproses Gaji Karyawan
A.4. Admin Mengelola Absensi Karyawan
A.5. Admin Mengelola Data Laporan
Halaman Human Resources Development :
B.1. Human Resources Development Login
B.2. Human Resources Development Mengelola Jabatan Karyawan
B.3. Human Resources Development Mengelola Pengguna Program
Dalam merancang aplikasi penggajian pada PT. Esensi Indonesia, penulis
telah melakukan analisis kebutuhan yang bertujuan untuk mendapatkan informasi
alur sistem yang saat ini berjalan pada PT. Esensi Indonesia serta mengetahui
kebutuhan dari setiap komponen yang berinteraksi pada sistem untuk
mengembangkan sistem yang saat ini berjalan (manual) menjadi sistem penggajian
yang terkomputerisasi.
27
1. Kebutuhan Pengguna
Di dalam analisa kebutuhan pengguna, program ini terdiri dari 2 (dua) level
akses dan memiliki batasan izin akses yang berbeda yaitu akses sebagai Admin
dan Human Resources Developmnet. Adapun batasan izin akses dalam aplikasi
penggajian karyawan ini adalah :
a. Akses Sebagai Human Resources Developmnet
1) Human Resources Developmnet sebagai akses tertinggi dalam sistem
diperbolehkan mengakses semua menu dalam menu utama program.
2) Human Resources Developmnet diperbolahkan melakukan penambahan
ataupun perubahan data seperti data pengguna program, data karyawan,
data gaji karyawan, data absensi dan melihat laporan gaji karyawan
dalam satu bulannya.
3) Human Resources Developmnet sebagai akses teringgi dalam sistem
diperbolehkan melakukan pembuatan laporan data karyawan, data gaji
bulanan dan cetak slip gaji karyawan.
a. Akses Sebagai Administrasi
1) Administrasi memiliki batasan akses pada menu utama yang hanya
bisa mengakses Form Entri Data Karyawan, Form Gaji Karyawan,
Form Absensi , dan pembuatan laporan.
2) Administrasi tidak diperbolehkan melakukan penambahan ataupun
perubahan pada data master jabatan dan master pengguna.
2. Kebutuhan Sistem
a. Sistem mampu melakukan validasi ID Pengguna, kata sandi dan hak akses
ketika pengguna melakukan login ke sistem.
28
b. Sistem mampu menangani penambahan ataupun perubahan data pengguna,
data karyawan, data absensi, informasi data gaji karyawan, data membuat
slip gaji karyawan.
c. Sistem mampu menampilkan tampilan menu utama sesuai dengan hak akses
pengguna masing-masing.
d. Sistem mampu memberikan informasi data laporan gaji karyawan bulanan.
e. Sistem mampu menyelesaikan pembayaran penggajian dengan cepat.
f. Sistem mampu menampilkan sebuah keluaran dari proses penggajian
dengan berupa cetak slip gaji.
g. Sistem mampu menghasilkan laporan dengan periode bulanan.
3.3.2. Use Case Diagram
1. Use Case Halaman Administrasi
Gambar III.3 Use Case Diagram Halaman Administrasi
uc Use Case Administrasi
Administrasi
Login
Data
Laporan
Pengguna
Log Out
Input ID dan Passwoard
Entri data karyawan
Proses gaj i karyawan
Absensi
Laporan Data Karyawan
Data Gaj i
Slip Gaj i
Kata Sandi
«extend»
«extend»
«include»
«extend»
«extend»
«extend»
«extend»
«extend»
29
Tabel III.1 Deskripsi Use Case Halaman Administrasi
Use Case Halaman Administrasi
Tujuan Admin dapat melihat data yang ada dihalaman admin Deskripsi Sistem ini memungkinkan aktor untuk masuk
kehalaman admin yang didalamnya ada data entri karyawan, memproses gaji karyawan, menginput absen karyawan, mengelola laporan data karyawan dan data gaji bulanan, dan mencetak slip gaji bulanan.
Skenario Utama Aktor Admin Kondisi Awal Aktor membuka aplikasi halaman admin
Aksi Aktor Reaksi sistem 1. Aktor melakukan
login Sistem menampilkan halaman login
2. Aktor memilih menu data
Sistem akan menampilkan halaman entri data karyawan, proses gaji karyawan dan absensi
3. Aktor memilih menu laporan
Sistem akan menampilkan halaman laporan data karyawan, data gaji dan slip gaji
4. Aktor memilih menu pengguna Sistem akan menampilkan ganti kata sandi
5. Aktor memilih menu logout Sistem akan menampilkan menu logout
30
2. Use Case Halaman Human Resources Development
Gambar III.4 Use Case Diagram Halaman Human Resources Development
Tabel III.2 Deskripsi Use Case Halaman Human Resources Development
Use Case Halaman Human Resources Development
Tujuan Human Resources Development dapat melihat data yang ada dihalaman Human Resources Development
Deskripsi Sistem ini memungkinkan aktor untuk masuk kehalaman Human Resources Development yang didalamnya ada data entri karyawan, memproses gaji karyawan, menginput absen karyawan, mengelola laporan data karyawan dan data gaji bulanan, mencetak slip gaji bulanan, master jabatan dan master pengguna.
uc Use Case Human Resources Dev elopment
Human Resources Dev elopment
Login
Data
Laporan
Pengguna
Log Out
Input ID dan Passwoard
Entri data karyawan
Proses gaj i karyawan
Absensi
Laporan Data Karyawan
Data Gaj i
Slip Gaj i
Kata Sandi
Administrator
Mastaer Jabatan
Master Pengguna
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«include»
«extend»
«extend»
«extend»
31
Skenario Utama Aktor Human Resources Development Kondisi Awal Aktor membuka aplikasi halaman admin
Aksi Aktor Reaksi sistem 1. Aktor melakukan
login Sistem menampilkan halaman login.
2. Aktor memilih menu data
Sistem akan menampilkan halaman entri data karyawan, proses gaji karyawan dan absensi.
3. Aktor memilih menu administrator
Sistem akan menampilkan halaman master jabatan, dan master pengguna.
4. Aktor memilih menu laporan
Sistem akan menampilkan halaman laporan data karyawan, data gaji dan slip gaji
5. Aktor memilih menu pengguna Sistem akan menampilkan ganti kata sandi.
6. Aktor memilih menu logout Sistem akan menampilkan menu logout.
3.3.3. Activity Diagram
1. Activity Diagram Halaman Login
Gambar III.5 Activity Diagram Halaman Login
32
2. Activity Diagram Halaman Entri Data Karyawan
Gambar III.6 Activity Diagram Halaman Entri Data Karyawan
33
3. Activity Diagram Halaman Proses Gaji Karyawan
Gambar III.7 Activity Diagram Halaman Proses Gaji Karyawan
34
4. Activity Diagram Halaman Absensi Karyawan
Gambar III.8 Activity Diagram Halaman Absensi Karyawan
35
5. Activity Diagram Halaman Data Laporan
a. Activity Diagram Halaman Laporan Data Karyawan
Gambar III.9 Activity Diagram Halaman Laporan Data Karyawan
b. Activity Diagram Halaman Laporan Gaji Bulanan
Gambar III.10 Activity Diagram Halaman Laporan Gaji Bulanan
36
c. Activity Diagram Halaman Laporan Slip Gaji
Gambar III.11 Activity Diagram Halaman Slip Gaji
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
Langkah awal dalam membangun sebuah aplikasi yaitu membuat rancangan
basis data untuk mempermudah dalam mengalisa dan membangun sistem yang akan
dibuat. Pemetaan tabel-tabel dalam basis data tersebut digambarkan dalam bentuk
Entity Relationship Diagram (ERD).
37
Gambar III.12 Entity Relationship Diagram (ERD)
3.4.2. Logical Record Structure (LRS)
Logical Record Structure (LRS) representasi dari struktur record-record pada
tabel-tabel yang terbentuk dari hasil antar himpunan entitas. Logical Record
Structure dibentuk dengan nomer dari tipe record.
38
Gambar III.13 Logical Record Structure (LRS) 3.4.3. Spesifikasi File
Berikut adalah penjelasan tabel-tabel yang digunakan dalam program yang
diusulkan serta field yang terdapat pada file database yang dibangun.
1. Spesifikasi File Pengguna
Nama File : Pengguna
Akronim : DB_PENGGUNA
Fungsi : Menglola data pengguna program aplikasi
Tipe File : File Master
Organisasi File : Index Sequential
Akses File : Random
Media : Hardisk
Panjang Record : 56 Byte
Kunci Field : ID_PGN
Software : Microsoft Access 2002-2003
39
Tabel III. 3 Spesifikasi File Pengguna
No. Elemen Data Akronim Tipe Panjang Keterangan 1 ID Pengguna ID_PGN Text 10 Primary Key 2 Nama Pengguna NAMA_PGN Text 25 3 Kata Sandi Pengguna SANDI_PGN Text 6 4 Level Akses Pengguna LVL_AKSES Byte - 5 Hak Akses Pengguna KET_B Text 15
2. Spesifikasi File Karyawan
Nama File : Karyawan
Akronim : DB_KARYAWAN
Fungsi : Mengelola data karyawan
Tipe File : File Master
Organisasi File : Index Sequential
Akses File : Random
Media : Hardisk
Panjang Record : 315 Byte
Kunci Field : ID_Karyawan
Software : Microsoft Access 2002-2003
Tabel III. 4 Spesifikasi File Karyawan
No. Elemen Data Akronim Tipe Panjang Keterangan 1 ID Karyawan ID_Karyawan Text 8 Primary Key 2 Nama Karyawan Nama_Karyawan Text 25 3 Jenis Kelamin Dt_Gender Text 10 4 Umur Dt_Umur Text 3 5 Telepon Dt_Telp Text 12 6 E-Mail Dt_Email Text 40 7 Kode Jabatan Kode_Jab Text 5 Foreign Key 8 Alamat Ad_Alamat Text 25 9 RT Ad_RT Text 3
10 RW Ad_RW Text 3 11 Kelurahan Ad_Kel Text 20 12 Kecamatan Ad_Kec Text 20 13 Kabupaten Ad_Kab Text 20 14 Provinsi Ad_Prov Text 20 15 Kode Pos Ad_Pos Text 6 16 Nama Bank Bank_Nm Text 25
40
17 Nomor Rekening Bank_NoRek Text 30 18 Pemilik Rekening Bank_Own Text 25 19 Cabang Bank Bank_Cab Text 15 20 File Pas Foto Foto_File OLE Object - 21 Tanggal Join Join_Dt Date -
3. Spesifikasi File Jabatan
Nama File : Jabatan
Akronim : DB_PEKERJAAN
Fungsi : Mengelola data jabatan
Tipe File : File Master
Organisasi File : Index Sequential
Akses File : Random
Media : Hardisk
Panjang Record : 30 Byte
Kunci Field : Kode_Jab
Software : Microsoft Access 2002-2003
Tabel III. 5 Spesifikasi File Jabatan
No. Elemen Data Akronim Tipe Panjang Keterangan 1 Kode Jabatan Kode_Jab Text 5 Primary Key 2 Nama Jabatan Nm_Jab Text 25 3 Gaji per Hari Gaji_Harian Double - 4 Transportasi Transport_B Double - 5 Tunjangan Tunjangan_B Double - 6 Potongan BPJS-TK Pot_BPJS Double -
4. Spesifikasi File Gaji Karyawan
Nama File : Gaji Karyawan
Akronim : DB_PENGGAJIAN
Fungsi : Menyimpan data kategori barang
Tipe File : File Transaksi
Organisasi File : Index Sequential
41
Akses File : Random
Media : Hardisk
Panjang Record : 47 Byte
Kunci Field : ID_Gaji
Software : Microsoft Access 2002-2003
Tabel III. 6 Spesifikasi File Gaji Karyawan
No. Elemen Data Akronim Tipe Panjang Keterangan 1 Tanggal Gaji Prd_Gaji Date -
2 ID Gaji ID_Gaji Text 14 Primary Key
3 ID Karyawan ID_Karyawan Text 8 Foreign Key 4 Total Gaji Total_Gaji_Net Double - 5 Keterangan Gaji Ket_B Text 15 6 ID Pengguna ID_PGN Text 10 Foreign Key
5. Spesifikasi File Absensi Karyawan
Nama File : Absensi Karyawan
Akronim : DB_ABSEN
Fungsi : Menyimpan data absen karyawan
Tipe File : File Transaksi
Organisasi File : Index Sequential
Akses File : Random
Media : Hardisk
Panjang Record : 18 Byte
Kunci Field : ID_Absen
Software : Microsoft Access 2002-2003
Tabel III. 7 Spesifikasi File Slip Gaji
42
No. Elemen Data Akronim Tipe Panjang Keterangan 1 ID Absen ID_Absen Date -
2 ID Karyawan ID_Karyawan Text 14 Primary Key
3 Bulan Gaji Abs_Bulan Text 8 Foreign Key 4 Tahun Gaji Abs_Tahun Double - 5 Hadir Abs_Hadir Text 15 6 Absen Abs_Tidak_Hadir Text 10 Foreign Key
3.4.4. Sequence Diagram
Gambar III.14 Sequence Diagram
sd Sequence Diagram Penggaj ian
AdministrasiFrom Login Control Login Halaman
AdministrasiData Karyawan Data Absensi Slip Gaj i
1.Masukan ID&Pswrd()
3.Menampilkan Halaman Login()
5.Input Data Absensi()
4.Input Data Karyawan()
6.Input Data Slip Gaji & Cetak()
2.User & Pswrd()
43
3.4.5. Deployment Diagram
Gambar III.15 Deployment Diagram 3.4.6. User Interface
Berikut adalah interface / tampilan antar muka dari perancangan sistem
informasi penggajian karyawan pada PT. Esensi Indonesia :
1. User Interface Halaman Login
Gambar III.16 User Interface Halaman Login
44
2. User Interface Halaman Entri Data Karyawan
Gambar III.17 User Interface Halaman Entri Data Karyawan 3. User Interface Halaman Proses Gaji Karyawan
Gambar III.18 User Interface Halaman Proses Gaji Karyawan
45
4. User Interface Halaman Absen Karyawan
Gambar III.19 User Interface Halaman Absen Karyawan 5. User Interface Halaman Kelola Data Jabatan Karyawan
Gambar III.20 User Interface Halaman Kelola Data Jabatan Karyawan
46
6. User Interface Halaman Kelola Data Pengguna Aplikasi
Gambar III.21 User Interface Halaman Kelola Data Pengguna Aplikasi 7. User Interface Halaman Laporan Data Karyawan
Gambar III.22 User Interface Halaman Laporan Data Karyawan
47
8. User Interface Halaman Laporan Data Gaji Bulanan
Gambar III.23 User Interface Halaman Laporan Data Gaji Bulanan 9. User Interface Halaman Slip Gaji
Gambar III.24 User Interface Halaman Slip Gaji
48
10. User Interface Halaman Ganti Kata Sandi
Gambar III.25 User Interface Halaman Ganti Kata Sandi
3.5. Implementasi
3.5.1. Code Generation
1. Modules
Public Conn_DB As New ADODB.Connection
Public RsCombo As New ADODB.Recordset
Public Module_Karyawan As New ADODB.Recordset
Public Module_Karyawan_Qry As New ADODB.Recordset
Public Module_Absen As New ADODB.Recordset
Public Module_Jabatan As New ADODB.Recordset
Public Module_Gaji_Qry As New ADODB.Recordset
Public Module_Pengguna As New ADODB.Recordset
Public Module_Img As ADODB.Stream
Public View_Img As Boolean
Public Err_Pic As Boolean
Sub Open_DB()
Set Conn_DB = New ADODB.Connection
Set RsCombo = New ADODB.Recordset
Set Module_Karyawan = New ADODB.Recordset
Set Module_Karyawan_Qry = New ADODB.Recordset
Set Module_Absen = New ADODB.Recordset
Set Module_Jabatan = New ADODB.Recordset
Set Module_Pengguna = New ADODB.Recordset
Set Module_Gaji_Qry = New ADODB.Recordset
Conn_DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Persist Security Info=False; Data Source = " & App.Path &
49
"\Database\DB_GAJI.mdb"
Conn_DB.Open
End Sub
2. Form Entri Data Karyawan
Dim lihat As New ADODB.Recordset
Sub Lihat_Jabatan()
Call Open_DB
Module_Jabatan.Open "SELECT*FROM DB_PEKERJAAN WHERE Kode_Jab='" &
Me.Kode_Jab_Combo.Text & "'", Conn_DB
Module_Jabatan.Requery
'-----------------------------------------------------------------
If Not Module_Jabatan.EOF Then
Me.Nama_Jab = Module_Jabatan!Nm_Jab
Me.Gaji_Jab = Module_Jabatan!Gaji_Harian
Me.transport_lbl = Module_Jabatan!Transport_B
Me.tunjgn_lbl = Module_Jabatan!Tunjangan_B
Me.Pot_BPJS_Jab = Module_Jabatan!Pot_Bpjs
End If
End Sub
Sub Auto_NIK_Code()
Call Open_DB
Module_Karyawan.Open ("SELECT*FROM DB_KARYAWAN WHERE ID_Karyawan
IN(SELECT MAX(ID_Karyawan) FROM DB_KARYAWAN) ORDER BY ID_Karyawan
ASC"), Conn_DB
Module_Karyawan.Requery
Dim urutan As String
Dim hitung As Long
With Module_Karyawan
If .EOF Then
urutan = "ESJ" & "0001"
Me.NIK_Karyawan = urutan
Else
hitung = Right(!ID_Karyawan, 4) + 1
urutan = "ESJ" & Right("0000" & hitung, 4)
End If
Me.NIK_Karyawan = urutan
End With
End Sub
Sub Max_Char()
Me.NM_Karyawan.MaxLength = 25
Me.Umur_Karyawan.MaxLength = 2
Me.Telp_Karyawan.MaxLength = 12
Me.Email_Karyawan.MaxLength = 40
'-----------------------------------
Me.Alamat_Karyawan.MaxLength = 25
Me.RT_Ad.MaxLength = 3
Me.RW_Ad.MaxLength = 3
Me.Kelurahan_Ad.MaxLength = 20
Me.Kecamatan_Ad.MaxLength = 20
Me.Kabupaten_Ad.MaxLength = 20
Me.Provinsi_Ad.MaxLength = 20
50
Me.KodePos_Ad.MaxLength = 6
'-----------------------------------
Me.Nama_Bank.MaxLength = 25
Me.NoRek_Bank.MaxLength = 30
Me.Own_Bank.MaxLength = 25
Me.Cab_Bank.MaxLength = 15
End Sub
Sub Bersih_Tampilan()
'-----------------------------------
Me.Cari_ID = ""
'-----------------------------------
Me.NIK_Karyawan = ""
Me.NM_Karyawan = ""
Me.Gender_Karyawan = ""
Me.Umur_Karyawan = ""
Me.Telp_Karyawan = ""
Me.Email_Karyawan = ""
'-----------------------------------
Me.Alamat_Karyawan = "Jl."
Me.RT_Ad = ""
Me.RW_Ad = ""
Me.Kelurahan_Ad = ""
Me.Kecamatan_Ad = ""
Me.Kabupaten_Ad = ""
Me.Provinsi_Ad = ""
Me.KodePos_Ad = ""
'-----------------------------------
Me.Kode_Jab_Combo = ""
Me.Nama_Jab = ""
Me.Gaji_Jab = ""
Me.transport_lbl = ""
Me.tunjgn_lbl = ""
Me.Pot_BPJS_Jab = ""
'-----------------------------------
Me.Nama_Bank = ""
Me.NoRek_Bank = ""
Me.Own_Bank = ""
Me.Cab_Bank = ""
'------------------------------------------
Me.CDI.FileName = ""
Me.Pas_Foto_Img.Picture = LoadPicture("")
'------------------------------------------
Me.Frame_Data_Karyawan.Enabled = False
Me.Frame_Data_Pekerjaan.Enabled = False
Me.Frame_Data_Rek.Enabled = False
Me.Frame_Foto.Enabled = False
Me.CMD_Cari_Foto.Enabled = False
'------------------------------------------
Me.CMD_Baru.Enabled = True
Me.CMD_Simpan.Enabled = False
Me.CMD_Edit.Enabled = False
Me.CMD_Hapus.Enabled = False
Me.CMD_Batal.Enabled = False
End Sub
Sub Tampil_Data()
Me.NIK_Karyawan = Me.DataGrid1.Columns(0).Text
Me.NM_Karyawan = Me.DataGrid1.Columns(1).Text
Me.Gender_Karyawan = Me.DataGrid1.Columns(2).Text
51
Me.Umur_Karyawan = Me.DataGrid1.Columns(3).Text
Me.Telp_Karyawan = Me.DataGrid1.Columns(4).Text
Me.Email_Karyawan = Me.DataGrid1.Columns(5).Text
Me.Kode_Jab_Combo = Me.DataGrid1.Columns(6).Text
Me.Alamat_Karyawan = Me.DataGrid1.Columns(7).Text
Me.RT_Ad = Me.DataGrid1.Columns(8).Text
Me.RW_Ad = Me.DataGrid1.Columns(9).Text
Me.Kelurahan_Ad = Me.DataGrid1.Columns(10).Text
Me.Kecamatan_Ad = Me.DataGrid1.Columns(11).Text
Me.Kabupaten_Ad = Me.DataGrid1.Columns(12).Text
Me.Provinsi_Ad = Me.DataGrid1.Columns(13).Text
Me.KodePos_Ad = Me.DataGrid1.Columns(14).Text
Me.Nama_Bank = Me.DataGrid1.Columns(15).Text
Me.NoRek_Bank = Me.DataGrid1.Columns(16).Text
Me.Own_Bank = Me.DataGrid1.Columns(17).Text
Me.Cab_Bank = Me.DataGrid1.Columns(18).Text
End Sub
Sub Tabel_Grid()
Call Open_DB
Conn_DB.CursorLocation = adUseClient
Module_Karyawan.Open "SELECT*FROM DB_KARYAWAN", Conn_DB,
adOpenDynamic, adLockOptimistic
Module_Karyawan.Requery
Set Me.DataGrid1.DataSource = Module_Karyawan.DataSource
Me.DataGrid1.Columns(0).Width = 800
Me.DataGrid1.Columns(1).Width = 1800
Me.DataGrid1.Columns(2).Width = 0
Me.DataGrid1.Columns(3).Width = 0
Me.DataGrid1.Columns(4).Width = 0
Me.DataGrid1.Columns(5).Width = 0
Me.DataGrid1.Columns(6).Width = 800
Me.DataGrid1.Columns(7).Width = 0
Me.DataGrid1.Columns(8).Width = 0
Me.DataGrid1.Columns(9).Width = 0
Me.DataGrid1.Columns(10).Width = 0
Me.DataGrid1.Columns(11).Width = 0
Me.DataGrid1.Columns(12).Width = 0
Me.DataGrid1.Columns(13).Width = 0
Me.DataGrid1.Columns(14).Width = 0
Me.DataGrid1.Columns(15).Width = 0
Me.DataGrid1.Columns(16).Width = 0
Me.DataGrid1.Columns(17).Width = 0
Me.DataGrid1.Columns(18).Width = 0
Me.DataGrid1.Columns(19).Width = 0
'-------------------------------------------------------------
Me.DataGrid1.Columns(0).Caption = "ID"
Me.DataGrid1.Columns(1).Caption = "Nama"
Me.DataGrid1.Columns(6).Caption = "Jabatan"
End Sub
Sub Simpan_Foto()
SavePicture Me.Pas_Foto_Img.Picture, App.Path & "\Foto\ID_" &
Me.NIK_Karyawan & ".jpeg"
End Sub
Sub Tampil_Foto()
If Dir(App.Path & "\Foto\ID_" & Me.NIK_Karyawan & ".jpeg") <> ""
Then
52
Me.Pas_Foto_Img.Picture = LoadPicture(App.Path & "\Foto\ID_" &
Me.NIK_Karyawan & ".jpeg")
Else
MsgBox "Foto Tidak Ada, Periksa Direktori Foto atau Unggah Ulang
Foto Karyawan dengan File Baru", vbInformation, "Foto Karyawan"
End If
End Sub
Sub Hapus_Foto()
Kill (App.Path & "\Foto\ID_" & Me.NIK_Karyawan & ".jpeg")
End Sub
Sub Simpan_Proses()
If Me.CDI.FileName = "" Then
Module_Img.LoadFromFile (App.Path & "\Temp.jpeg")
Else
Module_Img.LoadFromFile (Me.CDI.FileName)
End If
Module_Karyawan!Foto_File = Module_Img.Read
Module_Karyawan.Update
Module_Karyawan.Close
Me.CDI.FileName = ""
End Sub
Sub Simpan_Data()
Call Open_DB
Module_Karyawan.Open "SELECT*FROM DB_KARYAWAN WHERE ID_Karyawan='" &
Me.NIK_Karyawan & "'", Conn_DB, adOpenStatic, adLockOptimistic
With Module_Karyawan
.AddNew
Module_Karyawan!ID_Karyawan = Me.NIK_Karyawan
Module_Karyawan!Nama_Karyawan = Me.NM_Karyawan
Module_Karyawan!Dt_Gender = Me.Gender_Karyawan
Module_Karyawan!Dt_Umur = Me.Umur_Karyawan
Module_Karyawan!Dt_Telp = Me.Telp_Karyawan
Module_Karyawan!Dt_Email = Me.Email_Karyawan
Module_Karyawan!Kode_Jab = Me.Kode_Jab_Combo
Module_Karyawan!Ad_Alamat = Me.Alamat_Karyawan
Module_Karyawan!Ad_RT = Me.RT_Ad
Module_Karyawan!Ad_RW = Me.RW_Ad
Module_Karyawan!Ad_Kel = Me.Kelurahan_Ad
Module_Karyawan!Ad_Kec = Me.Kecamatan_Ad
Module_Karyawan!Ad_Kab = Me.Kabupaten_Ad
Module_Karyawan!Ad_Prov = Me.Provinsi_Ad
Module_Karyawan!Ad_Pos = Me.KodePos_Ad
Module_Karyawan!Bank_Nm = Me.Nama_Bank
Module_Karyawan!Bank_NoRek = Me.NoRek_Bank
Module_Karyawan!Bank_Own = Me.Own_Bank
Module_Karyawan!Bank_Cab = Me.Cab_Bank
.Update
'----------------------------------------------------
MsgBox "Data Berhasil Disimpan", vbInformation, "Simpan"
End With
End Sub
Sub Edit_Data()
Call Open_DB
GANTI = "UPDATE DB_KARYAWAN SET Nama_Karyawan='" & Me.NM_Karyawan &
"', Dt_Gender='" & Me.Gender_Karyawan & "', Dt_Umur='" &
53
Me.Umur_Karyawan & "', Dt_Telp='" & Me.Telp_Karyawan & "',
Dt_Email='" & Me.Email_Karyawan & "', Kode_Jab='" &
Me.Kode_Jab_Combo & "',Ad_Alamat='" & Me.Alamat_Karyawan &
"',Ad_RT='" & Me.RT_Ad & "',Ad_RW='" & Me.RW_Ad & "',Ad_Kel='" &
Me.Kelurahan_Ad & "',Ad_Kec='" & Me.Kecamatan_Ad & "',Ad_Kab='" &
Me.Kabupaten_Ad & "',Ad_Prov='" & Me.Provinsi_Ad & "',Ad_Pos='" &
Me.KodePos_Ad & "',Bank_Nm='" & Me.Nama_Bank & "',Bank_NoRek='" &
Me.NoRek_Bank & "',Bank_Own='" & Me.Own_Bank & "',Bank_Cab='" &
Me.Cab_Bank & "' WHERE ID_Karyawan='" & Me.NIK_Karyawan & "'"
Conn_DB.Execute GANTI
End Sub
Sub Hapus_Data()
Call Open_DB
HAPUS = "DELETE FROM DB_KARYAWAN WHERE ID_Karyawan='" &
Me.NIK_Karyawan & "'"
Conn_DB.Execute HAPUS
End Sub
Private Sub Cari_ID_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
'-------------------------------------------------------------------
-------------------------------
Call Open_DB
Module_Karyawan.Open "SELECT*FROM DB_KARYAWAN WHERE
ID_Karyawan='" & Me.Cari_ID & "'", Conn_DB
Module_Karyawan.Requery
'---------------------------------------------------------------
-------------------------------
If Module_Karyawan.EOF Then
MsgBox "ID Karyawan Tidak Ditemukan", vbCritical,
"Kesalahan"
Me.Cari_ID = ""
Me.Cari_ID.SetFocus
Exit Sub
Else
'-----------------------------------------------------------
-------------------------------
Me.NIK_Karyawan = Module_Karyawan!ID_Karyawan
Me.NM_Karyawan = Module_Karyawan!Nama_Karyawan
Me.Gender_Karyawan = Module_Karyawan!Dt_Gender
Me.Umur_Karyawan = Module_Karyawan!Dt_Umur
Me.Telp_Karyawan = Module_Karyawan!Dt_Telp
Me.Email_Karyawan = Module_Karyawan!Dt_Email
Me.Kode_Jab_Combo = Module_Karyawan!Kode_Jab
Me.Alamat_Karyawan = Module_Karyawan!Ad_Alamat
Me.RT_Ad = Module_Karyawan!Ad_RT
Me.RW_Ad = Module_Karyawan!Ad_RW
Me.Kelurahan_Ad = Module_Karyawan!Ad_Kel
Me.Kecamatan_Ad = Module_Karyawan!Ad_Kec
Me.Kabupaten_Ad = Module_Karyawan!Ad_Kab
Me.Provinsi_Ad = Module_Karyawan!Ad_Prov
Me.KodePos_Ad = Module_Karyawan!Ad_Pos
Me.Nama_Bank = Module_Karyawan!Bank_Nm
Me.NoRek_Bank = Module_Karyawan!Bank_NoRek
Me.Own_Bank = Module_Karyawan!Bank_Own
Me.Cab_Bank = Module_Karyawan!Bank_Cab
'-----------------------------------------------------------
-------------------------------
54
Call Me.Tampil_Foto
Call Me.Lihat_Jabatan
End If
Me.CMD_Baru.Enabled = False
Me.CMD_Simpan.Enabled = False
Me.CMD_Edit.Enabled = True
Me.CMD_Hapus.Enabled = True
Me.CMD_Batal.Enabled = True
'------------------------------------------
Me.Frame_Data_Karyawan.Enabled = True
Me.Frame_Data_Pekerjaan.Enabled = True
'------------------------------------------
End If
End Sub
Private Sub CMD_Baru_Click()
Call Me.Auto_NIK_Code
'------------------------------------------
Me.CMD_Baru.Enabled = False
Me.CMD_Simpan.Enabled = True
Me.CMD_Edit.Enabled = False
Me.CMD_Hapus.Enabled = False
Me.CMD_Batal.Enabled = True
'------------------------------------------
Me.Frame_Data_Karyawan.Enabled = True
Me.Frame_Data_Pekerjaan.Enabled = True
Me.Frame_Data_Rek.Enabled = True
Me.Frame_Foto.Enabled = True
Me.CMD_Cari_Foto.Enabled = True
'------------------------------------------
Me.NM_Karyawan.SetFocus
End Sub
Private Sub CMD_Batal_Click()
'---------------------------------
Call Me.Bersih_Tampilan
'---------------------------------
Me.CMD_Baru.Enabled = True
Me.CMD_Simpan.Enabled = False
Me.CMD_Edit.Enabled = False
Me.CMD_Hapus.Enabled = False
Me.CMD_Batal.Enabled = False
Me.CMD_Cari_Foto.Enabled = False
End Sub
Private Sub CMD_Cari_Foto_Click()
Me.CDI.Filter = "JPEG Image (*.jpg)|*.jpg|All Files (*.*)|*.*"
Me.CDI.ShowOpen
Me.Pas_Foto_Img.Picture = LoadPicture(Me.CDI.FileName)
Vimg = True
End Sub
Private Sub CMD_Edit_Click()
Call Me.Edit_Data
Call Me.Simpan_Foto
Call Me.Tabel_Grid
MsgBox "Perubahan Tersimpan", vbInformation, "Informasi"
Call Me.Bersih_Tampilan
End Sub
55
Private Sub CMD_Hapus_Click()
Pesan = MsgBox("Apakah Anda Yakin untuk Menghapus Data Ini..?
Penghapusan Data Tidak Dapat Diurungkan", vbCritical + vbYesNo,
"Peringatan")
If Pesan = vbYes Then
Call Me.Hapus_Foto
Call Me.Hapus_Data
Call Me.Tabel_Grid
MsgBox "Data Terhapus Secara Permanen", vbInformation, "Hapus"
Call Me.Bersih_Tampilan
End If
End Sub
Private Sub CMD_Simpan_Click()
If Me.NM_Karyawan = "" Or Me.Gender_Karyawan = "" Or
Me.Umur_Karyawan = "" Or Me.Telp_Karyawan = "" Or Me.Email_Karyawan
= "" Or Me.Alamat_Karyawan = "" Or Me.RT_Ad = "" Or Me.RW_Ad = "" Or
Me.Kelurahan_Ad = "" Or Me.Kecamatan_Ad = "" Or Me.Kabupaten_Ad = ""
Or Me.Provinsi_Ad = "" Or Me.KodePos_Ad = "" Then
MsgBox "Biodata Karyawan Belum Lengkap", vbCritical,
"Peringatan"
Me.NM_Karyawan.SetFocus
Exit Sub
Else
If IsNumeric(Me.Umur_Karyawan) = False Then
MsgBox "Formar Umur pada Biodata Karyawan Salah", vbCritical,
"Peringatan"
Me.Umur_Karyawan = ""
Me.Umur_Karyawan.SetFocus
Exit Sub
Else
If Me.Kode_Jab_Combo = "" Then
MsgBox "Data Pekerjaan Belum Ada", vbCritical, "Peringatan"
Me.Kode_Jab_Combo.SetFocus
Exit Sub
Else
If Me.Nama_Bank = "" Or Me.NoRek_Bank = "" Or Me.Own_Bank = "" Or
Me.Cab_Bank = "" Then
MsgBox "Data Rekening Belum Ada", vbCritical, "Peringatan"
Me.Nama_Bank.SetFocus
Exit Sub
Else
If Me.CDI.FileName = "" Then
MsgBox "Belum Ada Foto Karyawan", vbCritical, "Peringatan"
Me.CMD_Cari_Foto.SetFocus
Exit Sub
Else
Call Me.Simpan_Data
Call Me.Simpan_Foto
Call Me.Simpan_Proses
Call Me.Tabel_Grid
Call Me.Bersih_Tampilan
End If
End If
End If
End If
End If
End Sub
56
Private Sub DataGrid1_DblClick()
Call Me.Tampil_Data
Call Me.Lihat_Jabatan
Call Me.Tampil_Foto
'--------------------------------------------
Me.CMD_Baru.Enabled = False
Me.CMD_Simpan.Enabled = False
Me.CMD_Edit.Enabled = True
Me.CMD_Hapus.Enabled = True
Me.CMD_Batal.Enabled = True
'------------------------------------------
Me.Frame_Data_Karyawan.Enabled = True
Me.Frame_Data_Pekerjaan.Enabled = True
Me.Frame_Data_Rek.Enabled = True
Me.Frame_Foto.Enabled = True
End Sub
Private Sub Form_Activate()
Call Me.Max_Char
End Sub
Private Sub Form_Load()
Me.Move MDIForm1.ScaleWidth / 2 - Me.Width / 2, MDIForm1.ScaleHeight
/ 2 - Me.Height / 2
Me.Cari_ID.MaxLength = 8
'--------------------------------------------
Me.Gender_Karyawan.AddItem ("Laki-Laki")
Me.Gender_Karyawan.AddItem ("Perempuan")
'--------------------------------------------
Me.Frame_Data_Karyawan.Enabled = False
Me.Frame_Data_Pekerjaan.Enabled = False
Me.Frame_Data_Rek.Enabled = False
Me.Frame_Foto.Enabled = False
Me.CMD_Cari_Foto.Enabled = False
'--------------------------------------------
Me.CMD_Baru.Enabled = True
Me.CMD_Simpan.Enabled = False
Me.CMD_Edit.Enabled = False
Me.CMD_Hapus.Enabled = False
Me.CMD_Batal.Enabled = False
'--------------------------------------------
Call Me.Tabel_Grid
'--------------------------------------------
Call Open_DB
Set Module_Img = New ADODB.Stream
Module_Img.Type = adTypeBinary
Module_Img.Open
'--------------------------------------------
Call Open_DB
RsCombo.Open "SELECT*FROM DB_PEKERJAAN WHERE Kode_Jab", Conn_DB,
adOpenDynamic, adLockOptimistic
Me.Kode_Jab_Combo.Clear
Do While Not RsCombo.EOF
Me.Kode_Jab_Combo.AddItem RsCombo!Kode_Jab
RsCombo.MoveNext
Loop
RsCombo.Close
End Sub
57
Private Sub Gaji_Jab_Change()
Me.Gaji_Jab = Format(Me.Gaji_Jab, "Rp #,###0")
End Sub
Private Sub Kode_Jab_Combo_Click()
Call Open_DB
RsCombo.Open "SELECT*FROM DB_PEKERJAAN WHERE Kode_Jab='" &
Me.Kode_Jab_Combo & "'", Conn_DB, adOpenDynamic, adLockOptimistic
RsCombo.Requery
With RsCombo
If .EOF And .BOF Then
MsgBox "Data Belum Ada", vbInformation, "Informasi"
Exit Sub
Else
Me.Nama_Jab = !Nm_Jab
Me.Gaji_Jab = !Gaji_Harian
Me.transport_lbl = !Transport_B
Me.tunjgn_lbl = !Tunjangan_B
Me.Pot_BPJS_Jab = !Pot_Bpjs
End If
End With
End Sub
Private Sub Pot_BPJS_Jab_Change()
Me.Pot_BPJS_Jab = Format(Me.Pot_BPJS_Jab, "Rp #,###0")
End Sub
Private Sub transport_lbl_Change()
Me.transport_lbl = Format(Me.transport_lbl, "Rp #,###0")
End Sub
Private Sub tunjgn_lbl_Change()
Me.tunjgn_lbl = Format(Me.tunjgn_lbl, "Rp #,###0")
End Sub
3. Form Proses Data Gaji Karyawan
Dim RsCombo As New ADODB.Recordset
Dim lihat As New ADODB.Recordset
Sub Hitung_Gaji()
Dim gapok, ptg, ttl As Double
Gapok = (Val(Me.bsc_slry_lb)*26)+(Val(Me.transprt_lb)+
Val(Me.tnjg_lb))
ptg = Val(Me.pt_bpjs_lb) + Val(Me.biaya_adm)
ttl = Val(gapok) - Val(ptg)
Me.ttl_gaji_lb = ttl
Me.ttl_gaji_str = ttl
Me.ttl_gaji_str = Format(Me.ttl_gaji_lb, "Rp #,###0")
End Sub
Sub Hitung_Sub_Pendapatan()
Dim ttl As Double
ttl = (Val(Me.bsc_slry_lb) * 26) + (Val(Me.transprt_lb) +
Val(Me.tnjg_lb))
Me.sub_pndptan = ttl
Me.sub_pndptan = Format(Me.sub_pndptan, "Rp #,###0")
End Sub
58
Sub Hitung_Sub_Potongan()
Dim ttl As Double
ttl = Val(Me.pt_bpjs_lb) + Val(Me.biaya_adm)
Me.sub_ptgn = ttl
Me.sub_ptgn = Format(Me.sub_ptgn, "Rp #,###0")
End Sub
Sub ID_Auto()
Dim urutan As String
urutan = "ESJ" & Me.kode_jab_lb & Format(Date, "YYMM") &
Right(Me.id_kry_lb, 4)
Me.id_slip_lb = urutan
End Sub
Sub Cek_Gaji_ID()
Call Me.Con_Str_Gaji
With Me.Adodc3.Recordset
.Find "ID_Gaji='" & Me.id_slip_lb & "'", , adSearchForward
If Not .EOF Then
urutan = "ESJ" & Me.kode_jab_lb & Format(Date, "YYMM") &
Right(Me.id_kry_lb, 4)
Me.id_slip_lb = urutan
Me.Ket_Gaji = "Sudah Dibayar"
Else
If .EOF Then
urutan = "ESJ" & Me.kode_jab_lb & Format(Date, "YYMM") &
Right(Me.id_kry_lb, 4)
Me.id_slip_lb = urutan
Me.Ket_Gaji = "Belum Dibayar"
End If
End If
End With
End Sub
Sub Simpan_Data()
Call Me.Con_Str_Gaji
With Me.Adodc3.Recordset
If Format(MDIForm1.StatusBar1.Panels(9), "DD") <> 25 Then
MsgBox "Pembayaran Gaji Dilakukan Setiap Tanggal 25 pada
Akhir Bulan", vbCritical, "Kesalahan"
Exit Sub
Else
If Not .EOF Then
MsgBox "Gaji Sudah Dibayar", vbCritical, "Keterangan"
Exit Sub
Else
If .EOF Then
.AddNew
.Fields!Prd_Gaji =
Format(MDIForm1.StatusBar1.Panels(9), "DD/MM/YYYY")
.Fields!ID_Gaji = Me.id_slip_lb
.Fields!ID_Karyawan = Me.id_kry_lb
.Fields!Total_Gaji_Net = Me.ttl_gaji_lb
.Fields!KET_B = "Sudah Dibayar"
.Fields!ID_PGN = MDIForm1.StatusBar1.Panels(3).Text
.Update
End If
End If
End If
59
End With
MsgBox "Data Gaji Tersimpan", vbInformation, ""
End Sub
Sub Bersih()
Me.id_kry_lb = ""
Me.nm_karyawan = ""
Me.kode_jab_lb = ""
Me.nm_jab_lb = ""
Me.bsc_slry_lb = ""
Me.transprt_lb = ""
Me.tnjg_lb = ""
Me.pt_bpjs_lb = ""
Me.ttl_gaji_lb = ""
Me.Pas_Foto_Img.Picture = LoadPicture("")
End Sub
Sub Tampil_Foto()
If Dir(App.Path & "\Foto\ID_" & Me.id_kry_lb & ".jpeg") <> "" Then
Me.Pas_Foto_Img.Picture = LoadPicture(App.Path & "\Foto\ID_" &
Me.id_kry_lb & ".jpeg")
Else
MsgBox "Foto Tidak Ada, Periksa Direktori Foto atau Unggah
Ulang Foto Karyawan dengan File Baru", vbInformation, "Foto
Karyawan"
End If
End Sub
Sub Con_Str_Ado()
Me.Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Persist Security Info=False; Data Source = " & App.Path &
"\Database\DB_GAJI.mdb"
Me.Adodc1.CommandType = adCmdText
Me.Adodc1.RecordSource = "SELECT*FROM DB_KARYAWAN_Query ORDER BY
Nm_Jab"
Me.Adodc1.Refresh
Set Me.DataGrid1.DataSource = Me.Adodc1
Call Me.Tabel_Grid
End Sub
Sub Con_Str_Nav()
Me.Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Persist Security Info=False; Data Source = " & App.Path &
"\Database\DB_GAJI.mdb"
Me.Adodc2.CommandType = adCmdText
Me.Adodc2.RecordSource = "SELECT*FROM DB_KARYAWAN_Query WHERE
Nm_Jab LIKE '%" & Me.cmb_sort_jab & "%'"
Me.Adodc2.Refresh
Set Me.DataGrid1.DataSource = Me.Adodc2
Call Me.Tabel_Grid
End Sub
Sub Con_Str_Gaji()
Me.Adodc3.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Persist Security Info=False; Data Source = " & App.Path &
"\Database\DB_GAJI.mdb"
Me.Adodc3.CommandType = adCmdText
Me.Adodc3.RecordSource = "SELECT*FROM DB_PENGGAJIAN WHERE
ID_Gaji='" & Me.id_slip_lb & "'"
Me.Adodc3.Refresh
60
End Sub
Sub Tabel_Grid()
Me.Adodc1.Recordset.Sort = Me.DataGrid1.Columns(1).DataField
Me.DataGrid1.Columns(0).Width = 0
Me.DataGrid1.Columns(1).Width = 1600
Me.DataGrid1.Columns(2).Width = 780
Me.DataGrid1.Columns(3).Width = 2200
Me.DataGrid1.Columns(4).Width = 0
Me.DataGrid1.Columns(5).Width = 0
Me.DataGrid1.Columns(6).Width = 0
Me.DataGrid1.Columns(7).Width = 0
Me.DataGrid1.Columns(8).Width = 0
Me.DataGrid1.Columns(9).Width = 0
Me.DataGrid1.Columns(10).Width = 0
Me.DataGrid1.Columns(11).Width = 0
Me.DataGrid1.Columns(12).Width = 0
Me.DataGrid1.Columns(13).Width = 0
Me.DataGrid1.Columns(14).Width = 0
'Me.DataGrid1.Columns(15).Width = 0
'Me.DataGrid1.Columns(16).Width = 0
'Me.DataGrid1.Columns(17).Width = 0
'Me.DataGrid1.Columns(18).Width = 0
Me.DataGrid1.Columns(1).Caption = "Jabatan"
Me.DataGrid1.Columns(2).Caption = "ID"
Me.DataGrid1.Columns(3).Caption = "Nama"
End Sub
Private Sub cmb_sort_jab_Click()
Call Open_DB
Conn_DB.CursorLocation = adUseClient
Set lihat = New Recordset
SQL = "SELECT*FROM DB_KARYAWAN_Query WHERE Nm_Jab LIKE '%" &
Me.cmb_sort_jab & "%'"
lihat.Open SQL, Conn_DB, adOpenStatic, adLockReadOnly
Set Me.DataGrid1.DataSource = lihat.DataSource
'-------------------------------------------------------------
If lihat.EOF Then
MsgBox "Data Belum Tersedia", vbInformation, "Informasi"
Call Me.Bersih
Me.cmb_sort_jab = ""
Call Me.Con_Str_Ado
Call Me.Tabel_Grid
'---------------------------------------------------------
Me.Adodc1.Recordset.MoveFirst
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Gaji
Call Me.Cek_Gaji_ID
Exit Sub
Else
Call Me.Con_Str_Nav
Call Me.Tabel_Grid
'---------------------------------------------------------
Me.Adodc1.Recordset.MoveFirst
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Gaji
Call Me.Cek_Gaji_ID
61
End If
End Sub
Sub Tampil_Data()
Me.kode_jab_lb = Me.DataGrid1.Columns(0).Text
Me.nm_jab_lb = Me.DataGrid1.Columns(1).Text
Me.id_kry_lb = Me.DataGrid1.Columns(2).Text
Me.nm_karyawan = Me.DataGrid1.Columns(3).Text
Me.gender_txt = Me.DataGrid1.Columns(4).Text
Me.telp_txt = Me.DataGrid1.Columns(5).Text
Me.email_txt = Me.DataGrid1.Columns(6).Text
Me.bank_txt = Me.DataGrid1.Columns(7).Text
Me.rek_txt = Me.DataGrid1.Columns(8).Text
Me.pemilik_txt = Me.DataGrid1.Columns(9).Text
Me.cabang_txt = Me.DataGrid1.Columns(10).Text
Me.bsc_slry_lb = Me.DataGrid1.Columns(11).Text
Me.transprt_lb = Me.DataGrid1.Columns(12).Text
Me.tnjg_lb = Me.DataGrid1.Columns(13).Text
Me.pt_bpjs_lb = Me.DataGrid1.Columns(14).Text
Me.biaya_adm = 5000
End Sub
Sub Tampil_Data_Absen()
Call Open_DB
Module_Absen.Open "SELECT*FROM DB_ABSEN_Query "
End Sub
Private Sub CMD_Exit_Click()
Unload Me
Form_Menu_Utama.Show
End Sub
Private Sub CMD_Proses_Click()
Call Me.Simpan_Data
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
End Sub
Private Sub Command1_Click()
Call Me.Con_Str_Ado
Call Me.Tabel_Grid
'--------------------------------
Me.Adodc1.Recordset.MoveFirst
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Gaji
Call Me.Cek_Gaji_ID
'--------------------------------
Me.cmb_sort_jab = ""
End Sub
Private Sub Command2_Click()
If Me.cmb_sort_jab = "" Then
Me.Adodc1.Recordset.MoveFirst
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Sub_Pendapatan
62
Call Me.Hitung_Sub_Potongan
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
Exit Sub
Else
If Me.cmb_sort_jab = Me.Adodc2.Recordset.Fields("Nm_Jab") Then
Me.Adodc2.Recordset.MoveFirst
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
End If
End If
End Sub
Private Sub Command3_Click()
If Me.cmb_sort_jab.Text = "" Then
Me.Adodc1.Recordset.MovePrevious
If Me.Adodc1.Recordset.BOF Then
Me.Adodc1.Recordset.MoveFirst
End If
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Sub_Pendapatan
Call Me.Hitung_Sub_Potongan
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
Else
If Me.cmb_sort_jab = Me.Adodc2.Recordset.Fields("Nm_Jab") Then
Me.Adodc2.Recordset.MovePrevious
If Me.Adodc2.Recordset.BOF Then
Me.Adodc2.Recordset.MoveFirst
End If
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
End If
End If
End Sub
Private Sub Command4_Click()
If Me.cmb_sort_jab.Text = "" Then
Me.Adodc1.Recordset.MoveNext
If Me.Adodc1.Recordset.EOF Then
Me.Adodc1.Recordset.MoveLast
End If
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Sub_Pendapatan
Call Me.Hitung_Sub_Potongan
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
Else
If Me.cmb_sort_jab = Me.Adodc2.Recordset.Fields("Nm_Jab") Then
63
Me.Adodc2.Recordset.MoveNext
If Me.Adodc2.Recordset.EOF Then
Me.Adodc2.Recordset.MoveLast
End If
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
End If
End If
End Sub
Private Sub Command5_Click()
If Me.cmb_sort_jab = "" Then
Me.Adodc1.Recordset.MoveLast
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Sub_Pendapatan
Call Me.Hitung_Sub_Potongan
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
Exit Sub
Else
If Me.cmb_sort_jab = Me.Adodc2.Recordset.Fields("Nm_Jab") Then
Me.Adodc2.Recordset.MoveLast
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
End If
End If
End Sub
Private Sub DataGrid1_Click()
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Gaji
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
End Sub
Private Sub Form_Activate()
Call Me.Con_Str_Ado
Call Me.Tabel_Grid
End Sub
Private Sub Form_Load()
Me.Move MDIForm1.ScaleWidth / 2 - Me.Width / 2,
MDIForm1.ScaleHeight / 2 - Me.Height / 2
'-----------------------------------------------------------------
Call Me.Con_Str_Ado
If Me.Adodc1.Recordset.EOF Then
MsgBox "Data Karyawan Belum Tersedia", vbInformation,
"Informasi"
Me.DataGrid1.Enabled = False
Me.Command1.Enabled = False
Me.Command2.Enabled = False
64
Me.Command3.Enabled = False
Me.Command4.Enabled = False
Me.Command5.Enabled = False
Me.CMD_Proses.Enabled = False
Exit Sub
Else
Me.Adodc1.Recordset.MoveFirst
End If
'-----------------------------------------------------------------
Call Me.Tampil_Data
Call Me.Tampil_Foto
Call Me.Hitung_Sub_Pendapatan
Call Me.Hitung_Sub_Potongan
Call Me.Hitung_Gaji
'-----------------------------------------------------------------
Call Open_DB
RsCombo.Open "SELECT*FROM DB_PEKERJAAN WHERE Nm_Jab ORDER BY
Nm_Jab ASC", Conn_DB, adOpenDynamic, adLockOptimistic
Me.cmb_sort_jab.Clear
Do While Not RsCombo.EOF
Me.cmb_sort_jab.AddItem RsCombo!Nm_Jab
RsCombo.MoveNext
Loop
RsCombo.Close
'-----------------------------------------------------------------
Call Me.ID_Auto
Call Me.Cek_Gaji_ID
End Sub
4. Form Proses Data Absen
Sub Hitung_Hdr()
Dim abs_jml, ttl_hdr As Integer
abs_jml = Me.abs_hdr + Me.abs_tdk_hadir
ttl_hdr = abs_jml
If ttl_hdr > 26 Then
MsgBox "Data Kehadiran Lebih dari 26 Hari, Periksa Ulang
Jumlah Kehadiran Karyawan pada Rekapitulasi Absen", vbCritical,
"Kesalahan"
Me.abs_hdr = ""
Me.abs_tdk_hadir = ""
Me.abs_hdr.SetFocus
End If
End Sub
Sub Data_Next()
If Me.cmd_save.Enabled = True And Me.cmd_edit.Enabled = False Then
Me.Adodc1.Recordset.MoveNext
If Me.Adodc1.Recordset.EOF Then
Me.Adodc1.Recordset.MoveLast
MsgBox "Input Data Absen Selesai", vbInformation,
"Selesai"
Call Me.Tampilan_Awal
End If
Call Me.Tampil_Data
Call Me.ID_Gaji_Auto
Else
If Me.cmd_edit.Enabled = True And Me.cmd_save.Enabled = False Then
65
Me.Adodc2.Recordset.MoveNext
If Me.Adodc2.Recordset.EOF Then
Me.Adodc2.Recordset.MoveLast
End If
Call Me.Tampil_Data_Absen
End If
End If
End Sub
Sub ID_Gaji_Auto()
Call Open_DB
Module_Absen.Open ("SELECT*FROM DB_ABSEN WHERE ID_Absen IN (SELECT
MAX(ID_Absen) FROM DB_ABSEN) ORDER BY ID_Absen ASC"), Conn_DB
Module_Absen.Requery
Dim Urutan As String
Dim Hitung As Long
With Module_Absen
If .EOF Then
Urutan = "AB" & Format(Me.MonthView1, "YYMM") & "01"
Me.abs_id = Urutan
Else
If Mid(Module_Absen!ID_Absen, 3, 4) <>
Format(Me.MonthView1, "YYMM") Then
Urutan = "AB" & Format(Me.MonthView1, "YYMM") & "01"
Else
Hitung = Right(!ID_Absen, 2) + 1
Urutan = "AB" & Format(Me.MonthView1, "YYMM") &
Right("00" & Hitung, 2)
End If
Me.abs_id = Urutan
End If
End With
End Sub
Sub Tampil_Data()
Me.Abs_Jbtan = Me.DataGrid1.Columns(1).Text
Me.abs_id_karyawan = Me.DataGrid1.Columns(2).Text
Me.abs_nm_karyawan = Me.DataGrid1.Columns(3).Text
End Sub
Sub Tampil_Data_Absen()
Me.Abs_Jbtan = Me.DataGrid1.Columns(0).Text
Me.abs_id = Me.DataGrid1.Columns(1).Text
Me.abs_id_karyawan = Me.DataGrid1.Columns(2).Text
Me.abs_nm_karyawan = Me.DataGrid1.Columns(3).Text
Me.MonthView1 = Me.DataGrid1.Columns(4).Value
Me.MonthView1 = Me.DataGrid1.Columns(5).Value
Me.abs_hdr = Me.DataGrid1.Columns(6).Text
Me.abs_tdk_hadir = Me.DataGrid1.Columns(7).Text
End Sub
Sub Con_Str_Ado()
Me.Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Persist Security Info=False; Data Source = " & App.Path &
"\Database\DB_GAJI.mdb"
Me.Adodc1.CommandType = adCmdText
Me.Adodc1.RecordSource = "SELECT*FROM DB_KARYAWAN_Query ORDER BY
Nm_Jab"
66
Me.Adodc1.Refresh
Set Me.DataGrid1.DataSource = Me.Adodc1
Call Me.Tabel_Grid
End Sub
Sub Tabel_Grid()
Me.Adodc1.Recordset.Sort = Me.DataGrid1.Columns(0).DataField
Me.DataGrid1.Columns(0).Width = 0
Me.DataGrid1.Columns(1).Width = 1300
Me.DataGrid1.Columns(2).Width = 1150
Me.DataGrid1.Columns(3).Width = 2200
Me.DataGrid1.Columns(4).Width = 0
Me.DataGrid1.Columns(5).Width = 0
Me.DataGrid1.Columns(6).Width = 0
Me.DataGrid1.Columns(7).Width = 0
Me.DataGrid1.Columns(8).Width = 0
Me.DataGrid1.Columns(9).Width = 0
Me.DataGrid1.Columns(10).Width = 0
Me.DataGrid1.Columns(11).Width = 0
Me.DataGrid1.Columns(12).Width = 0
Me.DataGrid1.Columns(13).Width = 0
Me.DataGrid1.Columns(14).Width = 0
Me.DataGrid1.Columns(2).Alignment = dbgCenter
Me.DataGrid1.Columns(1).Caption = "Jabatan"
Me.DataGrid1.Columns(2).Caption = "ID Karyawan"
Me.DataGrid1.Columns(3).Caption = "Nama"
End Sub
Sub Con_Str_Absen()
Me.Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Persist Security Info=False; Data Source = " & App.Path &
"\Database\DB_GAJI.mdb"
Me.Adodc2.CommandType = adCmdText
Me.Adodc2.RecordSource = "SELECT*FROM DB_ABSEN_Query WHERE
month(Abs_Bulan) LIKE '%" & Month(Me.MonthView1) & "%' And
Year(Abs_Tahun) LIKE '%" & Year(Me.MonthView1) & "%'"
Me.Adodc2.Refresh
Set Me.DataGrid1.DataSource = Me.Adodc2
Call Me.Tabel_Grid_Absen
End Sub
Sub Con_Cek_Data_Absen()
Me.Adodc3.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
Persist Security Info=False; Data Source = " & App.Path &
"\Database\DB_GAJI.mdb"
Me.Adodc3.CommandType = adCmdText
Me.Adodc3.RecordSource = "SELECT*FROM DB_ABSEN_Query"
Me.Adodc3.Refresh
End Sub
Sub Tabel_Grid_Absen()
Me.Adodc2.Recordset.Sort = Me.DataGrid1.Columns(0).DataField
Me.DataGrid1.Columns(0).Width = 1300
Me.DataGrid1.Columns(1).Width = 0
Me.DataGrid1.Columns(2).Width = 1150
Me.DataGrid1.Columns(3).Width = 2200
Me.DataGrid1.Columns(4).Width = 0
Me.DataGrid1.Columns(5).Width = 0
Me.DataGrid1.Columns(6).Width = 0
67
Me.DataGrid1.Columns(7).Width = 0
Me.DataGrid1.Columns(2).Alignment = dbgCenter
Me.DataGrid1.Columns(0).Caption = "Jabatan"
Me.DataGrid1.Columns(2).Caption = "ID Karyawan"
Me.DataGrid1.Columns(3).Caption = "Nama"
End Sub
Private Sub cmd_cancel_Click()
Call Me.Tampilan_Awal
Call Me.Con_Str_Ado
End Sub
Private Sub cmd_cek_Click()
Call Open_DB
Module_Absen.Open "SELECT*FROM DB_ABSEN WHERE Year(Abs_Tahun)='" &
Year(Me.MonthView1) & "' And Month(Abs_Bulan)='" &
Month(Me.MonthView1) & "'", Conn_DB
Module_Absen.Requery
If Not Module_Absen.EOF Then
MsgBox "Absensi (Bulan " & MonthName(Me.MonthView1.Month) & "
Tahun " & Me.MonthView1.Year & ") Sudah Diinput, Anda Tetap Bisa
Melakukan Pembaharuan Data", vbInformation, "Informasi"
Module_Absen.Requery
Call Me.Con_Str_Absen
Call Me.Tampil_Data_Absen
Me.MonthView1.Enabled = False
Me.cmd_cek.Enabled = False
Me.cmd_ganti.Enabled = True
Me.cmd_save.Enabled = False
Me.cmd_edit.Enabled = True
Me.cmd_cancel.Enabled = True
Me.abs_hdr.Enabled = True
Me.abs_tdk_hadir.Enabled = True
Me.abs_hdr.SetFocus
Me.cmdfirst.Enabled = True
Me.cmdprev.Enabled = True
Me.cmdnext.Enabled = True
Me.cmdlast.Enabled = True
Me.Adodc2.Recordset.MoveFirst
Exit Sub
Else
'-----------------------------------------
Module_Absen.Requery
Call Me.Con_Str_Ado
Call Me.Tampil_Data
Call Me.ID_Gaji_Auto
Me.abs_hdr = ""
Me.abs_tdk_hadir = ""
Me.MonthView1.Enabled = False
Me.cmd_cek.Enabled = False
Me.cmd_ganti.Enabled = True
Me.cmd_save.Enabled = True
Me.cmd_edit.Enabled = False
Me.cmd_cancel.Enabled = True
68
Me.abs_hdr.Enabled = True
Me.abs_tdk_hadir.Enabled = True
Me.abs_hdr.SetFocus
Me.cmdfirst.Enabled = True
Me.cmdprev.Enabled = True
Me.cmdnext.Enabled = True
Me.cmdlast.Enabled = True
Me.Adodc1.Recordset.MoveFirst
End If
End Sub
Private Sub CMD_Edit_Click()
psn = MsgBox("Perbaharui Data Absen...?", vbYesNo + vbInformation,
"Edit")
If psn = vbYes Then
Dim abs_jml, ttl_hdr As Integer
abs_jml = Val(Me.abs_hdr) + Val(Me.abs_tdk_hadir)
ttl_hdr = abs_jml
'-------------------------------------------------------------
If ttl_hdr < 26 Then
MsgBox "Data Kehadiran Kurang dari 26 Hari, Periksa Ulang
Jumlah Kehadiran Karyawan pada Rekapitulasi Absen", vbCritical,
"Kesalahan"
Me.abs_hdr = ""
Me.abs_tdk_hadir = ""
Me.abs_hdr.SetFocus
Exit Sub
Else
If ttl_hdr > 26 Then
MsgBox "Data Kehadiran Lebih dari 26 Hari, Periksa Ulang
Jumlah Kehadiran Karyawan pada Rekapitulasi Absen", vbCritical,
"Kesalahan"
Me.abs_hdr = ""
Me.abs_tdk_hadir = ""
Me.abs_hdr.SetFocus
Exit Sub
Else
Call Open_DB
GANTI = "UPDATE DB_ABSEN SET ID_Karyawan='" &
Me.abs_id_karyawan & "', Abs_Bulan='" & Me.MonthView1 & "',
Abs_Tahun='" & Me.MonthView1 & "', Abs_Hadir='" & Me.abs_hdr & "',
Abs_Tidak_Hadir='" & Me.abs_tdk_hadir & "' WHERE ID_Absen='" &
Me.abs_id & "'"
Conn_DB.Execute GANTI
MsgBox "Data Berhasil Diperbaharui", vbInformation, "Edit"
Call Me.Data_Next
End If
End If
End If
Me.abs_hdr.SetFocus
End Sub
Private Sub cmd_ganti_Click()
Me.MonthView1.Enabled = True
Me.cmd_ganti.Enabled = False
Me.cmd_cek.Enabled = True
Call Me.Tampilan_Awal
69
End Sub
Sub Simpan_Data_Absen()
Call Open_DB
Module_Absen_Qry.Open "SELECT*FROM DB_ABSEN_Query WHERE
ID_Absen='" & Me.abs_id & "'", Conn_DB, adOpenStatic,
adLockOptimistic
Module_Absen_Qry.Requery
With Module_Absen_Qry
.AddNew
.Fields!ID_Absen = Me.abs_id
.Fields!ID_Karyawan = Me.abs_id_karyawan
.Fields!Abs_Bulan = Me.MonthView1
.Fields!Abs_Tahun = Me.MonthView1
.Fields!abs_hadir = Me.abs_hdr
.Fields!Abs_Tidak_Hadir = Me.abs_tdk_hadir
.Update
End With
End Sub
Private Sub cmd_save_Click()
Call Open_DB
Module_Absen_Qry.Open "SELECT*FROM DB_ABSEN_Query WHERE
ID_Absen='" & Me.abs_id & "'", Conn_DB, adOpenStatic,
adLockOptimistic
Module_Absen_Qry.Requery
If Not Module_Absen_Qry.EOF Then
MsgBox "ID Absen " & Me.abs_id & " Sudah Digunakan",
vbCritical, "Keterangan"
Module_Absen_Qry.Requery
Exit Sub
Else
If Me.abs_hdr = "" Then
MsgBox "Data Kehadiran Belum Diisi", vbCritical, "Kesalahan"
Me.abs_hdr.SetFocus
Exit Sub
Else
If Me.abs_tdk_hadir = "" Then
MsgBox "Data Ketidakhadiran Belum Diisi", vbCritical,
"Kesalahan"
Me.abs_tdk_hadir.SetFocus
Exit Sub
Else
If IsNumeric(Me.abs_hdr) = False Then
MsgBox "Format " & "[ Hadir ]" & " Harus dalam Angka",
vbCritical, "Kesalahan"
Me.abs_hdr = ""
Me.abs_hdr.SetFocus
Exit Sub
Else
If IsNumeric(Me.abs_tdk_hadir) = False Then
MsgBox "Format " & "[ Tidak Hadir ]" & " Harus dalam Angka",
vbCritical, "Kesalahan"
Me.abs_tdk_hadir = ""
Me.abs_tdk_hadir.SetFocus
Exit Sub
Else
'-------------------------------------------------
Dim abs_jml, ttl_hdr As Integer
70
abs_jml = Val(Me.abs_hdr) + Val(Me.abs_tdk_hadir)
ttl_hdr = abs_jml
If ttl_hdr < 26 Then
MsgBox "Data Kehadiran Kurang dari 26 Hari, Periksa Ulang
Jumlah Kehadiran Karyawan pada Rekapitulasi Absen", vbCritical,
"Kesalahan"
Me.abs_hdr = ""
Me.abs_tdk_hadir = ""
Me.abs_hdr.SetFocus
Exit Sub
Else
If ttl_hdr > 26 Then
MsgBox "Data Kehadiran Lebih dari 26 Hari, Periksa Ulang
Jumlah Kehadiran Karyawan pada Rekapitulasi Absen", vbCritical,
"Kesalahan"
Me.abs_hdr = ""
Me.abs_tdk_hadir = ""
Me.abs_hdr.SetFocus
Exit Sub
Else
Call Me.Simpan_Data_Absen
MsgBox "Data Absen " & "(ID-" & "" & abs_id & "" & " Atas Nama
" & "" & Me.abs_nm_karyawan & ") Berhasil Disimpan, Tekan OK Untuk
Melanjutkan ke Data Berikutnya", vbInformation, ""
Call Me.Data_Next
End If
End If
End If
End If
End If
End If
End If
Me.abs_hdr = ""
Me.abs_tdk_hadir = ""
End Sub
Private Sub cmdfirst_Click()
If Me.cmd_save.Enabled = True And Me.cmd_edit.Enabled = False Then
Me.Adodc1.Recordset.MoveFirst
Call Me.Tampil_Data
Call Me.ID_Gaji_Auto
Exit Sub
Else
If Me.cmd_edit.Enabled = True And Me.cmd_save.Enabled = False
Then
Me.Adodc2.Recordset.MoveFirst
Call Me.Tampil_Data_Absen
End If
End If
End Sub
Private Sub cmdlast_Click()
If Me.cmd_save.Enabled = True And Me.cmd_edit.Enabled = False Then
Me.Adodc1.Recordset.MoveLast
Call Me.Tampil_Data
Call Me.ID_Gaji_Auto
Exit Sub
Else
If Me.cmd_edit.Enabled = True And Me.cmd_save.Enabled = False
71
Then
Me.Adodc2.Recordset.MoveLast
Call Me.Tampil_Data_Absen
End If
End If
End Sub
Private Sub cmdnext_Click()
If Me.cmd_save.Enabled = True And Me.cmd_edit.Enabled = False Then
Me.Adodc1.Recordset.MoveNext
If Me.Adodc1.Recordset.EOF Then
Me.Adodc1.Recordset.MoveLast
End If
Call Me.Tampil_Data
Call Me.ID_Gaji_Auto
Else
If Me.cmd_edit.Enabled = True And Me.cmd_save.Enabled = False Then
Me.Adodc2.Recordset.MoveNext
If Me.Adodc2.Recordset.EOF Then
Me.Adodc2.Recordset.MoveLast
End If
Call Me.Tampil_Data_Absen
End If
End If
End Sub
Private Sub cmdprev_Click()
If Me.cmd_save.Enabled = True And Me.cmd_edit.Enabled = False Then
Me.Adodc1.Recordset.MovePrevious
If Me.Adodc1.Recordset.BOF Then
Me.Adodc1.Recordset.MoveFirst
End If
Call Me.Tampil_Data
Call Me.ID_Gaji_Auto
Else
If Me.cmd_edit.Enabled = True And Me.cmd_save.Enabled = False Then
Me.Adodc2.Recordset.MovePrevious
If Me.Adodc2.Recordset.BOF Then
Me.Adodc2.Recordset.MoveFirst
End If
Call Me.Tampil_Data_Absen
End If
End If
End Sub
Sub Tampilan_Awal()
Me.abs_hdr = ""
Me.abs_tdk_hadir = ""
Me.abs_id = ""
Me.abs_id_karyawan = ""
Me.abs_nm_karyawan = ""
Me.Abs_Jbtan = ""
Me.abs_hdr.Enabled = False
Me.abs_tdk_hadir.Enabled = False
Me.cmd_cek.Enabled = True
Me.cmd_ganti.Enabled = False
Me.cmd_save.Enabled = False
Me.cmd_edit.Enabled = False
Me.cmd_cancel.Enabled = False
72
Me.cmdfirst.Enabled = False
Me.cmdprev.Enabled = False
Me.cmdnext.Enabled = False
Me.cmdlast.Enabled = False
End Sub
Private Sub Form_Load()
Me.Move MDIForm1.ScaleWidth / 2 - Me.Width / 2,
MDIForm1.ScaleHeight / 2 - Me.Height / 2
Call Me.Con_Cek_Data_Absen
If Me.Adodc3.Recordset.EOF Then
MsgBox "Data Absen Belum Tersedia", vbInformation, "Informasi"
Me.DataGrid1.Enabled = False
Me.MonthView1 = Now
End If
Call Me.Con_Str_Ado
If Me.Adodc1.Recordset.EOF Then
MsgBox "Data Karyawan Belum Tersedia, Silakan Isi Terlebih
Dahulu Data Karyawan pada Form Entri Data Karyawan",
vbInformation, "Informasi"
End If
Call Me.Tampilan_Awal
Me.abs_hdr.MaxLength = 2
Me.abs_tdk_hadir.MaxLength = 2
End Sub
3.5.2. Blackbox Testing
Pengujian terhadap program aplikasi yang dirancang dilakukan dengan
metode blackbox testing. Pengujian ini diperlukan untuk mencari kesalahan yang
terdapat dalam program aplikasi.
Pengujian terhadap program aplikasi yang dirancang dilakukan dengan metode
blackbox testing. Pengujian ini diperlukan untuk mencari kesalahan yang terdapat
dalam program aplikasi.
73
1. Pengujian Terhadap Form Login Pengguna
Tabel III.8 Hasil Pengujian Black Box Testing Form Login
No Skenario Test Case Hasil yang
diharapkan Hasil
Pengujian Kesimpulan
1
Tidak mengisi ID Pengguna dan Kata Sandi kemudian Tekan Enter atau Klik Masuk
ID Pengguna : (Kosong) Kata Sandi : (Kosong)
Sistem akan menolak dan menampilkan pesan "ID Pengguna / Kata Sandi Salah"
Sesuai Harapan Valid
2
Mengisi ID Pengguna tapi Kata Sandi tidak diisi kemudian Tekan Enter atau Klik Masuk
ID Pengguna : ADM01 Kata Sandi : (Kosong)
Sistem akan menolak dan menampilkan pesan "ID Pengguna / Kata Sandi Salah"
Sesuai Harapan Valid
3
Mengisi data yang salah dari ID Pengguna atau Kata Sandi kemudian Tekan Enter atau Klik Masuk
ID Pengguna : ESJLOG01 (Benar) Kata Sandi : 999999 (Salah)
Sistem akan menolak dan menampilkan pesan “ID
Pengguna/Kata Sandi Salah”
Sesuai Harapan Valid
4
Mengisi ID Pengguna dan Kata Sandi dengan Benar kemudian Tekan Enter atau Klik Masuk
ID Pengguna : ADM01 (Benar) Kata Sandi : 999999 (Benar)
Sistem akan menerima Akses Login dan menampilkan Statusbar Informasi Pengguna pada Form Menu Utama
Sesuai Harapan Valid
2. Pengujian Terhadap Form Menu Utama
Tabel III.9 Hasil Pengujian Black Box Testing Form Menu Utama
No Skenario Test Case Hasil yang diharapkan Hasil
Pengujian Kesimpulan
1
Membuka Form Data Entri Karyawan
Klik Submenu Data Entri Karyawan pada Menu Data
Sistem akan menampilkan Form Data Entri Karyawan
Sesuai Harapan Valid
2
Membuka Form Proses Gaji Karyawan
Klik Submenu Proses Gaji Karyawan pada Menu Data
Sistem akan menampilkan Form Proses Gaji Karyawan
Sesuai Harapan Valid
74
3
Membuka Form Laporan Data Karyawan
Klik Submenu Laporan Data Karyawan pada menu laporan
Sistem akan menampilkan Form Laporan Data Karyawan
Sesuai Harapan Valid
4
Membuka Form Laporan Data Gaji Bulanan
Klik Submenu Laporan Data Gaji Bulanan pada Menu Laporan
Sistem akan menampilkan Form Laporan Data Gaji Bulanan
Sesuai Harapan Valid
5 Membuka Form Slip Gaji
Klik Submenu Cetak Slip Gaji pada Menu Laporan
Sistem akan menampilkan Form Slip Gaji
Sesuai Harapan Valid
6 Membuka Form Master Jabatan
Klik Submenu Master Jabatan pada Menu Administrator
Sistem akan menampilkan Form Kelola Informasi Jabatan
Sesuai Harapan Valid
7 Membuka Form Master Pengguna
Klik Submenu Master Pengguna pada Menu Administrator
Sistem akan menampilkan Form Kelola Akun Pengguna
Sesuai Harapan Valid
8 Membuka Form Ganti Kata Sandi
Klik Submenu Ganti Kata Sandi pada Menu Pengguna
Sistem akan menampilkan Form Ganti Kata Sandi
Sesuai Harapan Valid
9 Keluar dari Akses Aplikasi
Klik button LOGOUT
Sistem akan mengeluarkan pengguna dari akses aplikasi kemudian kembali ke Form Login dan menghilangkan Statusbar Informasi Pengguna pada Form Menu Utama
Sesuai Harapan Valid
3. Pengujian Terhadap Form Data Entri Karyawan
Pada form data entri karyawan terdapat 5 (lima) pengujian yang terdiri dari :
a. Menambah dan Menyimpan Data Karyawan Baru
Tabel III.10 Hasil Pengujian Black Box Testing Menambah dan Menyimpan Data
Karyawan Baru pada Form Data Entri Karyawan
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1
Menambah Data Karyawan Baru
Klik button Baru
Sistem akan membersihkan semua Textbox dan Label pada Form Input Data Karyawan, kemudian
Sesuai Harapan Valid
75
sistem akan mengaktifkan Button Simpan, Button Batal, dan menampilkan ID Karyawan secara otomatis.
2
Tidak Melengkapi Biodata Karyawan, Data Pekerjaan, Data Rekening Bank, dan Pas Foto Karyawan, kemudian klik Button Simpan
Biodata Karyawan : (Kosong) Data Pekerjaan : (Kosong) Data Rekening Bank : (Kosong) Pas Foto : (Kosong)
Sistem akan menolak dan menampilkan pesan “Biodata Karyawan Belum Lengkap”
Sesuai Harapan Valid
3
Hanya melengkapi Biodata Karyawan, sedangkan Data Pekerjaan, Data Rekening Bank, dan Pas Foto Karyawan tidak diisi, kemudian klik Button Simpan
Biodata Karyawan : (Diisi) Data Pekerjaan : (Kosong) Data Rekening Bank : (Kosong) Pas Foto : (Kosong)
Sistem akan menolak dan menampilkan pesan “Data Pekerjaan Belum Ada”
Sesuai Harapan Valid
4
Hanya melengkapi Biodata Karyawan dan Data Pekerjaan, sedangkan Data Rekening Bank, dan Pas Foto Karyawan tidak diisi, kemudian klik Button Simpan
Biodata Karyawan : (Diisi) Data Pekerjaan : (Diisi) Data Rekening Bank : (Kosong) Pas Foto : (Kosong)
Sistem akan menolak dan menampilkan pesan “Data Rekening Belum Ada”
Sesuai Harapan Valid
76
5
Hanya melengkapi Biodata Karyawan, Data Pekerjaan, dan Data Rekening Bank, sedangkan Pas Foto Karyawan tidak diisi, kemudian klik Button Simpan
Biodata Karyawan : (Diisi) Data Pekerjaan : (Diisi) Data Rekening Bank : (Diisi) Pas Foto : (Kosong)
Sistem akan menolak dan menampilkan pesan “Belum Ada Foto Karyawan”
Sesuai Harapan Valid
6
Melengkapi semua Data Karyawan, Data Pekerjaan, dan Data Rekening Bank, Pas Foto Karyawan, kemudian klik Button Simpan
Biodata Karyawan : (Diisi) Data Pekerjaan : (Diisi) Data Rekening Bank : (Diisi) Pas Foto : (Diisi)
Sistem akan menyimpan data karyawan dan menampilkan pesan “Data Berhasil Tersimpan”
Sesuai Harapan Valid
b. Memperbaharui Data Karyawan
Tabel III.11 Hasil Pengujian Black Box Testing Memperbaharui Data Karyawan pada
Form Data Entri Karyawan
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1
Memilih Data Karyawan pada Tabel Data Karyawan yang mau dibuah
Klik dua kali data karyawan pada Tabel Data Karyawan
Sistem akan menampilkan data karyawan yang dipilih kemudian mengaktifkan button Edit, button Hapus, button Batal dan menonaktifkan button Baru dan button Simpan
Sesuai Harapan Valid
77
2
Mengubah data karyawan, kemudian klik Button Edit
Biodata Karyawan : (Diubah) Data Pekerjaan : (Diubah) Data Rekening Bank : (Diubah) Pas Foto : (Diubah)
Sistem akan menyimpan data karyawan dan menampilkan pesan “Perubahan
Tersimpan”
Sesuai Harapan Valid
c. Menghapus Data Karyawan
Tabel III.12 Hasil Pengujian Black Box Testing Menghapus Data Karyawan pada Form
Data Entri Karyawan
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1
Memilih Data Karyawan pada Tabel Data Karyawan yang mau dihapus
Klik dua kali data karyawan pada Tabel Data Karyawan
Sistem akan menampilkan data karyawan yang dipilih kemudian mengaktifkan button Edit, button Hapus, button Batal dan menonaktifkan button Baru dan button Simpan
Sesuai Harapan Valid
2 Menghapus Data Karyawan
Klik button Hapus kemudian pilih Yes
Sistem akan menampilkan pesan peringatan “Apakah Anda Yakin untuk Menghapus Data Ini..? Penghapusan Data Tidak Dapat Diurungkan” dan
menampilkan Option Yes or No, Jika dipilih Option Yes maka data karyawan akan Terhapus dan sistem akan menampilkan pesan “Data Terhapus Secara Permanen", Jika dipilih Option No maka sistem akan mengabaikan perintah Hapus.
Sesuai Harapan Valid
78
d. Membatalkan Proses Tambah, Simpan, Edit dan Hapus Data Karyawan
Tabel III.13 Hasil Pengujian Black Box Testing Membatalkan Proses Tambah, Simpan,
Edit dan Hapus pada Form Data Entri Karyawan
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1
Membatalkan Proses Tambah, Simpan, Edit dan Hapus Data Karyawan
Klik button Batal
Sistem akan membersihkan semua Textbox dan Label pada Form Input Data Karyawan, kemudian sistem akan mengaktifkan kembali Button Baru dan menonaktifkan Button Simpan, button Edit, button Hapus dan button Batal.
Sesuai Harapan Valid
e. Mencari ID Karyawan
Tabel III.14 Hasil Pengujian Black Box Testing Mencari Form Data Entri Karyawan
No Skenario Test Case Hasil yang diharapkan Hasil
Pengujian Kesimpulan
1
Tidak Menginput ID Karyawan pada Textbox Cari ID kemudian Tekan Enter
ID Karyawan : (Kosong)
Sistem akan menampilkan pesan “ID Karyawan Tidak Ditemukan".
Sesuai Harapan Valid
2
Menginput ID Karyawan yang salah pada Textbox Cari ID kemudian Tekan Enter
ID Karyawan : ESJABC0 (Salah)
Sistem akan menampilkan pesan “ID Karyawan Tidak Ditemukan".
Sesuai Harapan Valid
3
Menginput ID Karyawan dengan benar pada Textbox Cari ID kemudian Tekan Enter
ID Karyawan : ESJ0001 (Benar)
Sistem akan menampilkan data karyawan pada form Data Karyawan
Sesuai Harapan Valid
4. Pengujian Terhadap Form Kelola Informasi Jabatan
Pada form kelola informasi jabatan terdapat 4 (empat) pengujian yang terdiri dari
:
79
a. Menambah dan Menyimpan Informasi Jabatan Baru
Tabel III.15 Hasil Pengujian Black Box Testing Menambah dan Menyimpan Data
Informasi Jabatan Baru pada Form Kelola Informasi Jabatan
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1 Menambah Data Jabatan Baru
Klik button Baru
Sistem akan membersihkan semua Textbox dan Label pada Form Input Data Jabatan, kemudian sistem akan mengaktifkan Button Simpan, Button Batal.
Sesuai Harapan Valid
2 Kode Jabatan tidak Diisi
Kode : (kosong)
Sistem akan menolak dan menampilkan pesan “Kode Jabatan Belum Diisi ( Maks. 3 Karakter )”
Sesuai Harapan Valid
3
Kode Jabatan sudah digunakan
Kode : ADM (Sudah Ada)
Sistem akan menolak dan menampilkan pesan “Kode Jabatan Sudah Digunakan”
Sesuai Harapan Valid
4 Nama Jabatan tidak diisi
Nama Jabatan : (Kosong)
Sistem akan menolak dan menampilkan pesan “Nama Jabatan Belum Diisi ( Maks. 25 Karakter )”
Sesuai Harapan Valid
5 Data Gaji Pokok Tidak Diisi
Gaji Pokok : (Kosong)
Sistem akan menolak dan menampilkan pesan “Gaji Pokok Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
6
Format Data Gaji Pokok tidak dalam bentuk angka
Gaji Pokok : ABCD
Sistem akan menolak dan menampilkan pesan “Gaji Pokok Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
7 Data Transportasi Tidak Diisi
Transportasi : (Kosong)
Sistem akan menolak dan menampilkan pesan “Transportasi Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
8
Format Data Transportasi tidak dalam bentuk angka
Transportasi : ABCD
Sistem akan menolak dan menampilkan pesan “Transportasi Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
9 Data Tunjangan Tidak Diisi
Tunjangan : (Kosong)
Sistem akan menolak dan menampilkan pesan “Tunjangan Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
80
10
Format Data Tunjangan tidak dalam bentuk angka
Tunjangan : ABCD
Sistem akan menolak dan menampilkan pesan “Tunjangan Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
11 Data BPJS-TK Tidak Diisi
BPJS-TK : (Kosong)
Sistem akan menolak dan menampilkan pesan “BPJS-TK Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
12
Format Data BPJS-TK tidak dalam bentuk angka
BPJS-TK : ABCD
Sistem akan menolak dan menampilkan pesan “BPJS-TK Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
13
Semua data informasi jabatan diiisi dengan benar dan lengkap
Kode Jabatan : ITS Nama Jabatan : IT Support Gaji Pokok : 3000000 Transportasi : 80000 Tunjangan : 100000 BPJS-TK : 80000
Sistem akan menyimpan data jabatan dan menampilkan pesan “Data Tersimpan”
Sesuai Harapan Valid
b. Memperbaharui Informasi Data Jabatan
Tabel III.16 Hasil Pengujian Black Box Testing Memperbaharui Informasi Jabatan
pada Form Kelola Informasi Jabatan
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1
Memilih Jabatan pada Tabel Data Jabatan yang mau dibuah
Klik dua kali jabatan pada Tabel Data Jabatan
Sistem akan menampilkan data jabatan yang dipilih kemudian mengaktifkan button Edit, button Hapus, button Batal dan menonaktifkan button Baru dan button Simpan
Sesuai Harapan Valid
2 Kode Jabatan tidak Diisi
Kode : (kosong)
Sistem akan menolak dan menampilkan pesan “Kode Jabatan Belum Diisi ( Maks. 3 Karakter )”
Sesuai Harapan Valid
3
Kode Jabatan sudah digunakan
Kode : ADM (Sudah Ada)
Sistem akan menolak dan menampilkan pesan “Kode Jabatan Sudah Digunakan”
Sesuai Harapan Valid
81
4 Nama Jabatan tidak diisi
Nama Jabatan : (Kosong)
Sistem akan menolak dan menampilkan pesan “Nama Jabatan Belum Diisi ( Maks. 25 Karakter )”
Sesuai Harapan Valid
5 Data Gaji Pokok Tidak Diisi
Gaji Pokok : (Kosong)
Sistem akan menolak dan menampilkan pesan “Gaji Pokok Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
6
Format Data Gaji Pokok tidak dalam bentuk angka
Gaji Pokok : ABCD
Sistem akan menolak dan menampilkan pesan “Gaji Pokok Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
7 Data Transportasi Tidak Diisi
Transportasi : (Kosong)
Sistem akan menolak dan menampilkan pesan “Transportasi Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
8
Format Data Transportasi tidak dalam bentuk angka
Transportasi : ABCD
Sistem akan menolak dan menampilkan pesan “Transportasi Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
9 Data Tunjangan Tidak Diisi
Tunjangan : (Kosong)
Sistem akan menolak dan menampilkan pesan “Tunjangan Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
10
Format Data Tunjangan tidak dalam bentuk angka
Tunjangan : ABCD
Sistem akan menolak dan menampilkan pesan “Tunjangan Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
11 Data BPJS-TK Tidak Diisi
BPJS-TK : (Kosong)
Sistem akan menolak dan menampilkan pesan “BPJS-TK Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
12
Format Data BPJS-TK tidak dalam bentuk angka
BPJS-TK : ABCD
Sistem akan menolak dan menampilkan pesan “BPJS-TK Belum Diisi atau Format Angka Salah”
Sesuai Harapan Valid
13
Semua data informasi jabatan diiisi dengan benar dan lengkap
Kode Jabatan : ITS Nama Jabatan : IT Support Gaji Pokok : 3000000 Transportasi : 80000 Tunjangan : 100000 BPJS-TK : 80000
Sistem akan menyimpan data jabatan dan menampilkan pesan “Perubahan
Tersimpan”
Sesuai Harapan Valid
82
c. Menghapus Informasi Data Jabatan
Tabel III.17 Hasil Pengujian Black Box Testing Menghapus Informasi Jabatan pada
Form Kelola Informasi Jabatan
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1
Memilih Jabatan pada Tabel Data Jabatan yang mau dihapus
Klik dua kali data karyawan pada Tabel Data Jabatan
Sistem akan menampilkan data jabatan yang dipilih kemudian mengaktifkan button Edit, button Hapus, button Batal dan menonaktifkan button Baru dan button Simpan
Sesuai Harapan Valid
2 Menghapus Data Karyawan
Klik button Hapus kemudian pilih Yes
Sistem akan menampilkan pesan peringatan “Apakah Anda Yakin untuk Menghapus Data Ini..? Penghapusan Data Tidak Dapat Diurungkan” dan
menampilkan Option Yes or No, Jika dipilih Option Yes maka data jabatan akan Terhapus dan sistem akan menampilkan pesan “Data Terhapus Secara Permanen", Jika dipilih Option No maka sistem akan mengabaikan perintah Hapus.
Sesuai Harapan Valid
d. Membatalkan Proses Tambah, Simpan, Edit dan Hapus Data Jabatan
Tabel III.18 Hasil Pengujian Black Box Testing Membatalkan Proses Tambah, Simpan,
Edit dan Hapus pada Form Kelola Informasi Jabatan No Skenario Test Case Hasil yang diharapkan Hasil
Pengujian Kesimpulan
1
Membatalkan Proses Tambah, Simpan, Edit dan Hapus Data Karyawan
Klik button Batal
Sistem akan membersihkan semua Textbox dan Label pada Form Input Data Jabatan, kemudian sistem akan mengaktifkan kembali Button Baru dan menonaktifkan Button Simpan, button Edit, button Hapus
Sesuai Harapan Valid
83
5. Pengujian Terhadap Form Kelola Akun Pengguna
Pada form kelola informasi jabatan terdapat 3 (tiga) pengujian yang terdiri dari :
a. Menambah dan Menyimpan Akun Pengguna Baru
Tabel III.19 Hasil Pengujian Black Box Testing Menambah dan Menyimpan Akun
Pengguna Baru Form Kelola Akun Pengguna
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1
Menambah Akun Pengguna Baru
Klik button Baru
Sistem akan membersihkan semua Textbox dan Label pada Form Input Data Pengguna, kemudian sistem akan mengaktifkan Button Simpan, Button Batal dan menampilkan ID Pengguna secara otomatis
Sesuai Harapan Valid
2 Nama Pengguna belum diisi
Nama Pengguna : (kosong)
Sistem akan menolak dan menampilkan pesan “Nama Pengguna Belum Diisi”
Sesuai Harapan Valid
3 Kata Sandi Pengguna belum diisi
Sandi Pengguna : (Kosong)
Sistem akan menolak dan menampilkan pesan “Sandi Pengguna Belum Diisi”
Sesuai Harapan Valid
4 Tidak memilih Level Akses
Level Akses : (Kosong)
Sistem akan menolak dan menampilkan pesan “Akses Level Belum Dipilih”
Sesuai Harapan Valid
5
Semua data akun pengguna baru diiisi dengan benar dan lengkap
ID Pengguna : ESJLOG01 Nama Pengguna : Fajar Sandi : 123 Akses Level : 2-Administrator
Sistem akan menyimpan data akun pengguna dan menampilkan pesan “Data Tersimpan”
Sesuai Harapan Valid
84
b. Memperbaharui Informasi Pengguna
Tabel III.20 Hasil Pengujian Black Box Testing Memperbaharui Informasi Pengguna
pada Form Kelola Akun Pengguna
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1
Memilih Jabatan pada Tabel Data Pengguna yang mau diubah
Klik dua kali jabatan pada Tabel Data Pengguna
Sistem akan menampilkan data pengguna yang dipilih kemudian mengaktifkan button Edit, button Batal dan menonaktifkan button Baru dan button Simpan
Sesuai Harapan Valid
2 Nama Pengguna belum diisi
Nama Pengguna : (kosong)
Sistem akan menolak dan menampilkan pesan “Nama Pengguna Belum Diisi”
Sesuai Harapan Valid
3 Kata Sandi Pengguna belum diisi
Sandi Pengguna : (Kosong)
Sistem akan menolak dan menampilkan pesan “Sandi Pengguna Belum Diisi”
Sesuai Harapan Valid
4 Tidak memilih Level Akses
Level Akses : (Kosong)
Sistem akan menolak dan menampilkan pesan “Akses Level Belum Dipilih”
Sesuai Harapan Valid
5
Semua data akun pengguna diiisi dengan benar dan lengkap
ID Pengguna : ESJLOG01 Nama Pengguna : Fajar Sandi : 123 Akses Level : 2-Administrator
Sistem akan menyimpan data akun pengguna dan menampilkan pesan “Perubahan
Tersimpan”
Sesuai Harapan Valid
85
c. Membatalkan Proses Tambah, Simpan, Edit dan Hapus Data Jabatan
Tabel III.21 Hasil Pengujian Black Box Testing Membatalkan Proses Tambah, Simpan,
Edit pada Form Kelola Akun Pengguna
No Skenario Test Case Hasil yang diharapkan Hasil Pengujian Kesimpulan
1
Membatalkan Proses Tambah, Simpan, Edit Data Pengguna
Klik button Batal
Sistem akan membersihkan semua Textbox dan Label pada Form Input Data Pengguna, kemudian sistem akan mengaktifkan kembali Button Baru dan menonaktifkan Button Simpan, button Edit, dan button Batal.
Sesuai Harapan Valid
6. Pengujian Terhadap Form Proses Gaji Karyawan
Tabel III. 22 Hasil Pengujian Black Box Testing pada Form Proses Gaji Karyawan
No Skenario Test Case Hasil yang diharapkan Hasil
Pengujian Kesimpulan
1 Data Karyawan belum ada
Database Karyawan : (Kosong)
Sistem akan menampilkan pesan "Data Karyawan Belum Tersedia"
Sesuai Harapan Valid
2 Memilih Data Karyawan sesuai jabatan
Combobox Jabatan : (Administrasi)
Sistem akan memilih data karyawan pada tabel data karyawan sesuai dengan jabatan yang dipilih
Sesuai Harapan Valid
3 Mereset ulang tabel data karyawan
Klik Button Reset
Sistem akan mereset ulang tabel data karyawan ke semula
Sesuai Harapan Valid
4 Menampilkan data karyawan
Klik dua kali data karyawan pada Tabel Data Karyawan
Sistem akan menampilkan rincian data karyawan pada form Gaji.
Sesuai Harapan Valid
5
Memproses gaji karyawan sebelum tanggal 25 pada akhir bulan
Klik button Proses
Sistem akan menolak dan menampilkan pesan "Pembayaran Gaji Dilakukan Setiap Tanggal 25 pada Akhir Bulan"
Sesuai Harapan Valid
86
6
Memproses Gaji Karyawan yang sudah dibayar
Klik button Proses
Sistem akan menolak dan menampilkan pesan "Gaji Sudah Dibayar"
Sesuai Harapan Valid
7
Memproses Gaji Karyawan yang sudah dibayar
Klik button Proses
Sistem akan menyimpan data gaji karyawan dan menampilkan pesan "Data Gaji Tersimpan"
Sesuai Harapan Valid
7. Pengujian Terhadap Form Laporan Data Karyawan
Tabel III.23 Hasil Pengujian Black Box Testing Form Laporan Data Karyawan
No Skenario Test Case Hasil yang diharapkan Hasil
Pengujian Kesimpulan
1 Menampilkan Semua Data Karyawan
Klik button Semua Data Karyawan
Sistem akan menampilkan laporan semua data karyawan pada Crystal Report Viewer
Sesuai Harapan Valid
2
Menampilkan Data Karyawan sesuai jabatan
Combobox Jabatan : (Administrasi)
Sistem akan menampilkan laporan data karyawan pada Crystal Report Viewer sesuai dengan jabatan yang dipilih
Sesuai Harapan Valid
8. Pengujian Terhadap Form Laporan Data Gaji Bulanan
Tabel III.24 Hasil Pengujian Black Box Testing Form Laporan Data Gaji Bulanan
No Skenario Test Case Hasil yang diharapkan Hasil
Pengujian Kesimpulan
1
Tidak memilih Bulan dan Tahun data gaji, kemudian klik Proses
Bulan : (Kosong) Tahun : (Kosong)
Sistem akan menampilkan pesan “Bulan / Tahun Belum
Dipilih”
Sesuai Harapan Valid
2
Tidak memilih salah satu dari Bulan atau Tahun data gaji, kemudian klik Proses
Bulan : (1) Tahun : (Kosong)
Sistem akan menampilkan pesan “Bulan / Tahun Belum
Dipilih”
Sesuai Harapan Valid
3
Data gaji pada Bulan dan Tahun yang dipilih belum tersedia
Bulan : (1) Tahun : (2018)
Sistem akan menampilkan pesan “Data Gaji pada Bulan 1 Tahun 2018 Belum Tersedia"
Sesuai Harapan Valid
87
4
Data gaji pada Bulan dan Tahun yang dipilih tersedia
Bulan : (1) Tahun : (2019)
Sistem akan menampilkan laporan data gaji bulanan pada Crystal Report Viewer sesuai dengan bulan dan tahun yang dipilih
Sesuai Harapan Valid
9. Pengujian Terhadap Form Slip Gaji Karyawan
Tabel III.25 Hasil Pengujian Black Box Testing Form Slip Gaji Bulanan
No Skenario Test Case Hasil yang diharapkan Hasil
Pengujian Kesimpulan
1
Tidak memilih Bulan dan Tahun data gaji, kemudian klik Proses
Bulan : (Kosong) Tahun : (Kosong)
Sistem akan menampilkan pesan “Bulan / Tahun Belum Dipilih”
Sesuai Harapan Valid
2
Tidak memilih salah satu dari Bulan atau Tahun data gaji, kemudian klik Proses
Bulan : (1) Tahun : (Kosong)
Sistem akan menampilkan pesan “Bulan / Tahun Belum
Dipilih”
Sesuai Harapan Valid
3
Data gaji pada Bulan dan Tahun yang dipilih belum tersedia
Bulan : (1) Tahun : (2018)
Sistem akan menampilkan pesan “Data Gaji pada Bulan 1 Tahun 2018 Belum Tersedia"
Sesuai Harapan Valid
4
Data gaji pada Bulan dan Tahun yang dipilih tersedia
Bulan : (1) Tahun : (2019)
Sistem akan menampilkan slip gaji karyawan pada Crystal Report Viewer sesuai dengan bulan dan tahun yang dipilih
Sesuai Harapan Valid
10. Pengujian Terhadap Form Ganti Kata Sandi
Tabel III.26 Hasil Pengujian Black Box Testing Form Ganti Kata Sandi
No Skenario Test Case Hasil yang diharapkan Hasil
Pengujian Kesimpulan
1
Kata sandi lama dan sandi baru tidak diisi kemudian klik Ganti
Kata Sandi Lama : (Kosong) Kata Sandi Baru : (Kosong)
Sistem akan menolak dan menampilkan pesan “Data Belum Lengkap”
Sesuai Harapan Valid
88
2
Mengisi Kata Sandi lama tapi tidak mengisi kata sandi baru kemudian klik Ganti
Kata Sandi Lama : 123 Kata Sandi Baru : (Kosong)
Sistem akan menolak dan menampilkan pesan “Data Belum Lengkap”
Sesuai Harapan Valid
3
Mengisi kata sandi lama yang tidak valid kemudian klik Ganti
Kata Sandi Lama : 123 (Salah) Kata Sandi Baru : (Kosong)
Sistem akan menolak dan menampilkan pesan “Sandi Lama Anda Salah”
Sesuai Harapan Valid
5
Mengisi kata sandi lama sama dengan kata sandi baru kemudian klik Ganti
Kata Sandi Lama : 123 Kata Sandi Baru : 123
Sistem akan menolak dan menampilkan pesan “Sandi Baru tidak Boleh Sama dengan Sandi Lama”
Sesuai Harapan Valid
6
Mengisi kata sandi lama dan kata sandi baru dengan benar kemudian klik Ganti
Kata Sandi Lama : 123 Kata Sandi Baru : 456
Sistem akan menyimpan perubahan kata sandi pengguna dan menampilkan pesan “Perubahan Sandi Berhasil”
Sesuai Harapan Valid
11. Pengujian Terhadap Form Absen
Tabel III.27 Hasil Pengujian Black Box Testing Form Absen
No Skenario Test Case Hasil yang diharapkan Hasil
Pengujian Kesimpulan
1
Absensi pada Bulan dan Tahun yang dipilih sudah terisi kemudian Klik Cek
Bulan : June Tahun : 2019
Sistem akan menampilkan informasi data absen karyawan berdasarkan bulan dan tahun yang dipilih kemudian menonaktifkan Button Cek dan mengaktifkan Button Ganti, Button Edit, Button Batal dan Button Navigasi
Sesuai Harapan Valid
89
2
Absensi pada Bulan dan Tahun yang dipilih belum terisi kemudian Klik Cek
Bulan : July Tahun : 2019
Sistem akan menampilkan informasi data absen karyawan berdasarkan bulan dan tahun yang dipilih kemudian menonaktifkan Button Cek dan mengaktifkan Button Ganti, Button Simpan, Button Batal dan Button Navigasi
Sesuai Harapan Valid
3
Data Hadir Tidak Diisi kemudian klik Simpan
Hadir : (Kosong)
Sistem akan menolak dan menampilkan pesan “Data Kehadiran Belum Diisi”
Sesuai Harapan Valid
4
Data Hadir Tidak dalam Bentuk Angka kemudian klik Simpan
Hadir : A
Sistem akan menolak dan menampilkan pesan “Format Hadir Harus dalam Angka”
Sesuai Harapan Valid
5
Data Tidak Hadir Tidak Diisi kemudian klik Simpan
Tidak Hadir : (Kosong)
Sistem akan menolak dan menampilkan pesan “Data Ketidakhadiran Belum Diisi”
Sesuai Harapan Valid
6
Data Tidak Hadir Tidak dalam Bentuk Angka kemudian klik Simpan
Hadir : B
Sistem akan menolak dan menampilkan pesan “Format Tidak Hadir Harus dalam Angka”
Sesuai Harapan Valid
7
Total Jumlah Kehadiran Kurang Dari 26 Hari kemudian klik Simpan atau Edit
Hadir : 25 Tidak Hadir : 0 Total : 25 Hari
Sistem akan menolak dan menampilkan pesan “Data Kehadiran Kurang dari 26 Hari, Periksa Ulang Jumlah Kehadiran Karyawan pada Rekapitulasi Absen”
Sesuai Harapan Valid
8
Total Jumlah Kehadiran Lebih Dari 26 Hari kemudian klik Simpan atau Edit
Hadir : 27 Tidak Hadir : 0 Total : 27 Hari
Sistem akan menolak dan menampilkan pesan “Data Kehadiran Lebih dari 26 Hari, Periksa Ulang Jumlah Kehadiran Karyawan pada Rekapitulasi Absen”
Sesuai Harapan Valid
90
9
Input Data Absen, Jumlah Hadir dan Tidak Hadir Benar kemudian Klik Simpan
ID Absen : AB190701 ID Karyawan : ESJ0001 Nama : Budi Jabatan : Cleaner Hadir : 26 Tidak Hadir :0 Total : 26 Hari
Sistem akan menyimpan data absen karyawan dan menampilkan pesan “Data Absen (ID-AB190701 Atas Nama Budi) Berhasil Disimpan, Tekan OK Untuk Melanjutkan ke Data Berikutnya”
Sesuai Harapan Valid
10
Ganti bulan dan tahun dengan Klik Ganti
Klik Ganti
Sistem akan membersihkan tampilan halaman absen kemudian mengaktifkan Button Cek dan menonaktifkan Button Ganti
Sesuai Harapan Valid
11
Membatalkan proses absensi karyawan dengan Klik Batal
Klik Batal
Sistem akan membersihkan tampilan halaman absen kemudian mengaktifkan kembali Button Cek dan menonaktifkan Button Ganti, Button Simpan, Button Edit, Button Batal dan Button Navigasi
Sesuai Harapan Valid
3.5.3. Spesifikasi Hadware dan Software
Tabel III.28 Spesifikasi Hadware dan Software
Kebutuhan Keterangan
Operating System Windows XP 32 Bit Processor Pentium 4 ®, @1,8 Ghz
Random Access Memory 2 Gigabyte Hardisk 80 Gigabyte Monitor 14” LED Keyboard 108 Key Printer Dot Matrix Mouse Standard
Software
Kebutuhan Menjalankan Aplikasi Secara Lokal : Bahasa Pemrograman : Microsoft Visual Basic 6.0 Basis Data : Microsoft Access 2002-2003 Laporan : Crystal Report 8.5