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 99
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 Setiap
member
Entitas yang berisi informasi user yang kegiatan Member
sudah menjadi member
dapat
melakukan
seperti
upload
resep,video,tips,dan pembelian barang Admin dapat melakukan upload
Admin
Entitas yang berisi
tips, info, resep, video,dan dapat
informasi kegiatan admin
melakukan delete member. Setiap buku akan dilakukan pembaruan
Entitas yang berisi informasi buku yang dalam jumlah quantity, harga, dan Buku
dijual
diskon. Setiap artikel mempunyai ID dan artikel dibuat hanya dibuat oleh admin
Entitas yang berisi informasi tentang namun dapat dilihat oleh member dan InfoKesehatan
artikel kesehatan
non member.
Entitas yang berisi informasi tentang promo atau diskon pada setiap tempat Setiap tempat makan dapat melakukan Promo
makan
promo.
Entitas yang berisi informasi berita Hanya admin yang dapat melakukan Berita
kesehatan
upload berita .
Entitas yang berisi informasi tips Hanya admin yang dapat melakukan Tips
kesehatan
upload tips.
Resep
Entitas yang berisi informasi resep Setiap
member
dapat
melakukan
102
kesehatan
upload resep, admin dapat melakukan delete dan edit resep dan insert.
Entitas yang berisi informasi video Admin dapat melakukan delete dan edit Video
tutorial resep kesehatan
video dan juga insert.
Entitas yang berisi informasi tentang Setiap member dapat melakukan lebih Pesan
pesanan member
dari satu kali pemesanan. Pada entitas ini memberikan informasi detail tentang tarif barang antar kota
Entitas yang berisi informasi yang untuk mempermudah admin dalam TarifKirim
berisi harga ongkos kirim tiap kota
mengirimkan barang.
Entitas yang berisi informasi kritik dan Pada entitas ini menyimpan informasi Feedback
saran dari peserta
kritik dan saran dari peserta. Pada entitas ini menyimpan semua foto
Foto
Entitas ini berisi semua foto-foto
yang ada didalam website.
Tabel 4.1 Tabel Tipe Entitas
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
Member
Admin
Multipl Relationship
Multipl
icity
icity
Nama entity
1..*
Memberikan
1..1
Feedback
1..*
Memasukan
1..*
Resep
1..1
Melakukan
1..*
Pesan
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
1..*
Dilakukan
1..1
Member
1..1
Memiliki
1..*
TarifKirim
1..*
Memiliki
1..1
Buku
1..*
Dimiliki
1..1
Pesan
1..1
Diperbaruhi
1..*
Admin
1..1
Diperbaruhi
1...*
Admin
1..1
Dimiliki
1..*
Pesan
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
Pesan
TarifKirim
Buku
Resep
105
Promo
1..1
Diisi
1..*
Admin
Tabel 4.2 Tabel Tipe Relationship
Gambar 4.1 Tipe Relationship
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
Atribut
Deskripsi
Entity
Tipe
data Null
dan
MultiValued
panjangnya Admin
IdAdmin
Admin ID
Int(10)
No
No
Username
Nama Admin
Varchar(50)
No
No
Password
Password
Varchar(7)
No
No
admin Buku
IdBuku
Buku ID
Int(10)
No
No
IdAdmin
Admin ID
Int(10)
No
No
IdKategoriBuku
Kategori Buku Int(10)
No
No
ID NamaBuku
Nama buku
Varchar(50)
No
No
NamaKategoriBuku
Nama kategori Varchar(50)
No
No
buku 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
Varchar(50)
No
No
Pengarang 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 ID
Int(10)
No
No
IdMember
Member ID
Int(10)
No
No
Username
Nama user
Varchar(50)
No
No
Komentar
Komentar
Longtext
No
No
FeedBack IdFeedBack
member Info
Member
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
IdMember
Member ID
Int(10)
No
No
Username
Nama user
Varchar(50)
No
No
Password
Password
Varchar(7)
No
No
member
108
ConfPass
Confrim
Varchar(7)
No
No
Int(15)
No
Yes
Varchar(50)
No
No
Password Member Phone
Nomor telephone user
Alamat
Alamat member
Foto
Foto
Varchar(50)
No
No
Email
Email member
Varchar(50)
No
No
Gender
Jenis Kelamin
ENUM
No
No
No
No
No
No
(‘F’,’M’) Kota
Kota
tempat Varchar(50)
tinggal ember KodePost
Kode
Post Int(15)
member 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
IdTarif
Tarif kirim ID
Int(10)
No
No
Kirim
Kirim Admin ID
Int(10)
No
No
IdAdmin
109
Kota
Nama kota
Varchar(50)
No
No
KodePost
Kode Pos
Char(15)
No
No
Harga
Harga kirim
Bigint
No
No
Lama
Lama
DATE
No
No
pengiriman 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
Varchar(50)
No
No
Int(15)
No
Yes
Bigint
No
No
Bigint
No
No
DATE
No
No
member Phone
Nomor telephone member
HargaTotal
Hasil perkalian dari quantity(qty) dengan harga
Total
Total
Pembayaran
Pembayaran
TanggalPesan
Tanggal
110
Pemesanan KodePembayaran
Nomor
Int(10)
No
No
DATE
No
No
pembayaran TanggalPembayaran
Tanggal Pembayaran
KodePost
Kode Pos
Int(15)
No
No
NamaBuku
Nama buku
Varchar(50)
No
No
Qty
Jumlah
No
No
tiap Bigint
No
No
Diskon
dari Tinyint
No
No
seluruh
total
dari Varchar(50)
No
No
Int(10)
No
No
Int(10)
No
No
IdNama
Nama tempat Int(10)
No
No
TempatMakan
makan ID
NamaPromo
Nama Promo
No
No
buku Int(50)
yang dibeli harga
Harga buku
diskon
pembayaran Status
Status pesanan
Promo
IdPromo
Promo ID
IdAdmin
Varchar(50)
111
DeskripsiPromo
Deskripsi dari Longtext
No
No
No
No
No
No
Tinyint
No
No
Longtext
No
No
Date
No
No
promo NamaTempatMakan
Nama tempat Varchar(50) makan
Harga
Harga Tempat Bigint makan
Diskon
Diskon Tempat makan
Deskripsi
Keterangan promo tempat makan
TanggalDiskon
Tanggal Diskon
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
Longtext
No
No
Resep Foto
Foto
Varchar(50)
No
No
IdKategori
Kategori
Int(10)
No
No
Resep
Resep ID
112
NamaKategoriResep
Nama
Varchar(50)
No
No
Kategori Resep Tips
Video
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
IdVideo
Video ID
Int(10)
No
No
IdKategori
Kategori video Int(10)
No
No
Video
ID
IdAdmin
Admin ID
Int(10)
No
No
JudulVideo
Judul Video
Varchar(50)
No
No
NamaKategoriVideo
Nama kategori Varchar(50)
No
No
No
No
video Deskripsi
Deskripsi Video
Tabel 4.3 Atribut tiap Entitas
Longtext
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
Atribut
Domain Atrribute
IdAdmin
Berupa integer, dengan auto-incremeant
Username
Berupa
Entity Admin
variant
karakter
dengan
karakter
dengan
maksimal 50 karakter Password
Berupa
variant
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
karakter
dengan
maksimal 50 karakter NamaKategoriBuku
Berupa
variant
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
karakter
dengan
maksimal 50 karakter IsiBerita
Berupa text
Foto
Berupa
variant
maksimal 50 karakter FeedBack
IdFeedBack
Berupa integer, dengan auto-incremeant
IdMember
Berupa integer, dengan auto-incremeant
Username
Berupa
variant
karakter
dengan
maksimal 50 karakter
Info
Komentar
Berupa text
IdInfo
Berupa integer, dengan auto-incremeant
IdAdmin
Berupa integer, dengan auto-incremeant
JudulInfo
Berupa
variant
karakter
dengan
karakter
dengan
maksimal 50 karakter IsiInfo
Berupa text
Foto
Berupa
variant
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
karakter
dengan
karakter
dengan
maksimal 50 karakter Foto
Berupa
variant
maksimal 50 karakter Email
Berupa
variant
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
maksimal 20 karakter
karakter
dengan
116
Word
Berupa
variant
karakter
dengan
maksimal 50 karakter Tarif
IdTarif
Kirim
Kirim
Berupa integer, dengan auto-incremeant
IdAdmin
Berupa integer, dengan auto-incremeant
Kota
Berupa
variant
karakter
dengan
karakter
dengan
karakter
dengan
maksimal 50 karakter KodePost
Berupa
integer
maksimal 15 karakter Harga
Berupa angka
Lama
Berupa
variant
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
karakter
dengan
maksimal 50 karakter Alamat
Berupa
variant
maksimal 50 karakter Phone
Berupa interger maksimal 15 karakter
karakter dengan
117
HargaTotal
Berupa angka
Total
Berupa angka
Pembayaran 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
Berupa integer, dengan auto-incremeant
TempatMakan NamaPromo
Berupa
variant
karakter
dengan
karakter
dengan
karakter
dengan
maksimal 50 karakter DeskripsiPromo
Berupa text
NamaTempatMakan
Berupa
variant
maksimal 50 karakter Harga
Berupa angka
Diskon
Berupa angka
DeskripsiTempatMakan Berupa
variant
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
Berupa integer, dengan auto-incremeant
Resep NamaKategoriResep
Berupa
variant
maksimal 50 karakter
karakter
dengan
119
Tips
IdTips
Berupa integer, dengan auto-incremeant
IdAdmin
Berupa integer, dengan auto-incremeant
JudulTips
Berupa
variant
karakter
dengan
karakter
dengan
maksimal 50 karakter IsiTips
Berupa text
Foto
Berupa
variant
maksimal 50 karakter Video
IdVideo
Berupa integer, dengan auto-incremeant
IdKategori
Berupa integer, dengan auto-incremeant
Video IdAdmin
Berupa integer, dengan auto-incremeant
JudulVideo
Berupa
variant
karakter
dengan
karakter
dengan
maksimal 50 karakter NamaKategoriVideo
Berupa
variant
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
IdTarif
Kirim
Kirim
IdTarifKirim
IdAdmin Kota Pesan
IdPesan-IdBuku
IdPesan-IdBuku
IdPesan-IdMember IdPesan-Telp IdPesanIdTarifKirim IdPesan-Username IdPesanKodePembayaran Promo
IdPromo IdAdmin IdNamaTempatMakan NamaPromo
IdPromo
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 Info IdInfo
1..*
Tips
Video
Berita
IdVideo
IdBerita
1..*
IdPromo
1..*
1..*
IdTips
Promo
1..*
memasukan
memasukan
1..* 1..1 memasukan mengunggah memasukan
1..1 1..1 Admin 1..1
1..1 IdAdmin
memperbaruhi memasukan memasukan
1..1
1..* 1..*
1..* 1..*
Resep
memasukan
IdResep 1..*
feedback IdFeedBack
1..*
1..* Member
Buku
TarifKirim
1..* IdMember 1..* 1..*
IdBuku
IdTarifKirim
1..*
memberi melakukan
1..1
1..1
1..* Pesan - IdPesan - IdBuku
1..*
memiliki memiliki
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
Member
Resep
0..*
0..*
Member
Detail_Resep
0..*
1..1
Resep
Id_Kategori_Resep
1..1
0..*
Gambar 4.4 menghilangkan (*:*) Member dengan Resep
b. Hubungan many to many (*:*) Admin dengan Resep
Admin
G
Detail_Resep
1..*
1..1
Id_Kategori_Resep
Resep
1..1
1..*
Gambar 4.5 menghilangkan (*:*) Admin dengan Resep
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,
NamaKategoriVideo)
IdAdmin,
JudulVideo,
Deskripsi,
IdKategoriVideo,
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, Video
(IdVideo,
IdAdmin,
Password, Username)
JudulVideo,
Deskripsi,
Primary key : IdAdmin
IdKategoriVideo,NamaKateg oriVideo) Primary key : IdVideo Foreign key : IdAdmin
b. Admin memasukan berita Admin
(IdAdmin, Berita (IdBerita, IdAdmin,
Password, Username)
JudulBerita, IsiBerita, Foto)
Primary key : IdAdmin
Primary key : IdBerita Foreign key : IdAdmin
c. Admin memasukan tips Admin
(IdAdmin, Tips
Password, Username)
(IdTips,
IdAdmin,
NamaTips, Foto, Deskripsi)
130
Primary key : IdAdmin
Primary key : IdTips Foreign key : IdAdmin
d. Admin mengisi promo Admin
(IdAdmin, Promo
(IdPromo,
IdAdmin,
Password, Username)
IdNamaTempatMakan,
Primary key : IdAdmin
NamaPromo, DeksripsiPromo, NamaTempatMakan, DeskripsiTempatMakan, Harga, Diskon, TanggalDiskon) Primary key : IdPromo Foreign key : IdAdmin
e. Admin memperbaruhi buku Admin
(IdAdmin, Buku
(IdBuku,IdAdmin,
Password, Username)
IdKategoriBuku,
Primary key : IdAdmin
NamaBuku, NamaKategoriBuku, Harga, Stock, Diskon, IdPenerbit, NamaPenerbit, IdPengarang, NamaPengarang)
131
Primary
key
:
IdBuku
Foreign key : IdAdmin
f. Admin memperbaruhi tarif kirim barang Admin
(IdAdmin, Tarif
Kirim
Password, Username)
(IdTarifKirim,
Primary key : IdAdmin
Kota, Harga, Lama)
Barang IdAdmin,
Primary key : IdTarifKirim Foreign key : IdAdmin
g. Admin memasukan info Admin
(IdAdmin, Info (IdInfo, IdAdmin, Judul,
Password, Username)
IsiInfo, Foto)
Primary key : IdAdmin
Primary key : IdInfo Foreign key : IdAdmin
132
h. Member memberikan Feedback Member
(IdMember, Feedback
Username, Telp,
(IdFeedback,
Password, IdMember,
Username,
AlamatMember, Komentar)
Foto, MyHealty, gender, Primary key : IdFeedback kota, kode pos, IdCaptcha) Foreign key : IdMember Primary key : IdMember
i. Buku dimiliki Pesan Buku
(IdBuku,IdAdmin, Pesan (IdPesan,
IdMember,
IdKategoriBuku,
IdBuku,
NamaBuku,
Username,
NamaKategoriBuku,
TotalPembayaran,
Harga,
Stock,
IdTarifKirim, Alamat,
Telp,
Diskon, TanggalPesan,
IdPenerbit, NamaPenerbit, KodePembayaran, IdPengarang,
TanggalPembayaran,
NamaPengarang)
NamaBuku,
Primary key : IdBuku
diskon, status)
Qty,
Primary key : IdPesan Foreign key : IdBuku
harga,
133
j. Member melakukan pesan Member
(IdMember, Pesan (IdPesan,
Username, Telp,
Password, IdBuku,
AlamatMember, Username,
IdMember, IdTarifKirim,
Alamat,
Telp,
Foto, MyHealty, gender, TotalPembayaran, kota, kode pos, IdCaptcha) TanggalPesan, Primary key : IdMember
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, Resep
(IdResep,
IdAdmin,
Password, Username)
IdMember,
NamaResep,
Primary key : IdAdmin
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, Resep
Username, Telp,
(IdResep,IdAdmin,
Password, IdMember,
NamaResep,
AlamatMember, NamaKategoriResep,
Foto,
Foto, MyHealty, gender, Deskripsi, IdKategoriResep) KodePost,
Kota, Primary
IdCaptcha) Primary key : IdMember
key
:
IdResep
Foreign Key : IdMember
135
Detail
Resep
(IdResep,IdMember,
IdMember,IdKategoriResep) Primary key : (IdResep, IdMember)
c. Member melakukan Pesan Member
(IdMember, Pesan (IdPesan,
Username, Telp,
Password, IdBuku,
AlamatMember, Username,
IdMember, IdTarifKirim,
Alamat,
Telp,
Foto, MyHealty, gender, HargaTotal, KodePost,
Kota, TotalPembayaran,
IdCaptcha)
TanggalPesan,
Primary key : IdMember
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) Username Password Phone Alamat Foto IdMember
MyHealty Gender KodePost Kota
CaptchaTime
IdCaptcha
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
Username IdAdmin Password
3. Pesan Pesan (IdPesan, Alamat,
Telp,
IdMember, IdBuku, IdTarifKirim, Username, HargaTotal,
TanggalPesan,
KodePembayaran,
TanggalPembayaran, NamaBuku, harga, diskon, Qty, status) 1NF : Pesan (IdPesan, Username,
Alamat,
Telp,
IdMember, IdBuku, IdTarifKirim, TanggalPesan,
KodePembayaran,
TanggalPembayaran, NamaBuku, harga, diskon, Qty, status) 2NF : Buku = (IdBuku, NamaBuku, harga,diskon)
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)
Username Alamat IdMember Phone KodePem bayaran
KodePost
TanggalPem bayaran
TotalPembayaran
IdTarifKirim TanggalPesan IdPesan Status IdBuku HargaTotal Qty NamaBuku Harga Diskon
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)
IdKategoriBuku NamaBuku
NamaKategori Buku
Harga Stock IdBuku Diskon IdAdmin IdPenerbit
NamaPengarang
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) Nama Resep Deskripsi IdResep
Foto IdKategoriResep IdAdmin IdMember
NamaKategori Resep
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)
JudulVideo Deskripsi IdVideo
IdKategoriVideo IdMember IdAdmin
NamaKategori Video
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. Kota IdTarifKirim
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)
NamaPromo DeskripsiPromo NamaTempatMakan IdPromo
IdAdmin IdTempatMakan
DeskripsiTempat Makan 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.
NamaTips Foto IdTips 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. JudulBerita IsiBerita IdBerita
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.
JudulInfo IdInfo
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.
Username IdFeedBack
Komentar IdMember
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.
149
4.1.2.5 Menentukan Integriti Constrains a. Required data Beberapa atribut harus memiliki nilai valid dengan kata lain atributatribut 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 Tips PK KategoriBuku PK
1..1
1..1
IdPengarang NamaPengarang
1..1
Info
Berita
PK
IdBuku
FK1 FK2 FK3 FK4
IdAdmin IdKategoriBuku IdPenerbit IdPengarang NamaBuku Harga Stock
1..*
PK
IdBerita
FK1 FK2
IdAdmin IdFoto JudulBerita IsiBerita
1..*
PK
PK
IdPenerbit
1..1
1..1
1..1 PK
1..1 Promo
1..1 1..1
Admin
PK
IdPromo
FK1 FK2
IdAdmin IdTempatMakan NamaPromo Deskripsi
1..*
IdAdmin
1..1
Pesan
1..1
1..1
IdFoto
NamaPenerbit
1..1
NamaTempatMakan Harga Diskon Deskripsi TanggalDiskon
Path
KodePembayaran
1..1
IdTempatMakan
1..*
TotallPembayaran
Qty
TempatMakan PK
Foto
Penerbit PK
FK1
IdAdmin JudulInfo IsiInfo IdFoto
1..*
KodePembayaran
IdPesan IdBuku
IdInfo
1..*
1..1
Pesan Detail
PK
1..*
1..*
1..1
1..1 PK,FK2 PK,FK1
1..*
Buku
Pengarang PK
IdFoto JudulTips IsiTips
1..1
IdKategoriBuku NamaKategoriBuku
IdTips
Username Password
PK
IdPesan
FK1 FK2 FK3
IdMember KodePembayaran IdTarifKirim TanggalPesan TanggalPembayaran 1..1 Status HargaTotal
Video PK
IdVideo
FK1 FK2
IdAdmin IdKategoriVideo JudulVideo Deskripsi
1..*
1..* 1..*
1..1
1..1
1..1 1..*
Detail Resep
1..1
PK PK PK
Id Resep Id Member Id Admin
FK1 FK2 FK3
IdResep IdAdmin IdMember
0..*
1..1
Resep
TarifKirim
1..1
0..*
1..*
1..1
PK
IdResep
FK1 FK2
IdMember IdKategoriResep IdFoto NamaResep IsiResep
1..*
1..*
1..1
Member
PK
IdTarifKirim
PK
IdMember
FK1
IdAdmin Kota KodePos Harga Lama
FK2 FK1
IdFoto IdCaptcha Username Password ConfrimPassword Phone Alamat Email Gender KodePost Kota
1..* 1..1
1..1 KategoriResep PK
IdKategoriResep NamaKategoriResep
1..1
1..1
1..1 FeedBack PK
IdFeedBack
FK1
IdMember Username Komentar
Captcha PK
IdCaptcha CaptchaTime IpAddress Word
Gambar 4.8 Validasi Model Data Logical Global
KategoriVideo PK
IdKategoriVideo NamaKategoriVideo
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
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
DELETE
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
1.
Admin
2.
Buku
3.
Tarif Pengiriman
a
b
c
d
I
R U D I
R U D I
R U D I
R U
X
X
X
X
X
X
Barang 4.
Pesan
X
X
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
Tabel 4.6 Tabel Pemasukan IRUD
D=Delete
D
177
No
Nama Entitas
1.
Admin
2.
Buku
3.
Tarif Pengiriman
e
f
g
h
I
R U D I
R U D I
R
X
X
X
U D I
X
X X
Barang 4.
Pesan
5.
Member
6.
Resep
7.
Video
8.
Feedback
9.
Tips
10.
Berita
11.
Info
12.
Promo
R U
X
Keterangan : I=Insert
X
R=Read
X
U=Update
D=Delete
Tabel 4.7 Tabel Pemasukan IRUD (lanjutan)
D
178
i
j R U D I
No
Nama Entitas
I
1.
Admin
X
2.
Buku
3.
Tarif Pengiriman
X
R
U
k
l
D I
R U D I
X
X
X
Barang 4.
Pesan
5.
Member
X
6.
Resep
X
7.
Video
8.
Feedback
9.
Tips
10.
Berita
11.
Info
12.
Promo
X
X X
Keterangan : I=Insert
R=Read
U=Update
D=Delete
Tabel 4.8 Tabel Pemasukan IRUD (lanjutan)
R U
D
179
m No
Nama Entitas
I
1.
Admin
X
2.
Buku
3.
Tarif Pengiriman
n
o
p
R U D I
R U D I
R U D I
X
R U D
X
Barang 4.
Pesan
5.
Member
6.
Resep
7.
Video
8.
Feedback
9.
Tips
10.
Berita
11.
Info
12.
Promo
X
X X X
X X X
Keterangan : I=Insert
R=Read
U=Update
D=Delete
Tabel 4.9 Tabel Pemasukan IRUD (lanjutan)
180
q
r
s
t
I
R U D I
R U D I
R U D I
X X
X X
No
Nama Entitas
1.
Admin
X X
2.
Buku
X X
3.
Tarif Pengiriman
R U D X X
X X
Barang 4.
Pesan
5.
Member
6.
Resep
7.
Video
8.
Feedback
9.
Tips
10.
Berita
11.
Info
12.
Promo
X X X X
Keterangan : I=Insert
R=Read
U=Update
D=Delete
Tabel 4.10 Tabel Pemasukan IRUD (lanjutan)
181
v No
Nama Entitas
1.
Admin
2.
Buku
3.
Tarif Pengiriman
I
w
x
R U D I
R U D I
X X
X X
R U D X X
Barang 4.
Pesan
5.
Member
X
6.
Resep
X X
7.
Video
8.
Feedback
9.
Tips
10.
Berita
11.
Info
12.
Promo
X X
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 Kapasitas tabel kategori resep 55 byte
51
188
10. Estimasi tabel kode pembayaran Field
Type
Size
KodePembayaran
Int
4
Tanggal
Date
8
Pembayaran 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
membatasi
hak
dan akses
password bagi
yang
berguna
orang-orang
yang
untuk 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
Admin
Member
I
R
U
D
Buku
X
X
X
X
Berita
X
X
X
X
Feedback
X
X
Info
X
X
X
X
KategoriBuku
X
X
X
X
KategoriResep
X
X
X
X
KategoriVideo
X
X
X
X
KodePembayaran X
X
X
X
Login
X
X
X
X
Pesan
X
Promo
X
Registrasi
X
I
X
U
D
I
R
X
X
X
X
X
X
X
X
X
X
X
X X
X
X
X
X
X
Resep
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
Keterangan : I=Insert
U
X
X
X
R
Non Member
X
R=Read
X
U=Update
Tabel 4.12 Merancang Mekanisme keamanan
D=Delete
D
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 Buku Berita Admin
Info Promo
Login
Tarif Kirim
Home
Tips Resep Video
FoodRecipe Member FoodPlace Promo Video Store Tips Contact us
Gambar 4.9 Struktur Menu
199
4.2.2
Perancangan layar 1. Halaman Home Non Member
Banner Logo
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
Log In
Introducing to Healthy Living
Usernam e or Em ail :
Password :
Gambar healthyliving
Subm it Registration !!
Introducing PT. QBInternational Category Gam bar QB
Gambar QB - Info - Berita
PT. QUANTUM BUSSINES INTERNATIONAL
Gambar 4.10 Tampilan storyboard Home Non Member
200
2. Halaman Resep Non Member
Banner Logo
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
Resep : Search
cari
Info
Berita
PT. QUANTUM BUSSINES INTERNATIONAL
Gambar 4.11 Tampilan storyboard Resep Non Member atau Food Recipe
201
3. Halaman Tempat Makan / Food Place
Banner Logo
Home | Quest | Member | Resep | Videos | Tips | Food Place | Berita | Order |
Tempat Makan
Upload Nama Tempat Makan :
Nama Tempat makan Deskripsi :
Gambar/symbol tempat makan
Gambar : browser Deskripsi tempat makan
Upload
Nama Tempat makan
Gambar/symbol tempat makan Deskripsi tempat makan
PT. QUANTUM BUSSINES INTERNATIONAL
Gambar 4.12 Tampilan storyboard Tempat Makan atau Food Place
202
4. Halaman Video Non Member
Banner Logo
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
Video : Search
cari
Player Video Info
Deskripsi
Berita
PT. QUANTUM BUSINESS INTERNATIONAL
Gambar 4.13 Tampilan storyboard Video Non Member
203
5. Halaman Store Non Member
Banner Logo
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
Referensi Buku : Search Judul Buku cari
Gambar buku Category - Info - Berita
Deskripsi buku
Membeli Buku
PT. QUANTUM BUSINESS INTERNATIONAL
Gambar 4.14 Tampilan storyboard Store Non Member
204
6. Halaman Tips Non Member
Banner Logo
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
Tips : Search
cari
Info
Berita
PT. QUANTUM BUSSINES INTERNATIONAL
Gambar 4.15 Tampilan storyboard Tips Non Member
205
7. Halaman Contact Us Non Member dan Member
Banner Logo
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
CONTACT HEALTHY LIVING
Category
QUICK CONTACT
- Info - Berita
Username :
Email
:
PT. QUANTUM BUSSINES INTERNATIONAL ? Your Account
Gambar 4.16 Tampilan storyboard Contact Us Non Member dan Member
206
8. Halaman Home Member
Gambar 4.17 Tampilan Home Member dan non Member
207
9. Halaman Food Recipe Member
Banner Logo
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
Search
Resep :
cari
Upload Nama Resep : Isi Resep :
browser Upload
Info
Berita
PT. QUANTUM BUSSINES INTERNATIONAL ? Your Account
Gambar 4.18 Tampilan storyboard Food Recipe Member
208
10.
Halaman Tempat Makan atau Food Place Member
Banner Logo
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
Place : Search Nama Tempat makan cari
Gambar/symbol tempat makan
Deskripsi tempat makan
Info Nama Tempat makan
Gambar/symbol tempat makan
Deskripsi tempat makan
Berita
PT. QUANTUM BUSSINES INTERNATIONAL
Gambar 4.19 Tampilan storyboard Food Place Member
209
11.
Halaman Promo Member
Banner Logo
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
Promo : Search
cari
Info
Berita
PT. QUANTUM BUSSINES INTERNATIONAL
Gambar 4.20 Tampilan storyboard Promo Member
210
12.
Halaman Video Member
Banner Logo
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
Video : Search
cari
Player Video Info
Deskripsi
Berita
PT. QUANTUM BUSINESS INTERNATIONAL
Gambar 4.21 Tampilan storyboard Video Member
211
13.
Halaman Store Member
Banner Logo
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
Referensi Buku : Search Judul Buku cari
Gambar buku Category - Info - Berita
Deskripsi buku
Membeli Buku
PT. QUANTUM BUSINESS INTERNATIONAL
Gambar 4.22 Tampilan storyboard Store Member
212
14.
Halaman Tips Member
Banner Logo
Hom e | Quest | M em ber | R esep | Videos | Tips | Food Place | Berita | Order |
R esep : U pload N am a R esep : Isi R esep :
G am bar : brow ser U pload
Info
PT. QU AN TUM BU SSIN ES INTER N ATIO NAL
Gambar 4.23 Tampilan storyboard Tips Member
213
15.
Halaman Registrasi
Banner Logo
Home | Food Recipe | Food Place | Videos | Tips | Contact Us |
REGISTRATION Search
Username :
cari
Passsword :
Confirm Password :
Category Email : - Info - Berita Address :
Captcha
Submit
Reset
PT. QUANTUM BUSSINES INTERNATIONAL
Gambar 4.24 Tampilan storyboard Registrasi
214
16.
Halaman Home Admin
Gambar 4.25 Tampilan storyboard Home Admin
215
17.
Halaman Masuk Admin
Gambar 4.26 Tampilan storyboard Masuk Home Admin
216
18. Halaman Berita Admin
Gambar 4.27 Tampilan storyboard Berita Admin
217
19. Halaman Tempat Makan atau Food Place Admin
Banner Logo
Home | Quest | Member | Resep | Videos | Tips | Food Place | Berita | Order |
Tempat Makan
Upload Nama Tempat Makan :
Nama Tempat makan Deskripsi :
Gambar/symbol tempat makan
Gambar : browser Deskripsi tempat makan
Upload
Nama Tempat makan
Gambar/symbol tempat makan Deskripsi tempat makan
PT. QUANTUM BUSSINES INTERNATIONAL
Gambar 4.28 Tampilan storyboard tempat makan untuk Admin
218
20. Halaman Order untuk Admin
Gambar 4.29 Tampilan storyboard order untuk admin
219
21. Halaman Resep untuk Admin
B anner Logo
H o m e | Q u e s t | M e m b e r | R e s e p | V id e o s | T ip s | F o o d P la c e | B e rita | O rd e r |
R esep : U p lo a d N am a R esep : Is i R e s e p :
Gam bar : b ro w s e r U p lo a d
In fo
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
Gambar 4.30 Tampilan storyboard resep untuk admin
220
22.
Halaman Store untuk Admin
Gambar 4.31 Tampilan storyboard store untuk admin
221
23. Halaman Tips untuk Admin
Banner Logo
Home | Quest | Member | Resep | Videos | Tips | Food Place | Berita | Order |
Tips : Upload Nama Tips : Isi Tips :
Gambar : browser Upload
PT. QUANTUM BUSSINES INTERNATIONAL
Gambar 4.32 Tampilan storyboard tips untuk admin
222
24. Halaman Video untuk Admin
Banner Logo
Home | Food Recipe | Food Place | Promo | Videos | Store | Tips | Contact Us |
Video : Search
cari
Player Video Info
Deskripsi
Berita
PT. QUANTUM BUSINESS INTERNATIONAL
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
Setelah melakukan registrasi member bisa langsung melakukan login
Login
Home Login suskes
Login salah Tampilan Error
Tampilkan home member
Gambar 4.35 STD Registrasi dan Login
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
Home
Video Pilih Menu Video Tampilkan Halaman Video
Gambar 4.45 STD Unggah Video oleh Member
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 Waktu dalam minggu No
Kegiatan
1
1
Pembentukan Tim
X
2
Pengumpulan
2
3
X
X
4
5
6
7
8
X
X
X
X
9
10
11
12
X
X
Informasi 3
Perancangan
X
X
Database 4
Pembuatan Aplikasi
5
Implementasi
X
X
Database 6.
Masa Percobaan
7.
Evaluasi Aplikasi
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 artikelartikel 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 membaca tips yang disediakan
melihat tips atau
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.
262
1. Berusaha untuk konsisten.
Gambar 4.80 Tampilan layar pada Member yang konsisten
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 bukubuku 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
271
sistem tersebut. Sehingga public dan member tidak usah menghafal dimana letak halaman pengguna sekarang.