Post on 28-Mar-2019
99
BAB IV
PERANCANGAN SISTEM BASIS DATA
4.1 Perancangan Sistem Basis Data
Perancangan basis data yang dirancangan untuk aplikasi website “MENU
MAKANAN SEHAT”
1. Perancangan basis data konseptual (conceptual database design).
2. Perancangan basis data logical (logical database design).
3. Perancangan basis data fisikal (physical database design).
4.1.1 Perancangan Basis Data Konseptual
Perancangan konseptual perlu dilakukan disamping perancangan
basic data logical dan fisikal. Perancangan konseptual akan menunjukan
entitas dan relasinya berdasarkan proses yang akan dirancang dari data
yang diberikan perusahaan. Data yang ada akan dikembangkan dengan
representasi secara konseptual yang mencakup :
1. Mengidentifikasi tipe entitas.
2. Mengidentifikasi tipe relationship.
3. Mengidentifikasi dan mengasosiasikan atribut sesuai dengan tipe
entitas dan relationship.
4. Menentukan domain atribut.
5. Menentukan atribut candidate key dan Primary key.
6. Mempertimbangkan penggunaan konsep EERD
100
7. Memeriksa model terhadap redudansi.
8. Me-review model data konseptual local terhadap kebutuhan user.
4.1.1.1 Mengidentifikasi Tipe Entitas
Tahap pertama adalah mengidentifikasi jenis entitas.
Mengidentifikasi dapat dilakukan dengan cara memeriksa
spesifikasi kebutuhan dari pengguna. entitas utama yang
dibutuhkan terkait dengan sistem.
101
Nama Entitas Deskripsi Kejadian
Member
Entitas yang berisi informasi user yang
sudah menjadi member
Setiap member dapat melakukan
kegiatan seperti upload
resep,video,tips,dan pembelian barang
Admin
Entitas yang berisi
informasi kegiatan admin
Admin dapat melakukan upload
tips, info, resep, video,dan dapat
melakukan delete member.
Buku
Entitas yang berisi informasi buku yang
dijual
Setiap buku akan dilakukan pembaruan
dalam jumlah quantity, harga, dan
diskon.
InfoKesehatan
Entitas yang berisi informasi tentang
artikel kesehatan
Setiap artikel mempunyai ID dan
artikel dibuat hanya dibuat oleh admin
namun dapat dilihat oleh member dan
non member.
Promo
Entitas yang berisi informasi tentang
promo atau diskon pada setiap tempat
makan
Setiap tempat makan dapat melakukan
promo.
Berita
Entitas yang berisi informasi berita
kesehatan
Hanya admin yang dapat melakukan
upload berita .
Tips
Entitas yang berisi informasi tips
kesehatan
Hanya admin yang dapat melakukan
upload tips.
Resep Entitas yang berisi informasi resep Setiap member dapat melakukan
102
Tabel 4.1 Tabel Tipe Entitas
kesehatan upload resep, admin dapat melakukan
delete dan edit resep dan insert.
Video
Entitas yang berisi informasi video
tutorial resep kesehatan
Admin dapat melakukan delete dan edit
video dan juga insert.
Pesan
Entitas yang berisi informasi tentang
pesanan member
Setiap member dapat melakukan lebih
dari satu kali pemesanan.
TarifKirim
Entitas yang berisi informasi yang
berisi harga ongkos kirim tiap kota
Pada entitas ini memberikan informasi
detail tentang tarif barang antar kota
untuk mempermudah admin dalam
mengirimkan barang.
Feedback
Entitas yang berisi informasi kritik dan
saran dari peserta
Pada entitas ini menyimpan informasi
kritik dan saran dari peserta.
Foto Entitas ini berisi semua foto-foto
Pada entitas ini menyimpan semua foto
yang ada didalam website.
103
4.1.1.2 Mengidentifikasi Tipe Relationship
Mengidentifikasi tipe relationship bertujuan sebagai
mengidentifikasi hubungan-hubungan yang penting dan yang
terdapat di tiap-tiap entitas.
Langkah-langkah penting dalam identifikasi tipe relational adalah
1. Membuat ERD
2. Menentukan pembatas multiplicity dari tipe relational
Nama Entity Multipl
icity
Relationship Multipl
icity
Nama entity
Member 1..* Memberikan 1..1 Feedback
1..* Memasukan 1..* Resep
1..1 Melakukan 1..* Pesan
Admin 1..* Memperbaruhi 1..1 Buku
1..* Memasukan 1..* Resep
1..* Mengunggah 1..1 Video
1..* Memasukan 1..1 Tips
1..* Memasukan 1..1 Berita
104
1..* Memasukan 1..1 Info
1..* Mengisi 1..1 Promo
1..* Memperbaruhi 1..1 TarifKirim
Pesan 1..* Dilakukan 1..1 Member
1..1 Memiliki 1..* TarifKirim
1..* Memiliki 1..1 Buku
TarifKirim 1..* Dimiliki 1..1 Pesan
1..1 Diperbaruhi 1..* Admin
Buku 1..1 Diperbaruhi 1...* Admin
1..1 Dimiliki 1..* Pesan
Resep 1..* Dimasukan 1..* Member
1..* Dimasukan 1..* Admin
Video 1..1 Diunggah 1..* Admin
Tips 1..1 Dimasukan 1..* Admin
Berita 1..1 Dimasukan 1..* Admin
Info 1..1 Dimasukan 1..* Admin
106
4.1.1.3 Mengidentifikasi Atribut tiap Entitas
Pada sub bab ini akan ditentukan atribut tiap entitas, tipe
data, dan panjangnya. Berikut ini merupakan tabel yang
menggambarkan atribut dari entity.
Nama
Entity
Atribut Deskripsi Tipe data
dan
panjangnya
Null Multi-
Valued
Admin IdAdmin Admin ID Int(10) No No
Username Nama Admin Varchar(50) No No
Password Password
admin
Varchar(7) No No
Buku IdBuku Buku ID Int(10) No No
IdAdmin Admin ID Int(10) No No
IdKategoriBuku Kategori Buku
ID
Int(10) No No
NamaBuku Nama buku Varchar(50) No No
NamaKategoriBuku Nama kategori
buku
Varchar(50) No No
Harga Harga buku Bigint No No
Stok Stok buku Int(50) No No
IdPenerbit Penerbit ID Int(10) No No
NamaPenerbit Nama Penerbit Varchar(50) No No
107
IdPengarang Pengarang ID Int(10) No No
NamaPengarang Nama
Pengarang
Varchar(50) No No
Berita IdBerita Berita ID Int(10) No No
IdAdmin Admin ID Int(10) No No
JudulBerita Judul berita Varchar(50) No No
IsiBerita Isi berita Longtext No No
Foto Foto Varchar (50) No No
FeedBack IdFeedBack Feedback ID Int(10) No No
IdMember Member ID Int(10) No No
Username Nama user Varchar(50) No No
Komentar Komentar
member
Longtext No No
Info IdInfo Info ID Int(10) No No
IdAdmin Admin ID Int(10) No No
JudulInfo Judul info Varchar(50) No No
IsiInfo Isi info Longtext No No
Foto Foto Varchar (50) No No
Member IdMember Member ID Int(10) No No
Username Nama user Varchar(50) No No
Password Password
member
Varchar(7) No No
108
ConfPass Confrim
Password
Member
Varchar(7) No No
Phone Nomor
telephone user
Int(15) No Yes
Alamat Alamat
member
Varchar(50) No No
Foto Foto Varchar(50) No No
Email Email member Varchar(50) No No
Gender Jenis Kelamin ENUM
(‘F’,’M’)
No No
Kota Kota tempat
tinggal ember
Varchar(50) No No
KodePost Kode Post
member
Int(15) No No
IdCaptcha Captcha ID Int(10) No No
CaptchaTime Captcha Time Int(15) No No
IpAddress IP Address Varchar(20) No No
Word Word Varchar(50) No No
Tarif
Kirim
IdTarif
Kirim
Tarif kirim ID Int(10) No No
IdAdmin Admin ID Int(10) No No
109
Kota Nama kota Varchar(50) No No
KodePost Kode Pos Char(15) No No
Harga Harga kirim Bigint No No
Lama Lama
pengiriman
DATE No No
Pesan IdPesan Pesan ID Int(10) No No
IdMember Member ID Int(10) No No
IdBuku Buku ID Int(10) No No
IdTarifKirim Tarif Kirim ID Int(10) No No
Username Nama member Varchar(50) No No
Alamat
Alamat
member
Varchar(50) No No
Phone Nomor
telephone
member
Int(15) No Yes
HargaTotal Hasil
perkalian dari
quantity(qty)
dengan harga
Bigint No No
Total
Pembayaran
Total
Pembayaran
Bigint No No
TanggalPesan Tanggal DATE No No
110
Pemesanan
KodePembayaran Nomor
pembayaran
Int(10) No No
TanggalPembayaran
Tanggal
Pembayaran
DATE No No
KodePost Kode Pos Int(15) No No
NamaBuku
Nama buku Varchar(50) No No
Qty Jumlah buku
yang dibeli
Int(50) No No
harga
Harga tiap
buku
Bigint No No
diskon
Diskon dari
seluruh total
pembayaran
Tinyint No No
Status Status dari
pesanan
Varchar(50) No No
Promo IdPromo Promo ID Int(10) No No
IdAdmin Int(10) No No
IdNama
TempatMakan
Nama tempat
makan ID
Int(10) No No
NamaPromo Nama Promo Varchar(50) No No
111
DeskripsiPromo Deskripsi dari
promo
Longtext No No
NamaTempatMakan Nama tempat
makan
Varchar(50) No No
Harga Harga Tempat
makan
Bigint No No
Diskon Diskon
Tempat makan
Tinyint No No
Deskripsi Keterangan
promo tempat
makan
Longtext No No
TanggalDiskon Tanggal
Diskon
Date No No
Resep IdResep Resep ID Int(10) No No
IdAdmin Admin ID Int(10) No No
IdMember Member ID Int(10) No No
NamaResep ResepNama Varchar(50) No No
IsiResep Deksripsi
Resep
Longtext No No
Foto Foto Varchar(50) No No
IdKategori
Resep
Kategori
Resep ID
Int(10) No No
112
Tabel 4.3 Atribut tiap Entitas
NamaKategoriResep Nama
Kategori
Resep
Varchar(50) No No
Tips IdTips Tips ID Int(10) No No
IdAdmin Admin ID Int(10) No No
JudulTips Judul tips Varchar(50) No No
Foto Foto Varchar(50) No No
IsiTips Isi tips Longtext No No
Video IdVideo Video ID Int(10) No No
IdKategori
Video
Kategori video
ID
Int(10) No No
IdAdmin Admin ID Int(10) No No
JudulVideo Judul Video Varchar(50) No No
NamaKategoriVideo Nama kategori
video
Varchar(50) No No
Deskripsi Deskripsi
Video
Longtext No No
113
4.1.1.4 Menentukan Domain Atribut
Pada tahap ini ditentukan nilai-nilai legal dari tiap
atribut. Nilai tesebut dapat dilihat pada tabel berikut ini :
Name
Entity
Atribut Domain Atrribute
Admin IdAdmin Berupa integer, dengan auto-incremeant
Username Berupa variant karakter dengan
maksimal 50 karakter
Password Berupa variant karakter dengan
maksimal 7 karakter
Buku IdBuku Berupa integer, dengan auto-incremeant
IdAdmin Berupa integer, dengan auto-incremeant
IdKategoriBuku Berupa integer, dengan auto-incremeant
NamaBuku Berupa variant karakter dengan
maksimal 50 karakter
NamaKategoriBuku Berupa variant karakter dengan
maksimal 50 karakter
Harga Berupa angka
Stok Berupa angka
IdPenerbit Berupa integer, dengan auto-incremeant
NamaPenerbit Berupa variant karakter dengan
114
maksimal 50 karakter
IdPengarang Berupa integer, dengan auto-incremeant
NamaPengarang Berupa variant karakter dengan
maksimal 50 karakter
Berita IdBerita Berupa integer, dengan auto-incremeant
IdAdmin Berupa integer, dengan auto-incremeant
JudulBerita Berupa variant karakter dengan
maksimal 50 karakter
IsiBerita Berupa text
Foto Berupa variant karakter dengan
maksimal 50 karakter
FeedBack IdFeedBack Berupa integer, dengan auto-incremeant
IdMember Berupa integer, dengan auto-incremeant
Username Berupa variant karakter dengan
maksimal 50 karakter
Komentar Berupa text
Info IdInfo Berupa integer, dengan auto-incremeant
IdAdmin Berupa integer, dengan auto-incremeant
JudulInfo Berupa variant karakter dengan
maksimal 50 karakter
IsiInfo Berupa text
Foto Berupa variant karakter dengan
115
maksimal 50 karakter
Member IdMember Berupa integer, dengan auto-incremeant
IdRegistrasi Berupa integer, dengan auto-incremeant
IdCaptcha Berupa integer, dengan auto-incremeant
Username Berupa variant karakter dengan
maksimal 50 karakter
Password Berupa variant karakter dengan
maksimal 7 karakter
Phone Berupa angka
Alamat Berupa variant karakter dengan
maksimal 50 karakter
Foto Berupa variant karakter dengan
maksimal 50 karakter
Email Berupa variant karakter dengan
maksimal 50 karakter termasuk ”@”,”.”
Gender Berupa pilihan antara “Female(F)” atau
“Male(M)”
MyHealty Berupa text
CaptchaTime Berupa integer dengan maksimal 15
karakter
IpAddress Berupa variant karakter dengan
maksimal 20 karakter
116
Word Berupa variant karakter dengan
maksimal 50 karakter
Tarif
Kirim
IdTarif
Kirim
Berupa integer, dengan auto-incremeant
IdAdmin Berupa integer, dengan auto-incremeant
Kota Berupa variant karakter dengan
maksimal 50 karakter
KodePost Berupa integer karakter dengan
maksimal 15 karakter
Harga Berupa angka
Lama Berupa variant karakter dengan
maksimal 50 karakter
Pesan IdPesan Berupa integer, dengan auto-incremeant
IdMember Berupa integer, dengan auto-incremeant
IdBuku Berupa integer, dengan auto-incremeant
IdTarifKirim Berupa integer, dengan auto-incremeant
Username Berupa variant karakter dengan
maksimal 50 karakter
Alamat
Berupa variant karakter dengan
maksimal 50 karakter
Phone Berupa interger karakter dengan
maksimal 15 karakter
117
HargaTotal Berupa angka
Total
Pembayaran
Berupa angka
TanggalPesan Berupa tanggal (DD/MM/YYYY)
KodePembayaran Berupa integer, dengan auto-incremeant
TanggalPembayaran
Berupa tanggal (DD/MM/YYYY)
KodePost Berupa interger karakter dengan
maksimal 15 karakter
NamaBuku
Berupa variant karakter dengan
maksimal 50 karakter
Qty
Berupa interger karakter dengan
maksimal 50 karakter
harga
Berupa angka
diskon
Berupa angka
status Berupa variant karakter dengan
maksimal 50 karakter
Promo IdPromo Berupa integer, dengan auto-incremeant
IdAdmin Berupa integer, dengan auto-incremeant
118
IdNama
TempatMakan
Berupa integer, dengan auto-incremeant
NamaPromo Berupa variant karakter dengan
maksimal 50 karakter
DeskripsiPromo Berupa text
NamaTempatMakan Berupa variant karakter dengan
maksimal 50 karakter
Harga Berupa angka
Diskon Berupa angka
DeskripsiTempatMakan Berupa variant karakter dengan
maksimal 50 karakter
Resep IdResep Berupa integer, dengan auto-incremeant
IdAdmin Berupa integer, dengan auto-incremeant
IdMember Berupa integer, dengan auto-increament
NamaResep Berupa variant karakter dengan
maksimal 50 karakter
IsiResep Berupa text
Foto Berupa integer, dengan auto-incremeant
IdKategori
Resep
Berupa integer, dengan auto-incremeant
NamaKategoriResep Berupa variant karakter dengan
maksimal 50 karakter
119
Tips IdTips Berupa integer, dengan auto-incremeant
IdAdmin Berupa integer, dengan auto-incremeant
JudulTips Berupa variant karakter dengan
maksimal 50 karakter
IsiTips Berupa text
Foto Berupa variant karakter dengan
maksimal 50 karakter
Video IdVideo Berupa integer, dengan auto-incremeant
IdKategori
Video
Berupa integer, dengan auto-incremeant
IdAdmin Berupa integer, dengan auto-incremeant
JudulVideo Berupa variant karakter dengan
maksimal 50 karakter
NamaKategoriVideo Berupa variant karakter dengan
maksimal 50 karakter
Deskripsi Berupa text
Tabel 4.4 Domain Atribut
120
4.1.1.5 Menentukan Candidate Key dan Primary key
Tujuan dari sub bab ini adalah untuk mengidentifikasi
Candidate key dari setiap entitas dan jika memang terdapat lebih
dari satu candidate key, pilihlah salah stau untuk menjadi
Primary key.
Nama Entity Candidate key Primary key
Admin IdAdmin IdAdmin
Username
Buku IdBuku IdBuku
IdAdmin
IdKategoriBuku
NamaBuku
NamaKategoriBuku
IdPenerbit
IdPengarang
Berita IdBerita IdBerita
IdAdmin
JudulBerita
FeedBack IdFeedBack IdFeedback
IdMember
Username
Info IdInfo IdInfo
121
IdAdmin
JudulInfo
Member IdMember IdMember
IdRegistrasi
IdCaptcha
Username
Tarif
Kirim
IdTarif
Kirim
IdTarifKirim
IdAdmin
Kota
Pesan IdPesan-IdBuku IdPesan-IdBuku
IdPesan-IdMember
IdPesan-Telp
IdPesan-
IdTarifKirim
IdPesan-Username
IdPesan-
KodePembayaran
Promo IdPromo IdPromo
IdAdmin
IdNamaTempatMakan
NamaPromo
122
Resep IdResep IdResep
IdAdmin
IdMember
IdKategoriResep
NamaResep
Tips IdTips IdTips
IdAdmin
JudulTips
Video IdVideo IdVideo
IdKategori
Video
IdAdmin
JudulVideo
Tabel 4.5 Indetifikasi candidate key dan Primary key.
123
Admin
IdAdmin
Member
IdMember
Pesan
- IdPesan
- IdBuku
feedback
IdFeedBack
memberi
1..*
1..1melakukan
1..*
1..*
Resep
IdResep
memasukan
memasukan
1..*
1..*
1..*1..*
Video
IdVideo
Buku
IdBuku
TarifKirim
IdTarifKirim
memiliki1..*
1..*
memiliki1..*
1..1
memasukan
1..1
1..*
memperbaruhi1..1
1..*
Berita
IdBerita
Info
IdInfo
Tips
IdTips
Promo
IdPromo
mengunggah
1..*
1..1
memasukan
1..1
1..* memasukan
1..*
1..1
memasukan
1..*
memasukan
1..*
1..1
1..*1..*
1..*
Gambar 4.2 Model Konseptual dengan Primary key
4.1.1.6 Pertimbangan Penggunaan EERD (Optional)
Pada tahap ini bertujuan untuk mempertimbangkan penggunaan
model Enhanced Relationship Diagram dimana dalam ini memiliki 3
konsep yaitu specialization-generalization, aggregation, dan
composition. Pada ERD yang dibuat tidak tedapat 3 konsep utama
tersebut maka tahap ini tidak perlu dilakukan.
124
4.1.1.7 Cek Model Terhadap Redudansi
Pada tahap ini digunakan untuk melakukan pemerikasaan apakah
terdapat redudansi dalam model basis data, langkah ini bertujuan untuk
menghindari dua entitas yang memiliki object yang sama sehingga kedua
entitas itu harus digabungkan menjadi satu. Dari pemeriksaan ulang yang
dilakukan terhadap relasi one-to-one tidak ditemukan adanya redudansi,
sehingga tidak diperlukan penghilangan relasi yang redudansi.
4.1.1.8 Validasi Model Konseptual dengan Transaksi User
Untuk memastikan rancangan konseptual dari basis data ynag
dibangun sesuai dengan transaksi yang dibutuhkan pengguna maka
digunakan dua buah pendekatan :
• Mendeskripsikan transaksi
• Menggambarkan panah transaksi pada ERD
Adapun transaksi-transaksinya adalah sebagai berikut
a. Admin memasukan data buku
b. Admin memasukan data resep
c. Admin memasukan data video
d. Admin memasukan data promo
e. Admin memasukan info
f. Admin memasukan berita
g. Admin memasukan tips
125
h. Memperbaruhi data tarif kirim barang
i. Member melakukan upload resep
j. Member melakukan pemesanan barang
k. Dapatkan data tarif kirim barang untuk melakukan pengiriman barang
l. Member memberikan feedback
m. Pesan memiliki data buku
Gambar 4.3 Validasi Model Konseptual dengan Transaksi User
126
4.1.2 Perancangan Basis Data Logical
4.1.2.1 Hilangkan fitur-fitur yang tidak Kompatibel
Dalam menghilangkan fitur yang tidak kompatibel dengan model
relational maka langkah-langkah yang akan digunakan antara lain:
1. Menghilangkan many to many (*:*)
a. Hubungan many to many (*:*) Member dengan Resep
Gambar 4.4 menghilangkan (*:*) Member dengan Resep
b. Hubungan many to many (*:*) Admin dengan Resep
G
Gambar 4.5 menghilangkan (*:*) Admin dengan Resep
ResepMember
0..* 0..*
ResepMember
0..* 0..*
Detail_Resep
Id_Kategori_Resep1..1 1..1
AdminResep
1..*1..*
Detail_Resep
Id_Kategori_Resep1..1 1..1
127
2. Menghilangkan attribute Multivalue
Tidak terdapat attribute Multivalue dalam tabel “menu
makanan sehat”.
4.1.2.2 Bentuk Tabel atau Relasi untuk Model Data Logikal
4.1.2.2.1 Identifikasi Strong Entity
1. Admin (IdAdmin, Password, Username)
Primary key : IdAdmin
2. Member (IdMember, Username, Password, Telp, AlamatMember, Foto,
MyHealty, gender, Kota, KodePost, IdCaptcha, CaptchaTime, IpAddress, Word)
Primary key : IdMember
3. Pesan (IdPesan, IdMember, IdBuku, IdTarifKirim, Username, Alamat, Telp,
TotalPembayaran, TanggalPesan, KodePembayaran, TanggalPembayaran,
NamaBuku, Qty, harga, diskon, status)
Primary key : IdPesan
4. Buku (IdBuku,IdAdmin, IdKategoriBuku, NamaBuku, NamaKategoriBuku,
Harga, Stock, Diskon, IdPenerbit, NamaPenerbit, IdPengarang, NamaPengarang)
Primary key : IdBuku
5. Resep (IdResep,IdAdmin, IdMember, NamaResep, NamaKategoriResep, Foto,
Deskripsi, IdKategoriResep)
Primary key : IdResep
6. Video (IdVideo, IdAdmin, JudulVideo, Deskripsi, IdKategoriVideo,
NamaKategoriVideo)
128
Primary key : IdVideo
7. Tarif Kirim Barang (IdTarifKirim, IdAdmin, Kota, KodePost, Harga, Lama)
Primary key : IdTarifKirim
8. Promo (IdPromo, IdAdmin, IdNamaTempatMakan, NamaPromo,
DeksripsiPromo, NamaTempatMakan, DeskripsiTempatMakan, Harga, Diskon,
TanggalDiskon)
Primary key : IdPromo
9. Tips (IdTips, IdAdmin, NamaTips, Foto, Deskripsi)
Primary key : IdTips
10. Berita (IdBerita, IdAdmin, JudulBerita, IsiBerita, Foto)
Primary key : IdBerita
11. Info (IdInfo, IdAdmin, Judul, IsiInfo, Foto)
Primary key : IdInfo
12. Feedback (IdFeedback, IdMember, Username, Komentar)
Primary key : IdFeedback
129
4.1.2.2.2 Identifikasi Weak Entity
Tidak terdapat weak entity dalam rancangan entity ini.
4.1.2.2.3 Relasi biner one to many (1:*)
a. Admin mengunggah Video
Admin (IdAdmin,
Password, Username)
Primary key : IdAdmin
Video (IdVideo, IdAdmin,
JudulVideo, Deskripsi,
IdKategoriVideo,NamaKateg
oriVideo)
Primary key : IdVideo
Foreign key : IdAdmin
b. Admin memasukan berita
Admin (IdAdmin,
Password, Username)
Primary key : IdAdmin
Berita (IdBerita, IdAdmin,
JudulBerita, IsiBerita, Foto)
Primary key : IdBerita
Foreign key : IdAdmin
c. Admin memasukan tips
Admin (IdAdmin,
Password, Username)
Tips (IdTips, IdAdmin,
NamaTips, Foto, Deskripsi)
130
Primary key : IdAdmin Primary key : IdTips
Foreign key : IdAdmin
d. Admin mengisi promo
Admin (IdAdmin,
Password, Username)
Primary key : IdAdmin
Promo (IdPromo, IdAdmin,
IdNamaTempatMakan,
NamaPromo, DeksripsiPromo,
NamaTempatMakan,
DeskripsiTempatMakan, Harga,
Diskon, TanggalDiskon)
Primary key : IdPromo
Foreign key : IdAdmin
e. Admin memperbaruhi buku
Admin (IdAdmin,
Password, Username)
Primary key : IdAdmin
Buku (IdBuku,IdAdmin,
IdKategoriBuku,
NamaBuku,
NamaKategoriBuku, Harga,
Stock, Diskon, IdPenerbit,
NamaPenerbit, IdPengarang,
NamaPengarang)
131
Primary key : IdBuku
Foreign key : IdAdmin
f. Admin memperbaruhi tarif kirim barang
Admin (IdAdmin,
Password, Username)
Primary key : IdAdmin
Tarif Kirim Barang
(IdTarifKirim, IdAdmin,
Kota, Harga, Lama)
Primary key : IdTarifKirim
Foreign key : IdAdmin
g. Admin memasukan info
Admin (IdAdmin,
Password, Username)
Primary key : IdAdmin
Info (IdInfo, IdAdmin, Judul,
IsiInfo, Foto)
Primary key : IdInfo
Foreign key : IdAdmin
132
h. Member memberikan Feedback
Member (IdMember,
Username, Password,
Telp, AlamatMember,
Foto, MyHealty, gender,
kota, kode pos, IdCaptcha)
Primary key : IdMember
Feedback (IdFeedback,
IdMember, Username,
Komentar)
Primary key : IdFeedback
Foreign key : IdMember
i. Buku dimiliki Pesan
Buku (IdBuku,IdAdmin,
IdKategoriBuku,
NamaBuku,
NamaKategoriBuku,
Harga, Stock, Diskon,
IdPenerbit, NamaPenerbit,
IdPengarang,
NamaPengarang)
Primary key : IdBuku
Pesan (IdPesan, IdMember,
IdBuku, IdTarifKirim,
Username, Alamat, Telp,
TotalPembayaran,
TanggalPesan,
KodePembayaran,
TanggalPembayaran,
NamaBuku, Qty, harga,
diskon, status)
Primary key : IdPesan
Foreign key : IdBuku
133
j. Member melakukan pesan
Member (IdMember,
Username, Password,
Telp, AlamatMember,
Foto, MyHealty, gender,
kota, kode pos, IdCaptcha)
Primary key : IdMember
Pesan (IdPesan, IdMember,
IdBuku, IdTarifKirim,
Username, Alamat, Telp,
TotalPembayaran,
TanggalPesan,
KodePembayaran,
TanggalPembayaran,
NamaBuku, Qty, harga,
diskon, status)
Primary key : IdPesan
Foreign key : IdMember
4.1.2.2.4 Relasi biner one to one (1:1)
Tidak terdapat relasi relasi one to one yang perlu
digabungkan agar basis sata menjadi lebih efektif dan efisien
4.1.2.2.5 Relasi biner many to many (*:*)
a. Admin mengunggah Resep
134
Admin (IdAdmin,
Password, Username)
Primary key : IdAdmin
Resep (IdResep, IdAdmin,
IdMember, NamaResep,
NamaKategoriResep, Foto,
Deskripsi, IdKategoriResep)
Primary key : IdResep
Foreign key : IdAdmin
Detail Resep (IdResep, IdAdmin, IdMember,
IdKategoriResep)
Primary key : (IdVideo, IdAdmin)
b. Member mengunggah Resep
Member (IdMember,
Username, Password,
Telp, AlamatMember,
Foto, MyHealty, gender,
KodePost, Kota,
IdCaptcha)
Primary key : IdMember
Resep (IdResep,IdAdmin,
IdMember, NamaResep,
NamaKategoriResep, Foto,
Deskripsi, IdKategoriResep)
Primary key : IdResep
Foreign Key : IdMember
135
Detail Resep (IdResep,IdMember,
IdMember,IdKategoriResep)
Primary key : (IdResep, IdMember)
c. Member melakukan Pesan
Member (IdMember,
Username, Password,
Telp, AlamatMember,
Foto, MyHealty, gender,
KodePost, Kota,
IdCaptcha)
Primary key : IdMember
Pesan (IdPesan, IdMember,
IdBuku, IdTarifKirim,
Username, Alamat, Telp,
HargaTotal,
TotalPembayaran,
TanggalPesan,
KodePembayaran,
TanggalPembayaran,
NamaBuku, harga, diskon,
Qty, status)
Primary key : IdPesan
Foreign Key : IdMember
Detail Pesan (IdPesan, IdMember, IdBuku, IdTarifKirim,
KodePembayaran)
Primary key : (IdPesan, IdBuku , IdMember)
136
4.1.2.2.6 Tipe Hubungan Kompleks
Pada tahap ini tidak terdapat relasi yang kompleks.
Sehingga tidak dapat dibuatkan Tipe Hubungan Kompleks.
4.1.2.3 Memvalidasi Relasi Menggunakan Normalisasi
Bertujuan untuk menentukan apakah model data logical tidak
terdapat redudansi, konsistensi dan sudah mewakili sistem yang sudah
sedang dibuat.
137
1. Member
Member (IdMember, Username, Password, Phone, Alamat, Foto,
MyHealty, gender, KodePost, Kota, IdCaptcha, CaptchaTime, IpAddress,
Word)
1NF : Tidak terdapat repetition groups pada tabel member, maka tabel
member sudah memenuhi 1NF
2NF : Tidak terdapat partial dependency pada tabel member ini. Maka
tabel member sudah memenuhi 2NF.
3NF : Member (IdMember, Username, Password, Phone, Alamat, Foto,
MyHealty, gender, KodePost, Kota)
Captcha : (IdCaptcha, CaptchaTime, IpAddress, Word)
IdMember
Username
Password
Phone
Alamat
Foto
MyHealty
Gender
KodePost
Kota
IdCaptcha
CaptchaTime
IpAddress
Word
138
2. Admin
Admin (IdAdmin, Password, Username)
1NF : Tidak terdapat repetition groups pada tabel admin. Maka tabel
admin sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel admin. Maka tabel
admin sudah memenuhi 2NF.
3NF : Tidak terdapat transitive dependency pada tabel admin. Maka tabel
admin sudah memenuhi 3NF
3. Pesan
Pesan (IdPesan, IdMember, IdBuku , IdTarifKirim, Username,
Alamat, Telp, HargaTotal, TanggalPesan, KodePembayaran,
TanggalPembayaran, NamaBuku, harga, diskon, Qty, status)
1NF : Pesan (IdPesan, IdMember, IdBuku, IdTarifKirim,
Username, Alamat, Telp, TanggalPesan, KodePembayaran,
TanggalPembayaran, NamaBuku, harga, diskon, Qty, status)
2NF : Buku = (IdBuku, NamaBuku, harga,diskon)
IdAdmin Username
Password
139
Pesan =( IdPesan, IdMember, IdTarifKirim, Username, Alamat,
Telp, TanggalPesan, KodePembayaran, TanggalPembayaran, status )
Pesan Detail = (IdPesan, IdBuku, Qty)
3NF : Buku = (IdBuku , NamaBuku, harga, diskon)
Pesan = (IdPesan, IdMember, IdTarifKirim, IdBuku,
KodePembayaran TanggalPesan, status )
Member = (IdMember, Username, Alamat, Telp)
Pembayaran = (KodePembayaran, TanggalPembayaran)
Pesan Detail = (IdPesan, IdBuku, Qty)
IdPesan
Username
Phone
Alamat
KodePost KodePembayaran
TotalPembayaran
TanggalPesan
IdMember
IdTarifKirim
IdBuku
NamaBuku
Qty
Diskon
Harga
TanggalPembayaran
Status
HargaTotal
140
4. Buku
Buku (IdBuku, IdAdmin, IdKategoriBuku, NamaBuku,
NamaKategoriBuku, Harga, Stock, Diskon, IdPenerbit, NamaPenerbit,
IdPengarang, NamaPengarang)
1NF : Tidak terdapat repetition groups pada tabel buku. Maka tabel buku
sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel buku. Maka tabel
buku sudah memenuhi 2NF.
3NF : Buku (IdBuku ,IdAdmin, IdKategoriBuku, NamaBuku, Harga,
Stock, Diskon, IdPenerbit, IdPengarang)
Kategori Buku (IdKategoriBuku, NamaKategoriBuku)
Penerbit (IdPenerbit, NamaPenerbit)
Pengarang (IdPengarang, NamaPengarang)
IdBuku
NamaBuku
IdKategoriBuku
Stock
Diskon
NamaKategoriBuku
Harga
IdAdmin
NamaPengarang IdPenerbit
IdPengarang NamaPenerbit
141
5. Resep
Resep (IdResep,IdAdmin, IdMember, NamaResep, NamaKategoriResep,
Foto, Deskripsi, IdKategoriResep)
1NF : Tidak terdapat repetition groups pada tabel resep. Maka tabel
resep sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel resep. Maka tabel
resep sudah memenuhi 2NF.
3NF : Resep (IdResep, IdMember,IdAdmin NamaResep, Foto,
Deskripsi)
Kategori Resep : (IdKategoriResep, NamaKategoriResep)
IdResep
Nama Resep
Foto
Deskripsi
IdMember
IdAdmin
IdKategoriResep NamaKategoriResep
142
6. Video
Video (IdVideo, IdAdmin, IdMember, JudulVideo, Deskripsi,
IdKategoriVideo, NamaKategoriVideo)
1NF : Tidak terdapat repetition groups pada tabel video. Maka tabel
video sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel video. Maka tabel
video sudah memenuhi 2NF.
3NF :
Video (IdVideo, IdMember, IdAdmin, JudulVideo, Deskripsi)
Kategori Video : (IdKategoriVideo, NamaKategoriVideo)
IdVideo
JudulVideo
Deskripsi
IdMember
IdAdmin
IdKategoriVideo NamaKategoriVideo
143
7. Tarif Kirim Barang
Tarif Kirim Barang ( IdTarifKirim, IdAdmin, Kota, Harga, Lama)
1NF : Tidak terdapat repetition groups pada tabel tarif kirim barang.
Maka tabel tarif kirim barang sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel tarif kirim barang.
Maka tabel tarif kirim barang sudah memenuhi 2NF.
3NF : Tidak terdapat transitive dependency pada tabel tarif kirim barang.
Maka tabel tarif kirim barang sudah memenuhi 3NF.
IdTarifKirim
Kota
Harga
Lama
IdAdmin
144
8. Promo
Promo (IdPromo, Id_admin, IdNamaTempatMakan, NamaPromo,
DeksripsiPromo, NamaTempatMakan, DeskripsiTempatMakan, Harga,
Diskon, TanggalDiskon)
1NF : Tidak terdapat repetition groups pada tabel promo. Maka tabel
promo sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel promo. Maka tabel
promo sudah memenuhi 2NF.
3NF :
Promo (IdPromo, IdAdmin, NamaPromo, DeksripsiPromo,)
Nama Tempat Makan (IdNamaTempatMakan, NamaTempatMakan,
DeskripsiTempatMakan, Harga, Diskon, TanggalDiskon)
IdPromo
NamaPromo
DeskripsiPromo
IdAdmin
IdTempatMakan
NamaTempatMakan
DeskripsiTempatMakan
Harga
Diskon
TanggalDiskon
145
9. Tips
Tips (IdTips, IdAdmin, NamaTips, Foto, Deskripsi)
1NF : Tidak terdapat repetition groups pada tabel tips. Maka tabel
tips sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel tips. Maka tabel
tips sudah memenuhi 2NF.
3NF : Tidak terdapat transitive dependency pada tabel tips. Maka
tabel tips sudah memenuhi 3NF.
IdTips
NamaTips
Foto
Deskripsi
IdAdmin
146
10. Berita
Berita (IdBerita, IdAdmin, JudulBerita, IsiBerita, Foto)
1NF : Tidak terdapat repetition groups pada tabel berita. Maka tabel
berita sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel berita. Maka
tabel berita sudah memenuhi 2NF.
3NF : Tidak terdapat transitive dependency pada tabel berita. Maka
tabel berita sudah memenuhi 3NF.
IdBerita
JudulBerita
IsiBerita
Foto
IdAdmin
147
11. Info
Info (IdInfo, IdAdmin, JudulInfo, IsiInfo, Foto)
1NF : Tidak terdapat repetition groups pada tabel info. Maka tabel info
sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel info. Maka tabel info
sudah memenuhi 2NF.
3NF : Tidak terdapat transitive dependency pada tabel info. Maka tabel
info sudah memenuhi 3NF.
IdInfo
JudulInfo
IsiInfo
Foto
IdAdmin
148
12. FeedBack
Feedback (IdFeedback, IdMember, Username, Komentar)
1NF : Tidak terdapat repetition groups pada tabel feedback. Maka
tabel feedback sudah memenuhi 1NF.
2NF : Tidak terdapat partial dependency pada tabel feedback. Maka
tabel feedback sudah memenuhi 2NF.
3NF : Tidak terdapat transitive dependency pada tabel feedback.
Maka tabel feedback sudah memenuhi 3NF.
4.1.2.4 Validasi Relasi terhadap Transaksi User
Tujuan pada subbab ini adalah untuk memastikan bahwa relasi
dalam model data logical mendukung transaksi yang dibutuhkan, yang
telah dijabarkan pada spesifikasi kebutuhan pengguna. Relasi-relasi yang
dihasilkan dari model data logical sudah memenuhi kebutuhan data
pengguna dan mendukung transaksi yang digunakan.
IdMember
Username
Komentar IdFeedBack
149
4.1.2.5 Menentukan Integriti Constrains
a. Required data
Beberapa atribut harus memiliki nilai valid dengan kata lain atribut-
atribut itu tidak diperkenankan memiliki nilai null. Aturan-aturan
tersebut sudah diidentifikasikan pada subbab 4.1.1.3
b. Atribut Domain Constraint
Setiap atribut memiliki domain yaitu sekumpulan nilai yang
legal/diperbolehkan/diizinkan. Constrain seperti sudah
diidentifikasikan pada saat memiliki atribut-atribut domain untuk data
model dan terdapat pada subbab 4.1.1.4
c. Entity Integrity
Setiap primary key dari sebuah entitas tidak boleh memiliki nilai null.
Aturan-aturan ini sudah dipertimbangkan pada setiap entitinya dengan
mengidentifikasikannya dan terdapat pada subbab 4.1.1.5
d. Refentrial Integrity
Apabila suatu foreign key mengandung suatu nilai, maka nilai itu
menunjuk pada entitas yang ada pada relasi parent-nya.
150
1. Admin (IdAdmin, Password, Username)
Primary key : IdAdmin
2. Member (IdMember, Username, Password, Telp, AlamatMember, Foto, MyHealty,
Gender, KodePost, Kota, IdCaptcha, CaptchaTime, IpAddress, Word)
Primary key : IdMember
Foreign key : IdCaptcha REFRENCES
Captcha (IdCaptcha) ON UPDATE CASCADE ON DELETE CASCADE
3. Pesan (IdPesan, IdMember, IdBuku, IdTarifKirim, Username, Alamat, Phone,
KodePos, HargaTotal, TanggalPesan, KodePembayaran, TanggalPembayaran,
NamaBuku, Qty, harga, diskon, status)
Primary key : IdPesan, IdBuku
Foreign key : IdPesan REFRENCES
PesanDetail(IdPesan) ON UPDATE CASCADE ON DELETE CASCADE
Foreign key : IdBuku REFRENCES
PesanDetail(IdBuku) ON UPDATE CASCADE ON DELETE CASCADE
Foreign key : IdMember REFRENCES
Member(IdMember) ON UPDATE CASCADE ON DELETE CASCADE
Foreign key : IdBuku REFRENCES
Buku(IdBuku) ON UPDATE CASCADE ON DELETE CASCADE
151
Foreign key : IdTarifKirim REFRENCES
Tarif Kirim(IdTarifKirim) ON UPDATE CASCADE ON DELETE CASCADE
4. Buku (IdBuku,IdAdmin, IdKategoriBuku, NamaBuku, NamaKategoriBuku Harga,
Stock, Diskon, IdPengarang, NamaPengarang, IdPenerbit, NamaPenerbit)
Primary key : IdBuku
Foreign key : IdAdmin REFRENCES
Admin(IdAdmin) ON UPDATE CASCADE ON DELETE CASCADE
Foreign key : IdKategoriBuku REFRENCES
KategoriBuku (IdKategoriBuku) ON UPDATE CASCADE ON DELETE
CASCADE
Foreign key : IdPengarang REFRENCES
Pengarang(IdPengarang) ON UPDATE CASCADE ON DELETE CASCADE
Foreign key : IdPenerbit REFRENCES
Penerbit (IdPenerbit) ON UPDATE CASCADE ON DELETE CASCADE
5. Resep (IdResep,IdAdmin, IdMember, NamaResep, NamaKategoriResep, Foto,
Deskripsi, IdKategoriResep)
Primary key : IdResep
Foreign key : IdAdmin REFRENCES
Admin(IdAdmin) ON UPDATE CASCADE ON DELETE CASCADE
Foreign key : IdMember REFRENCES
Member(IdMember) ON UPDATE CASCADE ON DELETE CASCADE
Foreign key : IdKategoriResep REFRENCES
152
Kategori Resep(IdKategoriResep) ON UPDATE CASCADE ON DELETE
CASCADE
6. Video (IdVideo, IdAdmin, JudulVideo, Deskripsi,
Id_KategoriVideo,NamaKategoriVideo)
Primary key : IdVideo
Foreign key : IdAdmin REFRENCES
Admin(IdAdmin) ON UPDATE CASCADE ON DELETE CASCADE
Foreign key : IdKategoriResep REFRENCES
Kategori Resep(IdKategoriResep) ON UPDATE CASCADE ON DELETE
CASCADE
7. Tarif Kirim Barang (IdTarifKirim, IdAdmin, Kota, Harga, Lama)
Primary key : IdTarifKirim
Foreign key : IdAdmin REFRENCES
Admin(IdAdmin) ON UPDATE CASCADE ON DELETE CASCADE
8. Promo (IdPromo, IdAdmin, IdNamaTempatMakan, NamaPromo, DeksripsiPromo,
NamaTempatMakan, DeskripsiTempatMakan, Harga, Diskon, TanggalDiskon)
Primary key : IdPromo
Foreign key : IdAdmin REFRENCES
Admin(IdAdmin) ON UPDATE CASCADE ON DELETE CASCADE
Foreign key : IdTempatMakan REFRENCES
Tempat Makan(IdTempatMakan) ON UPDATE CASCADE ON DELETE
CASCADE
9. Tips (IdTips, IdAdmin, NamaTips, Foto, Deskripsi)
153
Primary key : IdTips
Foreign key : IdAdmin REFRENCES
Admin(IdAdmin) ON UPDATE CASCADE ON DELETE CASCADE
10. Berita (IdBerita, IdAdmin, JudulBerita, IsiBerita, Foto)
Primary key : IdBerita
Foreign key : IdAdmin REFRENCES
Admin(IdAdmin) ON UPDATE CASCADE ON DELETE CASCADE
11. Info (IdInfo, IdAdmin, Judul, IsiInfo, Foto)
Primary key : IdInfo
Foreign key : IdAdmin REFRENCES
Admin(IdAdmin) ON UPDATE CASCADE ON DELETE CASCADE
12. Feedback (IdFeedback, IdMember, Username, Komentar)
Primary key : IdFeedback
Foreign key : IdMember REFRENCES
Member(IdMember) ON UPDATE CASCADE ON DELETE CASCADE
4.1.2.6 Membentuk dan Memvalidasi Model Data Global
ERD model dirancang berdasarkan hasil normalisasi 4.1.2.3. Model Data
Global dibuat untuk merepresentasikan sistem keseluruhan aplikasi web
ini. Dan berdasarkan Model Data Global ini data fisikal dibuat
154
Admin
PK IdAdmin
Username
Password
Member
PK IdMember
FK2 IdFoto
FK1 IdCaptcha
Username
Password
ConfrimPassword
Phone
Alamat
Gender
KodePost
Kota
Berita
PK IdBerita
FK1 IdAdmin
FK2 IdFoto
JudulBerita
IsiBerita
1..1
1..*
Buku
PK IdBuku
FK1 IdAdmin
FK2 IdKategoriBuku
FK3 IdPenerbit
FK4 IdPengarang
NamaBuku
Harga
Stock
1..1
1..*
Captcha
PK IdCaptcha
CaptchaTime
IpAddress
Word
FeedBack
PK IdFeedBack
FK1 IdMember
Username
Komentar
1..1
1..1
1..1
1..1
Foto
PK IdFoto
Path
1..*
1..*
Info
PK IdInfo
IdAdmin
JudulInfo
IsiInfo
FK1 IdFoto
1..*
KategoriBuku
PK IdKategoriBuku
NamaKategoriBuku
1..1
1..1
KategoriResep
PK IdKategoriResep
NamaKategoriResep
KategoriVideo
PK IdKategoriVideo
NamaKategoriVideo
KodePembayaran
PK KodePembayaran
TotallPembayaran
Penerbit
PK IdPenerbit
NamaPenerbit
1..1
1..1
Pengarang
PK IdPengarang
NamaPengarang
1..1
1..1
Pesan
PK IdPesan
FK1 IdMember
FK2 KodePembayaran
FK3 IdTarifKirim
TanggalPesan
TanggalPembayaran
Status
HargaTotal
1..1
1..*
1..1
1..1
Promo
PK IdPromo
FK1 IdAdmin
FK2 IdTempatMakan
NamaPromo
Deskripsi
1..1
1..*
Resep
PK IdResep
FK1 IdMember
FK2 IdKategoriResep
IdFoto
NamaResep
IsiResep
1..*
1..*
1..10..*
1..*
1..1
1..1
TarifKirim
PK IdTarifKirim
FK1 IdAdmin
Kota
KodePos
Harga
Lama
1..1
1..1
1..*
1..1
TempatMakan
PK IdTempatMakan
NamaTempatMakan
Harga
Diskon
Deskripsi
TanggalDiskon
1..1
1..1
Tips
PK IdTips
IdFoto
JudulTips
IsiTips
1..*
1..1Video
PK IdVideo
FK1 IdAdmin
FK2 IdKategoriVideo
JudulVideo
Deskripsi1..*
1..1
1..1
1..*
1..*
Pesan Detail
PK,FK2 IdPesan
PK,FK1 IdBuku
Qty
1..*
1..1
1..1
1..1
Detail Resep
PK Id Resep
PK Id Member
PK Id Admin
FK1 IdResep
FK2 IdAdmin
FK3 IdMember
1..11..*
0..*1..1
Gambar 4.8 Validasi Model Data Logical Global
155
4.1.3 Phisical Design
Tahapan perancangan fisikal database yang merupakan tahapan terakhir
dalam perancangan sistem basis data.
4.1.3.1 Menerjemahkan Model data logikal untuk DBMS yang
digunakan.
1. Rancangan Dasar.
• Admin
Domain IdAdmin integer, length 10
Domain Username variable length character string, length 50
Domain Password character string, length 7
Admin(
IdAdmin
IdAdmin NOT NULL
Username
Username NOT NULL
Password
Password NOT NULL,
PRIMARY KEY (`IdAdmin`)
);
• Buku
Domain IdBuku integer, length 10
Domain IdAdmin integer, length 10
Domain IdKategoriBuku integer, length 10
156
Domain IdPengarang integer, length 10
Domain IdPenerbit integer, length 10
Domain NamaBuku variable length character string, length 50
Domain NamaKategoriBuku variable length character string, length
50
Domain NamaPengarang variable length character string, length 50
Domain NamaPenerbit variable length character string, length 50
Domain Harga Bigint
Domain Stock int
Domain Diskon Tinyint
Buku(
Buku
IdBuku NOT NULL
Admin
IdAdmin NOT NULL
KategoriBuku
IdKategoriBuku NOT NULL
Pengarang
IdPengarang NOT NULL
Penerbit
IdPenerbit NOT NULL
NamaBuku
NamaBuku NOT NULL
157
NamaKategoriBuku
NamaKategoriBuku NOT NULL
NamaPengarang
NamaPengarang NOT NULL
NamaPenerbit
NamaPenerbit NOT NULL
Harga
Harga NOT NULL
Stock
Stock NOT NULL
Diskon
Diskon NOT NULL
PRIMARY KEY (`IdBuku`)
FOREIGN KEY (IdAdmin) REFERENCES Admin (IdAdmin) ON
UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (IdKategoriBuku) REFERENCES KategoriBuku
(IdKategoriBuku) ON UPDATE CASCADE ON DELETE CASCADE
158
FOREIGN KEY (IdPengarang) REFERENCES Pengarang
(IdPengarang) ON UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (IdPenerbit) REFERENCES Pengarang (IdPenerbit)
ON UPDATE CASCADE ON DELETE CASCADE
);
• Berita
Domain IdBerita integer, length 10
Domain IdAdmin integer, length 10
Domain JudulBerita variable length character string, length 50
Domain IsiBerita longtext
Domain Foto variable length character string, length 50
Berita (
Berita
IdBerita NOT NULL
Admin
IdAdmin NOT NULL
Foto
Foto NOT NULL
JudulBerita
JudulBerita NOT NULL
IsiBerita
IsiBerita NOT NULL
159
PRIMARY KEY (`IdBerita`)
FOREIGN KEY (`IdAdmin`) REFERENCES Admin (`IdAdmin`) ON
UPDATE CASCADE ON DELETE CASCADE
• Captcha
Domain IdCaptcha integer, length 10
Domain CaptchaTime integer, length 15
Domain IpAddress variable length character string, length 20
Domain Word variable length character string, length 50
Captcha (
Captcha
IdCaptcha NOT NULL
CaptchaTime
CaptchaTime NOT NULL
IpAddress
IpAddress NOT NULL
Word
Word NOT NULL
PRIMARY KEY (`IdCaptcha`)
);
• Feedback
Domain IdFeedback integer, length 10
160
Domain IdMember integer, length 10
Domain Username variable length character string, length 50
Domain Komentar longtext
Feedback (
Feedback
IdFeedback NOT NULL
Member
IdMember NOT NULL
Username
Username NOT NULL
Komentar
Komentar NOT NULL
PRIMARY KEY (`IdFeedback`)
FOREIGN KEY (`IdMember̀) REFERENCES Member (`IdMember̀)
ON UPDATE CASCADE ON DELETE CASCADE
);
• Info
Domain IdInfo integer, length 10
Domain IdAdmin integer, length 10
Domain JudulInfo variable length character string, length 50
Domain IsiInfo longtext
Domain Foto variable length character string, length 50
161
Info (
Info
IdInfo NOT NULL
Admin
IdAdmin NOT NULL
Foto
Foto NOT NULL
JudulInfo
JudulInfo NOT NULL
IsiInfo
IsiInfo NOT NULL
PRIMARY KEY (`IdInfo`)
FOREIGN KEY (`IdAdmin`) REFERENCES Admin (`IdAdmin`) ON
UPDATE CASCADE ON DELETE CASCADE
);
• KategoriBuku
Domain IdKategoriBuku integer, length 10
Domain NamaKategoriBuku variable length character string, length
50
KategoriBuku (
KategoriBuku
IdKategoriBuku NOT NULL
162
NamaKategoriBuku
NamaKategoriBuku NOT NULL
PRIMARY KEY (IdKategoriBuku)
);
• Kategori Resep
Domain IdKategoriResep integer, length 10
Domain NamaKategoriResep variable length character string, length
50
KategoriResep(
IdKategoriResep
IdKategoriResep NOT NULL
NamaKategoriResep
NamaKategoriResep NOT NULL
PRIMARY KEY (IdKategoriResep)
);
• Kategori Video
Domain IdKategoriVideo integer, length 10
Domain NamaKategoriVideo variable length character string, length
50
KategoriVideo(
IdKategoriVideo
IdKategoriVideo NOT NULL
NamaKategoriVideo
163
NamaKategoriVideo NOT NULL
PRIMARY KEY (IdKategoriVideo) );
• Kode Pembayaran
Domain KodePembayaran integer, length 10
Domain TanggalPembayaran date
KodePembayaran (
KodePembayaran
KodePembayaran NOT NULL
TanggalPembayaran
TanggalPembayaran NOT NULL
PRIMARY KEY (KodePembayaran)
);
• Member
Domain IdMember integer, length 10
Domain IdCaptcha integer, length 10
Domain Username variable length character string, length 50
Domain Password character string, length 7
Domain Phone int
Domain Alamat variable length character string, length 50
Domain MyHealty longtext
Domain Gender Enumeration, ‘F’ or ‘M’
Domain TanggalLahir Date
164
Domain Foto variable length character string, length 50
Member (
IdMember
IdMember NOT NULL
IdCaptcha
IdCaptcha NOT NULL
Foto
Foto NOT NULL
Username
Username NOT NULL
Password
Password NOT NULL
Phone
Phone NULL
Alamat
Alamat NOT NULL
MyHealty
MyHealty NOT NULL
Gender
Gender NOT NULL
TanggalLahir
TanggalLahir NOT NULL
PRIMARY KEY (IdMember)
165
FOREIGN KEY (`IdCaptcha`) REFERENCES Captcha(`IdCaptcha`)
ON UPDATE CASCADE ON DELETE CASCADE
);
• Pesan
Domain IdPesan integer, length 10
Domain IdMember integer, length 10
Domain IdTarifKirim integer, length 10
Domain KodePembayaran integer, length 10
Domain KodePost integer, length 15
Domain TanggalPembayaran date
Domain TanggalPesan date
Domain TotalHarga bigint
Domain Status variable length character string, length 50
Pesan (
IdPesan
IdPesan NOT NULL
IdMember
IdMember NOT NULL
TarifKirim
IdTarifKirim NOT NULL
KodePembayaran
KodePembayaran NOT NULL
166
TanggalPembayaran
TanggalPembayaranNOT NULL
TanggalPesan
TanggalPesan NOT NULL
IdTarifKirim
IdTarifKirim NOT NULL
TotalHarga
TotalHarga NOT NULL
PRIMARY KEY (IdPesan)
FOREIGN KEY (`IdMember`) REFERENCES Member(`IdMember`)
ON UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (`KodePembayaran`) REFERENCES
KodePembayaran(`KodePembayaran`) ON UPDATE CASCADE ON
DELETE CASCADE
FOREIGN KEY (`IdTarifKirim`) REFERENCES
KodePembayaran(`IdTarifKirim`) ON UPDATE CASCADE ON
DELETE CASCADE
FOREIGN KEY (` IdPesan`) REFRENCES
PesanDetail(IdPesan) ON UPDATE CASCADE ON DELETE
CASCADE
FOREIGN KEY IdBuku REFRENCES
167
PesanDetail(IdBuku) ON UPDATE CASCADE ON DELETE
CASCADE
);
• Pesan Detail
Domain IdPesan integer, length 10
Domain IdBuku integer, length 10
Domain Qty integer
Pesan Detail (
Pesan
IdPesan NOT NULL
Buku
IdBuku NOT NULL
Qty
Qty NOT NULL
PRIMARY KEY (`IPesan`. `IdBuku`)
FOREIGN KEY (`IdPesan`) REFERENCES Pesan (`IdPesan`) ON
UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (`IdBuku`) REFERENCES Buku (`IdBuku`) ON
UPDATE CASCADE ON DELETE CASCADE
);
168
• Promo
Domain IdPromo integer, length 10
Domain IdAdmin integer, length 10
Domain IdTempatMakan integer, length 10
Domain NamaPromo variable length character string, length 50
Domain DeskripsiPromo longtext
Promo (
Promo
IdPromo NOT NULL
Admin
IdAdmin NOT NULL
TempatMakan
IdTempatMakan NOT NULL
NamaPromo
NamaPromo NOT NULL
Deskripsi
DeskripsiPromo NOT NULL
PRIMARY KEY (`IdInfo`)
FOREIGN KEY (`IdAdmin`) REFERENCES Admin (`IdAdmin`) ON
UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (`IdPromo`) REFERENCES Promo (`IdPromo`) ON
UPDATE CASCADE ON DELETE CASCADE
);
169
• Resep
Domain IdResep integer, length 10
Domain IdAdmin integer, length 10
Domain IdMember integer, length 10
Domain IdKategoriResep integer, length 10
Domain NamaResep variable length character string, length 50
Domain IsiResep longtext
Domain Foto variable length character string, length 50
Resep (
Resep
IdResep NOT NULL
Admin
IdAdmin NOT NULL
Member
IdMember NOT NULL
KategoriResep
IdKategoriResep NOT NULL
Foto
Foto NOT NULL
NamaResep
NamaResep NOT NULL
IsiResep
170
IsiResep NOT NULL
PRIMARY KEY (`IdResep`)
FOREIGN KEY (`IdAdmin`) REFERENCES Admin (`IdAdmin`) ON
UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (`IdMember̀) REFERENCES Member (`IdMember̀)
ON UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (`IdKategoriResep`) REFERENCES Kategori Resep
(`IdKategoriResep`) ON UPDATE CASCADE ON DELETE
CASCADE
);
• Tarif Kirim
Domain IdTarifKirim integer, length 10
Domain IdAdmin integer, length 10
Domain KodePost integer, length 15
Domain Kotavariable length character string, length 50
Domain Harga bit
Domain Lama variable length character string, length 50
TarifKirim (
TarifKirim
IdTarifKirim NOT NULL
Admin
IdAdmin NOT NULL
171
KodePost
KodePost NOT NULL
Kota
Kota NOT NULL
Harga
Harga NOT NULL
Lama
Lama NOT NULL
PRIMARY KEY (`IdTartifKirim`)
FOREIGN KEY (`IdAdmin`) REFERENCES Admin (`IdAdmin`) ON
UPDATE CASCADE ON DELETE CASCADE
);
• Tempat Makan
Domain IdTempatMakan character string, length 10
Domain NamaTempatMakan variable length character string, length
50
Domain Deskripsi longtext
Domain Harga bit
Domain Diskon tinyint
Domain TanggalDiskon date
TempatMakan (
TempatMakan
IdTempatMakan NOT NULL
172
NamaTempatMakan
NamaTempatMakan NOT NULL
Deskripsi
Deskripsi NOT NULL
Harga
Harga NOT NULL
Diskon
Diskon NOT NULL
TanggalDiskon
TanggalDiskon NOT NULL
PRIMARY KEY (`IdTartifKirim`)
);
• Tips
Domain IdTips integer, length 10
Domain IdTips integer, length 10
Domain JudulTips variable length character string, length 50
Domain IsiTips longtext
Domain Foto variable length character string, length 50
Tips (
Tips
IdTips NOT NULL
Admin
173
IdAdmin NOT NULL
Foto
Foto NOT NULL
JudulTips
JudulTips NOT NULL
IsiTips
IsiTips NOT NULL
PRIMARY KEY (`IdTips`)
FOREIGN KEY (`IdAdmin`) REFERENCES Admin (`IdAdmin`) ON
UPDATE CASCADE ON DELETE CASCADE
);
• Video
Domain IdVideo integer, length 10
Domain IdAdmin integer, length 10
Domain IdKategoriVideo integer, length 10
Domain JudulVideo variable length character string, length 50
Domain DeskripsiVideo longtext
Video (
Video
IdVideo NOT NULL
Admin
IdAdmin NOT NULL
174
KategoriVideo
IdKategoriVideo NOT NULL
JudulVideo
JudulVideo NOT NULL
DeskripsiVideo
DeskripsiVideo NOT NULL
PRIMARY KEY (`IdVideo`)
FOREIGN KEY (`IdAdmin`) REFERENCES Admin (`IdAdmin`) ON
UPDATE CASCADE ON DELETE CASCADE
FOREIGN KEY (`IdKategoriVideo`) REFERENCES Kategori Resep
(`IdKategoriResep`) ON UPDATE CASCADE ON DELETE
CASCADE
);
4.1.3.2 Representasi physical Design
1. Menganalisa Transaksi
Tujuan dari menganalisa transaksi adalah untuk mengerti
kegunaan dari transaksi-transaksi yang dijalankan pada basis data.
Informasi yang dapat dipergunakan untuk menentukan pemilihan
index yang tepat.
a. Melakukan pemesanan barang
b. Melihat data tips
c. Melihat data berita
175
d. Melihat data video
e. Melihat data promo
f. Melihat data info
g. Melihat data buku
h. Melihat tarif kirim barang
i. Mengunggah data resep
j. Mengunggah data video
k. Memasukan data buku
l. Memasukan data tips
m. Memasukan data berita
n. Memasukan data feedback
o. Memasukan data promo
p. Memasukan data info
q. Memperbaruhi dan menghapus data buku
r. Memperbaruhi dan menghapus data tarif pengiriman
barang
s. Memperbaruhi dan menghapus data tips
t. Memperbaruhi dan menghapus data berita
u. Memperbaruhi dan menghapus data info
v. Memperbaruhi dan menghapus data promo
w. Memperbaruhi dan menghapus data resep
x. Memperbaruhi dan menghapus data video
176
Tabel Matriks Referensi Silang dengan Relasi dengan Metode IRUD
No
Nama Entitas
a b c d
I R U D I R U D I R U D I R U D
1. Admin X X X
2. Buku
3. Tarif Pengiriman
Barang
4. Pesan X X
5. Member X X X X X X
6. Resep
7. Video
8. Feedback
9. Tips
10. Berita
11. Info
12. Promo
Keterangan : I=Insert R=Read U=Update D=Delete
Tabel 4.6 Tabel Pemasukan IRUD
177
No
Nama Entitas
e f g h
I R U D I R U D I R U D I R U D
1. Admin X X X X
2. Buku X
3. Tarif Pengiriman
Barang
X
4. Pesan
5. Member X X X
6. Resep
7. Video
8. Feedback
9. Tips
10. Berita
11. Info
12. Promo
Keterangan : I=Insert R=Read U=Update D=Delete
Tabel 4.7 Tabel Pemasukan IRUD (lanjutan)
178
No
Nama Entitas
i j k l
I R U D I R U D I R U D I R U D
1. Admin X X X X
2. Buku X
3. Tarif Pengiriman
Barang
4. Pesan
5. Member X
6. Resep X
7. Video X
8. Feedback
9. Tips X X
10. Berita
11. Info
12. Promo
Keterangan : I=Insert R=Read U=Update D=Delete
Tabel 4.8 Tabel Pemasukan IRUD (lanjutan)
179
No
Nama Entitas
m n o p
I R U D I R U D I R U D I R U D
1. Admin X X X
2. Buku
3. Tarif Pengiriman
Barang
4. Pesan
5. Member X
6. Resep
7. Video X X
8. Feedback X
9. Tips
10. Berita X
11. Info X
12. Promo X
Keterangan : I=Insert R=Read U=Update D=Delete
Tabel 4.9 Tabel Pemasukan IRUD (lanjutan)
180
No
Nama Entitas
q r s t
I R U D I R U D I R U D I R U D
1. Admin X X X X X X X X
2. Buku X X
3. Tarif Pengiriman
Barang
X X
4. Pesan
5. Member
6. Resep
7. Video
8. Feedback
9. Tips X X
10. Berita X X
11. Info
12. Promo
Keterangan : I=Insert R=Read U=Update D=Delete
Tabel 4.10 Tabel Pemasukan IRUD (lanjutan)
181
No
Nama Entitas
v w x
I R U D I R U D I R U D
1. Admin X X X X X X
2. Buku
3. Tarif Pengiriman
Barang
4. Pesan
5. Member X
6. Resep X X
7. Video X X
8. Feedback
9. Tips
10. Berita
11. Info
12. Promo X X
Keterangan : I=Insert R=Read U=Update D=Delete
Tabel 4.11 Tabel Pemasukan IRUD (lanjutan)
4.1.3.3 Pemilihan Index
Tujuan dari pemilihan index ini adalah apakah dengan
penambahan index dapat meningkatkan kemampuan sistem, karena index
merupakan struktur file secondary yang menyediakan jalan lain untuk
data.
182
Tabel Entitas Index
Admin IdAdmin
Buku IdBuku
IdAdmin
IdKategoriBuku
IdPengarang
IdPenerbit
Berita IdBerita
IdAdmin
Captcha IdCaptcha
Feedback IdFeedback
IdMember
HelpFAQ IdHelpFAQ
IdMember
Info IdInfo
IdMember
KategoriBuku IdKategoriBuku
KategoriResep IdKategoriResep
KategoriVideo IdKategoriVideo
KodePembayaran KodePembayaran
Member IdMember
IdCaptcha
183
Pesan IdPesan
IdMember
KodePembayaran
IdTarifKirim
PesanDetail IdPesan
IdBuku
Promo IdPromo
IdTempatMakan
IdAdmin
Resep IdResep
IdKategoriResep
IdAdmin
IdMember
IdBuku
TarifKirim IdTarifKirim
IdAdmin
TempatMakan IdTempatMakan
Tips IdTips
IdAdmin
IdBuku
Video IdVideo
IdKategoriVideo
IdAdmin
184
4.1.3.4 Estimasi Kebutuhan Disk
1. Estimasi tabel admin
Field Type Size
IdAdmin Int 4
Username Varchar 51
Password Varchar 8
Kapasitas tabel admin 63 byte
2. Estimasi tabel buku
Field Type Size
IdBuku Int 4
IdAdmin Int 4
IdKategoriBuku Int 4
IdPenerbit Int 4
IdPengarang Int 4
NamaBuku Varchar 51
NamaKategoriBuku Varchar 51
NamaPengarang Varchar 51
NamaPenerbit Varchar 51
Harga Bigint 2
Stock Varchar 51
185
Kapasitas tabel buku 277 byte
Diperkirakan dalam 1 bulan terjadi penambahan buku sebanyak
25 buku.
Dalama 1 tahun pertumbuhan tabel buku adalah 25*12*277=
83.100 byte atau 81,2 kbyte
3. Estimasi tabel berita
Field Type Size
IdBerita Int 4
IdAdmin Int 4
JudulBerita Varchar 51
IsiBerita Longtext -
Foto Varchar 51
Kapasitas tabel berita 110 byte
4. Estimasi tabel Captcha
Field Type Size
IdCaptcha Int 4
CpatchaTime Varchar 51
IpAddress Varchar 51
Word Varchar 51
186
Kapasitas tabel captcha 157 byte
5. Estimasi tabel feedback
Field Type Size
IdFeedback Int 4
IdMember Int 4
Username Varchar 51
Komentar Longtext -
Kapasitas tabel feedback 59 byte
6. Estimasi tabel info
Field Type Size
IdInfo Int 4
IdAdmin Int 4
JudulInfo Varchar 51
IsiInfo Longtext -
Foto Varchar 51
Kapasitas tabel info 110 byte
187
7. Estimasi tabel Kategori Buku
Field Type Size
IdKategoriBuku Int 4
NamaKategoriBuku Varchar 51
Kapasitas tabel kategori buku 55 byte
8. Estimasi tabel kategori video
Field Type Size
IdKategoriVideo Int 4
NamaKategoriVideo Varchar 51
Kapasitas tabel kategori video 55 byte
9. Estimasi tabel kategori resep
Field Type Size
IdKategoriResep Int 4
NamaKategoriResep Varchar 51
Kapasitas tabel kategori resep 55 byte
188
10. Estimasi tabel kode pembayaran
Field Type Size
KodePembayaran Int 4
Tanggal
Pembayaran
Date 8
Kapasitas tabel kode pembayaran 12 byte
11. Estimasi tabel member
Field Type Size
IdMember Int 4
IdCaptcha Int 4
Username Varchar 51
Password Varchar 8
Phone Int 4
Alamat Varchar 51
Foto Varchar 51
My Healty Longtext -
Gender Enum 2
Tanggal Lahir Date 8
Kapasitas tabel member 183 byte
Diperkirakan dalam 1 bulan terjadi penambahan member
sebanyak 10 member
189
Dalama 1 tahun pertumbuhan tabel member adalah 10*12*183 =
21.960 byte atau 22 kbyte
12. Estimasi tabel pesan
Field Type Size
IdPesan Int 4
IdMember Int 4
IdTarifKirim Int 4
KodePembayaran Int 4
IdBuku Int 4
TotalHarga Bigint 2
TanggalPembayaran Date 8
TanggalPesan Date 8
Status Varchar 51
Diskon Tinyint 4
Kapasitas tabel pesan 93 byte
Diperkirakan dalam 1 bulan terjadi penambahan pesanan
190
sebanyak 15 pesanan
Dalama 1 tahun pertumbuhan tabel pesan adalah 15*12*93=
16.740byte atau 16 kbyte
13. Estimasi tabel pesan detail
Field Type Size
IdPesan Int 4
IdBuku Int 4
Qty Integer 4
Kapasitas tabel pesan detail 16 byte
Diperkirakan dalam 1 bulan terjadi penambahan pesanan
sebanyak 15 pesanan
Dalama 1 tahun pertumbuhan tabel pesan detail adalah
15*12*30= 2880 byte atau 2,8 kbyte
191
14. Estimasi tabel promo
Field Type Size
IdPromo Int 4
IdTempatMakan Int 4
IdAdmin Int 4
NamaPromo Varchar 51
DeskripsiPromo Longtext -
Kapasitas tabel promo 63 byte
Diperkirakan dalam 1 bulan terjadi penambahan promo
sebanyak 20 promo
Dalama 1 tahun pertumbuhan tabel promo adalah 20*12*63=
15.120 byte atau 15 kbyte
15. Estimasi tabel pengarang
Field Type Size
IdPengarang Int 4
NamaPengarang Char 51
Kapasitas tabel pengarang 55 byte
192
16. Estimasi tabel penerbit
Field Type Size
IdPenerbit Int 4
NamaPenerbit Char 51
Kapasitas tabel penerbit 60 byte
17. Estimasi tabel resep
Field Type Size
IdResep Int 4
IdAdmin Int 4
IdMember Int 4
IdKategoriResep Int 4
NamaResep Varchar 51
IsiResep Longtext -
Kapasitas tabel resep 67 byte
Diperkirakan dalam 1 bulan terjadi penambahan resep
sebanyak 20 resep
Dalama 1 tahun pertumbuhan tabel resep adalah 20*12*152 =
16.080 byte atau 16 kbyte
193
18. Estimasi tabel tarif kirim
Field Type Size
IdTarifKirim Int 4
IdAdmin Int 4
Kota Varchar 51
KodePost int 4
Harga Bigint 2
Lama Varchar 51
Kapasitas tabel tarif kirim 116 byte
19. Estimasi tabel tempat makan
Field Type Size
IdTempatMakan Int 4
NamaTempatMakan Varchar 51
Deskripsi Longtext -
Harga Bigint 2
Diskon Tinyint 4
TanggalDiskon Date 8
Kapasitas tabel tempat makan 69 byte
Diperkirakan dalam 1 bulan terjadi penambahan tarif kirim
sebanyak 15 pengiriman
194
Dalama 1 tahun pertumbuhan tabel tempat makan adalah
15*12*69 = 12.420 byte atau 12 kbyte
20. Estimasi tabel tips
Field Type Size
IdTips Int 4
IdAdmin Int 4
JudulTips Varchar 51
IsiTips Longtext -
Foto Varchar 51
Kapasitas tabel tips 110 byte
21. Estimasi tabel Video
Field Type Size
IdVideo Int 4
IdAdmin Int 4
IdKategoriVideo Int 4
NamaVideo Varchar 51
IsiVideo Longtext -
Kapasitas tabel video 63 byte
195
4.1.3.5 Merancang User Views
Tujuan merancang user views adalah untuk mempermudah admin
dalam menganalisis data yang terdapat pada basis data atau member
dalam melakukan user interface atau rancangan antar muka dan juga
view yang dirancang mudah dimengerti admin dan member juga mudah
dioperasikan.
4.1.3.6 Merancang mekanisme keamanan
Dalam suatu basis data sangat penting memperlihatkan masalah
sekuritas atau keamanan data. Maka dengan itu ada dua cara untuk
merancang mekanisme keamanan.
A. Merancangan keamanan sistem.
Dalam merancang keamanan sistem yaitu merancang/
mengatur bagaimana cara database diakses dari luar. Maka
dibuat username dan password yang berguna untuk
membatasi hak akses bagi orang-orang yang tidak
berkepentingan mengakses database.
B. Merancang keamanan data
Sedangkan dalam merancangan keamanan data ini bisa
dengan membuat batasan-batasan bagi member yang sudah
login dengan cara yang bisa mengatur member-member adalah
data administrator. Berikut beberapa hak akses yang dimiliki
member, admin, maupun non member.
196
Keterangan : I=Insert R=Read U=Update D=Delete
Tabel 4.12 Merancang Mekanisme keamanan
Admin Member Non Member
I R U D I R U D I R U D
Buku X X X X
Berita X X X X X X
Feedback X X X X
Info X X X X X X
KategoriBuku X X X X
KategoriResep X X X X
KategoriVideo X X X X
KodePembayaran X X X X X
Login X X X X X X X
Pesan X X X
Promo X X X X X
Registrasi X X X X X
Resep X X X X X X X
TarifKirim X X X X
TempatMakan X X X X X
Tips X X X X X X
Video X X X X X X X
197
4.2 Perancangan Program Aplikasi
Perancangan program aplikasi adalah rancangan sistem database yang
akan digunakan. Dan didalam perancangan ini terdapat perancangan layar,
perancangan struktur menu-menu, dan State Transition Diagram (STD) beserta
dengan spesifikasi prosesnya.
198
4.2.1 Struktur Menu
Gambar 4.9 Struktur Menu
Admin
Buku
Berita
Info
Login
Promo
Resep
Tarif Kirim
Tips
Home
Video
Member
FoodPlace
FoodRecipe
Tips
Promo
Video
Store
Contact us
199
4.2.2 Perancangan layar
1. Halaman Home Non Member
Gambar 4.10 Tampilan storyboard Home Non Member
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Introducing to Healthy Living
Introducing PT. QBInternational
Gambar healthyliving
Gambar QB Gambar QB
Log In
Username or Email :
Password :
Submit
Registration !!
Category
- Info
- Berita
200
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Info
Search
cari
Berita
Resep :
2. Halaman Resep Non Member
Gambar 4.11 Tampilan storyboard Resep Non Member atau Food Recipe
201
Home | Quest | Member | Resep | Videos | Tips | Food Place | Berita | Order |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Tempat Makan
Nama Tempat makan
Gambar/symbol tempat makan
Deskripsi tempat makan
Nama Tempat Makan :
Deskripsi :
Upload
browser
Upload
Gambar :
Gambar/symbol tempat makan
Deskripsi tempat makan
Nama Tempat makan
3. Halaman Tempat Makan / Food Place
Gambar 4.12 Tampilan storyboard Tempat Makan atau Food Place
202
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSINESS INTERNATIONAL
Berita
Info
Search
cari
Video :
Player Video
Deskripsi
4. Halaman Video Non Member
Gambar 4.13 Tampilan storyboard Video Non Member
203
5. Halaman Store Non Member
Gambar 4.14 Tampilan storyboard Store Non Member
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSINESS INTERNATIONAL
Category
Search
cari
Referensi Buku :
Judul Buku
Gambar buku
Deskripsi buku
Membeli Buku
- Info
- Berita
204
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Info
Search
cari
Berita
Tips :
6. Halaman Tips Non Member
Gambar 4.15 Tampilan storyboard Tips Non Member
205
7. Halaman Contact Us Non Member dan Member
Gambar 4.16 Tampilan storyboard Contact Us Non Member dan Member
QUICK CONTACT
Username :
Email :
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
LogoBanner
CONTACT HEALTHY LIVING
PT. QUANTUM BUSSINES INTERNATIONAL? Your Account
Category
- Info
- Berita
207
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL? Your Account
Info
Search
cari
Berita
Resep :
Nama Resep :
Isi Resep :
Upload
browser
Upload
9. Halaman Food Recipe Member
Gambar 4.18 Tampilan storyboard Food Recipe Member
208
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Berita
Info
Search
cari
Place :
Nama Tempat makan
Gambar/symbol tempat makan
Deskripsi tempat makan
Gambar/symbol tempat makan
Deskripsi tempat makan
Nama Tempat makan
10. Halaman Tempat Makan atau Food Place Member
Gambar 4.19 Tampilan storyboard Food Place Member
209
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Info
Search
cari
Berita
Promo :
11. Halaman Promo Member
Gambar 4.20 Tampilan storyboard Promo Member
210
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSINESS INTERNATIONAL
Berita
Info
Search
cari
Video :
Player Video
Deskripsi
12. Halaman Video Member
Gambar 4.21 Tampilan storyboard Video Member
211
13. Halaman Store Member
Gambar 4.22 Tampilan storyboard Store Member
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSINESS INTERNATIONAL
Category
Search
cari
Referensi Buku :
Judul Buku
Gambar buku
Deskripsi buku
Membeli Buku
- Info
- Berita
212
Home | Quest | Member | Resep | Videos | Tips | Food Place | Berita | Order |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Info
Resep :
Nama Resep :
Isi Resep :
Upload
browser
Upload
Gambar :
14. Halaman Tips Member
Gambar 4.23 Tampilan storyboard Tips Member
213
15. Halaman Registrasi
Gambar 4.24 Tampilan storyboard Registrasi
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Search
cari
REGISTRATION
Submit Reset
Username :
Passsword :
Confirm Password :
Address :
Captcha
Email :
Category
- Info
- Berita
217
Home | Quest | Member | Resep | Videos | Tips | Food Place | Berita | Order |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Tempat Makan
Nama Tempat makan
Gambar/symbol tempat makan
Deskripsi tempat makan
Nama Tempat Makan :
Deskripsi :
Upload
browser
Upload
Gambar :
Gambar/symbol tempat makan
Deskripsi tempat makan
Nama Tempat makan
19. Halaman Tempat Makan atau Food Place Admin
Gambar 4.28 Tampilan storyboard tempat makan untuk Admin
219
H o m e | Q u e s t | M em b e r | R e se p | V id e o s | T ip s | F o o d P la ce | B e rita | O rd e r |
Lo g oB an n e r
P T . Q U A N T U M B U S S IN E S IN T E R N A T IO N A L
In fo
R e sep :
N a m a R e se p :
Is i R e sep :
U p lo a d
b ro w se r
U p lo ad
G a m b a r :
21. Halaman Resep untuk Admin
Gambar 4.30 Tampilan storyboard resep untuk admin
221
Home | Quest | Member | Resep | Videos | Tips | Food Place | Berita | Order |
LogoBanner
PT. QUANTUM BUSSINES INTERNATIONAL
Tips :
Nama Tips :
Isi Tips :
Upload
browser
Upload
Gambar :
23. Halaman Tips untuk Admin
Gambar 4.32 Tampilan storyboard tips untuk admin
222
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
LogoBanner
PT. QUANTUM BUSINESS INTERNATIONAL
Berita
Info
Search
cari
Video :
Player Video
Deskripsi
24. Halaman Video untuk Admin
Gambar 4.33 Tampilan storyboard video untuk admin
223
4.2.3 State Transition Diagram
a. STD Tampilan Awal
Gambar 4.34 STD Tampilan Awal
b. STD Login Admin
Gambar 4.35 STD Registrasi dan Login
Login Home
Setelah melakukan registrasi member
bisa langsung melakukan login
Login salah
Tampilan Error
Login suskes
Tampilkan home member
224
c. STD Home Admin
Gambar 4.36 STD Home Admin
d. STD Insert Buku oleh Admin
Gambar 4.37 STD Insert Buku
225
e. STD Food Recipe Admin
Gambar 4.38 STD Food Recipe
f. STD Unggah Info Oleh Admin
Gambar 4.39 STD Unggah Info oleh Admin
226
g. STD Unggah Berita Oleh Admin
Gambar 4.40 STD Unggah Berita oleh Admin
h. STD Unggah Video Oleh Admin
Gambar 4.41 STD Unggah Video oleh Admin
i. STD logout
Gambar 4.42 STD Logout
227
j. STD Registrasi Member
Gambar 4.43 STD Registrasi
k. STD Profil Member
Gambar 4.44 STD Profil Member
l. STD Video Member
Gambar 4.45 STD Unggah Video oleh Member
Home Video
Pilih Menu Video
Tampilkan Halaman Video
228
m. STD Tips Member
Gambar 4.46 STD Tips Member
n. STD Promo Untuk Member
Gambar 4.47 STD Promo Untuk Member
o. STD FoodPlace Untuk Member
Gambar 4.48 STD Promo Untuk Member
229
p. STD Store
Gambar 4.49 STD Store
q. STD Contact Us
Gambar 4.50 STD Contact Us
4.3 Implementasi
Agar aplikasi ini dpaat berjalan dengan baik maka dibutuhkan perangkat keras
dan perangkat lunak yang mencukupi dan memadai. Berikut adalah usulan perangkat
keras dan perangkat lunak yang dapat digunakan :
230
4.3.1 Spesifikasi Perangkat Keras
• Server
Processor : Intel Pentium Dual Core 2 GHz
RAM : 2 GB
Hardisk : 250 GB
• Client
Processor : Pentium IV 1,5 GHz
RAM : 1 GB
Hardisk : 160 GB
4.3.2 Spesifikasi Perangkat Lunak
• Server
• Sistem operasi min. Windows XP
• Hosting
• Server XAMPP
• PhpMyAdmin
• Client
• Sistem operasi min. Windows XP
• Browser
• Internet
231
4.3.3 Jadwal Implementasi Sistem
Tabel 4.11 Jadwal Implementasi Sistem
No
Kegiatan
Waktu dalam minggu
1 2 3 4 5 6 7 8 9 10 11 12
1 Pembentukan Tim X
2 Pengumpulan
Informasi
X X
3 Perancangan
Database
X X
4 Pembuatan Aplikasi X X X X
5 Implementasi
Database
X X
6. Masa Percobaan X
7. Evaluasi Aplikasi X X
232
4.3.4 Implementasi Aplikasi
1. Home Non Member
Gambar 4.51 Halaman Home Non Member
Halaman ini adalah halaman untuk home member dan non member.
Dimana non member yang belum menjadi member dapat melihat artikel-
artikel yang ada.
233
2. Resep atau Food Recipe Non Member
Gambar 4.52 Tampilan Halaman Resep atau Food Recipe.
Pada halam ini merupakan tampilan resep untuk non- member atau
public. Non member atau public hanya bisa melihat resep.
234
3. Tempat Makan atau Food Place Non Member.
Gambar 4.53 Tampilan Tempat Makan atau Food Place.
Tampilan Tempat makan untuk non member/ public. Non-member/ public
bisa melakukan search.
235
4. Video Non Member
Gambar 4.54 Halaman Video Non Member
Pada halaman ini menampilkan video tutorial resep untuk non member/
public dan mereka dpat melakukan search engine.
236
5. Tips Non Member
Gambar 4.55 Halaman Tips Non Member
Halaman ini digunakan untuk non member/public melihat tips atau
membaca tips yang disediakan
237
6. Store Non Member
Gambar 4.56 Halaman Store Non Member
Halaman ini berisi Buku yang dijual ta[I hanya bisa dilihat oleh non
member / public. Jika non member / public ingin membelinya maka harus
melakukan registrasi terlebih dahulu.
238
7. Contact Us Member dan Non Member
Gambar 4.57 Halaman Contact Us Non Member
Halaman ini halaman untuk bagaimana non member/ public dapat
menghubungi admin dari pemilik web aplikasi.
239
8. Home Member
Gambar 4.58 Halaman Home Member
Pada halaman ini adalah halaman yang ditampilkan untuk member setelah
member melakukan login.
240
9. Resep atau Food Recipe Member
Gambar 4.59 Halaman resep atau food recipe untuk member
Pada halaman ini member dapat melihat resep juga member dapat
melakukan upload resep pada kolom sebelah kanan, member juga dapat
menyertakan foto dalam setiap resep yang diupload.
241
10. Tempat Makan atau Food Place Member
Gambar 4.60 Halaman tempat makan atau food place member
Pada halaman ini member memiliki hak akses sama seperti non member
dapat melihat tempat makan yang tersedia didalam web sebagai bahan
refrensi untuk mendatangi tempat makan tersebut.
242
11. Promo
Gambar 4.61 Halaman tampilan promo member.
Pada halaman ini akan menampilkan berbagai promo yang dapat dilihat
oleh member dan untuk menambah pengetahuan member tentang promo
yang sedang berlaku.
243
12. Video Member
Gambar 4.62 Halaman tampilan Video Member
Pada halaman ini member memiliki hak akses sama seperti non member
dapat melakukan search dan melihat video tutorial resep.
244
13. Store Member
Gambar 4.63 Halaman tampilan store member.
Pada halaman ini member dapat berbelanja untuk buku yang diinginkan
dan akan masuk kedalam shopping cart.
245
14. Shopping Cart
Gambar 4.64 Halaman tampilan shopping cart
Pada halaman ini menampilkan shopping cart dimana terdapat quantity
dan update cart yang bisa digunakan untuk menambahkan jika ingin
membeli buku baru
246
15. Konfrim data
Gambar 4.65 Halaman tampilan konfrim data
Pada halaman ini menampilkan confirm cart pada saat barang sudah
diplih maka member harus memasukan data diri dan memilih paket
pengiriman.
247
16. Hasil konfirmasi data
Gambar 4.66 Halaman tampilan hasil konfrimasi data
Pada halaman ini terdapat hasil dari konfirmasi data
248
17. Tips Member
Gambar 4.67 Halaman Tampilan tips member
Pada halaman ini member memiliki hak akses yang sama dengan non
member dalam melihat tips.
249
18. Home Admin
Gambar 4.68 Halaman tampilan home admin
Home admin dimana saat admin login home ini tidak seperti tampilan
pada home member, home admin memiliki tampilan sendiri yang berbeda
karena tugas admin adalah memantau dan memiliki hak penuh untuk
menghapus dan menambah resep, video, tips, berita, dan info.
250
19. Resep Admin atau Food Recipe
Gambar 4.69 Halaman tampilan home admin
Pada halaman ini admin dapat melakukan penambahan resep dan letak
insert resep pada sebelah kanan web aplikasi
251
20. Tempat Makan atau Food Place Admin
Gambar 4.70 Halaman tampilan tempat makan admin
Pada halaman ini nemapilkan tampilan tempat makan dan admin dapat
melakukan update data tempat makan melalului kolom upload disebelah
kanan.
252
21. Tampilan keaktifan member
Gambar 4.71 Halaman tampilan keaktifan member untuk admin
Pada halaman ini admin dapat mendelet member yang sudah tidak aktif.
253
22. Berita Admin
Gambar 4.72 Halaman tampilan berita yang dibuat admin
Pada halaman ini admin membuat berita untuk di tampilkan sama seperti
insert pada resep.
254
23. Tips Admin
Gambar 4.73 Halaman tampilan tips yang dibuat admin
Pada halaman ini admin membuat tips untuk di tampilkan sama seperti
insert pada berita.
255
24. Upload Info
Gambar 4.74 Halaman tampilan info yang dibuat admin
Pada halaman ini admin membuat info untuk di tampilkan sama seperti
insert pada tips
256
25. Promo Admin
Gambar 4.75 Halaman tampilan Promo yang dibuat admin
Pada halaman ini admin membuat promo untuk di tampilkan sama seperti
insert pada info. Promo yang sudah tidak berlaku dapat di hapus oleh
admin
257
26. Halaman Barang untuk Admin
Gambar 4.76 Halaman tampilan barang yang dibuat admin
Pada halaman ini admin memperbaruhi barang untuk di tampilkan sama
seperti insert pada info. Barang yang sudah habis dapat di hapus oleh
admin dengan masuk kedalam database barang.
258
27. Halaman order barang
Gambar 4.77 Halaman tampilan order barang yang dibuat admin
Pada halaman ini jika ada pemesanan barang maka akan muncul pada
tabel dan admin dapat melihat barang apa yang di pesan.
259
28. Tampilan Registrasi
Gambar 4.78 Halaman tampilan registrasi
Tampilan register pada saat member akan melakukan registrasi dan akan
ada peringatan atau pesan eror jika member salah memasukan data.
260
29. Tampilan Video
Gambar 4.79 Halaman tampilan video
Tampilan video untuk admin disini adalah admin dapat mengupload video
melalui youtube yang nanti akan di tampilkan pada halaman video.
261
4.3.5 Evaluasi Sistem
Evaluasi system ini bertujuan untuk mengetahui sejauh mana system
yang telah dibuat bermanfaat untuk masyarakat yang membutuhkan informasi
kesehatan.Maka dengan itu dibuat kuisioner yang dbagikan kepada masyarakat
untuk mengetahui manfaat tersebut.
Berdasarkan kusioner yang telah dibuat aplikasi ini memberikan dampak
yang cukup baik bagi masyarakat yaitu membantu masyarakat dalam pencarian
informasi kesehatn bagaimana sebaiknya menjalankan hidup sehat.
4.3.5.1 Evaluasi eight golden rules
Evaluasi sistem dilakukan berdasarkan hasil rancangan
kepada 8 golden rules dan berdasarkan hasil implementasi
dimulai dengan demo program sampai percobaan oleh
pengguna dan bagian IT.
263
Gambar 4.81 Tampilan layar pada Admin yang
konsisten
Dalam aplikasi yang dibuat sudah konsisten, hal ini
dapat dilihat dalam tulisan dan desain yang jenis, warna,
ukuran huruf, dan struktur desain layout dan menggunakan
CSS untuk mempermudah desain agar konsisten, tampilan
menu terletak dibagian atas dan susunanya tidak pernah
berubah.
264
2. Menyediakan usability universal
Gambar 4.82 Tampilan layar Resep yang menggunakan
shortcut
Gambar 4.83 Tampilan layar Info yang menggunakan
shortcut
265
Dalam setiap halaman aplikasi sudah
menggunakan fungsi yang universal. Hal ini terdapat pada
fungsi search atau pencarian, user dapat mencari
berita,info,tips,dan fitur-fitu dengan memasukkan judul
yang ingin dicari. Setiap judul yang mengandung kata
tersebut maka akan ditampilkan. Fungsi tersebut dibuat
agar lebih cepat dalam pencarian, dan dapat memperkaya
tampilan desain serta meningkatkan kualitas sistem.
3. Memberikan umpan balik (feedback) yang informatif.
Gambar 4.84 Tampilan halaman login yang informatif
Dalam aplikasi, sudah memberikan feedback yang
informatif, hal ini dapat dilihat saat pengguna akan
mengirim penilaian kedalam database sistem. Dan sistem
akan memberi feedback apakah user telah memasukkan
username dan password yang benar .
266
4. Merancang dialog yang memberikan keadaan akhir.
Gambar 4.85 Tampilan layar dialog memberikan
keadaan akhir
Gambar 4.86 Tampilan layar dialog memberikan
keadaan akhir
267
Dalam aplikasi yang dibuat, sudah dirancang
dialog untuk akhir dialog. Misalnya setelah user mengisi
informasi diri, maka akan tampilan sebuah halaman yang
menunjukkan informasi sukses dikirim jika informasi
tersebut sudah terkirim atau tersimpan di database.
5. Memberikan pencegahan kesalahan dan penanganan
kesalahan sederhana. .
.
Gambar 4.87 tampilan layar pencegahan kesalahan
yang sederhana
Dalam aplikasi ini terdapat suatu pesan kesalahan
yang sederhana jika public melakukan kesalahan seperti
lupa memasukkan username atau password pada saat
registrasi, maka akan keluar sebuah pemberitahuan
kesalahan yang dilakukan public
268
6. Memungkinkan pembalikan aksi (undo) yang mudah.
Gambar 4.88 Tampilan layar pembalikan aksi
yang mudah
Dalam menu store sudah dibuat fungsi “Membeli
Buku” hal ini memudahkan member untuk melihat buku-
buku yang dijual.
269
7. Mendukung pusat kendali internal (internal locus of
control).
Gambar 4.89 Tampilan layar yang mendukung pusat
kendali internal
Public dan member memegang kendali penuh
terhadap alur program ini berjalan, semuanya perubahan
270
state merupakan response dari program karena public dan
member menekan suatu tombol.
8. Mengurangi beban ingatan jangka pendek.
Gambar 4.90 Tampilan layar mengurangi beban
ingatan jangka pendek
Dalam setiap tampilan aplikasi yang dibuat, sudah
dibuat sederhana dan setiap halaman terdapat judul dari
halaman tersebut. Hal ini ditujukan agar mengurangi
hafalan dan memudahkan public dan member memahami