Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
SISTEM INFORMASI PENGGAJIAN DOSEN
( Studi Kasus pada Universitas Sanata Dharma Yogyakarta )
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains (S.Si)
Program Studi Ilmu Komputer
Oleh :
Devika Handayani
NIM : 023124038
PROGRAM STUDI ILMU KOMPUTER
JURUSAN MATEMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2008
PAYROLL INFORMATION SYSTEM
OF SANATA DHARMA UNIVERSITY’S LECTURERS
A THESIS
Presented as Partial Fullfilment of the Requirements To Obtain Sarjana Sains (S.Si) Degree Computer Science Study Programme
By : Devika Handayani
Student ID : 023124038
COMPUTER SCIENCE STUDY PROGRAMME
MATHEMATICS DEPARTMENT
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2008
iii
iv
v
HALAMAN PERSEMBAHAN
Skripsi ini Kupersembahkan kepada:
♥ Tuhanku di surga yang selalu menyayangi aku dengan kasih yang tiada
duanya. Seperti apapun aku, aku yakin Engkau akan selalu mengasihiku. ♥ Suamiku, M. Yulianto Setiawan. Belum pernah aku merasakan cinta seperti
yang kamu berikan. Maaf kalau aku sering terlalu manja. Aku tidak akan bisa jauh dari mu. Aku sangat mencintaimu.
♥ Anakku, Nada. Kamu adalah malaikat kecil yang dikirimkan Tuhan buat ku. Kamu adalah hal terindah dalam hidupku. Aku sangat menyayangi mu.
♥ Papa dan Mama. Kalian adalah orang tua terbaik buat ku. Terima kasih atas segalanya.
♥ Kakaku, Satria di surga. Kak, setiap menit setiap detik aku selalu merindukanmu.
♥ Pakdhe dan Budhe Purwoko yang selalu membantu keluargaku dalam segala hal. Kalian adalah keluarga terbaikku.
♥ Kakak – kakak sepupuku, Mas Budi dan Mba Weni, Mas Awang, dan Mas Indra. Kalian semua adalah inspirasi hidupku. Aku sangat menyayangi kalian.
♥ Dosen pembimbingku, Bu Rita. Ibu baek banget. ♥ Pimpinanku, Romo Hari Suparwito, SJ, MAIT. Romo adalah pimpinan yang
sangat berwibawa dan sungguh baik. Aku tidak akan pernah melupakan Romo.
♥ Pimpinanku, Romo Frans Susilo , SJ. Romo sangat berjasa dalam hidupku. Hanya ucapan Terima Kasih yang bisa kuberikan atas kepercayaan Romo padaku.
♥ Kepala Bagianku, Bapak Diar Puji Oktavian, S.Si. Pak Diar, terima kasih telah menjadi inspirasiku. Terima kasih atas bimbingan dan semangat yang telah diberikan.
♥ Kakakku, V. Riawan Prasetyatmoko. Kamu adalah seorang kakak yang dikirimkan Tuhan untuk aku. Aku besryukur telah dipertemukan denganmu. Aku sayang kakak.
♥ Sahabatku, Teguh. Kamu adalah seorang sahabat yang baek banget. Gak ada duanya deh.
♥ Sahabatku, Pritty dan Mba Retno. Kalian adalah sahabat yang membuat aku semangat bekerja. Indahnya kebersamaan kita.
♥ Pak Agus dan Mas Sigit. Kalian adalah teman kerja yang lucu banget, membuat aku tertawa terus selama bekerja. Gak seru kalo gak ada kalian berdua
vi
♥ Bu Lusi. Ibu adalah teman kerja sekaligus inspirasi buatku. ♥ Mas Ristan dan Mas Widodo. Kalian adalah teman kerja yang seru deh. ♥ Para Dosen IKOM : Pak Iwan ( you are a special teacher for me ), Bu Rosa,
Mas Eric ( dosen keren deh ), dan semua dosen ku tersayang. ♥ Teman – teman IKOM : Josephine ( ma kasih atas bantuanmu), Wulan ( kamu
baek dan asik banget ), Widya ( terima kasih printing nya), Hastin ( sahabat lama ku ), Hendi ( temen yang keren ), dan semuanya aja. Aku sayang banget sama kalian semua.
vii
ABSTRAK
Sistem Informasi Penggajian pada Universitas Sanata Dharma Yogyakarta
merupakan sebuah sistem yang dapat membantu pengelolaan data penggajian serta memudahkan pembuatan laporan penggajian per bulan. Saat ini beberapa pengelolaan data penggajian masih dilakukan secara tidak efisien.
Sistem Informasi Penggajian ini dibangun menggunakan metode prototyping.
Dalam tahap implementasi, digunakan bahasa pemrogaman Delphi 6.0 dan MySQL Server 5.0 sebagai server basisdatanya. Sistem ini mengolah data penggajian dosen, baik yang bersifat menambah dan yang bersifat mengurangi gaji dosen. Sistem ini akan membantu petugas penggajian dalam mengisikan, mengubah, dan membuat laporan data penggajian.
Berdasarkan hasil penyebaran kuesioner yang telah dilakukan terhadap 30 responden, diperoleh kesimpulan bahwa Sistem Informasi Penggajian pada Universitas Sanata Dharma dapat membantu petugas daftar gaji, sehingga pengelolaan dan pengaksesan data penggajian dapat dilakukan dengan lebih mudah.
viii
ABSTRACT Payroll Information System of Sanata Dharma University’s Lecturers is a
system to manage payroll data and to provide access of payroll information for academic payroll officers in Sanata Dharma University Yogyakarta. Nowadays, many process is still done with inefficient.
This Payroll Information System was developed using prototyping method. In
the implementation phase, Delphi 6.0 was used as the programming language and MySQL Server 5.0 as a database server. This system maintance lecturer’s payroll data, including substract components and improved components. This system help the payroll officers to entry, update, and reports the payroll data.
Based on the questionnaire result distributed to 30 respondents, it can be concluded Payroll Information System of Sanata Dharma University Lecturer’s is able to assist the users, and therefore management and information access of payroll data could be done easier.
ix
x
KATA PENGANTAR
Puji syukur kepada Tuhan yang maha baik sehingga penulis dapat
menyelesaikan skripsi ini dengan lancar, atas segala kekuatan dan kesehatan yang
diberikan-Nya, selama penulis menjalani kuliah hingga mengerjakan skripsi ini.
Skripsi ini disusun sebagai salah satu syarat untuk memperoleh gelar Sarjana
Sains (S.Si) Program Studi Ilmu Komputer di Fakultas Sains dan Teknologi
Universitas Sanata Dharma Yogyakarta.
Penulis menyadari banyak pihak yang telah memberikan sumbangan baik
pikiran, waktu, tenaga, bimbingan dan dorongan pada penulis sehingga akhirnya
skripsi ini dapat selesai. Oleh karena itu pada kesempatan ini, tidak lupa penulis
menyampaikan ucapan terima kasih yang sebesar-besarnya kepada :
Ibu Anastasia Rita Widiarti, S.Si., M.Kom. selaku dosen pembimbing penulisan
tugas akhir ini. Terimakasih atas bimbingan, semangat, dan inspirasi yang
diberikan kepada penulis dalam penulisan skripsi ini. Terimakasih atas
kepercayaan ibu sehingga penulis dapat mengikuti berbagai pengalaman yang
membangun, menikmati kebersamaan yang menyenangkan dan tak terlupakan.
Romo Frans Susilo, SJ selaku pimpinan kerja penulis yang telah memberikan
banyak dukungan dan semangat kepada penulis dalam penulisan skripsi ini.
Terima kasih atas kepercayaan Romo sehingga penulis dapat mengabdikan diri
kepada Universitas Sanata Dharma.
Romo Hari Suparwito, SJ, MAIT selaku pimpinan BAPSI yang telah memberikan
semangat dan inspirasi kepada penulis dalam penulisan skripsi ini. Terima kasih
atas kepercayaan Romo sehingga penulis dapat mengabdikan diri kepada
Universitas Sanata Dharma.
xi
Ibu P.H. Prima Rosa, M.Sc., M.Kom sebagai seorang ibu yang telah memberikan
segala waktu dan bimbingan selama penulis kuliah di USD. Terimakasih atas
segala kepercayaannya, banyak pelajaran buat penulis sehingga penulis bisa
menjadi seperti sekarang.
Bapak M.Giyarta selaku karyawan biro keuangan. Terima kasih yang sebesar –
besarnya atas bantuan yang telah diberikan sehingga penulis dapat mengerjakan
skripsi ini.
Bapak Diar Puji Oktavian, S.Si selaku Kepala Bagian Sistem Informasi BAPSI.
Terima kasih sudah mengenalkan penulis dengan Delphi dan semua dukungan
yang diberikan selama penulis membuat skripsi ini maupun pada saat penulis
bekerja.
Bapak Iwan Binanto, S.Si selaku bapak dan dosen pembimbing akademik yang
selalu memberikan semangat dan inspirasi setiap KRS klasikal.
Seluruh dosen-dosen di Fakultas Sains dan Teknologi. Terima kasih atas semua
bimbingan, kesabaran, pengetahuan dan kesempatan yang penulis terima sejak
menjadi mahasiswi di Fakultas Sains dan Teknologi.
Pejabat Struktural di Fakultas MIPA. Terima kasih atas segala kemudahan dan
fasilitas yang diberikan kepada penulis selama belajar di Fakultas MIPA.
Seluruh Karyawan Fakultas MIPA. Terima kasih atas kemudahan-kemudahan
yang selama ini saya terima.
Inspirasi dan penyemangat hidup tiada henti bagiku : Suamiku, M. Yulianto
Setiawan. Terima kasih atas besarnya cintamu padaku. ( Aku gak akan bisa jauh
dari kamu ).
Anakku, Nada. Terima kasih telah menjadi inspirasi hidup dan cinta yang tak
terhingga.
Papa dan Mama, terima kasih atas semua dukungan selama pengerjaan skripsi.
Kakakku di surga, terima kasih atas doa – doa yang kau kirimkan. Aku selalu
merindukan kakak ( Aku sayang kakak... ).
xii
xiii
Pakdhe dan Budhe Purwoko. Terima kasih atas dukungan dan kasih yang telah
diberikan.
Kakak – kakak sepupuku : Mas Budi dan Mba Weni, Mas Awang, dan Mas Indra.
Terima kasih atas dukungan dan semangat yang diberikan.
Sahabat – sahabatku tercinta di BAPSI : Teguh ( Terima kasih banyak atas semua
bantuanmu ), Pritty ( Terima kasih banyak atas bimbinganmu ), Mba Retno (
Terima kasih banyak atas kebersamaan yang indah ), Pak Agus ( Terima kasih
banyak sudah membuat aku banyak tertawa ), Bu Lusi ( Terima kasih banyak atas
dukungannya ), Mas Ristan dan Mas Widodo ( Terima kasih banyak atas
semangat yang diberikan kepadaku), Mas Sigit ( Terima kasih sudah banyak
membuat aku tertawa dengan berbagai kelucuan ), dan terakhir untuk Mas
Riawan, kakakku yang selalu memberikan aku kasih yang tak terhingga
membuatku semangat menghadapi semua permasalahan ( Terima kasih kak.., aku
sayang kakak ).
Sahabat-sahabatku : Josephine,Wulan, Widya, dan Rinma. Terima kasih atas
semua dukungan dan bantuannya.
Teman-teman Ilmu Komputer angkatan 2002 dan 2003 dan semua teman-teman
kampus. Terima kasih atas kebersamaannya selama ini, kalian membuat hidupku
lebih indah.
Semua pihak yang tidak dapat disebutkan satu persatu yang telah membantu
dalam penyelesaian skripsi ini.
Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan.
Walaupun demikian penulis berharap semoga skripsi ini dapat bermanfaat bagi
masyarakat dan perkembangan ilmu pengetahuan alam.
Penulis
DAFTAR ISI
HALAMAN JUDUL................................................................................................ i
HALAMAN PERSETUJUAN............................................................................... iii
HALAMAN PENGESAHAN................................................................................ iv
PERNYATAAN KEASLIAN KARYA...................................................................v
HALAMAN PERSEMBAHAN..............................................................................vi
ABSTRAK.............................................................................................................viii
ABSTRACK............................................................................................................ix
HALAMAN HAK CIPTA .......................................................................................x
KATA PENGANTAR ......................................................................................... ..xi
DAFTAR ISI........................................................................................................ xiv
DAFTAR GAMBAR ......................................................................................... xxiv
DAFTAR TABEL................................................................................................xxx
BAB I. PENDAHULUAN
1.1. Latar Belakang Masalah.........................................................................1
1.2. Rumusan Masalah ..................................................................................2
1.3. Tujuan dan Manfaat Penelitian ..............................................................2
1.4. Batasan Masalah ....................................................................................3
1.5. Metodologi Penelitian ...........................................................................3
1.6. Sistematika Pembahasan ........................................................................4
xiv
BAB II. LANDASAN TEORI
2.1. Sistem dan Informasi .............................................................................7
A. Konsep Dasar Sistem .........................................................................7
i. Karakteristik Sistem ........................................................................8
B. Konsep Dasar Informasi....................................................................11
i. Kualitas Sistem Informasi .............................................................12
ii. Nilai Informasi...............................................................................13
C. Konsep Dasar Sistem Informasi .......................................................13
i. Komponen Sistem Informasi ........................................................13
2.2. Penjelasan Paradigma Prototype ..........................................................15
A. Pengumpulan Kebutuhan ..................................................................16
B. Desain Cepat.......................................................................................16
C. Pembangunan Prototype ....................................................................16
D. Evaluasi pelanggan terhadap prototype..............................................16
E. Perbaikan Prototype............................................................................16
F. Produk Rekayasa.................................................................................17
2.3. Alat Bantu Perancangan Sistem...........................................................17
A. Entity Relation Diagram ....................................................................17
B. Diagram Aliran Data ( DAD ) ............................................................22
2.4. Normalisasi Tabel ................................................................................24
A. Bentuk – bentuk Normal ..................................................................24
2.5. Arsitektur Client / Server .....................................................................25
xv
2.6. Metode Kuisioner.................................................................................26
A. Tujuan Kuisioner...............................................................................27
B. Macam – macam kuisioner ...............................................................27
C. Menganalisis Data.............................................................................27
BAB III. ANALISA DAN PERANCANGAN SISTEM
3.1. Analisa Sistem......................................................................................29
A. Analisa Sistem Informasi Penggajian saat ini ...................................29
B. Masalah yang timbul dengan sistem saat ini .....................................32
C. Gambaran Sistem Informasi Penggajian dosen baru ........................32
D. Analisa kebutuhan Sistem Informasi Penggajian Dosen baru .........34
E. Spesifikasi Sistem..............................................................................34
3.2. Desain Sistem.......................................................................................36
A. Desain Proses ...................................................................................36
B. Desain Basis Data.............................................................................46
C. Desain Interface................................................................................ 47
Desain Menu.....................................................................................47
i. Form Menu Utama ........................................................................50
ii. Form Tunjangan Dosen .................................................................50
iii. Form Setting Tunjangan................................................................51
iv. Form Tunjangan Yayasan .............................................................51
v. Form Iuran Dosen..........................................................................52
vi. Form Set Jenis Iuran......................................................................52
xvi
vii. Form Set Besar Pajak ....................................................................53
viii. Form Update Besar Iuran Massal ..................................................53
ix. Form Pinjaman Dosen ...................................................................54
x. Form Set Jenis Pinjaman ...............................................................54
xi. Form Rekap Gaji Tanggal 1 ..........................................................55
xii. Form Rekap Gaji Tanggal 15 ........................................................55
xiii. Form Set Daftar Honor Semester Antara ......................................56
xiv. Form Set Tarif Honor Semester Antara ........................................56
xv. Form Penerimaan Honor Ajar Semester Antara............................57
xvi. Form Penerimaan Honor Semester Antara....................................57
xvii. Form Rekap Honor Semester Antara ............................................58
xviii. Form Set Daftar Honor PMB ........................................................58
xix. Form Dosen Penerima Honor PMB ..............................................59
xx. Form Set Honor / Potongan lain - lain ..........................................59
xxi. Form Penerimaan Honor / Potongan lain - lain.............................60
xxii. Form Set Daftar Vakasi Dosen......................................................60
xxiii. Form Set Kerja Vakasi Dosen .......................................................61
xxiv. Form Set Tarif Vakasi ...................................................................61
xxv. Form Rekap Vakasi Dosen............................................................62
xxvi. Form Set Tarif Overload ...............................................................62
xxvii. Form Penerimaan Overload...........................................................63
xxviii. Form Update besar tunjangan massal............................................63
xvii
xxix. Form Set Gaji 13 ...........................................................................64
xxx. Form Set Tunjangan Hari Raya.....................................................64
xxxi. Form Honorarium Dosen...............................................................65
xxxii. Form Set Besar PTKP ...................................................................65
xxxiii. Form Rekap Data...........................................................................66
D. Desain Output.....................................................................................66
i. Desain output laporan jenis tunjangan ..........................................66
ii. Desain output daftar besar tunjangan yayasan... ...........................67
iii. Desain output laporan daftar tunjangan per dosen... .....................67
iv. Desain output laporan iuran per dosen... .......................................68
v. Desain output daftar vakasi dosen.................................................68
vi. Desain output data overload dosen................................................69
vii. Desain output data honorarium dosen... ........................................69
viii. Desain output data honor lain – lain dosen... ................................70
ix. Desain output jenis pinjaman dosen... ...........................................70
x. Desain output daftar pinjaman dosen... .........................................71
xi. Desain output daftar honor PMB dosen... .....................................71
xii. Desain output daftar tarif honor semester antara...........................72
xiii. Desain output daftar honor mengajar semester antara... ...............72
xiv. Desain output daftar honor semester antara dosen... .....................73
xv. Desain output daftar gaji tanggal 15..............................................73
xvi. Desain output daftar gaji tanggal 1................................................74
xviii
xvii. Desain output rekap data................................................................74
BAB IV. IMPLEMENTASI SISTEM
A. Implementasi Basis Data...................................................................75
B. Implementasi User Interface.. ...........................................................79
i. Form Menu Utama ........................................................................79
ii. Form Tunjangan Dosen.................................................................79
iii. Form Setting Tunjangan................................................................80
iv. Form Tunjangan Yayasan .............................................................80
v. Form Iuran Dosen .........................................................................81
vi. Form Set Jenis Iuran .....................................................................81
vii. Form Set Besar Pajak....................................................................82
viii. Form Update Iuran Massal............................................................82
ix. Form Pinjaman Dosen...................................................................83
x. Form Set Jenis Pinjaman...............................................................83
xi. Form Rekap Gaji Tanggal 1..........................................................84
xii. Form Rekap Gaji Tanggal 15........................................................84
xiii. Form Set Daftar Honor Semester Antara ......................................85
xiv. Form Set Tarif Honor Semester Antara ........................................85
xv. Form Penerimaan Honor Ajar Semester Antara ...........................86
xvi. Form Penerimaan Honor Semester Antara ...................................86
xvii. Form Rekap Honor Semester Antara ............................................87
xviii. Form Set Daftar Honor PMB ........................................................87
xix
xix. Form Dosen Penerima Honor PMB ..............................................88
xx. Form Set Honor / Potongan lain - lain ..........................................88
xxi. Form Penerimaan Honor / Potongan lain - lain ............................89
xxii. Form Set Daftar Vakasi Dosen .....................................................89
xxiii. Form Set Kerja Vakasi Dosen.......................................................90
xxiv. Form Set Tarif Vakasi...................................................................90
xxv. Form Rekap Vakasi Dosen ...........................................................91
xxvi. Form Set Tarif Overload ...............................................................91
xxvii. Form Penerimaan Overload ..........................................................92
xxviii. Form Penerimaan Honorarium Dosen ..........................................92
xxix. Form Update Besar Tunjangan Massal .........................................93
xxx. Form Set Gaji 13 ...........................................................................93
xxxi. Form Set Tunjangan Hari Raya.....................................................94
xxxii. Form Set Besar PTKP ...................................................................94
xxxiii. Form Rekap Data...........................................................................95
C. Implementasi Proses.........................................................................95
i. Proses Pada Menu Tunjangan Dosen............................................95
ii. Proses Pada Menu Set Tunjangan Untuk Banyak Dosen............103
iii. Proses Pada Menu Set Tunjangan Gaji .......................................104
iv. Proses Pada Menu Tunjangan Yayasan ......................................106
v. Proses Pada Menu Iuran Per Dosen ............................................107
vi. Proses Pada Menu Set Jenis Iuran Gaji.......................................110
xx
vii. Proses Pada Menu Update Besar Iuran .......................................111
viii. Proses Pada Menu Set Besar Pajak .............................................112
ix. Proses Pada Menu Pinjaman Dosen............................................113
x. Proses Pada Menu Set Jenis Pinjaman Dosen.............................115
xi. Proses Pada Menu Set Jenis Honor Semester Antara .................115
xii. Proses Pada Menu Set Tarif Honor Semester Antara .................116
xiii. Proses Pada Menu Penerimaan Honor Ajar Semester Antara ....118
xiv. Proses Pada Menu Penerimaan Honor Semester Antara.............119
xv. Proses Pada Menu Rekap Honor Semester Antara .....................120
xvi. Proses Pada Menu Set Jenis Honor PMB ...................................123
xvii. Proses Pada Menu Set Penerima Honor PMB ............................124
xviii. Proses Pada Menu Set Jenis Vakasi ............................................125
xix. Proses Pada Menu Penerimaan Vakasi .......................................125
xx. Proses Pada Menu Rekap Vakasi................................................127
xxi. Proses Pada Menu Set Tarif Vakasi ............................................129
xxii. Proses Pada Menu Set Tarif Overload ........................................130
xxiii. Proses Pada Menu Penerimaan Overload ...................................131
xxiv. Proses Pada Menu Honorarium Dosen .......................................132
xxv. Proses Pada Menu Lihat Gaji Tanggal 1.....................................137
xxvi. Proses Pada Menu Lihat Gaji Tanggal 15...................................144
xxvii. Proses Pada Menu Set Gaji 13 ....................................................149
xxviii. Proses Pada Menu Set Tunjangan Hari Raya..............................151
xxi
xxix. Proses Pada Menu Rekap Data....................................................152
D. Implementasi Output .......................................................................154
i. Print Out Jenis Tunjangan...........................................................154
ii. Print Out Daftar Besar Tunjangan Yayasan................................154
iii. Print Out Daftar Tunjangan Per Dosen .......................................155
iv. Print Out Daftar Iuran Per Dosen................................................155
v. Print Out Daftar Vakasi Dosen ...................................................156
vi. Print Out Daftar Overload Dosen................................................156
vii. Print Out Daftar Honorarium Dosen ...........................................157
viii. Print Out Daftar Honor / Potongan Lain .....................................157
ix. Print Out Daftar Jenis Pinjaman..................................................158
x. Print Out Daftar Pinjaman Dosen ...............................................158
xi. Print Out Daftar Honor PMB ......................................................159
xii. Print Out Daftar Tarif Mengajar Semester Antara......................159
xiii. Print Out Daftar Honor Mengajar Semester Antara....................160
xiv. Print Out Daftar Honor Semester Antara ....................................160
xv. Print Out Daftar Gaji Tanggal 15................................................161
xvi. Print Out Daftar Gaji Tanggal 1..................................................161
xvii. Print Out Rekap Data...................................................................162
BAB V. HASIL DAN PEMBAHASAN SISTEM
5.1. Teknik Pengumpulan Data.................................................................163
5.2. Sasaran Penyebaran Kuisioner...........................................................163
xxii
5.3. Form Kuisioner ..................................................................................164
5.4. Hasil dan Pembahasan Kuisioner.......................................................166
BAB VI. PENUTUP
6.1 Kesimpulan ........................................................................................173
6.2 Saran dan Kritik .................................................................................174
DAFTAR PUSTAKA ..........................................................................................175
LAMPIRAN......................................................................................................... 176
xxiii
DAFTAR GAMBAR
Gambar 2.1 Siklus Informasi................................................................. 11
Gambar 2.2 Simbol Entitas.................................................................... 18
Gambar 2.3 Simbol Atribut................................................................... 18
Gambar 2.4 Simbol Relasi..................................................................... 18
Gambar 2.5 Relasi One to Many........................................................... 19
Gambar 2.6 Derajat Hubungan One to Many.......................................... 19
Gambar 2.7 Relasi Many to Many............................................................ 20
Gambar 2.8 Derajat Hubungan Many to Many........................................ 20
Gambar 2.9 Relasi One to One................................................................. 21
Gambar 2.10 Derajat Hubungan One to One............................................. 21
Gambar 2.11 Simbol Entitas Eksternal...................................................... 22
Gambar 2.12 Simbol Proses....................................................................... 22
Gambar 2.13 Simbol Item Data................................................................. 22
Gambar 2.14 Simbol Simpanan Data......................................................... 22
Gambar 3.1 DFD Level 0......................................................................... 36
Gambar 3.2 DFD Level 1......................................................................... 39
Gambar 3.3 DFD Level 2 untuk proses edit data..................................... 42
Gambar 3.4 DFD Level 2 untuk proses hapus data.................................. 44
Gambar 3.5 E-R Diagram........................................................................ 46
Gambar 3.6 Desain Form Menu Utama................................................... 50
xxiv
Gambar 3.7 Desain Form Tunjangan Dosen............................................ 50
Gambar 3.8 Desain Form Setting Tunjangan........................................... 51
Gambar 3.9 Desain Form Tunjangan Yayasan........................................ 51
Gambar 3.10 Desain Form Iuran Dosen..................................................... 52
Gambar 3.11 Desain Form Set Jenis Iuran................................................ 52
Gambar 3.12 Desain Form Setting Besar Pajak......................................... 53
Gambar 3.13 Desain Form Update Besar Iuran......................................... 53
Gambar 3.14 Desain Form Pinjaman Dosen.............................................. 54
Gambar 3.15 Desain Form Set Jenis Pinjaman.......................................... 54
Gambar 3.16 Desain Form Rekap Gaji Tanggal 1..................................... 55
Gambar 3.17 Desain Form Rekap Gaji Tanggal 15................................... 55
Gambar 3.18 Desain Form Set Daftar Honor Semester Antara................. 56
Gambar 3.19 Desain Form Set Tarif Honor Semester Antara................... 56
Gambar 3.20 Desain Form Penerimaan Honor Ajar Semester Antara...... 57
Gambar 3.21 Desain Form Penerimaan Honor Semester Antara.............. 57
Gambar 3.22 Desain Form Rekap Honor Semester Antara....................... 58
Gambar 3.23 Desain Form Set Daftar Honor PMB................................... 58
Gambar 3.24 Desain Form Penerimaan Honor PMB................................. 59
Gambar 3.25 Desain Form Set Honor / Potongan lain-lain...................... 59
Gambar 3.26 Desain Form Penerimaan Honor / Potongan lain-lain......... 60
Gambar 3.27 Desain Form Set Daftar Vakasi........................................... 60
xxv
Gambar 3.28 Desain Form Set Kerja Vakasi Dosen.................................. 61
Gambar 3.29 Desain Form Set Tarif Vakasi.............................................. 61
Gambar 3.30 Desain Form Rekap Vakasi.................................................. 62
Gambar 3.31 Desain Form Set Tarif Overload.......................................... 62
Gambar 3.32 Desain Form Penerimaan Overload..................................... 63
Gambar 3.33 Desain Form Update Besar Tunjangan Massal................... 63
Gambar 3.34 Desain Form Set Gaji 13..................................................... 64
Gambar 3.35 Desain Form Set Tunjangan Hari Raya............................... 64
Gambar 3.36 Desain Form Honorarium Dosen......................................... 65
Gambar 3.37 Desain Form Set Besar PTKP............................................. 65
Gambar 3.38 Desain Form Rekap Data.................................................... 66
Gambar 3.39 Desain Print Out Daftar Jenis Tunjangan............................ 66
Gambar 3.40 Desain Print Out Daftar Besar Tunjangan Yayasan............ 67
Gambar 3.41 Desain Print Out Daftar Tunjangan Per Dosen................... 67
Gambar 3.42 Desain Print Out Daftar Iuran Per Dosen............................ 68
Gambar 3.43 Desain Print Out Daftar Vakasi Dosen................................ 68
Gambar 3.44 Desain Print Out Daftar Overload Dosen........................... 69
Gambar 3.45 Desain Print Out Daftar Honorarium Dosen....................... 69
Gambar 3.46 Desain Print Out Daftar Honor / Potongan Lain-lain.......... 70
Gambar 3.47 Desain Print Out Jenis Pinjaman.......................................... 70
Gambar 3.48 Desain Print Out Daftar Pinjaman Dosen........................... 71
xxvi
Gambar 3.49 Desain Print Out Daftar Honor PMB.................................. 71
Gambar 3.50 Desain Print Out Daftar Tarif Mengajar Semester Antara .. 72
Gambar 3.51 Desain Print Out Daftar Honor Mengajar Semester Antara. 72
Gambar 3.52 Desain Print Out Daftar Honor Semester Antara................. 73
Gambar 3.53 Desain Print Out Daftar Gaji Tanggal 15............................. 73
Gambar 3.54 Desain Print Out Daftar Gaji Tanggal 1............................... 74
Gambar 3.55 Desain Print Out Rekap Data............................................... 74
Gambar 4.1 Form Menu Utama............................................................... 79
Gambar 4.2 Form Tunjangan Dosen........................................................ 79
Gambar 4.3 Form Setting Tunjangan....................................................... 80
Gambar 4.4 Form Tunjangan Yayasan.................................................... 80
Gambar 4.5 Form Iuran Dosen................................................................. 81
Gambar 4.6 Form Set Jenis Iuran............................................................. 81
Gambar 4.7 Form Set Besar Pajak........................................................... 82
Gambar 4.8 Form Update Besar Iuran Massal......................................... 82
Gambar 4.9 Form Pinjaman Dosen.......................................................... 83
Gambar 4.10 Form Set Jenis Pinjaman...................................................... 83
Gambar 4.11 Form Rekap Gaji Tanggal 1................................................. 84
Gambar 4.12 Form Rekap Gaji Tanggal 15............................................... 84
Gambar 4.13 Form Set Daftar Honor Semester Antara............................. 85
Gambar 4.14 Form Set Tarif Honor Semester Antara.............................. 85
xxvii
Gambar 4.15 Form Penerimaan Honor Ajar Semester Antara................... 86
Gambar 4.16 Form Penerimaan Honor Semester Antara........................... 86
Gambar 4.17 Form Rekap Honor Semester Antara................................... 87
Gambar 4.18 Form Set Daftar Honor PMB............................................... 87
Gambar 4.19 Form Dosen Penerima Honor PMB..................................... 88
Gambar 4.20 Form Set Honor / Potongan Lain-lain.................................. 88
Gambar 4.21 Form Penerimaan Honor / Potongan Lain-lain.................... 89
Gambar 4.22 Form Set Daftar Vakasi Dosen............................................. 89
Gambar 4.23 Form Set Kerja Vakasi Dosen.............................................. 90
Gambar 4. 24 Form Set Tarif Vakasi.......................................................... 90
Gambar 4.25 Form Rekap Vakasi Dosen.................................................. 91
Gambar 4.26 Form Set Tarif Overload...................................................... 91
Gambar 4.27 Form Penerimaan Overload................................................. 92
Gambar 4.28 Form Penerimaan Honorarium Dosen.................................. 92
Gambar 4.29 Form Update Besar Tunjangan Massal................................ 93
Gambar 4.30 Form Set Gaji 13.................................................................. 93
Gambar 4.31 Form Set Tunjangan Hari Raya............................................ 94
Gambar 4.32 Form Set Besar PTKP.......................................................... 94
Gambar 4.33 Form Rekap Data.................................................................. 95
Gambar 4.34 Print Out Jenis Tunjangan.................................................... 154
Gambar 4.35 Print Out Daftar Besar Tunjangan Yayasan......................... 154
xxviii
Gambar 4.36 Print Out Daftar Tunjangan Per Dosen................................ 155
Gambar 4.37 Print Out Daftar Iuran Per Dosen........................................ 155
Gambar 4.38 Print Out Daftar Vakasi Dosen............................................ 156
Gambar 4.39 Print Out Daftar Overload Dosen........................................ 156
Gambar 4.40 Print Out Daftar Honorarium Dosen.................................... 157
Gambar 4.41 Print Out Daftar Honor / Potongan Lain-lain...................... 157
Gambar 4.42 Print Out Jenis Pinjaman Dosen.......................................... 158
Gambar 4.43 Print Out Daftar Pinjaman Dosen........................................ 158
Gambar 4.44 Print Out Daftar Honor PMB............................................... 159
Gambar 4.45 Print Out Daftar Tarif Honor Ajar Semester Antara............ 159
Gambar 4.46 Print Out Daftar Honor Mengajar Semester Antara............ 160
Gambar 4.47 Print Out Daftar Honor Semester Antara............................. 160
Gambar 4.48 Print Out Daftar Gaji Tanggal 15......................................... 161
Gambar 4.49 Print Out Daftar Gaji Tanggal 1.......................................... 161
Gambar 4.50 Print Out Rekap Data........................................................... 162
Gambar 5.1 Grafik Untuk Pernyataan No.1............................................. 166
Gambar 5.2 Grafik Untuk Pernyataan No.2............................................. 168
Gambar 5.3 Grafik Untuk Pernyataan No.3............................................. 169
Gambar 5.4 Grafik Untuk Pernyataan No.4............................................. 170
Gambar 5.5 Grafik Untuk Pernyataan No.5............................................. 171
Gambar 5.6 Grafik Untuk Pernyataan No.6............................................. 172
xxix
DAFTAR TABEL
Tabel 5.1 Hasil Kuisioner Pernyataan 1............................................... 166
Tabel 5.2 Hasil Kuisioner Pernyataan 2............................................... 167
Tabel 5.3 Hasil Kuisioner Pernyataan 3............................................... 168
Tabel 5.4 Hasil Kuisioner Pernyataan 4............................................... 169
Tabel 5.5 Hasil Kuisioner Pernyataan 5............................................... 170
Tabel 5.6 Hasil Kuisioner Pernyataan 6............................................... 171
xxx
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Saat ini, sistem yang digunakan untuk mengelola gaji para dosen di
Universitas Sanata Dharma ( USD ) masih kurang efisien. Sistem yang digunakan
memang sudah terkomputerisasi namun masih menggunakan software Lotus 123
sehingga proses pengelolaan data masih sangat rumit. Hal ini sangat merepotkan user
yang bersangkutan karena input data membutuhkan waktu yang lama. Apalagi jika
data perlu diupdate, maka user harus mengupdate semua data yang berhubungan
dengan data tersebut satu per satu.
Sistem penggajian di USD itu sendiri sangat rumit. Karyawan yang
memahami sistem penggajian ini jumlahnya sangat terbatas, yaitu hanya 1 orang saja.
Banyak karyawan yang sudah berusaha mempelajarinya tetapi kebanyakan dari
mereka menyerah. Sistem informasinya pun sudah banyak dibuat tetapi semua sistem
informasi tersebut tidak cocok dengan sistem penggajian yang ada di USD. Pada
akhirnya sistem – sistem tersebut tidak ada yang digunakan.
Oleh karena itu, dibutuhkan sebuah sistem informasi penggajian dengan
analisa yang tepat dan sesuai dengan prosedur – prosedur penggajian dosen di
Universitas Sanata Dharma. Sistem informasi ini dapat menangani input, memproses
input tersebut, dan menghasilkan output secara efektif dan efisien. Input data
1
diharapkan dapat dilakukan dengan mudah oleh user dengan adanya sistem ini. Selain
itu sistem dapat memproses data sesuai dengan prosedur – prosedur yang ada
sehingga output yang dihasilkan benar – benar sesuai yang diinginkan oleh organisasi
ini.
Dengan sistem informasi ini, user tidak perlu menyita banyak waktunya untuk
menginputkan data, dapat mengupdate data dengan mudah, dan mendapatkan laporan
– laporan yang dibutuhkan. Banyak karyawan dapat menggunakan sistem ini
sehingga sistem informasi penggajian tidak hanya bergantung pada 1 orang saja.
Selain itu, integritas basis data di organisasis USD ini dapat terjaga dengan adanya
sistem informasi ini.
1.2 RUMUSAN MASALAH
Masalah utama yang akan diselesaikan adalah bagaimana membuat sebuah
sistem informasi penggajian untuk dosen USD yang terintegrasi dengan sistem
informasi personalia dengan analisa tepat sehingga menghasilkan sistem informasi
penggajian yang sesuai dengan prosedur – prosedur penggajian di Universitas Sanata
Dharma.
1.3 TUJUAN DAN MANFAAT PENELITIAN
Tujuan dari penelitian ini adalah membuat Sistem Informasi Penggajian
Dosen Universitas Sanata Dharma menggunakan tahap-tahap RPL yang bermanfaat
untuk mempermudah pengelolaan dan pelaporan data penggajian dosen.
2
1.4 BATASAN MASALAH
Masalah yang akan diatasi oleh sistem informasi ini akan dibatasi untuk dosen
saja dan tidak termasuk untuk karyawan administratif Universitas Sanata Dharma.
Yang dimaksud dengan karyawan administratif disini adalah pegawai di USD selain
dosen. Sistem ini tidak mengelola data rapel gaji dosen secara otomatis. Laporan
yang dibuat dalam sistem ini dibatasi pada laporan per bulan.
1.5 METODOLOGI
Metodologi yang akan digunakan dalam pengembangan sistem informasi ini
adalah metodologi prototyping ( Roger S. Pressmann, Ph.D. , 2002 ) . Metodologi ini
digunakan karena pembuat sistem informasi, dalam hal ini adalah penulis tidak begitu
mengerti sistem informasi seperti apa yang diinginkan oleh user. Penulis
menggunakan metodologi ini dengan harapan sistem informasi yang dihasilkan benar
– benar sesuai dengan kebutuhan user. Keuntungan lain yang didapatkan dengan
menggunakan metodologi ini adalah user lebih merasa dilibatkan dalam pembuatan
sistem. Tahap – tahap yang akan ditempuh dalam metodologi prototyping adalah :
a. Pengumpulan Kebutuhan
Dalam tahap ini pengembang dan pelanggan menentukan bersama
tujuan dibuatnya sistem informasi beserta seluruh kebutuhannya.
3
b. Desain Cepat
Desain memfokuskan pada representasi dari semua aspek perangkat
lunak yang inderawi, seperti : pendekatan untuk memasukkan data, format
keluaran, dan perancangan mengarah pada pembangunan prototype.
c. Pembangunan Prototype
Prototype dibangun berdasar desain cepat.
d. Evaluasi pelanggan terhadap prototype
Prototype diberikan kepada pelanggan untuk dievaluasi apakah sudah
sesuai dengan permintaannya. Kemudian pelanggan dan pengembang
mendiskusikan perubahan yang diiinginkan.
e. Perbaikan Prototype
Perbaikan prototype dilakukan berdasar hasil evaluasi. Proses iterasi
terjadi menyertai proses ini, kecuali jika kebutuhan pelanggan sudah terpenuhi
f. Produk Rekayasa
Berupa perangkat lunak yang semakin mendekati kebutuhan
pelanggan.
1.6 SISTEMATIKA PEMBAHASAN
Sistematika penulisan adalah penelitian ini dibagi dalam 6 tahap, yaitu :
a. BAB I PENDAHULUAN
Bab ini akan membahas tentang garis besar tugas akhir yang akan
dibuat. Dalam bab ini akan dijelaskan latar belakang pemilihan materi tugas
4
akhir, rumusan masalah yang akan diselesaikan, batasan masalah, metodologi
yang akan digunakan dalam pneyelesaian masalah, dan sistematika
pembahasan.
b. BAB II LANDASAN TEORI
Bab II ini membahas tentang teori – teori pokok yang akan digunakan
dalam pembahasan atau perancangan dan evaluasi atau analisa. Teori – teori
yang akan dibahas dalam bab ini akan terkait dengan metodologi yang sudah
diuraikan pada Bab I.
c. BAB III ANALISA DAN PERANCANGAN
Bab III ini akan berisi mengenai pembahasan atau perancangan
penyelesaian masalah. Dalam pembuatan sistem informasi, bab ini akan berisi
analisa dan desain sistem.
d. BAB IV IMPLEMENTASI SISTEM
Bab ini akan berisi implementasi sistem berdasarkan hasil dari
pembahasan atau perancangan yang dilakukan pada bab sebelumnya. Pada
bab inilah cocok atau tidaknya pembahasan atau perancangan ditentukan.
5
e. BAB V HASIL DAN PEMBAHASAN SISTEM
Bab ini berisi hasil dan pembahasan penyebaran sistem menggunakan
metode kuisioner.
f. BAB VI PENUTUP
Bab ini berisi kesimpulan dan saran yang dapat diambil berbagai
tanggapan yang diberikan responden dari penyebaran kuisioner yang sudah
dilakukan.
g. LAMPIRAN
Lampiran berisi daftar item gaji dosen beserta keterangannya masing –
masing.
.
6
BAB II
LANDASAN TEORI
2.1 Sistem dan Informasi
A. Konsep Dasar Sistem
Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling
berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau
untuk menyelesaikan suatu sasaran tertentu (FitzGerald, dkk, 1981).
Pendekatan sistem yang merupakan jaringan kerja dari prosedur lebih
menekankan urutan-urutan operasi di dalam sistem. Prosedur didefinisikan
oleh Richard F. Neuschel sebagai berikut :
Prosedur adalah suatu urutan operasi klerikal (tulis-menulis) biasanya
melibatkan beberapa orang di dalam satu atau lebih departemen, yang
diterapkan utuk menjamin penanganan yang seragam dari transaksi-transaksi
bisnis yang terjadi.
Lebih lanjut dikatakan bahwa suatu prosedur adalah urutan-urutan
yang tepat dari tahapan-tahapan instruksi yang menerangkan apa(what) yang
harus dikerjakan, siapa(who) yang mengerjakan, kapan(when) dikerjakan dan
bagaimana(how) mengerjakannya (FitzGerald, dkk, 1981).
7
Sistem adalah kumpulan elemen-elemen yang berinteraksi untuk
mencapai tujuan tertentu merupakan pendekatan sistem yang lebih
menekankan pada elemennya.
i. Karakteristik Sistem
Sistem memiliki beberapa karakteristik yang dapat menjadi
patokan sehingga dapat dikatakan sebagai suatu sistem yang sempurna.
Karakteristik suatu sistem diantaranya :
a). Komponen Sistem (components)
Terdiri dari sejumlah komponen yang saling berinteraksi dan
bekerjasama membentuk suatu kesatuan. Komponen-komponen
terdiri dari beberapa subsistem, dimana subsistem tersebut
memiliki fungsi khusus dan akan mempengaruhi proses sistem
secara keseluruhan.
b). Batas Sistem (boundary)
Merupakan daerah yang membatasi antara suatu sistem dengan
sistem yang lainnya atau dengan lingkungan luarnya. Batas sistem
ini memungkinkan suatu sistem dipandang sebagai suatu kesatuan.
Batas suatu sistem menunjukkan ruang lingkup (scope) dari sistem
tersebut.
c). Lingkungan Luar Sistem (environtments)
Adalah apapun di luar batas dari sistem yang dapat mempengaruhi
operasi sistem. Linkungan luar dapat bersifat menguntungkan
8
ataupun merugikan. Lingkungan yang menguntungkan harus tetap
dijaga dan dipelihara. Sebaliknya lingkungan yang merugikan
harus ditahan dan dikendalikan, jika tidak ingin terganggu
kelangsungan hidup sistem.
d). Penghubung Sistem (interface)
Merupakan media penghubung antar subsistem yang
memungkinkan sumber daya mengalir dari suatu subsistem
lainnya. Keluaran (Output) dari suatu subsistem akan menjadi
masukan (Input) untuk subsistem lainnya melalui penghubung
untuk mengintegrasikan subsistem-subsistem tersebut menjadi satu
kesatuan.
e). Masukan Sistem (input)
Adalah energi yang dimasukkan kedalam suatu sistem yang dapat
berupa masukan perawatan (maintenance input) dan masukan
sinyal (signal input). Masukan perawatan adalah energi yang
dimasukan supaya sistem dapat beroperasi, sedangkan masukan
sinyal adalah energi yang diproses untuk mendapatkan keluaran.
Sebagai contoh dalam sistem komputer, program adalah
maintenance input yang digunakan untuk mengoperasikan
komputer.
9
f). Keluaran Sistem (output)
Adalah hasil energi yang diolah dan diklasifikasikan menjadi
keluaran yang berguna dari sisa pembuangan. Keluaran dapat
merupakan masukan untuk subsistem yang lain. Misalnya untuk
sistem komputer, panas yang dihasilkan adalah keluaran yang
tidak berguna dan merupakan hasil pembuangan, sedangkan
informasi adalah keluaran yang dibutuhkan.
g). Pengolah Sistem (process)
Suatu sistem dapat mempunyai suatu bagian pengolah yang akan
mengubah masukan menjadi keluaran. Sebagai contoh : Suatu
sistem produksi akan mengolah masukan berupa bahan baku dan
bahan-bahan yang lain menjadi keluaran berupa barang jadi.
Contoh lain : Suatu sistem pembelian dan penjualan akan
mengolah data-data transaksi menjadi laporan-laporan yang
dibutuhkan oleh perusahaan.
h). Tujuan dan Sasaran Sistem
Suatu sistem pasti mempunyai tujuan (goal) atau sasaran
(objectives). Jika suatu sistem tidak mempunyai suatu tujuan, maka
sistem tersebut tidak berguna. Tujuan sistem sangat menentukan
bagi masukan yang dibutuhkan sistem dan keluaran yang akan
dihasilkan sistem. Suatu sistem dikatakan berhasil bila sasaran atau
tujuannya tercapai.
10
B. Konsep Dasar Informasi
Informasi adalah data yang diolah menjadi bentuk yang lebih berguna
dan lebih berarti bagi yang menerimanya. Sumber dari informasi adalah data.
Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian atau
kesatuan nyata. Kejadian (event) adalah sesuatu yang terjadi pada saat yang
tertentu.
Gambar di atas menunjukkan bahwa data merupakan bentuk yang
masih mentah, sehingga perlu diolah lebih lanjut. Data diolah melalui suatu
model proses tertentu untuk dihasilkan informasi, dapat berupa model
matematis maupun model deskriptif. Dengan dihasilkan informasi ini, maka
user dapat mengambil keputusan dan melakukan tindakan, yang berarti
menghasilkan suatu tindakan yang lain yang akan membuat suatu data
Dasar Data
Proses (Model)
Input (Data)
Data (ditangkap)
Hasil Tindakan Keputusan Tindakan
Penerima
Output (Information)
Gambar 2.1. Siklus Informasi
11
kembali. Data tersebut akan digunakan sebagai input untuk proses
selanjutnya, membentuk siklus.
Siklus ini oleh John Burch disebut dengan siklus informasi
(information cycle) yang dikenal juga dengan siklus pengolahan data (data
processing cycles).
i. Kualitas Informasi
Kualitas dari suatu informasi tergantung dari tiga hal, yaitu
informasi harus akurat (accurate), tepat pada waktunya (timeliness) dan
relevan (relevance).
a). Akurat berarti informasi harus bebas dari kesalahan-kesalahan dan
tidak bias atau menyesatkan. Akurat juga berarti informasi harus jelas
mencerminkan maksudnya. Informasi harus akurat karena dari sumber
informasi sampai ke penerima informasi kemungkinan banyak terjadi
gangguan (noise) yang dapat merubah atau merusak informasi
tersebut.
b). Tepat pada waktunya, berarti informasi yang datang pada penerima
tidak boleh terlambat. Informasi yang sudah usang tidak akan
mempunyai nilai lagi. Karena informasi merupakan landasan di dalam
pengambilan keputusan. Bila pengambilan keputusan terlambat, maka
dapat berakibat fatal untuk organisasi.
12
c). Relevan, berarti informasi tersebut mempunyai manfaat untuk
pemakainya. Relevansi informasi untuk tiap-tiap orang satu dengan
yang lainnya berbeda.
ii. Nilai Informasi
Nilai informasi (value of information) ditentukan dari dua hal,
yaitu manfaat dan biaya mendapatkannya. Suatu informasi dikatakan
bernilai jika manfaatnya lebih efektif dibandingkan dengan biaya
mendapatkannya.
C. Konsep Dasar Sistem Informasi
Sistem informasi adalah suatu sistem di dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi,
bersifat manajerial dan kegiatan strategi dari suatu organisasi dan
menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan
(Robert A. Leitch,1983).
i. Komponen Sistem Informasi
Jhon Burch dan Gray Grudnitski mengemukakan bahwa sistem
informasi terdiri dari komponen yang disebut dengan istilah blok
bangunan (Building Block), diantaranya meliputi :
a). Blok masukan (input block)
13
Input mewakili data yang masuk ke dalam sistem informasi.
Input dapat berupa dokumen dasar.
b). Blok model (model block)
blok ini terdiri dari kombinasi prosedur, logika dan model
matematik yang akan memanipulasi data input dan data yang
tersimpan di basis data dengan cara yang sudah tertentu untuk
menghasilkan keluaran yang diiginkan.
c). Blok keluaran (output block)
hasil dari sistem informasi adalah keluaran yang merupakan
informasi yang berkualitas dan dokumentasi yang berguna
untuk semua tingkatan manajemen serta semua pemakai
sistem.
d). Blok teknologi (technology block)
teknologi merupakan ‘tool-box’ dalam sistem informasi.
Teknologi digunakan untuk menerima input, menjalankan
model, menyimpan dan mengakses data, menghasilkan dan
mengirimkan keluaran dan membantu pengendalian dari sistem
secara keseluruhan. Teknologi terdiri dari 3 bagian utama yaitu
: teknisi (humanware atau brainware), perangkat lunak
(software) dan perangkat keras (hardware).
e). Blok basis data (database block)
14
basisdata (database) merupakan sekumpulan data yang saling
berhubungan satu dengan lainnya, tersimpan dalam harware
komputer dan menggunakan software untuk memanipulasinya.
f). Blok kendali (controls block)
banyak hal yang dapat merusak sistem informasi, seperti
misalnya bencana alam, api, temperatur, air, kecurangan-
kecurangan, kegagalan-kegagalan sistem itu sendiri, kesalahan-
kesalahan, ketidakefisienan, sabotase dan lain sebagainya.
Untuk itu perlu dilakukan tindakan mengendalikan untuk
meyakinkan bahwa hal-hal yang merusak sistem dapat dicegah
atau bila terlanjur terjadi kesalahan dapat segera diatasi.
2.2 Penjelasan Paradigma Prototype
Sering seorang pelanggan mendefinisikan serangkaian sasaran umum bagi
perangkat lunak, tetapi tidak melakukan identifikasi kebutuhan output, pemrosesan,
ataupun input detail. Pada kasus lain, pengembang mungkin tidak memiliki kepastian
terhadap efisiensi algoritma, kemampuan penyesuaian dari sebuah sistem operasi,
atau bentuk – bentuk yang harus dilakukan oleh interaksi manusia dengan mesin.
Dalam hal ini, serta pada banyak situasi lain, paradigma prototyping mungkin
menawarkan pendekatan yang terbaik.
15
Tahap – tahap yang dilakukan dalam metodologi prototyping
A. Pengumpulan Kebutuhan
Tujuan dari tahap ini adalah mengidentifikasi tekhnologi dan aplikasi
yang dapat dipergunakan untuk meningkatkan kinerja organisasi dalam
mencapai tujuannya.
Dalam tahap ini pengembang dan pelanggan menentukan bersama
tujuan dibuatnya sistem informasi , mengidentifikasi segala kebutuhan yang
diketahui, dan area garis besar dimana definisi lebih jauh merupakan
keharusan kemudia dilakukan desain cepat.
B. Desain Cepat
Desain memfokuskan pada representasi dari semua aspek perangkat
lunak yang inderawi, seperti : pendekatan untuk memasukkan data, format
keluaran, dan perancangan mengarah pada pembangunan prototype.
C. Pembangunan Prototype
Prototype dibangun berdasar desain cepat.
D. Evaluasi pelanggan terhadap prototype
Prototype diberikan kepada pelanggan untuk dievaluasi apakah sudah
sesuai dengan permintaannya. Kemudian pelanggan dan pengembang
mendiskusikan perubahan yang diiinginkan.
E. Perbaikan Prototype
Perbaikan prototype dilakukan berdasar hasil evaluasi. Proses iterasi
terjadi menyertai proses ini, kecuali jika kebutuhan pelanggan sudah terpenuhi
16
F. Produk Rekayasa
Berupa perangkat lunak yang semakin mendekati kebutuhan
pelanggan.
Secara ideal prototype berfungsi sebagai sebuah mekanisme untuk
mengidentifikasi kebutuhan perangkat lunak. Bila prototype yang sedang bekerja
dibangun, pengembang harus menggunakan fragmen – fragmen program yang ada
atau mengaplikasikan alat – alat bantu ( misal : report generator, window manager,
dan lain – lain ) yang memungkinkan program bekerja untuk dimunculkan secara
cepat.
2.3 Alat Bantu dalam perancangan sistem
Alat bantu yang digunakan dalam merancang sistem informasi penggajian, yaitu :
A. Entitas Relation Diagram
Entitas Relation Diagram ( ER- D ) merupakan sebuah model jaringan kerja yang
mendiskripsikan data simpanan dari sebuah sistem pada level abstraksi tinggi.
Komponen dasar dalam ERD adalah :
a. Entitas :
Entity ( entitas) merupakan penyajian objek, kejadian, atau konsep dari dunia
nyata ( real word ) yang keberadaannya secara eksplisit didefinisikan dan disimpan
dalam basis data.
17
Simbol :
Gambar 2.2 Simbol Entitas
b. Atribut :
Atribut merupakan keterangan – keterangan yang dimiliki oleh suatu entitas.
Simbol :
Gambar 2.3 Simbol Atribut
c. Relasi ( hubungan ) :
Relasi ( hubungan ) merupakan interaksi antar entiti satu dengan yang lain.
Simbol :
Gambar 2.4 Simbol Relasi
Jika entitas A mempunyai sejumlah anggota a1, a2, a3, ... dan entitas B memiliki
anggota b1,b2,b3,... maka pasangan antara anggota entitas A dan B dapat dilakukan
sesuai dengan derajat hubungannya, yaitu 1:1 ( one to one ), 1:m ( one to many ), atau
m:n ( many to many ).
i. one to many
Derajat hubungan ini terjadi bila tiap anggota entitas A boleh berpasangan dengan
lebih dari satu anggota entitas B. Sebaliknya, tiap anggota entitas B hanya boleh
berpasangan dengan satu anggota entitas A. Penggambaran dalam E-R diagram dan
instant hubungan dapat dilihat pada gambar berikut :
18
Gambar 2.5 Relasi one to many
Gambar 2.6 Derajat hubungan one to many
Hubungan yang terjadi antara entiti A dan B ditunjukkan adanya instan hubungan
yang meliputi a1 berpasangan dengan b1, a3 berpasangan dengan b2 dan b3, a5
berpasangan dengan b4 dan b5. Sedangakn a2,a4,a6, dan b6 masing – masing tidak
mempunyai pasangan. Pada proses pembuatan tabel, key pada entiti dengan relasi 1
akan masuk ke dalam tabel pada entiti dengan relasi m.
ii. many to many
Derajat hubungan antar entiti m:n terjadi bila tiap anggota entiti A boleh
berpasangan dengan lebih dari satu anggota entiti B. Sebaliknya, tiap anggota entiti B
1 mA berpasangan
a1 b1
a2 b2
a3 b3
a4 b4
a5 b5
B
a6 b6
19
juga boleh berpasangan dengan lebih dari satu anggota entiti A. Penggambaran
hubungan yang terjadi adalah sebagai berikut :
a1
a2
a3
a4
a5
n A
a6
Dari
dengan ada
berpasangan
dengan b5.
Pada prose
yang berisik
m
Gambar 2.7 Relasi many to many
b1
b2
b3
b4
b5
B berpasangan
b6
Gambar 2.8 Derajat hubungan many to many
gambar tersebut hubungan yang terjadi antara entiti A dan B ditunjukkan
nya instan hubungan yang meliputi a2 berpasangan dengan b1 dan b2, a3
dengan b3, a4 berpasangan dengan b3 dan b4, dan a5 berpasangan
Sedangkan a1,a6, dan b6 masing – masing tidak mempunyai pasangan.
s pembuatan tabel, relasi ini akan menyebabkan munculnya tabel baru
an key dari entiti A dan key dari entiti B.
20
iii. one to one
Derajat hubungan antar entiti 1:1 terjadi bila tiap anggota entiti A hanya boleh
berpasangan dengan satu anggota entiti B. Sebaliknya, tiap anggota entiti B hanya
boleh berpasangan dengan satu anggota entiti A. Penggambaran hubungan yang
terjadi adalah sebagai berikut :
Gambar 2.9 Relasi one to one
Gambar 2.10 Derajat hubungan one to one
a1
a2
a3
a4
a5
a6
b1
b2
b3
b4
b5
b6
A berpasangan 1 1 B
21
Instan hubungan yang terjadi antar anggota entiti adalah a2-b1, a3-b2, a4-b4, a5-b6.
Sedangkan a1,a6,b3, dab b6 masing – masing tidak mempunyai pasangan. Pada
proses pembuatan tabel, key pada entiti A boleh masuk ke dalam tabel pada entiti B,
dan sebaliknya.
B. Diagram Aliran Data ( DAD )
Diagram aliran data ( DAD ) memungkinkan pengembang sistem untuk
mengembangkan model domain informasi dan domain fungsional pada saat yang
sama.
Notasi dasar pada DAD :
= simbol untuk entitas eksternal
Gambar 2.11 Simbol entitas eksternal
= simbol untuk proses
Gambar 2.12 Simbol Proses
= simbol untuk item data
Gambar 2.13 Simbol item data
= simbol untuk simpanan data
Gambar 2.14 Simbol Simpanan Data
22
Penjelasan untuk masing – masing simbol :
a. Entitas Eksternal : penghasil atau pemakai yang berada di luar batas sistem
( hardware, orang, program lain, sistem lain )
b. Proses : transformasi informasi yang berada dalam sistem
c. Item data : item data atau kumpulan data, arah anak panah menunjukkan
arah aliran data
d. Simpanan data : gudang data yang tersimpan untuk dipakai oleh satu atau
beberapa proses
Rambu – rambu dalam pembuatan DAD antara lain :
a. Pilih nama proses, aliran data, simpanan, dan entitas eksternal yang berarti :
menggunakan kata kerja transitif ( butuh objek ) atau nama objek yang tepat
untuk mendiskripsikan proses. Hindari pemakain terminologi kata pada
pemrograman, seperti : procedure, function, sub sistem, dan sebagainya.
b. Berikan nomor untuk proses secara hierarkis
c. Hindari DAD yang kompleks : buatlah secara bertingkat
d. Gambar DAD berulang kali untuk mendapatkan diagram yang estetis (
keragaman ukuran dan bentuk )
e. DAD harus konsisten dan logis :
i. Hindari proses dengan masukan tanpa keluaran
ii. Hindari proses dengan keluaran tanpa masukan
23
2.4 Normalisasi Tabel
Konsep dari normalisasi itu sendiri adalah tahapan atau proses yang dapat
diulangi kembali untuk mengubah tabel menjadi sturktur yang lebih sederhana dan
lebih teratur. Tujuan normalisasi adalah untuk mengeliminasi berbagai anomali (
keanehan ) dari sebuah tabel untuk mendapatkan tabel yang lebih baik.
A. Bentuk – bentuk normal :
Bentuk normal adalah suatu aturan yang dikenakan pada tabel – tabel dalam basis
data dan harus dipenuhi oleh tabel – tabel tersebut pada level – level normalisasi.
Suatu tabel dikatakan berada dalam bentuk normal tertentu jika memenuhi kondisi
tertentu.
Level – level bentuk normal adalah :
a. 1NF ( 1 Normal Form )
Suatu tabel dikatakan dalam bentuk normal pertama atau 1NF jika dan hanya
jika setiap atribut bernilai tunggal untuk setiap baris.
b. 2 NF ( 2 Normal Form )
Suatu tabel dikatakan dalam bentuk normal kedua atau 2NF jika dan hanya
jika :
i. Berada pada bentuk 1NF
ii. Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap
kunci primer
24
c. 3NF ( 3 Normal Form )
Suatu tabel dikatakan dalam bentuk normal ketiga atau 3NF jika dan hanya
jika :
i. Berada pada bentuk 2NF
ii. Setiap atribut bukan kunci tidak memiliki dependensi transitif
terhadap kunci primer
2.5 Arsitektur Client / Server
Client / server dapat diartikan sebagai kemampuan komputer untuk meminta
layanan request kepada komputer lain. Komputer yang meminta layanan disebut
sebagai client, sedangkan yang menyediakan layanan disebut sebagai server.
Pengertian lain, client melakukan permintaan suatu informasi atau mengirim perintah
ke server. Server akan menerima permintaan dan perintah client. Kemudian server
akan memproses berdasarkan permintaan tersebut dan mengembalikan kepada client
sebagai hasil pemrosesan yang sudah dilakukan. Beberapa istilah pada arsitektur
client / server :
a. Service request : adalah permintaan dari client baik berupa permintaan data
maupun permintaan ke server
b. Service response : berupa alasan dari server atas permintaan dari client berupa
hasil proses
25
c. Database server : Data yang diminta oleh client dapat diambil dari database
pada sisi server yang sering disebut database server, misalnya MySQL,
PostgreSQL, Oracle atau SQL Server.
Karakteristik client / server :
a. Client dan server merupakan item proses ( logika ) terpisah yang bekerja sama
pada suatu jaringan komputer untuk mengerjakan suatu tugas.
b. Service : menyediakan layanan terpisah yang berbeda
c. Shared Resource : Server dapat melayani beberapa client pada saat yang
sama dan mengatur pengaksesan resource
d. Asymmetrical Protocol : antara client dan server merupakan hubungan one-
to-many. Client memulai komunikasi dengan mengirim request ke server.
Server menunggu permintaan dari client. Kondisi tersebut juga
memungkinkan komunikasi callback.
e. Transparency Location : proses server dapat ditempatkan pada mesin yang
sama atau terpisah dengan proses client. Client / server akan
menyembunyikan lokasi server dari client.
2.6 Metode Kuisioner
Metode kuisioner adalah suatu daftar yang berisikan rangkaian pertanyaan
mengenai sesuatu masalah atau bidang yang akan diteliti. Untuk memperoleh data,
angket disebarkan kepada responden (orang-orang yang menjawab atau memberikan
respon/tanggapan), terutama pada penelitian survei.
26
A. Tujuan Kuisioner
Tujuan dilakukan angket atau kuisioner adalah :
1). Memperoleh informasi yang relevan dengan tujuan penelitian.
2). Memperoleh informasi mengenai suatu masalah.
B. Macam-macam Kuisioner
1). Menurut prosedur :
a) Angket langsung, yaitu angket yang dikirimkan kepada dan dijawab
oleh responden.
b) Angket tidak langsung, yaitu angket yang dikirimkan kepada
seseorang untuk mencari informasi (keterangan) tentang orang lain.
2). Menurut jenis penyusunan :
a) Angket tipe isian, yaitu angket yang harus dijawab oleh responden
dengan mengisi format titik pada tiap pertanyaan.
b) Angket tipe pilihan, yaitu angket yang harus dijawab oleh responden
dengan cara tinggal memilih salah satu jawaban yang sudah tersedia.
C. Menganalisis Data
Penganalisisan data pada umumnya sebagai berikut :
a) Semua jawaban yang telah disebarkan diterima kembali, segera dicek sudah
lengkap atau belum jawaban-jawaban tersebut, kalau belum diperlukan
dikirim lagi pada orang yang bersangkutan atau tidak, untuk melengkapi
data-data.
27
b) Setelah itu selesai, kemudian mentabulasi hasil-hasil jawaban ke dalam
daftar tabulasi.
c) Memperhatikan jawaban-jawaban yang kurang lengkap atau simpang siur,
apakah perlu diulang kembali atau tidak.
d) Bila data yang masuk sudah cukup komplit dan persiapan analisis
(tabulasi) telah cukup baik dan benar, maka analisis segera dilaksanakan.
Dalam hal ini untuk lebih mendalam dan konkret, maka digunakan analisis
kuantitatif (statistik), ataupun bila dipandang permasalahannya cucup
sederhana, dicukupkan dengan kualitatif (pernyataan-pernyataan) saja.
28
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1 ANALISA SISTEM
A. Analisa Sistem Informasi Penggajian yang Berjalan saat ini
Sistem informasi penggajian dosen yang berjalan saat ini bisa dikatakan
belum efektif dan efisien. Sistem informasi penggajian saat ini sudah
terkomputerisasi tetapi masih menggunakan program yang dibuat dengan software
Lotus. Program tersebut dibuat oleh karyawan yang bertugas untuk mengelola sistem
penggajian di Universitas Sanata Dharma. Sistem ini belum terintegrasi dengan
sistem informasi lain di USD sehingga data – data yang dibutuhkan untuk penggajian
seperti data personalia juga harus dikelola sendiri oleh sistem penggajian. Hal ini
sangat menyulitkan user, yaitu karyawan yang mengelola penggajian dosen di USD.
Selain itu, penggunaan sistem bisa dikatakan sangat rumit sehingga karyawan yang
bisa menggunakan sistem ini hanyalah karyawan yang membuatnya.
Karena sistem informasi ini belum terintegrasi dengan sistem informasi yang
lain maka pengambilan data dari pihak lain masih dilakukan secara manual seperti
dengan disket atau dalam bentuk draft ( dokumen kertas ). Data – data tersebut akan
dikelola kembali di dalam sistem informasi penggajian.
29
Pihak – pihak yang terkait dengan sistem informasi penggajian antara lain :
1. Biro Personalia
Biro personalia bertugas mengelola data personal dari para dosen. Data personal
tersebut, antara lain : NPP, nama , alamat, dan lain – lain. Data – data tersebut masih
diberikan dalam bentuk dokumen kertas atau disimpan dalam disket. Oleh pihak
penggajian data – data tersebut akan diinputkan kembali ke dalam komputer sebagai
bahan untuk mengelola penggajian.
2. Program Studi ( prodi ) tempat dosen yang bersangkutan bekerja
Pihak program studi bertugas untuk mencatat jam kerja dosen ( berdasarkan
sks atau jp / jam pertemuan ) dari dosen yang bersangkutan. Pencatatan ini dilakukan
setiap semester untuk dosen tetap dan setiap bulan untuk dosen tidak tetap. Data –
data ini dikirimkan ke bagian keuangan dalam bentuk draft yang disebut dengan
”pengajuan”.
3. Pejabat – pejabat universitas yang berhak untuk mengesahkan
Pejabat – pejabat tersebut adalah :
a. Wakil Rektor I, bertugas mengesahkan data beban mengajar dosen
b. Wakil Rektor II, bertugas mengesahkan data beban mengajar dosen setelah
melalui WR I. Jika terdapat data yang tidak sesuai dengan peraturan yang
ada di USD maka data tersebut akan dikembalikan ke prodi yang
bersangkutan.
30
4. Pihak Yayasan
Pihak yayasan berhak menerima laporan gaji dosen yang berguna sebagai
laporan keuangan.
5. Pihak bank
Pihak Bank akan menerima data gaji bersih dosen dan akan mentransfer
uang sejumlah gaji bersih ke rekening masing – masing dosen.
B. Masalah yang timbul dengan berjalannya sistem penggajian dosen saat ini
Masalah utama dengan berjalannya sistem penggajian dosen saat ini adalah
masalah tidak efektif dan efisien dalam pengolahan dan penggunaan data. Beberapa
data yang sebenarnya sudah tersedia tidak digunakan dengan baik namun justru
diolah kembali. Hal ini sangat menyulitkan user, yang dalam hal ini adalah pegawai
yang bertugas untuk menangani penggajian.
Sistem penggajian saat ini sangat kompleks karena didalamnya juga
ditangani data personalia yang sebenarnya sudah ditangani oleh biro personalia.
Penaganan yang ada saat ini adalah dengan menggunakan program didalam software
Lotus. Penggunaannya sangat rumit dan kompleks. Orang yang dapat menggunakan
program ini hanyalah orang yang membuat program tersebut, yaitu petugas daftar
gaji. Prosedur penggajian itu sendiri juga sangat rumit dan perlu waktu untuk
memahaminya sehingga jika petugas daftar gaji tersebut berhalangan dan tidak bisa
menjalankan tugasnya maka proses penggajian dosen akan tersendat. Dengan adanya
sistem yang baru diharapkan proses penggajian dosen menjadi terlihat lebih mudah
dan lebih mudah dipahami oleh banyak orang.
31
C. Gambaran sistem informasi penggajian dosen baru
Sistem informasi penggajian dosen yang baru akan terintegrasi dengan
sistem informasi personalia yang sudah ada di USD. Yang dimaksud terintegrasi
disini adalah dapat menggunakan data personalia yang sudah dikelola oleh bagian
personalia. Sehingga sistem informasi penggajian dosen ini tidak perlu mengelola
kembali data personalia dan tinggal menggunakan saja. Sistem informasi penggajian
dosen ini akan dapat menangani semua item gaji dosen, baik dosen tetap, calon
dosen, dan dosen kontrak.
Gambaran sistem informasi penggajian baru :
1. Biro personalia mengelola data personalia melalui sistem informasi personalia
yang ada. Pengelolaan disini meliputi menambah, mengubah, dan menghapus
data personalia. Kemudian menyimpan data – data tersebut ke database
personalia yang ada pada salah satu server di USD.
2. Untuk data beban kerja dosen tidak diinputkan oleh prodi pengaju melainkan
masih diinputkan oleh pihak pengelola penggajian sendiri. Hal ini
dikarenakan data – data beban kerja dosen masih harus dikirmkan dan
disahkan oleh pejabat universitas, yaitu WR I dan WR II kemudian
dikirimkan kepada biro keuangan.
3. Pihak pengelola penggajian mengelola data – data yang menyangkut item gaji,
seperti : besar tunjangan, besar iuran, pajak penghasilan, besar honor, dan
pinjaman para dosen. Pinjaman ini adalah hutang para dosen terhadap suatu
bank yang cicilan pengembaliannya langsung dipotong dari gaji.
32
Dalam sistem informasi yang baru ini terlihat bahwa pengelolaan penggajian dosen
menjadi lebih sederhana karena pihak penggajian tidak perlu mengelola data
personalia.
Mekanisme kerja untuk menghasilkan stroke gaji pada sistem informasi
penggajian dosen ini adalah sebagai berikut :
1. User mengisikan jenis – jenis tunjangan gaji beserta aturan dari masing –
masing jenis tunjangan tersebut.
2. User mengisikan jenis – jenis iuran gaji berserta aturan masing – masing jenis
iuran tersebut.
3. User mengisikan komponen – komponen gaji yang sifatnya diajukan beserta
aturan – aturannya. Komponen – komponen gaji yang sifatnya diajukan
adalah :
i. Vakasi dosen
ii. Overload dosen
iii. Honorarium mengajar dosen tidak tetap
iv. Honor / Iuran yang sifatnya insidental : honor pada saat semester
antara, honor PMB ( Penerimaan Mahasiswa Baru ), gaji ke – 13,
tunjangan hari raya, honor lain – lain.
v. Potongan dosen yang merupakan titipan dari unit lain. Potongan dosen
ini merupakan cicilan pinjaman dosen yang langsung dipotongkan dari
gaji per bulan.
33
D. Analisa Kebutuhan Sistem Informasi Penggajian Dosen Yang Baru
Kebutuhan sistem informasi penggajian dosen yang baru, antara lain :
a. Hubungan / koneksi antara biro keuangan ( khususnya bagian penggajian )
dengan Biro Personalia. Hubungan ini dapat berupa hubungan antar sistem
ataupun persetujuan antar kedua biro atas kewenangan yang diberikan.
b. Jaringan komputer untuk menghubungkan sistem informasi penggajian ke
server database
c. Server database yang menjadi satu dengan server database yang digunakan
biro personalia.
d. Bahasa pemrograman untuk membuat sistem informasi penggajian yang baru.
Penulis akan menggunakan bahasa pemrograman Delphi untuk membuat
sistem informasi penggajian yang baru
E. Spesifikasi sistem
Spesifikasi Sistem Informasi Penggajian yang akan dibuat adalah :
1. Sistem ini akan menangani penggajian dosen Universitas Sanata Dharma saja
, tidak termasuk menangani pegawai
2. Sistem ini akan menangani :
a. Semua unsur gaji dosen, baik tunjangan gaji maupun iuran gaji
b. Pinjaman yang dimiliki dosen kepada pihak luar seperti bank atau
koperasi yang pembayarannya dilakukan dengan cara cicilan dan
dipotongkan langsung dari gaji per bulan
34
c. Pajak Penghasilan ( PPh )
d. Overload Dosen
e. Vakasi dosen.
f. Honorarium mengajar dosen.
g. Rekapitulasi gaji dosen
Sistem ini akan menyediakan fasilitas untuk Tambah data, edit data, hapus
data ( untuk hal – hal tertentu saja ), Pencarian data, Pencetakan data, dan
berbagai laporan yang diperlukan untuk hal – hal yang telah disebutkan diatas.
3. Sistem Informasi Penggajian dosen USD ini akan dibuat dengan bahasa
pemrograman Delphi 6.0.
4. Database yang akan digunakan adalah MySQL versi 5.0
35
3.2 DESAIN SISTEM
A. Desain Proses
DFD Level 0 :
Berikut adalah DFD ( Data Flow Diagram ) level 0 dari Sistem Informasi
Penggajian Dosen Universitas Sanata Dharma :
2SIPersonalia USD
Gambar 3.1 DFD Level 0
Keterangan :
1. Data – data yang berhubungan dengan penggajian, yaitu : data overload, data
vakasi, data tunjangan, data iuran, data pinjaman.
2. Data – data yang berhubungan dengan penggajian, yaitu : data overload, data
vakasi, data tunjangan, data iuran, data pinjaman.
3. Status penyimpanan, apakah berhasil disimpan atau tidak
USER
1SIPenggajian Dosen USD
1,4,6,9
10
2,3,5.7,8
36
4. Jenis laporang yang diinginkan
5. Pesan – pesan untuk user
6. Data yang akan dihapus
7. Jenis dan kriteria laporan yang diinginkan user
8. Laporan yang dibutuhkan user
9. Kriteria pencarian data yang berhubungan dengan penggajian, yaitu : data
overload, data vakasi, data tunjangan, data iuran, data pinjaman
10. Data personalia
Data personal dosen yang dibutuhkan oleh pihak pengelola penggajian adalah :
a. NPP. NPP adalah nomor pokok pegawai yang digunakan sebagai key
dari data personalia.
b. Nama dosen
c. golongan kepegawaian
d. tanggal masuk kerja
e. fakultas / jurusan / prodi tempat dosen bekerja
f. pendidikan terakhir dosen
g. gelar
h. status keluarga ( menikah atau belum menikah )
i. nomor rekening dosen
j. data tanggungan, yang meliputi :
i. jumlah anak
37
ii. status pendidikan anak ( TK, SD, SMP, SMA, PT atau sudah
tidak sekolah )
iii. status keluarga anak
38
DFD Level 1 :
Sistem Informasi Penggajian Dosen USD pada DFD level 0 dapat dipecah
menjadi beberapa proses seperti terrgambar pada DFD level 1 berikut ini :
1
Gambar 3.2 DFD Level 1
Keterangan :
1. Data – data yang berhubungan dengan penggajian, yaitu : data overload, data
vakasi, data tunjangan, data iuran, data pinjaman.
2. Data – data yang berhubungan dengan penggajian, yaitu : data overload, data
vakasi, data tunjangan, data iuran, data pinjaman.
USER
InputData
2
EditData
3
HapusData
4
BuatLaporan
DataPenggajian
10
2,3
111
1,9 1213
2,3,5
6,9
8
15
17
2,3,5
14
16
7
39
3. Status penyimpanan : apakah berhasil atau tidak
4. Jenis laporan yang diinginkan
5. Pesan – pesan untuk user
6. Data yang akan dihapus
7. Jenis dan kriteria laporan yang diinginkan user
8. Laporan yang dibutuhkan user
9. Kriteria pencarian data yang berhubungan dengan penggajian, yaitu : data
overload, data vakasi, data tunjangan, data iuran, data pinjaman
10. Data – data baru yang berhubungan dengan penggajian, yaitu : data overload,
data vakasi, data tunjangan, data iuran, data pinjaman, query untuk insert data
11. Data baru setelah proses Input data
12. Data yang diedit , Data baru yang berhubungan dengan penggajian, yaitu :
data overload, data vakasi, data tunjangan, data iuran, data pinjaman, query
untuk edit data
13. Data baru setelah proses edit data
14. Data baru setelah proses hapus data
15. Query untuk menghapus data , data yang akan dihapus
16. Hasil query yang dibutuhkan untuk membuat laporan
17. Query untuk membuat laporan sesuai dengan yang dibutuhkan oleh user
Data penggajian adalah tabel – tabel yang berhubungan dengan sistem informasi
penggajian dosen USD.
40
Narasi Proses aliran data :
Untuk proses input data, user akan memasukkan data baru kemudian sistem
akan melakukan query ke database yaitu query untuk insert record. Setelah itu sistem
akan kembali melakukan query untuk menampilkan data terbaru setelah proses input
data. Dari query tersebut dihasilkan daftar data terbaru yang kemudian akan
ditampilkan untuk user sekaligus status penambahan data ( apakah berhasil disimpan
atau tidak ).
Untuk proses edit data, user akan memasukkan data baru kemudian sistem
akan melakukan query ke database yaitu query untuk update record. Setelah itu
sistem akan kembali melakukan query untuk menampilkan data terbaru setelah proses
edit data. Dari query tersebut dihasilkan daftar data terbaru yang kemudian akan
ditampilkan untuk user sekaligus status perubahan data ( apakah berhasil disimpan
atau tidak ).
Untuk proses Hapus data, user akan memilih data mana yang akan dihapus
kemudian sistem akan melakukan konfirmasi ke user apakah user benar – benar yakin
akan menghapus data tersebut atau tidak. User akan memasukkan jawaban atas
konfirmasi tersebut. Jika jawaban user adalah Ya maka sistem akan melakukan query
ke database yaitu query untuk delete record. Setelah itu sistem akan kembali
melakukan query untuk menampilkan data terbaru setelah proses hapus data. Dari
query tersebut dihasilkan daftar data terbaru yang kemudian akan ditampilkan untuk
user sekaligus status penghapusan data ( apakah berhasil dihapus atau tidak ).
41
Untuk proses pembuatan laporan, user memilih laporan jenis apa yang akan
dibuat. Sistem akan melakukan query ke database yaitu query untuk select data
berdasarkan jenis laporan yang dipilih oleh user. Dari query tersebut dihasilkan daftar
data yang kemudian akan ditampilkan kepada user dalam bentuk report yang bisa
dicetak melalui printer yang ada.
DFD Level 2 :
Proses Edit Data yang ada pada DFD Level 1 dapat dipecah menjadi dua
proses, yaitu proses Cari Data dan Edit Data seperti tergambar pada DFD level2
untuk proses edit data berikut ini :
2.1
Gambar 3.3 DFD Level 2 untuk proses edit data
Keterangan :
1 : Data – data yang berhubungan dengan penggajian, yaitu : data overload, data
vakasi, data tunjangan, data iuran, data pinjaman.
2 : Data – data yang berhubungan dengan penggajian, yaitu : data overload, data
vakasi, data tunjangan, data iuran, data pinjaman.
USER CariData
2.2
Edit_Data
DataPenggajian
9 10115
14
2,312
1 13
42
3 : Status penyimpanan : apakah berhasil atau tidak
5 : Pesan – pesan untuk user
9 : Kriteria pencarian data penggajian, yaitu : data overload, data vakasi, data
tunjangan, data iuran, data pinjaman
10 : Query pencarian data berdasarkan kriteria yang dimasukkan user
11 : Data hasil query
12 : Data yang diedit , Data baru yang berhubungan dengan penggajian, yaitu :
data overload, data vakasi, data tunjangan, data iuran, data pinjaman, query
untuk edit data
13 : Data baru setelah proses edit data
14 : Key dari record yang dituju ( record yang akan diedit )
Narasi Proses :
Untuk proses pencarian data, user memasukkan kriteria pencarian kemudian
sistem akan mengirim query ke database berdasarkan kriteria yang dimasukkan oleh
user. Dari query tersebut akan diperoleh data yang kemudian akan ditampilkan ke
user oleh sistem sekaligus status pencarian data ( apakah data berhasil ditemukan atau
tidak ). Kemudian proses pencarian data ini akan mengirimkan key dari data yang
telah dicari ke proses pengeditan data. User akan memasukkan data baru. Oleh proses
edit data data baru tersebut dimasukkan ke database. Kemudian sistem akan
menampilkan daftar data terbaru setelah proses edit data sekaligus status
penyimpanan data ( apakah berhasil disimpan atau tidak ).
43
Proses Hapus Data yang ada pada DFD Level 1 dapat dipecah menjadi dua
proses, yaitu proses Cari Data dan Hapus Data seperti tergambar pada DFD level 2
untuk proses hapus data berikut ini :
3.1
Gambar 3.4 DFD Level 1 untuk proses Hapus Data
Keterangan :
2 : Data – data yang berhubungan dengan penggajian, yaitu : data overload, data
vakasi, data tunjangan, data iuran, data pinjaman.
3 : Status penyimpanan : apakah berhasil atau tidak , List data yang baru
5 : Pesan – pesan untuk user
6 : Data yang akan dihapus
9 : Kriteria pencarian data penggajian, yaitu : data overload, data vakasi, data
tunjangan, data iuran, data pinjaman
10 : Query pencarian data berdasarkan kriteria yang dimasukkan user
11 : Data hasil query
CariDataUSER
dataPenggajian
3.2
Hapus_Data
9 5
10
11
14
2,3
6
1213
44
12 : Query untuk menghapus data , data yang akan dihapus
13 : Data baru setelah proses edit data
14 : Key dari record yang dituju ( record yang akan dihapus )
Narasi Proses :
Untuk proses pencarian data, user memasukkan kriteria pencarian kemudian
sistem akan mengirim query ke database berdasarkan kriteria yang dimasukkan oleh
user. Dari query tersebut akan diperoleh data yang kemudian akan ditampilkan ke
user oleh sistem sekaligus status pencarian data ( apakah data berhasil ditemukan atau
tidak ). Kemudian proses pencarian data ini akan mengirimkan key dari data yang
telah dicari ke proses hapus data. Sistem akan melakukan konfirmasi ke user apakah
data tersebut benar – benar akan dihapus. Jika jawaban user adalah Ya maka sistem
akan melakukan query ke database yaitu query untuk delete record. Setelah itu sistem
akan kembali melakukan query untuk menampilkan data terbaru setelah proses hapus
data. Dari query tersebut dihasilkan daftar data terbaru yang kemudian akan
ditampilkan untuk user sekaligus status penghapusan data ( apakah berhasil dihapus
atau tidak ).
45
B. Desain Basis Data
E-R Diagram :
mem puny ai
menerim a mem bay ar IURANJenisPot ongan
TunjY ay asan
VAKASI
NamaVakasi
Nama
Sat uan
Tahun
Akum ulasi
bulan
PENDIDIKAN
tahun
pendidikan
bulan
Pegawai
melakukan
akumulasiJam
mem iliki
Ov erloadDosen
mem iliki
Tanggungan
Hubungan
dibawah
PRODI
kdTarifbesarTarif tglBerlaku
jmJP
jmHadir
kd_prg nama_prg
groupBay ar
sif at
groupBay ar
honorariumy y y y mm
melakukan
kdHonor
mem iliki
honor_lain
kdHonor jenisHonor sif at
mem ilikibesar
bulan tahun
keterangan
stat_gaji_13stat_gaji_13
M N
M
N
M
N
N
MM N
1
M
M
N
M
1
1
M
M
N
M
N
PEGAWAI Golongan
KodePotongan
NPP
Nama_peg
kd_gol Golongan
MasaKerja
GajiPokok
tarifOv erload
Tunjangan
kd_Tunjangan
Nam a_Tunjangan
Jenis_Tunjangan
Besar
statusbay ar
KodeVakasi
kode_Iuran
NamaIuran
JenisIuran
BesarIuran
mem bay ar
pokokY adapen
N
Nam aPot ongan
PokokPinjaman
FrekuensiBay ar
Angs uranKe
Bunga
melakukan
M
statusbay ar
Gambar 3.5 E-R Diagram
46
C. Desain Interface
Desain menu pada Sistem Informasi Penggajian Dosen Universitas Sanata
Dharma adalah sebagai berikut :
1. Tunjangan
a) Jenis – jenis Tunjangan
b) Aturan Tunjangan :
i. Besar Tunjangan
ii. Tunjangan Yayasan
c) Tunjangan per Dosen
2. Iuran
a) Jenis – jenis Iuran
b) Aturan Iuran
i. Update Besar Iuran
ii. Set Besar Pajak
iii. Set Besar PTKP
c) Iuran Per Dosen
3. Vakasi
a) Jenis Vakasi
b) Pengisian Vakasi
c) Rekap Vakasi
d) Set Taris Vakasi
47
4. Honorarium
a) Set Tarif Overload
b) Penerimaan Overload
c) Honorarium Dosen
5. Lain – lain
a) Jenis Honor / Iuran Lain – lain
b) Penerimaan Honor / Iuran Lain – lain
c) Potongan Dosen
i. Jenis Pinjaman
ii. Pinjaman Per Dosen
d) PMB
i. Set Honor PMB
ii. Dosen Penerima Honor
6. Insidental
a) Semester Antara
i. Set Honor
ii. Set Tarif Honor
iii. Set Penerima Honor
a. Penerimaan Honor Mengajar
b. Penerimaan Honor Lain
iv. Rekap Semester Antara
b) Gaji 13
48
c) THR
7. Lihat Gaji
a) Rekap Gaji
i. Daftar Gaji Tanggal 15
ii. Daftar Gaji Tanggal 1
b) Rekapitulasi Data Gaji
49
Berikut adalah tampilan dari menu – menu yang ada pada Sistem Informasi
Penggajian Dosen Universitas Sanata Dharma.
i. Menu Utama
Gambar 3.6 Menu Utama
Menu utama ini berguna untuk menyajikan semua menu yang ada di Sistem
Informasi Penggajian Dosen USD.
ii. Tunjangan Dosen
Gambar 3.7 Form Tunjangan Dosen
50
Menu tunjangan dosen berguna untuk merekam penerimaan tunjangan untuk
masing – masing dosen. Fasilitas ini disediakan untuk menangani kasus pengecualian.
iii. Setting Tunjangan
Gambar 3.8 Form Set Tunjangan Gaji
Menu Jenis Tunjangan ini berguna untuk mengolah data jenis – jenis
tunjangan.
iv. Tunjangan Yayasan
Gambar 3.9 Form Tunjangan Yayasan
51
Menu tunjangan yayasan ini berguna untuk mengolah data tunjangan yayasan.
Tunjangan yayasan ini akan direkam berdasarkan golongan pegawai.
v. Iuran Dosen
Gambar 3.10 Form Iuran Dosen
Menu Iuran dosen berguna untuk merekam data iuran untuk masing – masing
dosen. Fasilitas ini dibuat untuk mengatasi berbagai pengecualian.
vi. Set Jenis Iuran
Gambar 3.11 Form Set Jenis Iuran
52
Menu Jenis Iuran berguna untuk mengolah data jenis – jenis iuran. User dapat
menambah atau mengubah jenis iuran.
vii. Set Besar Pajak
Gambar 3.12 Form Setting Besar Pajak
Menu set besar pajak ini berguna untuk mengolah data pajak. User bisa
menambah atau mengubah range awal pajak, range akhir pajak, dan besar persentase
pajak.
viii. Update Besar Iuran Massal
Gambar 3.13 Form Update Besar Iuran Massal
53
Menu update besar iuran massal ini berguna untuk merekam besar iuran yang
harus dibayarkan untuk masing – masing dosen secara massal berdasarkan status
pegawai.
ix. Pinjaman Dosen
Gambar 3.14 Form Pinjaman Dosen
Menu pinjaman dosen ini digunakan untuk memanipulasi data pinjaman
dosen. Yang dimaksud pinjaman dosen disini adalah pinjaman dosen terhadap pihak
luar, misalkan bank yang cicilannya langsung dipotongkan gaji per bulan.
x. Set Jenis Pinjaman
Gambar 3.15 Form Set Jenis Pinjaman
54
Menu ini berguna untuk mengolah data jenis pinjaman dosen. Jenis pinjaman
dosen ini mengacu kepada pihak luar yang memberikan pinjaman.
xi. Rekap Gaji Tanggal 1
Gambar 3.16 Form Rekap Gaji Tanggal 1
Menu rekap gaji tanggal 1 ini berguna untuk pembuatan slip gaji tanggal 1.
xii. Rekap Gaji Tanggal 15
Gambar 3.17 Form Rekap Gaji Tanggal 15
55
Menu rekap gaji tanggal 15 digunakan untuk membuat slip gaji tanggal 15.
xiii. Form Set Daftar Honor Semester Antara
Gambar 3.18 Form Set Daftar Honor Semester Antara
Menu daftar honor semester antara ini berguna untuk mengolah data jenis
– jenis honor semester antara.
xiv. Form Set Tarif Honor Semester Antara
Gambar 3.19 Form Set Tarif Honor Semester Antara
56
Menu set tarif honor semester antara ini berguna untuk mengolah data tarif
honor mengajar pada semester antara. Tarif honor mengajar pada semester antara ini
akan disimpan berdasarkan golongan pegawai.
xv. Form Penerimaan Honor Ajar Semester Antara
Gambar 3.20 Form Penerimaan Honor Ajar Semester Antara
Menu penerimaan honor mengajar semester antara ini berguna untuk
merekam atau mengedit data jumlah jam pertemuan mengajar pada saat semester
antara.
xvi. Form Penerimaan Honor Semester Antara
Gambar 3.21 Form Penerimaan Honor Semester Antara
57
Menu penerimaan honor semester antara ini berguna untuk mengolah data
penerimaan honor semester antara, terdiri dari honor – honor selain honor mengajar.
xvii. Form Rekap Honor Semester Antara
Gambar 3.22 Form Rekap Honor Semester Antara
Menu rekap honor semester antara ini berguna untuk melihat data penerimaan
honor semester antara sesuai dengan kriteria yang diberikan oleh user.
xviii. Form Set Daftar Honor PMB
Gambar 3.23 Form Set Daftar Honor PMB
58
Menu set daftar honor PMB ( Penerimaan Siswa Baru ) ini berguna untuk
mengolah data jenis – jenis honor PMB.
xix. Form Dosen Penerima Honor PMB
Gambar 3.24 Form Dosen Penerima Honor PMB
Menu set penerima honor PMB ini berguna untuk mengolah data
penerimaan honor PMB. User memasukkan NPP dosen, bulan, tahun, jenis honor
PMB, dan besar honor PMB.
xx. Form Set Honor/Potongan Lain – lain
Gambar 3.25 Form Set Honor / Potongan lain - lain
59
Menu Rekam Jenis Honor / Iuran Lain – lain ini berguna untuk
mengolah data jenis honor atau iuran yang sifatnya sangat insidental.
xxi. Form Penerimaan Honor/Potongan Lain-lain
Gambar 3.26 Form Penerimaan Honor / Potongan lain - lain
Menu penerimaan honor / potongan lain – lain ini berguna untuk mengolah
data penerimaan honor / iuran yang sifatnya insidental. User memasukkan NPP
dosen, jenis honor / iuran, besar honor / iuran, bulan pembayaran, dan tahun
pembayaran.
xxii. Form Set Daftar Vakasi Dosen
Gambar 3.27 Form Set Daftar Vakasi Dosen
60
Menu set daftar vakasi dosen ini berguna untuk mengolah data jenis –
jenis vakasi. User dapat menambah atau mengubah jenis vakasi.
xxiii. Form Set Kerja Vakasi Dosen
Gambar 3.28 Form Set Kerja Vakasi Dosen
Menu Set Kerja Vakasi Dosen ini berguna untuk mengolah data
penerimaan honor vakasi dosen. User memasukkan NPP dosen, jenis vakasi,
akumulasi vakasi, program studi pengaju, bulan pembayaran, dan tahun pembayaran.
xxiv. Form Set Tarif Vakasi
Gambar 3.29 Form Set Tarif Vakasi
61
Menu set tarif vakasi ini berguna untuk mengolah data tarif vakasi per
tahun. User memasukkan tahun tarif, program studi, jenis vakasi dan besar tarif.
xxv. Form Rekap Vakasi Dosen
Gambar 3.30 Form Rekap Vakasi Dosen
Menu Rekap Vakasi Dosen Per Bulan ini berguna untuk melihat data – data
vakasi dosen pada bulan dan tahun yang dipilih oleh user. User memasukkan kriteria
rekap yang diinginkan kemudian sistem akan menampilkan data – data vakasi sesuai
dengan kriteria yang dimasukkan user.
xxvi. Form Set Tarif Overload
Gambar 3.31 Form Set Tarif Overload
62
Menu Set Tarif Overload ini berguna untuk mengolah data tarif honor
overload. User memasukkan golongan pegawai, jenjang pendidikan, dan besar tarif
overload nya.
xxvii. Form Penerimaan Overload
Gambar 3.32 Form Penerimaan Overload
Menu Penerimaan Oberload ini berguna untuk mengolah data penerimaan
honor overload dosen. User memasukkan NPP dosen, akumulasi jam pertemuan,
bulan pembayaran, dan tahun pembayaran.
xxviii. Form Update besar tunjangan massal
Gambar 3.33 Form Update besar tunjangan massal
63
Menu set besar tunjangan untuk semua dosen ini berguna untuk menambah
atau merubah besar tunjangan secara massal ( banyak dosen sekaligus ) bedasarkan
status kepegawaian dosen.
xxix. Form Set Gaji 13
Gambar 3.34 Form Set Gaji 13
Menu ini berguna untuk merekam data gaji ke 13.
xxx. Form Set THR ( Tunjangan Hari Raya )
Gambar 3.35 Form Set THR
Menu Tunjangan Hari Raya ini berguna untuk merekam data tunjangan hari
raya.
64
xxxi. Form Honorarium Dosen
Gambar 3.36 Form Honorarium Dosen
Menu Penerimaan Honorarium Dosen ini berguna untuk mengolah data
penerimaan honorarium mengajar untuk dosen tidak tetap.
xxxii. Form Set Besar PTKP
Gambar 3.37 Form Set Besar PTKP
Menu Set Besar PTKP ini berguna untuk menambah atau mengubah data
PTKP.
65
xxxiii. Form Rekap Data
Gambar 3.38 Form Rekap Data
Menu Rekap Data ini berguna untuk membuat laporan penghasilan dan
laporan memorial per bulan.
D. DESAIN OUTPUT
Berikut adalah design output yang ada pada sistem informasi penggajian
dosen Universitas Sanata Dharma.
i. Desain output laporan jenis tunjangan
Gambar 3.39 Print out daftar jenis tunjangan
66
ii. Desain ouput daftar besar tunjangan yayasan
Gambar 3.40 Print out daftar besar tunjangan yayasan
iii. Desain output laporan daftar tunjangan per dosen
Gambar 3.41 Print out daftar tunjangan per dosen
67
iv. Desain output laporan daftar iuran per dosen
Gambar 3.42 Print out daftar iuran per dosen
v. Desain output daftar vakasi dosen
Gambar 3.43 Print out daftar vakasi dosen
68
vi. Desain output daftar overload dosen
Gambar 3.44 Print out daftar overload dosen
vii. Desain output daftar honorarium dosen
Gambar 3.45 Print out daftar honorarium dosen
69
viii. Desain output daftar honor lain – lain dosen
Gambar 3.46 Print out daftar honor lain – lain dosen
ix. Desain output jenis pinjaman dosen
Gambar 3.47 Print out daftar jenis pinjaman dosen
70
x. Desain output daftar pinjaman dosen
Gambar 3.48 Print out daftar pinjaman dosen
xi. Desain ouput daftar honor PMB dosen
Gambar 3.49 Print out daftar honor PMB dosen
71
xii. Desain output daftar tarif mengajar semester antara
Gambar 3.50 Print out daftar tarif mengajar semester antar
xiii. Desain output daftar honor mengajar semester antara dosen
Gambar 3.51 Print out daftar honor mengajar semester antara dosen
72
xiv. Desain output daftar honor semester antara dosen
Gambar 3.52 Print out daftar honor semester antara dosen
xv. Desain output daftar gaji tanggal 15
Gambar 3.53 Print out daftar gaji tanggal 15
73
xvi. Desain output daftar gaji tanggal 1
Gambar 3.54 Print out daftar gaji tanggal 1
xvii. Desain output rekap data :
Gambar 3.55 Print out rekap data
74
BAB IV
IMPLEMENTASI SISTEM
Setelah melalui proses perbaikan prototype sebanyak 12 kali, diperoleh hasil
akhir implementasi sistem sebagai berikut :
4.1 Implementasi basis data
Implementasi basis data pada sistem informasi penggajian adalah sebagai
berikut :
1. Tabel Pegawai ( NPP, Nama_peg) :
a. Tabel Pegawai ini berisi semua data pegawai baik dosen maupun
karyawan adminstratif.
b. NPP adalah Nomor Pokok Pegawai. NPP ini akan menjadi key untuk
masing – masing pegawai.
c. Nama_peg adalah Nama dari pegawai yang bersangkutan.
2. Tabel Golongan ( kd_gol, Golongan)
a. Golongan adalah pangkat dari seorang pegawai.
3. Tabel Pendidikan (NPP,jenjang)
a. Tabel Pendidikan berisi data pendidikan yang telah ditempuh oleh
pegawai.
b. Jenjang berisi jenjang pendidikan yang sudah selesai ditempuh oleh
pegawai yang bersangkutan.
75
4. Tabel golongan_peg (NPP, kd_gol,gajiPokok,pokokYadapen)
a. Tabel Golongan_peg ini berisi data golongan pegawai. Tabel ini
menyatakan pegawai A bergolongan B
5. Tabel Tanggungan (NPP, Nama, Hubungan)
a. Tabel tanggungan ini berisi data keluarga pegawai
b. Nama adalah Nama keluarga pegawai
c. Hubungan adalah jenis hubungan keluarga dengan pegawai yang
bersangkutan.
Kelima tabel ini diambil dari database personalia ( sistem ini tidak akan merubah
data – data tersebut ).
1. Tabel Tunjangan (KodeTunjangan, NamaTunjangan, jenis_tunjangan)
a. Tunjangan adalah komponen penggajian yang bersifat menambah gaji dan
bersifat tetap.
b. Tabel Tunjangan berisi jenis – jenis tunjangan dan sifatnya ( persentase
atau nominal ).
2. Tabel terima_tunjangan (NPP, KodeTunjangan, Besar)
a. Tabel terima_tunjangan berisi data penerimaan tunjangan. Dengan tabel
ini bisa diketahui pegawai mendapatkan tunjangan apa saja.
3. Tabel Iuran_gaji (KodeIuran, Keterangan, jenis_iuran)
a. Iuran_gaji adalah komponen penggajian yang bersifat mengurangi gaji
dan bersifat tetap.
b. Tabel ini berisi jenis – jenis iuran dan sifatnya ( persentase atau nominal ).
76
4. Tabel bayar_iuran (NPP, KodeIuran, besar)
a. Tabel bayar_iuran berisi data pembayaran iuran. Dengan tabel ini bisa
diketahui pegawai harus membayar iuran apa saja.
5. Tabel Jenis_potongan (Kode_jenis, Keterangan, Bunga)
a. Yang dimaksud potongan disini adalah cicilan pinjaman dosen titipan dari
pihak lain.
b. Tabel jenis_potongan berisi jenis – jenis potongan.
6. Tabel pinjaman_dosen (NPP, kode_pinjaman, pokok_pinjaman, frekuensi,
AngsuranKe)
a. Tabel pinjaman_dosen berisi data pemotongan gaji dosen. Dengan tabel
ini bisa diketahui dosen harus dipotong cicilan pinjaman apa saja.
7. Tabel tarifOverload (Kd_golongan, kd_pendidikan, Tarif)
a. Overload adalah beban sks lebih seorang dosen.
b. Tabel tarifOverload ini berisi data tarif overload dosen per sks
berdasarkan golongan pegawai dan pendidikan dosen.
8. Tabel tarif_vakasi (kdTarif, kdVakasi, kdProdi, besarTarif, tglBerlaku)
a. Vakasi adalah jenis – jenis kerja dosen diluar kerja mengajar.
b. Tabel tarif_vakasi berisi data tarif vakasi berdasarkan jenis vakasi dan
program studi pengaju vakasi.
9. Tabel Vakasi (KodeVakasi, JenisVakasi, Satuan)
a. Tabel ini berisi jenis – jenis vakasi dosen.
77
10. Tabel vakasi_dosenyyyymm (NPP, KodeVakasi, kdProdi, thnTarif,
Akumulasi_satuan, status_bayar)
a. Tabel ini berisi kerja vakasi dosen. Dengan tabel ini bisa diketahui bahwa
dosen X melakukan vakasi apa saja dengan jumlah akumulasinya pada
bulan dan tahun tertentu.
11. Tabel dosen_overload ( NPP, bulan, tahun, akumulasi_jam, status_bayar)
a. Tabel ini berisi kerja overload dosen. Dengan tabel ini bisa diketahui
jumlah overload yang dilakukan dosen pada bulan dan tahun tertentu.
12. Tabel honor Lain (kdJenisHonor, jenisHonor, sifat)
a. Honor lain adalah honor yang bersifat sangat insidental dan berupa
nominal.
b. Tabel ini berisi jenis – jenis honor / iuran lain - lain
13. Tabel lain_lainyyyymm (NPP, KodeTunjangan, besarTunjangan, groupBayar,
Keterangan)
a. Tabel ini berisi data penerimaan honor lain – lain. Dengan tabel ini bisa
diktehui dosen X memiliki honor / iuran lain – lain apa saja pada bulan
dan tahun tertentu.
14. Tabel honorariumyyyymm (kdHonorarium, NPP, kdProdi, jmJP
,jmHadir)
a. Honorarium adalah honor mengajar untuk dosen tidak tetap.
b. Tabel ini berisi data honorarium dosen pada bulan dan tahun tertentu.
78
4.2 Implementasi User Interface
i. Menu Utama
Gambar 4.1 Form Menu Utama
Menu utama ini berguna untuk menyajikan semua menu yang ada di Sistem
Informasi Penggajian Dosen USD.
ii. Tunjangan Dosen
Gambar 4.2 Form Tunjangan Dosen
79
Menu tunjangan dosen berguna untuk merekam penerimaan tunjangan untuk
masing – masing dosen. Fasilitas ini disediakan untuk menangani kasus pengecualian.
iii. Setting Tunjangan
Gambar 4.3 Form set jenis tunjangan
Menu Jenis Tunjangan ini berguna untuk mengolah data jenis – jenis
tunjangan.
iv. Tunjangan Yayasan
Gambar 4.4 Form Tunjangan Yayasan
80
Menu tunjangan yayasan ini berguna untuk mengolah data tunjangan yayasan.
Tunjangan yayasan ini akan direkam berdasarkan golongan pegawai.
v. Iuran Dosen
Gambar 4.5 Form Iuran Dosen
Menu Iuran dosen berguna untuk merekam data iuran untuk masing – masing
dosen. Fasilitas ini dibuat untuk mengatasi berbagai pengecualian.
vi. Set Jenis Iuran
Gambar 4.6 Form Set Jenis Iuran
81
Menu Jenis Iuran berguna untuk mengolah data jenis – jenis iuran. User dapat
menambah atau mengubah jenis iuran.
vii. Set Besar Pajak
Gambar 4.7 Form Set Besar Pajak
Menu set besar pajak ini berguna untuk mengolah data pajak. User bisa
menambah atau mengubah range awal pajak, range akhir pajak, dan besar persentase
pajak.
viii. Update Besar Iuran Massal
Gambar 4.8 Form Update Besar Iuran Massal
82
Menu update besar iuran massal ini berguna untuk merekam besar iuran yang
harus dibayarkan untuk masing – masing dosen secara massal berdasarkan status
pegawai.
ix. Pinjaman Dosen
Gambar 4.9 Form Pinjaman Dosen
Menu pinjaman dosen ini digunakan untuk memanipulasi data pinjaman
dosen. Yang dimaksud pinjaman dosen disini adalah pinjaman dosen terhadap pihak
luar, misalkan bank yang cicilannya langsung dipotongkan gaji per bulan.
x. Set Jenis Pinjaman
Gambar 4.10 Form Set Jenis Pinjaman
83
Menu ini berguna untuk mengolah data jenis pinjaman dosen. Jenis pinjaman
dosen ini mengacu kepada pihak luar yang memberikan pinjaman.
xi. Rekap Gaji Tanggal 1
Gambar 4.11 Form Rekap Gaji Tanggal 1
Menu rekap gaji tanggal 1 ini berguna untuk pembuatan slip gaji tanggal 1.
xii. Rekap Gaji Tanggal 15
Gambar 4.12 Form Rekap Gaji Tanggal 15
Menu rekap gaji tanggal 15 digunakan untuk membuat slip gaji tanggal 15.
84
xiii. Form Set Daftar Honor Semester Antara
Gambar 4.13 Form Daftar honor semester antara
Menu daftar honor semester antara ini berguna untuk mengolah data jenis
– jenis honor semester antara.
xiv. Form Set Tarif Honor Semester Antara
Gambar 4.14 Form Set tarif honor semester antara
85
Menu set tarif honor semester antara ini berguna untuk mengolah data tarif
honor mengajar pada semester antara. Tarif honor mengajar pada semester antara ini
akan disimpan berdasarkan golongan pegawai.
xv. Form Penerimaan Honor Ajar Semester Antara
Gambar 4.15 Form Penerimaan honor ajar semester antara
Menu penerimaan honor mengajar semester antara ini berguna untuk
merekam atau mengedit data jumlah jam pertemuan mengajar pada saat semester
antara.
xvi. Form Penerimaan Honor Semester Antara
Gambar 4.16 Form Penerimaan Honor semester antara
86
Menu penerimaan honor semester antara ini berguna untuk mengolah data
penerimaan honor semester antara, terdiri dari honor – honor selain honor mengajar.
xvii. Form Rekap Honor Semester Antara
Gambar 4.17 Form Rekap honor semester antara
Menu rekap honor semester antara ini berguna untuk melihat data penerimaan
honor semester antara sesuai dengan kriteria yang diberikan oleh user.
xviii. Form Set Daftar Honor PMB
Gambar 4.18 Form Set Daftar Honor PMB
87
Menu set daftar honor PMB ( Penerimaan Siswa Baru ) ini berguna untuk
mengolah data jenis – jenis honor PMB.
xix. Form Dosen Penerima Honor PMB
Gambar 4.19 Form Dosen Penerima Honor PMB
Menu set penerima honor PMB ini berguna untuk mengolah data
penerimaan honor PMB. User memasukkan NPP dosen, bulan, tahun, jenis honor
PMB, dan besar honor PMB.
xx. Form Set Honor/Potongan Lain – lain
Gambar 4.20 Form Set Honor / Potongan lain - lain
88
Menu Rekam Jenis Honor / Iuran Lain – lain ini berguna untuk mengolah
data jenis honor atau iuran yang sifatnya sangat insidental.
xxi. Form Penerimaan Honor/Potongan Lain-lain
Gambar 4.21 Form Penerimaan Honor / Potongan lain – lain
Menu penerimaan honor / potongan lain – lain ini berguna untuk mengolah
data penerimaan honor / iuran yang sifatnya insidental. User memasukkan NPP
dosen, jenis honor / iuran, besar honor / iuran, bulan pembayaran, dan tahun
pembayaran.
xxii. Form Set Daftar Vakasi Dosen
Gambar 4.22 Form Set Daftar Vakasi Dosen
89
Menu set daftar vakasi dosen ini berguna untuk mengolah data jenis – jenis
vakasi. User dapat menambah atau mengubah jenis vakasi.
xxiii. Form Set Kerja Vakasi Dosen
Gambar 4.23 Form Set Kerja Vakasi Dosen
Menu Set Kerja Vakasi Dosen ini berguna untuk mengolah data
penerimaan honor vakasi dosen. User memasukkan NPP dosen, jenis vakasi,
akumulasi vakasi, program studi pengaju, bulan pembayaran, dan tahun pembayaran.
xxiv. Form Set Tarif Vakasi
Gambar 4.24 Form Set Tarif Vakasi
90
Menu set tarif vakasi ini berguna untuk mengolah data tarif vakasi per
tahun. User memasukkan tahun tarif, program studi, jenis vakasi dan besar tarif.
xxv. Form Rekap Vakasi Dosen
Gambar 4.25 Form Rekap Vakasi Dosen
Menu Rekap Vakasi Dosen Per Bulan ini berguna untuk melihat data – data
vakasi dosen pada bulan dan tahun yang dipilih oleh user. User memasukkan kriteria
rekap yang diinginkan kemudian sistem akan menampilkan data – data vakasi sesuai
dengan kriteria yang dimasukkan user.
xxvi. Form Set Tarif Overload
Gambar 4.26 Form Set Tarif Overload
91
Menu Set Tarif Overload ini berguna untuk mengolah data tarif honor
overload. User memasukkan golongan pegawai, jenjang pendidikan, dan besar tarif
overload nya.
xxvii. Form Penerimaan Overload
Gambar 4.27 Form Penerimaan Overload
Menu Penerimaan Oberload ini berguna untuk mengolah data penerimaan
honor overload dosen. User memasukkan NPP dosen, akumulasi jam pertemuan,
bulan pembayaran, dan tahun pembayaran.
xxviii. Form Penerimaan Honorarium Dosen
Gambar 4.28 Form Penerimaan Honorarium Dosen
92
Menu Penerimaan Honorarium Dosen ini berguna untuk mengolah data
penerimaan honorarium mengajar untuk dosen tidak tetap.
xxix. Form Update besar tunjangan massal
Gambar 4.29 Form Update besar tunjangan massal
Menu set besar tunjangan untuk semua dosen ini berguna untuk menambah
atau merubah besar tunjangan secara massal ( banyak dosen sekaligus ) bedasarkan
status kepegawaian dosen.
xxx. Form Set Gaji 13
Gambar 4.30 Form Set Gaji 13
93
Menu ini berguna untuk merekam data gaji ke 13.
xxxi. Form Set THR ( Tunjangan Hari Raya )
Gambar 4.31 Form Set THR
Menu Tunjangan Hari Raya ini berguna untuk merekam data tunjangan hari
raya.
xxxii. Form Set Besar PTKP
Gambar 4.32 Form Set Besar PTKP
Menu Set Besar PTKP ( Pendapatan Tidak Kena Pajak ) ini berguna untuk
menambah atau mengubah data PTKP.
94
xxxiii. Form Rekap Data
Gambar 4.33 Form Rekap Data
Menu Rekap Data ini berguna untuk membuat laporan penghasilan dan
laporan memorial per bulan.
4.3 Implementasi Proses
i. Proses pada menu tunjangan dosen
Pada saat user mengakses menu ini, sistem akan menampilkan data – data
tunjangan gaji untuk masing – masing dosen beserta besarnya. Sistem juga akan
menampilkan total tunjangan untuk setiap dosen. Urutan proses cara perhitungan total
tunjangan untuk setiap dosen adalah :
a. Sistem akan mengecek apakah tunjangan bersifat persentase atau
nominal
95
b. Jika sifatnya nominal maka data akan dijumlahkan dalam view.
Algoritma view :
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`total_nominal`$$
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
SECURITY DEFINER VIEW `total_nominal` AS select `tj`.`NPP` AS
`NPP`,sum(`tj`.`besar`) AS `total_nominal` from (`terima_tunjangan` `TJ` join
`tunjangan_gaji` `TG`) where ((`tg`.`KodeTunjangan` = `tj`.`KodeTunjangan`)
and (`tg`.`jenis_tunjangan` = _latin1'Nominal')) group by `tj`.`NPP`$$
DELIMITER ;$$
View diatas akan memberikan output berupa tabel yang berisi NPP
dosen dan jumlah keseluruhan tunjangan yang bersifat nominal.
c. Jika sifatnya persentase maka data akan diolah dengan view. Proses
yang ada berbeda dengan tunjangan yang bersifat nominal. Tunjangan
yang bersifat persentase akan melalui beberapa proses. Tergantung
tunjangan itu persentase dari komponen apa ( misal persentase dari gaji
pokok, gaji yadapen, atau gaji kotor ). View yang digunakan adalah
sebagai berikut :
1) View untuk banyak anak dan pasangan dari dosen yang
bersangkutan :
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`banyak_anak`$$
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`banyak_anak` AS select `tanggungan`.`NPP` AS
`NPP`,`tanggungan`.`Hubungan` AS `Hubungan`,count(0) AS
`banyak` from `tanggungan` where ((((`tanggungan`.`Hubungan` =
96
_latin1'1') or (`tanggungan`.`Hubungan` = _latin1'3') or
(`tanggungan`.`Hubungan` = _latin1'2')) and (`tanggungan`.`status`
= _latin1'Y')) or (`tanggungan`.`Hubungan` = _latin1'4') or
(`tanggungan`.`Hubungan` = _latin1'5')) group by
`tanggungan`.`NPP`,`tanggungan`.`Hubungan`$
DELIMITER ;$$
View ini akan menghasilkan output NPP dosen , hubungan (
apakah anak atau pasangan ), dan banyaknya.
2) View untuk mengetahui jumlah tunjangan pasangan dan anak
untuk masing – masing dosen :
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`tunjpersen2`$$
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`tunjpersen2` AS select `d`.`NPP` AS `NPP`,`tj`.`KodeTunjangan`
AS `KodeTunjangan`,(((`tj`.`besar` / 100) * `d`.`gaji`) *
`b`.`banyak`) AS `Jumlah` from ((`terima_tunjangan` `TJ` join `dua`
`D`) join `banyak_anak` `B`) where ((`d`.`NPP` = `tj`.`NPP`) and
(`tj`.`NPP` = `b`.`NPP`) and (`tj`.`KodeTunjangan` =
`b`.`Hubungan`) and (`b`.`banyak` <= 3)) order by
`tj`.`KodeTunjangan`$$
DELIMITER ;$$
View ini berguna untuk menghitung jumlah tunjangan anak
dan pasangan dimana jumlah anak kurang dari atau sama
dengan 3.
Sedangkan untuk menghitung jumlah tunjangan anak yang
banyaknya lebih dari 3 adalah sebagai berikut :
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`tunjpersen1`$$
97
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`tunjpersen1` AS select `d`.`NPP` AS `NPP`,`tj`.`KodeTunjangan`
AS `KodeTunjangan`,(((`tj`.`besar` / 100) * `d`.`gaji`) * 3) AS
`Jumlah` from ((`terima_tunjangan` `TJ` join `dua` `D`) join
`banyak_anak` `B`) where ((`d`.`NPP` = `tj`.`NPP`) and (`tj`.`NPP`
= `b`.`NPP`) and (`tj`.`KodeTunjangan` = `b`.`Hubungan`) and
(`b`.`banyak` > 3)) order by `tj`.`KodeTunjangan`$$
DELIMITER ;$$
Kemudian sistem akan menjumlahkan total tunjangan anak
dan pasangan dari output yang dihasilkan view – view diatas.
Berikut view yang digunakan untuk menghitung total :
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`jmltunjpersen2`$$
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`jmltunjpersen2` AS select `tunjpersen2`.`NPP` AS
`NPP`,sum(`tunjpersen2`.`Jumlah`) AS `Total2` from `tunjpersen2`
group by `tunjpersen2`.`NPP`$$
DELIMITER ;$$
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`jmltunjpersen1`$$
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`jmltunjpersen1` AS select `tunjpersen1`.`NPP` AS
`NPP`,sum(`tunjpersen1`.`Jumlah`) AS `Total2` from `tunjpersen1`
group by `tunjpersen1`.`NPP`$$
DELIMITER ;$$
Hasil dari kedua view diatas digabungkan menjadi satu
kesatuang dengan view :
98
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`gabungtunjpersen`$$
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`gabungtunjpersen` AS select `jmltunjpersen2`.`NPP` AS
`NPP`,`jmltunjpersen2`.`Total2` AS `Total2` from `jmltunjpersen2`
union select `jmltunjpersen1`.`NPP` AS
`NPP`,`jmltunjpersen1`.`Total2` AS `Total2` from
`jmltunjpersen1`$$
DELIMITER ;$$
Untuk mengetahui total keseluruhan tunjangan yang bersifat
persentase maka dibuat view sebagai berikut :
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`total_persen`$$
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`total_persen` AS select `gabungtunjpersen`.`NPP` AS
`NPP`,sum(`gabungtunjpersen`.`Total2`) AS `TotalPersen` from
`gabungtunjpersen` group by `gabungtunjpersen`.`NPP`$$
DELIMITER ;$$
3) Hasil dari view total_nominal dan total_persen digabungkan
dengan view sebagai berikut :
DROP VIEW IF EXISTS `personalia`.`semuajmltunj`$$
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`semuajmltunj` AS select `total_persen`.`NPP` AS
`NPP`,`total_persen`.`TotalPersen` AS `TotalPersen` from
`total_persen` union select `total_nominal`.`NPP` AS
`NPP`,`total_nominal`.`total_nominal` AS `total_nominal` from
`total_nominal`$$
DELIMITER ;$$
99
Untuk mengetahui jumlah keseluruhan tunjangan, baik yang
bersifat nominal maupun persentase dibuat view sebagai
berikut :
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`total_seluruh`$$
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`total_seluruh` AS select `semuajmltunj`.`NPP` AS
`NPP`,sum(`semuajmltunj`.`TotalPersen`) AS `total_tunjangan`
from `semuajmltunj` group by `semuajmltunj`.`NPP`$$
DELIMITER ;$$
4) Selain view – view diatas, terdapat view untuk mengetahui
jumlah tunjangan yang bersifat persentase dimana output
yang dihasilkan belum dicek dengan banyak anak atau
banyak pasangan. Selain itu, view ini juga menghasilkan
jumlah tunjangan persentase yang tidak berhubungan dengan
tabel tanggungan. Diasumsikan bahwa tunjangan persentase
ini adalah persentase dari gaji pokok. Jika ada perubahan
peraturan maka dilakukan perubahan juga pada view – view
yang ada.
DELIMITER $$;
DROP VIEW IF EXISTS `personalia`.`jml_tunjangan`$$
CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`jml_tunjangan` AS select `d`.`NPP` AS
`NPP`,`tj`.`KodeTunjangan` AS `KodeTunjangan`,((`tj`.`besar` /
100) * `d`.`gaji`) AS `Jumlah`,`tg`.`groupBayar` AS
100
`groupBayar`,`tg`.`sifat` AS `sifat` from ((`terima_tunjangan` `TJ`
join `dua` `D`) join `tunjangan_gaji` `TG`) where ((`d`.`NPP` =
`tj`.`NPP`) and (`tg`.`KodeTunjangan` = `tj`.`KodeTunjangan`) and
(`tg`.`jenis_tunjangan` = _latin1'Persentase')) order by
`tj`.`KodeTunjangan`$$
DELIMITER ;$$
d. View – view digunakan didalam program untuk menampilkan data
tunjangan untuk masing – masing dosen. Berikut adalah cuplikan dari
pemrograman dalam menu tunjangan per dosen :
with query1 do begin txtNpp.Text := FieldByName('NPP').Value; txtNama.Text := FieldByName('nama_peg').Value; txtNamaTunjangan.Text := FieldByName('NamaTunjangan').Value; txtKodeTunjangan.Text := FieldByName('KodeTunjangan').Value; isAnak := txtKodeTunjangan.Text; txtBesar.Text := FieldByName('Besar').Value; jenis := FieldByName('jenis_tunjangan').Value; bsr := StrToFloat(txtBesar.Text); if FieldByName('jenis_tunjangan').Value = 'Persentase' then begin radPersen.Checked := True ; //kon1.Connect; query2.SQL.Clear; query2.SQL.Add('select Jumlah from jml_tunjangan where NPP = "'+txtNpp.Text+'" AND KodeTunjangan = "'+txtKodeTunjangan.Text+'"'); query2.Open; with query2 do begin pokok := FieldByName('Jumlah').Value; end; if (isAnak = '1') OR (isAnak = '2') OR (isAnak = '3') then begin query2.SQL.Clear; query2.SQL.Add('select banyak from banyak_anak where NPP = "'+txtNpp.Text+'" AND Hubungan = "1"'); query2.Open; if query2.RecordCount <> 0 then begin with query2 do begin bykAnak := FieldByName('banyak').Value; end; if bykAnak > 3 then
101
banyak := 3 else banyak := bykAnak; jumlah := pokok * banyak; txtJumlah.Text := FloatToStr(jumlah); end else begin jumlah := 0; txtJumlah.Text := '0'; end; end else begin txtJumlah.Text := FloatToStr(pokok) ; end; end else begin radNominal.Checked := true; txtJumlah.Text := FieldByName('Besar').Value; end; query2.SQL.Clear; query2.SQL.Add('select total_tunjangan from total_seluruh where NPP = "'+txtNpp.Text+'"'); query2.Open; with query2 do begin txtTotal.Text := FieldByName('total_tunjangan').AsString; end; //ShowMessage(''+FloatToStr(total)+''); end;
procedure TfrmTunjanganDosen.dataAwal(); begin query1.SQL.Clear; query1.SQL.Add('select TJ.NPP,P.nama_peg,TG.NamaTunjangan,TJ.KodeTunjangan,TJ.Besar,TG.jenis_tunjangan from tunjangan_gaji as TG,terima_tunjangan as TJ,pegawai as P where TJ.NPP = P.NPP AND TJ.KodeTunjangan = TG.KodeTunjangan'); query1.Open; end;
102
ii. Set tunjangan untuk banyak dosen
Proses yang ada pada modul ini adalah :
Sistem akan menampilkan kepada user data tunjangan dosen beserta besarnya.
Fasilitas ini akan memungkinkan user merubah besar tunjangan untuk banyak dosen
sekaligus. Sistem menampilkan jenis – jenis status kepegawaian dosen kemudian user
dapat memilih salah satu atau memilih semua status sekaligus. Sistem juga
menampilkan jenis – jenis tunjangan yang ada. User dapat memilih salah satu
diantaranya. Setelah mengisikan besar tunjangan, maka user dapat menyimpannya.
Penyimpanan dilakukan dengan looping. Sistem melakukan query ke database untuk
mengambil semua NPP dosen berdasar pilihan user. Kemudian sistem melakukan
query insert data untuk menyimpan data hingga NPP yang terambil habis. Pada
waktu proses penyimpanan, sistem melakukan pengecekan apakah tunjangan yang
dipilih user sudah ada untuk dosen yang bersangkutan atau belum. Jika sudah ada
maka yang dilakukan adalah proses update data. Jika belum ada maka yang
dilakukan adalah proses insert data. Cuplikan pemrogramannya adalah sebagai
berikut :
if xKode <> 'xxx' then begin xStr := 'select NPP from personalia.pegawai where AdmEdu = "2" AND stat_peg = "'+xKode+'"'; end; if xKode = 'xxx' then begin xStr := 'select NPP from personalia.pegawai where AdmEdu = "2"'; end; que2.SQL.Clear; que2.SQL.Add(xStr); que2.Open; if que2.RecordCount <> 0 then
103
begin while not que2.Eof do begin tmp := que2.Fields[0].AsString; cek := cekIsAda(tmp); if cek = True then begin xString := 'insert into personalia.terima_tunjangan values ("'+tmp+'","'+edBesar.Text+'","'+cbTunjangan.KeyValue+'")'; end; if cek = False then begin xString := 'update personalia.terima_tunjangan set besar = "'+edBesar.Text+'" where NPP = "'+tmp+'" AND KodeTunjangan = "'+cbTunjangan.KeyValue+'"'; end; // ShowMessage(xString); queUpdate.SQL.Clear; queUpdate.SQL.Add(xString); queUpdate.ExecSQL; que2.Next; end; end; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); ambilData; iii. Set tunjangan gaji
Fasilitas ini digunakan untuk mengolah jenis – jenis tunjangan gaji. User
dapat menyimpan, mengubah, atau mencetak data jenis tunjangan gaji. Sebelum
menyimpan, sistem akan membuat kode untuk tunjangan gaji yang baru. Berikut
adalah cuplikan program :
isi := cekValidasi; if isi = True then begin if radPersen.Checked = True then tmp := 'Persentase' else tmp := 'Nominal'; if recordBaru then begin // berarti operasi penambahan data koneksiTunjangan.Connect; queryTunjangan.SQL.Clear;
104
queryTunjangan.SQL.Add('Insert into tunjangan_gaji (KodeTunjangan,NamaTunjangan,jenis_tunjangan,groupBayar,sifat) values ("'+txtKodeTunjangan.Text+'","'+txtNamaTunjangan.Text+'","'+tmp+'","'+cbGroup.Text+'","'+cbSifat.Text+'")'); queryTunjangan.ExecSQL; end else begin // berarti operasi perbahan data koneksiTunjangan.Connect; queryTunjangan.SQL.Clear; queryTunjangan.SQL.Add('update tunjangan_gaji set NamaTunjangan = "'+txtNamaTunjangan.Text+'",jenis_tunjangan = "'+tmp+'",groupBayar = "'+cbGroup.Text+'",sifat = "'+cbSifat.Text+'" where KodeTunjangan = "'+txtKodeTunjangan.Text+'"'); queryTunjangan.ExecSQL; end; MessageDlg('Data sudah disimpan',mtInformation,[mbOk],0); queryTunjangan.SQL.Clear; queryTunjangan.SQL.Add('select * from tunjangan_gaji'); queryTunjangan.Open; PerolehData(); Atur(True); aturField(False); end; procedure TfrmTunjanganGaji.radPersenClick(Sender: TObject); var kode : String; begin if recordBaru = True then begin kode := getKode(); txtKodeTunjangan.Text := kode; end; end; procedure TfrmTunjanganGaji.radNominalClick(Sender: TObject); var kode : String; begin if recordBaru = True then begin kode := getKode(); txtKodeTunjangan.Text := kode; end; end;
105
iv. Tunjangan Yayasan
Fasilitas ini berguna untuk mengolah besar tunjangan yayasan untuk masing –
masing golongan kepegawaian. Sistem akan menampilkan semua jenis golongan
kepegawaian, kemudian user diminta untuk memilih salah satu golongan dan
mengisikan besar tunjangan yayasan. Setelah data lengkap maka user dapat
menyimpan data. Sistem akan mengecek apakah tarif tunjangan yayasan yang dipilih
user sudah ada atau belum. Jika belum ada, maka dilakukan proses insert data. Jika
sudah ada, maka dilakukan proses update data. Berikut adalah cuplikan program :
val := cekValidasi; if val = True then begin if newRec = True then begin isAda := cekAda; if isAda = True then begin xStr := 'insert into tunjanganyayasan values ("'+cbGol.KeyValue+'","'+txtBesar.Text+'")'; queUpdate.SQL.Clear; queUpdate.SQL.Add(xStr); queUpdate.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); awal; DBGrid1.DataSource.DataSet.Locate('Kode_gol',cbGol.KeyValue,[loCaseInsensitive,loPartialKey]); getData; fieldAwal(False); end else begin cbGol.SetFocus; cbGol.KeyValue := ''; txtBesar.Text := ''; end; end; if newRec = False then begin xStr := 'update tunjanganyayasan set besarTunjangan = "'+txtBesar.Text+'" where Kode_gol = "'+cbGol.KeyValue+'"'; queUpdate.SQL.Clear; queUpdate.SQL.Add(xStr);
106
queUpdate.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); awal; end;
v. Iuran per dosen
Dalam sistem informasi penggajian, terdapat dua macam iuran, yaitu iuran
yang bersifat persentase dan iuran yang bersifat nominal.
Sebagian besar iuran adalah persentase dari gaji kotor. Untuk dapat menghitung gaji
kotor, maka dibuat view sebagai berikut :
View untuk mendapatkan daftar NPP dosen, tunjangan anak, tunjangan pasangan
beserta besarnya :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`total1`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `total1` AS select `j`.`NPP` AS `NPP`,`j`.`KodeTunjangan` AS `KodeTunjangan`,(`b`.`jml` * `j`.`Jumlah`) AS `Total` from (`jml_tunjangan` `J` join `banyak_tunj` `B`) where ((`j`.`NPP` = `b`.`NPP`) and (`j`.`KodeTunjangan` = `b`.`Hubungan`)) group by `j`.`NPP`,`b`.`Hubungan`$$ DELIMITER ;$$ Kemudian dijumlahkan besar tunjangan pasangan dan anak berdasar NPP dosen
dengan view sebagai berikut :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`tot_kotor`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `tot_kotor` AS select `total1`.`NPP` AS `NPP`,sum(`total1`.`Total`) AS `Tot` from `total1` where ((`total1`.`KodeTunjangan` = _latin1'1') or (`total1`.`KodeTunjangan` = _latin1'4') or (`total1`.`KodeTunjangan` = _latin1'5')) group by `total1`.`NPP`$$ DELIMITER ;$$
107
Kemudian jumlah tunjangan anak dan pasangan tadi ditambahkan dengan besar gaji
pokok dosen dengan view sebagai berikut :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`gaji_kotor`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `gaji_kotor` AS select `tk`.`NPP` AS `NPP`,(`tk`.`Tot` + `d`.`gaji`) AS `gaji_kotor` from (`tot_kotor` `TK` join `dua` `D`) where (`d`.`NPP` = `tk`.`NPP`)$$ DELIMITER ;$$ Setelah didapatkan besar gaji kotor, selanjutnya sistem akan membuat daftar NPP
dosen, jenis iuran dan besar iuran dimana jenis iuran tersebut bersifat persentase.
Berikut view yang digunakan untuk keperluan tersebut :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`jml_iuran`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `jml_iuran` AS select `bi`.`NPP` AS `NPP`,`bi`.`KodeIuran` AS `KodeIuran`,((`bi`.`besar` / 100) * `gk`.`gaji_kotor`) AS `jml_iuran`,`ig`.`groupBayar` AS `groupBayar` from ((`bayar_iuran` `BI` join `gaji_kotor` `GK`) join `iuran_gaji` `IG`) where ((`ig`.`KodeIuran` <> _latin1'P.4') and (`bi`.`NPP` = `gk`.`NPP`) and (`bi`.`KodeIuran` = `ig`.`KodeIuran`) and (`ig`.`jenis_gaji` = _latin1'Persentase'))$$ DELIMITER ;$$ Setelah mendapatkan daftar iuran, sistem akan menjumlahkan besar iuran yang
bersifat persentase. Berikut adalah view yang digunakan :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`totiuran1`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `totiuran1` AS select `jml_iuran`.`NPP` AS `NPP`,sum(`jml_iuran`.`jml_iuran`) AS `total` from `jml_iuran` group by `jml_iuran`.`NPP`$$ DELIMITER ;$$
108
Kemudian sistem akan membuat daftar jumlah iuran yang bsersifat nominal untuk
masing – masing dosen. Berikut adalah view yang digunakan :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`totiuran2`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `totiuran2` AS select `bi`.`NPP` AS `NPP`,sum(`bi`.`besar`) AS `total` from (`bayar_iuran` `BI` join `iuran_gaji` `IG`) where ((`bi`.`KodeIuran` = `ig`.`KodeIuran`) and (`ig`.`jenis_gaji` = _latin1'Nominal')) group by `bi`.`NPP`$$ DELIMITER ;$$ Setelah itu, sistem akan menggabungkan daftar jumlah iuran yang bersifat persentase
dan nominal. Berikut adalah view yang digunakan :
DROP VIEW IF EXISTS `personalia`.`gabung_total`; CREATE VIEW `personalia`.`gabung_total` AS (select * from personalia.totiuran1) union (select * from personalia.totiuran2); View – view tersebut kemudian dipanggil dalam program untuk menampilkan data
iuran gaji per dosen. Berikut adalah cuplikan program :
koneksiPotongan.Connect; queryPotongan1.SQL.Clear; queryPotongan1.SQL.Add('select BI.NPP,BI.KodeIuran,P.Nama_peg,BI.KodeIuran,I.Keterangan,BI.Besar,I.jenis_gaji from pegawai as P,iuran_gaji as I,bayar_iuran as BI where P.NPP = BI.NPP AND BI.KodeIuran = I.KodeIuran order by P.nama_peg'); queryPotongan1.Open; PerolehData(); AturField(False); end; with queryPotongan1 do begin txtNPP.Text := FieldByName('NPP').Value; txtNama.Text := FieldByName('Nama_peg').value; txtNamaPotongan.Text := FieldByName('Keterangan').Value; txtBesarPotongan.Text := FieldByName('Besar').Value; txtKode.Text := FieldByName('KodeIuran').Value; cbDosen.KeyValue := FieldByName('NPP').AsString; cb1.KeyValue := FieldByName('KodeIuran').AsString;
109
//cmbBulan.Text := FieldByName('bulan').Value; //cmbTahun.Text := FieldByName('tahun').Value; if FieldByName('jenis_gaji').Value = 'Persentase' then begin radPersen.Checked := True; //koneksiPotongan.Connect; query3.SQL.Clear; query3.SQL.Add('select * from jml_iuran where NPP = "'+txtNpp.Text+'" AND KodeIuran = "'+txtKode.Text+'"'); query3.Open; with query3 do txtJumlah.Text := FieldByName('jml_iuran').AsString; end else begin radNominal.Checked := True; txtJumlah.Text := FieldByName('Besar').Value; end; end; query3.SQL.Clear; query3.SQL.Add('select sum(total) from gabung_total where NPP = "'+txtNpp.Text+'" group by NPP'); query3.Open; with query3 do begin txtTotal.Text := Fields[0].AsString; end; vi. Set jenis iuran gaji
Fasilitas ini disediakan agar user dapat mengolah data jenis iuran gaji
dosen.User dapat menyimpan atau mengubah data jenis iuran gaji. Berikut adalah
cuplikan program yang ada pada modul ini :
if radPersen.Checked = True then tmp := 'Persentase' else tmp := 'Nominal'; if recordBaru then begin // berarti operasi penambahan data koneksiIuran.Connect; queryIuran.SQL.Clear; queryIuran.SQL.Add('Insert into iuran_gaji (KodeIuran,Keterangan,jenis_gaji,groupBayar) values ("'+txtKodeIuran.Text+'","'+txtNamaIuran.Text+'","'+tmp+'","'+cbGroup.Text+'")');
110
queryIuran.ExecSQL; end else begin // berarti operasi perbahan data koneksiIuran.Connect; queryIuran.SQL.Clear; queryIuran.SQL.Add('update iuran_gaji set Keterangan = "'+txtNamaIuran.Text+'",jenis_gaji = "'+tmp+'",groupBayar = "'+cbGroup.Text+'" where KodeIuran = "'+txtKodeIuran.Text+'"'); queryIuran.ExecSQL; end; MessageDlg('Data sudah disimpan',mtInformation,[mbOk],0); queryIuran.SQL.Clear; queryIuran.SQL.Add('select * from iuran_gaji'); queryIuran.Open; //daftarIuran.DataSource.DataSet.Locate('KodeIuran',txtKodeIuran.Text,[loCaseInSensitive,loPartialKey]); PerolehData(); Awal(True); setField(False);
vii. Update besar iuran
Fasilitas ini berguna untuk menambah atau mengubah besar iuran gaji banyak
dosen sekaligus. Sistem akan menampilkan kepada user status kepegawaian yang ada
di Universitas Sanata Dharma. User dapat memilih salah satu atau semua status.
Sistem akan mencari daftar NPP yang berstatus sesuai dengan yang dipilih user.
Dengan looping, sistem akan mengambil NPP satu per satu kemudian menyimpan
data. Berikut cuplikan program :
if xKode = 'xxx' then xStr := 'select NPP from personalia.pegawai where AdmEdu = "2"'; if xKode <> 'xxx' then xStr := 'select NPP from personalia.pegawai where AdmEdu = "2" AND stat_peg = "'+xKode+'"'; query3.SQL.Clear; //ShowMessage(xStr); // query3.SQL.Add('select P.NPP,I.KodeIuran from pegawai as P,iuran_gaji as I where I.Keterangan = "'+cbNamaIuran.Text+'"'); query3.SQL.Add(xStr); query3.Open;
111
ShowMessage(IntToStr(query3.RecordCount)); if query3.RecordCount <> 0 then begin pb.Visible := True; pb.Max := query3.RecordCount; index := 1; while not query3.Eof do begin tmp1 := query3.Fields[0].AsString; pb.Position := index; if tmp1 <> '' then begin cek := cekIsAda(tmp1); //ShowMessage(cek); if cek = True then begin xString := 'insert into personalia.bayar_iuran values ("'+tmp1+'","'+cbNamaIuran.KeyValue+'","'+txtBesar.Text+'")'; end; if cek = False then begin xString := 'update personalia.bayar_iuran set besar = "'+txtBesar.Text+'" where NPP = "'+tmp1+'" AND '+ 'KodeIuran = "'+cbNamaIuran.KeyValue+'"'; end; //ShowMessage(xString); queUpdate.SQL.Clear; queUpdate.SQL.Add(xString); queUpdate.ExecSQL; end; index := index + 1; query3.Next; end; end; pb.Visible := False; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0);
viii. Set besar pajak
Fasilitas ini berguna agar user dapat mengolah data besar pajak beserta range
nya. User dapat menambah atau mengubah besar pajak beserta range nya. Berikut
adalah cuplikan program pada modul ini :
if newRec = True then begin xStr := 'insert into pajak values ("'+edKode.Text+'","'+edAwal.Text+'","'+edAkhir.Text+'","'+edPajak.Text+'")'; end else
112
xStr := 'update pajak set nilai_awal = "'+edAwal.Text+'",nilai_akhir = "'+edAkhir.Text+'",'+ 'besar_pajak = "'+edPajak.Text+'" where kode_pajak = "'+edKode.Text+'"'; if xStr <> '' then begin queUpdate.SQL.Clear; queUpdate.SQL.Add(xStr); queUpdate.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); awal; getData; setAwal(False); end;
ix. Pinjaman per dosen
Menu ini berguna untuk mengolah data pinjaman dosen terhadap unit lain
yang cicilan pinjamannya diambilkan langsung dari gaji per bulan. Sistem akan
menampilkan data pinjaman dosen. User dapat menambah atau mengubah data – data
pinjaman tersebut. Pada waktu proses update, sistem akan mengecek apakah cicilan
sudah habis atau belum. Jika sudah habis, maka data yang bersangkutan akan
dihapus. Berikut adalah cuplikan program pada modul ini :
xStr := 'select PD.NPP,P.nama_peg,PD.kode_pinjaman,JP.Keterangan,JP.Bunga,PD.pokok_pinjaman,'+ 'PD.Frekuensi,PD.angsuranKe,(JP.Bunga / 100 * PD.pokok_pinjaman) * PD.Frekuensi nominal_bunga,'+ '(pokok_pinjaman + (JP.Bunga / 100 * PD.pokok_pinjaman * PD.Frekuensi)) total,'+ '(pokok_pinjaman + (JP.Bunga / 100 * PD.pokok_pinjaman * PD.Frekuensi))/PD.Frekuensi angsuran,'+ '(pokok_pinjaman + (JP.Bunga / 100 * PD.pokok_pinjaman * PD.Frekuensi)) -(((pokok_pinjaman + '+ '(JP.Bunga / 100 * PD.pokok_pinjaman * PD.Frekuensi))/PD.Frekuensi) * PD.angsuranKe) Sisa,PD.besarCicilan,PD.sisaPinjaman '+ 'from pinjaman_dosen as PD,pegawai as P,jenis_potongan as JP where PD.NPP = P.NPP AND '+ 'PD.kode_pinjaman = JP.Kode_jenis order by P.nama_peg'; koneksiPinjaman.Connect; query1.SQL.Clear; //query1.SQL.Add('select PD.NPP,P.nama_peg,PD.kode_pinjaman,JP.Keterangan,JP.Bunga,PD.pokok_pinjaman,PD.Frekuensi,PD.angsuranKe from pinjaman_dosen as PD,pegawai as P,jenis_potongan as JP where PD.NPP = P.NPP AND PD.kode_pinjaman = JP.Kode_jenis'); query1.SQL.Add(xStr); query1.Open;
113
getData(); keadaan(False); procedure TfrmPinjamanDosen.btnSimpanClick(Sender: TObject); if txtFrekuensi.Text = txtAngsuran.Text then begin koneksiPinjaman.Connect; query3.SQL.Clear; query3.SQL.Add('Delete from pinjaman_dosen where Kode_pinjaman = "'+txtKodePinjaman.Text+'" AND NPP = "'+txtNpp.Text+'"'); query3.ExecSQL; end; if newRec then begin // berarti operasi penambahan data koneksiPinjaman.Connect; query1.SQL.Clear; query1.SQL.Add('Insert into pinjaman_dosen (NPP,kode_pinjaman,pokok_pinjaman,frekuensi,angsuranKe,besarCicilan,sisaPinjaman,status) values ("'+txtNpp.Text+'","'+txtKodePinjaman.Text+'","'+txtPokok.Text+'","'+txtFrekuensi.Text+'","'+txtAngsuran.Text+'","'+txtBesar.Text+'","'+txtSisa.Text+'","False")'); query1.ExecSQL; end else begin // berarti operasi perubahan data koneksiPinjaman.Connect; query1.SQL.Clear; query1.SQL.Add('update pinjaman_dosen set angsuranKe = "'+txtAngsuran.Text+'",besarCicilan = "'+txtBesar.Text+'",sisaPinjaman = "'+txtSisa.Text+'",status = "'+status+'" where NPP = "'+txtNpp.Text+'" AND Kode_pinjaman = "'+txtKodePinjaman.Text+'"'); query1.ExecSQL; end; MessageDlg('Data sudah disimpan',mtInformation,[mbOk],0); keadaan(False); xStr := 'select PD.NPP,P.nama_peg,PD.kode_pinjaman,JP.Keterangan,JP.Bunga,PD.pokok_pinjaman,PD.Frekuensi,PD.angsuranKe,PD.besarCicilan,PD.sisaPinjaman'+ ' from pinjaman_dosen as PD,pegawai as P,jenis_potongan as JP where '+ 'PD.NPP = P.NPP AND PD.kode_pinjaman = JP.Kode_jenis'; query1.SQL.Clear; // query1.SQL.Add('select PD.NPP,P.nama_peg,PD.kode_pinjaman,JP.Keterangan,JP.Bunga,PD.pokok_pinjaman,PD.Frekuensi,PD.angsuranKe,PD.besarCicilan,PD.sisaPinjaman from pinjaman_dosen as PD,pegawai as P,jenis_potongan as JP where PD.NPP = P.NPP AND PD.kode_pinjaman = JP.Kode_jenis'); query1.SQL.Add(xStr); query1.Open;
114
getData(); end;
x. Set jenis pinjaman dosen
Menu ini berguna untuk mengolah data jenis pinjaman dosen. User dapat
menambah atau mengubah data jenis pinjaman dosen. Berikut adalah cuplikan
program dari modul ini :
if recBaru then begin // berarti operasi penambahan data konJenis.Connect; query1.SQL.Clear; query1.SQL.Add('Insert into jenis_potongan (Kode_jenis,Keterangan,Bunga) values ("'+txtKode.Text+'","'+txtNamaPinjaman.Text+'","'+txtBunga.Text+'")'); query1.ExecSQL; end else begin // berarti operasi perbahan data konJenis.Connect; query1.SQL.Clear; query1.SQL.Add('update jenis_potongan set Keterangan = "'+txtNamaPinjaman.Text+'", Bunga = "'+txtBunga.Text+'" where Kode_jenis = "'+txtKode.Text+'"'); query1.ExecSQL; end; MessageDlg('Data sudah disimpan',mtInformation,[mbOk],0); query1.SQL.Clear; query1.SQL.Add('select * from jenis_potongan'); query1.Open; getData(); setField(False); end;
xi. Set jenis honor semester antara
Menu ini berguna untuk mengolah data jenis honor semester antara. User
dapat menambah atau mengubah data jenis honor semester antara. Setelah user klik
pada tombol simpan, sistem akan melakukan pengcekan apakah akan dilakukan
115
proses update atau insert. Setelah itu, sistem akan melakukan query ke database untuk
menyimpan penambahan atau perubahan data. Berikut adalah cuplikan program pada
modul ini :
//kode := cekKode(); if newRec = True then begin kon1.Connect; queUpdate.SQL.Clear; queUpdate.SQL.Add('insert into vakasi values ("'+txtKode.Text+'","'+txtJenis.Text+'","'+txtSatuan.Text+'")'); queUpdate.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); fieldAwal(False); tampilAwal(); DBGrid1.DataSource.DataSet.Locate('KodeVakasi',txtKode.Text,[loCaseInsensitive,loPartialKey]); getData; end; //MessageDlg('Sudah ada data dengan kode : '+txtKode.Text+'',mtWarning,[mbOK],0); if newRec = False then begin kon1.Connect; queUpdate.SQL.Clear; queUpdate.SQL.Add('update vakasi set Jenis_Vakasi = "'+txtJenis.Text+'",Satuan = "'+txtSatuan.Text+'" where KodeVakasi = "'+txtKode.Text+'"'); queUpdate.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); fieldAwal(False); tampilAwal(); DBGrid1.DataSource.DataSet.Locate('KodeVakasi',txtKode.Text,[loCaseInsensitive,loPartialKey]); getData;
xii. Set tarif honor semester antara
Menu ini berguna untuk mengolah besar honor mengajar semester antara.
Sistem akan menampilkan daftar golongan kepegawaian dan jenjang pendidikan.
Setelah user klik pada tombol simpan, maka sistem akan melakukan proses
116
penyimpanan. Dalam proses penyimpanan, sistem akan mengecek terlebih dahulu
apakah tarif untuk golongan dan jenjang yang dipilih sudah ada atau belum. Jika
belum ada, maka sistem akan meneruskan dengan proses insert data. Jika sudah ada,
maka sistem akan meneruskan dengan proses update data. Berikut adalah cuplikan
program :
if newRec = True then begin cek := isAdaTarif(); if cek = True then begin queUpdate.SQL.Clear; queUpdate.SQL.Add('insert into honor_sa values ("'+cbGol.KeyValue+'","'+cbJenjang.KeyValue+'","'+edTarif.Text+'")'); queUpdate.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); showAwal; getData; fieldAwal(False); tampilAwal(True); end; end; if newRec = False then begin queUpdate.SQL.Clear; queUpdate.SQL.Add('update honor_sa set tarif_sa = "'+edTarif.Text+'" where kd_gol = "'+cbGol.KeyValue+'" AND kd_pend = "'+cbJenjang.KeyValue+'"'); queUpdate.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); showAwal; getData; fieldAwal(False); tampilAwal(True); end; function TfrmHonorAjarSA.isAdaTarif() : Boolean; var xString : String; jml : Integer; begin xString := 'select * from honor_sa where kd_gol = "'+cbGol.KeyValue+'" AND kd_pend = "'+cbJenjang.KeyValue+'"'; queUpdate.SQL.Clear; queUpdate.SQL.Add(xString); queUpdate.Open; jml := queUpdate.RecordCount; if jml <> 0 then
117
begin MessageDlg('Tarif Semester antara untuk golongan ini sudah ada',mtWarning,[mbOk],0); kosong; cbGol.SetFocus; result := false; end else result := true; end;
xiii. Penerimaan honor mengajar semester antara
Menu ini berguna untuk mengolah data pengajaran semester antara. User
dapat menambah, mengubah, mencetak, atau menghapus data. Sistem akan
menampilkan data pengajaran semester antara melalui query. Pada waktu user akan
menambah data, user diminta memilih dosen. Sistem akan menampilkan honor
semeter antara dosen yang dipilih secara otomatis. Berikut adalah cuplikan program
pada modul ini :
if key = #13 then begin if newRec = True then begin xString := 'select H.tarif_sa from '+ 'pegawai PG left join personalia.unit_peg U on PG.NPP = U.NPP '+ 'left join personalia.jenjang_prodi K on substring(U.kd_unit,4,4) = K.Kd_prg '+ 'left join personalia.honor_sa H1 on K.Kd_prg = H1.kd_pend left join dua D on PG.NPP = D.NPP '+ 'left join honor_sa H on D.kd_gol = H.kd_gol where PG.NPP = "'+cbPenerima.KeyValue+'" AND U.tgl_mulai_unit = (select max(tgl_mulai_unit) '+ 'from personalia.unit_peg where NPP = "'+cbPenerima.KeyValue+'")'; queUpdate.SQL.Clear; queUpdate.SQL.Add(xString); queUpdate.Open; if queUpdate.RecordCount <> 0 then txtHonor.Text := queUpdate.FieldByName('tarif_sa').AsString else txtHonor.Text := '0'; end; xStr := 'select P.*,PG.nama_peg Dosen,H.tarif_sa from penerimaanAjarSA P left join '+
118
'pegawai PG on P.NPP = PG.NPP left join personalia.unit_peg U on PG.NPP = U.NPP '+ 'left join personalia.jenjang_prodi K on substring(U.kd_unit,4,4) = K.Kd_prg '+ 'left join personalia.honor_sa H1 on K.Kd_prg = H1.kd_pend left join dua D on P.NPP = D.NPP '+ 'left join honor_sa H on D.kd_gol = H.kd_gol where U.tgl_mulai_unit = (select max(tgl_mulai_unit) '+ 'from personalia.unit_peg where NPP = P.NPP)'; query1.SQL.Clear; query1.SQL.Add(xStr); query1.Open; end;
xiv. Penerimaan honor lain semester antara
Menu ini berguna untuk mengolah penerimaan honor selain honor mengajar
pada semester antara.Honor – honor yang dimaksud disini pada dasarnya adalah
vakasi yang terjadi pada saat semester antara berlangsung. Sistem akan meminta user
untuk memasukkan bulan dan tahun honor semester antara. Kemudian sistem akan
melakukan query ke tabel vakasi yang kodenya mengandung SA. Berikut adalah
cuplikan programnya :
xStr := 'select P.NPP,PG.nama_peg Dosen,K.Nama_prg,P.KodeVakasi,V.Jenis_vakasi,V.Satuan,P.thnTarif, '+ 'P.Akumulasi_satuan,P.Status_bayar,P.kdProdi from pegawai PG,vakasi V,vakasi_dosen'+cbMskThn.Text+''+blnMasuk+' P,kamus.prg_std K where '+ 'P.NPP = PG.NPP AND V.KodeVakasi = P.KodeVakasi AND V.KodeVakasi like "%SA%" AND P.kdProdi = K.Kd_prg order by PG.nama_peg'; query1.SQL.Clear; query1.SQL.Add(xStr); query1.Open; if query1.RecordCount <> 0 then begin getData;
Untuk proses penyimpanan, cuplikan programnya sebagai berikut :
if newRec = True then begin xStr := 'insert into vakasi_dosen'+cbTahun.Text+''+blnMasuk+' value '+
119
'("'+cbDosen.KeyValue+'","'+cbHonor.KeyValue+'","'+cbProdi.KeyValue+'","'+cbThnTarif.Text+'","'+txtAkumulasi.Text+'","'+cbStatus.Text+'")'; queUpdate.SQL.Clear; queUpdate.SQL.Add(xStr); queUpdate.ExecSQL; end; if newRec = False then begin xStr := 'update vakasi_dosen'+cbTahun.Text+''+blnMasuk+' set Akumulasi_satuan = "'+txtAkumulasi.Text+'",thnTarif = "'+cbThnTarif.Text+'",Status_bayar = "'+cbStatus.Text+'" '+ 'where KodeVakasi = "'+cbHonor.KeyValue+'" AND NPP = "'+cbDosen.KeyValue+'" AND '+ 'kdProdi = "'+cbProdi.KeyValue+'"'; queUpdate.SQL.Clear; queUpdate.SQL.Add(xStr); queUpdate.ExecSQL;
xv. Rekap Semester Antara
Modul ini berguna untuk merekap jumlah semua honor pada waktu semester
antara untuk bulan dan tahun tertentu untuk masing – masing dosen. Sistem akan
meminta user untuk memilih bulan dan tahun yang diinginkan. Kemudian sistem juga
akan meminta user untuk memilih kriteria rekap. Berdasarkan kriteria yang diberikan
user, sistem akan melakukan query ke database. Setelah didapatkan data hasil query,
sistem akan menampilkan data – data tersebut kepada user melalui sebuah daftar.
Berikut adalah cuplikan programnya :
if cbKriteria.Text = 'Satu Dosen' then begin cbDosen.Visible := True; labKrit.Caption := 'Nama Dosen'; labKrit.Visible := True; cbProdi.Visible := False; end; if cbKriteria.Text = 'Semua Dosen' then begin {xStr := 'select P.*,PG.nama_peg,H.tarif_sa'+ ' from penerimaanAjarSA P left join pegawai PG on P.NPP = PG.NPP'+ ' left join dua D on P.NPP = D.NPP left join honor_sa H on D.kd_gol = H.kd_gol order by PG.nama_peg';
120
setSADosen(xStr); } xStr := 'select P.*,K.Nama_prg,PG.nama_peg,H.tarif_sa from penerimaanAjarSA P '+ 'left join pegawai PG on P.NPP = PG.NPP '+ 'left join dua D on P.NPP = D.NPP '+ 'left join honor_sa H on D.kd_gol = H.kd_gol '+ 'left join personalia.unit_peg U on P.NPP = U.NPP '+ 'left join kamus.prg_std K on substring(U.kd_unit,4,4) = K.Kd_prg '+ 'order by PG.nama_peg'; setSADosen(xStr); end; if cbKriteria.Text = 'Satu Prodi' then begin labKrit.Visible := True; labKrit.Caption := 'Prodi'; cbProdi.Visible := True; cbDosen.Visible := False; end; if cbKriteria.Text = 'Semua Prodi' then begin labKrit.Visible := False; cbProdi.Visible := False; cbDosen.Visible := False; xStr := 'select P.*,K.Nama_prg,PG.nama_peg,H.tarif_sa from penerimaanAjarSA P '+ 'left join pegawai PG on P.NPP = PG.NPP '+ 'left join dua D on P.NPP = D.NPP '+ 'left join honor_sa H on D.kd_gol = H.kd_gol '+ 'left join personalia.unit_peg U on P.NPP = U.NPP '+ 'left join kamus.prg_std K on substring(U.kd_unit,4,4) = K.Kd_prg '+ 'order by K.Nama_prg,PG.nama_peg'; setSADosen(xStr); end; if key = #13 then begin xStr := 'select P.*,K.Nama_prg,PG.nama_peg,H.tarif_sa from penerimaanAjarSA P '+ 'left join pegawai PG on P.NPP = PG.NPP '+ 'left join dua D on P.NPP = D.NPP '+ 'left join honor_sa H on D.kd_gol = H.kd_gol '+ 'left join personalia.unit_peg U on P.NPP = U.NPP '+ 'left join kamus.prg_std K on substring(U.kd_unit,4,4) = K.Kd_prg '+ 'where P.NPP = "'+cbDosen.KeyValue+'"'; setSADosen(xStr); end; if que1.RecordCount <> 0 then begin while not que1.Eof do begin if que1.FieldByName('NPP').AsString <> tmp then begin if row > 1 then
121
begin row := getHonorLain(row,tmp); jml := total + honor; persen := getPajak; pajak := (persen / 100) * jml; terima := jml - pajak; gridRekap.Cells[5,row] := 'Pajak'; gridRekap.CellProperties[5,row].FontStyle := [fsBold]; gridRekap.Cells[6,row] := FloatToStr(pajak); row := row + 1; gridRekap.AddRow; gridRekap.Cells[5,row] := 'Total'; gridRekap.CellProperties[5,row].FontStyle := [fsBold]; gridRekap.Cells[6,row] := FloatToStr(terima); row := row + 1; gridRekap.AddRow; end; end; tarif := que1.FieldByName('tarif_sa').AsFloat; akum := que1.FieldByName('akumulasiJP').AsFloat; npp := que1.FieldByName('NPP').AsString; honor := tarif * akum; persen := getPajak; pajak := (persen / 100) * honor; //prodi := getProdi(npp); prodi := que1.FieldByName('Nama_prg').AsString; if prodi <> tmp then begin pb1.Position := no; gridRekap.Cells[0,row] := IntToStr(no); gridRekap.Cells[1,row] := prodi; gridRekap.Cells[2,row] := npp; gridRekap.Cells[3,row] := que1.FieldByName('nama_peg').AsString; gridRekap.Cells[4,row] := 'Honor Mengajar'; gridRekap.Cells[5,row] := prodi; gridRekap.Cells[6,row] := FloatToStr(honor); gridRekap.Cells[7,row] := FloatToStr(pajak); end else begin gridRekap.Cells[2,row] := npp; gridRekap.Cells[3,row] := que1.FieldByName('nama_peg').AsString; gridRekap.Cells[4,row] := 'Honor Mengajar'; gridRekap.Cells[5,row] := prodi; gridRekap.Cells[6,row] := FloatToStr(honor); gridRekap.Cells[7,row] := FloatToStr(pajak); end; gridRekap.AddRow; no := no + 1; row := row + 1; tmp := que1.FieldByName('NPP').AsString; tmp2 := que1.FieldByName('Nama_prg').AsString;
122
que1.Next; if que1.Eof then begin row := getHonorLain(row,tmp); jml := total + honor; persen := getPajak; pajak := (persen / 100) * jml; terima := jml - pajak; gridRekap.Cells[5,row] := 'Pajak'; gridRekap.CellProperties[5,row].FontStyle := [fsBold]; gridRekap.Cells[6,row] := FloatToStr(pajak); row := row + 1; gridRekap.AddRow; gridRekap.Cells[5,row] := 'Total'; gridRekap.CellProperties[5,row].FontStyle := [fsBold]; gridRekap.Cells[6,row] := FloatToStr(terima); row := row + 1; gridRekap.AddRow; end; end; end else MessageDlg('Data tidak ada',mtWarning,[mbOk],0);
xvi. Set jenis honor PMB
Modul ini berguna untuk mengolah data jenis honor PMB. User dapat
menambah atau mengubah jenid honor PMB. Jika user menambah data, maka sistem
akan memberikan kode secara otomatis baru kemudian menyimpan data tersebut.
Berikut adalah cuplikan programnya :
if newRec = True then begin kon1.Connect; queUpdate.SQL.Clear; queUpdate.SQL.Add('insert into honor_lain values ("'+txtKode.Text+'","'+txtNamaHonor.Text+'","Tunjangan")'); queUpdate.ExecSQL; end else begin queUpdate.SQL.Clear; queUpdate.SQL.Add('update honor_lain set jenisHonor = "'+txtNamaHonor.Text+'" where kdJenisHonor = "'+txtKode.Text+'"'); queUpdate.ExecSQL; end; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); awalForm();
123
awalField(False);
xvii. Set penerima honor PMB
Modul ini berguna untuk mengolah data dosen penerima honor PMB. User
dapat menambah, mengubah, menghapus atau mencetak data penerimaan honor
PMB. Sistem akan menampilkan data penerimaan honor PMB pada bulan dan tahun
yang telah dipilih oleh user. Berikut adalah cuplikan programnya :
xStr := 'select L.*,P.nama_peg,H.jenisHonor,H.sifat from personalia.lain_lain'+cbTahun.Text+''+bulan+' L '+ 'left join personalia.honor_lain H on H.kdJenisHonor = L.KodeTunjangan left join personalia.pegawai P '+ 'on L.NPP = P.NPP where L.KodeTunjangan like "%PMB%"'; que1.SQL.Clear; //que1.SQL.Add('select TJ.NPP,P.nama_peg,TG.NamaTunjangan,TJ.KodeTunjangan,TJ.Besar from tunjangan_gaji as TG,terima_tunjangan as TJ,pegawai as P where TJ.NPP = P.NPP AND TJ.KodeTunjangan = TG.KodeTunjangan AND TG.KodeTunjangan like "PMB%"'); que1.SQL.Add(xStr); que1.Open; end;
Untuk proses penyimpanan cuplikan programnya sebagai berikut : cek := cekIsi(); if cek = True then begin if newRec = True then begin queUpdate.SQL.Clear; queUpdate.SQL.Add('insert into lain_lain'+cbTahun.Text+''+bulan+' values ("'+cbNamaPeg.KeyValue+'","'+cbHonorPmb.KeyValue+'","'+txtBesar.Text+'","'+cbGroup.Text+'","'+txtKeterangan.Text+'")'); queUpdate.ExecSQL; MessageDlg('Data sudah disimpan',mtInformation,[mbOk],0); dataAwal(); getData(); // tampilAwal(False); awal(False); end else begin queUpdate.SQL.Clear; queUpdate.SQL.Add('update lain_lain'+cbTahun.Text+''+bulan+' set BesarTunjangan = "'+txtBesar.Text+'",groupBayar = "'+cbGroup.Text+'",Keterangan = "'+txtKeterangan.Text+'"
124
where KodeTunjangan = "'+cbHonorPmb.KeyValue+'" AND NPP = "'+cbNamaPeg.KeyValue+'"'); queUpdate.ExecSQL; MessageDlg('Data sudah disimpan',mtInformation,[mbOk],0); dataAwal(); getData(); // tampilAwal(False); awal(False);
xviii. Jenis vakasi
Modul ini berguna untuk mengolah data jenis – jenis vakasi. User dapat
menambah atau mengubah jenis vakasi. Berikut adalah cuplikan program yang ada
pada modul tersebut :
isi1 := cekIsi(edJenis); isi2 := cekIsi(edSatuan); //isi3 := cekIsi(edTarif); if (isi1 = True ) AND (isi2 = True) then begin if newRec = True then begin queUpdate.SQL.Clear; queUpdate.SQL.Add('insert into vakasi values ("'+edKode.Text+'","'+edJenis.Text+'","'+edSatuan.Text+'")'); queUpdate.ExecSQL; MessageDlg('Data sudah disimpan',mtInformation,[mbOk],0); end else begin queUpdate.SQL.Clear; queUpdate.SQL.Add('update vakasi set Jenis_vakasi = "'+edJenis.Text+'",Satuan = "'+edSatuan.Text+'" where KodeVakasi = "'+edKode.Text+'"'); queUpdate.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); end; end;
xix. Penerimaan vakasi
Modul ini berguna untuk mengolah data vakasi dosen. User dapat menambah,
mengubah atau menghapus data vakasi dosen. Pada saat menambah data, user
memasukkan program studi pengaju, nama dosen, dan akumulasi vakasi. Sistem akan
125
menampilkan besar honor yang diterima oleh dosen dari jenis vakasi yang
bersangkutan. Kemudian data akan disimpan. Berikut adalah cuplikan program nya :
if key = #13 then begin satuan := StrToFloat(edTarif.Text); kali := StrToFloat(edAkumulasi.Text); hasil := satuan * kali; edJml.Text := FloatToStr(hasil); gridVakasi.Cells[0,inRow] := IntToStr(inRow); gridVakasi.Cells[1,inRow] := cbJenis.Text; gridVakasi.Cells[2,inRow] := edAkumulasi.Text; gridVakasi.Cells[3,inRow] := cbJenis.KeyValue; inRow := inRow + 1; gridVakasi.AddRow; cbJenis.KeyValue := ''; edAkumulasi.Text := ''; cbJenis.SetFocus; end; row := 1; jumRec := gridVakasi.RowCount; // if cek = True then // begin while row <= jumRec - 2 do begin cek := cekIsAdaRec(cbDosen.KeyValue,gridVakasi.Cells[3,row]); if cek = True then begin xStr := 'insert into personalia.vakasi_dosen'+cbMskThn.Text+''+cbMskBln.Text+' values '+ '("'+cbDosen.KeyValue+'","'+gridVakasi.Cells[3,row]+'","'+cbProdi.KeyValue+'","'+cbThnTarif.Text+'",'+ '"'+gridVakasi.Cells[2,row]+'","'+cbStatus.Text+'")'; end; if cek = False then begin xStr := 'update personalia.vakasi_dosen'+cbMskThn.Text+''+cbMskBln.Text+' set '+ 'thnTarif = "'+cbThnTarif.Text+'",Akumulasi_satuan = "'+gridVakasi.Cells[2,row]+'",'+ 'Status_bayar = "'+cbStatus.Text+'" where NPP = "'+cbDosen.KeyValue+'" AND '+ 'KodeVakasi = "'+gridVakasi.Cells[3,row]+'" AND kdProdi = "'+cbProdi.KeyValue+'"'; end; //ShowMessage(xStr); queUpdate.SQL.Clear; queUpdate.SQL.Add(xStr); queUpdate.ExecSQL;
126
row := row + 1;
xx. Rekap Vakasi
Modul ini berguna untuk merekap data vakasi dosen untuk bulan dan tahun
yang dipilih oleh user. User akan memasukkan kriteria rekap vakasi, kemudian sistem
akan menampilkan data – data vakasi sesuai dengan kriteria yang dipilih. Selain
menampilkan data yang ada pasa database, sistem juga menghitung honor vakasi
yang diperoleh. Berikut adalah cuplikan program nya :
if cbKriteria.Text = 'Satu Dosen' then begin xStr := 'select T.NPP,P.nama_peg,T.KodeVakasi,V.Jenis_vakasi,V.Satuan,T.kdProdi,K.Nama_prg,T.thnTarif,T.Akumulasi_satuan,T.status_bayar '+ 'from personalia.vakasi_dosen'+cbTahun.Text+''+bulan+' T left join personalia.vakasi V on T.KodeVakasi = V.KodeVakasi '+ 'left join kamus.prg_std K on T.kdProdi = K.Kd_prg left join personalia.pegawai P on T.NPP = P.NPP where T.NPP = "'+cbNamaDosen.KeyValue+'" '+ 'AND T.KodeVakasi not like "%SA%"'; end; if cbKriteria.Text = 'Semua Dosen' then begin xStr := 'select T.NPP,P.nama_peg,T.KodeVakasi,V.Jenis_vakasi,V.Satuan,T.kdProdi,K.Nama_prg,T.thnTarif,T.Akumulasi_satuan,T.status_bayar '+ 'from personalia.vakasi_dosen'+cbTahun.Text+''+bulan+' T left join personalia.vakasi V on T.KodeVakasi = V.KodeVakasi '+ 'left join kamus.prg_std K on T.kdProdi = K.Kd_prg left join personalia.pegawai P on T.NPP = P.NPP where '+ 'T.KodeVakasi not like "%SA%" order by P.nama_peg'; end; if cbKriteria.Text = 'Per Prodi' then begin xStr := 'select T.NPP,P.nama_peg,T.KodeVakasi,V.Jenis_vakasi,V.Satuan,K.Nama_prg,T.kdProdi,T.thnTarif,T.Akumulasi_satuan,T.status_bayar '+ 'from personalia.vakasi_dosen'+cbTahun.Text+''+bulan+' T left join personalia.vakasi V on T.KodeVakasi = V.KodeVakasi '+ 'left join kamus.prg_std K on T.kdProdi = K.Kd_prg left join personalia.pegawai P on T.NPP = P.NPP where T.kdProdi = "'+cbProdi.KeyValue+'" AND '+ 'T.KodeVakasi not like "%SA%" order by P.nama_peg'; end; if cbKriteria.Text = 'Semua Prodi' then begin
127
xStr := 'select K.Nama_prg,T.NPP,P.nama_peg,T.KodeVakasi,V.Jenis_vakasi,V.Satuan,T.kdProdi,T.thnTarif,T.Akumulasi_satuan,T.status_bayar '+ 'from personalia.vakasi_dosen'+cbTahun.Text+''+bulan+' T left join personalia.vakasi V on T.KodeVakasi = V.KodeVakasi '+ 'left join kamus.prg_std K on T.kdProdi = K.Kd_prg left join personalia.pegawai P on T.NPP = P.NPP where '+ 'T.KodeVakasi not like "%SA%" order by K.Nama_prg,P.nama_peg'; end; query1.SQL.Clear; query1.SQL.Add(xStr); query1.Open; if query1.RecordCount <> 0 then getData() else MessageDlg('Data tidak ditemukan',mtWarning,[mbOk],0); index := 1; gridIsi.RowCount := 2; while not query1.Eof do begin gridIsi.Cells[2,index] := query1.FieldByName('Jenis_Vakasi').AsString; gridIsi.Cells[3,index] := query1.FieldByName('Akumulasi_satuan').AsString; akum := query1.FieldByName('Akumulasi_satuan').AsFloat; thn := query1.FieldByName('thnTarif').AsString; kode := query1.FieldByName('KodeVakasi').AsString; prodi := query1.FieldByName('kdProdi').AsString; gridIsi.Cells[6,index] := query1.FieldByName('Nama_prg').AsString; npp := query1.FieldByName('NPP').AsString; gridIsi.Cells[0,index] := npp; gridIsi.Cells[1,index] := query1.FieldByName('nama_peg').AsString; tarif := getTarif(thn,kode,prodi); edTarif.Text := FloatToStr(tarif); jml := tarif * akum; gridIsi.Cells[4,index] := FloatToStr(tarif); //edJumlah.Text := FieldByName('Jumlah').AsString; tot := cariHarga(npp,prodi); gridIsi.Cells[5,index] := FloatToStr(jml); persen := getPersenPajak; pajak := persen/100 * jml; gridIsi.Cells[7,index] := FloatToStr(pajak); index := index + 1; gridIsi.AddRow; query1.Next; end; end;
128
xxi. Set Tarif Vakasi
Modul ini berguna untuk mengolah data tarif vakasi. Tarif vakasi berbeda –
beda untuk setiap program studi. Sistem akan memberi pilihan kepada user, apakah
tarif yang dimasukkan untuk semua program studi atau hanya program studi tertentu
saja. Jika untuk program studi tertentu maka sistem akan meminta user untuk
memilih salah satu program studi. Jika untuk semua program studi, maka sistem akan
mengambil data – data program studi kemudian satu per satu akan disimpan datanya
menggunakan looping. Berikut adalah cuplikan program nya :
if cbKrit.Text = 'Semua Prodi' then begin xString := 'select Kd_prg from kamus.prg_std'; que2.SQL.Clear; que2.SQL.Add(xString); que2.Open; if que2.RecordCount <> 0 then begin pb.Visible := True; pb.Max := que2.RecordCount; while not que2.Eof do begin pb.Position := row; kode := que2.Fields[0].AsString; cek := cekIsAda(kode,tanggal); //cek := 'True'; //ShowMessage(cek); if cek = 'True' then begin code := getKode; xStr := 'insert into personalia.tarif_vakasi'+cbTahun.Text+' values ("'+code+'",'+ '"'+cbJenisVakasi.KeyValue+'","'+kode+'","'+edBesar.Text+'","'+tanggal+'")'; end; if cek <> 'True' then begin xStr := 'update personalia.tarif_vakasi'+cbTahun.Text+' set besarTarif = "'+edBesar.Text+'"'+ 'where kdTarif = "'+cek+'"'; end; que3.SQL.Clear; que3.SQL.Add(xStr); que3.ExecSQL;
129
row := row + 1; que2.Next; end; end; ambilData; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); pb.Visible := false; end; if cbKrit.Text = 'Satu Prodi' then begin cek := cekIsAda(cbProdi.KeyValue,tanggal); if cek = 'True' then begin code := getKode; tmp := code; xStr := 'insert into personalia.tarif_vakasi'+cbTahun.Text+' values ("'+code+'",'+ '"'+cbJenisVakasi.KeyValue+'","'+cbProdi.KeyValue+'","'+edBesar.Text+'","'+tanggal+'")'; end; if cek <> 'True' then begin xStr := 'update personalia.tarif_vakasi'+cbTahun.Text+' set besarTarif = "'+edBesar.Text+'"'+ 'where kdTarif = "'+cek+'"'; tmp := cek; end; que3.SQL.Clear; que3.SQL.Add(xStr); que3.ExecSQL; ambilData; dbTarifVakasi.DataSource.DataSet.Locate('kdTarif',tmp,[loCaseInSensitive,loPartialKey]);
xxii. Set Tarif Overload
Modul ini berguna untuk mengolah data tarif overload dosen. Tarif overload
berdasarkan jenjang pendidikan dan golongan pegawai. Sistem akan menampilkan
golongan pegawai dan jenjang pendidikan yang ada. User diminta memilih salah satu
golongan dan jenjang pendidikan. Kemudian data akan disimpan ke database. Berikut
adalah cuplikan program nya :
if newRec = True then begin cek := cekKunci; if cek = True then
130
begin queUpdate.SQL.Clear; queUpdate.SQL.Add('insert into tarifoverload values ("'+cbGol.KeyValue+'","'+cbPendidikan.KeyValue+'","'+txtTarif.Text+'","'+ubahtgl(tglBerlaku.Text)+'")'); queUpdate.ExecSQL; MessageDlg('Data sudah disimpan',mtInformation,[mbOk],0); btnSimpan.Visible := False; btnBatal.Visible := False; btnTambah.Visible := True; btnUbah.Visible := True; fieldAwal(False); showAwal; DBGrid1.DataSource.DataSet.Locate('Kd_golongan',cbGol.KeyValue,[loCaseInsensitive,loPartialKey]); getData; end else begin kosong; cbGol.SetFocus; end; end; if newRec = False then begin queUpdate.SQL.Clear; queUpdate.SQL.Add('update tarifoverload set Tarif = "'+txtTarif.Text+'" where Kd_golongan = "'+cbGol.KeyValue+'" AND Kd_pendidikan = "'+cbPendidikan.KeyValue+'" AND tglBerlaku = "'+ubahtgl(tglBerlaku.Text)+'"'); queUpdate.ExecSQL; MessageDlg('Data sudah disimpan',mtInformation,[mbOk],0); btnSimpan.Visible := False; btnBatal.Visible := False; btnTambah.Visible := True; btnUbah.Visible := True; fieldAwal(False); showAwal; end;
xxiii. Pengisian data overload
Modul ini berguna untuk mengolah data overload dosen. User diminta
memasukkan bulan dan tahun pembayaran honor overload, NPP dosen, dan jumlah
JP ( jam pertemuan ). Sesudah user memasukkan NPP dan jumlah JP, sistem akan
131
menampilkan besar honor overload yang akan diperoleh. Berikut adalah cuplikan
program nya :
if key = #13 then begin trf := StrToFloat(edHonor.Text); kali := StrToFloat(edAkumulasi.Text); tot := kali*trf; edTotal.Text := FloatToStr(tot); cek := isAdaRec; if cek = True then begin queUpdate.SQL.Clear; queUpdate.SQL.Add('insert into dosen_overload values ("'+cbDosen.KeyValue+'","'+bln+'","'+cbTahun.Text+'","'+edAkumulasi.Text+'","'+cbStatus.Text+'")'); queUpdate.ExecSQL; cbDosen.SetFocus; end else begin MessageDlg('Data ini sudah ada',mtWarning,[mbOk],0); edAkumulasi.SetFocus; end; if cbDosen.KeyValue <> '' then begin xStr := 'select Tarif from honor_overload where NPP = "'+cbDosen.KeyValue+'"'; queUpdate.SQL.Clear; queUpdate.SQL.Add(xStr); queUpdate.Open; if queUpdate.RecordCount <> 0 then tarif := queUpdate.FieldByName('Tarif').AsString; if queUpdate.RecordCount = 0 then tarif := '0';
xxiv. Honorarium dosen tidak tetap
Modul ini berguna untuk mengolah data honorarium dosen. Pada saat
pengisian data, user diminta memasukkan bulan,tahun, dan program studi pengaju.
Sistem akan menampilkan data honorarium dosen yang sudah ada di database sesuai
dengan program studi yang dipilih. Untuk menambah data, user diminta memasukkan
NPP, jumlah JP, dan jumlah hadir. Sesudah user memasukkan NPP, sistem akan
132
memasukkan besar honor mengajar per JP untuk dosen tersebut. Setelah user
memasukkan jumlah JP dan jumlah hadir, sistem akan menampilkan jumlah total
honor yang diterima oleh dosen yang bersangkutan. Setelah pengisian selesai, sistem
akan menyimpan data ke database. Berikut adalah cuplikan program nya :
if cbDosen.KeyValue <> '' then begin honor := 0; xStr := 'select Kd_gol from personalia.golongan_peg where NPP = "'+cbDosen.KeyValue+'" AND '+ 'Tmt_gol = (select max(Tmt_gol) from personalia.golongan_peg where NPP = "'+cbDosen.KeyValue+'" '+ 'AND Tmt_gol <= "'+tanggal+'")'; que3.SQL.Clear; que3.SQL.Add(xStr); que3.Open; if que3.RecordCount <> 0 then begin gol := que3.Fields[0].AsString; end else gol := '9'; xStr := 'select jenjang from personalia.pendidikan where NPP = "'+cbDosen.KeyValue+'" AND '+ 'Tgl_ijasah = (select max(Tgl_ijasah) from personalia.pendidikan where NPP = "'+cbDosen.KeyValue+'" '+ 'AND Tgl_ijasah <= "'+tanggal+'")'; que3.SQL.Clear; que3.SQL.Add(xStr); que3.Open; if que3.RecordCount <> 0 then begin jen := que3.Fields[0].AsString; end; xStr := 'select Tarif from personalia.tarifoverload where Kd_golongan = "'+gol+'" AND '+ 'Kd_pendidikan = "'+jen+'" AND tglBerlaku = (select max(tglBerlaku) from '+ 'personalia.tarifoverload where Kd_golongan = "'+gol+'" AND Kd_pendidikan = "'+jen+'" '+ 'AND tglBerlaku <= "'+tanggal+'")'; que3.SQL.Clear; que3.SQL.Add(xStr); que3.Open; if que3.RecordCount <> 0 then begin honor := que3.Fields[0].AsFloat; end; edHonor.Text := FloatToStr(honor); end;
133
procedure TfrmHonorarium.edJmJpExit(Sender: TObject); if edJmJp.Text <> '' then begin jml := StrToFloat(edJmJp.Text); honor := StrToFloat(edHonor.Text); tot := jml * honor; edHonorAjar.Text := FloatToStr(tot); end; end; procedure TfrmHonorarium.edJmHadirKeyPress(Sender: TObject; var Key: Char); if key = #13 then begin tgl := '28/'+bulan+'/'+cbTahun.Text+''; tarif := getTunjanganTransport(tgl); jml := StrTofloat(edJmHadir.Text); tot := jml * tarif; edHonorTrans.Text := FloatToStr(tot); tot1 := StrTofloat(edHonorAjar.Text); totSemua := tot + tot1; edTotal.Text := FloatToStr(totSemua); persen := getPersenPajak; pajak := persen/100 * totSemua; edPajak.Text := FloatToStr(pajak); terima := totSemua - pajak; edTerima.Text := FloatToStr(terima); cek := cekIsAdaRec(cbDosen.KeyValue); if cek = 'True' then begin status := False; row := 1; jumRec := gridMasukan.RowCount; while row <= jumRec - 1 do begin if gridMasukan.Cells[1,row] = cbDosen.KeyValue then begin gridMasukan.Cells[1,row] := cbDosen.KeyValue; gridMasukan.Cells[2,row] := edJmJp.Text; gridMasukan.Cells[3,row] := edJmHadir.Text; gridMasukan.Cells[4,row] := edTotal.Text; gridMasukan.Cells[5,row] := edPajak.text; gridMasukan.Cells[6,row] := edTerima.Text; gridMasukan.Cells[7,row] := kode; status := true; end; row := row + 1; end; if status = False then begin gridMasukan.Cells[0,inRow] := IntToStr(inRow);
134
gridMasukan.Cells[1,inRow] := cbDosen.KeyValue; gridMasukan.Cells[2,inRow] := edJmJp.Text; gridMasukan.Cells[3,inRow] := edJmHadir.Text; gridMasukan.Cells[4,inRow] := edTotal.Text; gridMasukan.Cells[5,inRow] := edPajak.text; gridMasukan.Cells[6,inRow] := edTerima.Text; gridMasukan.Cells[7,inRow] := ''; inRow := inRow + 1; gridMasukan.AddRow; end; end; if cek <> 'True' then begin row := 1; jumRec := gridMasukan.RowCount; while row <= jumRec - 1 do begin //if (gridMasukan.Cells[7,row] = kode) AND (gridMasukan.Cells[7,row] <> '') then if gridMasukan.Cells[1,row] = cbDosen.KeyValue then begin gridMasukan.Cells[1,row] := cbDosen.KeyValue; gridMasukan.Cells[2,row] := edJmJp.Text; gridMasukan.Cells[3,row] := edJmHadir.Text; gridMasukan.Cells[4,row] := edTotal.Text; gridMasukan.Cells[5,row] := edPajak.text; gridMasukan.Cells[6,row] := edTerima.Text; gridMasukan.Cells[7,row] := kode; status := False; end; row := row + 1; end; end; // cbDosen.SetFocus; end; //gridMasukan.RemoveRows(row,1); end; procedure TfrmHonorarium.btnSimpanClick(Sender: TObject); xString := 'select current_date'; que2.SQL.Clear; que2.SQL.Add(xString); que2.Open; if que2.RecordCount <> 0 then begin tgl := que2.Fields[0].AsString; end; if newRec = True then begin row := 1; jumRec := gridMasukan.RowCount; { cek := cekIsAdaRec; if cek = 'True' then
135
begin kode := getKode; xString := 'insert into personalia.honorarium'+cbTahun.Text+''+bulan+' values '+ '("'+kode+'","'+cbDosen.KeyValue+'","'+cbProdi.KeyValue+'",'+ '"'+edJmJp.Text+'","'+edJmHadir.Text+'","'+edTotal.Text+'",'+ '"'+edPajak.Text+'","'+edTerima.Text+'","'+ubahtgl(tgl)+'")'; que2.SQL.Clear; que2.SQL.Add(xString); que2.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); setTampilanAwal; setField(False); } while row <= jumRec -1 do begin if gridMasukan.Cells[2,row] <> '' then begin if gridMasukan.Cells[7,row] <> '' then begin xString := 'update personalia.honorarium'+cbTahun.Text+''+bulan+' set jmJp = "'+gridMasukan.Cells[2,row]+'",'+ 'jmHadir = "'+gridMasukan.Cells[3,row]+'",Total = "'+gridMasukan.Cells[4,row]+'",Pajak = "'+gridMasukan.Cells[5,row]+'",'+ 'Terima = "'+gridMasukan.Cells[6,row]+'" where NPP = "'+gridMasukan.Cells[1,row]+'" AND kdProdi = "'+cbProdi.KeyValue+'"'; end else begin kode := getKode; cek2 := cekIsAdaRec(gridMasukan.Cells[1,row]); if cek2 = 'True' then begin xString := 'insert into personalia.honorarium'+cbTahun.Text+''+bulan+' values '+ '("'+kode+'","'+gridMasukan.Cells[1,row]+'","'+cbProdi.KeyValue+'",'+ '"'+gridMasukan.Cells[2,row]+'","'+gridMasukan.Cells[3,row]+'","'+gridMasukan.Cells[4,row]+'",'+ '"'+gridMasukan.Cells[5,row]+'","'+gridMasukan.Cells[6,row]+'","'+ubahtgl(tgl)+'")'; end; if cek2 <> 'True' then begin xString := 'update personalia.honorarium'+cbTahun.Text+''+bulan+' set jmJp = "'+gridMasukan.Cells[2,row]+'",'+ 'jmHadir = "'+gridMasukan.Cells[3,row]+'",Total = "'+gridMasukan.Cells[4,row]+'",Pajak = "'+gridMasukan.Cells[5,row]+'",'+ 'Terima = "'+gridMasukan.Cells[6,row]+'" where NPP = "'+gridMasukan.Cells[1,row]+'" AND kdProdi = "'+cbProdi.KeyValue+'"'; end; end; // ShowMessage(cek2); // ShowMessage(xString); que2.SQL.Clear; que2.SQL.Add(xString);
136
que2.ExecSQL; end; row := row + 1; end; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); //setTampilanAwal; //setField(False); statSimpan := True; // end else // MessageDlg('Data sudah ada',mtWarning,[mbOk],0); end; if newRec = False then begin xString := 'update personalia.honorarium'+cbTahun.Text+''+bulan+' set jmJp = "'+edJmJp.Text+'",'+ 'jmHadir = "'+edJmHadir.Text+'",Total = "'+edTotal.Text+'",Pajak = "'+edPajak.Text+'",'+ 'Terima = "'+edTerima.Text+'" where NPP = "'+cbDosen.KeyValue+'" AND kdProdi = "'+cbProdi.KeyValue+'"'; que2.SQL.Clear; que2.SQL.Add(xString); que2.ExecSQL; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); setTampilanAwal; setField(False);
xxv. Lihat Gaji Tanggal 1
Modul ini berguna untuk membuat atau melihat kembali slip gaji untuk
tanggal 1. User akan memasukkan bulan dan tahun slip gaji. Sistem akan mengecek
apakah gaji untuk bulan dan tahun yang dipilih sudah ada atau belum ada. Jika sudah
ada, sistem akan mengambil dari data yang sudah ada di database kemudian sistem
akan menampilkannya pada user. Jika belum ada, maka sistem akan melakukan
perhitungan gaji. Sistem akan mengambil semua komponen dari daftar penerimaan
tunjangan dan daftar pembayaran iuran yang memiliki group bayar tanggal 1 untuk
pegawai yang bersangkutan. Sistem kemudian mengambil data overload dosen,
komponen gaji lain – lain dan cicilan pinjaman.
137
Berikut adalah cuplikan program nya:
if cbJenis.Text = 'Semua Dosen' then begin cbDosen.Enabled := False; labDosen.Enabled := False; cek := cekTabel; if cek = True then setGaji else lihatGajiLalu; end; if cbJenis.Text = 'Satu Dosen' then begin cbDosen.Enabled := True; labDosen.Enabled := True; end; end; xString := 'select distinct NPP from daftar_tunjangan where groupBayar = "01"'; que2.SQL.Clear; que2.SQL.Add(xString); que2.Open; if que2.RecordCount <> 0 then begin max := que2.RecordCount; end; //if cbJenis.Text = 'Semua Dosen' then // begin xStr := 'select D.*,P.nama_peg,T.NamaTunjangan from personalia.daftar_tunjangan D left join '+ 'personalia.pegawai P on D.NPP = P.NPP left join personalia.tunjangan_gaji T on '+ 'D.KodeTunjangan = T.KodeTunjangan where D.groupBayar = "01" order by D.NPP'; // end else { begin xStr := 'select D.*,P.nama_peg,T.NamaTunjangan from personalia.daftar_tunjangan D left join '+ 'personalia.pegawai P on D.NPP = P.NPP left join personalia.tunjangan_gaji T on '+ 'D.KodeTunjangan = T.KodeTunjangan where D.groupBayar = "01" AND D.NPP = "'+cbDosen.KeyValue+'" order by D.NPP'; end; } que1.SQL.Clear; que1.SQL.Add(xStr); que1.Open; if que1.RecordCount <> 0 then begin pb1.Max := max; while not que1.Eof do begin // pb1.Position := index; if (que1.Fields[0].AsString <> npp) OR (que1.Eof) then
138
begin if (index > 1) OR (que1.Eof) then begin terima := 0; tetap := 0; tunjYayasan := 0; cicilan := 0; row := getTunjanganYayasan(index,npp); index := row; pph := getPajak(npp); gridGaji.Cells[4,index] := 'Tunjangan Pph'; gridGaji.Cells[5,index] := IntToStr(pph); gridGaji.AddRow; index := index + 1; row := cariHonorLain(index,npp); index := row; row := getOverload(index,npp); index := row; row := cariPotongan(index,npp); index := row; row := cariPotonganLain(index,npp); index := row; row := getCicilanDosen(index,npp); index := row; tetap := hitungTotalTetap(npp); updateCicilanDosen(npp); //ShowMessage(FloatToStr(gaji)); // ShowMessage(FloatToStr(honor_lain)); terima := (gaji + tetap + tunjYayasan + honor_lain + over + tunjAnak + tunjPasangan) - (potongan_lain + Iuranyadapen + pajakOver + cicilan); gridGaji.Cells[1,index] := 'Total Diterima'; gridGaji.CellProperties[1,index].FontStyle := [fsBold]; gridGaji.Cells[5,index] := FloatToStr(terima); index := index + 1; gridGaji.AddRow; tunjAnak := 0; tunjPasangan := 0; end; gridGaji.Cells[0,index] := IntToStr(no); gaji := getGajiPokok(que1.Fields[0].AsString); gridGaji.Cells[1,index] := que1.Fields[0].AsString; gridGaji.Cells[2,index] := que1.FieldByName('nama_peg').AsString; gridGaji.Cells[3,index] := 'Tunjangan'; gridGaji.CellProperties[3,index].FontStyle := [fsBold]; gridGaji.Cells[4,index] := 'Gaji Pokok'; gridGaji.Cells[5,index] := FloatToStr(gaji); gridGaji.AddRow; index := index + 1; gridGaji.Cells[4,index] := que1.FieldByName('NamaTunjangan').AsString; if que1.FieldByName('NamaTunjangan').AsString = 'Anak' then begin
139
besar := que1.Fields[2].AsFloat; tunjAnak := getTunjanganAnak(que1.Fields[0].AsString,'1',besar); gridGaji.Cells[5,index] := FloatToStr(tunjAnak); end else if que1.FieldByName('NamaTunjangan').AsString = 'Istri' then begin besar := que1.Fields[2].AsFloat; tunjPasangan := getTunjanganAnak(que1.Fields[0].AsString,'5',besar); gridGaji.Cells[5,index] := FloatToStr(tunjPasangan); end else if que1.FieldByName('NamaTunjangan').AsString = 'Suami' then begin besar := que1.Fields[2].AsFloat; tunjPasangan := getTunjanganAnak(que1.Fields[0].AsString,'4',besar); gridGaji.Cells[5,index] := FloatToStr(tunjPasangan); end else gridGaji.Cells[5,index] := que1.Fields[2].AsString; no := no + 1; pb1.Position := no; end else begin gridGaji.Cells[4,index] := que1.FieldByName('NamaTunjangan').AsString; if que1.FieldByName('NamaTunjangan').AsString = 'Anak' then begin besar := que1.Fields[2].AsFloat; tunjAnak := getTunjanganAnak(que1.Fields[0].AsString,'1',besar); gridGaji.Cells[5,index] := FloatToStr(tunjAnak); end else if que1.FieldByName('NamaTunjangan').AsString = 'Istri' then begin besar := que1.Fields[2].AsFloat; tunjPasangan := getTunjanganAnak(que1.Fields[0].AsString,'5',besar); gridGaji.Cells[5,index] := FloatToStr(tunjPasangan); end else if que1.FieldByName('NamaTunjangan').AsString = 'Suami' then begin besar := que1.Fields[2].AsFloat; tunjPasangan := getTunjanganAnak(que1.Fields[0].AsString,'4',besar); gridGaji.Cells[5,index] := FloatToStr(tunjPasangan); end else gridGaji.Cells[5,index] := que1.Fields[2].AsString; end; index := index + 1; npp := que1.Fields[0].AsString; que1.Next; gridGaji.AddRow; end; terima := 0; tetap := 0; tunjYayasan := 0; row := getTunjanganYayasan(index,npp);
140
index := row; pph := getPajak(npp); gridGaji.Cells[4,index] := 'Tunjangan Pph'; gridGaji.Cells[5,index] := IntToStr(pph); gridGaji.AddRow; index := index + 1; row := cariHonorLain(index,npp); index := row; row := getOverload(index,npp); index := row; row := cariPotongan(index,npp); index := row; row := cariPotonganLain(index,npp); index := row; tetap := hitungTotalTetap(npp); //ShowMessage(FloatToStr(gaji)); // ShowMessage(FloatToStr(honor_lain)); terima := (gaji + tetap + tunjYayasan + honor_lain + over + tunjAnak + tunjPasangan) - (potongan_lain + Iuranyadapen + pajakOver); gridGaji.Cells[1,index] := 'Total Diterima'; gridGaji.CellProperties[1,index].FontStyle := [fsBold]; gridGaji.Cells[5,index] := FloatToStr(terima); index := index + 1; gridGaji.AddRow; tunjAnak := 0; tunjPasangan := 0; procedure TfrmRekap1.lihatGajiLalu(); if cbJenis.Text = 'Semua Dosen' then xStr := 'select * from personalia.daftar_gaji'+cbTahun.Text+''+bulan+'' else xStr := 'select * from personalia.daftar_gaji'+cbTahun.Text+''+bulan+' where '+ 'NPP = "'+cbDosen.KeyValue+'"'; que1.SQL.Clear; que1.SQL.Add(xStr); que1.Open; if que1.RecordCount <> 0 then begin while not que1.Eof do begin if npp <> que1.Fields[2].AsString then begin gridGaji.Cells[0,row] := que1.Fields[0].AsString; gridGaji.Cells[1,row] := que1.Fields[1].AsString; gridGaji.Cells[2,row] := que1.Fields[2].AsString; gridGaji.Cells[3,row] := que1.Fields[3].AsString; gridGaji.Cells[4,row] := que1.Fields[4].AsString; gridGaji.Cells[5,row] := que1.Fields[5].AsString; end else if npp = que1.Fields[2].AsString then begin
141
gridGaji.Cells[0,row] := que1.Fields[0].AsString; gridGaji.Cells[1,row] := que1.Fields[1].AsString; gridGaji.Cells[2,row] := ''; gridGaji.Cells[3,row] := que1.Fields[3].AsString; gridGaji.Cells[4,row] := que1.Fields[4].AsString; gridGaji.Cells[5,row] := que1.Fields[5].AsString; end; npp := que1.Fields[2].AsString; row := row + 1; gridGaji.AddRow; que1.Next; end; end; end;
Pada modul ini sistem juga melakukan perhitungan pajak bulanan pegawai.
Sistem akan melakukan perhitungan pajak sesuai dengan prosedur pajak :
a) Sistem mengumpulkan daftar komponen penggajian yang termasuk dalam
penghasilan kotor menggunakan view :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`penghasilan_kotor`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `penghasilan_kotor` AS select `daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'4') union select `daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'5') union select `daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'1') union select `daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'2') union select `daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'3') union select `daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'6') union select `daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'7') union select
142
`daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'8') union select `daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'9') union select `daftar_tunjangan`.`NPP` AS `NPP`,`daftar_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`daftar_tunjangan`.`Jumlah` AS `Jumlah` from `daftar_tunjangan` where (`daftar_tunjangan`.`KodeTunjangan` = _latin1'10') order by `NPP`$$
b) Sistem akan menghitung penghasilan kotor menggunakan view : DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`jml_penghasilan_kotor`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `jml_penghasilan_kotor` AS select `p`.`NPP` AS `NPP`,(sum(`p`.`Jumlah`) + `d`.`gaji`) AS `Total` from (`penghasilan_kotor` `P` left join `dua` `D` on((`p`.`NPP` = `d`.`NPP`))) group by `p`.`NPP`$$ DELIMITER ;$$
c) Sistem akan menghitung jumlah penghasilan bersih menggunakan view :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`penghasilan_netto`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `penghasilan_netto` AS select `j`.`NPP` AS `NPP`,((`j`.`Total` - (0.05 * `j`.`Total`)) - `di`.`jml_iuran`) AS `jml` from (`jml_penghasilan_kotor` `J` join `daftar_iuran` `DI`) where ((`j`.`NPP` = `di`.`NPP`) and (`di`.`KodeIuran` = _latin1'P.4'))$$ DELIMITER ;$$
d) Sistem kemudian menghitung jumlah PTKP ( pendapatan tidak kena pajak )
dengan menggunakan view :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`ptkp_tanggungan`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `ptkp_tanggungan` AS select `b`.`NPP` AS `NPP`,sum((`pt`.`besar_PTKP` * `b`.`banyak`)) AS `ptkp_Tanggungan` from (`banyak_anak` `B` join `ptkp` `PT`) where (`b`.`Hubungan` = `pt`.`Hubungan`) group by `b`.`NPP`$$
143
DELIMITER ;$$ DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`besar_ptkp`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `besar_ptkp` AS select `pt`.`NPP` AS `NPP`,(`pt`.`ptkp_Tanggungan` + `pk`.`besar_PTKP`) AS `jml` from (`ptkp_tanggungan` `PT` join `ptkp` `PK`) where (`pk`.`Hubungan` like _latin1'%Diri sendiri%')$$ DELIMITER ;$$
e) Sistem menghitung besar pph per bulan dengan view : DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`jml_pph`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `jml_pph` AS select sql_no_cache `n`.`NPP` AS `NPP`,(((`n`.`jml` * 12) - `p`.`jml`) / 12) AS `pph` from (`penghasilan_netto` `N` left join `besar_ptkp` `P` on((`n`.`NPP` = `p`.`NPP`)))$$ DELIMITER ;$$
xxvi. Lihat Gaji Tanggal 15
Modul ini berguna untuk membuat atau melihat kembali slip gaji tanggal 15.
User akan memasukkan bulan dan tahun slip gaji. Sistem akan mengecek apakah gaji
untuk bulan dan tahun yang dipilih sudah ada atau belum ada. Jika sudah ada, sistem
akan mengambil dari data yang sudah ada di database kemudian sistem akan
menampilkannya pada user. Jika belum ada, maka sistem akan melakukan
perhitungan gaji. Sistem akan mengambil semua komponen dari daftar penerimaan
tunjangan dan daftar pembayaran iuran yang memiliki group bayar tanggal 15 untuk
pegawai yang bersangkutan. Kemudian sistem akan mengambil data honorarium, data
vakasi, dan komponen lain – lain. Berikut adalah cuplikan program nya :
if cbPilih.Text = 'Satu Dosen' then
144
begin // cbDosen.Visible := True; // cbPilih.Visible := false; cbDosen.Enabled := True; Label4.Enabled := True; //setGajiPribadi; end else begin cbDosen.Enabled := False; Label4.Enabled := False; if cek = True then setGaji else lihatGajiDulu; end; end; xStr := 'select D.*,P.nama_peg,T.NamaTunjangan from personalia.daftar_tunjangan D left join '+ 'personalia.pegawai P on D.NPP = P.NPP left join personalia.tunjangan_gaji T on '+ 'D.KodeTunjangan = T.KodeTunjangan where D.groupBayar = "15"'; que1.SQL.Clear; que1.SQL.Add(xStr); que1.Open; if que1.RecordCount <> 0 then begin pb1.Max := que1.RecordCount; while not que1.Eof do begin //if index > 1 then // npp := gridPeg.Cells[1,index - 1]; //npp := que1.Fields[0].AsString; pb1.Position := no; if (que1.Fields[0].AsString <> npp) OR (que1.Eof) then begin if index > 1 then begin jmlVakasi := 0; honor_lain := 0; potongan_lain := 0; pajakVakasi := 0; tetap := 0; terima := 0; //ShowMessage(IntToStr(row)); row := cariVakasi(index,npp); index := row; row := getHonorarium(npp,index); index := row; row := cariHonorLain(index,npp); index := row; row := cariPotongan(index,npp);
145
index := row; row := cariPotonganLain(index,npp); index := row; row := getPajakVakasi(index,npp); index := row; row := getPajakHonorarium(npp,index); index := row; tetap := hitungTotalTetap(npp); terima := (tetap + jmlVakasi + honor_lain + honor) - ((-potongan_lain) + pajakVakasi + pajak_honor); gridPeg.AddRow; gridPeg.Cells[1,index] := 'Total Diterima'; gridPeg.Cells[5,index] := FloatToStr(terima); index := index + 1; end; gridPeg.AddRow; gridPeg.Cells[0,index] := IntToStr(no); gridPeg.Cells[1,index] := que1.Fields[0].AsString; gridPeg.Cells[2,index] := que1.Fields[5].AsString; gridPeg.Cells[3,index] := 'Tunjangan'; gridPeg.CellProperties[3,index].FontStyle := [fsBold]; gridPeg.Cells[4,index] := que1.Fields[6].AsString; gridPeg.Cells[5,index] := que1.Fields[2].AsString; no := no + 1; end else begin gridPeg.AddRow; gridPeg.Cells[4,index] := que1.Fields[5].AsString; gridPeg.Cells[5,index] := que1.Fields[2].AsString; end; npp := que1.Fields[0].AsString; que1.Next; index := index + 1; end; // ShowMessage(IntToStr(index)); jmlVakasi := 0; honor_lain := 0; potongan_lain := 0; pajakVakasi := 0; tetap := 0; terima := 0; row := cariVakasi(index,npp); index := row; //ShowMessage(IntToStr(index)); row := getHonorarium(npp,index); index := row; // ShowMessage(IntToStr(index)); row := cariHonorLain(index,npp); index := row; row := cariPotongan(index,npp); index := row;
146
row := cariPotonganLain(index,npp); index := row; row := getPajakVakasi(index,npp); index := row; // ShowMessage(IntToStr(index)); row := getPajakHonorarium(npp,index); index := row; tetap := hitungTotalTetap(npp); terima := (tetap + jmlVakasi + honor_lain + honor) - ((-potongan_lain) + pajakVakasi + pajak_honor); // ShowMessage(npp); // ShowMessage(FloatToStr(terima)); // ShowMessage(IntToStr(index)); gridPeg.AddRow; gridPeg.Cells[1,index] := 'Total Diterima'; gridPeg.Cells[5,index] := FloatToStr(terima); index := index + 1; end; //cekRow; end; procedure TfrmGaji15.lihatGajiDulu(); xStr := 'select * from personalia.daftar_gaji15'+cbTahun.Text+''+bulan+''; que1.SQL.Clear; que1.SQL.Add(xStr); que1.Open; if que1.RecordCount <> 0 then begin while not que1.Eof do begin if nama <> que1.Fields[2].AsString then begin gridPeg.Cells[0,row] := que1.Fields[0].AsString; gridPeg.Cells[1,row] := que1.Fields[1].AsString; gridPeg.Cells[2,row] := que1.Fields[2].AsString; gridPeg.Cells[3,row] := que1.Fields[3].AsString; gridPeg.Cells[4,row] := que1.Fields[4].AsString; gridPeg.Cells[5,row] := que1.Fields[5].AsString; end else if nama = que1.Fields[2].AsString then begin gridPeg.Cells[0,row] := que1.Fields[0].AsString; gridPeg.Cells[1,row] := que1.Fields[1].AsString; gridPeg.Cells[2,row] := ''; gridPeg.Cells[3,row] := que1.Fields[3].AsString; gridPeg.Cells[4,row] := que1.Fields[4].AsString; gridPeg.Cells[5,row] := que1.Fields[5].AsString; end; nama := que1.Fields[2].AsString; row := row + 1; gridPeg.AddRow;
147
que1.Next; end; Dalam menghitung gaji tanggal 1 dan tanggal 15, sistem menggunakan view untuk
mengumpulkan dan menghitung komponen – komponen gaji. Berikut adalah
algoritma view yang digunakan :
DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`daftar_tunjangan`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `daftar_tunjangan` AS select `jml_tunjangan`.`NPP` AS `NPP`,`jml_tunjangan`.`KodeTunjangan` AS `KodeTunjangan`,`jml_tunjangan`.`Jumlah` AS `Jumlah`,`jml_tunjangan`.`groupBayar` AS `groupBayar`,`jml_tunjangan`.`sifat` AS `sifat`,`jml_tunjangan`.`stat_gaji_13` AS `stat_gaji_13` from `jml_tunjangan` union select `jml_tunj_nominal`.`NPP` AS `NPP`,`jml_tunj_nominal`.`KodeTunjangan` AS `KodeTunjangan`,`jml_tunj_nominal`.`Jumlah` AS `Jumlah`,`jml_tunj_nominal`.`groupBayar` AS `groupBayar`,`jml_tunj_nominal`.`sifat` AS `sifat`,`jml_tunj_nominal`.`stat_gaji_13` AS `stat_gaji_13` from `jml_tunj_nominal`$$ DELIMITER ;$$ DELIMITER $$; DROP VIEW IF EXISTS `personalia`.`daftar_iuran`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `daftar_iuran` AS select `jml_iuran`.`NPP` AS `NPP`,`jml_iuran`.`KodeIuran` AS `KodeIuran`,`jml_iuran`.`jml_iuran` AS `jml_iuran`,`jml_iuran`.`groupBayar` AS `groupBayar`,`jml_iuran`.`stat_gaji_13` AS `stat_gaji_13` from `jml_iuran` union select `b`.`NPP` AS `NPP`,`b`.`KodeIuran` AS `KodeIuran`,`b`.`besar` AS `besar`,`i`.`groupBayar` AS `groupBayar`,`i`.`stat_gaji_13` AS `stat_gaji_13` from (`bayar_iuran` `B` left join `iuran_gaji` `I` on((`b`.`KodeIuran` = `i`.`KodeIuran`))) where (`i`.`jenis_gaji` = _latin1'Nominal')$$ DELIMITER ;$$
148
xxvii. Set Gaji 13
Sistem mengambil semua komponen gaji, baik tunjangan maupun iuran yang
termasuk dalam perhitungan gaji ke – 13. Sistem akan menghitung total gaji ke – 13
untuk masing – masing dosen. Sistem kemudian akan menyimpan data gaji ke – 13
pada tabel komponen lain – lain. Berikut adalah cuplikan program nya :
procedure TForm1.btnSetClick(Sender: TObject); if code <> 'Fail' then begin xStr := 'select distinct NPP from personalia.terima_tunjangan'; que2.SQL.Clear; que2.SQL.Add(xStr); que2.Open; if que2.RecordCount <> 0 then begin pb.Max := que2.RecordCount; while not que2.Eof do begin pb.Position := no; totTunjangan := 0; totIuran := 0; selisih := 0; npp := que2.FieldByName('NPP').AsString; totTunjangan := hitungTunjangan(npp); totIuran := hitungPotongan(npp); selisih := totTunjangan - totIuran; cek := cekIsAdaRec(npp,code); if selisih <> 0 then begin if cek = True then begin xString := 'insert into personalia.lain_lain'+cbTahun.Text+''+bulan+' values '+ '("'+npp+'","'+code+'","'+FloatToStr(selisih)+'","'+cbGroup.Text+'","Gaji 13")'; end; if cek = False then begin xString := 'update personalia.lain_lain'+cbTahun.Text+''+bulan+' set '+ 'BesarTunjangan = "'+FloatToStr(selisih)+'",groupBayar = "'+cbGroup.Text+'" '+ 'where NPP = "'+npp+'" AND KodeTunjangan = "'+code+'"'; end; que3.SQL.Clear; que3.SQL.Add(xString); que3.ExecSQL; end;
149
no := no + 1; que2.Next; end; MessageDlg('Data sudah tersimpan',mtInformation,[mbOK],0); end; end else MessageDlg('Silakan isi jenis honor lain-lain untuk Gaji 13',mtConfirmation,[mbOk],0); end; function TForm1.hitungTunjangan(npp : String) : Double; var xStr,xString,kode : String; jml,nilai,total : Double; byk : Integer; begin total := 0; xStr := 'select * from personalia.daftar_tunjangan where NPP = "'+npp+'" AND '+ 'stat_gaji_13 = "1"'; que1.SQL.Clear; que1.SQL.Add(xStr); que1.Open; if que1.RecordCount <> 0 then begin while not que1.Eof do begin jml := 0; kode := que1.FieldByName('KodeTunjangan').AsString; jml := que1.FieldByName('Jumlah').AsFloat; if (kode = '1') OR (kode = '2') OR (kode = '3') OR (kode = '4') OR (kode = '5') then begin byk := getBanyak(npp,kode); jml := jml * byk; end; total := total + jml; que1.Next; end; end; result := total; end; function TForm1.hitungPotongan(npp : String) : Double; xStr := 'select * from personalia.daftar_iuran where NPP = "'+npp+'" AND '+ 'stat_gaji_13 = "1"'; que1.SQL.Clear; que1.SQL.Add(xStr); que1.Open; if que1.RecordCount <> 0 then begin while not que1.Eof do begin jml := 0; jml := que1.FieldByname('jml_iuran').AsFloat;
150
total := total + jml; que1.Next; end; end; result := total; end;
xxviii. Modul Set THR ( Tunjangan Hari Raya )
Pertama kali, sistem akan mengumpulkan data dosen ( NPP ) beserta besar
THR nya menggunakan view :
DROP VIEW IF EXISTS `personalia`.`thr`$$ CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `thr` AS select `g`.`NPP` AS `NPP`,`g`.`gaji` AS `gaji` from (`golongan_peg` `G` left join `pegawai` `P` on((`g`.`NPP` = `p`.`NPP`))) where ((`p`.`AdmEdu` = _latin1'2') and (`g`.`Tmt_gol` = (select max(`golongan_peg`.`Tmt_gol`) AS `max(Tmt_gol)` from `golongan_peg` where (`golongan_peg`.`NPP` = `g`.`NPP`) group by `golongan_peg`.`NPP`)))$$ DELIMITER ;$$ Kemudian sistem mengambil data dari view tersebut. Data disimpan pada komponen
gaji lain – lain. Berikut adalah cuplikan program nya :
procedure TfrmSetThr.btnSetClick(Sender: TObject); kode := getKode; index := 1; if kode <> 'Fail' then begin xStr := 'select * from personalia.thr'; que1.SQL.Clear; que1.SQL.Add(xStr); que1.Open; if que1.RecordCount <> 0 then begin pb.Max := que1.RecordCount; while not que1.Eof do begin pb.Position := index; npp := que1.Fields[0].AsString; jml := que1.Fields[1].AsString; if jml = '' then jml := '0'; cek := cekIsAdaRec(npp,kode); if cek = True then
151
begin xString := 'insert into personalia.lain_lain'+cbTahun.Text+''+bulan+' values '+ '("'+npp+'","'+kode+'","'+jml+'","'+cbGroup.Text+'","")'; // ShowMessage(xString); end; if cek = False then begin xString := 'update personalia.lain_lain'+cbTahun.Text+''+bulan+' set '+ 'BesarTunjangan = "'+jml+'",groupBayar = "'+cbGroup.Text+'" where '+ 'NPP = "'+npp+'" AND KodeTunjangan = "'+kode+'"'; end; que2.SQL.Clear; que2.SQL.Add(xString); que2.ExecSQL; index := index + 1; que1.Next; end; MessageDlg('Data sudah tersimpan',mtInformation,[mbOk],0); end; end else MessageDlg('Silakan isi jenis honor lain - lain untuk THR',mtConfirmation,[mbOk],0); End;
xxxiii. Rekap Data
Sistem akan mengambil data – data pada tabel daftar_gajiyyyymm untuk
membuat laporan penghasilan dan laporan memorial. Kemudian sistem akan
menampilkan data – data tersebut dalam bentuk daftar penghasilan atau daftar
memorial. Berikut adalah cuplikan program pada menu rekap data :
stat := cekDaftarGaji; stat1 := cekDaftarGaji15; if (stat = False) AND (stat1 = False) then begin xStr := 'create view personalia.gabung_gaji as select * from personalia.daftar_gaji'+cbTahun.Text+''+bulan+' '+ 'union select * from personalia.daftar_gaji15'+cbTahun.Text+''+bulan+''; ShowMessage(xStr); que1.SQL.Clear; que1.SQL.Add(xStr); que1.ExecSQL; result := False; end; if (stat = False) AND (stat1 = True) then begin
152
xStr := 'create view personalia.gabung_gaji as select * from personalia.daftar_gaji'+cbTahun.Text+''+bulan+''; que1.SQL.Clear; que1.SQL.Add(xStr); que1.ExecSQL; result := False; end; if (stat = True) AND (stat1 = False) then begin xStr := 'create view personalia.gabung_gaji as select * from personalia.daftar_gaji15'+cbTahun.Text+''+bulan+''; que1.SQL.Clear; que1.SQL.Add(xStr); que1.ExecSQL; result := False; end; if (stat = True) AND (stat1 = True) then begin MessageDlg('Daftar gaji belum ada',mtWarning,[mbOk],0); result := True; end;
procedure TfrmRekapitulasiData.setJumlah(); begin kol := 2; row := 1; jumRec := gridRekap.RowCount; jumKol := gridRekap.ColCount; while row <= jumRec - 1 do begin kol := 2; nama := gridRekap.Cells[1,row]; while kol <= jumKol - 1 do begin komp := gridRekap.Cells[kol,0]; xStr := 'select besar from personalia.gabung_gaji where '+ 'komponen = "'+komp+'" AND nama = "'+nama+'"'; // ShowMessage(xStr); que1.SQL.Clear; que1.SQL.Add(xStr); que1.Open; jml := 0; if que1.RecordCount <> 0 then begin jml := que1.Fields[0].AsFloat; gridRekap.Cells[kol,row] := FloatToStr(jml); end else begin gridRekap.Cells[kol,row] := '0'; end;
153
4.4 Implementasi Output
i. Print out jenis tunjangan
Gambar 4.34 Print out jenis tunjangan
ii. Print out daftar besar tunjangan yayasan
Gambar 4.35 Print out daftar besar tunjangan yayasan
154
iii. Print out daftar tunjangan per dosen
Gambar 4.36 Print out daftar tunjangan per dosen
iv. Print out daftar iuran per dosen
Gambar 4.37 Print out daftar iuran per dosen
155
v. Print out daftar vakasi dosen
Gambar 4.38 Print out daftar vakasi dosen
vi. Print out daftar overload dosen
Gambar 4.39 Print out daftar overload dosen
156
vii. Print out daftar honorarium dosen
Gambar 4.40 Print out daftar honorarium dosen
viii. Print out daftar honor lain – lain dosen
Gambar 4.41 Print out daftar honor lain – lain dosen
157
ix. Print out daftar jenis pinjaman dosen
Gambar 4.42 Print out daftar jenis pinjaman dosen
x. Print out daftar pinjaman dosen
Gambar 4.43 Print out daftar pinjaman dosen
158
xi. Print out daftar honor PMB ( Penerimaan Mahasiswa Baru )
Gambar 4.44 Print out daftar honor PMB dosen
xii. Print out daftar tarif mengajar semester antara dosen
Gambar 4.45 Print out daftar tarif mengajar semester antara dosen
159
xiii. Print out daftar honor mengajar semester antara dosen
Gambar 4.46 Print out daftar honor mengajar semester antara dosen
xiv. Print out daftar honor semester antara dosen
Gambar 4.47 Print out daftar honor semester antara
160
xv. Print out daftar gaji tanggal 15
Gambar 4.48 Print out daftar gai tanggal 15
xvi. Print out daftar gaji tanggal 1
Gambar 4.49 Print out daftar gaji tanggal 1
161
xvii. Print out rekap data
Gambar 4.50 Print out rekap data
162
BAB V
HASIL DAN PEMBAHASAN SISTEM
5.1 Teknik Pengumpulan Data
Ada beberapa teknik yang dilakukan dalam mengumpulkan data, diantaranya
adalah :
a). Pembuatan kuisioner.
Pembuatan kuisioner dilakukan selama 1 hari.
b). Penyebaran kuisioner.
Penyebaran kuisioner dilakukan dalam waktu 1 minggu pada bulan Maret
dimana waktu pelaksanaan penyebaran disesuaikan dengan waktu luang dari
para responden. Penyebaran dilakukan di 1 tempat yaitu Universitas Sanata
Dharma Yogyakarta.
c). Penarikan kuisioner.
Penarikan kuisioner dilakukan saat itu juga, setelah responden selesai
menggunakan dan mencoba-coba program Sistem Informasi Penggajian
Dosen Universitas Sanata Dharma Yogyakarta dan mengisi kuisioner.
5.2 Sasaran Penyebaran Kuisioner
Ada beberapa sasaran penyebaran kuisioner, diantaranya adalah :
a). Petugas Biro Keuangan khususnya bagian penggajian
163
Petugas penggajian merupakan sasaran utama dalam penyebaran kuisioner
ini. Jumlah responden untuk petugas penggajian adalah 2 orang.
b). Mahasiswa Ilmu Komputer dan Pekerja bidang teknologi informasi
Mahasiswa ilmu komputer menjadi sasaran kedua penyebaran kuisioner
karena para mahasiswa tersebut dapat menilai sistem dari sisi teknis. Jumlah
mahasiswa ilmu komputer yang menjadi responden adalah 28 orang.
5.3 Form Kuisioner
KUISIONER
PENGGUNAAN SISTEM INFORMASI PENGGAJIAN
Keterangan :
• SS : Sangat setuju
• S : Setuju
• TS : Tidak setuju
• STS : Sangat tidak setuju
1. Sistem informasi penggajian ini secara keseluruhan mudah digunakan.
a. SS
b. S
c. TS
d. STS
2. Tampilan yang ada pada sistem informasi penggajian nyaman dilihat dan
sesuai dengan tema.
a. SS
164
b. S
c. TS
d. STS
3. Sistem informasi penggajian adalah sistem yang interaktif dengan user.
a. SS
b. S
c. TS
d. STS
4. Sistem informasi penggajian menghasilkan output sesuai yang dibutuhkan
oleh user.
a. SS
b. S
c. TS
d. STS
5. Format atau bentuk dari laporan yang dihasilkan oleh sistem informasi
penggajian sudah lengkap.
a. SS
b. S
c. TS
d. STS
6. Fasilitas – fasilitas yang ada pada sistem informasi penggajian dosen ini sudah
lengkap.
a. SS
b. S
c. TS
d. STS
165
5.4 Hasil dan Pembahasan Kuisioner
Dari 30 orang responden yang dijadikan sampel dalam pengujian sistem di
lapangan, hasilnya dapat dijelaskan sebagai berikut :
1. Sistem informasi penggajian dosen USD ini secara keseluruhan mudah
digunakan.
Tabel 5.1 Tabel hasil perhitungan pernyataan No. 1
Frekuensi Total (%)
Sangat Setuju 14 47
Setuju 15 50
Tidak Setuju 1 3
Sangat Tidak Setuju 0 0
GRAFIK PERNYATAAN NO 1
47%
50%
3% 0%Sangat Setuju
Setuju
Tidak Setuju
Sangat TidakSetuju
Gambar 5.1 Grafik Untuk Pernyataan No.1
166
Dari hasil perhitungan di atas, dapat disimpulkan bahwa pengguna sistem
infromasi penggajian tidak kesulitan menjalankan/memulai program. Para
pengguna menilai bahwa sistem sederhana dan tidak berbelit-belit, sehingga
setelah diberi sedikit penjelasan para pengguna sudah paham dan dapat
menggunakannya.
2. Tampilan yang ada pada sistem informasi penggajian dosen USD nyaman dilihat
dan sesuai dengan tema.
Tabel 5.2 Tabel hasil perhitungan pernyataan No. 2
Frekuensi Total (%)
Sangat Setuju 9 30
Setuju 18 60
Tidak Setuju 3 10
Sangat Tidak Setuju 0 0
167
GRAFIK UNTUK PERNYATAAN NO 2
30%
60%
10% 0%
Sangat Setuju
Setuju
Tidak Setuju
Sangat TidakSetuju
Gambar 5.2 Grafik Untuk PernyataanNo.2
Dari hasil perhitungan di atas, dapat disimpulkan bahwa tampilan (User
Interface) sistem informasi penggajian menarik diantaranya : perpaduan warna
cukup baik, tampilan form-form dengan warna yang cerah dan jelas, tampilan
tulisan sudah cukup jelas, serta ukuran form yang pas pada layar komputer.
3. Sistem informasi penggajian dosen USD adalah sistem yang interaktif dengan
user.
Tabel 5.3 Tabel hasil perhitungan pernyataan No. 3
Frekuensi Total (%)
Sangat Setuju 7 23
Setuju 20 67
Tidak Setuju 3 10
Sangat Tidak Setuju 0 0
168
GRAFIK UNTUK PERNYATAAN NO 3
23%
67%
10% 0%
Sangat Setuju
Setuju
Tidak Setuju
Sangat TidakSetuju
Gambar 5.3 Grafik Untuk Pernyataan No.3
Dari hasil perhitungan di atas, dapat disimpulkan bahwa pengguna sistem
informasi penggajian dosen USD menilai sistem ini interaktif dengan user. Hal
ini terlihat dengan adanya pesan – pesan dan berbagai konfirmasi yang
disampaikan kepada user.
4. Sistem informasi penggajian dosen USD menghasilkan output sesuai yang
dibutuhkan oleh user.
Tabel 5.4 Tabel hasil perhitungan pernyataan No. 4
Frekuensi Total (%)
Sangat Setuju 15 50
Setuju 13 43
Tidak Setuju 2 7
Sangat Tidak Setuju 0 0
169
GRAFIK PERNYATAAN NO 4
50%43%
7% 0%
Sangat Setuju
Setuju
Tidak Setuju
Sangat TidakSetuju
Gambar 5.4 Grafik Untuk Pernyataan No.4
Dari hasil perhitungan di atas, dapat disimpulkan bahwa pengguna sistem
informasi penggajian merasa terbantu dengan pilihan menu yang sesuai dengan
kebutuhan. Hal yang paling membantu adalah menu untuk membuat slip gaji
per bulan.
5. Format atau bentuk dari laporan yang dihasilkan oleh sistem informasi penggajian
dosen USD sudah lengkap.
Tabel 5.5 Tabel hasil perhitungan pernyataan No. 5
Frekuensi Total (%)
Sangat Setuju 6 20
Setuju 19 63
Tidak Setuju 5 17
Sangat Tidak Setuju 0 0
170
GRAFIK UNTUK PERNYATAAN NO 5
20%
63%
17%0%
Sangat Setuju
Setuju
Tidak Setuju
Sangat TidakSetuju
Gambar 5.5 Grafik Untuk Pernyataan No.5
Dari hasil perhitungan di atas, dapat disimpulkan bahwa pengguna sistem
informasi penggajian menilai bahwa sistem ini telah menghasilkan laporan
sesuai dengan kebutuhan.
6. Fasilitas – fasilitas yang ada pada sistem informasi penggajian dosen USD ini
sudah lengkap.
Tabel 5.6 Tabel hasil perhitungan pernyataan No. 6
Frekuensi Total (%)
Sangat Setuju 10 20
Setuju 17 63
Tidak Setuju 3 17
Sangat Tidak Setuju 0 0
171
GRAFIK UNTUK PERNYATAAN NO 6
33%
57%
10% 0%
Sangat Setuju
Setuju
Tidak Setuju
Sangat TidakSetuju
Gambar 5.6 Grafik Untuk Pernyataan No.6
Dari hasil perhitungan di atas, dapat disimpulkan bahwa fasilitas – fasilitas yang
ada pada sistem informasi penggajian dosen USD sudah lengkap dan sudah
sesuai dengan kebutuhan.
172
BAB VI
PENUTUP
6.1 Kesimpulan
Berdasarkan hasil penyebaran kuisioner maka didapat beberapa kesimpulan dari
penulisan tugas akhir Sistem Informasi Penggajian Dosen USD ini yaitu :
1. Informasi penggajian dosen yang ada dalam sistem ini sudah memenuhi
kebutuhan para penggunanya.
2. Secara fungsional, pengguna Sistem Informasi Penggajian Dosen USD
dimungkinkan dapat terbantu baik dalam pengelolaan maupun pelaporan
data-data penggajian dosen.
Berdasarkan hasil pengujian sistem maka didapat beberapa kesimpulan dari
penulisan tugas akhir Sistem Informasi Penggajian Dosen USD ini yaitu :
1. Sistem Informasi Penggajian Dosen sudah dapat menghitung gaji dosen
dengan benar
2. Sistem ini mempunyai kelemahan, yaitu penggunaan waktu yang cukup
lama dalam pembuatan daftar gaji untuk semua dosen. Sistem ini
membutuhkan waktu sekitar 35 detik untuk melakukan proses pembuatan
daftar gaji untuk satu orang dosen.
173
6.2 Saran Dan Kritik
Untuk lebih menyempurnakan Sistem Informasi Penggajian Dosen USD
Yogyakarta ini, dapat dikembangkan hal-hal seperti berikut :
1. Sistem Informasi Penggajian Dosen ini dapat diintegrasikan dengan
Sistem Informasi Akademik USD.
2. Sistem Informasi Penggajian Dosen USD ini dapat diperluas menjadi
sistem informasi penggajian karyawan USD baik dosen ( karyawan
edukatif ) maupun karyawan administratif.
174
DAFTAR PUSTAKA
Jogiyanto. (2001). Analisis dan Disain Sistem Informasi. Yogyakarta: Andi Offset. Kadir, Abdul. (2003). Dasar Aplikasi Database MySQL Delphi. Yogyakarta : Andi
Offset. Kroenke,David M. (1995). Database Processing. 5th ed. New Jersey : Prentice-Hall, Inc. Narbuka,Cholid;Achmadi Abu. (2003). Metodologi Penelitian. Jakarta : Bumi
Aksara. Pressman, Roger. (2003). Rekayasa Perangkat Lunak. Yogyakarta : Andi Offset.
175
LAMPIRAN
176
DAFTAR ITEM GAJI DOSEN
Daftar item gaji dosen adalah sebagai berikut :
1. Nomor Urut.
2. Nama : Nama dari dosen yang bersangkutan.
3. Nomor Pokok Pegawai ( NPP ) : Nomor Pokok Pegawai ini merupakan ID
pegawai sesuai Surat Keputusan / Data Kepegawain.
4. Golongan Pegawai : Merupakan pangkat kepegawaian dari dosen yang
bersangkutan.
5. Status Keluarga : Menerangkan status dari dosen yang bersangkutan, apakah
sudah berkeluarga atau belum beserta jumlah anak.
6. Gaji Pokok : Gaji pokok ini sesuai dengan Surat Keputusan.
7. Tunjangan Istri
8. Tunjangan Anak
9. Tunjangan Beras
10. Tunjangan Fungsional : Besar tunjangan fungsional ini berdasar jabatan
akademik.
11. Tunjangan PPh ( Pajak Penghasilan ) : Besarnya sesuai dengan potongan PPh
atas penghasilan tetap.
12. Potongan Gaji Negeri : Potongan ini hanya khusus untuk dosen tetap negeri
dpk.
1
13. Iuran Yadapen : Iuran ini akan ada jika dosen mengikuti Yadapen. Dosen
yang mengikuti Yadapen ini akan mendapatkan pensiun.
14. Iuran Reskes ( Restitusi Kesehatan )
15. Potongan PPh : Potongan pajak atas penghasilan tetap.
16. Potongan PPh Negeri : Potongan ini hanya khusus untuk dosen tetap negeri
dpk.
17. Tunjangan Yayasan : Besar tunjangan yayasan ini berdasarkan golongan
pegawai.
18. Honor Overload : Merupakan honor yang diberikan kepada dosen atas beban
sks berlebih.
19. Vakasi : Vakasi adalah jenis – jenis kerja dosen diluar kerja mengajar.
20. Honorarium : adalah honor mengajar untuk dosen tidak tetap.
2