BAB 3 ANALISIS DAN PERANCANGAN 3.1. Sejarah …thesis.binus.ac.id/Doc/Bab3/2012-1-00112-IF Bab...
Transcript of BAB 3 ANALISIS DAN PERANCANGAN 3.1. Sejarah …thesis.binus.ac.id/Doc/Bab3/2012-1-00112-IF Bab...
61
BAB 3
ANALISIS DAN PERANCANGAN
3.1. Sejarah Perusahaan
PT. Surya Toto Indonesia berawal dari CV Surya yang bergerak dibidang
perdagangan dan bahan bangunan. Sejak tahun 1968 menjadi agen TOTO,
penghasil barang-barang sanitary terkemuka di Jepang. Kenaikan-kenaikan tarif
bea masuk yang mengakibatkan harga barang impor melonjak tinggi
menimbulkan gagasan untuk mencoba memproduksi barang-barang sanitary
TOTO di dalam negeri. Maka CV Surya bersama-sama TOTO Limited dan
Kashima Trading Company mendirikan perusahaan patungan dengan nama PT.
Surya Toto Indonesia pada tanggal 11 Juli 1977.
PT. Surya Toto Indonesia didirikan dalam kerangka Undang-Undang
Penanaman Modal Asing dengan 65% sahamnya dimiliki oleh PT. Bumi
Indonesia Djaya dan CB Surya sebagai perusahaan swasta nasional sedangkan
35% sahamnya dimiliki oleh TOTO Ltd. Jepang dan Kashima Trading
Company Ltd. sebagai perusahaan dari Jepang. Kepemilikan saham untuk
perusahaan swasta nasional telah diubah, yaitu PT Surya Paramita Pribadi, PT
Multi Fortuna Asinda dan PT Intimitra Sejahtera.
PT. Surya Toto Indonesia, Tbk mulai beroperasi dengan satu pabrik
sanitary seluas 6,2 hektar di Serpong, tepatnya di desa Pakulonan, kecamatan
Serpong kabupaten Tangerang dengan dukungan 65 karyawan. Daerah tersebut
dipilih dengan pertimbangan bahwa tata ruang Kabupaten Tangerang dimasa
yang akan datang merupakan akses ke Ibu Kota yang mudah dan strategis
62
dikarenakan adanya jalan tol, hal ini yang dijadikan pertimbangan adalah pada
daerah tersebut kemudahan untuk mendapatkan tenaga kerja maupun sumber air
(sungai Cisadane). PT. Surya Toto Indonesia, Tbk terus mengalami
pertumbuhan sampai saat ini sehingga mendapat sertifikat dan Singapore
Institute of Standard Industrial Research dan berhasil melakukan ekspor
pertamanya pada tahun 1980 dan terus meningkat hingga saat ini.
Adapun visi PT. Surya Toto Indonesia adalah menjadikan perusahaan
terkemuka yang dapat memberikan kontribusi bagi perkembangan masyarakat.
Dan beberapa misi dari PT. Surya Toto Indonesia adalah sebagai berikut :
• Mempersembahkan produk yang bermanfaat dan berkualitas tinggi
• Memberikan pelayanan prima untuk memenuhi kepuasan pelanggan
• Mencintai pekerjaan dengan sepenuh hati
• Menghargai individu dan membina kerjasama
• Melindungi lingkungan dunia dengan penghematan sumber daya alam dan
energi.
3.2. Struktur Organisasi
Untuk memperlancar kegiatan-kegiatan operasional dibutuhkan divisi-
divisi yang bertugas untuk melakukan bagian fungsional masing-masing.
Adapun struktur organisasi yang dimiliki oleh PT. Surya Toto Indonesia, Tbk.
pada saat ini.
63
Gambar 3.1 Struktur Organisasi
64
3.3. Tugas dan Wewenang
President Director :
1. Bertanggung jawab atas kemajuan dan kelancaran perusahaan yang
dipimpinnya.
2. Mempimpin rapat yang diadakan oleh perusahaan dan memberikan
pengesahan terhadap hasil rapat yang berguna untuk kemajuan perusahaan.
3. Menerima pertanggungjawaban setiap manager dalam melaksanakan
tugasnya masing-masing
4. Menetapkan keputusan dan sasaran perusahaan.
Direktur :
1. Memimpin perusahaan dengan menerbitkan kebijakan-kebijakan perusahaan
2. Memilih, menetapkan, mengawasi tugas dari karyawan dan kepala bagian
(manajer)
3. Menyetujui anggaran tahunan perusahaan
4. Menyampaikan laporan kepada pemegang saham atas kinerja perusahaan.
Teknikal Advisor :
1. Melakukan analisa awal terhadap setiap kasus teknik
2. Memberikan informasi problem baru yang terkait dengan keselamatan dan
kuantitas
3. Memberikan bimbingan teknis
65
Manajemen Representatif dan Quality Control :
1. Memastikan bahwa proses-proses yang diperlukan untuk sistem manajemen
mutu ditetapkan diimplementasikan dan dipelihara
2. Melapor kepada manajemen puncak mengenai kinerja sistem manajemen
mutu dan setiap kebutuhan perbaikan
3. Menjamin promosi kesadaran peryaratan pelanggan pelanggan di seluruh
organisasi.
Manajer akunting :
1. Membuat laporan pajak
2. Menghitung dan membuat laporan laba rugi
3. Membuat laporan pendapatan perusahaan
4. Menghitung persediaan produk di counter dan di gudang berdasarkan harga
cost.
Manajer Purchasing :
1. Menetapkan dan memelihara prosedur pembelian untuk mengendalikan
pembelian di PT. Surya Toto Indonesia
2. Mengesahkan dokumen pembelian sebelum dokumen dikirim ke pemasok
3. Memilih dan mengevaluasi pemasok yang memenuhi persyaratan yang
ditetapkan.
Manajer HRD :
1. Mengatur pengajuan akses karyawan
66
2. Mengatur dan menyimpan data-data mengenai karyawan
3. Menerima dan mengecek permohonan cuti dan absensi karyawan
4. Menyiapkan dan mengatur jadwal interview dan testing calon karyawan
baru
5. Menyiapkan dan mengatur jadwal training karyawan
Manajer Produksi :
1. Merencanakan kegiatan produksi dan setiap bagian pendukungnya
2. Mengontrol kegiatan produksi dan setiap bagian pendukungnya
3. Melakukan koordinasi dengan departemen penjualan terkait dengan order
yang akan dikerjakan dan jadwal pengiriman
4. Mengontrol kualitas produksi baik proses maupun mutu.
Manajer PPIC :
1. Menginput data hasil produksi dari semua seksi
2. Membuat rencana produksi semua seksi
3. Memantau stok barang yang ada
4. Membuat rencana pengiriman barang ke pelanggan
5. Memantau stok dan membuat pemesan matrial untuk produksi
3.4. Proses sistem yang sedang berjalan
Hasil interview kami pada bagian HRD PT Surya Toto Indonesia Tbk. Divisi
Cikupa menghasilkan proses sistem yang sedang berjalan yang dideskripsikan
dengan menggunakan flow chart
67
3.4.1. Pembuatan Tema Tahunan
68
Tabel 3.1Tabel Pembuatan Tema Tahunan
69
70
Proses ini dimulai dari menganalisa laporan evaluasi tahunan berdasarkan
QCDMS(Quality, Cost, Delivery, Morale, Safety). Proses ini semuanya adalah
hak mutlak dari HRD yang memutuskan berdasarkan kebutuhan mayoritas
pegawai dilihat dari planning tahunan yang di evaluasi berdasarkan
QCDMS.Setelah menganalisa laporan QCDMS, maka HRD akanmembuat
kuisioner training tahunan. Kuisioner tersebut kemudian diberikan kepada
supervisor, supervisor mengisi kuisioner berdasarkan kebutuhan training yang
dirasa masih kurang, supervisor juga dapat memberikan usulan tema. Setelah
mengisi, supervisor akan membuat rekap dan kemudian dikembalikan kepada
HRD.Setelah kuisioner dan rekap dikembalikan kepada HRD,maka HRD akan
mengolah dan menganalisa materi yang mana merupakan skill-up dan
manajemen, jumlah pegawai dalam 1 tahun yang akan mengikuti training, budget
1 tahun dari seluruh kuisioner yang diisi oleh tiap-tiap supervisor. HRD
kemudian akan membuat laporan tema tahunan yang didapat dari analisa
kuisioner dari tiap supervisordan berdasarkan laporan QCDMS.Laporan tema
tahunan yang telah dibuat oleh HRD, HRD memberikan laporan tersebut kepada
QA dan Direktur untuk ditandatangani dan disetujui.
3.4.2. Pembuatan jadwal laporan tema 1 tahun
71
Tabel 3.2 Tabel Pembuatan Jadwal Laporan Tema 1 Tahun
72
73
Setelah mendapat laporan tema tahunan yang disetujui, maka HRD akan
membuat jadwal laporan tema 1 tahun ke dalam training bulanan. HRD akan
membagi jumlah pegawai dalam 1 tahun yang mengikuti training dengan 12
bulan. Jika kapasitas 1 bulan melebihi kapasitas, maka training akan dilakukan
lebih dari 1kali pada bulan yang sama.HRD akan menentukan tanggal training
tiap bulan, tanggal training yang diadakan rata-rata dilakukan dalam pertengahan
bulan, karena awal dan akhir bulan biasanya pegawai banyak pekerjaan.HRD
juga akan menentukan budget perbulan, HRD akan membuat jadwal laporan
tema 1 tahun berdasarkan hal-hal diatas. Setelah HRD membuat jadwal laporan
tema 1 tahun, laporan tersebut akan diberikan kepada Supervisor, MR/IQC,
Direktur untuk disetujui dan ditandatangani.
3.4.3. Proses penjadwalan tutor intern
74
Tabel 3.3 Tabel Proses Penjadwalan Tutor Intern
75
Setelah HRD mendapat persetujuan jadwal tema 1 tahun, HRD akan
menentukan tutor untuk tiap tema yang terkait dalam 1 bulan.HRD akan
memberikan jadwal training kepada tutor untuk dikonfirmasi.Tutor akan
memberikan konfirmasi, jika pada saat tanggal tersebut tutor tidak bisa /
berhalangan, maka tutor akan memberikan tanggal pengganti dalam kurun <
1bulan.Setelah konfirmasi telah berhasil, HRD akan memberikan materi
terupdate kepada tutor.
3.4.4. Proses pembuatan dan pengiriman undangan
76
Tabel 3.4 Tabel Proses Pembuatan dan Pengiriman Undangan
77
Jika materi, tutor, tanggal telah dipastikan maka HRD akan membuat
undangan training yang ditujukan kepada pegawai(peserta) berdasarkan nama
dan NIP pegawai, tema training, tutor, tanggal training, waktu, tempat. HRD
dapat mengirim undangan training dengan via-email kepada supervisor dan
pegawai yang terkait, supervisor akan mencetak undangan (hardcopy) dan
diserahkan ke pegawai yang bersangkutan. Pegawai menerima undangan training
dan dipastikan hadir, karena undangan training tersebut merupakan surat tugas.
3.4.5. Proses pengolahan daftar pegawai dan materi (extern)
78
Tabel 3.5 Proses Pengolahan Daftar Pegawai dan Materi (Ekstern)
79
Supervisor menganalisa kebutuhan training bawahannya yang dirasa
masih kurang dan materi tersebut tidak ada didalam training intern.Supervisor
membuat laporan analisa materi yang dibutuhkan dan daftar pegawai yang akan
mengikuti training.HRD menerima laporan tersebut dan menganalisa materi yang
dibutuhkan dan menandatangani. Laporan tersebut kemudian diberikan kepada
Direktur untuk disetujui.
3.4.6.Proses penjadwalan training extern
80
Tabel 3.6 Proses Penjadwalan Training Ekstern
81
HRD menerima laporan daftar pegawai dan materi yang dibutuhkan.
HRDakan mencari materi yang tidak ada didalam training intern kepada
konsultan dengan mengecek jadwal tahunan konsultan dan menghubungi
konsultan yang terkait.Konsultan akan mencarikan materi yang sesuai dengan
kebutuhan HRD. Didalam training extern, ada konsultan public dan konsultan
in-house. Dimana public berarti pegawai yang akan mengikuti training extern
akan dikirimkan kepada konsultan yang terkait, jika in-house berarti konsultan
yang datang keperusahaan.Konsultan akan memberikan negosiasi yang berbeda
untuk public dan in-house. Jika public, negosiasi yang dilakukan adalah harga
keseluruhan. Jika in-house, negosiasi yang dilakukan adalah negosiasi
materi.Jika negosiasi gagal, maka training dibatalkan. jika berhasil, HRD akan
menentukan tanggal,tempat, waktu.
3.4.7. Absensi intern-ekstern (in house)
82
Tabel 3.7 Absensi Intern – Ekstern (In House)
83
HRD membuat daftar absensi training yang kemudian diberikan kepada
pegawai selama training berlangsung untuk ditandatangani sebagai bukti
kehadiran serta HRD mengawasi selama training berlangsung. Pegawai
melakukan absensi dengan tanda tangan pada daftar absen, jika ada pegawai
yang tidak melakukan absensi, manager yang terkait akan mencatat
nama,nippegawai. Manager juga membuat rekap absensi yang kemudian akan
diberikan kepada HRD. HRD akan menggabungkan hasil absensi, dan kemudian
dimasukkan ke dalam database kemudian HRD membuat sertifikat.
3.5 Masalah yang Dihadapi
Setiap perusahaan pasti akan mengalami masalah-masalah yang terjadi baik dari
dalam maupun dari luar perusahaan. Adapun masalah-masalah yang dihadapi
oleh PT. Surya Toto Indonesia antara lain adalah :
1. Masalah pendataan training pegawai
Perusahaan mengalami kesulitan untuk mendata pegawai-pegawai
yang telah atau belum mengikuti training. Di mana training ini berguna
untuk salah satu pendukung keputusan kompetensi. PT. Surya Toto
Indonesia itu sendiri mengadakan paling sedikitnya dua kali dalam
seminggu untuk mengadakan training bagi pegawainya. Dan bagi tiap
pegawai yang akan mengikuti kompetensi wajib mengikuti training
tersebut. Namun PT. Surya Toto Indonesia khususnya bagian HRD
masih kesulitan dalam mencari data-data pegawai yang sudah atau
belumnya mengikuti training dikarenakan sistem yang masih
84
digunakan adalah menggunakan Microsoft Access. Hal ini
mengakibatkan kurang efektifnya pencarian data.
2. Masalah pengadaan laporan training
Laporan training biasanya dikeluarkan ketika ada uji kompetensi
maupun kenaikan jabatan atau kenaikan gaji pegawai. Biasanya
dikeluarkan setiap satu bulan sekali, sesuai dengan kebutuhan
perusahaan. Staff yang memerlukan laporan ini biasanya staff eksekutif
perusahaan, baik manajer maupun HRD. Kendala perusahaan adalah
membuat laporan tersebut harus manual sehingga akan dirasakan kurang
efektif.
3. Kebutuhan Informasi
Perusahaan juga mengalami kesulitan dalam pengadaan
kebutuhan informasi.Di mana informasi ini penting karena merupakan
kebutuhan dari aktifitas training itu sendiri. Namun permasalahan yang
dihadapi perusahaan adalah informasi yang masih manual dan sulit
untuk dicari karena masih menggunakan data manual dan database
Microsoft Acces, sehingga ketika ingin mencari informasi untuk
kebutuhan selanjutnya akan mengalami kesulitan dan membutuhkan
waktu lama untuk mencarinya.
3.6 Usulan Pemecahan Masalah
Dari hasil survey diatas penulis mengusulkan untuk merancang basis data
training pegawai yang dibutuhkan perusahaan ini.Dengan sistem yang
diusulkan ini dapat mempermudah perusahaan mengolah data.
85
a. Memiliki sistem basis data yang bisa menampung semua data pegawai dan
data materitraining
b. Mempunyai catatan laporan pegawai yang sudah menjalani training,
maupun yang belum melakukan training, laporan absensi training dan
laporan historytraining pegawai.
c. Mengetahui data pegawai yang belum menjalani training maupun yang
sudah melakukan training yang ditetapkan.
d. Mempermudah dalam membantu membuat keputusan mengenai mutasi
maupun rotasi pegawai yang membutuhkan data historytraining pegawai.
e. Mempermudah untuk melakukan perubahan pada data materi yang ada atau
menambah data materi baru.
f. Mempermudah dalam menginput, mencari dan menampilkan data training
pegawai.
86
3.7. Tahapan Perancangan Database
Perancangan database dilakukan sesuai dengan kebutuhan informasi yang telah
diidentifikasi pada PT. SURYA TOTO INDONESIA Tbk. Perancangan database
tersebut dibagi menjadi tiga langkah, yaitu : perancangan database konseptual,
perancangan database logikal, dan percancangan database fisikal.
3.7.1. Perancangan Database Konseptual
Berikut ini adalah tahap – tahap perancangan database konseptual yaitu:
3.7.1.1. Pengidentifikasian Entitas
No Nama Entitas Deskripsi Alias Kejadian 1. Karyawan Merupakan entitas yang
memberikan informasi mengenai karyawan
Pekerja Karyawan mengikuti training perusahaan
2. Divisi Merupakan entitas yang memberikan informasi mengenai lokasi perusahaan.
Cabang PT. Surya Toto memiliki 3 divisi. Divisi Cikupa, Pasar Kemis, dan Serpong
3. Bagian Merupakan entitas yang memberikan informasi mengenai bagian pegawai dalam perusahaan.
Setiap bagian memiliki banyak karyawan, dan dapat terdiri dari beberapa posisi.
4. Posisi Merupakan entitas yang memberikan informasi mengenai posisi karyawan dalam perusahaan.
Jabatan Setiap posisi dapat terdiri dari beberapa bagian dan banyak karyawan.
87
5. Training Merupakan entitas yang memberikan Informasi mengenai training yang dilakukan pada pihak karyawan
latihan Setiap training memiliki beberapa jenis training yang dapat diikuti oleh karyawan
6. Tutor Merupakan entitas yang menjelaskan isi materi training
Pengajar Pengajar menjelaskan isi materi kepada karyawan pada saat training berlangsung
7. Jadwal Merupakan entitas yang memberikan informasi mengenaitanggal dan tempat diadakannya training
Jadwal untuk menentukan berjalannya training
8. Jenis Training Merupakan entitas yang memberikan informasi tentang jenis training yang ada.
Jenis training berfungsi untuk menentukan training yang akan dilakukan.
9. Jenis Materi Merupakan entitas yang berfungsi untuk memberikan informasi tentang jenis materi training.
Jenis materi merupakan bahan materi yang akan digunakan untuk training yang diadakan.
10. Pendidikan Merupakan entitas yang berfungsi untuk memberikan informasi tentang pendidikan karyawan
Pendidikan berfungsi untuk memberikan informasi pendidikan yang dicapai oleh karyawan
88
Tabel 3.8 Tabel identifikasi entitas
3.7.1.2. Pengidentifikasian Relationship
a. Model Model Konseptual ERD Tanpa primary Key
Gambar 3.2 ERD Konseptual Tanpa Primary Key
11. Akses Merupakan entitas yang berfungsi untuk memberikan hak akses menjalankan program
Akses berfungsi sebagai hak akses untuk menggunakan program
89
b. Mengidentifikasi Relationship
Nama Entitas Multi- Relationship Nama Entitas Multi-
Training 1.. * Mengakibatkan
1.. * Mempunyai
1.. * Mempunyai
1.. * Mempunyai
Jadwal
JenisMateri
JenisTraining
Karyawan
1.. *
1.. 1
1.. 1
1.. *
Tutor 1.. 1 Menerima
1.. 1 Bagian
Jadwal
Karyawan
1.. *
1.. 1
Karyawan 1.. * Menempati
1.. * Menerima
1.. * Mempunyai
1.. 1 Menempati
1.. * Menempati
Posisi
Jadwal
Pendidikan
Divisi
Bagian
1.. 1
1.. *
1.. 1
1.. 1
1.. 1
Tabel 3.9 Tabel Identifikasi Relationship
3.7.1.3. Pengidentifikasian dan Penghubung Atribut dengan Entitas
atau Relationship
1. entitasKaryawan
Attribute Deskripsi Panjang dan
tipe data
null Multi-
valued
Kode_karyawan Kode karyawan Char(10) No No
Nama_karyawan Nama karyawan Varchar(30) No No
Email_karyawan Email karyawan Varchar(50) No No
90
Telp_karyawan Telp karyawan Varchar(20) No No
Alamat_karyawan Alamat karyawan Varchar(100) No No
Tgl_lahir Tanggal lahir karyawan Date No No
Tgl_masuk Tanggal masuk karyawan Date No No
Kode_divisi Kode Divisi Char(1) No No
Kode_posisi Kode posisi Varchar(10) No No
Kode_bagian Kode bagian Varchar(10) No No
Kode_pendidikan Kode pendidikan Char(1) No No
Jumlah_masuk Jumlah masuk Int Yes No
Jumlah_absen Jumlah absen Int Yes No
Status_training Status training Varchar(20) Yes No
Tabel 3.10 Tabel Atribut entitas Karyawan
2. EntitasTraining
Attribute Deskripsi Panjang dan tipe
data
null Multi-
valued
Kode_training Kode training Char(5) No No
Nama_training Nama training Varchar(30) No No
Kode_jenis_training Kode kategori training Char(5) No No
Kode_jenis_materi Kode jenis materi Char(5) No No
Tabel 3.11 Tabel Atribut entitas Training
91
3. entitas JenisMateri
Attribute Deskripsi Panjang dan tipe
data
null Multi-
valued
Kode_Jenis_Materi Kode Jenis materi Char(5) No No
Nama_Jenis_Materi Nama Jenis materi Varchar(30) No No
Tabel 3.12 Tabel Atribut entitas JenisMateri
4. entitasTutor
Attribute Deskripsi Panjang dan tipe
data
null Multi-
valued
Kode_karyawan Kode karyawan Char(10) No No
Kode_tutor Kode tutor Char(5) No No
Tabel 3.13 Tabel Atribut entitas Tutor
5. entitas JenisTraining
Attribute Deskripsi Panjang dan tipe
data
null Multi-
valued
Kode_Jenis_Training Kode jenis training Char (5) No No
Nama_Jenis_Training Nama materi Varchar(30) No No
Tabel 3.14 Tabel Atribut entitas JenisTraining
92
6. entitas Jadwal
Attribute Deskripsi Panjang dan tipe
data
null Multi-
valued
Kode_jadwal Kode jadwal Char (5) No No
Kode_training Kode training Char(5) No No
Kode_karyawan Kode karyawan Char(10) No No
Nama_jadwal Nama jadwal Varchar(30) No No
Tgl_mulai_training Jadwal tanggal mulai Date No No
Tgl_selesai_training Jadwal tanggal selesai Date time No No
Jadwal_tempat Jadwal tempat Varchar (30) No No
Jadwal_jam Jadwal jam training Time(7) No No
Periode Periode Varchar(4) No No
Tabel 3.15 Tabel Atribut entitas Jadwal
7. entitas Posisi
Attribute Deskripsi Panjang dan tipe null Multi valued
Kode_posisi Kode Posisi karyawan Char(10) No No
Nama_posisi Nama Posisi karyawan Varchar(30) No No
Inisial_posisi Singkatan nama posisi Char (5) No No
Tabel 3.16 Tabel Atribut entitas Posisi
93
8. entitas Bagian
Attribute Deskripsi Panjang dan tipe null Multi valued
Kode_bagian Kode bagian karyawan Char(10) No No
Nama_bagian Nama bagian karyawan Varchar(30) No No
Tabel 3.17 Tabel Atribut entitas Bagian
9. entitas Divisi
Attribute Deskripsi Panjang dan tipe null Multi valued
Kode_divisi Kode divisi perusahaan Char(1) No No
Nama_divisi Nama divisi perusahaan Varchar(30) No No
Tabel 3.18 Tabel Atribut entitas Divisi
10. entitas Pendidikan
Attribute Deskripsi Panjang dan tipe null Multi valued
Kode_Pendidikan Kode Pendidikan karyawan Char(1) No No
Nama_Pendidikan Nama Pendidikan karyawan Varchar(30) No No
Tabel 3.19 Tabel Atribut entitas Pendidikan
94
11. Tabel Akses
Attribute Deskripsi Panjang dan tipe null Multi valued
Username Nama untuk mengakses Char(20) No No
Password Password untuk mengakses Varchar(20) No No
Tabel 3.20 Tabel Atribut entitas Akses
3.7.1.4. Penentuan Domain Atribut
Berikut ini adalah tabel domain atribut untuk setiap entitas pada model
konseptual :
1. Karyawan
Atribut Domain value
Kode_karyawan Range value 0-9
Nama_karyawan Range value A – Z, a-z
Tgl_lahir Range value 0-9, ‘-‘,’/’
Tgl_masuk Range value 0-9, ‘-‘,’/’
Email_karyawan Range value A – Z, a-z, 0-9 , ‘@’, ‘/’ , ‘.’
Telp_karyawan Range Value0-9, ‘-‘
Alamat_karyawan Range value A – Z, a-z, 0-9, ‘.’, ‘/’
Kode_divisi Range value A-Z, a-z
Kode_posisi Range value 0-9
Kode_bagian Range value 0-9
95
Kode_pendidikan Range value 0-9
Jumlah_masuk Range value 0-9
Jumlah_absen Range value 0-9
Status_training Range value A-Z,a-z
Tabel 3.21 Tabel Domain entitas Karyawan
2. Training
Atribut Domain value
Kode_training Range value TR[0-9][0-9][0-9]
Nama_training Range value A – Z, a-z, 0-9
Kode_Jenis_training Range Value JT[0-9][0-9][0-9]
Kode_jenis_materi Range value JM[0-9][0-9][0-9]
Tabel 3.22 Tabel Domain entitas Training
3. JenisMateri
Atribut Domain value
Kode_jenis_materi Range value JM[0-9][0-9][0-9]
Nama_jenis_materi Range ValueA-Z,a-z,0-9
Tabel 3.23 Tabel Domain entitas JenisMateri
96
4. Tutor
Atribut Domain value
Kode_karyawan Range value 0-9
Kode_tutor Range value TU[0-9][0-9][0-9]
Tabel 3.24 Tabel Domain entitas Tutor
5. JenisTraining
Atribut Domain value
Kode_jenis_training Range value JT[0-9][0-9][0-9]
Nama_jenis_training Range ValueA-Z,a-z,0-9
Tabel 3.25 Tabel Domain entitas JenisTraining
6. Jadwal
Atribut Domain value
Kode_jadwal Range value SC[0-9][0-9][0-9]
Nama_jadwal Range value A-Z,a-z
Tgl_mulai_training Range Value0-9,’/’,’-‘
Tgl_selesai_training Range Value0-9,’/’,’-‘
Jadwal_jam Range value 0-9, ‘.’
Jadwal_tempat Range Value A-Z, a-z
Periode Range value 0-9, ‘/’,’-‘
97
Kode_training Range value TR[0-9][0-9][0-9]
Kode_karyawan Range value 0-9
Tabel 3.26 Tabel Domain entitas Jadwal
7. Posisi
Atribut Domain value
Kode_posisi Range value 0-9
Nama_posisi Range value A-Z, a-z
Tabel 3.27 Tabel Domain entitas Posisi
8. Bagian
Atribut Domain value
Kode_bagian Range value 0-9, A-Z, a-z
Nama_bagian Range value A-Z, 0-9
Tabel 3.28 Tabel Domain entitas Bagian
9. Divisi
Atribut Domain value
Kode_divisi Range value A-Z
Nama_divisi Range value A-Z, a-z
Tabel 3.29 Tabel Domain entitas Divisi
98
10. Pendidikan
Atribut Domain value
Kode_pendidikan Range value 0-9
Nama_pendidikan Range value A-Z, a-z
Tabel 3.30 Tabel Domain entitas Pendidikan
11. Akses
Atribut Domain value
Username Range value A-Z, a-z, 0-9
Password Range value A-Z, a-z, 0-9
Tabel 3.31 Tabel Domain entitas Akses
3.7.1.5. Penentuan Atribut Primary Key dan Candidate Key
a. Tabel Primary Key dan Candidate Key
No Entitas Candidate Key Primary Key 1. Karyawan Kode_karyawan
Email_karyawan
Telp_karyawan
Kode_karyawan
2. Training Kode_training Kode_training
3. JenisMateri Kode_jenis_materi Kode_jenis_materi
4. Tutor Kode_tutor
Kode_tutor
5. Jadwal Kode_jadwal
Kode_jadwal
99
6. JenisTraining Kode_jenis_training Kode_jenis_training
7. Posisi Kode_poisisi
Inisial posisi
Kode_posisi
8. Bagian Kode_Bagian Kode_Bagian
9. Divisi Kode_Divisi Kode_Divisi
10. Pendidikan Kode_pendidikan Kode_pendidikan
11. Akses Username Username
Tabel 3.32 Tabel Atribut Primary Key dan Candidate Key
3.7.1.6. Mempertimbangkan untuk Penggunaan Konsep Pemodelan
Enhanced
Dari model konseptual yang telah dibuat dilakukan spesialisasi
subclass pada entitas Karyawan, yaitu entitasTutor. Relasi antara
superclass Posisi dan subclass HRD adalah Mandatory
3.7.1.7. Mengecek Redundansi pada Model
Dari model konseptual yang telah dibuat tidak ditemukannya dua
entitas yang merepresentasikan obyek yang sama pada PT. SURYA
TOTO INDONESIA Tbk. dan tidak ditemukannya redundansi pada
setiap relationship yang ada.
3.7.1.8. Memvalidasi Model Konseptual Lokal dengan Transaksi
Pengguna
100
Dari model konseptual yang ada, kita lakukan validasi terhadap
transaksi yang terjadi pada PT. SURYA TOTO INDONESIA Tbk.
Hal ini dapat dilihat pada gambar bawah ini:
Gambar 3.3 Validasi ERD dengan pathway transaksi PT. SURYA TOTO
INDONESIA Tbk.
(g,h,i,k)
(d,e,f)
(a,b,c,j)
101
Keterangan :
(a) Penginputan data karyawan
(b) Pengubahan data karyawan
(c) Penghapusan data karyawan
(d) Penginputan training
(e) Pengubahan training
(f) Penghapusan training
(g) Penginputan jadwal
(h) Pengubahan jadwal
(i) Penghapusan jadwal
(j) Penginputan jadwal karyawan yang didaftarkan
(k) Penginputan jadwal tutor yang didaftarkan
3.7.1.9. Meninjau Model Konseptual Lokal dengan Pengguna
Dari model konseptual lokal yang telah dirancang maka dihasilkan
diagram relasi entitas sebagai berikut:
102
Gambar 3.4 Model Konseptual ERD PT. SURYA TOTO INDONESIA Tbk.
103
3.7.2. Pemilihan DBMS
Pemilihan DBMS dipengaruhi oleh beberapa faktor sebagai berikut:
1. Kemudahan dalam penggunaan : DBMS sebaiknya mudah dipergunakan
oleh penggunanya.
2. Kemudahan dalam administrasi : DBMS sebaiknya mudah
diadministrasikan.
3. Kehandalan : DBMS sebaiknya mampu mengamankan data apabila terjadi
kegagalan piranti lunak atau keras.
4. Biaya : biaya dari DBMS sebaiknya tidak melebihi anggaran yang
diperkirakan oleh perusahaan.
5. Keamanan : DBMS sebaiknya dapat membedakan dan memilih di antara
berbagai tingkat pengguna dari yang tidak memiliki hak akses hingga hak
administrasi penuh.
6. Kesesuaian : DBMS sebaiknya dapat bekerja dengan komponen piranti
keras dan lunak lainnya dengan baik di dalam sistem manajemen
informasi.
7. Persyaratan minimum : DBMS sebaiknya mampu bekerja pada platform
computer yang digunakan untuk menjalankan sistem manajemen
informasi.
8. Kedekatan dengan basis data : Jika struktur dan operasi dari DBMS sudah
diketahui, maka waktu yang seharusnya dihabiskan untuk mempelajari
DBMS dapat difokuskan pada perancangan.
104
9. Scalability : Mempertimbangkan faktor besar dan kecilnya suatu
perusahaan, dan seberapa banyaknya data yang ditampung pada DBMS
tersebut.
SQL Server 2008 Oracle 9i MySQL
Platform
Windows-based
Platform
Windows-based, AIX
based, Compaq Tru64
Unix, HP 9000 series
HPUX
system, Linux Intel,
Sun-Solaris
Platform
Windows-based,
Linuxbased,
Sun-Solaris
Hardware
-Processor
Pentium 1.0GHz atau
lebih
-Memory
Minimal: 512MB
Disarankan: 2048GB
Hardware
-Processor
Windows : Pentium
166
MHz atau lebih
AIX : IBM RISC/6000
atau
Server Series
HP-UX: HP 9000 seri
700
atau 800
Linux : Intel 32-bit,
Intel
64-bit, S/390 generasi
9672
atau lebih, Multiprise
3000,
eServer z-series.
Hardware
-Processor
Windows : 166 Mhz
atau
lebih
Linux : Intel 32-bit, Intel
64-bit, S/390 9672
generation atau lebih,
Multiprise3000, eServer
z-Series.
Solaris : Solaris
UltraSPARC-based
computer
-Memory
128 MB RAM
105
atau lebih
-Hard disk space
270 MB (Full
Installation),
250 MB (Typical), 95
MB
(minimal), Desktop
Engine:
44 MB, Analysis
services:
minimum 50 MB dan
130
MB typical
-Memory
128 MB RAM
(diutamakan
256 MB)
Virtual Memory :
Initial
size 200 MB,
maximum
size 400 MB
-Hard disk space
140 MB pada Drive
System
+4.5 GB untuk Oracle
Home Drive (FAT)
atau 2.8
GB untuk Oracle
Home
Drive (NTFS)
Typical Installation:
Minimal 450 s/d 550
MB
Compact Installation:
Minimal 350 s/d 400
MB
Custom Installation:
Minimal 350 s/d 700
MB
-Hard disk space
140 MB pada Drive
System
(diutamakan 256MB)
Virtual Memory : Initial
size 50MB, maximum
size 400 MB
-Hard disk space
100 MB (diutamakan)
-Hard disk space
100 MB (diutamakan)
106
English Query: 80 MB +4.5 GB untuk Oracle
Home Drive (FAT)
atau 2.8
GB untuk Oracle
Home
Drive (NTFS)
Typical Installation:
Minimal 450 s/d 550
MB
Compact Installation:
Minimal 350 s/d 400
MB
Custom Installation:
Minimal 350 s/d 700
MB
Bahasa SQL
-Feature Tables
Relational tables,
temporary tables
-Feature Triggers
AFTER triggers,
INSTEAD
OF triggers
-Feature Procedures
T-SQL statement
-Feature ARRAYS
Not Supported
-Feature Back up dan
Security
Supported
Bahasa SQL
-Feature Tables
Relational tables,
object
tables, temporary
tables
-Feature Triggers
BEFORE triggers,
AFTER
triggers, INSTEAD OF
triggers
-Feature Procedures
PL/SQL statement,
java
methods, third-
generation
Bahasa SQL
-Feature Tables
Relational tables
-Feature Triggers
Not Supported
-Feature Procedures
MySQL functions
-Feature ARRAYS
Not Supported
-Feature Back up dan
Security
Not Supported
107
language (3GL)
routines
-Feature ARRAYS
Supported
-Feature Back up dan
Security
Supported
Tabel 3.33 Tabel perbandingan DBMS
Dari tabel perbandingan DBMS dan beberapa faktor yang
dipertimbangkan untuk memilih DBMS, penulis menyarankan Microsoft
SQL Server 2000 sebagai DBMS yang dipergunakan untuk
mengimplementasikan rancangan basis data. Keputusan ini diambil atas
pertimbangan beberapa faktor berikut ini:
1. Microsoft SQL Server 2000 memiliki kemudahan pengguna yang
lebih baik dari Oracle 9i maupun MySQL. Hal ini terlihat dari data
diatas yang menyebutkan Microsoft SQL Server 2000 memiliki
dokumentasi yang cukup mudah dimengerti dah mendapat bantuan
teknis bila terjadi masalah. MySQL secara dokumentasi sudah cukup
baik namun tidak mendapat bantuan teknis bila terjadi masalah.
Sedangkan dokumentasi Oracle 9i sulit dipahami sehingga
menyulitkan user.
2. Dalam hal kemudahannya dalam administrasi Oracle 9i paling sulit.
Microsoft SQL Server 2000 dan MySQL hampir sama, namun
Microsoft SQL Server 2000 lebih baik sedikit dari MySQL karena
banyak fitur-fitur pendukungnya dalam proses administrasinya.
108
3. Dalam segi kehandalan Oracle 9i paling baik, kedua terbaik adalah
Microsoft SQL Server 2000 kemudian baru MySQL yang Cuma
punya kehandalan karena gratis.
4. Dari segi biaya MySQL paling baik karena tidak memerlukan biaya,
dan untuk lisensi komersialnya $395. Oracle 9i memiliki biaya paling
tinggi diantara ketiganya, lagipula lisensinya berdasarkan per individu
bukan medianya. Sedangkan Microsoft SQL Server 2000 berada di
tengah-tengah dalam hal biaya.
5. Oracle 9i mempunyai keamanan paling baik. Kedua, Microsoft SQL
Server 2000, kemudian MySQL yang sistem keamanannya masih
belum jelas.
6. Dalam hal kompabilitasnya Oracle 9i mendukung standar paling
lengkap dan bisa berjalan di semua sistem operasi. MySQL dalam hal
standar kalah dengan Microsoft SQL Server 2000 namun hanya dapat
berjalan di sistem operasi berbasis UNIX. Microsoft SQL Server
2000 juga hanya dapat berjalan pada sistem operasi buatan Microsoft.
7. Untuk persyaratan minimum MySQL paling baik. Urutan kedua
adalah Microsoft SQL Server 2000, kemudian Oracle 9i.
8. Dari segi familiaritasnya Microsoft SQL Server 2000 adalah yang
terbaik karena sudah sangat banyak yang bisa mengoperasikannya.
Sedangkan Oracle 9i paling jarang dipakai.Dilihat dari faktor
skalabilitasnya, Microsoft SQL Server 2000 atau MySQL cocok
untuk diimplementasikan pada perusahan-perusahanan kalangan
109
menengah. Boleh saja menggunakan Oracle 9i, tetapi hal ini dirasa
terlalu berlebihan.
Berikut adalah tabel analisa fitur-fitur DBMS:
Features Rating Weighting Score
Kemudahan pengorganisasian 5 0.25 1.25
Ketersediaan struktur file 8 0.15 1.2
Perawatan struktur file 6 0.2 1.2
Pengindeksan 6 0.15 0.9
Panjang variabel field/record 4 0.15 0.6
Kompresi data 6 0.05 0.3
Rutinitas enkripsi 4 0.05 0.2
Kebutuhan memory 0 0.00 0
Kebutuhan penyimpanan 0 0.00 0
Total 39 1.0 5.65
Tabel 3.34 Tabel analisa fitur-fitur DBMS
3.7.3. Perancangan Basis Data Logikal
Membuat sebuah model data logikal lokal dari sebuah model data
konseptual lokal yang menggambarkan fakta-fakta perusahaan dan
memvalidasikan untuk meyakinkan struktur yang telah dirancang itu
benar dan mendukung permintaan transaksi.
Berikut ini adalah tahapan – tahapan perancangan database logikal, yaitu
:
110
3.7.3.1. Menghilangkan Fitur yang tidak Kompatibel dengan Model
Relasional
Berikutini adalah tahap-tahapdalammenghilan gkanfitur-
fituryangtidaksesuaidenganmodelrelasional.
3.7.3.1.1. MenghilangkanMany-ToMany(*:*)BinaryRelationsh ip
a. Relasi many-to-many (*:*)pada entitas Karyawan, Training dan
jadwal akan menghasilkan sebuah entitas baru yaitu,
DetailJadwalTrainingKaryawan
Gambar 3.5 Relasi biner many-to-many antara karyawan dan jadwal
111
3.7.3.1.2. Menghilangkan Tipe Relasi Rekursif one-to-many (1:*)
Tidak memiliki relasi rekursif
3.7.3.1.3. Menghilangkan atribut multi-value
Tidak memiliki atribut multi-value
3.7.3.2. MemperolehRelasiBagiModel DataLogikalLokal
Berikut adalah tahap-tahap memperoleh relasi bagi model data logical,
yaitu :
3.7.3.2.1. Identifikasi Strong Entity
Strong entity merupakan entitas yang tidak bergantung pada entitas
lainnya, dapat juga dibilang Strong Entity adalan entitas yang dapat
berdiri sendiri. Berikut adlah entias-entitas yang tergolong dalam strong
entity :
Karyawan ( Kode_karyawan, Nama_karyawan,Kode_Divisi,
Kode_Posisi,Kode_Bagian,Kode_pendidikan,Email_karyawan, Telp_karyawan,
Alamat_karyawan, Tgl_lahir, Tgl_masuk , Jumlah_masuk, Jumlah_absen,
Status_training)
Primary key: Kode_karyawan
Foreign key : Kode_Divisi reference Divisi
Foreign key : Kode_Posisi reference Posisi
Foreign key : Kode_Bagian reference Bagian
Foreign key: Kode_Pendidikan reference Pendidikan
112
Training (Kode_training, Nama_training, Kode_Jenis_training, Kode_jenis_materi)
Primary key : Kode_training
Foreign key : Kode_ jenis_ training reference JenisTraining
Foreign key :Kode_jenis_materi reference JenisMateri
Tutor (Kode_karyawan,Kode_tutor)
Primary key : Kode_karyawan
Foreign key :Kode_karyawan reference karyawan
Jadwal ( Kode_jadwal, Nama_jadwal, Tgl_mulai_training, Tgl_selesai_training,
Jadwal_jam, Jadwal_tempat, Kode_training, Kode_karyawan, Periode)
Primary key : Kode_jadwal
Foreign key :Kode_karyawan reference Karyawan
Foreign key :Kode_training reference Training
Jenis Training ( Kode_jenis_training, Nama_jenis_training)
Primary key : Kode_jenis_training
Posisi(Kode_Posisi, Nama_Posisi, Inisial_Posisi)
Primary key :Kode_Posisi
Jenis Materi ( Kode_jenis_materi, Nama_jenis_materi )
Primary key : Kode_jenis_materi
113
Divisi (Kode_Divisi, Nama_Divisi)
Primary key :Kode_Divisi
Bagian (Kode_Bagian, Nama Bagian)
Primary_Key : Kode_Bagian
Pendidikan (Kode_pendidikan, Nama_pendidikan)
Primary_key : Kode_pendidikan
Akses (Username, Password)
Primary_key : Username
3.7.3.2.2. Identifikasi Weak Entity
Weak entity merupakan entitas yangbergantung pada entitas lainnya,
dapat juga dibilang Weak entity adalah entitas yang tidak dapat berdiri
sendiri. Berikut ini adalah entitas-entitas yang tergolong dalam weak
entity :
DetailJadwalTrainingKaryawan( Kode_training, Kode_jadwal, Kode_karyawan,
Jumlah_masuk, Jumlah_absen,status_training)
Primary_key : Kode_training, Kode_Jadwal, Kode_Karyawan
Foreign_key : Kode_training reference Training
Foreign_key : Kode_jadwal reference Jadwal
Foreign_key : Kode_karyawan reference Karyawan
114
3.7.3.2.3. Tipe Relasi Biner one-to-many (1:*)
Hubungan antara entitas Karyawan dengan entitas Divisi
Hubungan antara entitas Karyawan dengan entitas Posisi
Menempatkan Kode_divisi ke dalam entitas
Karyawan untuk model 1:* relationship menjadi
Karyawan ( Kode_karyawan, Nama_karyawan, Email_karyawan, Telp_karyawan, Alamat_karyawan, Tgl_lahir,Tgl_masuk,Kode_divisi)
Primary key Kode_karyawan
Foreign key Kode_divisi references Divisi
Divisi ( Kode_divisi, Nama_divisi)
Primary key Kode_divisi
Menempatkan Kode_posisi ke dalam entitas
Karyawan untuk model 1:* relationship menjadi
Karyawan ( Kode_karyawan, Nama_karyawan, Email_karyawan, Telp_karyawan, Alamat_karyawan, Tgl_lahir,Tgl_masuk,Kode_divisi, Kode_Posisi)
Primary key Kode_karyawan
Foreign key Kode_divisi references Divisi
Foreign key Kode_posisi references Posisi
Posisi ( Kode_posisi, Nama_posisi, Inisial_posisi)
Primary key Kode_posisi
115
Hubungan antara entitas Karyawan dengan entitas Bagian
Menempatkan Kode_bagian ke dalam entitas
Karyawan untuk model 1:* relationship menjadi
Karyawan ( Kode_karyawan, Nama_karyawan, Email_karyawan, Telp_karyawan, Alamat_karyawan, Tgl_lahir,Tgl_masuk, Kode_divisi, Kode_Posisi, Kode_bagian)
Primary key Kode_karyawan
Foreign key Kode_divisi references Divisi
Foreign key Kode_posisi references Posisi
Foreign key Kode_bagian references Bagian
Bagian ( Kode_bagian, Nama_bagian)
Primary key Kode_bagian
116
Hubungan antara entitas Karyawan dengan entitas Pendidikan
Menempatkan Kode_pendidikan ke dalam entitas
Karyawan untuk model 1:* relationship menjadi
Karyawan ( Kode_karyawan, Nama_karyawan, Email_karyawan, Telp_karyawan, Alamat_karyawan, Tgl_lahir,Tgl_masuk, Kode_divisi, Kode_Posisi, Kode_bagian, Kode_pendidikan)
Primary key Kode_karyawan
Foreign key Kode_divisi references Divisi
Foreign key Kode_posisi references Posisi
Foreign key Kode_bagian references Bagian
Foreign key Kode_pendidikan references Pendidikan
Pendidikan ( Kode_pendidikan, Nama_pendidikan)
Primary key Kode_pendidikan
117
Hubungan antara entitas JenisMateri dengan entitas Training
Hubungan antara entitas JenisTraining dengan entitas Training
Menempatkan Kode_jenis_materi ke dalam entitas
Training untuk model 1:* relationship menjadi
Training ( Kode_training, Nama_training, Kode_jenis_materi )
Primary key Kode_training
Foreign key Kode_jenis_materi references JenisMateri
JenisMateri ( Kode_jenis_materi, Nama_jenis_materi)
Primary key Kode_jenis_materi
Menempatkan Kode_jenis_training ke dalam entitas
Training untuk model 1:* relationship menjadi
Training ( Kode_training, Nama_training, Kode_jenis_materi, Kode_jenis_training)
Primary key Kode_training
Foreign key Kode_jenis_training references JenisTraining
Foreign key Kode_jenis_materi references JenisMateri
JenisTraining ( Kode_jenis_training, Nama_jenis_training)
Primary key Kode_jenis_training
118
Hubungan antara entitas Jadwal dengan entitas Tutor
3.7.3.2.4. Tipe Relasi biner one-to-one (1:1)
Mandatory participation on one side pada entitas Karyawan dari relasi
biner 1:1 antara entitas Karyawan dan Tutor
Menempatkan Kode_jadwal ke dalam entitas Tutor
untuk model 1:* relationship menjadi
Jadwal ( Kode_jadwal, Nama_jadwal, Tgl_training_mulai, Tgl_training_selesai, Jadwal_jam, Jadwal_tempat, Periode, Kode_karyawan, Kode_training, kode_tutor)
Primary key Kode_jadwal
Foreign key Kode_training references Training
Foreign key Kode_karyawan references Tutor
Foreign key Kode_Tutor reference Tutor
Tutor ( Kode_tutor, Kode_karyawan)
Foreign key Kode_karyawan reference karyawan
119
3.7.3.2.5. Tipe Relasi Superclass dan Subclass
Hubungan superclass dan subclass antara entitas Karyawan dan entitas
Tutor dengan Mandatory participation. Karena tidak ada disjoint
constraint, maka relasi ini direpresentasikan sebagai berikut:
Tutor (Kode_karyawan, Kode_tutor) Primary key Kode_karyawan Foreign key Kode_karyawan references Karyawan
Menempatkan Kode_karyawan ke dalam
Tutor Untuk model 1:1 relationship memiliki
dengan mandatory participation pada Tutor
Karyawan ( Kode_karyawan, Nama_karyawan, Email_karyawan, Telp_karyawan, Alamat_karyawan, Tgl_lahir,Tgl_masuk, ,Kode_divisi, Kode_Posisi, Kode_bagian, kode_pendidikan)
Primary key Kode_karyawan
Foreign key Kode_divisi references Divisi
Foreign key Kode_posisi references Posisi
Foreign key Kode_bagian references Bagian
Foreign key Kode_Pendidikan reference pendidikan
Tutor (Kode_karyawan, Kode_tutor)
Primary key Kode_karyawan
Foreign key Kode_karyawan references Karyawan
120
3.7.3.2.6. Tipe Relasi Biner many-to-many (*:*)
Hubungan antara entitas Karyawan, entitas training dan entitas Jadwal
membentuk entitas DetailJadwal
Jadwal ( Kode_jadwal, Nama_jadwal, Tgl_training_mulai, Tgl_training_selesai, Jadwal_jam, Jadwal_tempat, Periode, Kode_training,kode_karyawan)
Primary key Kode_jadwal
Foreign key Kode_training references Training
Foreign key Kode_Karyawan reference Karyawan
Karyawan ( Kode_karyawan, Nama_karyawan, Email_karyawan, Telp_karyawan, Alamat_karyawan, Tgl_lahir,Tgl_masuk, Kode_divisi, Kode_Posisi, Kode_bagian, Kode_pendidikan)
Primary key Kode_karyawan
Foreign key Kode_divisi references Divisi
Foreign key Kode_posisi references Posisi
Foreign key Kode_bagian references Bagian
Foreign key Kode_pendidikan references Pendidikan
121
3.7.3.2.7. Atribut Multivalue
Tidak memiliki atribut multivalue.
Training ( Kode_training, Nama_training, Kode_jenis_materi, Kode_jenis_training)
Primary key Kode_training
Foreign key Kode_jenis_training references JenisTraining
Foreign key Kode_jenis_materi references JenisMateri
DetailJadwalTrainingKaryawan (Kode_training, Kode_jadwal, Kode_karyawan, Jumlah_masuk, Jumlah_absen,status_training)
Primary key Kode_training,Kode_jadwal, Kode_karyawan
Foreign key Kode_training references Training
Foreign key Kode_jadwal references Jadwal
Foreign key Kode_karyawan references Karyawan
122
3.7.4. Memvalidasi Relasi Menggunakan Normalisasi
Database sudah dalam bentuk normalisasi pertama dan normalisasi ke dua,
karena database sudah ditentukan primary key –nya pada perancangan
konseptual, juga telah dihilangkan antara tabel header dan detail transaksi serta
telah dihilangkan atribut multi-value pada tahap menghapus fitur yang tidak
kompatibel di dalam tahap perancangan logikal. Maka pada tahap selanjutnya
adalah menghilangkan ketergantungan transitif (Transitive Depedency) sehingga
memenuhi aturan 3NF.
Tabel Karyawan
Karyawan (Kode_karyawan, Nama_karyawan, Email_karyawan, Telp_karyawan, Alamat_karyawan, Tgl_lahir
fd 1
(Primary key)
Tgl_masuk,Kode_divisi, Kode_posisi, Kode_bagian, Kode_pendidikan)
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
123
Tabel Training
Training (Kode_training, Nama_training, Kode_jenis_materi, Kode_jenis_training)
fd 1
(Primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF:Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
Tabel Tutor
Tutor (Kode_karyawan, Kode_tutor)
fd 1
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF:Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
124
Tabel Jadwal
Jadwal(Kode_jadwal, Nama_jadwal, Tgl_training_mulai, Tgl_training_selesai, Jadwal_tempat
fd 1
(primary key)
Jadwal_jam kode_training ,kode_karyawan)
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
Tabel JenisTraining
JenisTraining (Kode_jenis_training, Nama_jenis_training)
fd 1
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
125
Tabel JenisMateri
JenisMateri (Kode_jenis_materi, Nama_jenis_materi)
fd 1
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
Tabel Bagian
Bagian (Kode_bagian, Nama_bagian)
fd 1
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
Tabel Pendidikan
Pendidikan (Kode_pedidikan, Nama_pendidikan)
fd 1
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
126
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
Tabel Posisi
Posisi (Kode_posisi, Nama_posisi, Inisial_posisi)
fd 1
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
Tabel Divisi
Divisi (Kode_divisi, Nama_divisi)
fd 1
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
127
Tabel Akses
Akses (Username, Password)
fd
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
Tabel DetailJadwalTrainingKaryawan
DetailJadwalTrainingKaryawan (Kode_training, Kode_jadwal, Kode_karyawan
fd 1 (primary key)
Jumlah_masuk, Jumlah_absen, status_training)
(primary key)
Validasi 1NF: Sudah memenuhi bentuk normal 1NF karena tidak memiliki atribut yang
berulang
Validasi 2NF: Sudah memenuhi bentuk normal 2NF karena tidak memiliki partial
dependency
Validasi 3NF: Sudah memenuhi bentuk normal 3NF karena tidak memiliki transitive
dependency
3.7.4.1. Validasi Relasi Melalui Transaksi Pengguna
Berikut adalah validasi model data logikal yang telah dinormalisasi terhadap
transaksi pengguna:
128
Gambar 3.6Validasi ERD transaksi PT. SURYA TOTO INDONESIA Tbk.
Keterangan :
(a) Penginputan data karyawan
(b) Pengubahan data karyawan
(c) Penghapusan data karyawan
(d) Penginputan training
(j,k,r,s,v,w)
(g,h,i,l,p,u) (d,e,f,q,t)
(m,n,o)
(a,b,c)
(a,b,c)
(a,b,c)
(a,b,c)
(d,e,f) (d,e,f)
(a,b,c)
129
(e) Pengubahan training
(f) Penghapusan training
(g) Penginputan jadwal
(h) Pengubahan jadwal
(i) Penghapusan jadwal
(j) Penginputan peserta
(k) Penghapusan peserta
(l) Penginputan Absen
(m) Penginputan Akses
(n) Pengubahan Akses
(o) Penghapusan Akses
(p) Lihat laporan jadwal
(q) Lihat laporan training
(r) Lihat laporan daftar peserta
(s) Lihat laporan absensi
(t) Cetak laporan training
(u) Cetak laporan Jadwal training
(v) Cetak laporan daftar peserta
(w) Cetak laporan absensi
130
3.7.4.2. Definisi Integrity Constraint
3.7.4.2.1. Referential Integrity
Karyawan (Kode_karyawan, Nama_karyawan, Email_karyawan, Telp_karyawan,
Alamat_karyawan, Tgl_lahir, Tgl_masuk, Kode_divisi, Kode_posisi, Kode_bagian,
Kode_pendidikan)
Primary key (Kode_karyawan)
Foreign key (Kode_divisi) referencesDivisi ON UPDATE CASCADE ON DELETE
CASCADE
Foreign key (Kode_posisi) referencesPosisi ON UPDATE CASCADE ON DELETE
CASCADE
Foreign key (Kode_bagian) referencesBagian ON UPDATE CASCADE ON DELETE
CASCADE
Foreign key (Kode_pendidikan) references Pendidikan ON UPDATE CASCADE ON
DELETE CASCADE
Training (Kode_training, Nama_training, Kode_jenis_materi, Kode_jenis_training)
Primary key (Kode_training)
Foreign key (Kode_jenis_materi) referencesMateri ON UPDATE CASCADE ON
DELETE CASCADE
Foreign key (Kode_jenis_training) referencesJenisTraining ON UPDATE CASCADE
ON DELETE CASCADE
Tutor (Kode_karyawan, Kode_tutor)
Primary key (Kode_karyawan)
131
Foreign key (Kode_karyawan) referencesKaryawan (ON UPDATE CASCADE ON
DELETE CASCADE
Jadwal (Kode_jadwal, Nama_jadwal, T gl_training_mulai, Tgl_training_selesai
,Jadwal_jam, Jadwal_tempat, Kode_training, Kode_karyawan, Periode)
Primary key (Kode_Jadwal)
Foreign key (Kode_karyawan) references Karyawan (ON UPDATE CASCADE ON
DELETE CASCADE
Foreign key (Kode_training) references Training (ON UPDATE CASCADE ON
DELETE CASCADE
JenisTraining (Kode_jenis_training, Nama_jenis_training)
Primary key (Kode_jenis_training)
JenisMateri (Kode_jenis_materi, Nama_jenis_materi)
Primary key (Kode_jenis_materi)
Bagian (Kode_bagian, Nama_bagian)
Primary key (Kode_bagian)
Pendidikan (Kode_pedidikan, Nama_pendidikan)
Primary key (Kode_pendidikan)
Posisi (Kode_posisi, Nama_posisi, Inisial_posisi)
Primary key ( Kode_posisi)
Divisi (Kode_divisi, Nama_divisi)
Primary key (Kode_divisi)
132
Akses (Username, Password)
Primary key (Username)
DetailJadwalTrainingKaryawan(Kode_training, Kode_jadwal, Kode_karyawan,
Jumlah_masuk, Jumlah_absen, Status_training)
Primary key (Kode_training, Kode_jadwal, Kode_karyawan)
Foreign key (Kode_training) references Training (ON UPDATE CASCADE ON
DELETE CASCADE
Foreign key (Kode_jadwal) references Jadwal (ON UPDATE CASCADE ON
DELETE CASCADE
Foreign key (Kode_karyawan) references Karyawan (ON UPDATE CASCADE ON
DELETE CASCADE
3.7.4.3. Review logical data model with user
133
Gambar 3.7 ERD Normal
3.7.4.4. Menyatukan logical data model menjadi model global
Dikarenakan PT. SURYA TOTO INDONESIA TBK hanya memiliki satu
view, maka model data logikal global yang dirancang sama dengan model data logikal
lokal itu sendiri.
134
3.7.5. Perancangan Basis Data Fisikal
3.7.5.1. Penerjemahan Model Data Logikal Global untuk DBMS
Target
3.7.5.1.1. Perancangan Relasi Dasar
Karyawan
Domain Kode_Karyawan variable length char string, length 10
Domain Nama_Karyawan variable length varchar string, length 30
Domain Email_Karyawan variable length varchar string, length 50
Domain Telp_Karyawan variable length varchar string, length 20
Domain Alamat_Karyawan variable length varchar string, length 100
Domain Tgl_lahir variable date
Domain Tgl_masuk variable date
Domain Kode_Divisi variable length char string, length 1
Domain Kode_Posisi variable length char string, length 10
Domain Kode_Bagian variable length char string, length 10
Domain Kode_Pendidikan variable length char string, length 1
Karyawan (
Kode_karyawan NOT NULL,
Nama_Karyawan NOT NULL,
Email_Karyawan NOT NULL,
Telp_Karyawan NOT NULL,
Alamat_Karyawan NOT NULL,
Tgl_lahir NOT NULL,
Tgl_masuk NOT NULL,
135
Kode_Divisi NOT NULL,
Kode_Posisi NOT NULL,
Kode_Bagian NOT NULL,
Kode_Pendidikan NOT NULL,
PRIMARY KEY (Kode_Karyawan),
FOREIGN KEY Kode_Divisi REFERENCES Divisi ONUPDATE CASCADE ON
DELETE CASCADE
FOREIGN KEY Kode_Posisi REFERENCES Posisi ONUPDATE CASCADE ON
DELETE CASCADE
FOREIGN KEY Kode_Bagian REFERENCES Bagian ONUPDATE CASCADE ON
DELETE CASCADE
FOREIGN KEY Kode_Pendidikan REFERENCES Pendidikan ONUPDATE
CASCADE ON DELETE CASCADE
)
Training
Domain Kode_Training variable length char string, length 5
Domain Nama_Training variable length varchar string, length 30
Domain Kode_Jenis_Training variable length char string, length 5
Domain Kode_Jenis_materi variable length char string, length 5
Training (
Kode_training NOT NULL,
Nama_training NOT NULL,
Kode_jenis_training NOT NULL,
136
Kode_jenis_materi NOT NULL,
PRIMARY KEY (Kode_Training),
FOREIGN KEY Kode_Jenis_Training REFERENCES JenisTraining ONUPDATE
CASCADE ON DELETE CASCADE
FOREIGN KEY Kode_jenis_materi REFERENCESJenisMateri ONUPDATE
CASCADE ON DELETE CASCADE
)
Tutor
Domain Kode_karyawan variable length char string, length 10
Domain Kode_Tutor variable length char string, length 5
Tutor (
Kode_karyawn NOT NULL,
Nama_TutorNOT NULL,
PRIMARY KEY (Kode_karyawan),
FOREIGN KEY Kode_karyawan REFERENCES Karyawan ON UPDATE CASCADE
ON DELETE CASCADE
)
Jadwal
Domain Kode_Jadwal variable length char string, length 5
Domain Kode_Training variable length char string, length 5
Domain Kode_Karyawan variable length char string, length 10
Domain Nama_Jadwal variable length varchar string, length 50
137
Domain Jadwal_Jam variable time
Domain Tgl_training_mulai date
Domain Tgl_training_selesai date
Domain Jadwal_Tempat variable length varchar string, length 50
Domain Periode variable length varchar 4
Jadwal (
Kode_Jadwal NOT NULL,
Kode_Training NOT NULL,
Kode_Karyawan NOT NULL,
Nama_Jadwal NOT NULL,
Jadwal_Jam NOT NULL,
Tgl_training_mulai NOT NULL,
Tgl_training_selesai NOT NULL,
Jadwal_Tempat NOT NULL,
Periode NOT NULL,
PRIMARY KEY (Kode_Jadwal)
FOREIGN KEY Kode_karyawan REFERENCES Karyawan ON UPDATE CASCADE
ON DELETE CASCADE
FOREIGN KEY Kode_training REFERENCES Training ON UPDATE CASCADE ON
DELETE CASCADE
)
138
JenisTraining
Domain Kode_Jenis_Training variable length char string, length 5
Domain Nama_Jenis_Training variable length varchar string, length 30
JenisTraining (
Kode_Jenis_Training NOT NULL,
Nama_Jenis_Training NOT NULL,
PRIMARY KEY (Kode_Jenis_Training),
)
JenisMateri
Domain Kode_Jenis_Materi variable length char string, length 5
Domain Nama_Jenis_Materi variable length varchar string, length 30
JenisMateri (
Kode_Jenis_Materi NOT NULL,
Nama_Jenis_Materi NOT NULL,
PRIMARY KEY (Kode_Jenis_Materi),
)
Bagian
Domain Kode_Bagian variable length char string, length 10
Domain Nama_Bagian variable length varchar string, length 30
Bagian (
Kode_Bagian NOT NULL,
Nama_Bagian NOT NULL,
139
PRIMARY KEY (Kode_Bagian)
)
Pendidikan
Domain Kode_Pendidikan length char string, length 1
Domain Nama_Pendidikan variable length varchar string, length 30
Pendidikan (
Kode_Pendidikan NOT NULL,
Nama_Pendidikan NOT NULL,
PRIMARY KEY (Kode_Pendidikan)
)
Posisi
Domain Kode_Posisi length char string, length 10
Domain Nama_Posisi variable length varchar string, length 30
Domain Inisial_Posisi variable length char, length 5
Posisi (
Kode_Posisi NOT NULL,
Nama_Posisi NOT NULL,
Inisial_Posisi NOT NULL,
PRIMARY KEY (Kode_Posisi),
)
140
Divisi
Domain Kode_Divisi length char string, length 1
Domain Nama_Divisi variable length varchar string, length 50
Divisi (
Kode_Divisi NOT NULL,
Nama_Divisi NOT NULL,
Inisial_Posisi NOT NULL,
PRIMARY KEY (Kode_Divisi)
)
Akses
Domain Username length char string, length 20
Domain Password variable length varchar string, length 20
Akses (
UsernameNOT NULL,
PasswordNOT NULL,
PRIMARY KEY (Username)
)
DetailJadwalTrainingKaryawan
Domain Kode_Jadwal variable length char string, length 5
Domain Kode_Training variable length char string, length 5
Domain Kode_Karyawan variable length char string, length 10
Domain Jumlah_masuk variable int
141
Domain Jumlah_absen variable int
Domain Status_Training variable length varchar string, length 10
DetailJadwalTrainingKaryawan (
Kode_Jadwal NOT NULL,
Kode_Training NOT NULL,
Kode_Karyawan NOT NULL,
Jumlah_masuk NOT NULL,
Jumlah_absen NOT NULL,
Status_Training NOT NULL,
PRIMARY KEY (Kode_Jadwal, Kode_Training, Kode_karyawan)
FOREIGN KEY Kode_Training REFERENCES Training ON UPDATE CASCADE
ON DELETE CASCADE
FOREIGN KEY Kode_Jadwal REFERENCES Jadwal ON UPDATE CASCADE ON
DELETE CASCADE
FOREIGN KEY Kode_Karyawan REFERENCES Karyawan ON UPDATE CASCADE
ON DELETE CASCADE
)
142
3.7.5.2. Perancangan Representasi Fisikal
3.7.5.2.1. Analisa Transaksi
Berikut adalah analisa transaksi terhadap PT. SURYA TOTO INDONESIA Tbk :
A B C D I R U D I R U D I R U D I R U D
1. Karyawan O O O O O O 2. Divisi O O O 3. Posisi O O O 4. Bagian O O O 5. Pendidikan O O O 6. Tutor O 7. Training O O 8. JenisTraining O 9. JenisMateri O 10. Jadwal 11.DetailJadwalTrainingKaryawan 12. Akses
Tabel 3.35 Tabel analisa transaksi 1
Keterangan :
A. Penginputan data karyawan
B. Pengubahan data karyawan
C. Penghapusan data karyawan
D. Penginputan Training
143
E F G H I R U D I R U D I R U D I R U D
1. Karyawan 2. Divisi 3. Posisi 4. Bagian 5. Pendidikan 6. Tutor O O 7. Training O O O O 8. JenisTraining O O 9. JenisMateri O O 10. Jadwal O O O O 11DetailJadwalTrainingKaryawan 12. Akses
Tabel 3.36 Tabel analisa transaksi 2
Keterangan :
E. Pengubahan Training
F. Penghapusan Training
G. Penginputan Jadwal
H. Pengubahan Jadwal
I J K I R U D I R U D I R U D
1. Karyawan O O 2. Divisi 3. Posisi 4. Bagian 5. Pendidikan 6. Tutor O 7. Training 8. JenisTraining 9. JenisMateri 10.DetailJadwalTrainingKaryawan O O O O 11. Jadwal O O 12. Akses
Tabel 3.37 Tabel analisa transaksi 3
144
Keterangan :
I. Penghapusan Jadwal
J. Penginputan peserta
K. Penghapusan peserta
L M N O I R U D I R U D I R U D I R U D
1. Karyawan 2. Divisi 3. Posisi 4. Bagian 5. Pendidikan 6. Tutor 7. Training 8. JenisTraining 9. JenisMateri 10.DetailJadwalTrainingKaryawan O 11. Jadwal 12. Akses O O O
Tabel 3.38 Tabel analisa transaksi 4
Keterangan :
L. Penginputan Absen
M. Penginputan Akses
N. Pengubahan Akses
O. Penghapusan Akses
145
P Q R S I R U D I R U D I R U D I R U D
1. Karyawan O O 2. Divisi 3. Posisi 4. Bagian 5. Pendidikan 6. Tutor 7. Training O O O O 8. JenisTraining 9. JenisMateri 10.DetailJadwalTrainingKaryawan O O 11. Jadwal O O O 12. Akses
Tabel 3.39 Tabel analisa transaksi 5
Keterangan :
P. Lihat laporan jadwal
Q. Lihat laporan training
R. Lihat laporan daftar peserta
S. Lihat laporan absensi
T U V W I R U D I R U D I R U D I R U D
1. Karyawan O O 2. Divisi 3. Posisi 4. Bagian 5. Pendidikan 6. Tutor 7. Training O O O O 8. JenisTraining 9. JenisMateri 10.DetailJadwalTrainingKaryawan O O 11. Jadwal O O O 12. Akses
Tabel 3.40 Tabel analisa transaksi 6
146
Keterangan :
T. Cetak laporan training
U. Cetak laporan Jadwal training
V. Cetak laporan daftar peserta
W. Cetak laporan absensi
3.7.5.2.2. Pemilihan Organisasi File
Tujuan dari langkah ini adalah untuk menentukan sebuah organisasi file yang efisien
untuk setiap base relasi. Dengan menggunakan SQL Server 2008 yang mempunyai
dua bentuk organisasi file indexes, yakni clustered dan non-clustered.
• clustered : indeks clustered mengorganisir baris – baris pada tabel ke
dalam urutan tertentu.
• non clustered : indeks non-clustered memiliki struktur yang terpisah dari
tabel. Urutan fisik dari baris tabel tidak mengikuri urutan dari file indeks.
3.7.5.2.3. Memilih Index
• Karyawan
CREATE CLUSTERED INDEX id_Kode_karyawan ON Karyawan (Kode_karyawan)
CREATE NON_CLUSTERED INDEX id_Nama_karyawan ON Karyawan
(Nama_karyawan)
CREATE NON_CLUSTERED INDEX id_Email_karyawan ON Karyawan
(Email_karyawan)
CREATE NON_CLUSTERED INDEX id_Telp_karyawan ON Karyawan
(Telp_karyawan)
147
CREATE NON_CLUSTERED INDEX id_Alamat_karyawan ON Karyawan
(Alamat_karyawan)
CREATE NON_CLUSTERED INDEX id_Tgl_lahir ON Karyawan(Tgl_lahir)
CREATE NON_CLUSTERED INDEX id_Tgl_masuk ON Karyawan (Tgl_masuk)
CREATE CLUSTERED INDEX id_Kode_divisi ON Divisi (Kode_divisi)
CREATE CLUSTERED INDEX id_Kode_posisi ON Posisi (Kode_posisi)
CREATE CLUSTERED INDEX id_Kode_bagian ON Bagian (Kode_bagian)
CREATE CLUSTERED INDEX id_Kode_pendidikan ON Pendidikan
(Kode_pendidikan)
• Training
CREATE CLUSTERED INDEX id_Kode_training ON Training (Kode_training)
CREATE NON_CLUSTERED INDEXid_Nama_training ON Training (Nama_
training)
CREATE NON_CLUSTERED INDEX id_Kode_jenis_training ON JenisTraining
(Kode_jenis_training)
CREATE NON_CLUSTERED INDEX id_Kode_jenis_materi ON JenisMateri
(Kode_jenis_materi)
• JenisMateri
CREATE NON_CLUSTERED INDEX id_Kode_jenis_materi ON JenisMateri
(Kode_jenis_materi)
CREATE NON_CLUSTERED INDEX id_Nama_jenis_materi ON JenisMateri
(Nama_jenis_materi)
148
• Tutor
CREATE NON_CLUSTERED INDEX id_Kode_karyawan ON Karyawan
(Kode_karyawan)
CREATE NON_CLUSTERED INDEX id_Kode_tutor ON Tutor (Kode_tutor)
• JenisTraining
CREATE NON_CLUSTERED INDEX id_Kode_Jenis_Training ON JenisMateri
(Kode_Jenis_Training)
CREATE NON_CLUSTERED INDEX id_Nama_Jenis_Training ON JenisMateri
(Nama_Jenis_Training)
• Jadwal
CREATE NON_CLUSTERED INDEX id_Kode_jadwal ON Jadwal (Kode_Jadwal)
CREATE NON_CLUSTERED INDEX id_Kode_training ON Training (Kode_training)
CREATE NON_CLUSTERED INDEX id_Kode_karyawanON Karyawan
(Kode_karyawan)
CREATE NON_CLUSTERED INDEX id_Nama_jadwalON Jadwal (Nama_jadwal)
CREATE NON_CLUSTERED INDEX id_Tgl_mulai_training ON Jadwal
(Tgl_mulai_training)
CREATE NON_CLUSTERED INDEX id_Tgl_selesai_trainingON Jadwal
(Tgl_selesai_training)
CREATE NON_CLUSTERED INDEX id_Jadwal_tempatON Jadwal (Jadwal_tempat)
CREATE NON_CLUSTERED INDEX id_Jadwal_jamON Jadwal (Jadwal_jam)
149
CREATE NON_CLUSTERED INDEX id_Periode ON Jadwal (Periode)
• Posisi
CREATE NON_CLUSTERED INDEX id_Kode_posisi ON Posisi (Kode_posisi)
CREATE NON_CLUSTERED INDEX id_Nama_posisi ON Posisi (Nama_posisi)
CREATE NON_CLUSTERED INDEX id_Inisial_posisi ON Posisi (Inisial_posisi)
• Bagian
CREATE NON_CLUSTERED INDEX id_Kode_bagian ON Bagian (Kode_bagian)
CREATE NON_CLUSTERED INDEX id_Nama_bagian ON Bagian (Nama_bagian)
• Divisi
CREATE NON_CLUSTERED INDEX id_Kode_divisi ON Divisi (Kode_divisi)
CREATE NON_CLUSTERED INDEX id_Nama_divisi ON Divisi (Nama_divisi)
• Pendidikan
CREATE NON_CLUSTERED INDEX id_Kode_pendidikan ON Pendidikan
(Kode_pendidikan)
CREATE NON_CLUSTERED INDEX id_Nama_pendidikan ON Pendidikan
(Nama_pendidikan)
• Akses
CREATE NON_CLUSTERED INDEX id_Username ON Akses (Username)
150
CREATE NON_CLUSTERED INDEX id_Password ON Akses (Password)
• DetailJadwalTrainingKaryawan
CREATE NON_CLUSTERED INDEX id_Kode_jadwal ON Jadwal (Kode_Jadwal)
CREATE CLUSTERED INDEX id_Kode_training ON Training (Kode_training)
CREATE CLUSTERED INDEX id_Kode_karyawan ON Karyawan (Kode_karyawan)
CREATE NON_CLUSTERED INDEX id_Jumlah_masuk ON
DetailJadwalTrainingKaryawan (Kode_pendidikan)
CREATE NON_CLUSTERED INDEX id_Jumlah_absen ON
DetailJadwalTrainingKaryawan (Kode_pendidikan)
CREATE NON_CLUSTERED INDEX id_Status_training ON
DetailJadwalTrainingKaryawan(Kode_pendidikan)
3.7.5.3. Perancangan Mekanisme Pengamanan Data
Berikut ini perancangan mekanisme keamanan yang meliputi pembuatan user
dengan menggunakan sintaks SQL untuk memberikan hak pengaksesan data
untuk HRD, yaitu sebagai berikut :
Tabel Hak Akses :
HRD Hak Akses I R U D
Entitas 1. Karyawan O O O O 2. Divisi O O O O 3. Posisi O O O O 4. Bagian O O O O 5. Pendidikan O O O O
151
Tabel 3.41 Tabel Hak Akses
Tabel Karyawan
Grant select, insert, update, delete on Karyawan to HRD
Tabel Divisi
Grant select, insert, update, delete on Divisi to HRD
Tabel Posisi
Grant select, insert, update, delete on Posisi to HRD
Tabel Bagian
Grant select, insert, update, delete on Bagian to HRD
Tabel Pendidikan
Grant select, insert, update, delete on Pendidikan to HRD
Tabel Tutor
Grant select, insert, update, delete on Tutor to HRD
Tabel Training
Grant select, update, delete on Training to HRD
Tabel JenisTraining
Grant select, update, delete on JenisTraining to HRD
Tabel JenisMateri
6. Tutor O O O O 7. Training O O O O 8. JenisTraining O O O O 9. JenisMateri O O O O 10.DetailJadwalTraining O O O O 11. Jadwal O O O O 12.Akses O O O O
152
Grant select, insert, update, delete on JenisMateri to HRD
Tabel Jadwal
Grant select, insert, update, delete on Jadwal to HRD
Tabel Akses
Grant select, insert, update, delete on Akses to HRD
Tabel Detail Jadwal Training Karyawan
Grant select, insert, update, delete on DetailJadwalTrainingKaryawan to HRD
3.8. Perancangan Program Aplikasi
Pembahasan pada perancangan program aplikasi meliputi perancangan struktur
menu, pembuatan State Transition Diagram, perancangan layar, perancangan
laporan, dan spesifikasi proses.
3.8.1. Perancangan Struktur Menu
153
Pada gambar 3.8 dapat dilihat perancangan struktur menu dari aplikasi yang akan dibuat.
Gambar 3.8 Struktur Menu
3.8.1.1. State Transition Diagram (selanjutnya disingkat STD)
Gambar-gambar dibawah ini merupakan STD dari aplikasi yang akan dibuat.
154
Gambar 3.9 STD Halaman Login
155
Gambar 3.10 STD Halaman File
156
Gambar 3.11 STD HalamanKaryawan
157
Gambar 3.12 STD HalamanKaryawan – History Karyawan
158
Gambar 3.13 STD HalamanKaryawan – Divisi
159
Gambar 3.14 STD HalamanKaryawan - Bagian
160
Gambar 3.15 STD HalamanKaryawan - Pendidikan
161
Gambar 3.16 STD HalamanKaryawan - Posisi
162
Halaman Menu
Utama
Menu Training
Klik Menu TrainingTampilkan Menu
Training
Klik BatalTampilkan Halaman
Menu Utama
Jenis Training Jenis Materi
Training
Klik Jenis MateriTampilkan Jenis
Materi
Klik Jenis TrainingTampilkan Jenis
Training
Klik TrainingTampilkan Training
Klik BatalTampilkan Halaman
Menu Utama
Klik BatalTampilkan Halaman
Menu Utama
Klik BatalTampilkan Halaman
Menu Utama
Gambar 3.17 STD Halaman Training
163
Gambar 3.18 STD Halaman Training – Jenis Training
164
Gambar 3.19 STD Halaman Training – JenisMateri
165
Gambar 3.20 STD Halaman Training – Jadwal
166
Gambar3.21 STD Halaman Training – Training
167
Gambar 3.22 STD Halaman Laporan
168
Gambar 3.23 STD HalamanPerlengkapan
169
3.8.2. PerancanganLayar
Pada sub bab ini akan ditampilkan perancangan layar yang akan diterapkan dalam
pembuatan aplikasi.
Gambar 3.24PerancanganLayar Login
170
Gambar 3.25 Perancangan Layar Menu Utama
171
Gambar 3.26 Perancangan Layar Karyawan
172
Gambar 3.27 Perancangan Layar History Karyawan
173
Gambar 3.28 Perancangan Layar Divisi
174
Gambar 3.29 Perancangan Layar Bagian
175
Gambar 3.30 Perancangan Layar Pendidikan
176
Gambar 3.31Perancangan Layar Posisi
177
Gambar 3.32 Perancangan Layar Training
178
Gambar 3.33 Perancangan Layar Jenis Training
179
Gambar 3.34 Perancangan Layar Jenis Materi
180
Gambar 3.35Perancangan Layar Jadwal
181
Gambar 3.36 Perancangan Layar Tutor
182
Gambar 3.37 Perancangan Layar Laporan Training
183
Gambar 3.38 Perancangan Layar Cetak Laporan Training
184
Gambar 3.39 Perancangan Laporan Training
185
Gambar 3.40 Perancangan Layar Laporan Jadwal
186
Gambar 3.41 Perancangan Layar Cetak Laporan Jadwal
187
Gambar 3.42 Perancangan Laporan Jadwal Training
188
Gambar 3.43 Perancangan Layar Laporan Daftar Peserta
189
Gambar 3.44 Perancangan Layar Cetak Laporan Daftar Peserta
190
Gambar 3.45 Perancangan Laporan Daftar Peserta
191
Gambar 3.46 Perancangan Layar Laporan Absensi
192
Gambar 3.47 Perancangan Layar Cetak Laporan Absensi
193
Gambar 3.48 Perancangan Laporan Absensi
194
Gambar 3.49 Perancangan Layar Daftar Peserta
195
Gambar 3.50 Perancangan Layar Absensi
196
Gambar 3.51 Perancangan Layar Detail Absensi
197
Gambar 3.52 Perancangan Layar Detail History
198
Gambar 3.53 Perancangan Layar Tambah Pengguna
199
Gambar 3.54 Perancangan Layar Ubah Password
200
Gambar 3.55 Perancangan Layar Hapus Pengguna