BAB IV PERANCANGAN SISTEM Berdasarkan analisis pada sistem permohonan cuti yang sedang berjalan di PT. Bangun Persada Regatama, maka diusulkan suatu bentuk pengembangan sistem, dari yang sebelumnya dilakukan secara konvensional menjadi sistem yang berbasiskan jaringan intranet. 4.1 Perancangan Basis Data Perancangan basis data bertujuan untuk menjelaskan hubungan antara entitas yang ada dalam sistem informasi perizinan pegawai berbasiskan jaringan. Perancangan basis data diperlukan agar basis data menjadi kompak dan efisien dalam penyimpanan, cepat dalam proses pengaksesan, dan mudah dalam memanipulasi data. 4.1.1 Entity Relationship Diagram (ERD) Entity Relationship Diagram digunakan untuk menggambarkan hubungan antara entitas dalam sistem, sehingga akan diperoleh gambaran dari setiap fungsi yang ada pada sistem yang dirancang. Berikut gambaran Entity Relationship Diagram (ERD) 63
Gambar 4 Hubungan antar entitas 4.1.3 Spesifikasi Basi Data a. Nama file : jabatan Primary Key : kd_jabatan Struktur file : NO Nama File Type Panjang File Keterangan 1 kd_jabatan varchar 4 Kode Jabatan 2 Nm_jabatan varchar 20 Nama jabatan 3 level enum Jenis level 4 keterangan text keterangan b. Nama File : jns_cuti Primary Key : kd_jcuti Struktur File : NO Nama File Type Panjang File Keterangan 1 kd_jcuti varchar 4 Kode Jenis Cuti 2 Nama_jcuti varchar 60 Nama Jenis Cuti 3 Lama_cuti int 3 Lama cuti 4 Keterangan text keterangan c. Nama File : berita Primary Key : id_berita Struktur File : NO Nama File Type Panjang File Keterangan 64
1 Id_berita varcahr 7 Id berita 2 judul varchar 100 Judul Berita 3 berita textr Isi berita 4 Tgl_input date Tanggal input berita 5 Jam_input time Waktu input berita d. Nama File : karyawan Primary Key : nik Struktur File : NO Nama File Type Panjang File Keterangan 1 nik varcahr 7 NIK Karyawan 2 nama varchar 60 Nama karyawan 3 kd_jabatan varchar 4 Kode jabatan 4 email varchar 50 Email karywan 5 password varchar 50 Pasword karyawan 6 kelamin enum Jenis kelamin 7 Status_perkawinan enum Status perkawinan 8 pendidikan enum Pendikan karyawan 9 Alamat_tinggal varchar 100 Alamat Tinggal Karywan 10 Alamat_asal varchar 100 Alamat asal karyawan 11 Tgl_masuk date Tanggal masuk 12 Tgl_input date Tanggal input 13 Status_upah enum Status upah 14 Status_perkawinan enum Status perkawinan e. Nama File : permohonan_cuti Primary Key : kd_pcuti Struktur File : NO Nama File Type Panjang File Keterangan 65
1 Kd_pcuti varcahr 5 Kode pengajuan cuti 2 nik varchar 7 NIK karyawan 3 tahun varchar 4 tahun 4 Kd_jcuti varchar 4 Kode jenis cuti 5 Tgl_pengajuan date Tanggal pengajuan 6 Tgl_mulai date Tanggal mulai 7 Tgl_akhir date Tanggal akhir cuti 8 Lama_cuti int 4 Lama cuti 9 alasan text Alasan cuti 10 koordinasi text koordinasi 11 Status_pengajuan enum Status pengajuan f. Nama File : level Primary Key : kd_pcuti Struktur File NO Type Panjang File Keterangan 1 int 5 Level id 2 varchar 20 Nama level 4.1.4 Structure Query Language (SQL) Dalam pembuatan structure Query Language (SQL) dapat dilakukan dengan dua tahap sebagai berikut: 4.1.4.1 Pembuatan Tabel Berikut adalah sintak SQL yang yang digunakan dalam pembuatan tabel yang berkenaan dengan sistem perizinan: a. Tabel Berita CREATE TABLE `berita` ( 66
`id_berita` varchar(4) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `judul` varchar(100) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT '', `berita` text CHARACTER SET dec8 COLLATE dec8_bin NOT NULL, `tgl_input` date NOT NULL DEFAULT '0000-00-00', `jam_input` time NOT NULL DEFAULT '00:00:00', PRIMARY KEY (`id_berita`) ) b. Tabel Jabatan CREATE TABLE `jabatan` ( `kd_jabatan` varchar(4) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `nm_jabatan` varchar(100) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `level` enum('manager','karyawan','administrator') CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT 'KARYAWAN', `keterangan` text CHARACTER SET dec8 COLLATE dec8_bin NOT NULL, PRIMARY KEY (`kd_jabatan`) ) 67
c. Tabel Jenis Cuti CREATE TABLE `jns_cuti` ( `kd_jcuti` varchar(4) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT '', `nama_jcuti` varchar(60) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `lama_cuti` int(3) NOT NULL DEFAULT 0, `keterangan` text CHARACTER SET dec8 COLLATE dec8_bin NOT NULL, PRIMARY KEY (`kd_jcuti`) ) d. Tabel Karyawan CREATE TABLE `karyawan` ( `nik` varchar(7) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `nama` varchar(60) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT '', `kd_jabatan` varchar(4) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `email` varchar(100) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL, `password` varchar(100) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL, 68
`kelamin` enum('p','w') CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT 'P', `status_kawin` enum('tk','k') CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT 'TK', `pendidikan` enum('sd','smp','smu','smk','d3','s1','s2') CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT 'SD', `alamat_tinggal` varchar(200) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `alamat_asal` varchar(200) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `tgl_masuk` date NOT NULL DEFAULT '0000-00-00', `tgl_input` date NOT NULL DEFAULT '0000-00-00', `status_upah` enum('harian','mingguan','bulanan') CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT 'HARIAN', `status_karyawan` enum('aktif','tidak AKTIF','CUTI') CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT 'AKTIF', `level` int(5) NOT NULL, PRIMARY KEY (`nik`) ) e. Tabel Level CREATE TABLE `level` ( 69
`level_id` int(5) NOT NULL AUTO_INCREMENT, `level_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL, PRIMARY KEY (`level_id`) ) f. Tabel permohonan cuti CREATE TABLE `permohonan_cuti` ( `kd_pcuti` varchar(5) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `nik` varchar(7) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `tahun` varchar(4) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL `kd_jcuti` varchar(4) CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT '', `tgl_pengajuan` date NOT NULL DEFAULT '0000-00-00', `tgl_mulai` date NOT NULL DEFAULT '0000-00-00', `tgl_akhir` date NOT NULL DEFAULT '0000-00-00', `tgl_sah` date NOT NULL, `lama_cuti` int(4) NOT NULL DEFAULT 0, 70
`alasan` text CHARACTER SET dec8 COLLATE dec8_bin NOT NULL, `koordinasi` text CHARACTER SET dec8 COLLATE dec8_bin NOT NULL, `status_pengajuan` enum('belum','tidak','setuju') CHARACTER SET dec8 COLLATE dec8_bin NOT NULL DEFAULT 'BELUM', PRIMARY KEY (`kd_pcuti`) ) ALTER TABLE `permohonan_cuti` ADD CONSTRAINT `fk_permohonan_cuti_jns_cuti_1` FOREIGN KEY (`kd_jcuti`) REFERENCES `jns_cuti` (`kd_jcuti`); ALTER TABLE `karyawan` ADD CONSTRAINT `fk_karyawan_jabatan_1` FOREIGN KEY (`kd_jabatan`) REFERENCES `jabatan` (`kd_jabatan`); ALTER TABLE `jabatan` ADD CONSTRAINT `fk_jabatan_level_1` FOREIGN KEY (`level`) REFERENCES `level` (`level_id`); ALTER TABLE `permohonan_cuti` ADD CONSTRAINT `fk_permohonan_cuti_karyawan_1` FOREIGN KEY (`nik`) REFERENCES `karyawan` (`nik`); 4.1.4.2 Manipulasi Data 71
a. Jenis Cuti INSERT INTO `jns_cuti` (`kd_jcuti`, `nama_jcuti`, `lama_cuti`, `keterangan`) VALUES ('C001', 'Cuti Tahunan', 12, 'Cuti Biasa 1 tahun'), ('C002', 'Cuti Hari Raya', 10, 'Hari Raya'), ('C003', 'Cuti Melahirkan', 60, 'Cuti Khusus wanita'); UPDATE karyawan SET kd_jcuti= WHERE DELETE*FROM karyawan WHERE SELECT*FROM karyawan ORDERBY nik b. Jabatan INSERT INTO `jabatan` (`kd_jabatan`, `nm_jabatan`, `keterangan`) VALUES ('J001', 'Karyawan Biasa', 'karyawan lama'), ('J002', 'Manager Personalia', manager lama ), ('J003', 'Manajer IT', 'Manajer IT Baru'), ('J004', 'Manajer HRDs', 'HRDss'); UPDATE karyawan SET DELETE*FROM karyawan WHERE SELECT*FROM karyawan ORDERBY nik e. Karyawan INSERT INTO `karyawan` (`nik`, `nama`, `kd_jabatan`, `kelamin`, `status_kawin`, `pendidikan`, `alamat_tinggal`, `alamat_asal`, `tgl_masuk`, `tgl_input`, `status_upah`, `status_karyawan`) VALUES ('0254101', 'adi Nugroho', 'J004', 'P', 'TK', 'SD', 'Kemang', 'Jogjakarta, Lampung Timur', '0000-00-00', '2006-08-24', 'MINGGUAN', 'AKTIF'); UPDATE karyawan SET DELETE*FROM karyawan WHERE SELECT*FROM karyawan ORDERBY nik f. Permohonan Cuti 72
INSERT INTO `permohonan_cuti` (`kd_pcuti`, `nik`, `tahun`, `kd_jcuti`, `tgl_pengajuan`, `tgl_mulai`, `tgl_akhir`, `lama_cuti`, `alasan`, `koordinasi`, `status_pengajuan`) VALUES ('PC001', '0254102', '2015', 'C001', '2015-08-31', '2015-09-01', '2015-10-01', 5, 'hamil tua', 'Coba ', 'BELUM'); UPDATE karyawan SET DELETE*FROM karyawan WHERE SELECT*FROM karyawan ORDERBY nik 4.2 Perancangan Struktur Menu Aplikasi Perancangan struktur menu aplikasi perizinan cuti ini diawali dengan menu login. Di dalam aplikasi ini terdapat tiga level, admin, karyawan dan manager. Semua mempunyai menu dan sub menu yang berbeda-beda Gambar 4.1 Rancangan struktur aplikasi 1.2.1 Peranacangan Antar Muka Login Antar muka berfungsi sebagai form awal dan juga sebagai penghubung antara pengguna dengan sistem perizinan cuti yang berbasiskan jaringan dalam berinteraksi seperti 73
permohonan cuti. Dalam perancangan harus mengacu kepada teknik interakasi manusia dan komputer (IMK) agara sistem menjadi mudah bagi pengguna. Perancangan login merupakan tampilan pertama ketika aplikasi dijalankan. Tampilan ini berfungsi sebagai keamanan sistem, sehingga ketika penguna akan masuk kedalam sistem harus mengisi password dan username. Jika proses pengisian ini benar makan pengguna akan masuk ke dalam tampilan menu utama dan jika salah maka sistem akan menolaknya. Gambar 4.2 Menu login 1.2.2 Perancangan Antar Muka Menu utama Antarmuka menu utama adalah tampilan utama program, tampilan ini berbeda-beda dengan jenis level pemakai. Untuk tampilan utama level karyawan terdapat menu arsip data cuti, dan pengajuan cuti 74
Gambar 4.3 Menu Utama 4.2.3 Perancangan Antar Muka Entry Data Karyawan Gambar 4.4 Antar Muka Entry Data Karyawan 1.2.3 Perancangan Antar Muka Entry Data Jabatan Gambar 4.5 Antar Muka Entry Data Jabatan 75
4.2.5 Perancangan Antar Muka Permohonan cuti Gambar 4.6 Antar Muka Pengajuan Cuti 76