• Tidak ada hasil yang ditemukan

BAB IV PERANCANGAN SISTEM BASIS DATA. 1. Perancangan basis data konseptual (conceptual database design).

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV PERANCANGAN SISTEM BASIS DATA. 1. Perancangan basis data konseptual (conceptual database design)."

Copied!
173
0
0

Teks penuh

(1)

99

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.

(2)

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

(3)

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.

(4)

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

(5)

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

(6)

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

(7)

Promo 1..1 Diisi 1..* Admin

Tabel 4.2 Tabel Tipe Relationship

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

Resep IdResep IdResep

IdAdmin

IdMember

IdKategoriResep

NamaResep

Tips IdTips IdTips

IdAdmin

JudulTips

Video IdVideo IdVideo

IdKategori

Video

IdAdmin

JudulVideo

(25)

Admin IdAdmin Member IdMember Pesan - IdPesan - IdBuku feedback IdFeedBack memberi 1..* 1..1 melakukan 1..* 1..* Resep IdResep memasukan memasukan 1..* 1..* 1..* 1..* Video IdVideo Buku IdBuku TarifKirim IdTarifKirim memiliki 1..* 1..* memiliki 1..* 1..1 memasukan 1..1 1..* memperbaruhi 1..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.

(26)

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

(27)

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

(28)

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 Resep Member 0..* 0..* Resep Member 0..* 0..* Detail_Resep Id_Kategori_Resep 1..1 1..1 Admin Resep 1..* 1..* Detail_Resep Id_Kategori_Resep 1..1 1..1

(29)

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,

(30)

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)

(31)

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,

(32)

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,

(33)

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

(34)

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

(35)

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 (*:*)

(36)

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

(37)

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)

(38)

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

(39)

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

(40)

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

(41)

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 KodePem bayaran TotalPembayaran TanggalPesan IdMember IdTarifKirim IdBuku NamaBuku Qty Diskon Harga TanggalPem bayaran Status HargaTotal

(42)

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 NamaKategori Buku Harga IdAdmin NamaPengarang IdPenerbit IdPengarang NamaPenerbit

(43)

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

(44)

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

(45)

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

(46)

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 DeskripsiTempat Makan Harga Diskon TanggalDiskon

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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..1 0..* 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..1 Video PK IdVideo FK1 IdAdmin FK2 IdKategoriVideo JudulVideo Deskripsi 1..* 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..1 1..* 0..* 1..1

(57)

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

(58)

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

(59)

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

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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’

(66)

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

(67)

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

(68)

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

(69)

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

(70)

• 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

(71)

• 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

(72)

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

(73)

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

(74)

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

(75)

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

(76)

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

(77)

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

(78)

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

(79)

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)

(80)

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)

(81)

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)

(82)

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)

(83)

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

(84)

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

(85)

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

(86)

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

(87)

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

Gambar

Gambar 4.2 Model Konseptual dengan Primary key
Gambar 4.5 menghilangkan (*:*) Admin dengan Resep ResepMember0..*0..* ResepMember0..*0..*Detail_ResepId_Kategori_Resep1..11..1AdminResep1..*1..*Detail_ResepId_Kategori_Resep1..11..1
Gambar 4.12 Tampilan storyboard Tempat Makan atau Food Place
Gambar 4.13 Tampilan storyboard Video Non Member
+7

Referensi

Dokumen terkait

Setelah member melakukan pemesanan maka sistem secara otomatis menyimpan data tersebut didalam database dan data tersebut akan muncul dihalaman transaksi yang ada di admin.

Deskripsi : admin dapat melakukan pelunasan data pembelian dan cetak nota penjualan. Pre-kondisi : admin melakukan login untuk dapat mengakses halaman admin. Post-kondisi

Pre-condition Admin memilih menu tambah data konsultan Post-condition Sistem menampilkan halaman input data diri Failed end condition Sistem tidak menampilkan halaman input

Main Flow/ Basic Path Admin masuk ke halaman utama Admin dapat akses ke beranda Admin dapat mengelola beranda Alternate Flow/Invariant A -.. Deskripsi Use Case

a) Pengguna (admin) dapat melakukan login terlebih dahulu untuk mengakses halaman admin dengan memasukkan username dan password agar privasi pengguna

Di halaman utama Admin terdapat beberapa menu yaitu menu validasi data siswa, input nilai psikotes, input bobot kriteria, proses evaluasi dan pengaturan akun.. Menu Admin

Gambar 4.9 Tampilan menu untuk admin Login admin Halaman ini merupakan halaman untuk admin yang akan menambah produk, melihat pesanan dari member dengan mengisikan user name dan