BAB 3 ANALISIS DAN PERANCANGAN 3.1. Sejarah …thesis.binus.ac.id/Doc/Bab3/2012-1-00112-IF Bab...

Post on 28-Aug-2018

225 views 0 download

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