BAB 3
ANALIS IS 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. M aka 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 M odal 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 M ulti 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
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 :
• M empersembahkan produk yang bermanfaat dan berkualitas tinggi • M emberikan pelayanan prima untuk memenuhi kepuasan pelanggan • M encintai pekerjaan dengan sepenuh hati
• M enghargai individu dan membina kerjasama
• M elindungi lingkungan dunia dengan penghematan sumber daya alam dan energi.
3.2. S truktur 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.
Gambar 3.1 S truktur Organisasi
3.3. Tugas dan Wewenang
President Director :
1. Bertanggung jawab atas kemajuan dan kelancaran perusahaan yang dipimpinnya.
2. M empimpin rapat yang diadakan oleh perusahaan dan memberikan pengesahan terhadap hasil rapat yang berguna untuk kemajuan perusahaan. 3. M enerima pertanggungjawaban setiap manager dalam melaksanakan
tugasnya masing-masing
4. M enetapkan keputusan dan sasaran perusahaan.
Direktur :
1. M emimpin perusahaan dengan menerbitkan kebijakan-kebijakan perusahaan 2. M emilih, menetapkan, mengawasi tugas dari karyawan dan kepala bagian
(manajer)
3. M enyetujui anggaran tahunan perusahaan
4. M enyampaikan laporan kepada pemegang saham atas kinerja perusahaan.
Teknikal Advisor :
1. M elakukan analisa awal terhadap setiap kasus teknik
2. M emberikan informasi problem baru yang terkait dengan keselamatan dan kuantitas
Manajemen Representatif dan Quality Control :
1. M emastikan bahwa proses-proses yang diperlukan untuk sistem manajemen mutu ditetapkan diimplementasikan dan dipelihara
2. M elapor kepada manajemen puncak mengenai kinerja sistem manajemen mutu dan setiap kebutuhan perbaikan
3. M enjamin promosi kesadaran peryaratan pelanggan pelanggan di seluruh organisasi.
Manajer akunting :
1. M embuat laporan pajak
2. M enghitung dan membuat laporan laba rugi 3. M embuat laporan pendapatan perusahaan
4. M enghitung persediaan produk di counter dan di gudang berdasarkan harga cost.
Manajer Purchasing :
1. M enetapkan dan memelihara prosedur pembelian untuk mengendalikan pembelian di PT. Surya Toto Indonesia
2. M engesahkan dokumen pembelian sebelum dokumen dikirim ke pemasok 3. M emilih dan mengevaluasi pemasok yang memenuhi persyaratan yang
ditetapkan.
Manajer HRD :
2. M engatur dan menyimpan data-data mengenai karyawan
3. M enerima dan mengecek permohonan cuti dan absensi karyawan
4. M enyiapkan dan mengatur jadwal interview dan testing calon karyawan baru
5. M enyiapkan dan mengatur jadwal training karyawan
Manajer Produksi :
1. M erencanakan kegiatan produksi dan setiap bagian pendukungnya 2. M engontrol kegiatan produksi dan setiap bagian pendukungnya
3. M elakukan koordinasi dengan departemen penjualan terkait dengan order yang akan dikerjakan dan jadwal pengiriman
4. M engontrol kualitas produksi baik proses maupun mutu.
Manajer PPIC :
1. M enginput data hasil produksi dari semua seksi 2. M embuat rencana produksi semua seksi
3. M emantau stok barang yang ada
4. M embuat rencana pengiriman barang ke pelanggan
5. M emantau 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
Proses ini dimulai dari menganalisa laporan evaluasi tahunan berdasarkan QCDM S(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 QCDM S.Setelah menganalisa laporan QCDM S, 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 QCDM S.Laporan tema tahunan yang telah dibuat oleh HRD, HRD memberikan laporan tersebut kepada QA dan Direktur untuk ditandatangani dan disetujui.
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, M R/IQC, Direktur untuk disetujui dan ditandatangani.
3.4.3. Proses penjadwalan tutor intern
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.
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.
Tabel 3.5 Proses Pengolahan Daftar Pegawai dan Materi (Ekstern)
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.
Tabel 3.6 Proses Penjadwalan Training Ekstern
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.
Tabel 3.7 Absensi Intern – Ekstern (In House)
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. M anager 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.5Masalah 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. M asalah 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
digunakan adalah menggunakan Microsoft Access. Hal ini mengakibatkan kurang efektifnya pencarian data.
2. M asalah 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 M icrosoft 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.
a. M emiliki sistem basis data yang bisa menampung semua data pegawai dan data materitraining
b. M empunyai catatan laporan pegawai yang sudah menjalani training, maupun yang belum melakukan training, laporan absensi training dan laporan historytraining pegawai.
c. M engetahui data pegawai yang belum menjalani training maupun yang sudah melakukan training yang ditetapkan.
d. M empermudah dalam membantu membuat keputusan mengenai mutasi maupun rotasi pegawai yang membutuhkan data historytraining pegawai. e. M empermudah untuk melakukan perubahan pada data materi yang ada atau
menambah data materi baru.
f. M empermudah dalam menginput, mencari dan menampilkan data training pegawai.
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 M erupakan entitas yang memberikan
informasi mengenai karyawan
Pekerja Karyawan mengikuti training perusahaan
2. Divisi M erupakan entitas yang memberikan informasi
mengenai lokasi perusahaan.
Cabang PT. Surya Toto memiliki 3 divisi. Divisi Cikupa, Pasar Kemis, dan Serpong
3. Bagian M erupakan entitas yang memberikan informasi
mengenai bagian pegawai dalam perusahaan.
Setiap bagian memiliki banyak karyawan, dan dapat terdiri dari beberapa posisi.
4. Posisi M erupakan entitas yang memberikan informasi
mengenai posisi karyawan dalam perusahaan.
Jabatan Setiap posisi dapat terdiri dari beberapa bagian dan banyak karyawan.
5. Training M erupakan 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 M erupakan entitas yang menjelaskan isi materi training
Pengajar Pengajar menjelaskan isi materi kepada
karyawan pada saat training berlangsung
7. Jadwal M erupakan entitas yang memberikan informasi mengenaitanggal dan tempat diadakannya training Jadwal untuk menentukan berjalannya training
8. Jenis Training M erupakan entitas yang memberikan informasi tentang jenis training yang ada.
Jenis training berfungsi untuk menentukan training yang akan dilakukan.
9. Jenis M ateri M erupakan entitas yang berfungsi untuk
memberikan informasi tentang jenis materi training.
Jenis materi merupakan bahan materi yang akan digunakan untuk training yang diadakan.
10. Pendidikan M erupakan entitas yang berfungsi untuk memberikan informasi tentang pendidikan karyawan Pendidikan berfungsi untuk memberikan informasi pendidikan yang dicapai oleh karyawan
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 M erupakan entitas yang
berfungsi untuk
memberikan hak akses menjalankan program
Akses berfungsi sebagai hak akses untuk menggunakan program
b. Mengidentifikasi Relationship
Nama Entitas Multi- Relationship Nama Entitas
Multi-Training 1.. * M engakibatkan 1.. * M empunyai 1.. * M empunyai 1.. * M empunyai Jadwal JenisM ateri JenisTraining Karyawan 1.. * 1.. 1 1.. 1 1.. * Tutor 1.. 1 M enerima 1.. 1 Bagian Jadwal Karyawan 1.. * 1.. 1 Karyawan 1.. * M enempati 1.. * M enerima 1.. * M empunyai 1.. 1 M enempati 1.. * M enempati 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
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
3. entitas JenisMateri
Attribute Deskripsi Panjang dan tipe
data
null
Multi-valued
Kode_Jenis_M ateri Kode Jenis materi Char(5) No No Nama_Jenis_M ateri 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
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
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
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_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
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
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
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. JenisM ateri Kode_jenis_materi Kode_jenis_materi
4. Tutor Kode_tutor Kode_tutor
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
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. S URYA TOTO
INDONES IA Tbk.
(g,h,i,k)
(d,e,f)
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:
3.7.2. Pemilihan DBMS
Pemilihan DBM S dipengaruhi oleh beberapa faktor sebagai berikut:
1. Kemudahan dalam penggunaan : DBM S sebaiknya mudah dipergunakan oleh penggunanya.
2. Kemudahan dalam administrasi : DBM S sebaiknya mudah diadministrasikan.
3. Kehandalan : DBM S sebaiknya mampu mengamankan data apabila terjadi kegagalan piranti lunak atau keras.
4. Biaya : biaya dari DBM S sebaiknya tidak melebihi anggaran yang diperkirakan oleh perusahaan.
5. Keamanan : DBM S sebaiknya dapat membedakan dan memilih di antara berbagai tingkat pengguna dari yang tidak memiliki hak akses hingga hak administrasi penuh.
6. Kesesuaian : DBM S sebaiknya dapat bekerja dengan komponen piranti keras dan lunak lainnya dengan baik di dalam sistem manajemen informasi.
7. Persyaratan minimum : DBM S sebaiknya mampu bekerja pada platform computer yang digunakan untuk menjalankan sistem manajemen informasi.
8. Kedekatan dengan basis data : Jika struktur dan operasi dari DBM S sudah diketahui, maka waktu yang seharusnya dihabiskan untuk mempelajari DBM S dapat difokuskan pada perancangan.
9. Scalability : M empertimbangkan faktor besar dan kecilnya suatu perusahaan, dan seberapa banyaknya data yang ditampung pada DBM S 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 -M emory M inimal: 512M B 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, M ultiprise 3000, eServer z-series. Hardware -Processor Windows : 166 M hz atau lebih
Linux : Intel 32-bit, Intel 64-bit, S/390 9672 generation atau lebih, M ultiprise3000, eServer z-Series. Solaris : Solaris UltraSPARC-based computer -M emory 128 M B RAM
atau lebih
-Hard disk space 270 M B (Full Installation), 250 M B (Typical), 95 M B (minimal), Desktop Engine: 44 M B, Analysis services: minimum 50 M B dan 130 M B typical -M emory 128 M B RAM (diutamakan 256 M B) Virtual M emory : Initial size 200 M B, maximum size 400 M B -Hard disk space 140 M B pada Drive System
+4.5 GB untuk Oracle Home Drive (FAT) atau 2.8 GB untuk Oracle Home Drive (NTFS) Typical Installation: M inimal 450 s/d 550 M B Compact Installation: M inimal 350 s/d 400 M B Custom Installation: M inimal 350 s/d 700 M B
-Hard disk space 140 M B pada Drive System
(diutamakan 256M B) Virtual M emory : Initial size 50M B, maximum size 400 M B
-Hard disk space 100 M B (diutamakan)
-Hard disk space 100 M B (diutamakan)
English Query: 80 M B +4.5 GB untuk Oracle Home Drive (FAT) atau 2.8 GB untuk Oracle Home Drive (NTFS) Typical Installation: M inimal 450 s/d 550 M B Compact Installation: M inimal 350 s/d 400 M B Custom Installation: M inimal 350 s/d 700 M B 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
language (3GL) routines
-Feature ARRAYS Supported
-Feature Back up dan Security
Supported
Tabel 3.33 Tabel perbandingan DBMS
Dari tabel perbandingan DBM S dan beberapa faktor yang dipertimbangkan untuk memilih DBM S, penulis menyarankan M icrosoft SQL Server 2000 sebagai DBM S yang dipergunakan untuk mengimplementasikan rancangan basis data. Keputusan ini diambil atas pertimbangan beberapa faktor berikut ini:
1. M icrosoft SQL Server 2000 memiliki kemudahan pengguna yang lebih baik dari Oracle 9i maupun MySQL. Hal ini terlihat dari data diatas yang menyebutkan M icrosoft 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. M icrosoft SQL Server 2000 dan MySQL hampir sama, namun M icrosoft SQL Server 2000 lebih baik sedikit dari M ySQL karena
3. Dalam segi kehandalan Oracle 9i paling baik, kedua terbaik adalah M icrosoft 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 M icrosoft SQL Server 2000 berada di tengah-tengah dalam hal biaya.
5. Oracle 9i mempunyai keamanan paling baik. Kedua, M icrosoft 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 M icrosoft SQL Server 2000 namun hanya dapat berjalan di sistem operasi berbasis UNIX. M icrosoft SQL Server 2000 juga hanya dapat berjalan pada sistem operasi buatan M icrosoft. 7. Untuk persyaratan minimum MySQL paling baik. Urutan kedua
adalah M icrosoft SQL Server 2000, kemudian Oracle 9i.
8. Dari segi familiaritasnya M icrosoft SQL Server 2000 adalah yang terbaik karena sudah sangat banyak yang bisa mengoperasikannya. Sedangkan Oracle 9i paling jarang dipakai.Dilihat dari faktor skalabilitasnya, M icrosoft SQL Server 2000 atau MySQL cocok untuk diimplementasikan pada perusahan-perusahanan kalangan
menengah. Boleh saja menggunakan Oracle 9i, tetapi hal ini dirasa terlalu berlebihan.
Berikut adalah tabel analisa fitur-fitur DBM S:
Features Rating Weighting S core
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
M embuat 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 :
3.7.3.1. Menghilangkan Fitur yang tidak Kompatibel dengan Model
Relasional
Berikutini adalah tahap-tahapdalammenghilan gkanfitur-fituryangtidaksesuaidenganmodelrelas ional.
3.7.3.1.1. Mengh ilangkanMany-ToMany(*:*)BinaryRelatio nsh ip
a. Relasi many-to-many (*:*)pada entitas Karyawan, Training dan jadwal akan menghasilkan sebuah entitas baru yaitu,
DetailJadwalTrainingKaryawan
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. MemperolehRela siBagiModel DataLogikalLoka l
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
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 )
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
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 M enempatkan 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
M enempatkan 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)
Hubungan antara entitas Karyawan dengan entitas Bagian M enempatkan 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)
Hubungan antara entitas Karyawan dengan entitas Pendidikan M enempatkan 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)
Hubungan antara entitas JenisM ateri dengan entitas Training
Hubungan antara entitas JenisTraining dengan entitas Training M enempatkan 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 JenisM ateri
JenisMateri ( Kode_jenis_materi,
Nama_jenis_materi)
Primary key Kode_jenis_materi
M enempatkan 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 JenisM ateri
JenisTraining ( Kode_jenis_training,
Nama_jenis_training)
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
M enempatkan 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
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
M enempatkan 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
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
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
JenisM ateri
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
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. M aka 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
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
Tabel Jadwal
Jadwal(Kode_jadwal, Nama_jadwal, T gl_training_mulai, T gl_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
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
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
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:
Gambar 3.6Validasi ERD transaksi PT. S URYA TOTO INDONES IA 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)
(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
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) referencesM ateri ON UPDATE CASCADE ON
DELETE CASCADE
Foreign key (Kode_jenis_training) referencesJenisTraining ON UPDATE CASCADE
ON DELETE CASCADE
Tutor (Kode_karyawan, Kode_tutor)
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)
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
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.
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,
Kode_Divisi NOT NULL, Kode_Posisi NOT NULL, Kode_Bagian NOT NULL, Kode_Pendidikan NOT NULL, PRIM ARY 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_materi NOT NULL, PRIM ARY KEY (Kode_Training),
FOREIGN KEY Kode_Jenis_Training REFERENCES JenisTraining ONUPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY Kode_jenis_materi REFERENCESJenisM ateri 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,
PRIM ARY 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
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,
PRIM ARY 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
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, PRIM ARY KEY (Kode_Jenis_Training), )
JenisMateri
Domain Kode_Jenis_M ateri variable length char string, length 5 Domain Nama_Jenis_M ateri variable length varchar string, length 30 JenisM ateri (
Kode_Jenis_M ateri NOT NULL, Nama_Jenis_M ateri NOT NULL, PRIM ARY KEY (Kode_Jenis_M ateri), )
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,
PRIM ARY 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, PRIM ARY 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, PRIM ARY KEY (Kode_Posisi), )
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, PRIM ARY KEY (Kode_Divisi) )
Akses
Domain Username length char string, length 20
Domain Password variable length varchar string, length 20 Akses (
UsernameNOT NULL, PasswordNOT NULL,
PRIM ARY 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
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,
PRIM ARY 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
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. JenisM ateri 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
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. JenisM ateri 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. JenisM ateri 10.DetailJadwalTrainingKaryawan O O O O 11. Jadwal O O 12. Akses
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. JenisM ateri 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
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. JenisM ateri 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. JenisM ateri 10.DetailJadwalTrainingKaryawan O O 11. Jadwal O O O 12. Akses
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)
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 JenisM ateri (Kode_jenis_materi)
• JenisMateri
CREATE NON_CLUSTERED INDEX id_Kode_jenis_materi ON JenisM ateri (Kode_jenis_materi)
CREATE NON_CLUSTERED INDEX id_Nama_jenis_materi ON JenisM ateri (Nama_jenis_materi)