173
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

BAB IV PERANCANGAN SISTEM BASIS DATA Perancangan …thesis.binus.ac.id/doc/Bab4/2012-1-00798-IF Bab4001.pdf · Pada entitas ini member ikan informasi detail tentang tarif barang antar

Embed Size (px)

Citation preview

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

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

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

Email

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

206

8. Halaman Home Member

Gambar 4.17 Tampilan Home Member dan non Member

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

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

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

218

20. Halaman Order untuk Admin

Gambar 4.29 Tampilan storyboard order 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

220

22. Halaman Store untuk Admin

Gambar 4.31 Tampilan storyboard store 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.

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 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

271

sistem tersebut. Sehingga public dan member tidak usah

menghafal dimana letak halaman pengguna sekarang.