BAB III. ANALISIS DAN PERANCANGAN SISTEM
D. Perancangan sistem
2. Perancangan basis data
a. Identifikasi entitas dan atribut dalam basis data
Berdasarkan DFD yang telah digambarkan diatas maka dapat diidentifikasikan data-data yang perlu direkam. Adapun data-data tersebut yaitu sekretariat, pengumuman sekretariat, dosen, mahasiswa, jadwal, detail matakuliah, pengumuman, bahan kuliah, soal tugas, dan kumpulan tugas. Data-data hasil identifikasi ini dapat dijadikan entitas dalam basis data
Setelah identifiksikan enitas-entitasnya maka langkah berikut adalah identifikasi atribut-atribut dari setiap entitas. Berikut ini adalah atribut-atribut dari setiap enitas dalam basis data yaitu :
i. Admin atributnya : nama_admin, passwd
ii. Anggota atributnya : nama_user, nama_lengkap, email, passwd, tempat_lahir, tgl_lahir, alamat, jk, tgl_daftar, status iii. Bahan_kuliah atributnya : kd_bahan, nama_bahan,
deskripsi, file_bahan
iv. Detail_mtk : kd_mtk, silabus, deskripsi, tujuan, kepustakaan
v. Pengumuman atributnya : kd_pengumuman, judul, isi, tgl_pengumuman
vi. Soal_tugas atributnya : kd_tugas, nama_tugas, deskripsi, tgl_tugas, file_tugas
viii. Jw atributnya : Seksi
ix. Mahasiswa atributnya : nomor_mhs, nama_mhs x. Matakuliah atributnya : kd_mtk, nama_mtk, sks xi. Sandi_dosen atributnya : npp, sandi
xii. Sandi_mhs atributnya : nomor_mhs, sandi
xiii. Pengumuman_sekre atributnya : id_pengumuman, judul, isi, tgl_pengumuman
xiv. Sekretariat atributnya : npp, nama, password
b. Relasi antar entitas basis data
Setelah mengidentifikasi enitas dan atribut-atributnya maka selanjutnya adalah mengidentifikasi relasi antara entitas yaitu :
i. View_jw dan View_mhs mempunyai cardinality ratio M : N karena banyak mahasiswa boleh mengambil satu jadwal kuliah dan satu mahasiswa boleh terdaftar di banyak jadwal kuliah. Dan participation constrain partial-partial karena tidak semua mahasiswa terdaftar dalam satu jadwal kuliah dan tidak semua jadwal kuliah diambil oleh mahasiswa. Dari relasi ini, terbentuklah tabel baru yaitu view_krs dengan atributnya nilai akhir
ii. View_jw dan View_dosen mempunyai cardinality ratio M : 1 karena satu dosen dapat mengajar banyak jadwal kuliah dan diasumsikan bahwa satu jadwal kuliah hanya diajar oleh satu
dosen. Participation constrain total-partial karena tidak semua dosen punya jadwal kuliah dan semua kelas pasti mempunyai dosen.
iii. View_mtk dan View_jw mempunyai cardinality ratio 1 : M karena satu matakuliah mempunyai banyak jadwal tetapi setiap jadwal hanya teridiri dari satu matakuliah. Participation constrain total-total karena semua matakuliah pasti punya jadwal dan jadwal pasti punya matakuliah
iv. View_mtk dan bahan kuliah mempunyai cardinality ratio 1 : M karena satu matakuliah mempunyai banyak bahan kuliah tetapi satu bahan kuliah hanya dimiliki oleh satu matakuliah. Participation constrain partial-total karena tidak semua matakuliah punya bahan kuliah tetapi bahan kuliah pasti punya matakuliah
v. View_jw dengan pengumuman mempunyai cardinality ratio 1 : M karena satu jadwal mempunyai banyak pengumuman tetapi satu pengumuman hanya dimiliki oleh satu jadwal. Participation constrain partial-total karena tidak semua kelas punya pengumuman tetapi setiap pengumuman pasti berada di satu jadwal
vi. View_jw dengan soal_tugas mempunyai cardinality ratio 1 : M karena satu jadwal mempunyai banyak soal_tugas tetapi satu tugas hanya dimiliki oleh satu jadwal. Participation constrain
partial-total karena tidak semua jadwal punya soal_tugas tetapi setiap soal_tugas pasti berada di satu jadwal
vii. Soal_tugas dengan kumpulan_tugas mempunyai cardinality ratio 1 : M karena satu soal tugas mempunyai banyak kumpulan tugas tetapi satu kumpulan tugas hanya dimiliki oleh satu soal tugas. Participation constrain partial-total karena tidak semua soal tugas punya kumpulan tugas tetapi setiap kumpulan tugas pasti dimiliki oleh di satu soal tugas
viii. View_mhs dengan kumpulan_tugas mempunyai cardinality ratio 1 : M karena satu mahasiswa mempunyai banyak kumpulan tugas tetapi satu kumpulan tugas hanya dimiliki oleh satu mahasiswa. Participation constrain partial-total karena tidak semua mahasiswa punya kumpulan tugas tetapi setiap kumpulan tugas pasti dimiliki oleh di satu mahasiswa
ix. View_mhs dengan view_sandi_mhs mempunyai cardinality ratio 1 : 1 karena satu mahasiswa hanya mempunyai satu sandi. Participation constrain partial-total karena setiap mahasiswa pasti mempunyai sandi dan setiap sandi dimiliki hanya oleh satu mahasiswa tersebut
x. View_dosen dengan view_sandi_dosen mempunyai cardinality ratio 1 : 1 karena satu dosen hanya mempunyai satu sandi. Participation constrain partial-total karena setiap dosen pasti
mempunyai sandi dan setiap sandi dimiliki hanya oleh satu dosen tersebut
xi. View_mtk dengan detail_mtk mempunyai cardinality ratio 1 : 1 karena satu view_mtk hanya mempunyai satu detail_mtk. Participation constrain partial-total karena setiap matakuliah pasti mempunyai detail matakuliah
c. Entity Relationship Diagram (ERD)
Entity Relationship Diagram adalah yang menggambarkan entitas-entitas berserta atribut-atributnya, dan hubungan antar entitas untuk diimplementasikan dalam bentuk tabel-tabel untuk menyimpan data. Berdasarkan semua rancangan diatas maka Entity Realtionship Diagram dari sistem ini dapat dilihat pada gambar dibawah ini :
MAHASISWA VIEW_KRS JW Nama_mhs DETAIL MATAKULIAH DOSEN KUMPUL TUGAS Punya Diampu Nomor_mhs File_kumpul Tgl_kumpul Tujuan Jum_sks Nama_mtk Deskripsi Seksi M N 1 M M 1 M Punya Punya PENGUMUMAN BAHAN KULIAH Memiliki Deskripsi Nama_bahan Kd_bahan File_bahan 1 1 Kd_pengumuman Isi Tgl_pengumuman 1 M Nilai N Nilai_akhir Silabus SEKRETARIAT Nama Npp password PENGUMUMAN_SEKRE Id_pengumuman Isi Tanggal Judul Kepustakaan Judul SOAL TUGAS Punya Punya Kd_tugas Tgl_tugas File_soal Deskripsi Nama_tugas 1 1 ADMIN Nama_user password M Terdiri dari MATAKULIAH Sks Nama_mtk Kd_mtk 1 1 M ANGGOTA Nama_user jk Tempat_lahir passwd Nama_lengkap tgl_lahir email Tgl_daftar Alamat Status JW SANDI_DOSEN SANDI_MHS
d. Pemetaan (Mapping tabel)
Yang dimaksud dengan pemetaan adalah kegiatan merumuskan ERD ke dalam bentuk tabel-tabel yang saling berelasi yang ditunjukan dengan adanya kunci utama (Primary key) dan kunci tamu (foreign key). Hasil pemetaan ERD dapat dilihat sebagai berikut :
i. Admin : (nama_admin, passwd)
ii. Anggota :(nama_user, nama_lengkap, email, passwd, tempat_lahir, tgl_lahir, alamat, jk, tgl_daftar, status)
iii. Bahan_kuliah :(kd_bahan, nama_bahan, deskripsi, file_bahan, kd_mtk)
iv. Detail_mtk : (kd_mtk, silabus, deskripsi, tujuan, kepustakaan) v. Kumpul_tugas : (kd_tugas, nomor_mhs, tgl_kumpul,
file_kumpul, nilai)
vi. Pengumuman : (kd_pengumuman, judul, isi, tgl_pengumuman, kd_mtk, seksi)
vii. Soal_tugas : (kd_tugas, nama_tugas, deskripsi, tgl_tugas, file_tugas, kd_mtk, seksi)
viii. Dosen :( npp, nama ); ix. Jw : (kd_mtk, npp, seksi)
x. Krs : (nomor_mhs, kd_mtk, seksi, nilai) xi. Mhs : (nomor_mhs, nama_mhs)
xiii. Sandi_dosen : (npp, sandi) xiv. Sandi_mhs : (nomor_mhs, sandi)
xv. Pengumuman_sekre : (id_pengumuman, judul, isi, tgl_pengumuman)
xvi. Sekretariat (npp, nama, password)
e. Kamus data
i. Kamus data untuk tabel Admin Admin : nama_admin + passwd Nama_admin = {legal – char }10 Passwd = {legal – char }10 Legal – char = [A-Z|a-z|0-9| ]
ii. Kamus data untuk tabel Anggota
Anggota : nama_user + nama_lengkap + email + passwd + tempat_lahir + tgl_lahir + alamat + jk + tgl_daftar + status) Nama_user = {legal – char }30
Nama_lengkap = {legal – char }100 Email = {legal – char }50
Passwd = {legal – char }10 Tempat_lahir = {legal – char }100 Tgl_lahir = {date}8
jk = {legal – char }9 Tgl_daftar = {date}8 Status = {Bolean}1
Legal – char = [ |A-Z|a-z|0-9| ] Date = dd-mm-yyyy
dd = [ 0 – 31 ] mm = [ 0 – 12 ] yyyy = [ 0 – 9 ]4
iii. Kamus data untuk tabel Bahan Kuliah
Bahan_kuliah = kd_bahan + nama_bahan + deskripsi + file_bahan + kd_mtk
Kode_bahan = { legal – char }12 Nama_bahan = {legal – char }100 Deskripsi = {Text }
File_bahan = {Text } Kd_mtk = {legal – char }9 Legal – char = [A-Z|a-z|0-9| ]
iv. Kamus data untuk tabel Detail Matakuliah
Detail_mtk = kd_mtk + silabus + deskripsi + tujuan + kepustakaan Kd_mtk = {legal – char }9
Deskripsi = {text } Tujuan = {text }8 Kepustakaan = {text }8
Legal – char = [A-Z|a-z|0-9| ]
v. Kamus data untuk tabel Kumpul Tugas
Kumpul_tugas = kd_kumpul + tgl_kumpul + file_kumpul + nilai + kd_tugas + nomor_mhs
Kd_kumpul= {legal – char }16 Tgl_kumpul = {date }8
File_kumpul = {text } Nilai = {float}
Kd_tugas = {date}13
Nomor_mhs = {legal – char }9 Legal – char = [A-Z|a-z|0-9| ] Date = dd-mm-yyyy
dd = [ 0 – 31 ] mm = [ 0 – 12 ] yyyy = [ 0 – 9 ]4
vi. Kamus data untuk tabel Pengumuman
Pengumuman = kd_pengumuman + judul + isi + tgl_pengumuman + kd_mtk + seksi)
Kd_pengumuman = {legal – char }9 Judul = {legal – char }100
Isi = {text}
Tgl_pengumuman = {date }8 Kd_mtk = {legal – char }9 Seksi = {legal – char }3
Legal – char = [A-Z|a-z|0-9| ] Date = dd-mm-yyyy
dd = [ 0 – 31 ] mm = [ 0 – 12 ] yyyy = [ 0 – 9 ]4
vii. Kamus data untuk tabel Soal Tugas
Soal_tugas = kd_tugas + nama_tugas + deskripsi + tgl_tugas + file_tugas + kd_mtk + seksi)
Kd_tugas = {legal – char }13 Nama_tugas = {legal – char }100 Deskrpsi = {text }
Tgl_tugas = {date}8 File_tugas = {text } Kd_mtk = {legal – char }9 Seksi = {legal – char }3 Legal – char = [A-Z|a-z|0-9| ]
Date = dd-mm-yyyy dd = [ 0 – 31 ] mm = [ 0 – 12 ] yyyy = [ 0 – 9 ]4
viii. Kamus data untuk tabel Pengumuman sekretariat
Pengumuman_sekre = id_pengumuman + judul + isi + tanggal id_pengumuman = {legal – char }10
judul = {legal – char }50 isi = {Text }
tanggal = {date }8
Legal – char = [A-Z|a-z|0-9| ] Date = dd-mm-yyyy
dd = [ 0 – 31 ] mm = [ 0 – 12 ] yyyy = [ 0 – 9 ]4
ix. Kamus data untuk tabel Sekretariat Sekretariat = nip + nama + password npp = {legal – char }6
nama = {legal – char }100 password = {legal – char }10 Legal – char = [A-Z|a-z|0-9| ]
x. Kamus data untuk Dosen Dosen = npp + nama Npp = {legal – char }9 Nama = {legal – char }40 Legal – char = [A-Z|a-z|0-9| ]
xi. Kamus data untuk Jadwal Jw = kd_mtk + npp + seksi Kd_mtk = {legal – char }9 Npp = {legal – char }8 Seksi = {legal – char }3
Legal – char = [A-Z|a-z|0-9| ]
xii.Kamus data untuk Krs
Krs = nomor_mhs + kd_mtk + seksi + nilai Nomor_mhs = {legal – char }12
Kd_mtk = {legal – char }9 Seksi = {legal – char }3 Nilai = {char }1
Legal – char = [A-Z|a-z|0-9| ]
xiii. Kamus data untuk Mahasiswa Mhs = npp + nama
Nomor_mhs = {legal – char }9 Nama_mhs = {legal – char }40 Legal – char = [A-Z|a-z|0-9| ]
xiv. Kamus data untuk Matakuliah Mtk = kd_mtk + nama_mtk + sks Kd_mtk = {legal – char }9 Nama_mtk = {legal – char }30 Sks= {integer }2
Legal – char = [A-Z|a-z|0-9| ]
xv. Kamus data untuk Sandi Dosen Sandi_dosen = npp + sandi
npp = {legal – char }9 sandi = {legal – char }10 Legal – char = [A-Z|a-z|0-9| ]
xvi. Kamus data untuk Sandi mahasiswa Sandi_mhs = nomor_mhs + sandi Nomor_mhs = {legal – char }9 sandi = {legal – char }10 Legal – char = [A-Z|a-z|0-9| ]
f. Integritas basis data
i. Aturan integritas entitas
Penentuan kunci utama dan kunci tamu untuk setiap entitas dari basis data dapat dilihat di tabel berikut ini :
Tabel 3.1 Aturan integritas entitas
No Nama Tabel Kunci Utama Kunci tamu
1 Admin Nama_admin -
2 Anggota Nama_user -
3 Bahan Kuliah Kd_bahan Kd_mtk
4 Detail_mtk Kd_mtk -
5 Kumpul Tugas Kd_kumpul Kd_tugas, Nomor_mhs 6 Pengumuman Kd_pengumuman Kd_mtk, seksi
7 Soal_tugas Kd_tugas Kd_mtk, seksi
8 View_dosen Npp - 9 View_jw Kd_mtk, npp 10 View_krs Nomor_mhs, Kd_mtk, Seksi 11 View_mhs Nomor_mhs - 12 View_mtk Kd_mtk - 13 View_sandi_dosen Npp 14 View_sandi_mhs Nomor_mhs 15 Sekretariat Npp - 16 Pengumuman_sekre Id_pengumuman -
ii. Aturan Domain
Domain merupakan kumpulan tipe data dan jangkauan nilai yang diperbolehkan pada atribut semua relasi atau entitas. Domain dari sebuah atribut mencakup tipe data, panjang format, jangkauan, nilai yang memungkinkan, dan kemungkinan data null. Berikut adalah aturan domain dari setiap atribut entitas yang terdapat pada basis data sesuai dengan ERD diatas.
Tabel 3.2 aturan domain untuk tabel Admin
Nama Field Tipe data
Ukuran Unik Null Nama_admin Varchar 10 Ya Tidak
Passwd Varchar 10 Tidak Tidak
Tabel 3.3 Aturan domain untuk tabel Anggota
Nama Field Tipe data
Ukuran Unik Null Nama_user Varchar 30 Ya Tidak Nama_lengkapVarchar 100 Tidak Tidak Email Varchar 50 Tidak Tidak
Passwd Varchar 10 Tidak Tidak
Tempat_lahir Varchar 100 Tidak Tidak
Tgl_lahir Date 8 Tidak Tidak
Alamat Varchar 100 Tidak Tidak
Jk Varchar 9 Tidak Tidak
Tgl_daftar Date 8 Tidak Tidak
Tabel 3.4 Aturan domain untuk table Dosen
Nama Field Tipe data
Ukuran Unik Null
Npp Varchar 9 Ya Tidak
Nama Varchar 40 Tidak Tidak
Tabel 3.5 Aturan domain untuk tabel Mahasiswa
Nama Field Tipe data
Ukuran Unik Null Nomor_mhsVarchar 9 Ya Tidak
Nama Varchar 40 Tidak Tidak
Tabel 3.6 Aturan domain untuk table detail matakuliah
Nama Field Tipe data
Ukuran Unik Null Kd_mtk Varchar 9 Ya Tidak
Silabus Text Tidak Tidak
Deskripsi Text Tidak Tidak
Tujuan Text Tidak Tidak
Kepustakaan Text Tidak Tidak
Tabel 3.7 Aturan domain untuk tabel bahan kuliah
Nama Field Tipe data
Ukuran Unik Null Kd_bahan Varchar 12 Ya Tidak Nama_bahan Varchar 100 Tidak Tidak
Deskripsi Text Tidak Tidak
File_bahan Text Tidak Tidak
Tabel 3.8 Aturan domain untuk table Krs
Nama Field Tipe data
Ukuran Unik Null Nomor_mhsVarchar 12 Ya Tidak Kd_mtk Varchar 9 Tidak Tidak
Nilai Float Tidak Tidak
Tabel 3.9 Aturan domain untuk tabel Soal tugas
Nama Field Tipe data Ukuran Unik Null Kd_tugas Varchar 13 Ya Tidak Nama_tugas Varchar 100 Tidak Tidak
Deskripsi Text Tidak Tidak
Tgl_tugas Date 8 Tidak Tidak
File_soal Text Tidak Tidak
Kd_mtk Varchar 9 Tidak Tidak
Tabel 3.10 Aturan domain untuk tabel Kumpul tugas
Nama Field Tipe data
Ukuran Unik Null Kd_kumpul Varchar 16 Ya Tidak Nomor_mhs Varchar 9 Tidak Tidak Kd_tugas Varchar 13 Tidak Tidak
File_tugas Text Tidak Tidak
Tgl_kumpul Date 8 Tidak Tidak
Nilai Float Tidak Tidak
Tabel 3.11 Aturan domian untuk tabel pengumuman
Nama Field Tipe data
Ukuran Unik Null Kd_pengumuman Varchar 10 Ya Tidak
Judul Varchar 100 Tidak Tidak
Isi Text Tidak Tidak
Tgl_pengumuman Date 8 Tidak Tidak
Tabel 3.12 Aturan domain untuk tabel pengumuman_sekre
Nama Field Tipe data Ukuran Unik Null Id_pengumuman Varchar 9 Ya Tidak
Judul Varchar 100 Tidak Tidak
Isi Text Tidak Tidak
Tanggal Date 8 Tidak Tidak
Tabel 3.13 Aturan domain untuk tabel sekretariat
Nama Field Tipe data
Ukuran Unik Null
Npp Varchar 6 Ya Tidak
Nama Varchar 100 Tidak Tidak
Password Varchar 10 Tidak Tidak
Tabel 3.14 Aturan domain untuk tabel Jw
Nama Field Tipe data
Ukuran Unik Null
Kd_mtk Varchar 9 Ya Tidak
Npp Varchar 8 Tidak Tidak
Seksi Varchar 3 Tidak Tidak
Tabel 3.15 Aturan domain untuk tabel Mtk
Nama Field Tipe data
Ukuran Unik Null
Kd_mtk Varchar 9 Ya Tidak
Nama_mtk Varchar 30 Tidak Tidak
Sks Varchar 2 Tidak Tidak
Tabel 3.16 Aturan domain untuk tabel Sandi Dosen
Nama Field Tipe data
Ukuran Unik Null
Npp Varchar 9 Ya Tidak
Tabel 3.17 Aturan domain untuk tabel Sandi Mahasiswa
Nama Field Tipe data
Ukuran Unik Null
Nomor_mhs Varchar 9 Ya Tidak Sandi Varchar 10 Ya Tidak