88
Di dalam bab 4 akan dibahas mengenai perancangan basis data, implementasi aplikasi, dan juga evaluasi dari aplikasi.
4.1 Perancangan
4.1.1 Perancangan Basis Data Konseptual
Perancangan basis data konseptual adalah proses membangun sebuah rancangan informasi yang berpusat pada pemrosesan suatu model dari informasi yang akan digunakan dalam suatu organisasi dan bebas dari pertimbangan fisikal. Tujuan dari perancangan konseptual untuk membuat representasi basis data konseptual yang mencakup identifikasi entitas, atribut, dan relasi.
Perancangan basis data konseptual terdiri dari sembilan langkah, yaitu (Connolly, 2010, p468) :
1. Identifikasi tipe entitas 2. Identifikasi tipe relasi
3. Identifikasi dan asosiasi atribut dengan entitas tipe relasi 4. Menentukan domain atribut
5. Identifikasi candidate dan primary key 6. Penggunaan enhanced modeling concept
7. Memeriksa redundansi
8. Validasi transaksi dengan transaksi user 9. Peninjauan model data konseptual dengan user
4.1.1.1 Identifikasi Tipe Entitas
Tabel-tabel berikut merupakan tabel yang menjelaskan entitas yang menjadi kebutuhan organisasi.
Tabel 4.1 Identifikasi Tipe Entitas
Nama Entitas
Deskripsi Alias Kejadian
Pegawai Informasi
mengenai biodata dari pegawai Ditjen Aptika Kemkominfo
Pegawai Setiap pegawai
yang bekerja di Ditjen Aptika Kemkominfo Address Informasi mengenai alamat rumah dari pegawai Ditjen Aptika Kemkominfo
Alamat Setiap pegawai
yang bekerja di Ditjen Aptika Kemkominfo
Physical Informasi
mengenai kondisi
Fisik Setiap pegawai
Ditjen Aptika Kemkominfo
Kemkominfo
Pendidikan Pendidikan yang sudah dijalani pegawai Ditjen Aptika
Kemkominfo
Pendidikan Setiap tingkat pendidikan yang diikuti pegawai Ditjen Aptika Kemkominfo
Kursus Kursus yang
sedang/telah diikuti pegawai Ditjen Aptika Kemkominfo
Kursus Setiap kursus
yang
sedang/telah diikuti pegawai Ditjen Aptika Kemkominfo
Diklat Diklat yang
sedang/telah diikuti pegawai Ditjen Aptika Kemkominfo
Diklat Setiap diklat
yang
sedang/telah diikuti pegawai Ditjen Aptika Kemkominfo
Pangkat Pangkat dari
pegawai Ditjen Aptika
Pangkat Setiap pangkat
yang dimiliki pegawai Ditjen
Kemkominfo Aptika Kemkominfo Jabatan Jabatan/pekerjaan dari pegawai Ditjen Aptika Kemkominfo Jabatan Setiap jabatan/pekerjaan dari pegawai Ditjen Aptika Kemkominfo Penghargaan Informasi mengenai penghargaan yang telah diterima pegawai Ditjen Aptika Kemkominfo Penghargaan Setiap penghargaan yang diterima pegawai Ditjen Aptika Kemkominfo Kunjungan Informasi mengenai kunjungan kerja yang dilakukan pegawai Ditjen Aptika Kemkominfo
Kunjungan Setiap kunjungan kerja yang dilakukan pegawai Ditjen Aptika Kemkominfo Barang Informasi mengenai barang
Barang Setiap barang
dimiliki pegawai Ditjen Aptika Kemkominfo Ditjen Aptika Kemkominfo Pasangan Informasi mengenai pasangan pegawai Ditjen Aptika Kemkominfo (Suami/Istri)
KetPasangan Setiap pasangan yang dimiliki pegawai pegawai Ditjen Aptika Kemkominfo (Suami/Istri) Anak Informasi mengenai anak dari pegawai Ditjen Aptika Kemkominfo
KetAnak Setiap anak dari pegawai Ditjen Aptika Kemkominfo Organisasi Informasi mengenai pengalaman berorganisasi dari pegawai Ditjen Aptika Kemkominfo
Organisasi Setiap organisasi yang pernah diikuti oleh pegawai Ditjen Aptika
Kemkominfo
mengenai Thread yang dibuat pegawai di dalam forum Threadyang dibuat pegawai Ditjen Aptika Kemkominfo Comment Informasi mengenai Comment dari sebuah Thread
Comment Setiap Comment dari Thread yang dibuat
Tujuan dari langkah ini adalah untuk mengidentifikasi hubungan antara entitas yang telah diidentifikasikan. Untuk mengidentifikasi tipe relasi digunakan Entity Relationship Diagram (ERD).
Tabel 4.2 Tipe Relasi
Nama Entitas
Multiplicity Relationship Nama Entitas
Multiplicity
Pegawai 1..1 Memiliki Address 1..*
Pegawai 1..1 Memiliki Physical 1..1
Pegawai 1..* Memiliki Pendidikan 1..*
Pegawai 0..* Melakukan Kursus 1..*
Pegawai 0..* Melakukan Diklat 1..*
Pegawai 1..* Memiliki Pangkat 1..*
Pegawai 1..* Memiliki Jabatan 1..*
Pegawai 0..* Memiliki Penghargaan 1..*
Pegawai 1..* Melakukan Kunjungan 0..*
Pegawai 0..* Memiliki Barang 0..*
Pegawai 0..1 Memiliki Pasangan 1..1
Pegawai 0..* Memiliki Anak 1..1
Pegawai 1..* Melakukan Organisasi 1..*
Pegawai 0..* Memiliki Thread 1..*
Thread 0..* Memiliki Comment 1..1
Berikut ini entityrelationship diagram yang hanya memuat nama entitas berikut hubungannya.
Dari kamus data relationship dapat ditemukan atribut seperti terlihat pada tabel berikut :
Tabel 4.3 Keterangan tipe data dan panjang data
Tipe data dan panjang data Keterangan NIP
char(18)
Jumlahnya harus 18 digit , dengan format tahun,bulan,tanggal kelahiran (8 digit) diikuti dengan tahun,bulan menjadi CPNS (6 digit), kemudian diikuti oleh kode jenis kelamin (1 digit, angka 1 adalah laki-laki dan angka 2 adalah perempuan ) dan nomor urut (3 digit).
AlamatID int(6)
Berupa auto increment
PhysicID int(6)
Berupa auto increment
PendidikanID int(6)
Berupa auto increment
KursusID int(6)
DiklatID int(6)
Berupa auto increment
GolonganID int(6)
Berupa auto increment
JabatanID int(6)
Berupa auto increment
PenghargaanID int(6)
Berupa auto increment
KunjunganID int(6)
Berupa auto increment
BarangID varchar(50)
-
PasanganID int(6)
Berupa auto increment
AnakID int(6)
Berupa auto increment
OrganisasiID int(6)
Berupa auto increment
ThreadID int(6)
Berupa auto increment
CommentID int(6)
Tabel 4.4 Kamus Data Atribut Entitas Pegawai
Atribut Deskripsi Tipe Data dan Panjang Nulls Multivalued NIP Kode pegawai char(18) No No NamaLengkap Nama lengkap setiap pegawai varchar(50) No No NamaPanggilan Nama panggilan setiap pegawai varchar(15) No No
Gelar Gelar setiap
pegawai varchar(50) No No TempatLahir Tempat lahir setiap pegawai varchar(50) No No TanggalLahir Tanggal lahir setiap pegawai Date No No
Gender Jenis kelamin setiap pegawai char(20) No No Agama Agama setiap pegawai char(15) No No Status Status setiap pegawai varchar(50) No No Email Email setiap pegawai varchar(50) No No Telepon Nomor telepon setiap pegawai varchar(50) No No FAX Nomor FAX setiap pegawai varchar(50) Yes No ASKES ASKES setiap pegawai varchar(50) Yes No
setiap pegawai TASPEN TASPEN setiap pegawai varchar(50) Yes No KAPREG KAPREG setiap pegawai varchar(50) Yes No NONPWP NONPWP setiap pegawai varchar(50) Yes No
Bank Bank setiap
pegawai varchar(50) Yes No NoRek No Rekening setiap pegawai varchar(50) Yes No Hobby Hobby setiap pegawai
varchar(50) Yes Yes
Foto Foto wajah
setiap
pegawai
2. Entitas Address
Tabel 4.5 Kamus Data Atribut Entitas Address
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
AlamatID Kode dari alamat pegawai
int(6) No No
Jalan Nama jalan varchar(50) No No
Kelurahan Nama kelurahan varchar(50) No No Kecamatan Nama kecamatan varchar(50) No No Propinsi Nama Propinsi varchar(50) No No
Tabel 4.6 Kamus Data Atribut Entitas Physical
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
FisikID Kode dari keterangan badan pegawai
int(6) No No
Tinggi Tinggi badan setiap
pegawai
int(11) No No
Berat Berat badan setiap pegawai int(11) No No Rambut Keterangan rambut setiap pegawai varchar(50) No No BentukMuka Bentuk muka setiap pegawai varchar(50) No No
WarnaKulit Warna kulit setiap
pegawai
varchar(50) No No
CiriKhas Ciri khas setiap
pegawai
varchar(50) No No
CacatTubuh Cacat tubuh setiap
pegawai
varchar(50) No No
4. Entitas Pendidikan
Tabel 4.7 Kamus Data Atribut Entitas Pendidikan
Atribut Deskripsi Tipe Data dan Panjang Nulls Multivalued PendidikanID Kode pendidikan yang diikuti setiap pegawai int(6) No No Tingkat Tingkat pendidikan varchar(50) No No
pegawai NamaPendidikan Nama institusi pendidikan yang diikuti setiap pegawai varchar(50) No No Jurusan Jurusan yang diikuti setiap pegawai varchar(50) No No
IjazahTahun Ijazah tahun kelulusan pendidikan
int(11) No No
Tempat Alamat dari institusi pendidikan
varchar(50) No No
KepalaSekolah Kepala dari institusi pendidikan
varchar(50) No No
Tabel 4.8 Kamus Data Atribut Entitas Kursus
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
KursusID Kode kursus yang diikuti pegawai int(6) Yes No Kursus Nama kursus yang diikuti pegawai varchar(50) Yes No TanggalMulai Tanggal mulai kursus Date Yes No TanggalSelesai Tanggal selesai kursus Date Yes No
IjazahTahun Ijazah tahun kelulusan kursus int(11) Yes No Tempat Alamat tempat kursus varchar(50) Yes No
6. Entitas Diklat
Tabel 4.9 Kamus Data Atribut Entitas Diklat
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
DiklatID Kode diklat yang diikuti pegawai
int(6) Yes No
Diklat Nama diklat yang diikuti pegawai varchar(50) Yes No TanggalMulai Tanggal mulai diklat Date Yes No TanggalSelesai Tanggal selesai diklat Date Yes No
kelulusan diklat Tempat Alamat tempat diklat varchar(50) Yes No Keterangan Keterangan tambahan varchar(100) Yes No 7. Entitas Pangkat
Tabel 4.10 Kamus Data Atribut Entitas Pangkat
Atribut Deskripsi Tipe Data dan Panjang Nulls Multivalued GolonganID Kode golongan pangkat pegawai int(6) No No GolonganRuang Nama golongan ruang pangkat pegawai varchar(50) No No TMT Tanggal Date No No
golongan pangkat GajiPokok Gaji pokok
dari golongan pangkat
decimal(10,2) No No
NomorSurat Nomor surat keputusan dari golongan pangkat
varchar(50) No No
Pejabat Nama pejabat yang mengesahkan surat keputusan varchar(50) No No Tanggal Tanggal disahkannya surat keputusan Date No No Keterangan Keterangan tambahan varchar(100) Yes No 8. Entitas Jabatan
Tabel 4.11 Kamus Data Atribut Entitas Jabatan
Atribut Deskripsi Tipe Data dan Panjang
Nulls Multivalued
JabatanID Kode jabatan pegawai
int(6) No No
Jabatan Jabatan yang dipegang pegawai varchar(50) No No Golongan ruang Nama golongan ruang pangkat pegawai varchar(50) No No TMT Tanggal berlakunya jabatan Date No No
GajiPokok Gaji pokok dari jabatan
decimal(10,2) No No
NomorSurat Nomor surat keputusan dari jabatan
varchar(50) No No
Pejabat Nama pejabat yang
surat keputusan Tanggal Tanggal disahkannya surat keputusan Date No No 9. Entitas Penghargaan
Tabel 4.12 Kamus Data Atribut Entitas Penghargaan
Atribut Deskripsi Tipe Data dan Panjang Nulls Multivalued PenghargaanID Kode penghargaan pegawai int(6) Yes No Penghargaan Nama penghargaaan yang diterima pegawai varchar(50) Yes No Tahun Tahun perolehan int(11) Yes No
penghargaan NamaInstansi Nama instansi yang memberi penghargaan varchar(50) Yes No 10. Entitas Kunjungan
Tabel 4.13 Kamus Data Atribut Entitas Kunjungan
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
KunjunganID Kode dari kunjungan kerja pegawai
int(6) Yes No
Negara Negara yang menjadi tujuan kunjungan varchar(50) Yes No Tujuan Nama tempat yang dituju di varchar(50) Yes No
tujuan
Lamanya Lama
kunjungan kerja
int(11) Yes No
Pemberi Pihak yang membiayai kunjungan kerja
varchar(50) Yes No
11. Entitas Pasangan
Tabel 4.14 Kamus Data Atribut Entitas Pasangan
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
PasanganID Kode dari informasi pasangan pegawai int(6) Yes No Nama Nama pasangan varchar(50) Yes No
pasangan TanggalLahir Tanggal lahir pasangan Date Yes No TanggalNikah Tanggal menikah Date Yes No Pekerjaan Pekerjaan dari pasangan varchar(50) Yes No Keterangan Keterangan tambahan varchar(50) Yes No 12. Entitas Anak
Tabel 4.15 Kamus Data Atribut Entitas Anak
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
AnakID Kode dari
informasi anak pegawai
int(6) Yes No
kelamin anak
TempatLahir Tempat lahir anak varchar(50) Yes No TanggalLahir Tanggal lahir anak Date Yes No SekolahKerja Tempat sekolah atau tempat kerja anak varchar(50) Yes No Keterangan Keterangan tambahan varchar(50) Yes No 13. Organisasi
Tabel 4.16 Kamus Data Atribut Entitas Organisasi
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
OrganisasiID Kode dari organisasi yang diikuti
pegawai Organisasi Nama organisasi varchar(50) Yes No Kedudukan Kedudukan di dalam organisasi varchar(50) Yes No TanggalMulai Tanggal mulai bekerja dalam organisasi Date Yes No TanggalKeluar Tanggal keluar dari organisasi Date Yes No Tempat Alamat gedung organisasi varchar(50) Yes No PimpinanOrganisasi Nama pimpinan organisasi varchar(50) Yes No
Tabel 4.17 Kamus Data Atribut Entitas Thread
Atribut Deskripsi Tipe Data dan Panjang Nulls Multivalued ThreadID Kode Thread yang unik ketika suatu Thread dibuat int(11) No No
ThreadTitle Judul dari suatu Thread yang telah dibuat varchar(50) Yes No PostedDate Tanggal dan waktu kapan Thread dibuat DATETIME Yes No
ThreadContent Isi dari suatu Thread yang telah dibuat Text Yes No NamaPegawai Nama pegawai yang membuat Thread varchar(50) Yes No
Jabatan Jabatan dari pegawai yang membuat Thread varchar(50) Yes No 15. Comment
Tabel 4.18 Kamus Data Atribut Entitas Comment
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
menandai Comment yang dibuat ThreadTitle Judul dari
suatu Thread yang dibuat
varchar(50) Yes No
PostedDate Tanggal dan waktu kapan Thread dibuat
DATETIME Yes No
ThreadContent Isi dari suatu Thread yang telah dibuat Text Yes No CommentPegawai Komentar pegawai yang dibuat untuk mengomentari Thread atau komentar Text Yes No NamaPegawai Nama pegawai yang membuat komentar varchar(50) Yes No
Jabatan Jabatan dari pegawai yang membuat komentar varchar(50) Yes No 16. Barang
Tabel 4.19 Kamus Data Atribut Entitas Barang
Atribut Deskripsi Tipe Data dan
Panjang
Nulls Multivalued
BarangID Kode yang unik untuk menandai barang
int(11) No No
NamaBarang Nama yang digunakan untuk barang
varchar(50) Yes No
StatusBarang Status yang menggambarkan status Barang
varchar(50) Yes No
NamaPegawai Nama dari pegwai yang
barang
Jabatan Jabatan dari pegawai yang meminjam barang
varchar(50) Yes No
4.1.1.4 Penentuan Domain Terhadap Atribut
Domain untuk setiap atribut dapat dijelaskan dengan tabel di bawah ini :
Tabel 4.20 Penentuan Domain Terhadap Atribut
Entity Name Atribut
Tipe Data
&Length
Domain Attribut
Pegawai NIP Char(18) Char(18)
NamaLengkap Varchar(50) Varchar(50) NamaPanggilan Varchar(15) Varchar(15) GelarDepan Varchar(50) Varchar(50) GelarBelakang Varchar(50) Varchar(50)
Status Varchar(50) Varchar(50)
GolonganDarah Varchar(50) Varchar(50) TempatLahir Varchar(50) Varchar(50)
JenisKelamin Varchar(50) Varchar(50)
Agama Varchar(50) Varchar(50)
Telepon Varchar(50) Varchar(50)
Fax Varchar(50) Varchar(50)
Email Varchar(50) Varchar(50)
Bank Varchar(50) Varchar(50)
NoRek Varchar(50) Varchar(50)
ASKES Varchar(50) Varchar(50)
KARISU Varchar(50) Varchar(50)
TASPEN Varchar(50) Varchar(50)
KAPREG Varchar(50) Varchar(50)
NONPWP Varchar(50) Varchar(50)
Hobby Varchar(50) Varchar(50)
Foto Varchar(50) Varchar(50)
Address AlamatID Integer Integer
Jalan Varchar(50) Varchar(50)
Kelurahan Varchar(50) Varchar(50) Kecamatan Varchar(50) Varchar(50) Propinsi Varchar(50) Varchar(50)
Physical FisikID Integer Integer
Tinggi Integer Integer
Berat Integer Integer
Rambut Varchar(50) Varchar(50)
BentukMuka Varchar(50) Varchar(50) WarnaKulit Varchar(50) Varchar(50)
Pendidikan PendidikanID Integer Integer Tingkat Varchar(50) Varchar(50) NamaPendidikan Varchar(50) Varchar(50) Jurusan Varchar(50) Varchar(50) IjazahTahun Integer Integer
Tempat Varchar(50) Varchar(50)
KepalaSekolah Varchar(50) Varchar(50)
Kursus KursusID Integer Integer
Kursus Varchar(50) Varchar(50)
TanggalMulai DATE DATE
TanggalSelesai DATE DATE
IjazahTahun Integer Integer
Tempat Varchar(50) Varchar(50)
Keterangan Varchar(50) Varchar(50)
Diklat DiklatID Integer Integer
Diklat Varchar(50) Varchar(50)
TanggalMulai DATE DATE
TanggalSelesai DATE DATE
IjazahTahun Integer Integer
Tempat Varchar(50) Varchar(50)
Keterangan Varchar(50) Varchar(50)
GolonganRuang Varchar(50) Varchar(50)
TMT DATE DATE
GajiPokok Integer Integer
Pangkat Varchar(50) Varchar(50)
NomorSurat Varchar(50) Varchar(50)
Tanggal DATE DATE
Keterangan Varchar(50) Varchar(50)
Jabatan JabatanID Integer Integer
Jabatan Varchar(50) Varchar(50)
GolonganRuang Varchar(50) Varchar(50)
TMT DATE DATE
GajiPokok Integer Integer
NomorSurat Varchar(50) Varchar(50)
Tanggal DATE DATE
Pejabat Varchar(50) Varchar(50)
Penghargaan PenghargaanID Integer Integer Penghargaan Varchar(50) Varchar(50)
Tahun Integer Integer
NamaInstansi Varchar(50) Varchar(50)
Kunjungan KunjunganID Integer Integer
Negara Varchar(50) Varchar(50)
Tujuan Varchar(50) Varchar(50)
Pasangan PasanganID Integer Integer
Nama Varchar(50) Varchar(50)
TempatLahir Varchar(50) Varchar(50)
TanggalLahir DATE DATE
TanggalNikah DATE DATE
Pekerjaan Varchar(50) Varchar(50)
Keterangan Varchar(50) Varchar(50)
Anak AnakID Integer Integer
Nama Varchar(50) Varchar(50)
JenisKelamin Varchar(50) Varchar(50) TempatLahir Varchar(50) Varchar(50)
TanggalLahir DATE DATE
SekolahPekerjaan Varchar(50) Varchar(50) Keterangan Varchar(50) Varchar(50) Organisasi OrganisasiID Integer Integer
Organisasi Varchar(50) Varchar(50)
Kedudukan Varchar(50) Varchar(50)
TanggalMasuk DATE DATE
TanggalKeluar DATE DATE
Tempat Varchar(50) Varchar(50)
PimpinanOrganisasi Varchar(50) Varchar(50)
ThreadTitle Varchar(50) Varchar(50)
PostedDate DATE DATE
ThreadContent Text Text
NamaPegawai Varchar(50) Varchar(50)
Jabatan Varchar(50) Varchar(50)
Comment CommentID Integer Integer
ThreadTitle Varchar(50) Varchar(50) PostedDate Varchar(50) Varchar(50)
ThreadContent Text Text
CommentPegawai Text Text
NamaPegawai Varchar(50) Varchar(50)
Jabatan Varchar(50) Varchar(50)
Barang BarangID Integer Integer
NamaBarang Varchar(50) Varchar(50) StatusBarang Varchar(50) Varchar(50) NamaPegawai Varchar(50) Varchar(50)
Jabatan Varchar(50) Varchar(50)
4.1.1.5 Menentukan Candidate dan Primary Key
Berikut ini merupakan penentuan atribut candidate key dan primary key dari setiap entitas yang ada :
entitas
Nama Entitas Candidate Key Primary Key
Pegawai NIP
PhysicalID AlamatID
NIP
Adress AlamatID AdressID
Physical PhysicalID PhysicalID
Pendidikan NIP PendidikanID NIP PendidikanID Kursus NIP KursusID NIP KursusID Diklat NIP DiklatID NIP DiklatID Pangkat NIP GolonganID NIP GolonganID Jabatan NIP JabatanID NIP JabatanID Penghargaan NIP PenghargaanID NIP PenghargaanID Barang NIP BarangID NIP BarangID
Kunjungan NIP KunjunganID NIP PenghargaanID Pasangan NIP PasanganID NIP PasanganID Anak NIP AnakID NIP AnakID Organisasi NIP OrganisasiID NIP OrganisasiID Thread NIP ThreadID NIP ThreadID Comment NIP ThreadID CommentID NIP ThreadID CommentID
4.1.1.6 Penggunaan Enhanced Data Modelling
Dalam tahap perancangan ini tidak ditemukan pendeketan yang menggunakan spesialisasi, generalisasi, agregasi, dan komposisi.
4.1.1.7 Memeriksa Redundansi
1. Memeriksa Hubungan One to One
• Hubungan Pegawai dengan Physical
Gambar 4.4 Hubungan Pegawai dengan Physical
Entitas Pegawai berbeda dengan entitas Physical. Pegawai berisi data-data umum dari pegawai. Sedangkan Physical berisi data kondisi fisik pegawai.
2. Menghilangkan Relasi yang Redundan
Dalam perancangan ini tidak ditemukan adanya hubungan yang mengalami redundansi.
4.1.1.8 Validasi Transaksi dengan Transaksi User
Berikut ini deskripsi dari transaksi untuk memastikan bahwa perancangan konseptual dari basis data yang dibangun dapat mendukung transaksi yang dibutuhkan oleh pengguna :
1..1 Memiliki 1..1 Pegawai
(NIP)
Physical (PhysicID)
- User melakukan update profil - User melakukan delete profil - User melakukan insertThread - User melakukan updateThread - User melakukan deleteThread - User melakukan insertComment - User melakukan updateComment - User melakukan deleteComment
2. Transaksi yang dibutuhkan pengguna dengan tingkatan Admin :
- Admin melakukan update profil - Admin melakukan delete profil - Admin melakukan insert pegawai - Admin melakukan update pegawai - Admin melakukan delete pegawai - Admin melakukan insertThread - Admin melakukan update Thread - Admin melakukan delete Thread - Admin melakukan insertComment - Admin melakukan updateComment - Admin melakukan deleteComment
- Admin melakukan insert barang inventaris - Admin melakukan update barang inventaris
- Admin melakukan delete barang inventaris
3. Transaksi yang dibutuhkan pengguna dengan tingkatan super Admin :
- super Admin melakukan update profil - super Admin melakukan delete profil - super Admin melakukan insert pegawai - super Admin melakukan update pegawai - super Admin melakukan delete pegawai - super Admin melakukan insertThread - super Admin melakukan updateThread - super Admin melakukan deleteThread - super Admin melakukan insertComment - super Admin melakukan updateComment - super Admin melakukan deleteComment
- super Admin melakukan insert barang inventaris - super Admin melakukan update barang inventaris - super Admin melakukan delete barang inventaris - super Admin melakukan update super Admin
4.1.1.9 Peninjauan Model Data Konseptual dengan User
Setelah dilakukan peninjauan kembali terhadap model data konseptual yang sudah dirancang, model data tersebut telah memenuhi kebutuhan user.
4.1.2 Perancangan Basis Data Logikal
Perancangan basis data logikal adalah sebuah proses membangun model dari informasi yang digunakan organisasi berdasarkan sebuah model data spesifik, terlepas dari DBMS dan pertimbangan fisik lain. Tujuan dari perancangan logikal adalah untuk merepresentasikan konseptual ke dalam struktur logikal basis data yang mencakup perancangan relasi.
Perancangan basis data logikal terdiri dari langkah-langkah berikut :
1. Menentukan relasi-relasi untuk model data logikal 2. Validasi model dengan normalisasi
3. Validasi relasi terhadap user 4. Mengecek batas integritas
5. Meninjau ulang model data logikal dengan user
6. Menggabungkan model data logikal ke dalam model global 7. Mengecek untuk perkembangan yang akan datang
4.1.2.1 Menentukan Relasi Untuk Model Data Logikal
Untuk menentukan relasi-relasi untuk model data logikal mencakup langkah-langkah berikut ini :
a. Identifikasi Strong Entity b. Identifikasi WeakEntity
c. Pembentukan relasi Biner one to many (1..*) d. Pembentukan relasi Biner one to One (1..1) e. Relasi 1..1 Recursive
f. Tipe relasi superclass / subclass g. Relasi Binermany to many (*..*) h. Tipe relasi Kompleks
i. Atribut multivalue
a. Identifikasi Strong Entity
Tipe-tipe entitas kuat dari model data yang didapat adalah :
Pegawai
(NIP, NamaLengkap, NamaPanggilan, StatusPerkawinan GolonganDarah, TempatLahir, TanggalLahir, JenisKelamin, Agama, Telepon, FAX, Email, Bank, NoRek, ASKES, KARIS/KARISU, TASPEN, KAPREG, NoNPWP, Kegemaran, Foto)
Primary Key NIP Address
(AlamatID, Jalan, Kelurahan, Kecamatan, Propinsi) Primary Key AlamatID
Physical
(PhysicID, Tinggi, Berat, Rambut, BentukMuka, WarnaKulit, CiriKhas, CacatTubuh)
(PendidikanID, Tingkat, NamaPendidikan, Jurusan, IjazahTahun, Tempat, KepalaSekolah)
Primary Key PendidikanID Kursus
(KursusID, Kursus, TanggalMulai, TanggalSelesai, IjazahTahun, Tempat, Keterangan)
Primary Key KursusID Diklat
(DiklatID, Diklat, TanggalMulai, TanggalSelesai, IjazahTahun, Tempat, Keterangan)
Primary Key DiklatID Pangkat
(GolonganID, GolonganRuang, TMT, GajiPokok, NomorSurat, Pejabat, Tanggal, Keterangan)
Primary Key GolonganID Jabatan
(JabatanID, Jabatan, Golongan ruang, TMT, GajiPokok, NomorSurat, Pejabat, Tanggal)
Primary Key JabatanID Penghargaan
(PenghargaanID, Penghargaan, Tahun, NamaInstansi) Primary Key PenghargaanID
KunjunganKerja
(KunjunganID, Negara, Tujuan, Lamanya, Pemberi) Primary Key KunjunganID
Pasangan
(PasanganID, Nama, TempatLahir, TanggalLahir, TanggalNikah, Pekerjaan, Keterangan)
Primary Key PasanganID Anak
(AnakID, Nama, JenisKelamin, TempatLahir, TanggalLahir, SekolahKerja, Keterangan)
Primary Key AnakID Organisasi
(OrganisasiID, Organisasi, Kedudukan, TanggalMulai, TanggalKeluar, Tempat, PimpinanOrganisasi)
Primary Key OrganisasiID
b. Identifikasi WeakEntity
DetailPendidikan (NIP, PendidikanID) Primary Key (NIP, PendidikanID) DetailKursus (NIP, KursusID) Primary Key (NIP, KursusID) DetailDiklat (NIP, DiklatID)
DetailPangkat (NIP, PangkatID) Primary Key (NIP, PangkatID) DetailJabatan (NIP, JabatanID) Primary Key (NIP, JabatanID)
DetailPenghargaan (NIP, PenghargaanID) Primary Key (NIP, PenghargaanID) DetailKunjungan (NIP, KunjunganID) Primary Key (NIP, KunjunganID) DetailOrganisasi (NIP, OrganisasiID) Primary Key (NIP, OrganisasiID)
c. Pembentukan Relasi Binerone to many(1..*)
Pembentukan relasi biner one to many (1..*) merupakan bagian dari pembentukan relasi model data logikal. Dalam pembentukan relasi Biner one to many (1..*), yang perlu diperhatikan adalah multiplicity dari dua buah entitas yang ada.
Entitas-entitas tersebut adalah :
• Hubungan Pegawai dengan Address
Gambar 4.5 Hubungan Pegawai dengan Address
d. Pembentukan Relasi Biner One to One (1..1)
Berikut ini adalah relasi one-to-one (1..1) dengan hasil posting dari entitas-entitas yang berhubungan satu dengan yang lainnya.
• Hubungan Pegawai dengan Physical
Gambar 4.6 Hubungan Pegawai dengan Physical • Hubungan Pegawai dengan Pasangan
Gambar 4.7 Hubungan Pegawai dengan Pasangan
Tidak ditemukan relasi 1:1 Recursive pada tahap ini.
f. Tipe Relasi Superclass / Subclass
Tidak ditemukan relasi superclass / subclass pada tahap ini.
g. Relasi BinerMany to Many (*..*)
• Hubungan Pegawai dengan Pendidikan
• Hubungan Pegawai dengan Kursus
Gambar 4.9 Hubungan Pegawai dengan Kursus • Hubungan Pegawai dengan Diklat
• Hubungan Pegawai dengan Pangkat
Gambar 4.11 Hubungan Pegawai dengan Pangkat
• Hubungan Pegawai dengan Jabatan
Gambar 4.12 Hubungan Pegawai dengan Jabatan • Hubungan Pegawai dengan Penghargaan
Gambar 4.13 Hubungan Pegawai dengan Penghargaan
• Hubungan Pegawai dengan Kunjungan
• Hubungan Pegawai dengan Organisasi
Gambar 4.15 Hubungan Pegawai dengan Organisasi
• Hubungan Pegawai dengan Anak
Gambar 4.17 Hubungan Pegawai dengan Thread
• Hubungan Pegawai dengan Comment
• Hubungan Pegawai dengan Barang
Gambar 4.19 Hubungan Pegawai dengan Barang
h. Tipe Relasi Kompleks
Tidak terdapat relasi kompleks pada tahap ini.
i. Atribut Multivalue
Atribut multivalue adalah atribut yang memiliki beberapa nilai dalam setiap entitas . Berikut atribut multivalue yang terdapat di dalam entitas-entitas :
Tabel 4.22 Atribute Multivalue
Entitas Atribut Multivalue
Tujuan dari langkah ini adalah untuk validasi relasi-relasi di dalam model data logikal lokal dengan menggunakan teknik normalisasi. Tujuan dari normalisasi untuk menghasilkan model data yang konsisten, memiliki redundansi (pengulangan data yang tidak perlu) minimal, dan stabilitas maksimum. Proses normalisasi dimulai dengan menentukan functional dependency antar atribut dalam suatu relasi. Berikut ini proses normalisasi untuk setiap entitas :
• UNF
Pegawai
(NIP, NamaLengkap, NamaPanggilan, StatusPerkawinan, GolonganDarah, GelarDepan, GelarBelakang, TempatLahir, TanggalLahir, JenisKelamin, Agama, Telepon, FAX, Email, Bank, NoRek, ASKES, KARIS/KARISU, TASPEN, KAPREG, NoNPWP, Kegemaran, Foto, Jalan, Kelurahan, Kecamatan, Propinsi, Tinggi, Berat, Rambut, BentukMuka, WarnaKulit, CiriKhas, CacatTubuh,
{Tingkat, NamaPendidikan, Jurusan, IjazahTahun, Tempat, KepalaSekolah},
{Kursus, TanggalMulai, TanggalSelesai, IjazahTahun, Tempat, Keterangan},
{Diklat, TanggalMulai, TanggalSelesai, IjazahTahun, Tempat, Keterangan},
{GolonganRuang, TMT, GajiPokok, NomorSurat, Pejabat, Tanggal, Keterangan},
{ Jabatan, Golongan ruang, TMT, GajiPokok, NomorSurat, Pejabat, Tanggal},
{ Penghargaan, Tahun, NamaInstansi}, { Negara, Tujuan, Lamanya, Pemberi},
{ Nama, TempatLahir, TanggalLahir, TanggalNikah, Pekerjaan, Keterangan},
{ Nama, JenisKelamin, TempatLahir, TanggalLahir, SekolahKerja, Keterangan},
{ Organisasi, Kedudukan, TanggalMulai, TanggalKeluar, Tempat, PimpinanOrganisasi}, {ThreadTitle,PostedDate,ThreadContent NamaPegawai,Jabatan,CommentPegawai,} {NamaBarang,StatusBarang,NamaPegawai,Jabatan } ) • 1NF Pegawai
(NIP, NamaLengkap, NamaPanggilan, StatusPerkawinan, GolonganDarah, GelarDepan, GelarBelakang,, TempatLahir, TanggalLahir, JenisKelamin, Agama, Telepon, FAX, Email, Bank, NoRek, ASKES,
Kegemaran, Foto) Detail_Pendidikan
(NIP, PendidikanID, Tingkat, NamaPendidikan, Jurusan, IjazahTahun, Tempat, KepalaSekolah)
Detail_Kursus
(NIP, KursusID, Kursus, TanggalMulai, TanggalSelesai, IjazahTahun, Tempat, Keterangan)
Detail_Diklat
(NIP, DiklatID, Diklat, TanggalMulai, TanggalSelesai, IjazahTahun, Tempat, Keterangan)
Detail_Pangkat
(NIP, GolonganID, GolonganRuang, TMT, GajiPokok, NomorSurat, Pejabat, Tanggal, Keterangan)
Detail_Jabatan
(NIP, JabatanID, Jabatan, Golongan ruang, TMT, GajiPokok, NomorSurat, Pejabat, Tanggal)
Detail_Penghargaan
(NIP, PenghargaanID, Penghargaan, Tahun, NamaInstansi)
Detail_Kunjungan
(NIP, KunjunganID, Negara, Tujuan, Lamanya, Pemberi) Detail_Pasangan
(NIP, PasanganID, Nama, TempatLahir, TanggalLahir, TanggalNikah, Pekerjaan, Keterangan)
Detail_Anak
(NIP, AnakID, Nama, JenisKelamin, TempatLahir, TanggalLahir, SekolahKerja, Keterangan)
Detail_Organisasi
(NIP, OrganisasiID, Organisasi, Kedudukan, TanggalMulai, TanggalKeluar, Tempat, PimpinanOrganisasi) Detail_Thread{NIP,ThreadID,ThreadTitle,PostedDate,Na maPegawai,Jabatan, ThreadContent,CommentPegawai,} Detail_Barang (NIP,BarangID,NamaBarang,StatusBarang,NamaPegawai, Jabatan,NIP) • 2NF Pegawai
(NIP, NamaLengkap, NamaPanggilan, StatusPerkawinan, GolonganDarah, GelarDepan, GelarBelakang,, TempatLahir, TanggalLahir, JenisKelamin, Agama, Telepon, FAX, Email, Bank, NoRek, ASKES, KARIS/KARISU, TASPEN, KAPREG, NoNPWP, Kegemaran, Foto)
Detail_Pendidikan (NIP, PendidikanID)
(PendidikanID, Tingkat, NamaPendidikan, Jurusan, IjazahTahun, Tempat, KepalaSekolah)
Detail_Kursus (NIP, KursusID) Kursus
(KursusID, Kursus, TanggalMulai, TanggalSelesai, IjazahTahun, Tempat, Keterangan)
Detail_Diklat (NIP, DiklatID) Diklat
(DiklatID, Diklat, TanggalMulai, TanggalSelesai, IjazahTahun, Tempat, Keterangan)
Detail_Pangkat (NIP, GolonganID) Detail_Pangkat
(GolonganID, GolonganRuang, TMT, GajiPokok, NomorSurat, Pejabat, Tanggal, Keterangan)
Detail_Jabatan (NIP, JabatanID) Jabatan
(JabatanID, Jabatan, Golongan ruang, TMT, GajiPokok, NomorSurat, Pejabat, Tanggal)
(NIP, PenghargaanID) Penghargaan
(PenghargaanID, Penghargaan, Tahun, NamaInstansi) Detail_Kunjungan
(NIP, KunjunganID) Kunjungan
(KunjunganID, Negara, Tujuan, Lamanya, Pemberi)
Detail_Pasangan (NIP, PasanganID) Pasangan
(PasanganID, Nama, TempatLahir, TanggalLahir, TanggalNikah, Pekerjaan, Keterangan)
Detail_Anak (NIP, AnakID) Anak
(AnakID, Nama, JenisKelamin, TempatLahir, TanggalLahir, SekolahKerja, Keterangan)
Detail_Organisasi (NIP, OrganisasiID) Organisasi
(OrganisasiID, Organisasi, Kedudukan, TanggalMulai, TanggalKeluar, Tempat, PimpinanOrganisasi)
Thread (ThreadID,ThreadTitle,PostedDate, ThreadContent,CommentPegawai) Detail_Barang (NIP,BarangID) Barang (BarangID,NamaBarang,StatusBarang,NamaPegawai,Jaba tan,NIP) • 3NF Pegawai
(NIP, NamaID, StatusPerkawinan, GolonganDarah, GelarID, TempatLahir, TanggalLahir, JenisKelamin, Agama, ContactID, Kegemaran, Foto, AlamatID, PhysicID,NoRek,TunjanganID)
Nama
(NamaID, NamaLengkap, NamaPanggilan) Gelar
(GelarID, GelarDepan, GelarBelakang) Contact
(ContactID, Telepon, FAX, Email) Tunjangan
(TunjanganID,ASKES,KARISU,TASPEN,KARTEG,NO MPWP)
Bank
(NoRek,Bank) Address
(AlamatID,Alamat, Kelurahan, Kecamatan, PropinsiID) Propinsi
(PropinsiID,Propinsi) Physical
(PhysicID,Tinggi, Berat, Rambut, BentukMuka, WarnaKulit, CiriKhas, CacatTubuh)
Detail_Pendidikan (NIP, PendidikanID) Pendidikan
(PendidikanID, Tingkat, NamaPendidikan, Jurusan,IjazahID)
Ijazah_Pendidikan
(IjazahID,IjazahTahun, Tempat, KepalaSekolah) Detail_Kursus
(NIP, KursusID) Kursus
(KursusID, Kursus, TanggalMulai, TanggalSelesai, IjazahID)
Detail_Diklat (NIP, DiklatID) Diklat
TanggalSelesai,IjazahID) Ijazah
(IjazahID, IjazahTahun, Tempat, Keterangan) Detail_Pangkat
(NIP, GolonganID) Pangkat
(GolonganID, GolonganRuang, TMT, GajiPokok, NomorSurat)
Surat
(NomorSurat, Pejabat, Tanggal, Keterangan) Detail_Jabatan
(NIP, JabatanID) Jabatan
(JabatanID, Jabatan, Golongan ruang, TMT, GajiPokok, NomorSurat)
Detail_Penghargaan (NIP, PenghargaanID) Penghargaan
(PenghargaanID, Penghargaan, Tahun, NamaInstansi) Detail_Kunjungan
(NIP, KunjunganID) Kunjungan
Detail_Pasangan (NIP, PasanganID) Pasangan
(PasanganID, Nama, TempatLahir, TanggalLahir, TanggalNikah, Pekerjaan, Keterangan)
Detail_Anak (NIP, AnakID) Anak
(AnakID, Nama, JenisKelamin, TempatLahir, TanggalLahir, SekolahKerja, Keterangan)
Detail_Organisasi (NIP, OrganisasiID) Organisasi
(OrganisasiID, Organisasi, Kedudukan, TanggalMulai, TanggalKeluar, Tempat, PimpinanOrganisasi)
Detail_Thread ( NIP,ThreadID) Thread (ThreadID,ThreadTitle,PostedDate,ThreadContent, CommentID) Detail_Comment (CommentID, NIP) Comment (CommentID, CommentPegawai)
(NIP,BarangID) Barang
Berikut ini deskripsi dari transaksi untuk memastikan bahwa perancangan konseptual dari basis data yang dibangun mampu mendukung transaksi yang dibutuhkan user,Admin , dan super Admin :
1. Transaksi yang dilakukan user: - User melakukan update profil - User melakukan delete profil - User melakukan insertThread - User melakukan updateThread - User melakukan deleteThread - User melakukan insertComment - User melakukan updateComment - User melakukan deleteComment 2. Transaksi yang dilakukan Admin :
- Admin melakukan update profil - Admin melakukan delete profil - Admin melakukan insert pegawai - Admin melakukan update pegawai - Admin melakukan delete pegawai - Admin melakukan insertThread - Admin melakukan updateThread - Admin melakukan deleteThread - Admin melakukan insertComment
- Admin melakukan updateComment - Admin melakukan deleteComment
- Admin melakukan insert barang inventaris - Admin melakukan update barang inventaris - Admin melakukan delete barang inventaris 3. Transaksi yang dilakukan super Admin :
- super Admin melakukan update profil - super Admin melakukan delete profil - super Admin melakukan insert pegawai - super Admin melakukan update pegawai - super Admin melakukan delete pegawai - super Admin melakukan insertThread - super Admin melakukan updateThread - super Admin melakukan deleteThread - super Admin melakukan insertComment - super Admin melakukan updateComment - super Admin melakukan deleteComment
- super Admin melakukan insert barang inventaris - super Admin melakukan update barang inventaris - super Admin melakukan delete barang inventaris - super Admin melakukan updateSuper Admin
Batasan integritas adalah batasan-batasan yang diharapkan dapat menjaga basis data agar tetap konsisten. Ada lima batasan integritas yaitu :
1. Data yang diperlukan
Beberapa atribut harus selalu memiliki nilai yang valid. Dengan kata lain atribut tersebut tidak boleh bernilai null. Batasan-batasan ini telah diidentifikasi pada perancangan konseptual tahap ke 3 (Subbab 4.1.1.3) 2. Batasan domain atribut
Setiap atribut memiliki domain yang berarti satu set nilai yang legal. Batasan-batasan ini telah diidentifikasi pada perancangan konseptual tahap ke 4 (Subbab 4.1.1.4). 3. Batasan entitas
Batasan entitas atau primary key tidak boleh bernilai null. Batasan-batasan ini telah diidentifikasi pada perancangan konseptual tahap ke 5 (Subbab 4.1.1.5) 4. Batasan referensial
Batasan referensial artinya jika sebuah foreign key memiliki nilai, maka harus mengacu kepada tuple dari parent-nya.
Pegawai
(NIP, NamaID, StatusPerkawinan, GolonganDarah, GelarID, TempatLahir, TanggalLahir, JenisKelamin, Agama, ContactID, Kegemaran, Foto, AlamatID, PhysicID, NoRek, TunjanganID) Primary Key : NIP
Foreign Key :
NamaID references Nama (NamaID) ON UPDATE CASCADE ON DELETE CASCADE
GelarID references Gelar (GelarID) ON UPDATE CASCADE ON DELETE CASCADE
ContactID references Contact (ContactID) ON UPDATE CASCADE ON DELETE CASCADE
AlamatID referencesAddress (AlamatID) ON UPDATE CASCADE ON DELETE CASCADE
PhysicID references Physical (PhysicID) ON UPDATE CASCADE ON DELETE CASCADE
NoRek references Bank (NoRek) ON UPDATE CASCADE ON DELETE CASCADE
TunjanganID references Tunjangan (TunjanganID) ON UPDATE CASCADE ON DELETE CASCADE
Nama
(NamaID, NamaLengkap, NamaPanggilan) Primary Key : NamaID
(GelarID, GelarDepan, GelarBelakang) Primary Key : GelarID
Contact
(ContactID, Telepon, FAX, Email) Primary Key : ContactID
Address
(AlamatID, Alamat, Kelurahan, Kecamatan, PropinsiID) Primary Key : AlamatID
Foreign Key : PropinsiID references Propinsi (PropinsiID) ON UPDATE CASCADE ON DELETE CASCADE
Propinsi
(PropinsiID, Propinsi) Primary Key : PropinsiID Physical
(PhysicID, Tinggi, Berat, Rambut, BentukMuka, WarnaKulit, CiriKhas, CacatTubuh)
Primary Key : PhysicID references Physical (PhysicID) ON UPDATE CASCADE ON DELETE CASCADE
Bank
(NoRek, Bank)
Primary Key : NoRek Tunjangan
(TunjanganID, ASKES, KARISU, TASPEN, KARTEG, NONPWP)
Primary Key : TunjanganID Detail_Pendidikan
(NIP, PendidikanID)
Primary Key : NIP, PendidikanID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
PendidikanID references Pendidikan (PendidikanID) ON UPDATE CASCADE ON DELETE CASCADE
Pendidikan
(PendidikanID, Tingkat, NamaPendidikan, Jurusan, IjazahID) Primary Key : PendidikanID
Foreign Key :
IjazahID references Ijazah_Pendidikan (IjazahID) ON UPDATE CASCADE ON DELETE CASCADE
Ijazah_Pendidikan
(IjazahID, IjazahTahun, Tempat, KepalaSekolah) Primary Key : IjazahID
Detail_Kursus (NIP, KursusID)
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
KursusID references Kursus (KursusID) ON UPDATE CASCADE ON DELETE CASCADE
Kursus
(KursusID, Kursus, TanggalMulai, TanggalSelesai, IjazahID) Primary Key : KursusID
Foreign Key :
IjazahID references Ijazah (IjazahID) ON UPDATE CASCADE ON DELETE CASCADE
Detail_Diklat (NIP, DiklatID)
Primary Key : NIP, DiklatID Foreign Key :
NIP DiklatID Diklat
(DiklatID, Diklat, TanggalMulai, TanggalSelesai, IjazahID) Primary Key : DiklatID
Foreign Key :
IjazahID references Ijazah (IjazahID) ON UPDATE CASCADE ON DELETE CASCADE
Ijazah
(IjazahID, IjazahTahun, Tempat, Keterangan) Primary Key : IjazahID
Detail_Pangkat (NIP, GolonganID)
Primary Key : NIP, GolonganID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
GolonganID references Pangkat (GolonganID) ON UPDATE CASCADE ON DELETE CASCADE
Pangkat
(GolonganID, GolonganRuang, TMT, GajiPokok, NomorSurat) Primary Key : GolonganID
Foreign Key :
NomorSurat references Surat (NomorSurat) ON UPDATE CASCADE ON DELETE CASCADE
Detail_Jabatan (NIP, JabatanID)
Primary Key : NIP, JabatanID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
CASCAD ON DELETE CASCADE Jabatan
(JabatanID, Jabatan, GolonganRuang, TMT, GajiPokok, NomorSurat)
Primary Key : JabatanID Foreign Key :
NomorSurat references Surat (NomorSurat) ON UPDATE CASCAD ON DELETE CASCADE
Surat
(NomorSurat, Pejabat, Tanggal, Keterangan) Primary Key : NomorSurat
Detail_Penghargaan (NIP, PenghargaanID)
Primary Key : NIP, PenghargaanID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
PenghargaanID references Penghargaan (PenghargaanID) ON UPDATE CASCADE ON DELETE CASCADE
Penghargaan
(PenghargaanID, Penghargaan, Tahun, NamaInstansi) Primary Key : PenghargaanID
Detail_Kunjungan (NIP, KunjunganID)
Primary Key : NIP, KunjunganID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
KunjunganID references Kunjungan (KunjunganID) ON UPDATE CASCADE ON DELETE CASCADE
Kunjungan
(KunjunganID, Negara, Tujuan, Lamanya, Pemberi) Primary Key : KunjunganID
Detail_Pasangan (NIP, PasanganID)
Primary Key : NIP, PasanganID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
PasanganID references Pasangan (PasanganID) ON UPDATE CASCADE ON DELETE CASCADE
Pasangan
(PasanganID, Nama, TempatLahir, TanggalLahir, TanggalNikah, Pekerjaan, Keterangan)
(NIP, AnakID)
Primary Key : NIP, AnakID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
AnakID references Anak (AnakID) ON UPDATE CASCADE ON DELETE CASCADE
Anak
(AnakID, Nama, JenisKelamin, TempatLahir, TanggalLahir, SekolahKerja, Keterangan)
Primary Key : AnakID Detail_Organisasi (NIP, OrganisasiID)
Primary Key : NIP, OrganisasiID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
OrganisasiID references Organisasi (OrganisasiID) ON UPDATE CASCADE ON DELETE CASCADE
Organisasi
(OrganisasiID, Organisasi, Kedudukan, TanggalMulai, TanggalKeluar, Tempat, PimpinanOrganisasi)
Primary Key : OrganisasiID Detail_Thread
(NIP, ThreadID)
Primary Key : NIP, ThreadID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
ThreadIDreferencesThread (ThreadID) ON UPDATE CASCADE ON DELETE CASCADE
Thread
(ThreadID, ThreadTitle, PostedDate, ThreadContent, CommentID)
Primary Key : ThreadID Foreign Key :
CommentIDreferences Detail_Comment (CommentID) ON UPDATE CASCADE ON DELETE CASCADE
Detail_Comment (NIP, CommentID)
Primary Key : NIP, CommentID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
Comment
(CommentID, CommentPegawai) Primary Key : CommentID Detail_Barang
(NIP, BarangID)
Primary Key : NIP, BarangID Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
BarangID references Barang (BarangID) ON UPDATE CASCADE ON DELETE CASCADE
Barang
(BarangID, NamaBarang, StatusBarang, NIP) Primary Key : BarangID
Foreign Key :
NIP references Pegawai (NIP) ON UPDATE CASCADE ON DELETE CASCADE
5. Batasan perusahaan
Batasan perusahaan merupakan aturan bisnis yang berlaku di dunia nyata. Dalam perancangan yang dibangun tidak terdapat batasan-batasan yang diberikan perusahaan.
4.1.2.5 Meninjau Ulang Model Data Logikal dengan User
Model data logikal dan dokumen pendukung yang mendeskripsikan model adalah representasi yang telah didiskusikan dan dinyatakan benar oleh pengguna.
4.1.2.6 Menggabungkan Model Data Logikal ke Model Data Global
Pada perancangan basis data ini, penulis tidak melakukan langkah menggabungkan model data logikal ke dalam model global.
4.1.2.7 Mengecek untuk Perkembangan yang Akan Datang
Model data yang dirancang sudah disesuaikan untuk kemungkinan-kemungkinan yang terjadi di masa depan selama usertidak melakukan pengubahan.
4.1.3 Perancangan Basis Data Fisikal
4.1.3.1 Perancangan Relasional Basis Data
Perancangan database Physical meliputi langkah-langkah sebagai berikut :
Pegawai
Domain NIP Domain NamaID
character string, length 18 Integer, length 6
Domain GolonganDarah Domain GelarDepan Domain GelarBelakang Domain TempatLahir Domain TanggalLahir Domain JenisKelamin Domain Agama Domain ContactID Domain Kegemaran Domain Foto Domain AlamatID Domain PhysicID Domain NoRek Domain TunjanganID
Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 DATE, format mm-dd- yyyy
Variable length character string, length 50 Variable length character string, length 50 Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Integer, length 6
Integer, length 6
Variable length character string, length 50 Integer, length 6 Pegawai ( Nomor_Induk_Pegawai NamaID Status_Perkawinan_Pegawa Golongan_Darah_Pegawai GelarID Tempat_Lahir_Pegawai Tanggal_Lahir_Pegawai NIP NamaID StatusPerkawinan GolonganDarah GelarID TempatLahir TanggalLahir NOT NULL NOT NULL NULL NULL NOT NULL NULL NULL
Jenis_Kelamin_Pegawai Agama_Pegawai ContactID Kegemaran_Pegawai Foto_Pegawai AlamatID PhysicID NoRek_Bank_Pegawai TunjanganID JenisKelamin Agama ContactID Kegemaran Foto AlamatID PhysicID NoRek TunjanganID NULL NULL NOT NULL NULL NULL NOT NULL NOT NULL NOT NULL NOT NULL PRIMARY KEY (NIP)
FOREIGN KEY(AlamatID) REFERENCES (Address) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(PhysicID) REFERENCES (Physical) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(NoRek) REFERENCES(Bank) ON DELETE CASCADE ON UPDATE CASECADE,
FOREIGN KEY(TunjuanganID) REFERENCES(Tunjangan) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(NamaID) REFERENCES(Nama) ON DELETE CASCADE ON UPPDATE CASCADE,
FOREIGN KEY(GelarID) REFERENCES(Gelar) ON DELETE CASCADE ON DELETE CASCADE,
); Nama Domin NamaID Domin NamaLengkap Domin NamaPanggilan Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Nama ( NamaID NamaLengkap_Pegawai NamaPanggilan_Pegawai NamaID NamaLengkap NamaPanggilan NOT NULL NULL NULL PRIMARY KEY (NamaID)
); Gelar GelarID GelarDepan GelarBelakang Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Gelar ( GelarID GelarDepan_Pegawai GelarBelakang_Pegawai GelarID GelarDepan GelarBelakang NOT NULL NULL NULL
PRIMARY KEY (GelarID) ); Contact Domain ContactID Domain Telepon Domain FAX Domain Email Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 Contact( ContactID Telepon_Pegawai FAX_Pegawai Email_Pegawai ContactID Telepon FAX Email NOT NULL NULL NULL NULL PRIMARY KEY (ContactID)
); Tunjangan Domain TunjanganID Domain ASKES Domain KARISU Domain TASPEN Domain KARTEG Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50
Tunjangan ( TunjanganID Nomer_ASKES Nomer_KASI/KARSU Nomer_TASPEN Nomer_KARTEG Nomer_NOMPWP TunjanganID ASKES KARISU TASPEN KARTEG NOMPWP NOT NULL NULL NULL NULL NULL NULL PRIMARY KEY (TunjanganID)
);
Bank
Domain Bank Domain NoRek
Variable length character string, length 50 Variable length character string, length 50
Bank ( NoRekening Bank NoRek Bank NOT NULL NULL PRIMARY KEY (NoRek)
Address Domain AlamatID Domain Alamat Domain Kelurahan Domain Kecamatan Domain PropinsiID Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 Integer, length 6 Address( AlamatID Alamat_Pegawai Kelurahan_Pegawai Kecamatan_Pegawai PropinsiID AlamatID Alamat Kelurahan Kecamatan PropinsiID NOT NULL NULL NULL NULL NOT NULL PRIMARY KEY (AlamatID)
FOREIGN KEY(PropinsiID) REFERENCES(Propinsi) ON DELETE CASCADE ON UPDATE CASCADE ); Propinsi Domain PropinsiID Domain Propinsi Integer, length 6
Variable length character string, length 50 Propinsi(
PRIMARY KEY (PropinsiID) ); Physic Domain PhysicID Domain Tinggi Domain Berat Domain Rambut Domain BentukMuka Domain WarnaKulit Domain CiriKhas Domain CacatTubuh Integer, length 6 Integer, length 6 Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 Physic ( PhysicID Tinggi Berat Rambut BentukMuka WarnaKulit CiriKhas CacatTubuh PhysicID Tinggi Berat Rambut BentukMuka WarnaKulit CiriKhas CacatTubuh NOT NULL NULL NULL NULL NULL NULL NULL NULL PRIMARY KEY (PhysicID)
);
Detail_Pendidikan Domain NIP
Domain PendidikanID
character string, length 18 Integer, length 6 Detail_Pendidikan( Nomor_Induk_Pegawai PendidikanID NIP PendidikanID NOT NULL NOT NULL PRIMARY KEY (NIP, PendidikanID)
FOREIGN KEY(PendidikanID) REFERENCES(Pendidikan) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(NIP) REFERENCES(Pendidikan) ON DELETE CASCADE ON UPDATE CASCADE ); Pendidikan Domain PendidikanID Domain Tingkat Domain NamaPendidikan Domain Jurusan Domain IjazahID Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50 Pendidikan(
NamaPendidikan Jurusan IjazahID NamaPendidikan Jurusan IjazahID NULL NULL NOT NULL PRIMARY KEY (PendidikanID)
FOREIGN KEY(IjazahID) REFERENCES(Ijazah_Pendidikan) ON DELETE CASCADE ON UPDATE CASCADE
); Ijazah_Pendidikan Domain IjazahID Domain IjazahTahun Domain Tempat Domain KepalaSekolah Integer, length 6 Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Ijazah_Pendidikan ( IjazahID IjazahTahun Nama_Sekolah KepalaSekolah IjazahID IjazahTahun Tempat KepalaSekolah NOT NULL NULL NULL NULL PRIMARY KEY (IjazahID)
Detail_Kursus Domain NIP Domain KursusID
character string, length 18 Integer, length 6 Detail_Kursus ( Nomor_Induk_Pegawai KursusID NIP KursusID NOT NULL NOT NULL PRIMARY KEY (NIP,KursusID)
FOREIGN KEY(KursusID) ON REFERENCES(Kursus) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(NIP) ON REFERENCES(Pegawai) ON DELETE CASCADE ON UPDATE CASCADE ); Kursus Domain KursusID Domain Kursus Domain TanggalMulai Domain TanggalSelesai Domain IjazahID Integer, length 6
Variable length character string, length 50 DATE, format mm-dd- yyyy
DATE, format mm-dd- yyyy Integer, length 6
Kursus (
TanggalMulai_Kursus TanggalSelesai_Kursus IjazahID TanggalMulai TanggalSelesai IjazahID NULL NULL NOT NULL PRIMARY KEY (KursusID)
FOREIGN KEY(IjazahID) REFERENCES(Ijazah) ON DELETE CASCADE ON UPDATE CASCADE
);
Detail_Diklat
Domain NIP Domain_DiklatID
character string, length 18
Variable length character string, length 50 Detail_Diklat ( Nomor_Induk_Pegawai DiklatID NIP DiklatID NOT NULL NOT NULL PRIMARY KEY (DiklatID,NIP)
FOREIGN KEY(NIP) REFERENCES(Pegawai) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(DiklatID) REFERENCES(Diklat) ON DELETE CASCADE ON UPDATE CASCADE
Diklat Domain DiklatID Domain Diklat Domain TanggalMulai Domain TanggalSelesai Domain IjazahID Integer, length 6
Variable length character string, length 50 DATE, format mm-dd- yyyy
DATE, format mm-dd- yyyy Integer, length 6 Diklat ( DiklatID Nama_Diklat TanggalMulai_Diklat TanggalSelesai_Diklat IjazahID DiklatID Diklat TanggalMulai TanggalSelesai IjazahID NOT NULL NULL NULL NULL NOT NULL PRIMARY KEY (DiklatID)
FOREIGN KEY(IjazahID) REFERENCES(Ijazah) ON DELETE CASCADE ON UPDATE CASCADE ); Detail_Pangkat Domain GolonganID Domain NIP Integer, length 6
character string, length 18 Detail_Pangkat ( GolonganID Nomor_Induk_Pegawai GolonganID NIP NOT NULL NOT NULL
FOREIGN KEY(GolonganID) REFERENCES(Pangkat) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(NIP) REFERENCES(Pegawai) ON DELETE CASCADE ON UPDATE CASCADE ); Pangkat GolonganID GolonganRuang TMT GajiPokok NomorSurat Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Decimal, in the range 0.00 – 9999999999.00 Variable length character string, length 50 Pangkat ( GolonganID GolonganRuang Terhitung_Masuk_Tanggal GajiPokok NomorSurat GolonganID GolonganRuang TMT GajiPokok NomorSurat NOT NULL NULL NULL NULL NOT NULL PRIMARY KEY (GolonganID)
FOREIGN KEY(NomorSurat) REFERENCES(Surat) ON DELETE CASCADE ON UPDATE CASCADE
Surat
Domain NomorSurat Domain Pejabat Domain Tanggal Domain Keterangan
Variable length character string, length 50 Variable length character string, length 50 DATE, format mm-dd- yyyy
Variable length character string, length 50 Surat( NomorSurat Pejabat Tanggal Keterangan NomorSurat Pejabat Tanggal Keterangan NOT NULL NULL NULL NULL PRIMARY KEY (NomorSurat)
);
Detail_Jabatan NIP JabatanID
character string, length 18 Integer, length 6 Detail_Jabatan ( NIP JabatanID NIP JabatanID NOT NULL NOT NULL PRIMARY KEY (NIP,JabatanID)
FOREIGN KEY(NIP) REFERENCES(Pegawai) ON DELETE CASCADE ON UPDATE CASCADE,
); Jabatan Domain JabatanID Domain Jabatan Domain GolonganRuang Domain TMT Domain GajiPokok Domain NomorSurat
Variable length character string, length 50 Integer, length 6
Variable length character string, length 50 DATE, format mm-dd-yyyy
Decimal, in the range 0.00 – 9999999999.00 Variable length character string, length 50 Jabatan ( JabatanID Nama_Jabatan GolonganRuang Terhitung_Masuk_Tanggal GajiPokok NomorSurat JabatanID Jabatan GolonganRuang TMT GajiPokok NomorSurat NOT NULL NULL NULL NULL NULL NOT NULL PRIMARY KEY (JabatanID)
FOREIGN KEY(NomorSurat) REFERENCES(Surat) ON DELETE CASCADE ON UPDATE CASCADE
Detail_Penghargaan Domain NIP
Domain PenghargaanID
character string, length 18 Integer, length 6 Detail_Penghargaan( NIP PenghargaanID NIP PenghargaanID NOT NULL NOT NULL PRIMARY KEY (NIP,PenghargaanID)
FOREIGN KEY(NIP) REFERENCES(Pegawai) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(PenghargaanID) REFERENCES(Penghargaan) ON DELETE CASCADE ON UPDATE CASCADE
); Penghargaan Domain PenghargaanID Domain Penghargaan Domain Tahun Domain NamaInstansi Integer, length 6
Variable length character string, length50 Integer, length 6
Variable length character string, length 50 Penghargaan( PenghargaanID Nama_Penghargaan Tahun NamaInstansi PenghargaanID Penghargaan Tahun NamaInstansi NOT NULL NULL NULL NULL
FOREIGN KEY(PenghargaanID) REFERENCES(Penghargaan) ON DELETE CASCADE ON UPDATE CASCADE
);
Detail_Kunjungan Domain NIP
Domain KunjunganID
character string, length 18 Integer, length 6 Detail_Kunjungan ( Nomor_Induk_Pegawai KunjunganID NIP KunjunganID NOT NULL NOT NULL PRIMARY KEY (NIP,KunjunganID)
FOREIGN KEY(KunjunganID) REFERENCES(Kunjungan) ON DELETE CASCADE ON UPDATE CASCADE
FOREIGN KEY(NIP) REFERENCES(Pegawai) ON DELETE CASCADE ON UPDATE CASCADE ); Kunjungan Domain KunjunganID Domain Negara Domain Tujuan Domain Lamanya Integer, length 6
Variable length character string, length 50 Variable length character string, length 50 Variable length character string, length 50
Domain Pemberi Variable length character string, length 50 Kunjungan ( KunjunganID Nama_Negara Tujuan Lamanya Pemberi KunjunganID Negara Tujuan Lamanya Pemberi NOT NULL NULL NULL NULL NULL PRIMARY KEY (KunjunganID)
);
Detail_Pasangan Domain NIP
Domain PasanganID
character string, length 18 Integer, length 6 Detail_Pasangan ( Nomor_Induk_Pegawai PasanganID NIP PasanganID NOT NULL NOT NULL PRIMARY KEY (NIP, PasanganID)
FOREIGN KEY(PasanganID) REFERENCES(Pasangan) ON DELETE CASCADE ON UPDATE CASCADE
FOREIGN KEY(NIP) REFERENCES(Pegawai) ON DELETE CASCADE ON UPDATE CASCADE
Domain PasanganID Domain Nama Domain TempatLahir Domain TanggalLahir Domain TanggalNikah Domain Pekerjaan Domain Keterangan
Variable length character string, length 50 Integer, length 6
Variable length character string, length 50 DATE, format mm-dd-yyyy
DATE, format mm-dd-yyyy
Variable length character string, length 50 Variable length character string, length 50 Detail_Anak ( PasanganID Nama_Pasangan TempatLahir_Pasangan TanggalLahir_ Pasangan TanggalNikah Pekerjaan_ Pasangan Keterangan_ Pasangan PasanganID Nama TempatLahir TanggalLahir TanggalNikah Pekerjaan Keterangan NOT NULL NULL NULL NULL NULL NULL NULL PRIMARY KEY (PasanganID)
);
Detail_Anak
Domain NIP Domain AnakID
character string, length 18 Integer, length 6