BAB 4
PERANCANGAN DAN IMPLEMENTAS I
4.1 Usulan Perancangan Sistem 4.1.1 DFD Level 0
Berikut ini merupakan rancangan Data Flow Diagram level 0 yang kami usulkan berdasarkan sistem yang akan dibuat.
Gambar 4.1 DFD Level 0
Data Perkem bangan Siswa Terisi Menyel esaikan Jadwal
Penilaian Murid Absensi Harian Terisi
Data Guru
Daft ar Absen Guru Laporan Absensi Kelas R ancangan Jadwal Laporan Penggaji an Jadwal Tersesuaikan Guru Tagi han Rapor Murid Laporan Absensi Laporan Keuangan Orang Tua Keuangan Data Murid
Daftar M urid B aru Daft ar Tagihan
Staff
Laporan Keuangan Perancangan Jadwal
Daftar Abs ensi Terisi
P enyesuaian Jadwal Keuangan
Daftar Abs ensi Terisi
Sistem Administrasi
SMP Isl am Al-Ikhlas
Daftar Abs en Murid Jadwal Pelaj aran
Rapor Murid Tagihan Laporan Keuangan
Data Muri d
Absensi Harian Terisi Keuangan
Murid
Data Perkem bangan Siswa Adm in
4.1.2 DFD Level 1
DFD level 1 menjelaskan tentang proses aliran data yang terjadi pada suatu kejadian transaksi.
4.1.2.1 DFD Level 1 Tahun Ajaran Baru
DFD level 1 tahun ajaran baru menjelaskan aliran data pada saat tahun ajaran baru dimulai. (lihat gambar 4.3)
Murid
Guru
01. Regis tras i Data M uri d dan
Guru Data Murid
03. Penj adwal an Guru dan Murid
Guru
02. T ahun A jaran B aru
A dmin
J adwal Pel ajaran
Data Guru
Ranc angan J adwal
Jadwal S ement ara
J adwal Mengaj ar Murid Guru J adwal Kel as Orang T ua Mat a P elajaran Data Muri d dan Orang Tua
Data Guru
Dat a Murid Data Orang T ua
K elas Ters edia
Data Jadwal
M ata Pel ajaran s es uai k urik ulum
J adwal Tet ap J adwal Sem entara Ranc angan J adwal Data Kel as
Dat a P elajaran Peny es uaian
kurik ulum Pem bagian K elas
Data Murid Baru
Gambar 4.3 DFD Level 1 Tahun Ajaran Baru
DFD level 1 kegiatan belajar mengajar per-semester menjelaskan aliran data pada saat kegiatan belajar mengajar setiap semester. (lihat gambar 4.4)
4.1.2.3 DFD Level 1 Keuangan
DFD level 1 keuangan menjelaskan proses aliran data keuangan pada SM P Islam Al-Ikhlas. (lihat gambar 4.5)
Gambar 4.5 DFD Level 1 Keuangan
4.1.3 Mission S tatement dan Mission Objective
Langkah awal dari membangun sebuah aplikasi basis data adalah mengidentifikasikan tujuan utama dari aplikasi basis data yang akan dibuat . Setelah mission statement teridentifikasi selanjutnya adalah mengidentifikasi mission objective yang mengidentifikasi tugas-tugas tertentu yang harus dapat didukung aplikasi basis data.
4.1.3.1 Mission S tatement
Untuk memelihara dan mendukung data mengenai kegiatan belajar mengajar serta mempermudah penyampaian informasi kepada murid, guru dan orangtua.
4.1.3.2 Mission Objective
1. Untuk mengatur (insert, update dan delete) data murid.
2. Untuk mengatur (insert, update dan delete) data guru.
3. Untuk mengatur (insert, update dan delete) data orang tua.
4. Untuk mengatur (insert, update dan delete) data nilai.
5. Untuk mengatur (insert, update dan delete) data jadwal.
6. Untuk mengatur (insert, update dan delete) data mata pelajaran.
7. Untuk mengatur (insert, update dan delete) data absensi murid.
8. Untuk mengatur (insert, update dan delete) data absensi guru.
9. Untuk mengatur (insert, update dan delete) data keuangan murid.
10. Untuk mengatur (insert dan update) data pegumuman.
11. Untuk mengatur (insert, update dan delete) data perkembangan murid.
12. Untuk mengatur (insert, update dan delete) data kelas.
13. M emberikan laporan mengenai nilai.
14. M emberikan laporan mengenai jadwal.
16. M emberikan laporan mengenai absensi guru.
17. M emberikan laporan mengenai keuangan murid.
18. M emberikan laporan mengenai data guru.
19. M emberikan laporan mengenai data murid.
20. M emberikan laporan mengenai data kelas.
21. M emberikan laporan mengenai data orang tua.
4.1.4 Batasan Sistem
Batasan Sistem atau Sytem Boundary merupakan tahap definisi batasan-batasan dan ruang lingkup dari system aplikasi basis data dilihat dari sudut pandang pengguna.
4.1.5 User View
M endefinisikan apa yang dibutuhkan oleh aplikasi basis data tersebut dari sudut pandang user.
Tabel 4.1 Tabel User View User
Data
Murid Guru Orang Tua
Guru X Murid X Orang Tua X Nilai X X X Jadwal X X X Absensi X X X Pengumuman X X X Keuangan X X
Dari table di atas dilihat persamaan dalam hal kebutuhan data antara user orang tua, murid dan guru sehingga dapat dikelompokkan menjadi satu user view.
4.1.6 General S ystem Requirement
General System Requirement merupakan perkiraan dari besarnya system basis data yang dibutuhkan pada saat inisialisasi dan perkiraan perkembangan saat mengimplementasi.
4.1.6.1 Mission S tatement
1. Kira-kira terdapat 30 guru yang mengajar.
2. Kira-kira terdapat data 350 murid dan orang tua yang ada sekarang.
3. Kira-kira terdapat 17 mata pelajaran yang ada sekarang.
4. Kira-kira terdapat 8 jam pelajaran dalam sehari.
4.1.6.2 Database Rate Growth
1. Kira-kira terdapat 120 murid yang lulus setiap tahunnya.
2. Kira-kira terdapat 120 murid yang masuk setiap tahunnya.
3. Kira-kira terdapat 5 nilai ulangan untuk setiap mata pelajaran setiap semesternya.
4. Setiap hari ada absensi untuk setiap murid dan guru.
5. Setiap bulannya kira-kira terdapat 350 murid yang membayar uang SPP.
4.1.6.3 The Types and Average Number of Record S earches
1. Pencarian untuk detail dari jadwal kira-kira 50 kali dalam sehari.
2. Pencarian untuk detail dari nilai kira-kira 100 kali dalam sehari.
3. Pencarian untuk detail dari absen kira-kira 300 kali dalam sehari.
4.1.6.4 Security
1. Basis data harus terlindung password.
2. Setiap user harus memiliki hak akses terhadap basis data sesuai dengan user view-nya seperti murid, orang tua dan guru.
3. Anggota user hanya melihat sesuai dengan kebutuhan.
4.1.6.5 Legal Issue
Basis data sebagai tempat penympanan data murid, orant tua dan guru harus sesuai aturan pemerintah setempat. M asalah legal-nya harus diselidiki, dipelajari, dan diimplementasikan.
4.2 Perancangan Basis Data
4.2.1 Perancangan Basis Data Konseptual 4.2.1.1 Mengidentifikasi Tipe Entiti Tabel 4.2 Tabel Tipe Entitas
Entity Name Description Aliases Occurence
Murid Istilah umum untuk semua murid atau siswa pada SMP Islam Al-Ikhlas
Siswa Setiap siswa yang ada pada SMP Islam Al-Ikhlas
Gur u Istilah umum untuk semua guru pada SMP Islam Al-Ikhlas
Pengajar Setiap guru yang ada pada SMP Islam Al-Ikhlas
Orang T ua Istilah umum untuk semua orang tua dari siswa SMP Islam Al-Ikhlas
Orang tua / wali
Setiap orang tua atau wali murid yang ada pada SMP Islam Al-Ikhlas
Admin Istilah umum untuk guru dan karyawan yang bertugas sebagai admin SMP Islam Al-Ikhlas
Admin Beberapa guru atau karyawan SMP Islam Al-Ikhlas yang bertugas sebagai admin di system
Kelas Istilah umum untuk kelas yang ada pada
Ruang kelas Setiap ruang kelas yang digunakan oleh siswa dan guru
SMP Islam Al-Ikhlas untuk proses belajar mengajar
Jadwal Istilah umum untuk semua penjadwalan yang berlaku pada SMP
Islam Al-Ikhlas. Meliputi jadwal siswa dan jadwal mengajar guru
Jadwal murid, jadwal guru
Setiap jadwal pelajaran murid dan guru dimana mencantumkan Hari, Tanggal dan Jam Pelajaran
Mata Pelajaran Istilah umum untuk semua pelajaran yang diajarkan pada SMP Islam Al-Ikhlas
Bidang studi Setiap pelajaran yang masing-masing diajarkan oleh seorang guru
Record Nilai Istilah umum untuk semua Nilai yang diberikan kepada siswa
Nilai ulangan, nilai tugas
Setiap nilai atau poin yang diberikan kepada siswa oleh guru masing-masing bidang studi
Absensi Murid Istilah umum untuk semua data absensi murid SMP Islam Al-Ikhlas
Data kehadiran murid
Setiap absensi yang diisi oleh murid, mencantumkan data dan jumlah kehadiran siswa
Keuangan Murid
Istilah umum untuk semua transaksi pembayaran murid
Transaksi pembayaran murid
Setiap transaksi pembayaran mencatat pembayaran siswa kepada bagian keuangan
kepada bagian keuangan SMP Islam Al-Ikhlas
Absensi Guru Istilah umum untuk semua data absensi guru SMP Islam Al-Ikhlas
Data kehadiran guru
Setiap absensi yang diisi oleh guru, mencantumkan data dan jumlah kehadiran guru
Pengumuman Istilah umum untuk semua pemberitahuan
kegiatan yang berlangsung pada SMP
Islam Al-Ikhlas
Pemberitahuan Setiap pengumuman kegiatan sekolah yang diisi oleh bagian admin kesiswaan
4.2.1.2 Mengidentifikasi Tipe Relasional
Tabel 4.3 Tabel Identifikasi Tipe Relasional
Nama Entity Multiplicity Relationship Nama Entity Multiplicity
Murid 1….* Mendapatkan Record Nilai 1….1
1….1 Membayar Keuangan Murid 1….1
1….* Mempunyai Kelas 1….*
1….1 Mempunyai Absensi Kelas 1….*
1….* Mendapatkan Pengumunan 1….*
Gur u 1….* Mempunyai Jadwal 1….*
1….* Mengajar Mata Pelajaran 1….*
1….1 Mempunyai Absen Guru 1….*
1...1 Melihat Pengumuman Kelas
1...*
Mata Pelajaran 1….1 Mendapatkan Record Nilai 1….*
1….1 Mempunyai Jadwal 1….*
Kelas 1….* Mempunyai Jadwal 1….*
Absensi 1….* Mempunyai Jadwal 1….1
Keuangan 1….1 Mempunyai Status 1….*
1...1 Mempunyai T ipe 1...*
Orang T ua 1….1 Mempunyai Murid 1….1
1….1 Membayar Keuangan Murid 1….1
1….* Mendapatkan Pengumuman 1….*
Admin 1….* Mengisi Pengumuman 1….1
1….* Mengatur Jadwal 1….1
1….* Mengatur Keuangan 1….1
4.2.1.3 Identifikasi dan Asosiasi Atribut Suatu Entiti Tabel 4.4 Tabel Identifikasi dan Asosiasi Atribut Suatu Entiti
Entity Nam e Attribute Description Data type and
Length
NULL S
Multi valued
Murid KdMurid Berisi suatu kode yang secara unik mengidentifikasi murid
Char(8) No No
PassMurid Berisi password
bagi murid
Varchar(50) No No
NamaMurid Berisi nama
Murid
Varchar(30) No No
JenisKelamin Berisi jenis kelamin murid
Char(1) No No
T empatLahir Berisi tempat lahir murid
Varchar(25) No No
T glLahir Berisi tanggal lahir murid
Date() No No
Agama Berisi agama
yang dianut murid
Alamat Berisi alamat murid
Varchar(100) No Yes
EmailMurid Berisi email murid
Varchar(30) Yes Yes
AsalSekolah Berisi asal sekolah murid
Varchar(30) Yes No
Gur u KdGuru Berisi suatu kode yang secara unik mengidentifikasi guru
Char(6) No No
PassGuru Berisi password
bagi guru
Varchar(32) No No
NamaGuru Berisi nama guru Varchar(30) No No
Nip Bersisi nomor
induk pegawai
Varchar(10) Yes No
T empatLahir Berisi tempat lahir guru
Varchar(25) Yes No
T glLahir Berisi tanggal lahir guru
Date Yes No
JenisKelamin Berisi jenis kelamin guru
Status Berisi status kepegawaian
guru
Varchar(10) Yes No
Pendtrakhir Berisi tingkat pendidikan
terakhir guru
Varchar(2) No No
Alamat Berisi alamat
dari guru
Varchar(100) Yes Yes
EmailGuru Berisi email guru Varchar(30) Yes Yes
KdJabatan Berisi kode
jabatan guru
Varchar(6) No No
Orang T ua KdOrangT ua Berisi suatu kode yang secara unik mengidentifikasi orang tua
Char(6) No No
NamaOrangT ua Berisi nama orang tua murid
Varchar(30) No No
Alamat Berisi alamat
orang tua murid
Varchar(100) No Yes
PassOrangT ua Berisi password
orang tua
Agama Berisi agama yang dianut oleh
orang tua murid
Char(15) No No
T empatLahir Berisi tempat lahir orang tua murid
Varchar(25) No No
T glLahir Berisi tanggal lahir orang tua
murid
Date No No
KdT ipeOrangT ua Berisi tipe orang tua
Varchar(1) No No
Kdmurid Berisi kode
murid
Char(8) No Yes
Admin KdAdmin Berisi suatu kode yang secara unik mengidentifikasi admin
Char(6) No No
KdJabatan Berisi kode
jabatan admin
Varchar(6) No No
PassAdmin Berisi password
admin
NamaAdmin Berisi nama admin
Varchar(30) No No
Nip Berisi nomor
induk pegawai
Varchar(10) Yes No
T empatLahir Berisi tempat admin
Varchar(25) Yes No
T glLahir Berisi tanggal lahir admin
Date Yes No
JenisKelamin Berisi jenis kelamin admin
Char(1) Yes No
Alamat Berisi alamat
admin
Varchar(100) Yes Yes
EmailAdmin Berisi email admin
Varchar(30) Yes Yes
Mata Pelajaran
KdMatPel Berisi suatu kode yang secara unik mengidentifikasi mata pelajaran
Char(6) No No
NamaMatPel Berisi nama mata pelajaran
Varchar(30) No No
yang secara unik mengidentifikasi kelas
NamaKelas Berisi nama
kelas
Varchar(10) No Yes
Record Nilai KdKelas Berisi suatu kode yang secara unik mengidentifikasi kelas
Varchar(6) No No
KdMurid Berisi suatu kode yang secara unik mengidentifikasi murid
Varchar(10) No Yes
KdMatpel Berisi suatu kode yang secara unik mengidentifikasi mata pelajaran
Varchar(6) No Yes
KdT ahunAjaran Berisi kode tahun ajaran
Varchar(4) No No
Semester Berisi semester yang sedang berjalan
T ugas Berisi nilai tugas secara
keseluruhan
Float No No
Ulangan1 Berisi nilai
ulangan 1
Float No No
Ulangan2 Berisi nilai
ulangan 2
Float No No
Ulangan3 Berisi nilai
ulangan 3
Float No No
Ulangan4 Berisi nilai
ulangan 4
Float No No
UAS Berisi nilai UAS Float No No
Absensi Murid KdMurid Berisi suatu kode yang secara unik mengidentifikasi murid
Varchar(6) No No
T glAbsen Berisi tanggal absent dilakukan
Datetime No No
Semester Berisi semester yang sedang berjalan
Keterangan Berisi keterangan absen
Varchar(5) No No
KdJam Berisi kode jam berlangsungnnya pelajaran
Char(1) No No
Absensi Guru KdGuru Berisi suatu kode yang secara unik mengidentifikasi guru
Char(6) No No
T glAbsen Berisi tanggal absent dilakukan
Datenime No No
Semester Berisi semester yang sedang berjalan Smallint(1) No No Keterangan Berisi keterangan absen Char(1) No No
Jadwal KdJadwalDetail Berisi kode jadwal
Varchar(5) No No
KdT hnAjaran Berisi kode tahun ajaran yang sedang berjalan
KdKelas Berisi kode kelas Char(5) No No
Keuangan Murid
KdT ahunAjaran Berisi kode tahun ajaran yang sedang berjalan
Varchar(5) No No
KdKeuangan Berisi kode keuangan
Char(4) No No
KdMurid Berisi suatu kode yang secara unik mengidentifikasi murid
Char(8) No No
KdStatus Berisi kode
status
Char(8) No No
KdT ipeTransaksi Berisi kode transaksi
Varchar(1) No Yes
Bulan Bulan Penagihan Char(2) No No
Status KdStatus Berisi kode
status
Char(1) No No
Status Status Pembayarn
Varchar(15) No No
input
Topik Berisi topik yang dibahas
Char(30) Yes No
Judul Berisi judul
pengumuman
Varchar(50) No No
Isi Isi dari
pengumuman
Varchar(1000) Yes No
4.2.1.4 Identifikasi Kandidat dan Primary Key S etiap Entiti
Tabel 4.5 Tabel Identifikasi Kandidat dan Primary Key Setiap Entiti
Entity Nam e Candidate Key Prim ary Key
Murid KdMurid KdMurid
NamaMurid
EmailMurid
Gur u KdGuru KdGuru
NamaGuru
Nip
Orang T ua KdOrangT ua KdOrangT ua
Admin KdAdmin KdAdmin NamaAdmin Nip Mata Pelajaran KdMatPel KdMatPel NamaMatPel
Kelas KdKelas KdKelas
NamaKelas
Record Nilai KdKelas KdKelas, KdMurid, KdMatpelKdT ahunAjaran
KdMurid
KdMatpel
KdT ahunAjaran
Absensi Murid kdAbsenM KdAbsenM
KdMurid
T glAbsen
Absensi Guru KdAbsenG KdAbsenG
KdGuru
T glAbsen
Jadwal KdJadwalDetail KdJadwalDetail, KdThnAjaran, KdKelas
KdT hnAjaran
KdKelas
Keuangan Murid
KdT ahunAjaran KdT ahunAjaran, KdKeuangan, KdMurid, KdStatus, KdT ipeTransaksi
KdKeuangan
KdMurid
KdStatus
KdT ipeTransaksi
Status KdStatus KdStatus
Pengumuman T glInput T glInput, Topik, Judul
Topik
Gambar 4.7 Conceptual Data Model Entity Relationship Diagram (ERD)with Primary Key
4.2.1.5 Penggunaan Enhanced Modeling Concept
Tahap ini bertujuan untuk mempertimbangkan penggunaan Enhanced Modelling Concept, dimana di dalamnya termasuk spesialisasi / generalisasi, agregasi, dan komposisi. (lihat Gambar 4.8)
Gambar 4.8 Enhanced Entity Relationship Diagram (EERD)
4.2.2 Perancangan Basis Data Logikal
Pada tahap ini, model data konseptual yang telah dibuat pada tahap perancangan basis data konseptual akan dipetakan ke dalam model data logikal. Kemudian model data ini akan divalidasi dengan teknik normalisasi untuk
Kelas KdKelas {PK} Murid KdMurid {PK} KdMurid KdKelas mempunyai 1..* 1..* Kelas KdKe las {PK} Murid KdMurid {PK} MuridKelas Kd Murid {PK} Kd Kelas {PK} mempunyai 1..* 1..* bagian dari 1..1 1 ..1
meyakinkan bahwa strukturnya sudah benar dan juga model data ini benar – benar mendukung transaksi yang dibutuhkan.
Adapun langkah-langkah dalam tahapan ini adalah sebagai berikut :
4.2.2.1 Menghilangkan Fitur yang Tidak Kompatibel
Tujuan dari langkah ini adalah untuk memperbaiki model data konseptual lokal dengan menghilangkan fitur yang tidak kompatibel dengan model relasional. Adapun cara yang digunakan dalam tahapan ini adalah menghilangkan hubungan many-to-many (*:*) binary relationship types. Hasil dari langkah ini secara keseluruhan dapat dilihat pada gambar diagram ER sebagai berikut :
1. M enghilangkan (*:*) many-to-many binary relationship
(a) Murid mempunyai Kelas *:* relationship
Jad wa l
KdJa dw alD eta il {PK} Mu rid Kd Mu rid {P K} Kd Ke la s m em pu nya i 1..* 1..* Jadwal KdJadwalDetail {PK} Murid KdMurid {PK} Kelas Kd Kelas {PK} mempunyai 1..* 1..* mempunyai 1..1 1..*
(c) Murid mempunyai Jadwal *:* relationship
Jadwal KdJadwalDetail {PK} Kelas KdKelas {PK} JadwalKelas Kd Kelas {PK} KdJadwalDetail {PK} b agian dari 1..* 1..* mempunyai 1..1 1 ..1 M at pel K dM atp el {PK } Gu ru Kd Guru {P K} Kd Guru {PK} Kd Ma tpe l {PK} m en ga ja r 1..* 1..*
(e) Kelas mempunyai Jadwal *:* relationship
(f) Dekomposisi relasi (e) ke dalam dua relasi 1:* (mempunyai dan bagian dari)
Matpel KdMatpel {PK} Guru KdGuru {PK} GuruMatpel Kd Guru {PK} KdMatpel {PK} men gajar 1..* 1..* merupakan 1..1 1 ..1 Jad wa l K dM atp el {PK } Gu ru Kd Guru {P K} Kd Ma tpe l {PK} m em pu nya i 1..* 1..* Jadwal KdJadwalDetail {PK} Guru KdGuru {PK} Matpel KdMatpel {PK} mempunyai 1..* 1..* mengajar 1..1 1..*
(h) Dekomposisi relasi (g) ke dalam dua relasi 1:* (merupakan dan mengajar)
(i) Guru mempunyai Jadwal *:* relationship
Jad wa l
KdJa dw alD eta il {PK} Ma tp el
Kd Ma tpe l {P K}
Kd Ma tp el K dJa dw alD eta il
m em pu nya i 1..* 1..* Jadwal KdJadwalDetail {PK} Ma tpel Kd Matpel {PK} JadwalMatpel KdMatpel {PK} KdJadwalDetail {PK} 1..* 1..* mempunyai 1..1 1 ..1 bagian dari Murid KdMurid {PK} TelpMurid[1..2]
(k) Matpel mempunyai Jadwal *:* relationship
(l) Dekomposisi relasi (l) ke dalam dua relasi 1:* (mempunyai dan bagian dari)
Gambar 4.9 Menghilangkan many-to-many Binary Relationship
2. M enghilangkan atribute multivalue
Murid KdMurid {PK} TelpMurid KdTel pMuri d {PK} mempunyai 1..2 1..1 OrangTua KdOrangTua {PK} TelpOrangTua[1..2] 1..2 1.. 1 mempunyai OrangTua KdOrangTua {PK} TelpOrangTua KdTelpOrangTua {PK} Guru KdGuru {PK} TelpGuru[1..2]
(b) Dekomposisi atribut TelpMurid pada entiti Murid menjadi entiti baru bernama TelpMurid dengan atribut KdTelpMurid (primary key)
(c)Entiti Orang Tua dengan atribut TelpOrangTua yang multivalue
(d) Dekomposisi atribut TelpOrangTua pada entiti Orang Tua menjadi entiti baru bernama TelpOrangTua dengan atribut KdTelpOrangTua (primary key)
mempunyai 1..2 1..1 Guru KdGuru {PK} TelpG uru KdTelpGuru {PK} Admin KdAdmin {PK} TelpAdmin[1..2] mempunyai 1..1 1.. 2 Admin KdAdmin {PK} TelpAdmin KdTelpAdmin {PK}
(f) Dekomposisi atribut TelpGuru pada entiti Guru menjadi entiti baru bernama TelpGuru dengan atribut KdTelpGuru (primary key)
(g) Entiti Admin dengan atribut TelpAdmin yang multivalue
(h) Dekomposisi atribut TelpAdmin pada entiti Admin menjadi entiti baru bernama TelpAdmin dengan atribut KdTelpAdmin (primary key)
4.2.2.2 Mendapatkan Relasi Untuk Model Data Logikal Lokal 1. One to many (1:*) binary relationship types
M asukkan KdMurid ke dalam RecordNilai untuk mendapatkan relasi mempunyai (1:*)
RecordNilai (KdKelas, KdM atpel, KdM urid, KdThnAjaran,
Semester, Tugas, UH1, UH2, UH3, UH4, UAS)
Primary Key KdKelas, KdM urid, KdM atpel, KdThnAjaran,
Semester
Murid(KdM urid, PassM urid, NamaM urid, JenisKelamin, TempatLahir, TglLahir, A gama, Alamat, EmailM urid,
AsalSekolah)
Primary Key KdM urid
M asukkan KdMurid ke dalam AbsensiKelas untuk mendapatkan relasi mempunyai (1:*)
AbsenMurid (KdM urid, TglAbsen, KdJam, Keterangan, Semester)
Murid(KdM urid, PassM urid, NamaM urid, JenisKelamin, TempatLahir, TglLahir, A gama,
Primary Key KdM urid, TglAbsen, KdJam
Alamat, EmailM urid, AsalSekolah)
Primary Key KdM urid
M asukkan KdGuru ke dalam AbsenGuru untuk mendapatkan relasi mempunyai (1:*)
AbsenGuru (KdGuru, TglAbsen, Keterangan, Semester)
Primary Key KdGuru, TglAbseN
Guru (KdGuru,KdJabatan, NamaGuru, PassGuru, NIP TempatLahir, TglLahir, JenisKelamin, Status, PendTrakhir, Alamat, Email, KdTelpGuru)
Primary Key (KdGuru)
M asukkan KdMatpel ke dalam RecordNilai untuk mendapatkan relasi mendapatkan (1:*)
RecordNilai (KdKelas, KdM atpel, KdM urid, KdThnAjaran, Semester,
Tugas, UH1, UH2, UH3, UH4, UAS)
Primary Key KdKelas, KdM urid, KdM atpel, KdThnAjaran, Semester
Primary Key KdM atpel
M asukkan KdTipeKeuangan ke dalam KeuanganMurid untuk mendapatkan relasi mempunyai (1:*)
KeuanganMurid (KdTipeKeuangan, KdKeuangan, KdStatus,
KdThnAjaran, KdM urid, Bulan)
Primary Key KdKeuangan
Foreign Key KdTipeKeuangan
TipeKeuangan (KdTipeKeuangan, TipeKeuangan)
2. Superclass/subclass relationship types
Pada model konseptual terdapat entity superclass (entity Absensi) dan entity subclass (AbsenGuru dan AbsenM urid) :
Gambar 4.11 ERD Mandatory
AbsenGuru(KdGuru, TglAbsen, Keterangan, Semester) Primary Key KdGuru, TglAbsen
AbsenMurid (KdM urid, TglAbsen, KdJam, Keterangan, Semester)
3. Many to Many (*:*) binary relationship types Murid (KdM urid,
NamaM urid, PassM urid, TempatLahir, TglLahir, JenisKelamin, Alamat, Email, Asal Sekolah, KdTelpM urid)
Primary Key KdM urid
Kelas (KdKelas, NamaKelas)
Primary Key KdKelas
MuridKelas (KdMurid, KdKelas)
Primary Key KdM urid, KdKelas
Foreign Key KdM urid references M urid(KdMurid)
Foreign Key KdKelas references Kelas(KdKelas)
Guru (KdGuru,KdJabatan, NamaGuru, PassGuru, NIP TempatLahir, TglLahir, JenisKelamin, Status, PendTrakhir, Alamat, Email, KdTelpGuru)
Primary Key KdGuru
JadwalDetail (KdJadwalDetail, KdJam, KdM atpel, Hari)
Primary Key KdJadwalDetail
GuruMatpel (KdGuru, KdM atpel)
Primary Key KdGuru, KdM atpel
Foreign Key KdM atpel references M atpel(KdM atpel)
Foreign Key KdGuru references Guru(KdGuru)
JadwalDetail
(KdJadwalDetail, KdJam, KdM atpel, Hari)
Primary Key KdJadwalDetail
Kelas (KdKelas, NamaKelas)
Primary Key KdKelas
JadwalKelas (KdJadwalDetail, KdKelas)
Primary Key KdJadwalDetail, KdKelas
Foreign Key KdJadwalDetail references JadwalDetail(KdJadwalDetail)
4. Multi-valued attributes
M asukan KdTelpMurid Kedalam Murid
Murid (KdM urid, NamaM urid, PassM urid, TempatLahir,
TglLahir, JenisKelamin, Alamat, Email, Asal Sekolah,
KdTelpMurid)
Primary Key KdM urid
Foreign Key KdTelpM urid
TelpMurid (KdTelpM urid, TipeTelp, NoTelp
Primary Key KdTelpMurid
M asukan KdTelpOrangtua Kedalam Orangtua
Orangtua (KdTelpOrangtua, KdOrangTua, NamaOrangtua, PassOrangtua, TempatLahir, TglLahir, Agama, Alamat,
TelpOrangtua (KdTelpOrangtua, TipeTelp, NoTelp)
KdTipeOrangtua, KdM urid)
Primary Key KdOrangtua
Foreign Key KdTelpOrangtua, KdM urid
Primary Key KdTlpOrangtua
M asukan KdTelpGuru Kedalam Guru
Guru (KdGuru, KdTelpGuru ,KdJabatan, NamaGuru, PassGuru, NIP TempatLahir, TglLahir, JenisKelamin, Status,
PendTrakhir, Alamat, Email)
Primary Key KdGuru
Foreign Key KdTelpGuru, KdJabatan
TelpGuru (KdTelpGuru, TipeTelp, NoTelp)
Primary Key KdTelpGuru
M asukan KdTelpAdmin Kedalam Admin
Admin (KdAdmin, KdTelpAdmin,
KdJabatan,PassAdmin, NIP, TempatLahir, TglLahir, JenisKelamin, Alamat, Email)
Primary Key KdAdmin
Foreign Key KdTelpAdmin, KdJabatan
TelpAdmin (KdTelpAdmin, TipeTelp, NoTelp)
Primary Key KdTelpAdmin
5. Document Relations and Foreign Key Attributes Tabel 4.6 Tabel Relasi Untuk Model Data Logikal Lokal
Te lpAdmin (KdT elpAdmin, T ipeT elp, NoT elp)
Primary Key KdT elpAdmin
Te lpGuru (KdT elpGuru, T ipeT elp, NoT elp)
Jabatan (KdJabatan, NamaJabatan)
Primary Key KdJabatan
Admin (KdAdmin, KdJabatan, NamaAdmin, PassAdmin, NIP, T empatLahir, T glLahir, JenisKelamin, Alamat, Email, KdT elpAdmin)
Primary Key KdAdmin
Foreign Key KdJabatan re ference s Jabatan(KdJabatan)
Foreign Key KdT elpAdmin refe rences T elpAdmin(KdTelpAdmin)
Guru (KdGuru,KdJabatan, NamaGuru, PassGuru, NIP T empatLahir, T glLahir, JenisKelamin, Status, PendT rakhir, JlhMengajar, KdMatPel, Alamat, Email, KdT elpGuru)
Primary Key (KdGuru)
Foreign Key KdJabatan re ference s Jabatan(KdJabatan)
Foreign Key KdT elpGuru refe rences T elpGuru(KdT elpGuru)
Jam (KdJam, JamMulai, JamSelesai)
Primary Key KdJam
Matpel (KdMatpel, NamaMatpel)
Primary Key KdMatpel
ThnAjaran (KdThnAjaran, T ahunMulai, T ahunSelesai)
Kelas (KdKelas, NamaKelas)
Primary Key KdKelas
JadwalDetail (KdJadwalDetail, KdJam, KdMatpel, Hari)
Primary Key (KdJadwalDetail)
Foreign Key KdJam refe rences Jam(KdJam)
Foreign Key KdMatpel re ferences Matpel(KdMatpel)
JadwalMatpel (KdJadwalDetail, KdMatpel, KdGuru)
Primary Key KdJadwaDetail, KdMatpel, KdGur u
Foreign Key KdJadwalDetail re fe rences JadwalDetail(KdJadwalDetail)
Foreign Key KdMatpel re fe rences Matpel(KdMatpel)
Foreign Key KdGuru re fe rences Guru(KdGuru)
JadwalKelas (KdJadwalDetail, KdKelas)
Primary Key KdJadwalDetail, KdKelas
Foreign Key KdJadwalDetail re fe rences JadwalDetail(KdJadwalDetail)
Foreign Key KdKelas re fe rence s Kelas(KdKelas)
GuruMatpel (KdMatpel, KdGuru)
Primary Key KdMatpel, KdGuru
Foreign Key KdGuru re fe rences Guru(KdGuru)
W aliKelas (KdGuru, KdKelas)
Primary Key KdGuru, KdKelas
Foreign Key KdGuru re fe rences Guru(KdGuru)
Foreign Key KdKelas re fe rence s Kelas(KdKelas)
AbsenGuru(KdGuru, T glAbsen, Keterangan, Semester)
Primary Key KdGuru, T glAbsen
Foreign Key KdGuru re fe rences Guru(KdGuru)
Te lpMurid (KdTelpMurid, T ipeT elp, NoT elp)
Primary Key KdT elpMurid
Murid (KdMurid, NamaMurid, PassMurid, T empatLahir, T glLahir, JenisKelamin, KdOrangtua, Alamat, Email, Asal Sekolah, KdT elpMurid)
Primary Key KdMurid
Foreign Key KdT elpMurid refe rences T elpMurid(KdT elpMurid)
MuridKelas (KdMurid, KdKelas)
Primary Key KdMurid, KdKelas
Foreign Key KdKelas re fe rence s Kelas(KdKelas)
Kasus (KdMurid, T glKasus, Catatan, Semester)
Primary Key KdMurid, T glKasus
Foreign Key KdMurid refe rences Murid(KdMurid)
Pre stasi (KdMurid, T glPrestasi, Catatan, Semester)
Primary Key KdMurid, T glPrestasi
Foreign Key KdMurid refe rences Murid(KdMurid)
AbsenMurid (KdMurid, T glAbsen, KdJam, Keterangan, Semester)
Primary Key KdMurid, T glAbsen, KdJam
Foreign Key KdMurid refe rences Murid(KdMurid)
Foreign Key KdJam refe rences Jam(KdJam)
Status (KdStatus, Status)
Primary Key KdStatus
Tipe Keuangan (KdT ipeKeuangan, T ipeKeuangan)
Primary Key KdT ipeKeuangan
Ke uanganMurid (KdKeuangan, KdT ipeKeuangan, KdStatus, KdT hnAjaran, KdMurid, Bulan)
Foreign Key KdT ipeKeuangan refe rences T ipeKeuangan(KdT ipeKeuangan)
Foreign Key KdStatus refe rences Status(KdStatus)
Foreign Key KdT hnAjaran refe rences ThnAjaran(KdT hnAjaran)
Foreign Key KdMurid refe rences Murid(KdMurid)
Re cordNilai (KdKelas, KdMurid, KdMatpel, KdThnAjaran, Semester, T ugas, UH1, UH2, UH3, UH4, UAS)
Primary Key KdKelas, KdMurid, KdMatpel, KdThnAjaran, Semester
Foreign Key KdKelas re fe rence s Kelas(KdKelas)
Foreign Key KdMurid refe rences Murid(KdMurid)
Foreign Key KdMatpel re fe rences Matpel(KdMatpel)
Foreign Key KdT hnAjaran refe rences ThnAjaran(KdT hnAjaran)
TipeO rangtua (KdT ipeOrangtua, TipeOrangT ua)
Primary Key KdT ipeOrangtua
Te lpO rangtua (KdT elpOrangtua, TipeTelp, NoT elp)
Primary Key KdT lpOrangtua
Orangtua (KdOrangtua, NamaOrangtua, PassOrangtua, TempatLahir, T glLahir, Agama, Alamat, KdT ipeOrangtua, KdT elpOrangtua, KdMurid)
Primary Key KdOrangtua
Foreign Key KdT ipeOrangtua re fe rence s T ipeOrangtua(KdT ipeOrangtua)
Foreign Key KdT elpOrangtua re fe rence s T lpOrangtua(KdT elpOrangtu)
Foreign Key KdMurid refe rences Murid(KdMurid)
4.2.2.3 Normalisasi
Tujuan dari normalisasi adalah untuk memvalidasi relasi-relasi dalam model data logikal lokal dengan menggunakan teknik-teknik normalisasi.
ADMIN
1NF
Admin (KdAdmin, Jabatan, NamaAdmin, PassAdmin, NIP, TempatLahir, TglLahir, JenisKelamin, Alamat, Email)
Guru (KdGuru, Jabatan, NamaGuru, PassGuru, NIP TempatLahir, TglLahir, JenisKelamin, Status, PendTrakhir, JlhM engajar, M atpel, Alamat, Email)
TelpGuru (TelpGuru)
2NF
Admin (KdAdmin, Jabatan, NamaAdmin, PassAdmin, NIP, TempatLahir, TglLahir, JenisKelamin, Alamat, Email)
Guru (KdGuru, Jabatan, NamaGuru, PassGuru, NIP TempatLahir, TglLahir, JenisKelamin, Status, PendTrakhir, Alamat, Email)
TelpAdmin (TelpAdmin)
TelpGuru (TelpGuru)
3NF
Admin (KdAdmin, Jabatan, NamaAdmin, PassAdmin, NIP, TempatLahir, TglLahir, JenisKelamin, Alamat, Emai, KdTelpAdmin)
Guru (KdGuru, Jabatan, NamaGuru, PassGuru, NIP TempatLahir, TglLahir, JenisKelamin, Status, PendTrakhir, Alamat, Email, KdTelpGuru)
TelpAdmin (TipeTelp, NoTelp, KdTelpAdmin)
TelpGuru (TipeTelp, NoTelp, KdTelpGuru)
BCNF
Admin (KdAdmin, KdJabatan, NamaAdmin, PassAdmin, NIP, TempatLahir, TglLahir, JenisKelamin, Alamat, Email, KdTelpAdmin)
Guru (KdGuru, KdJabatan, NamaGuru, PassGuru, NIP TempatLahir, TglLahir, JenisKelamin, Status,
PendTrakhir, Alamat, Email, KdTelpGuru)
TelpGuru (TipeTelp, NoTelp, KdTelpGuru)
Jabatan (KdJabatan, NamaJabatan)
JAM
1NF
Jam (KdJam, JamM ulai, JamSelesai)
MATPEL
1NF
Matpel (KdM atpel, M atpel)
THNAJARAN
1NF
KELAS
1NF
Kelas (KdKelas, NamaKelas)
JADWAL
1NF
JadwalDetail (KdJadwalDetail, KdJam, KdM atpel, Hari)
JadwalMatpel (KdJadwalDetail, KdM atpel, KdGuru
JadwalKelas (KdJadwalDetail, KdKelas)
GURUMATPEL
1NF
WALIKELAS
1NF
WaliKelas (KdGuru, KdKelas)
ABS EN
1NF
AbsenGuru(KdGuru, TglAbsen, Keterangan, Semester)
AbsenMurid (KdM urid, TglAbsen, KdJam, Keterangan, Semester)
MURID
1NF
Murid (KdM urid, NamaM urid, PassM urid, TempatLahir, TglLahir, JenisKelamin, Alamat, Email, AsalSekolah, KdOrangtua, PassOrangtua, TempatLahir, TglLahir, Agama, Email)
TelpMurid (TelpMurid)
TelpOrangtua (TelpOrangtua)
2NF
Murid (KdM urid, NamaM urid, PassM urid, TempatLahir, TglLahir, JenisKelamin, Alamat, Email, AsalSekolah, KdOrangtua, NamaOrangtua, PassOrangtua, TempatLahir, TglLahir, Agama, Email)
TelpMurid (TelpMurid)
TelpOrangtua (TelpOrangtua)
3NF
Murid (KdM urid, NamaM urid, PassM urid, TempatLahir, TglLahir, JenisKelamin, Alamat, Email, AsalSekolah, KdOrangTua, KdTelpM urid)
Orangtua (KdOrangtua, NamaOrangtua, PassOrangtua, TempatLahir, TglLahir, A gama, Alamat, Email, KdM urid, KdTelOrangtua)
TelpMurid (TipeTelp, NoTelp, KdTelpM urid)
TelpOrangtua (TipeTelp, NoTelp, KdTelpOrangtua)
BCNF
Murid (KdM urid, NamaM urid, PassM urid, TempatLahir, TglLahir, JenisKelamin, Alamat, Email, AsalSekolah, KdOrangTua, KdTelpM urid)
Orangtua (KdOrangtua, NamaOrangtua, PassOrangtua, TempatLahir, TglLahir, A gama, Alamat, Email, KdM urid, KdTelOrangtua, KdTipeOrangtua)
TelpOrangtua (TipeTelp, NoTelp, KdTelpOrangtua)
TipeOrangtua (TipeOrangtua, KdTipeOrangtua)
MURIDKELAS
1NF
MuridKelas (KdMurid, KdKelas)
KAS US
1NF
Kasus (KdM urid, TglKasus, Catatan, Semester)
PRES TAS I
1NF
KEUANGAN
1NF
KeuanganMurid (KdKeuangan, TipeKeuangan, Status, KdThnAjaran, KdM urid, Bulan)
2NF
KeuanganMurid (KdKeuangan, Status, KdThnAjaran, KdM urid, Bulan)
TipeKeuangan (TipeKeuangan)
3NF
KeuanganMurid (KdKeuangan, KdTipeKeuangan, KdStatus, KdThnAjaran, KdM urid, Bulan)
TipeKeuangan (KdTipeKeuangan, TipeKeuangan)
4.2.2.4 Model Diagram Relasional Global
4.2.3 Perancangan Basis Data Fisik
4.2.3.1 Perancangan Relasional Dasar Basis Data
Tujuan dari tahap ini adalah intuk memutuskan bagaimana merepresentasikan relasi dasar yang diidentifikasikan dalam model data logikal global DBM S yang diinginkan.
1. Guru
Domain KdGuru : variable length character string, length 6
Domain NamaGuru : variable length character string, length 30
Domain PassGuru : variable length character string, length 32
Domain NIP : numeric
Domain TempatLahir : variable length character string, length 20
Domain TglLahir : variable date, format date
Domain JenisKelamin : single character, must be one of L or P
Domain Status : variable length character string, length 5
Domain PendTrakhir : variable length character string, length 3
Domain Alamat : variable length character string, length 50
Domain Email : variable length character string, length 30
Domain KdTelpGuru : variable length character string, length 6
Guru (
KdGuru NOT NULL,
PassGuru NOT NULL,
NamaGuru NOT NULL,
Nip NULL,
TempatLahir NOT NULL,
TglLahir NOT NULL,
JenisKelamin NOT NULL,
Status NOT NULL,
PendTrakhir NOT NULL,
Alamat NOT NULL,
Email NULL,
KdJabatan NOT NULL,
KdTelpGuru NOT NULL,
FOREIGN KEY ( KdJabatan ) REFERENCES Jabatan(KdJabatan),
FOREIGN KEY (KdTelpGuru) REFERENCES TelpGuru(KdTelpGuru),
ON UPDATE CASCADE ON DELETE NO ACTION
);
2. Orang Tua
Domain KdOrangtua : variable length character string, length 6
Domain NamaOrangtua : variable length character string, length 32
Domain PassOrangtua : variable length character string, length 30
Domain TempatLahir : variable length character string, length 20
Domain TglLahir : variable date, format date
Domain Agama : variable length character string, length 7
Domain Alamat : variable length character string, length 50
Domain Email : variable length character string, length 30
Domain
KdTipeOrangtua
Domain
KdTelpOrangtua
: variable length character string, length 6
Domain KdM urid : variable length character string, length 6
Orangtua (
KdOrangtua NOT NULL,
NamaOrangtua NOT NULL,
PassOrangtua NOT NULL,
TempatLahir NOT NULL,
TglLahir NOT NULL,
Agama NOT NULL,
Alamat NOT NULL,
Email NOT NULL,
KdTipeOrangtua NOT NULL,
KdTelpOrangtua NOT NULL,
KdM urid NULL,
FOREIGN KEY KdTipeOrangtua REFERENCES TipeOrangtua(KdTipeOrangtua),
FOREIGN KEY KdTelpOrangtua REFERENCES TelpOrangtua(KdTelpOrangtua),
FOREIGN KEY KdM urid REFERENCES M urid(KdM urid),
ON UPDATE CASCADE ON DELETE NO ACTION
);
3. Murid
Domain KdM urid : variable length character string, length 6
Domain NamaM urid : variable length character string, length 30
Domain PassM urid : variable length character string, length 32
Domain TempatLahir : variable length character string, length 20
Domain TglLahir : variable date, format date
Domain JenisKelamin : single character, must be one of L or P
Domain Alamat : variable length character string, length 50
Domain Email : variable length character string, length 20
Domain
KdTipeTelpMurid
: variable length character string, length 6
Murid (
KdM urid NOT NULL,
NamaM urid NOT NULL,
PassM urid NOT NULL,
TempatLahir NOT NULL,
TglLahir NOT NULL,
JenisKelamin NOT NULL,
Alamat NOT NULL,
Email NOT NULL,
AsalSekolah NOT NULL,
KdTelpMurid NOT NULL,
PRIM ARY KEY (KdM urid),
FOREIGN KEY KdTelpM urid REFERENCES TelpM urid(KdTelpMurid),
ON UPDATE CASCADE ON DELETE NO ACTION
4. Admin
Domain KdAdmin : variable length character string, length 6
Domain NamaAdmin : variable length character string, length 30
Domain PassAdmin : variable length character string, length 32
Domain NIP : numeric
Domain TempatLahir : variable length character string, length 20
Domain TglLahir : variable date, format date
Domain JenisKelamin
: single character, must be one of L or P
Domain Alamat : variable length character string, length 50
Domain Email : variable length character string, length 30
Domain KdJabatan : variable length character string, length 6
Domain KdTelpAdmin
: variable length character string, length 6
Admin (
KdAdmin NOT NULL,
NamaAdmin NOT NULL,
Nip NULL,
TempatLahir NOT NULL,
TglLahir NOT NULL,
JenisKelamin NOT NULL,
Alamat NOT NULL,
Email NULL,
KdJabatan NOT NULL,
KdTelpAdmin NOT NULL,
PRIM ARY KEY (KdAdmin),
FOREIGN KEY (KdJabatan) REFERENCES Jabatan(KdJabatan),
FOREIGN KEY (KdTelpAdmin) REFERENCES TelpAdmin(KdTelpAdmin),
ON UPDATE CASCADE ON DELETE NO ACTION
5. TelpGuru
Domain KdTelpGuru : variable length character string, length 6
Domain TipeTelp : single character, must be one of H or R
Domain NoTelp : numeric, length 15
TelpGuru (
KdTelpGuru NOT NULL,
TipeTelp NOT NULL,
NoTelp NULL,
PRIM ARY KEY (KdTelpGuru),
ON UPDATE CASCADE ON DELETE NO ACTION
);
6. TelpMurid Domain KdTelpMurid
: variable length character string, length 6
Domain TipeTelp : single character, must be one of H or R
TelpMurid (
KdTelpMurid NOT NULL,
TipeTelp NOT NULL,
NoTelp NULL,
PRIM ARY KEY (KdTelpM urid),
ON UPDATE CASCADE ON DELETE NO ACTION
);
7. TelpOrangtua
Domain KdTelpOrangtua : variable length character string, length 6
Domain TipeTelp : single character, must be one of H or R
Domain NoTelp : numeric, length 15
TelpOrangtua (
KdTelpOrangtua NOT NULL,
TipeTelp NOT NULL,
NoTelp NULL,
ON UPDATE CASCADE ON DELETE NO ACTION
);
8. TelpAdmin Domain KdTelpAdmin
: variable length character string, length 6
Domain TipeTelp : single character, must be one of H or R
Domain NoTelp : numeric, length 15
TelpAdmin (
KdTelpAdmin NOT NULL,
TipeTelp NOT NULL,
NoTelp NULL,
PRIM ARY KEY (KdTelpAdmin),
ON UPDATE CASCADE ON DELETE NO ACTION
9. TipeOrangtua Domain
KdTipeOrangtua
: variable length character string, length 6
Domain TipeOrangtua : single character, must be one of A or I or W
TipeOrangtua(
KdTipeOrangtua NOT NULL,
TipeOrangtua NOT NULL,
PRIM ARY KEY (KdTipeOrangtua),
ON UPDATE CASCADE ON DELETE NO ACTION
);
10. Jabatan
Domain KdJabatan : variable length character string, length 6
Domain NamaJabatan : variable length character string, length 30
Jabatan(
NamaJabatan NOT NULL,
PRIM ARY KEY (KdJabatan),
ON UPDATE CASCADE ON DELETE NO ACTION
);
11. Jam
Domain KdJam : variable length character string, length 6
Domain JamM ulai : variable time, format time
Domain JamSelesai : variable time, format time
Jam(
KdJam NOT NULL,
JamM ulai NOT NULL,
JamSelesai NOT NULL,
PRIM ARY KEY (KdJam),
ON UPDATE CASCADE ON DELETE NO ACTION
12. Matpel
Domain KdM atpel : variable length character string, length 6
Domain M atpel : variable length character string, length 20
Matpel(
KdM atpel NOT NULL,
M atpel NOT NULL,
PRIM ARY KEY (KdM atpel),
ON UPDATE CASCADE ON DELETE NO ACTION
);
13. ThnAjaran
Domain KdThnAjaran : variable length character string, length 6
Domain ThnM ulai : numeric
Domain ThnSelesai : numeric
ThnAjaran(
ThnM ulai NOT NULL,
ThnSelesai NOT NULL,
PRIM ARY KEY (KdThnAjaran),
ON UPDATE CASCADE ON DELETE NO ACTION
);
14. Kelas
Domain KdKelas : variable length character string, length 6
Domain NamaKelas : variable length character string, length 10
Kelas(
KdKelas NOT NULL,
NamaKelas NOT NULL,
PRIM ARY KEY (KdKelas),
ON UPDATE CASCADE ON DELETE NO ACTION
15. GuruMatpel
Domain KdGuru : variable length character string, length 6
Domain KdM atpel : variable length character string, length 6
Domain jlhM engajar : variable length character string, length 6
GuruMatpel(
KdGuru NOT NULL,
KdM atpel NOT NULL,
JlhM engajar NOT NULL,
PRIM ARY KEY (KdGuru, KdM atpel),
FOREIGN KEY KdGuru REFERENCES Guru(KdGuru),
FOREIGN KEY KdM atpel REFERENCES M atpel(KdM atpel),
ON UPDATE CASCADE ON DELETE NO ACTION
16. MuridKelas
Domain KdM urid : variable length character string, length 6
Domain KdKelas : variable length character string, length 6
MuridKelas(
KdM urid NOT NULL,
KdKelas NOT NULL,
PRIM ARY KEY (KdM urid, KdKelas),
FOREIGN KEY KdM urid REFERENCES M urid(KdM urid),
FOREIGN KEY KdKelas REFERENCES Kelas(KdKelas),
ON UPDATE CASCADE ON DELETE NO ACTION
);
17. WaliKelas
Domain KdGuru : variable length character string, length 6
WaliKelas(
KdGuru NOT NULL,
KdKelas NOT NULL,
PRIM ARY KEY (KdGuru, KdKelas),
FOREIGN KEY KdGuru REFERENCES Guru(KdGuru),
FOREIGN KEY KdKelas REFERENCES Kelas(KdKelas),
ON UPDATE CASCADE ON DELETE NO ACTION
);
18. JadwalDetail
Domain KdJadwalDetail : variable length character string, length 6
Domain KdJam : variable length character string, length 6
Domain KdM atpel : variable length character string, length 6
Domain Hari : variable length character string, length 8
JadwalDetail(
KdJadwalDetail NOT NULL,
KdM atpel NOT NULL,
Hari NOT NULL,
PRIM ARY KEY (KdJadwalDetail),
FOREIGN KEY KdJam REFERENCES Jam(KdJam),
FOREIGN KEY KdM atpel REFERENCES M atpel(KdM atpel),
ON UPDATE CASCADE ON DELETE NO ACTION
);
19. JadwalMatpel
Domain KdJadwalDetail : variable length character string, length 6
Domain KdM atpel : variable length character string, length 6
Domain KdGuru : variable length character string, length 6
JadwalMatpel(
KdJadwalDetail NOT NULL,
KdM atpel NOT NULL,
KdGuru NOT NULL,
FOREIGN KEY KdJadwalDetai REFERENCES JadwalDetail(KdJadwalDetail),
FOREIGN KEY KdM atpel REFERENCES M atpel(KdM atpel),
FOREIGN KEY KdGuru REFERENCES Guru(KdGuru),
ON UPDATE CASCADE ON DELETE NO ACTION
);
20. JadwalKelas
Domain KdJadwalDetail : variable length character string, length 6
Domain KdKelas : variable length character string, length 6
JadwalKelas(
KdJadwalDetail NOT NULL,
KdKelas NOT NULL,
PRIM ARY KEY (KdJadwalDetail, KdKelas),
FOREIGN KEY KdJadwalDetail REFERENCES JadwalDetail(KdJadwalDetail),
ON UPDATE CASCADE ON DELETE NO ACTION
);
21. AbsenGuru
Domain KdGuru : variable length character string, length 6
Domain TglAbsen : variable date, format date
Domain Semester : single character, must be one of 1 or 2
Domain Keterangan : single character, must be one of S or I or A
AbsenGuru(
KdGuru NOT NULL,
TglAbsen NOT NULL,
Semester NOT NULL,
Keterangan NOT NULL,
PRIM ARY KEY (KdGuru, TglAbsen),
FOREIGN KEY KdGuru REFERENCES Guru(KdGuru),
ON UPDATE CASCADE ON DELETE NO ACTION
22. AbsenMurid
Domain KdM urid : variable length character string, length 6
Domain TglAbsen : variable date, format date
Domain KdJam : variable length character string, length 6
Domain Semester : single character, must be one of 1 or 2
Domain Keterangan : single character, must be one of S or I or A
AbsenMurid(
KdM urid NOT NULL,
TglAbsen NOT NULL,
KdJam NOT NULL,
Semester NOT NULL,
Keterangan NOT NULL,
PRIM ARY KEY (KdM urid, TglAbsen, KdJam),
FOREIGN KEY KdGuru REFERENCES Guru(KdGuru),
FOREIGN KEY KdJam REFERENCES Jam(KdJam),
ON UPDATE CASCADE ON DELETE NO ACTION
23. RecordNilai
Domain KdKelas : variable length character string, length 6
Domain KdM urid : variable length character string, length 6
Domain KdM atpel : variable length character string, length 6
Domain KdThnAjaran : variable length character string, length 6
Domain Semester : single character, must be one of 1 or 2
Domain Tugas : numeric
Domain UH1 : numeric
Domain UH2 : numeric
Domain UH3 : numeric
Domain UH4 : numeric
Domain UAS : numeric
RecordNilai(
KdKelas NOT NULL,
KdM urid NOT NULL,
KdM atpel NOT NULL,
Semester NOT NULL,
Tugas NOT NULL,
UH1 NOT NULL,
UH2 NULL,
UH3 NULL,
UH4 NUL,
UAS NOT NUL,
PRIM ARY KEY (KdKelas, KdM urid, KdM atpel, KdThnAjaran,),
FOREIGN KEY KdKelas REFERENCES Kelas(KdKelas),
FOREIGN KEY KdM urid REFERENCES M urid(KdM urid),
FOREIGN KEY KdM atpel REFERENCES M atpel(KdM atpel),
FOREIGN KEY KdThnAjaran REFERENCES ThnAjaran(KdThnAjaran),
ON UPDATE CASCADE ON DELETE NO ACTION
24. S tatus
Domain KdStatus : variable length character string, length 6
Domain Status : variable length character string, length 3
S tatus(
KdStatus NOT NULL,
Status NOT NULL,
PRIM ARY KEY (KdStatus),
ON UPDATE CASCADE ON DELETE NO ACTION
);
25. TipeKeuangan
Domain KdTipeKeuangan : variable length character string, length 6
Domain TipeKeuangan : variable length character string, length 6
TipeKeuangan(
KdTipeKeuangan NOT NULL,
PRIM ARY KEY (KdTipeKeuangan),
ON UPDATE CASCADE ON DELETE NO ACTION
);
26. KeuanganMurid
Domain KdKeuangan : variable length character string, length 6
Doamain KdTipeKeuangan : variable length character string, length 6
Domain KdStatus : variable length character string, length 6
Domain KdThnAjaran : variable length character string, length 6
Domain KdM urid : variable length character string, length 6
Domain Bulan : variable length character string, length 10
KeuanganMurid(
KdKeuangan NOT NULL,
KdTipeKeuangan NOT NULL,
KdStatus NOT NULL,
KdThnAjaran NOT NULL,
Bulan NOT NULL,
PRIM ARY KEY (KdKeuangan),
FOREIGN KEY KdTipeKeuangan REFERENCES TipeKeuangan(KdTipeKeuangan),
FOREIGN KEY KdStatus REFERENCES Status(KdStatus),
FOREIGN KEY KdThnAjaran REFERENCES ThnAjaran(KdThnAjaran),
FOREIGN KEY KdM urid REFERENCES M urid(KdM urid),
ON UPDATE CASCADE ON DELETE NO ACTION
);
27. Kasus
Domain KdM urid : variable length character string, length 6
Domain TglKasus : variable date, format date
Domain Semester : single character, must be one of 1 or 2
Kasus(
KdM urid NOT NULL,
TglKasus NOT NULL,
Semester NOT NULL,
Catatan NOT NULL,
PRIM ARY KEY (KdM urid, TglKasus),
FOREIGN KEY KdM urid REFERENCES M urid(KdM urid),
ON UPDATE CASCADE ON DELETE NO ACTION
);
28. Prestasi
Domain KdM urid : variable length character string, length 6
Domain TglPrestasi : variable date, format date
Domain Semester : single character, must be one of 1 or 2
Prestasi(
KdM urid NOT NULL,
TglPrestasi NOT NULL,
Semester NOT NULL,
Catatan NOT NULL,
PRIM ARY KEY (KdM urid, TglPrestasi),
FOREIGN KEY KdM urid REFERENCES M urid(KdM urid),
ON UPDATE CASCADE ON DELETE NO ACTION
);
4.2.3.2 Analisis Transaksi
Analisis transaksi bertujuan untuk memahami fungsionalitas dari transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi yang penting. Berikut ini akan ditunjukkan hasil analisa terhadap beberapa contoh transaksi yang dapat terjadi di dalam basis data, beserta tabel mana saja yang terlibat pada saat transaksi dilaksanakan.(Tabel 4.7)
Tabel 4.7 Tabel Analisis Transaksi Transaksi/Relasi 1 2 3 4 5 I R U D I R U D I R U D I R U D I R U D Guru X X OrangTua Murid X X Admin TelpGuru TelpMurid TelpOrangtua TelpAdmin TipeOrangtua Jabatan Jam X X Matpel X X ThnAjaran X X X Kelas X X GuruMatpel MuridKelas WaliKelas JadwalDet ail JadwalMatpel JadwalKel as X AbsenGuru X AbsenMurid X RecordNilai X Status TipeKeuangan Keuang anMurid X Kasus Prestasi Keterangan :
1. Pencatatan data abs ensi murid 2. Pencatatan jadwal pelajaran murid 3. Pencatatan data nilai murid 4. Pencatatan status keuangan murid 5. Pencatatan data abs ensi guru
Tabel 4.7 Tabel Analisis Transaksi (lanjutan) Transaksi/Relasi 6 7 8 9 10 I R U D I R U D I R U D I R U D I R U D Guru X X X OrangTua X X Murid X X Admin TelpGuru TelpMurid TelpOrangtua TelpAdmin TipeOrangtua Jabatan Jam Matpel X X ThnAjaran X Kelas X GuruMatpel X MuridKelas X WaliKelas JadwalDet ail JadwalMatpel X JadwalKel as AbsenGuru AbsenMurid RecordNilai Status TipeKeuangan Keuang anMurid Kasus Prestasi Keterangan :
6. Pencatatan jadwal mengajar guru 7. Pencatatan guru-m atpel
8. Pencatatan murid-kel as 9. Update pro fil murid 10. Update pro fil orang tua
Tabel 4.7 Tabel Analisis Transaksi (lanjutan) Transaksi/Relasi 11 12 13 14 15 I R U D I R U D I R U D I R U D I R U D Guru X X X X OrangTua Murid X X Admin TelpGuru TelpMurid TelpOrangtua TelpAdmin TipeOrangtua Jabatan Jam X Matpel X ThnAjaran X X Kelas X GuruMatpel MuridKelas WaliKelas JadwalDet ail X X X JadwalMatpel X X JadwalKel as X X X AbsenGuru X X AbsenMurid RecordNilai X X Status TipeKeuangan Keuang anMurid Kasus Prestasi Keterangan :
11. Update pro fil guru 12. Update absensi guru 13. Update nilai murid 14. Update jadwal guru 15. Update jadwal kelas
Tabel 4.7 Tabel Analisis Transaksi (lanjutan) Transaksi/Relasi 16 17 18 19 20 I R U D I R U D I R U D I R U D I R U D Guru X X OrangTua Murid X X Admin TelpGuru TelpMurid TelpOrangtua TelpAdmin TipeOrangtua Jabatan Jam X Matpel X X ThnAjaran X X Kelas GuruMatpel X X MuridKelas WaliKelas JadwalDet ail X X X JadwalMatpel X X JadwalKel as X X X AbsenGuru AbsenMurid X X RecordNilai Status X X TipeKeuangan Keuang anMurid X X Kasus Prestasi Keterangan :
16. Update absensi murid
17. Update status keuangan murid 18. Update guru-matpel
19. Hapus jadwal kelas 20. Hapus jadwal mengajar
Tabel 4.7 Tabel Analisis Transaksi (lanjutan) Transaksi/Relasi 21 22 23 24 I R U D I R U D I R U D I R U D Guru X X OrangTua Murid X Admin TelpGuru TelpMurid TelpOrangtua TelpAdmin TipeOrangtua Jabatan Jam X X Matpel X ThnAjaran X X Kelas GuruMatpel X X MuridKelas X X WaliKelas JadwalDet ail JadwalMatpel JadwalKel as AbsenGuru X X AbsenMurid X X RecordNilai Status TipeKeuangan Keuang anMurid Kasus Prestasi Keterangan : 21. Hapus murid-kelas 22. Hapus guru-matpel 23. Hapus Absensi Murid 24. Hapus Absensi Guru
4.2.3.3 Pembuatan Indeks Setiap Entiti
Tabel 4.8 Tabel Analisis Transaksi
Nama Tabel Indeks Nama Indeks
Guru
KdGuru (Primary Index) NamaGuru (Secondary Index)
idx_KdGuru idx_NamaPasien
OrangTua
KdOrangTua (Primary Index) NamaOrangTua (Secondary Index)
Idx_KdOrangTua idx_NamaOrangTua
M urid
KdM urid (Primary Index) NamaM urid (Secondary Index)
idx_KdM urid idx_NamaM urid
Admin
KdAdmin (Primary Index) NamaAdmin (Secondary Index)
idx_KdAdmin idx_NamaAdmin TelpGuru KdTelpGuru (Primary Index) idx_KdTelpGuru TelpM urid KdTelpMurid (Primary Index) idx_KdTelpM urid
TelpOrangtua KdTelpOrangTua (Primary Index) idx_KdTelpOrangTua TelpAdmin KdTelpAdmin (Primary Index) idx_KdTelpAdmin TipeOrangtua KdTipeOrangTua (Primary Index) idx_KdTipeOrangTua
Jabatan
KdJabatan (Primary Index) NamaJabatan (Secondary Index)
idx_KdJabatan idx_NamaJabatan
Jam KdJam (Primary Index) idx_KdJam
M atpel
KdM atpel (Primary Index) M atpel (Secondary Index)
idx_KdM atpel idx_M atpel
ThnAjaran
KdThnAjaran (Primary Index) ThnSelesai (Secondary Index)
idx_KdThnAjaran idx_ThnSelesai
Kelas
KdKelas(Primary Index) NamaKelas (Secondary Index)
idx_KdKelas idx_Kelas
GuruM atpel KdGuruM atpel (Primary Index) idx_KdGuruM atpel M uridKelas KdM uridKelas (Primary Index) idx_KdM uridKelas WaliKelas KdWaliKelas (Primary Index) idx_KdWaliKelas JadwalDetail KdJadwalDetail (Primary Index) idx_KdJadwalDetail
JadwalM atpel
KdJadwalM atpel (Primary Index) KdM atpel (Secondary Index)
idx_KdJadwalM atpel idx_KdM atpel
JadwalKelas
KdJadwalKelas (Primary Index) KdKelas (Secondary Index)
idx_KdJadwalKelas KdKelas
AbsenGuru
KdAbsenGuru (Primary Index) TglAbsen (Secondary Index)
idx_KdAbsenGuru idx_T glAbsen
AbsenM urid
KdAbsenM urid (Primary Index) TglAbsen (Secondary Index)
idx_KdAbsenM urid idx_T glAbsen
RecordNilai KdRecordNilai (Primary Index) idx_KdRecordNilai
Status
KdStatus (Primary Index) Status (Secondary Index)
idx_KdStatus idx_Status
TipeKeuangan
KdTipeKeuangan (Primary Index) TipeKeuangan (Secondary Index)
idx_KdTipeKeuangan idx_TipeKeuangan
KeuanganM urid
KdKeuanganM urid (Primary Index) KdM urid (Secondary Index)
idx_KdKeuanganM urid idx_KdM urid
Kasus
KdKasus (Primary Index) TglKasus (Secondary Index)
idx_KdKasus idx_T glKasus
Prestasi
KdPrestasi (Primary Index) TglPrestasi (Secondary Index)
idx_KdPrestasi idx_T glPrestasi
4.2.3.4 Merancang Mekanisme Keamanan
Keamanan yang dimaksud adalah untuk membatasi hak akses kepada pemakai yang bertujuan untuk menjaga keamanan data/informasi yang ada di SMP Islam Al-Ikhlas.
• Admin (Administrator : Admin)
GRANT ALL Privileges ON M urid TO Admin
GRANT ALL Privileges ON Guru TO Admin
GRANT ALL Privileges ON Orangtua TO Admin
GRANT ALL Privileges ON Admin TO Admin
GRANT ALL Privileges ON TelpM urid TO Admin
GRANT ALL Privileges ON TelpGuru TO Admin
GRANT ALL Privileges ON TelpOrangtua TO Admin
GRANT ALL Privileges ON TelpAdmin TO Admin
GRANT ALL Privileges ON Jam TO Admin
GRANT ALL Privileges ON M atpel TO Admin
GRANT ALL Privileges ON Kelas TO Admin
GRANT ALL Privileges ON JadwalDetail TO Admin
GRANT ALL Privileges ON M atpel TO Admin
GRANT ALL Privileges ON JadwalM atpel TO Admin
GRANT ALL Privileges ON JadwalKelas TO Admin
GRANT ALL Privileges ON GuruM atpel TO Admin
GRANT ALL Privileges ON WaliKelas TO Admin
GRANT ALL Privileges ON AbsenGuru TO Admin
GRANT ALL Privileges ON AbsenM urid TO Admin
GRANT ALL Privileges ON M uridKelas TO Admin
GRANT ALL Privileges ON Kasus TO Admin
GRANT ALL Privileges ON Prestasi TO Admin
GRANT ALL Privileges ON TipeOrangtua TO Admin
GRANT ALL Privileges ON Status TO Admin
GRANT ALL Privileges ON Keuangan TO Admin
• Guru
GRANT ALL Privileges ON RecordNilai TO GuruM atpel
GRANT SELECT UPDATE, VIEW ON Guru TO Guru
GRANT SELECT VIEW ON JadwalM atpel TO Guru
GRANT SELECT VIEW ON AbsenGuru TO Guru
GRANT SELECT VIEW ON M uridKelas TO GuruWali
GRANT SELECT VIEW ON RecordNilai TO GuruWali
GRANT SELECT VIEW ON JadwalKelas TO GuruWali
GRANT SELECT VIEW ON AbsenM urid TO GuruWali
GRANT SELECT VIEW ON Kasus TO GuruWali
GRANT SELECT VIEW ON Prestasi TO GuruWali
GRANT SELECT VIEW ON Keuangan TO GuruWali
• Murid
GRANT SELECT UPDATE, VIEW ON M urid TO M urid
GRANT SELECT VIEW ON JadwalKelas TO M urid
GRANT SELECT VIEW ON RecordNilai TO M urid
GRANT SELECT VIEW ON Keuangan TO M urid
GRANT SELECT VIEW ON Prestasi TO M urid
GRANT SELECT VIEW ON Kasus TO M urid
• Orang Tua
GRANT SELECT VIEW ON M urid TO Orangtua
GRANT SELECT VIEW ON JadwalKelasTO Orangtua
GRANT SELECT VIEW ON RecordNilai TO Orangtua
GRANT SELECT VIEW ON AbsenM urid TO Orangtua
GRANT SELECT VIEW ON Keuangan TO Orangtua
GRANT SELECT VIEW ON Prestasi TO Orangtua
GRANT SELECT VIEW ON Kasus TO Orangtua
4.2.3.5 Pemilihan DBMS (DBMS Selection)
DBM S akan digunakan oleh perusahaan untuk membantu menjalankan proses bisnisnya agar menjadi lebih mudah.
Tabel 4.9 Tabel Spesifikasi MySQ L 5.0 MySQL
Tipe DBM S Multithread atau multiuser
Kelebihan Gratis (bebas didownload), dukungan dari banyak komunitas. Kehandalan • M endukung cross-platform
• Updatable Views
• Embedded database library
Keamanan Authentifikasi pengguna dibuat pada sisi server, dapat juga disatukan dengan koneksi keamanan antara klien dan server dengan SSL
Kekurangan Tidak mendukung trigger
Keterbatasan M etadata objek yang dapat tertampung sekitar 1600 Biaya Gratis - $4999
Berikut ini adalah Perbandingan antara SQL Server 2000, Oracle 9i, dan MySQL 4.1 menurut artikel The comparison of SQL Server 2000 with Oracle 9i dan artikel The comparison of SQL Server 2000 with MySQL v4.1 yang ditulis oleh Alexander Chigrik (2003).
Tabel 4.10 Perbandingan SQL Server 2000, Oracle 9i, dan MySQ L 4.1
Perbandingan SQL Server 2000 Oracle 9i MySQL 4.1
Platform SQL server 2000 hanya bisa dijalankan dalam Platform yang berbasis Windows, seperti Windows 9x, Windows NT, Windows 2000 dan Windows CE Oracle 9i bisa bekerja pada semua platform, termasuk platform yang berbasis windows, Sistem berbasis AIX, Compaq Tru64 UNIX, HP9000 series, HP-UX,
MySQL 4.1 bisa dijalankan pada semua platform, termasuk platform berbasis windows, Sistem berbasi AIX, Sistem HP-UX, Linux Intel, Sun Solaris