BAB III ANALISIS DAN PERANCANGAN
B. Perancangan Sistem
4. Perancangan Basis Data
a. Diagram ER (Entitas Relationship) i. ER untuk webtemplateprovider
hotel kelola anggota
admin buku tamu adminmenu menu navigasi id_p nama id menu url id menu url password level tgl_daftar id nama email tanggal nama email alamat_hotel kota aktivasi nama_hotel id level password alamat komentar respon id 1 1
Gambar 3.20 Diagram ER Provider
Terdapat 6 entitas dalam diagram di atas namun hanya dua entitas yang saling berelasi, yaitu entitas hotel dan anggota. Satu hotel dikelola oleh satu anggota atau satu anggota mengelola satu hotel
ii. ER untuk template hotel
menu pun sub menu
id_parent id ya 1 N banner galeri adminmenu footer id menu url id konten subject_ submenu url id gambar id judul subject_ menu url konten gambar halaman punya punya judul konten id_halaman gambar user id email level password user header id warna judul
slogan sloganwarna judul buku tamu respon alamat nama email komentar id tanggal 1 1 1 1 konten
Gambar 3.21 Diagram ER Template hotel
Terdapat 10 entitas dalam diagram di atas namun hanya tiga entitas yang saling berelasi, yaitu entitas menu, submenu, dan halaman. Satu menu mempunyai banyak submenu, satu halaman mempunyai banyak submenu, dan satu menu mempunyai satu halaman.
b. Mapping
i. Basis data milik provider
Relasional antara entitas hotel dan anggota memiliki kardinalitas 1 to 1, maka salah satu key dari entitas bisa menjadi foreign key dari entitas lain. Garis putus-putus di bawah menandakan kunci asing atau foreign key.
Hotel (id, nama_hotel, alamat_hotel, kota, id_p) Admin ( id, nama, email, password, level ) Adminmenu (id, menu, url)
Anggota (id_p, nama, password, level, tgl_daftar)
Buku tamu (id, tanggal, nama, email, alamat, komentar, respon) Menu navigasi (id, menu, url)
ii. Basis data milik template hotel
Relasi antara entitas menu dan submenu memiliki kardinalitas 1 to N, maka key dari entitas menu menjadi foreign key pada entitas submenu.
Relasi antara entitas submenu dan halaman memiliki kardinalitas 1 to 1, hal ini berarti key dari salah satu entitas menjadi foreign key pada entitas yang lain, dalam hal ini key
dari entitas halaman menjadi foreign key entitas submenu . Submenu (id, subject_submenu, url, id_parent, id_halaman)
Relasi antara entitas menu dan halaman memiliki kardinalitas 1 to 1, hal ini berarti key dari salah satu entitas menjadi foreign key pada entitas yang lain, dalam hal ini key dari entitas halaman menjadi foreign key entitas menu .
Menu (id_parent, subject_menu, url, id_halaman)
User (id, user, email, password, level)
Header (id, judul, warna_judul, slogan, warna_slogan,konten) Banner (id, gambar)
Halaman (id_halaman, judul, gambar, konten)
Buku tamu (id, tanggal, nama, email, alamat, komentar, respon) Galeri (id, judul, gambar, konten)
Footer(id, konten)
Adminmenu (id, menu, url)
Keterangan atribut yang digaris bawah:
adalah atribut yang berfungsi sebagai primary key
Keterangan :
id : muncul secara otomatis oleh sistem, karena bersifat autoincrement, untuk membedakan atribut yang satu dengan lainnya.
id_p : id milik anggota.
id_parent : atribut untuk membedakan menu, bersifat
autoincrement.
nama : nama administrator pada entitas admin, nama anggota pada entitas anggota dan nama pengunjung pada entitas buku tamu
user : nama user.
email : email administrator pada entitas admin, email user pada entitas user, email pengunjung pada entitas buku tamu.
password : password milik administrator pada entitas
admin, password anggota pada entitas anggota, dan password user pada entitas
user
subject_menu : judul menu subject_submenu : judul submenu
menu : nama menu pada entitas adminmenu dan menunavigasi
url : alamat untuk menghubungkan antar halaman website.
level : jenjang user dibedakan berdasarkan hak yang diperoleh, 1 untuk administrator dan 2 untuk anggota.
nama_hotel : nama hotel yang akan dibuat web hotel alamat_hotel : alamat hotel
kota : kota hotel
judul : judul galeri untuk atribut galeri, judul header untuk atribut header, dan judul halaman untuk atribut halaman.
konten : isi dari atribut (galeri, halaman, header dan footer), bersifat konsisten atau sama disetiap halaman web.
gambar : foto atau gambar.
alamat : alamat pengunjung yang mengisi buku tamu.
komentar : komentar pengunjung saat mengisi buku tamu
respon : tanggapan yang diberikan oleh administrator terhadap komentar yang diberikan oleh pengunjung.
c. Normalisasi
Bentuk Normalisasi tabel-tabel di atas adalah sebagai berikut: i. Bentuk Normal Tahap 1
Terpenuhi, karena semua tabel tidak memiliki atribut bernilai banyak (multivalued attribute).
ii. Bentuk Normal Tahap 2
Terpenuhi, karena sudah memenuhi kriteria bentuk normal yang pertama dan semua atribut yang bukan merupakan key
primer memiliki ketergantungan sepenuhnya pada key
primer.
iii. Bentuk Normal Tahap 3 :
Terpenuhi, karena sudah memenuhi kriteria bentuk normal yang kedua dan semua atribut non key primer tidak memiliki ketergantungan kepada atribut non key primer yang lain.
d. Kamus data
integer = [0|1|2|3|4|5|6|7|8|9] varchar = [A-Z | a-z | 0-9| ‘ ‘ | / | . ] longtext = [A-Z | a-z | 0-9| ‘ ‘ | / | . ] text = [A-Z | a-z | 0-9| ‘ ‘ | / | . ]
Admin = id + nama + email + password + level id = integer nama = {varchar}20 email = {varchar}40 password = {varchar}32 level = integer
Admin menu = id + menu + url
id = integer
menu = {varchar}30 url = {varchar}60
Anggota = id_p + nama + password + level + tgl_daftar id_p = integer nama = {varchar}20 password = {varchar}10 level = varchar tgl_daftar = {varchar}12
Buku tamu = id + tanggal + nama + email + alamat + komentar + respon id = integer tanggal = {varchar}12 nama = {varchar}50 email = {varchar}60 alamat = text komentar = text respon = text
Hotel = id + nama_hotel + alamat_hotel + kota + id_p + aktivasi id = integer nama_hotel = {varchar}50 alamat_hotel = {varchar}50 kota = {varchar}20 id_p = integer
aktivasi = enum (‘true’,’false’)
Menu navigasi = id + menu + url id = integer
menu = {varchar}30 url = {varchar}60
Banner = id + gambar id = integer gambar = {varchar}30 Footer = id + konten id = integer konten = longtext
Galeri = id + judul + konten + gambar
id = integer
judul = {varchar}30 konten = longtext gambar = {varchar}30
Halaman = id_halaman + judul + konten + gambar id_halaman = integer
judul = {varchar}80
konten = longtext
Header = id + judul + warna_judul + slogan + warna_slogan + konten id_parent = integer judul = {varchar}50 warna_judul = {varchar}50 slogan = longtext warna_slogan = {varchar}50 konten = longtext
Menu = id_parent + subject_menu + url + id_halaman
id_parent = integer subject_menu = {varchar}50 url = {varchar}20 id_halaman = integer
Submenu = id + subject_submenu + url + id_parent + id_halaman id = integer subject_submenu = {varchar}50 url = {varchar}20 id_parent = integer id_halaman = integer
User = id + nama + password + level id = integer
nama = {varchar}20
password = {varchar}32 level = varchar