BAB 4
PERANCANGAN DAN IMPLEMENTASI
4.1 Perancangan Database
Pada perancangan database dibagi dalam beberapa tahap perancangan. Tahapan
tersebut antara lain adalah perancangan logical, perancangan konseptual dan perancangan fisikal.
4.1.1 Membangun Model Konseptual Data Local
Pada tahapan ini perancangan dilakukan berdasarkan analisis langsung kepada system yang telah berjalan di SMA Galatia 3 saat ini. Dengan melakukan analisis tersebut maka hal ini akan mempermudah perancangan konseptual data dalam menentukan entity, atribut serta hubungan antar entity yang akan digunakan dalam perancangan sistem basis data.
4.1.1.1 Perancangan Basisdata Konseptual
Perancangan basisdata konseptual meliputi langkah-langkah sebagai berikut:
1. Identifikasi tipe entitas
2. Identifikasi tipe hubungan
3. Identifikasi dan asosiasi atribut dengan entitas atau relationship tertentu
4. Menentukan domain atribut
5. Menentukan atribut candidate, primary, dan alternate keys
6. Mempertimbangkan penggunaan enhanced modeling concept
7. Memeriksa redundansi pada model
8. Validasi model data konseptual dengan transaksi user
9. Melakukan review model data konseptual dengan user
4.1.1.2 Indentifikasi Tipe Entity
Indentifikasi tipe Entity adalah tahap awal dalam perancangan konseptual basis data. Indentifikasi ini bertujuan untuk memudahkan perancangan konseptual basis data dalam menentukkan atribut serta hubungannya dengan entity lain.
Entity Name Description Aliases Occurrence MsSiswa Istilah umum yang dipakai
untuk semua siswa yang terdaftar di SMA Galatia 3
Murid Setiap siswa
memiliki orang tua atau wali, kelas, absensi, data pribadi. MsOrangTua Istilah umum yang dipakai
untuk orang tua siswa
Orang Tua Setiap orang tua yang anaknya bersekolah pada SMU Galatia 3, data
Entity Name Description Aliases Occurrence
berupa data ayah dan ibu dari siswa tersebut
MsWali Istilah umum yang dipakai untuk wali siswa
Wali Data wali dapat
berupa data ayah, ibu, ataupun wali siswa
MsGuru Istilah umum yang dipakai untuk setiap guru yang mengajar di SMA Galatia 3
Guru Setiap guru minimal
memiliki satu mata pelajaran dan dapat menjadi wali kelas MsKaryawan Istilah umum yang dipakai
untuk setiap orang bekerja pada SMU Galatia 3 selain profesi guru
Karyawan Karyawan dapat
memanage data, atau
dapat melihat laporan-laporan yang
ada tergantung dari
jabatan yang dimiliki.
MsUser Tabel entity yang berisi mengenai data dari setiap user yang akan menggunakan aplikasi
User Setiap staff sekolah
baik itu bagian TU, guru, ataupun kepala sekolah
Entity Name Description Aliases Occurrence MsTugas Istilah umum yang dipakai
untuk setiap tugas yang diberikan oleh guru sekolah SMA Galatia 3
Tugas Setiap tugas dapat
dimiliki oleh satu atau banyak siswa, serta dimiliki oleh satu mata pelajaran MsUlangan Istilah umum yang dipakai
untuk setiap ulangan yang diberikan oleh guru sekolah SMA Galatia 3
Ulangan Setiap ulangan dapat dimiliki oleh satu atau banyak siswa, serta dimiliki oleh satu mata pelajaran MsMatPel Istilah umum yang dipakai
untuk setiap mata pelajaran yang diajarkan pada SMA Galatia 3
Mata Pelajaran Setiap mata pelajaran dapat dimiliki oleh satu atau banyak guru
MsKelas Istilah umum yang dipakai untuk tingkatan siswa di SMA Galatia 3
Kelas Setiap kelas memiliki
banyak siswa, jadwal kelas, dan satu wali kelas
4.1.1.2. Identifikasi tipe hubungan
Tujuan dari tahap ini adalah untuk menentukan hubunganhubungan yang ada antara jenis-jenis entitas yang telah diidentifikasikan.
Indentifikasi tipe relasi antar entity sebagai berikut :
Nama Entity Multiplicity Relasional Nama Entity Multiplicity
MsSiswa 1..1 Dimiliki MsWali 1..1
1..1 Dimiliki MsOrangTua 1..1 1..* Dimiliki MsAbsensi 1..* 1..1 Dimiliki MsNilai 1..1 1..1 Memiliki MsKelas 1..* 1..* Dimiliki MsTugas 1..* 1..* Dimiliki MsUlangan 1..*
MsGuru 1..1 Memiliki MsMatPel 1..*
1..1 Memiliki MsUser 1..1
MsKaryawan 1..1 Memiliki MsUser 1..1
MsJadwal 1..* Memiliki MatPel 1..*
1..1 Memiliki MsKelas 1..1
Tabel 4.2 Tabel Hubungan antar Entitas
Dari hasil identifikasi tipe entitas dan relasi diatas, maka ERD dari SMU GAalatia 3 adalah sebagai berikut :
Gambar 4.1 Entity Relationship Diagram Konseptual
4.1.1.3. Identifikasi dan asosiasi atribut dengan entitas atau relationship tertentu
Tahap ini bertujuan untuk mengasosiasikan atribut dengan Entity atau Relationship Tipe yang cocok dan juga menentukan domain bagi atribut-atribut dalam model data konseptual. Atribut-atribut entity yang diidentifikasikan adalah :
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
MsSiswa KdSiswa Kode unik yang
mengindetifikasikan setiap siswa SMU Galatia 3
Varchar(7) No No
NIS No induk yang unik
pada setiap siswa yang bersekolah di SMU Galatia 3
Varchar(6) No No
No_Reg No registrasi yang
diberikan oleh pemerintah terhadap siswa sekolah
Varhcar(7) No No
Nama_Siswa Nama Siswa Varchar (40) No No
Jenis_Kelamin Jenis Kelamin siswa Char(1) No No
Agama Nama agama yang
dianut oleh siswa tersebut
Varchar(8) No No
Telp No telepon dari
siswa tersebut
Varchar(12) Yes No
Nama Entity Atribut Deskripsi Produk Data Dan Length Nulls Multi Valued siswa tersebut
Alamat Alamat dari siswa
tersebut
Varchar(50) No No
Propinsi Propisnisi dimana
siswa tersebut tinggal
Varchar (20) No No
KotaMadya Kotamadya atau
kabupaten dimana siswa tersebut tinggal
Varchar (20) No No
Kecamatan Kecamatan dimana
siswa tersebut tinggal
Varchar (20) No No
Kelurahan Nama Kelurahan
dimana siswa tersebut tinggal
Varchar (20) No No
kdPos Kode pos tempat
siswa tersebut tinggal
Numeric(5) No No
Email Alamat surat
elektronik dari siswa tersebut
Varchar(20) Yes No
Tempat_Lahir Tempat dimana
siswa tersebut
Nama Entity Atribut Deskripsi Produk Data Dan Length Nulls Multi Valued dilahirkan
Tgl_Lahir Waktu siswa tersebut
dilahirkan
Datetime No No
Status_Diri Status yang
menunjukkan apakah keluarga siswa yang bersekolah di SMU Galatia 3 lengkap atau tdiak
Char(1) No No
Status Status yang
menunjukkan apakah siswa tersebut adalah siswa baru yang akan masuk, siswa aktif, atau alumni sekolah SMU Galatia 3
Varchar(12) No No
Golongan_Darah Golongan darah dari siswa tersebut
Char(2) Yes No
Anak_Ke Urutan anak siswa
tersebut di dalam
Nama Entity Atribut Deskripsi Produk Data Dan Length Nulls Multi Valued keluarga
Saudara_Kandung Jumlah saudara
kandung siswa tersebut
Numeric(2) Yes No
Saudara_Tiri Jumlah saudara tiri
siswa tersebut
Numeric(2) Yes No
Saudara_Angkat Jumlah saudara
angkat siswa tersebut
Numeric(2) Yes No
Nama_Sekolah_Asal Nama sekolah sebelum siswa tersebut masuk ke SMU Galatia 3
Varhcar(40) No No
Alamat_Sekolah_Asal Alamat sekolah sebelum siswa tersebut masuk ke SMU Galatia 3
Varhcar(50) No No
STL_Tahun Tahun dimana STL
siswa tersebut dikeluarkan
Varchar(4) Yes No
Nama Entity Atribut Deskripsi Produk Data Dan Length Nulls Multi Valued tersebut
Foto_Siswa Foto siswa tersebut
yang disimpan dalam bentuk lokasinya
Varchar(100) Yes No
Wali KdWali Kode unik untuk
mengindentifikasikan wali siswa
Varchar (7) No No
Nama_Wali Nama Wali Varchar (40) No No
Tempat_Lahir Tempat dimana Wali
tersebut dilahirkan
Varchar(15) Yes No
Tgl_Lahir Waktu dimana Wali
tersebut dilahirkan
Datetime Yes No
Agama Nama agama yang
dianut oleh Wali tersebut
Varchar(8) No No
Telp No telepon dari Wali
tersebut
Varchar(12) Yes No
Hp No handphone dari
Wali tersebut
Varchar(12) Yes No
Nama Entity Atribut Deskripsi Produk Data Dan Length Nulls Multi Valued tersebut
Propinsi Propisnisi dimana
Wali tersebut tinggal
Varchar (20) No No
KotaMadya Kotamadya atau
kabupaten dimana Wali tersebut tinggal
Varchar (20) No No
Kecamatan Kecamatan dimana
Wali tersebut tinggal
Varchar (20) No No
Kelurahan Nama Kelurahan
dimana Wali tersebut tinggal
Varchar (20) No No
kdPos Kode pos tempat
Wali tersebut tinggal
Numeric(5) No No
Email Alamat surat
elektronik dari Wali tersebut
Varchar(20) Yes No
KewargaNegaraan Status warga negara dari wali tersebut
Char(1) No Yes
Pekerjaan Pekerjaan dari Wali
tersebut
Nama Entity Atribut Deskripsi Produk Data Dan Length Nulls Multi Valued Penghasilan Perkiraan penghasilan yang didapatkan wali selama sebulan Varchar(15) Yes No
Pendidikan Pendidikan terakhir
yang diterima oleh wali dari siswa tersebut
Varchar(10) Yes No
msOrangTua KdOrangTua Kode unik untuk
mengindentifikasikan Orang Tua siswa
Varchar (7) No No
Nama_Ayah Nama Ayah dari
siswa tersebut
Varchar (40) No No
Tempat_Lahir_Ayah Tempat dimana Ayah dari siswa tersebut dilahirkan
Varchar(15) Yes No
Tgl_Lahir_Ayah Waktu dimana Ayah dari siswa tersebut dilahirkan
Datetime Yes No
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
dari siswa tersebut masih hidup ataukah sudah meninggal
Agama_Ayah Nama agama yang
dianut oleh Ayah dari siswa tersebut
Varchar(8) No No
Telp_Ayah No telepon dari Ayah
dari siswa tersebut
Varchar(12) Yes No
Hp_Ayah No handphone dari
Ayah dari siswa tersebut
Varchar(12) Yes No
Alamat_Ayah Alamat dari Ayah
dari siswa tersebut
Varchar(50) No No
Propinsi_Ayah Propisnisi dimana
Ayah dari siswa tersebut tinggal
Varchar (20) No No
KotaMadya_Ayah Kotamadya atau
kabupaten dimana Ayah dari siswa tersebut tinggal
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
Kecamatan_Ayah Kecamatan dimana
Ayah dari siswa tersebut tinggal
Varchar (20) No No
Kelurahan_Ayah Nama Kelurahan
dimana Ayah dari siswa tersebut tinggal
Varchar (20) No No
kdPos_Ayah Kode pos tempat
Ayah dari siswa tersebut tinggal
Numeric(5) No No
Email_Ayah Alamat surat
elektronik dari Ayah dari siswa tersebut
Varchar(20) Yes No
KewargaNegaraan_Ayah Status warga negara dari Ayah dari siswa tersebut
Char(1) No Yes
Pekerjaan_Ayah Pekerjaan dari Ayah dari siswa tersebut
Varchar(20) No No
Penghasilan_Ayah Perkiraan
penghasilan yang didapatkan oleh
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
Ayah dari siswa tersebut selama sebulan
Pendidikan_Ayah Pendidikan terakhir
yang diterima oleh Ayah dari siswa tersebut
Varchar(10) Yes No
Nama_Ibu Nama Ibu dari siswa
tersebut
Varchar (40) No No
Tempat_Lahir_Ibu Tempat dimana Ibu dari siswa tersebut dilahirkan
Varchar(15) Yes No
Tgl_Lahir_Ibu Waktu dimana Ibu
dari siswa tersebut dilahirkan
Datetime Yes No
Status_Ibu Status apakah Ibu
dari siswa tersebut masih hidup ataukah sudah meninggal
Char(1) No No
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
dianut oleh Ibu dari siswa tersebut
Telp_Ibu No telepon dari Ibu
dari siswa tersebut
Varchar(12) Yes No
Hp_Ibu No handphone dari
Ibu dari siswa tersebut
Varchar(12) Yes No
Alamat_Ibu Alamat dari Ibu dari
siswa tersebut
Varchar(50) No No
Propinsi_Ibu Propisnisi dimana
Ibu dari siswa tersebut tinggal
Varchar (20) No No
KotaMadya_Ibu Kotamadya atau
kabupaten dimana Ibu dari siswa tersebut tinggal
Varchar (20) No No
Kecamatan_Ibu Kecamatan dimana
Ibu dari siswa tersebut tinggal
Varchar (20) No No
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
dimana Ibu dari siswa tersebut tinggal
kdPos_Ibu Kode pos tempat Ibu
dari siswa tersebut tinggal
Numeric(5) No No
Email_Ibu Alamat surat
elektronik dari Ibu dari siswa tersebut
Varchar(20) Yes No
KewargaNegaraan_Ibu Status warga negara dari Ibu dari siswa tersebut
Char(1) No Yes
Pekerjaan_Ibu Pekerjaan dari Ibu dari siswa tersebut
Varchar(20) No No
Penghasilan_Ibu Perkiraan penghasilan yang didapatkan oleh Ibu dari siswa tersebut selama sebulan
Varchar(15) Yes No
Pendidikan_Ibu Pendidikan terakhir
yang diterima oleh
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
Ibu dari siswa tersebut
MsGuru KdGuru Kode unik yang
mengidentifikasikan setiap guru yang mengajar di SMU Galatia 3
Varchar(6) No No
NIP No induk yang unik
yang diberikan oleh pemerintah kepada setiap staff sekolah
Varchar(9) No No
Nama_Guru Nama Guru Varchar (40) No No
Prefik Gelar yang berada di
depan nama guru tersebut
Varchar(10) Yes No
Postfik Gelar yang berada di
akhir nama guru tersebut
Varchar(10) Yes No
Jenis_Kelamin Jenis Kelamin Guru Char(1) No No
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
dianut oleh Guru tersebut
Telp No telepon dari Guru
tersebut
Varchar(12) Yes No
Hp No handphone dari
Guru tersebut
Varchar(12) Yes No
Alamat Alamat dari Guru
tersebut
Varchar(50) No No
Propinsi Propisnisi dimana
Guru tersebut tinggal
Varchar (20) No No
KotaMadya Kotamadya atau
kabupaten dimana Guru tersebut tinggal
Varchar (20) No No
Kecamatan Kecamatan dimana
Guru tersebut tinggal
Varchar (20) No No
Kelurahan Nama Kelurahan
dimana Guru tersebut tinggal
Varchar (20) No No
kdPos Kode pos tempat
Guru tersebut tinggal
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
Email Alamat surat
elektronik dari Guru tersebut
Varchar(20) Yes No
Tipe_Pegawai Status atau tipe guru tersebut dalam sekolah SMU Galatia 3, apakah sebagai guru tetap atau guru honorer.
Char(1) No No
Lulusan Nama universitas
tempat guru itu lulus
Varchar(25) No No
Tgl_Masuk Waktu dimana guru
itu diterima untu mengajar di sekolah SMU Galatia 3
Datetime No No
SK No dari SK yang
dimiliki oleh guru tersebur
Varchar(10) No No
Kajian Mata Pelajaran yang
dikuasai
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
MsKaryawan KdKaryawan Kode Unik yang
mengidentifikasikan Keapa Sekolah yang bertugas pada SMU Galatia 3
Varchar (6) No No
NIP No induk yang unik
yang diberikan oleh pemerintah kepada setiap staff sekolah
Numeric(10) No No
Nama Nama Karyawan
tersebut
Varchar (40) No No
Jabatan Jabatan dari staff
tersebut
Varchar (10) No No
Tgl_Masuk Waktu dimana guru
itu diterima untu mengajar di sekolah SMU Galatia 3
Datetime No No
Jenis_Kelamin Jenis Kelamin dari staff tersebut
Char(1) No No
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
dianut oleh Staff tersebut
Telp No telepon dari Staff
tersebut
Varchar(12) Yes No
Hp No handphone dari
Staff tersebut
Varchar(12) Yes No
Alamat Alamat dari Staff
tersebut
Varchar(50) No No
Propinsi Propisnisi dimana
Staff tersebut tinggal
Varchar (20) No No
KotaMadya Kotamadya atau
kabupaten dimana Staff tersebut tinggal
Varchar (20) No No
Kecamatan Kecamatan dimana
Staff tersebut tinggal
Varchar (20) No No
Kelurahan Nama Kelurahan
dimana Staff tersebut tinggal
Varchar (20) No No
kdPos Kode pos tempat
Staff tersebut tinggal
Nama Entity Atribut Deskripsi Produk Data Dan
Length
Nulls Multi Valued
Email Alamat surat
elektronik dari Staff tersebut
Varchar(20) Yes No
MsUser User_Name Kode unik yang
mengindentifikasi setiap user yang akan mengakses aplikasi
Varchar(10) No No
Password Password Varchar(10) No No
Status Status User yang
mengakses sistem
Varchar(15) No No
Absensi Kdabsensi Kode unik yang
mengidentifikasi suatu absensi
Varchar(8) No No
Jenis_absensi Jenis absensi
mengapa siswa tersebut absen
Varchar(5) No No
Tanggal_absen Waktu yang
menunjukkan kapan seorang siswa absen
Datetime No No
Nama Entity Atribut Deskripsi Produk Data Dan Length Nulls Multi Valued berhubungan dengan absennya siswa tersebut
MsKelas KdKelas Kode unik yang
mengidentifikasi suatu nilai
Varchar(3) No No
Nama_Kelas Nama Kelas Varchar (10) No No
MsMataPelajaran Kd_MatPel Kode unik yang
mengidentifikasi suatu mata pelajaran
Varchar (6) No No
Nama_MatPel Nama mata pelajaran Varchar (20) No No
SK Standar sebuah mata
pelajaran
int No No
PPK_Nilai Nilai Pengetahuan
dan pemahaman konsep dari siswa tersebut
Int Yes No
PPK_Huruf Nilai Pengetahuan
dan pemahaman konsep dari siswa
Nama Entity Atribut Deskripsi Produk Data Dan Length Nulls Multi Valued tersebut dalam format tulisan
Praktik_Nilai Nilai Praktik dari
seorang siswa
Int Yes No
Praktik_Huruf Nilai Praktik dari
seorang siswa dalam format tulisan
Varchar(20) Yes No
Sikap Nilai Sikap dari
seorang siswa
Varchar(2) Yes No
Semester Semester dari nila
siswa tersebut
Numeric(1) No No
Tabel 4.3 Tabel Atribut
4.1.1.4. Menentukan domain atribut
Domain atribut adalah kumpulan nilai yang diperbolehkan untuk satu atau lebih atribut. Domain merupakan fitur yang sangat kuat dalam model relational. Setiap atribut di dalam relasi ditetapkan dalam domain. Domain mungkin berbeda untuk satu atau lebih atribut, ditetapkan dalam
domain yang sama. Dari hasil penentuan atribut maka didapatkan domain atribut sebagai berikut:
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
MsSiswa KdSiswa Varchar(7) Diisi dengan kd
S[0-9][0-9][0-9]/2 digit tahun waktu input
NIS Varchar(6) Diisi dengan 6 angka
No_Reg Varhcar(7) Diisi dengan angka,
maksimal 7 angka
Nama_Siswa Varchar (40) Diisi dengan huruf,
maksimal 40 huruf
Jenis_Kelamin Char(1) Diisi hanya dengan 1
character yaitu L yang menunjukkan laki-laki dan P yang menunjukkan
perempuan
Agama Varchar(8) Diisi dengan huruf,
maksimal 8 huruf
Telp Varchar(12) Diisi dengan angka,
maksimal 12 angka
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
maksimal 12 angka
Alamat Varchar(50) Diisi dengan huruf,
maksimal 50 huruf
Propinsi Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
KotaMadya Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
Kecamatan Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
Kelurahan Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
kdPos Numeric(5) Diisi dengan angka,
maksimal 5
Email Varchar(20) Diisi dengan huruf,
simbol atau angka maksimal 20 huruf
Tempat_Lahir Varchar(15) Diisi dengan huruf,
maksimal 15 huruf
Tgl_Lahir Datetime Diisi dengan tanggal,
bulan dan tahun
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
character yaitu L yang menunjukkan keluarga lengkap dan T yang menunjukkan keluarga tidak lengkap
Status Varchar(12) Diisi dengan pilihan
calon siswa, aktif, atau alumni
Golongan_Darah Char(2) Diisi dengan huruf,
maksimal 2 huruf
Anak_Ke Numeric(2) Diisi dengan 2 angka
Saudara_Kandung Numeric(2) Diisi dengan 2 angka Saudara_Tiri Numeric(2) Diisi dengan 2 angka Saudara_Angkat Numeric(2) Diisi dengan 2 angka Nama_Sekolah_Asal Varhcar(40) Diisi dengan huruf,
maksimal 40 huruf
Alamat_Sekolah_Asal Varhcar(50) Diisi dengan huruf, maksimal 50 huruf
STL_Tahun Varchar(4) Diisi dengan tahun
STL_No Varchar(8) Diisi dengan 8 angka
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
maksimal 100 huruf
MsWali KdWali Varchar (7) Diisi dengan kd
W[0-9][0-9][0-9]/2 digit tahun waktu input
Nama_Wali Varchar (40) Diisi dengan huruf,
maksimal 40 huruf
Tempat_Lahir Varchar(15) Diisi dengan angka,
maksimal 15 angka
Tgl_Lahir Datetime Diisi dengan tanggal,
bulan dan tahun
Agama Varchar(8) Diisi dengan huruf,
maksimal 8 huruf
Telp Varchar(12) Diisi dengan angka,
maksimal 12 angka
Hp Varchar(12) Diisi dengan angka,
maksimal 12 angka
Alamat Varchar(50) Diisi dengan huruf,
maksimal 50 huruf
Propinsi Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
maksimal 20 huruf
Kecamatan Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
Kelurahan Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
kdPos Numeric(5) Diisi dengan angka,
maksimal 5
Email Varchar(20) Diisi dengan huruf,
simbol atau angka maksimal 20 huruf
KewargaNegaraan Char(1) Diisi dengan I sebagai
warga Negara Indonesia, dan A
sebagai warga Negara asing
Pekerjaan Varchar(20) Diisi dengan huruf
maksimal 20 huruf Penghasilan Varchar(15) Diisi dengan 15 angka
Pendidikan Varchar(10) Diisi dengan huruf,
simbol atua angka maksimal 10 huruf
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
msOrangTua KdOrTu Varchar (7) Diisi dengan kd
O[0-9][0-9][0-9]/ 2 digit tahun waktu input
Nama_Ayah Varchar (40) Diisi dengan huruf,
maksimal 40 huruf
Tempat_Lahir_Ayah Varchar(15) Diisi dengan angka, maksimal 15 angka
Tgl_Lahir_Ayah Datetime Diisi dengan tanggal,
bulan dan tahun
Status_Ayah Char(1) Diisi dengan 1 character yang berisi H berarti masih hidup, atau M yang berarti telah meninggal
Agama_Ayah Varchar(8) Diisi dengan huruf,
maksimal 8 huruf
Telp_Ayah Varchar(12) Diisi dengan angka,
maksimal 12 angka
Hp_Ayah Varchar(12) Diisi dengan angka,
maksimal 12 angka
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
maksimal 50 huruf
Propinsi_Ayah Varchar (20) Diisi dengan huruf, maksimal 20 huruf
KotaMadya_Ayah Varchar (20) Diisi dengan huruf, maksimal 20 huruf
Kecamatan_Ayah Varchar (20) Diisi dengan huruf, maksimal 20 huruf
Kelurahan_Ayah Varchar (20) Diisi dengan huruf, maksimal 20 huruf
kdPos_Ayah Numeric(5) Diisi dengan angka,
maksimal 5
Email_Ayah Varchar(20) Diisi dengan huruf,
simbol atau angka maksimal 20 huruf
KewargaNegaraan_Ayah Char(1) Diisi dengan I sebagai
warga Negara Indonesia, dan A
sebagai warga Negara asing
Pekerjaan_Ayah Varchar(20) Diisi dengan huruf
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
Penghasilan_Ayah Varchar(15) Diisi dengan 15 angka Pendidikan_Ayah Varchar(10) Diisi dengan huruf,
simbol atua angka maksimal 10 huruf
Nama_Ibu Varchar (40) Diisi dengan huruf,
maksimal 40 huruf
Tempat_Lahir_Ibu Varchar(15) Diisi dengan angka, maksimal 15 angka
Tgl_Lahir_Ibu Datetime Diisi dengan tanggal,
bulan dan tahun
Status_Ibu Char(1) Diisi dengan 1 character
yang berisi H berarti masih hidup, atau M yang berarti telah meninggal
Agama_Ibu Varchar(8) Diisi dengan huruf,
maksimal 8 huruf
Telp_Ibu Varchar(12) Diisi dengan angka,
maksimal 12 angka
Hp_Ibu Varchar(12) Diisi dengan angka,
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
Alamat_Ibu Varchar(50) Diisi dengan huruf,
maksimal 50 huruf
Propinsi_Ibu Varchar (20) Diisi dengan huruf, maksimal 20 huruf
KotaMadya_Ibu Varchar (20) Diisi dengan huruf, maksimal 20 huruf
Kecamatan_Ibu Varchar (20) Diisi dengan huruf, maksimal 20 huruf
Kelurahan_Ibu Varchar (20) Diisi dengan huruf, maksimal 20 huruf
kdPos_Ibu Numeric(5) Diisi dengan angka,
maksimal 5
Email_Ibu Varchar(20) Diisi dengan huruf,
simbol atau angka maksimal 20 huruf
KewargaNegaraan_Ibu Char(1) Diisi dengan I sebagai
warga Negara Indonesia, dan A
sebagai warga Negara asing
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
maksimal 20 huruf Penghasilan_Ibu Varchar(15) Diisi dengan 15 angka Pendidikan_Ibu Varchar(10) Diisi dengan huruf,
simbol atua angka maksimal 10 huruf
MsGuru KdGuru Varchar(6) Diisi dengan kd
O[0-9][0-9]/ 2 digit tahun waktu input
NIP Varchar(9) Diisi dengan huruf,
simbol atua angka maksimal 10 huruf
Nama Varchar (40) Diisi dengan huruf,
simbol atua angka maksimal 40 huruf
Prefik Varchar(10) Diisi dengan huruf,
simbol atua angka maksimal 10 huruf
Postfik Varchar(10) Diisi dengan huruf,
simbol atua angka maksimal 10 huruf
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
character yaitu L yang menunjukkan laki-laki dan P yang menunjukkan
perempuan
Agama Varchar(8) Diisi dengan huruf,
maksimal 8 huruf
Telp Varchar(12) Diisi dengan angka,
maksimal 12 angka
Hp Varchar(12) Diisi dengan angka,
maksimal 12 angka
Alamat Varchar(50) Diisi dengan huruf,
maksimal 50 huruf
Propinsi Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
KotaMadya Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
Kecamatan Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
Kelurahan Varchar (20) Diisi dengan huruf,
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
kdPos Numeric(5) Diisi dengan angka,
maksimal 5
Email Varchar(20) Diisi dengan huruf,
simbol atau angka maksimal 20 huruf
Tipe_Pegawai Char(1) Diisi hanya dengan 1
character yaitu H yang menunjukkan pegawai honorer dan T yang menunjukkan pegawai tetap
Lulusan Varchar(25) Diisi dengan huruf,
maksimal 25 huruf
Tgl_Masuk Datetime Diisi dengan tanggal,
bulan dan tahun
SK Varchar(10) Diisi dengan
alphanumeric, maksimal 25 karakter
Kajian Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
O[0-Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
9][0-9]/ 2 digit tahun waktu input
NIP Numeric(10) Diisi dengan huruf,
simbol atua angka maksimal 10 huruf
Nama Varchar (40) Diisi dengan huruf,
simbol atua angka maksimal 40 huruf
Jabatan Varchar (10) Diisi dengan TU atau
Kepala Sekolah
Tgl_Masuk Datetime Diisi dengan tanggal,
bulan dan tahun
Jenis_Kelamin Char(1) Diisi hanya dengan 1
character yaitu L yang menunjukkan laki-laki dan P yang menunjukkan
perempuan
Agama Varchar(8) Diisi dengan huruf,
maksimal 8 huruf
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
maksimal 12 angka
Hp Varchar(12) Diisi dengan angka,
maksimal 12 angka
Alamat Varchar(50) Diisi dengan huruf,
maksimal 50 huruf
Propinsi Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
KotaMadya Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
Kecamatan Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
Kelurahan Varchar (20) Diisi dengan huruf,
maksimal 20 huruf
kdPos Numeric(5) Diisi dengan angka,
maksimal 5
Email Varchar(20) Diisi dengan huruf,
simbol atau angka maksimal 20 huruf
MsUser User_Name Varchar(10) Diisi dengan alpha
numeric maksimal 10 karakter
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
Password Varchar(10) Diisi dengan alpha
numeric maksimal 10 karakter
Status Varchar(15) Diisi dengan alpha
numeric maksimal 15 karakter
Absensi Kdabsensi Varchar(8) Diiisi dengan
A[0-9][0-9][0-9][0-9]/ 2 digit tahun input
Jenis_absensi Varchar(5) Diisi dengan alpha, izin, atau sakit
Tanggal_absen Datetime Diisi dengan tanggal
waktu absen
Keterangan Varchar(100) Diisi dengan
alphanumeric, maksimal 100 karakter
MsKelas KdKelas Varchar(3) Diisi dengan
K[0-9][0-9]
Nama_Kelas Varchar (10) Diisi dengan
alphanumeric maksimal 10 karakter
Nama Entity Atribut Tipe Data Dan Ukuran
Domain Atribut
MsMataPelajaran Kd_MatPel Varchar (6) Diisi dengan M[0-9][0-9]K[0-9][0-9]
Nama_MatPel Varchar (20) Diisi dengan
alphanumeric maksimal 20 karakter
SK int Diisi dengan numeric
PPK_Nilai Int Diisi dengan numeric
PPK_Huruf Varchar(20) Diisi dengan
alphanumeric maksimal 20 karakter
Praktik_Nilai Int Diisi dengan numeric
Praktik_Huruf Varchar(20) Diisi dengan
alphanumeric maksimal 20 karakter
Sikap Varchar(2) Diisi dengan
alphanumeric maksimal 2 karakter
Semester Numeric(1) Diisi dengan numeric
sebesar 1 digit
4.1.1.5. Menentukan atribut candidate, primary, dan alternate keys
Dalam tahapan ini kita akan menentukan apa saja yang akan menjadi primary key, candidate key, dan altenate key dalam suatu entity.
Candidate key adalah sekelompok atribut yang minimal dan secara unik
mengidentifikasikan tiap occurence dari entity type. Primary key adalah
key yang dipilih untuk mengidentifikasikan secara unik tiap occurence
dari entity type. Ketika memilih primary key diantara candidate key, kita dapat mengunakan panduan sebagai berikut:
¾ Candidate key dengan kumpulan attribut yang minimal ¾ Candidate key yang jarang berubah
¾ Candidate key yang memiliki karakter-karakter paling sedikit ¾ Candidate key dengan nilai maksimal paling rendah
¾ Candidate key yang paling mudah digunakan dari sudut pandang user
Setelah menentukan entitas, relationship dan atribut serta domain, maka sekarang kita akan menentukan key yang mendefinisikan entitas secara unik. Tabel di bawah ini berisikan dokumentasi mengenai atribut-atribut yang terpilih sebagai Primary Key untuk setiap entitas yang telah didefinisikan di atas :
Nama Entity Candidate Key Primary Key
MsSiswa KdSiswa, NIS KdSiswa
MsWali Kdwali Kdwali
MsOrangTua KdOrTu KdOrTu
MsGuru KdGuru, NIP KdGuru
MsKaryawan Kd_Karyawan, NIP KdKaryawan
MsUser User_Name User_Name
MsTugas KdTugas KdTugas
MsUlangan KdUlangan KdUlangan
MsAbsensi Kd_absensi Kd_absensi
MsKelas Kd_Kelas Kd_Kelas
MsJadwal Kd_Jadwal Kd_Jadwal
MsMataPelajaran Kd_MatPel Kd_MatPel
Gambar 4.2 Entity Relationship Diagram Konseptual Dengan Penambahan Primary key
4.1.1.6. Memeriksa redundansi pada model
Pada bagian ini kita akan memeriksa apakah diagram yang kita rancang memiliki redudansi data, jika terdapat redudansi pada diagram yang telah kita rancang maka perlu dihilangkan. Dalam bagian ini terdapat 2 tahap yaitu :
1. Memeriksa ulang hubungan one-to-one.
Setelah dilakukan pengecekan terhadap diagram yang dirancang maka tidak terdapat hubungan one-to-one yang dapat digabung dengan tabel lain.
2. Menghilangkan hubungan yang redundant
Sebuah hubungan disebut redundant jika informasi yang sama dapat diperoleh melalui hubungan yang lain. Setelah melakukan pengecekan terhadap rancangan diagram yang ada, maka tidak diketemukan model redudansi pada setiap hubungan yang ada.
4.1.1.7. Validasi model data konseptual dengan transaksi user
Tahap berikutnya dalam rancangan konseptual ini adalah melakukan validasi model konseptual dengan transaksi user. Berikut ini rincian dari tahapan tersebut :
Langkah-langkah user dalam melakukan transaksi :
1. Memperoleh informasi mengenai data dari setiap siswa dan siswi yang bersekolah di SMU Galatia 3
2. Memperoleh informasi mengenai data dari setiap guru, staff TU, dan kepala sekolah yang bekerja di Sekolah SMU Galatia 3
3. Memasukkan informasi baru mengenai data siswa atau siswi baru sekolah SMU Galatia 3 yang dibuat oleh staff TU
4. Memasukkan informasi baru mengenai data dari setiap guru, staff TU, ataupun kepala sekolah baru yang bekerja pada sekolah SMU Galatia 3.
5. Memperoleh informasi mengenai nilai dari setiap siswa dan siswi sekolah SMU Galatia 3
6. Memperoleh informasi mengenai jumlah absensi dari setiap siswa yang bersekolah di SMU Galatia 3.
Masukkan data
a. Insert detail MsSiswa b. Insert detail MsGuru c. Insert detail MsKepSek d. Insert detail MsMatPel e. Insert detail MsNilai f. Insert detail MsOrTu g. Insert detail MsWali h. Insert detail msAbsensi i. Insert detail MsKelas j. Insert detail MsJadwal k. Insert detail MsUser l. Insert detail MsTu
Update / Delete data
a. Update detail MsSiswa b. Update detail MsGuru c. Update detail MsKepSek d. Update detail MsMatPel e. Update detail MsNilai f. Update detail MsOrTu g. Update detail MsWali h. Update detail msAbsensi i. Update detail MsJadwal j. Update detail MsUser k. Update detail MsTu
Data Queries
a. Menampilkan data siswa b. Menampilkan data orang tua c. Menampilkan data wali d. Menampilkan data guru
e. Menampilkan data mata pelajaran f. Menampilkan data nilai
g. Menampilkan jadwal h. Menampilkan data kelas i. Menampilkan data absensi
4.1.1.8. Melakukan review model data konseptual dengan user
Melakukan review terhadap model konseptual data dengan user untuk menjamin model telah merepresentasikan permintaan data pada perusahaan.
Setelah kami mewawancarai calon pengguna applikasi, mereka sudah tidak memerlukan penambahan entity maupun atribut – atribut lain.
4.1.2. Perancangan Basisdata Logikal
Pada tahapan ini, model data konseptual yang telah dibuat pada tahap perancangan basis data konseptual akan dipetakan ke dalam model data logikal. Keseluruhan proses dari pengembangan pada tahap ini adalah penggunaan teknik normalisasi untuk menguji kebenaran model data logikal. Kemudian dari model data logikal lokal akan dikombinasikan menjadi model data logikal global tunggal.
Adapun langkah-langkah dalam tahapan ini adalah sebagai berikut :
1. Penurunan relasi untuk model data logical 2. Validasi relasi menggunakan normalisasi 3. Validasi relasi terhadap transaksi user 4. Memeriksa integrity constraints
5. Melakukan review model data logikal dengan user 6. Mempertimbangkan perkembangan di masa depan
7. Pemilihan Database Management System
4.1.2.1. Penurunan relasi untuk model data logical
Dalam menentukan relasi – relasi untuk model data logikal meliputi langkah – langkah sebagai berikut :
1. Strong entity types dan Weak Entity types 2. One-to-many binary relationship types 3. One-to-one binary relationship types 4. Superclass/ subclass relationship types 5. Many-to-many binary relationship types
4.1.2.1.1. Strong entity types
Strong entity adalah objek di representasikan oleh atritbut nya,dan karena objek mudah di kenali,suatu subset dari atribut ini membentuk sebuah primary key untuk mengidentifikasi sebuah instance dari suatu entity.tipe entity yang memiliki primary keys disebut Strong Entity.Yang termasuk Strong Entity adalah sebagai berikut:
1. MsSiswa (KdSiswa, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, KdWali, KdOrangTua, StatusDiri, GolonganDarah, AnakKe,
SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo, FotoSiswa)
2. MsGuru (KdGuru, NIP, Nama, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, Prefix, Postfix, TipePegawai, JenisKelamin, Kajian, Lulusan, TglMasuk, SK, UserName)
3. MsUser (UserName, Pass, Status)
4. MsMatPel (KdMatPel, NamaMatPel, NilaiKetuntasan, KdGuru)
5. MsKelas( KdKelas, KdSiswa, NamaKelas)
4.1.2.1.2. One-to-many binary relationship types
Pembentukan relasi biner one to many (1:*), merupakan bagian dari pembentukan relasi model data logical. Dalam Pembentukan relasi biner one to many (1:*), yang harus diperhatikan adalah multiplicity dari 2 (dua) buah entitas yang ada. Entitas-entitas tersebut adalah :
Hubungan MsOrangTua dengan MsSiswa
MsKelas ( KdKelas, KdSiswa, NamaKelas )
primary key kdKelas
MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, KdWali, KdOrangTua, StatusDiri, GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo, FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references MsKelas(kdKelas)
4.1.2.1.3. One-to-one binary relationship types
One to one binary relationship adalah hubungan 1-1 antar
entitas,berarti bahwa tiap entitas di masing2 set minimal ada satu entitas di salah satu set yang berhubungan. Entitas-entitas tersebut adalah :
Hubungan MsUser dengan MsGuru
Hubungan Mskelas dengan MsJadwal
MsKelas ( KdKelas, KdSiswa, NamaKelas )
primary key kdKelas
MsJadwal ( KdJadwal, KdKelas)
Primary key KdJadwal
foreign key username references KdKelas MsUser ( UserName, Pass, Status)
Primary key username
MsGuru (kdGuru ,NIP ,nama ,prefix ,postfix ,tipepegawai ,jeniskelamin ,kajian ,lulusan tglmasuk ,SK ,UserName )
primary key kdGuru
Hubungan MsSiswa dengan MsOrangTua
MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, KdWali, KdOrangTua, StatusDiri,
GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo,
FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references MsKelas(kdKelas)
msOrangTua ( KdOrangTua, NamaAyah, NamaIbu, AlamatAyah, AlamatIbu, )
primary key kdOrangTua
4.1.2.1.4. Superclass/ subclass relationship types
Setelah dilakukan pengecekan, disimpulkan bahwa dalam studi kasus kami tidak terdapat relasi superclass / subclass.
4.1.2.1.5. Many-to-many binary relationship types
Tujuan dari pada tahap ini adalah untuk memisahkan hubungan Many-to-many binary relationship types, dengan cara membuat suatu tabel baru yang dapat menghubungkan table-tabel tersebut.
MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, KdWali, KdOrangTua, StatusDiri, GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo, FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references MsKelas(kdKelas)
msAbsensi (kdAbsensi varchar(8) not null, Jenis_Absensi char(1), keterangan varchar(50), primary key(kdAbsensi))
Detail Absensi(KdSiswa, KdAbsensi, keterangan)
Foreign key KdSiswa Referense msSiswa(KdSiswa)
Foreign key KdAbsensi reference msAbsensi(KdAbsensi)
MsMatPel (KdMatPel, NamaMatPel, NilaiKetuntasan, KdGuru)
MsGuru (KdGuru, NIP, Nama, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, Prefix, Postfix, TipePegawai, JenisKelamin, Kajian, Lulusan, TglMasuk, SK, UserName)
DetailMatpel(KdMatpel, KdGuru)
Primary key(KdMatpel, KdGuru)
Foreign key KdMatpel reference MsMatPel(KdMatpel)
MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, KdWali, KdOrangTua, StatusDiri, GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal,
STLTahun, STLNo, FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references
MsMatPel (KdMatPel, NamaMatPel, NilaiKetuntasan, KdGuru) MsUlangan (kdUlangan, Nama_Ulangan, semester primary key kdUlangan
MsDetailUlangan(kdUlangan, kdSiswa, kdMatPel, nilai int, rata_rata) Primary Key(kdUlangan, kdSiswa, kdMatPel)
Foreign key kdUlangan reference MsUlangan(kdUlangan) Foreign key KdMatpel reference MsMatPel(KdMatpel)
MsMatPel (KdMatPel, NamaMatPel, NilaiKetuntasan, KdGuru) MsTugas (kdTugas, Nama_Tugas, semester primary key kdTugas
MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi,
Kotamadya, Kecamatan, Kelurahan, KdPos, Email, KdWali,
KdOrangTua, StatusDiri, GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo, FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references MsKelas(kdKelas)
MsDetailTugas(kdTugas, kdSiswa, kdMatPel, nilai int, rata_rata) Primary Key(kdTugas, kdSiswa, kdMatPel)
Foreign key kdTugas reference MsTugas(kdTugas) Foreign key KdMatpel reference MsMatPel(KdMatpel)
MsSiswa MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, KdWali, KdOrangTua, StatusDiri, GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo, FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references MsKelas(kdKelas)
MsKelas MsKelas ( KdKelas, KdSiswa, NamaKelas )
primary key kdKelas
MsGuru MsGuru (kdGuru ,NIP ,nama ,prefix ,postfix ,tipepegawai ,jeniskelamin ,kajian ,lulusan tglmasuk ,SK ,UserName )
primary key kdGuru
foreign key username references MsUser (username)
MsUser MsUser ( UserName, Pass, Status)
MsJadwal MsJadwal ( KdJadwal, KdKelas)
Primary key KdJadwal
foreign key username references KdKelas
msOrangTua msOrangTua ( KdOrangTua, NamaAyah, NamaIbu, AlamatAyah, AlamatIbu, )
primary key kdOrangTua
Detail Absensi Detail Absensi(KdSiswa, KdAbsensi, keterangan)
Primary key(KdSiswa, KdAbsensi)
Foreign key KdSiswa Referense msSiswa(KdSiswa)
Foreign key KdAbsensi reference msAbsensi(KdAbsensi)
DetailMatpel DetailMatpel(KdMatpel, KdGuru)
Primary key(KdMatpel, KdGuru)
Foreign key KdMatpel reference MsMatPel(KdMatpel)
Foreign key KdGuru reference MsGuru(KdGuru)
MsDetailUlangan MsDetailUlangan(kdUlangan, kdSiswa, kdMatPel, nilai int, rata_rata)
Primary Key(kdUlangan, kdSiswa, kdMatPel)
Foreign key kdUlangan reference MsUlangan(kdUlangan)
Foreign key KdMatpel reference MsMatPel(KdMatpel)
Foreign key KdSiswa Referense msSiswa(KdSiswa)
MsDetailTugas MsDetailTugas(kdTugas, kdSiswa, kdMatPel, nilai int, rata_rata)
Primary Key(kdTugas, kdSiswa, kdMatPel)
Foreign key kdTugas reference MsTugas(kdTugas)
Foreign key KdMatpel reference MsMatPel(KdMatpel)
Foreign key KdSiswa Referense msSiswa(KdSiswa)
Tabel 4.6 Tabel Relasi – relasi yang terbentuk untuk model data logical
4.1.2.2. Validasi relasi menggunakan normalisasi
Tujuan dari langkah ini adalah untuk menvalidasi relasi-relasi dalam model data logikal lokal menggunakan teknik normalisasi. Teknik
normalisasi bertujuan untuk menghasilkan model data yang konsisten, memiliki minimal redundansi (pengulangan data yang tidak perlu) dan maksimum stabilitas. Proses normalisasi dimulai dengan menentukan functional dependency antar atribut dalam suatu relasi. Berikut ini adalah proses normalisasi untuk setiap entitas :
1NF
MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, KdWali, KdOrangTua, StatusDiri, GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo, FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references MsKelas(kdKelas)
2NF
MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, KdWali, KdOrangTua, StatusDiri, GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima,
TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo, FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references MsKelas(kdKelas)
3NF
MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, KdWali, KdOrangTua, StatusDiri, GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo, FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references MsKelas(kdKelas)
Foreign Key KdDetail references msDetail (KdDetail)
MsDetail (KdDetail, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email)
Primary Key KdDetail
3NF
primary key kdKelas
1NF
MsGuru (kdGuru ,NIP ,nama ,prefix ,postfix ,tipepegawai ,jeniskelamin ,Agama, Telp, Hp, Alamat, Propinsi, Kotamadya )
Primary key KdGuru
foreign key username references MsUser (username)
2NF
MsGuru (kdGuru ,NIP ,nama ,prefix ,postfix ,tipepegawai ,jeniskelamin ,Agama, Telp, Hp, Alamat, Propinsi, Kotamadya)
primary key kdGuru
foreign key username references MsUser (username)
3NF
MsGuru (kdGuru ,NIP ,nama ,prefix ,postfix ,tipepegawai ,jeniskelamin , kajian ,lulusan tglmasuk ,SK ,UserName, KdDetail )
primary key kdGuru
foreign key username references MsUser (username)
MsDetail (KdDetail, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email)
Primary Key KdDetail
3NF
MsUser ( UserName, Pass, Status)
Primary key username
3NF
MsJadwal ( KdJadwal, KdKelas)
Primary key KdJadwal
foreign key KdKelas references MsKelas (KdKelas)
1NF
msOrangTua ( KdOrangTua, nama, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email, kewarganegaraan, tempatLahir, TglLahir, Status, Pekerjaan, Penghasilan, Pendidikan)
primary key KdOrangTua
2NF
msOrangTua ( KdOrangTua, nama, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email,
kewarganegaraan, tempatLahir, TglLahir, Status, Pekerjaan, Penghasilan, Pendidikan)
primary key KdOrangTua
3NF
msAyah ( KdAyah, KdDetail, nama, kewarganegaraan, tempatLahir, TglLahir, Status, Pekerjaan, Penghasilan, Pendidikan)
primary key KdAyah
foreign KdDetail references MsDetail (KdDetail)
MsWali (KdWali, KdDetail, nama, kewarganegaraan, status, pekerjaan, penghasilan, pendidikan)
Primary key KdWali
foreign KdDetail references MsDetail (KdDetail)
MsDetail (KdDetail, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email)
Primary Key KdDetail
3NF
Detail Absensi(KdSiswa, KdAbsensi, keterangan)
Foreign key KdSiswa Referense msSiswa(KdSiswa)
Foreign key KdAbsensi reference msAbsensi(KdAbsensi)
1NF
MsMatPel ( KdMatPel, namaMatPel, NilaiKetuntasan, KdGuru)
Primary Key KdMatPel
Foreign Key KdGuru references MsGuru (KdGuru)
2NF
MsMatPel ( KdMatPel, namaMatPel, NilaiKetuntasan, KdGuru)
Primary Key KdMatPel
Foreign Key KdGuru references MsGuru (KdGuru)
3NF
MsMatPel ( KdMatPel, namaMatPel, NilaiKetuntasan)
Primary Key KdMatPel
DetailMatpel(KdMatpel, KdGuru)
Primary key(KdMatpel, KdGuru)
Foreign key KdMatpel reference MsMatPel(KdMatpel)
3NF
MsKelas ( KdKelas, KdSiswa, NamaKelas)
Primary Key KdKelas
Foreign Key KdSiswa references MsSiswa (KdSiswa)
3NF
MsJadwal (KdJadwal, KdKelas)
Primary Key KdJadwal
Foreign Key KdKelas references MsKelas (KdKelas)
1NF
MsAbsensi (KdAbsensi, JenisAbsensi, Keterangan, KdSiswa, Tanggal)
Primary Key KdAbsensi
Foreign Key KdSiswa references MsSiswa (KdSiswa)
2NF
MsAbsensi (KdAbsensi, JenisAbsensi, Keterangan, KdSiswa, Tanggal)
Primary Key KdAbsensi
3NF
MsAbsensi (KdAbsensi, JenisAbsensi, Keterangan)
Primary Key KdAbsensi
MsDetailAbsen (KdAbsensi, KdSiswa, Tanggal)
Primary key KdAbsensi, KdSiswa
Foreign Key KdAbsensi references MsAbsensi (KdAbsensi)
Foreign Key KdSiswa references MsSiswa (KdSiswa)
4.1.2.3. Validasi relasi terhadap transaksi user
Transaksi-transaki yang dibutuhkan antara lain:
a. Tampilkan Siswa b. Tampilkan Kelas c. Tampilkan Guru d. Tampilkan Nilai
4.1.2.4. Memeriksa integrity constraints
Integrity constraint terdiri dari 6 tipe yaitu :
a. Required data
Constraint ini sudah diidentifikasi pada tahap perancangan
b. Attribute domain constraint
Constraint ini sudah diidentifikasi pada tahap perancangan
basis data konseptual (4.1.1.4)
c. Multiplicity
Constraint ini sudah diidentifikasi pada tahap perancangan
basis data konseptual (4.1.1.2)
d. Entity Integrity
Constraint ini sudah diidentifikasi pada tahap perancangan
basis data konseptual (4.1.1.5)
e. Referential Integrity
MsSiswa (KdSiswa, Kdkelas, NIS, NoReg, NamaSiswa, TempatLahir, TglLahir, JenisKelamin, kdDetail, StatusDiri, GolonganDarah, AnakKe, SaudaraKandung, SaudaraTiri, SaudaraAngkat, KelasTerima, TglTerima, NamaSekolahAsal, AlamatSekolahAsal, STLTahun, STLNo, FotoSiswa)
Primary key kdSiswa
Foreign key Kdkelas references MsKelas(kdKelas) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key KdDetail references msDetail (KdDetail) ON UPDATE CASCADE ON DELETE NO ACTION
MsDetail (KdDetail, Agama, Telp, Hp, Alamat, Propinsi, Kotamadya, Kecamatan, Kelurahan, KdPos, Email)
Primary Key KdDetail
MsKelas ( KdKelas, KdSiswa, NamaKelas )
primary key kdKelas
MsGuru (kdGuru ,NIP ,nama ,prefix ,postfix ,tipepegawai ,jeniskelamin , kajian ,lulusan tglmasuk ,SK ,UserName, KdDetail )
primary key kdGuru
foreign key username references MsUser (username) ON UPDATE CASCADE ON DELETE NO ACTION
foreign key kdDetail references MsDetail (KdDetail)ON UPDATE CASCADE ON DELETE NO ACTION
MsUser ( UserName, Pass, Status)
Primary key username
MsJadwal ( KdJadwal, KdKelas)
Primary key KdJadwal
foreign key username references KdKelas ON UPDATE CASCADE ON DELETE NO ACTION
msAyah ( KdAyah, KdDetail, nama, kewarganegaraan, tempatLahir, TglLahir, Status, Pekerjaan, Penghasilan, Pendidikan)
primary key KdAyah
foreign KdDetail references MsDetail (KdDetail) ON UPDATE CASCADE ON DELETE NO ACTION
MsWali (KdWali, KdDetail, nama, kewarganegaraan, status, pekerjaan, penghasilan, pendidikan)
Primary key KdWali
foreign KdDetail references MsDetail (KdDetail) ON UPDATE CASCADE ON DELETE NO ACTION
MsAbsensi (KdAbsensi, JenisAbsensi, Keterangan)
Primary Key KdAbsensi
MsDetailAbsen (KdAbsensi, KdSiswa, Tanggal)
Primary key KdAbsensi, KdSiswa
Foreign key KdSiswa Referense msSiswa(KdSiswa) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign key KdAbsensi reference msAbsensi(KdAbsensi) ON UPDATE CASCADE ON DELETE NO ACTION
MsMatPel ( KdMatPel, namaMatPel, NilaiKetuntasan)
Primary Key KdMatPel
DetailMatpel(KdMatpel, KdGuru)
Primary key(KdMatpel, KdGuru)
Foreign key KdMatpel reference MsMatPel(KdMatpel) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign key KdGuru reference MsGuru(KdGuru) ON UPDATE CASCADE ON DELETE NO ACTION
4.1.2.5. Melakukan review model data logikal dengan user
Setelah kami membahas logical data model dengan pengguna,
logical data model sudah sesuai dengan keinginan pengguna. Dan tidak
dibutuhkan lagi penambahan-penambahan entity baru.
4.1.2.6. Mempertimbangkan perkembangan di masa depan
Setelah diperiksa, tidak ditemukan perubahan yang signifikan. Namun, tidak menutup kemungkinan bahwa, aplikasi yang digunakan akan menjadi “kadar-luasa” jika tidak di maintance da di update.
4.1.2.7. Pemilihan Database Management System
Tujuan dari tahap ini adalah untuk memilih pengunaan Database
Management System yang paling efisien. DBMS yang kami pilih adalah
Microsoft SQL Server 2005 dan Oracle9i
Adapun perbandingan antara DBMS Microsoft SQL Server 2000 dengan Oracle9i, antara lain :
Platform
SQL Server 2005 Oracle9i
Window-based (termasuk window
9x, window 2000, window NT, dan
window CE)
Window-based, Linux-based, Sun
Solaris, AIX-based, Unix
Tabel 4.7 Tabel Platform
Hardware
SQL Server 2005 Oracle9i
Processor : Pentium III 166MHz
atau Lebih
Processor :
Memory : 64MB RAM (minimal)
Hard disk space : 250 MB (typical)
95 MB (minimum)
Memory : 128 MB (256 MB lebih diutamakan)
Hard disk space : 140 MB pada
System Drive
Ditambah 4,5GB untuk Oracle
Home Drive
(FAT)
Atau 2,8GB untuk Oracle Home
Drive (NTFS)
Table 4.8 Tabel Hardware
Fitur
Tables : Relational tables,
Temporary tables
Triggers : AFTER triggers,
INSTEAD OF triggers
Procedures : T-Sql statements
Arrays : tidak mendukung
Backup : mendukung
Security : mendukung
Tables : Relational tables, Object
tables, Tempory tables,
Partitioned tables, External
tables, Index organized
tables
Triggers : BEFORE triggers,
AFTER triggers, INSTEAD
OF triggers, Database Event
triggers
Procedures : PL/SQL statements,
Java methods, third-generation
language (GL) routines
Arrays : mendukung
Backup : mendukung
Security : mendukung
Tabel 4.9 Tabel Fitur
Setelah dilakukan pertimbangan dengan user maka disimpulkan bahwa sistem basis data yang diperlukan oleh perusahaan sifatnya masih
belum terlalukompleks, selain itu dilihat dari segi biaya dan penggunaan, SQL Server 2005 lebih murah serta instalasi dan penggunaan yang lebih mudah dibandingkan dengan Oracle9i, maka diputuskan DBMS yang dipilih adalah Microsoft SQL Server 2005.
4.1.3. Perancangan Basisdata Fisikal
Tujuan dari langkah ini adalah untuk menerjemah logikal data model untuk DBMS yang dipilih. Adapun langkah-langkah yang ada sebagai berikut :
1. Menerjemahkan model data logikal untuk DBMS yang digunakan
2. Merancang Organisasi File dan Index
3. Merancang user views
4. Merancang mekanisme keamanan
4.1.3.1. Menerjemahkan model data logikal untuk DBMS yang digunakan
Langkah-langah yang kami gunakan adalah sebagai berikut :
1. Merancang relasi dasar
2. Merancang representasi derived data
3. Merancang general constraints
Tujuan dari langkah ini adalah untuk menentukan bagaimana merepresentasikan relasi dasar yang diidentifikasikan dalam model data logikal global ke dalam target DBMS. Informasi yang diperlukan untuk proses ini dapat diperoleh dari kamus data dari definisi dari relasi dideskripsikan menggunkan
Database Definition Languange (DBDL). Adapun DBDL yang
didefinisikan adalah sebagai berikut :
MsSiswa Domain KdSiswa Domain NIS Domain No_Reg Domain Nama_Siswa Domain kdKelas Domain Tempat_Lahir Domain Tgl_Lahir Domain Jenis_Kelamin Domain KdDetail Domain Status_Diri Domain status Domain Golongan_Darah Domain Anak_Ke Domain Saudara_Kandung Domain Saudara_Tiri varchar, length 8 varchar, length 6 varchar, length 7 varchar, length 30 varchar , length 3 varchar, length 15 datetime char, length 1 varchar, length 7 char, length 1 varchar, length 7 char, length 2 numeric , length 2 numeric , length 2 numeric , length 2
Domain Saudara_Angkat Domain Kelas_Terima Domain Tgl_Terima Domain Nama_Sekolah_Asal Domain Alamat_Sekolah_Asal Domain STL_Tahun Domain STL_No Domain Foto_Siswa numeric, length 2 varchar, length 7 datetime varchar , length 40 varchar , length 50 varchar, length 4 varchar, length 8 varchar, length 100 MsSiswa( KdSiswa NIS No_Reg Nama_Siswa KdKelas Tempat_Lahir Tgl_Lahir Jenis_Kelamin KdDetail Status_Diri Status Golongan_Darah Anak_Ke Saudara_Kandung Kode Siswa
Nomor Induk Siswa Nomor Registrasi Nama Siswa Kode Kelas Tempat Lahir Tanggal Lahir Jenis Kelamin Kode Detail Status Diri Status Golongan Darah Anak Ke
Jumlah Saudara Kandung
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Saudara_Tiri Saudara_Angkat Kelas_Terima Tgl_Terima Nama_Sekolah_Asal Alamat_Sekolah_Asal STL_Tahun STL_No Foto_Siswa Primary Key Foreign Key Foreign Key )
Jumlah Saudara Tiri Jumlah Saudara Angkat Kelas Terima
Tanggal Terima Nama Sekolah Asal Alamat Sekolah Asal Tahun STL Nomor STL Foto Siswa KdSiswa KdKelas KdDetail NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL MsOrangTua Domain KdOrangTua Domain KdAyah Domain KdIbu Domain KdSiswa varchar, length 8 varchar, length 8 varchar, length 8 varchar, length 8 MsOrangTua( KdOrangTua KdAyah KdIbu
Kode Orang Tua Kode Ayah Kode Ibu
KdSiswa Kode Siswa Primary Key Foreign Key Foreign Key Foreign Key ) KdOrangTua KdAyah KdIbu KdSiswa MsAyah Domain KdAyah Domain KdDetail Domain Nama Domain Kewarganegaraan Domain Tempat_Lahir Domain Tgl_Lahir Domain Status Domain Pekerjaan Domain Penghasilan Domain Pendidikan varchar, length 8 varchar, length 7 varchar, length 30 char, length 1 varchar, length 15 datetime char, length 1 varchar, length 20 varchar, length 15 varchar, length 10 MsAyah( KdAyah KdDetail Nama Kewarganegaraan Kode Ayah Kode Detail Nama Kewarganegaraan NOT NULL NOT NULL NOT NULL
Tempat_Lahir Tgl_Lahir Status Pekerjaan Penghasilan Pendidikan Tempat Lahir Tanggal Lahir Status Pekerjaan Penghasilan Pendidikan NOT NULL NOT NULL Primary Key Foreign Key ) KdAyah KdDetail MsIbu Domain KdIbu Domain KdDetail Domain Nama Domain Kewarganegaraan Domain Tempat_Lahir Domain Tgl_Lahir Domain Status Domain Pekerjaan Domain Penghasilan Domain Pendidikan varchar, length 8 varchar, length 7 varchar, length 30 char, length 1 varchar, length 15 datetime char, length 1 varchar, length 20 varchar, length 15 varchar, length 10 MsIbu(
KdDetail Nama Kewarganegaraan Tempat_Lahir Tgl_Lahir Status Pekerjaan Penghasilan Pendidikan Kode Detail Nama Kewarganegaraan Tempat Lahir Tanggal Lahir Status Pekerjaan Penghasilan Pendidikan NOT NULL NOT NULL NOT NULL NOT NULL Primary Key Foreign Key ) KdIbu KdDetail MsWali Domain KdWali Domain KdDetail Domain Nama Domain Kewarganegaraan Domain Tempat_Lahir Domain Tgl_Lahir Domain Status Domain Pekerjaan Domain Penghasilan varchar, length 8 varchar, length 7 varchar, length 30 char, length 1 varchar, length 15 datetime char, length 1 varchar, length 20 varchar, length 15
Domain Pendidikan varchar, length 10 MsWali( KdWali KdDetail Nama Kewarganegaraan Tempat_Lahir Tgl_Lahir Status Pekerjaan Penghasilan Pendidikan Kode Wali Kode Detail Nama Kewarganegaraan Tempat Lahir Tanggal Lahir Status Pekerjaan Penghasilan Pendidikan NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL Primary Key Foreign Key ) KdWali KdDetail MsKaryawan Domain KdKaryawan Domain KdDetail Domain NIP Domain Nama Domain Jabatan Domain Jenis_Kelamin Varchar, length 6 varchar, length 7 numeric, length 10 varchar, length 30 varchar, length 10 char, length 1
Domain Tgl_Masuk Domain User_Name datetime varchar, length 10 MsKaryawan( KdKaryawan KdDetail NIP Nama Jabatan Jenis_Kelamin Tgl_Masuk User_Name Kode Guru Kode Detail
Nomor Induk Pegawai Nama Jabatan Jenis Kelamin Tanggal Masuk User Name NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL Primary Key Foreign Key Foreign Key ) KdKaryawan KdDetail UserName MsGuru Domain KdGuru Domain KdDetail Domain NIP Domain Nama Varchar, length 6 varchar, length 7 numeric, length 10 varchar, length 30
Domain Prefix Domain Postfix Domain Tipe_Pegawai Domain Jenis_Kelamin Domain Kajian Domain Lulusan Domain Tgl_Masuk Domain SK Domain User_Name varchar, length 10 varchar, length 10 char, length 1 char, length 1 varchar, length 20 varchar, length 25 datetime varchar, length 10 varchar, length 10 MsGuru( KdGuru KdDetail NIP Nama Prefix Postfix Tipe_Pegawai Jenis_Kelamin Kajian Lulusan Tgl_Masuk SK User_Name Kode Guru Kode Detail
Nomor Induk Pegawai Nama Prefix Gelar Postfix Gelar Tipe Pegawai Jenis Kelamin Spesialiasi Pengajar Lulusan Tanggal Masuk Surat Keputusan User Name NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Primary Key Foreign Key Foreign Key ) KdGuru KdDetail UserName MsUser Domain User_Name Domain Password Domain Status varchar, length 10 varchar, length 10 varchar, length 15 MsUser( User_Name Password Status User Name Password Status NOT NULL NOT NULL NOT NULL Primary Key ) User_Name MsKelas Domain KdKelas Domain KdSiswa Domain Nama_Kelas varchar, length 3 varchar, length 8 varchar, length 10 MsKelas(