BAB 4
PERANCANGAN DATABAS E DAN APLIKAS I
4.1 Tahapan Perancangan Database
Perancangan database yang dilakukan sesuai dengan kebutuhan informasi yang telah diidentifikasi pada Hotel Pandu Lakeside. Perancangan database di bagi menjadi 3 langkah, yaitu:
1. Perancangan konseptual
2. Perancangan logikal
3. Perancangan fisikal
4.1.1 Perancangan Database Konseptual
Berikut ini adalah tahap – tahap perancangan database konseptual, yaitu :
4.1.1.1 Pengidentifikasi Entitas
Table 4.1 : Table Pengidentifikasi Entitas
No Nama Entitas Deskripsi Alias Kejadian
1 M enu M erupakan entitas yang memberikan informasi mengenai makanan dan minuman yang tersedia
Setiap jenis makanan dan minuman yang dapat di pesan oleh pelanggan
2 Supplier M erupakan entitas yang memberikan informasi
mengenai data supplier
Pemasok Satu supplier dapat memasok satu atau lebih jenis bahan
mentah atau alat makan
No Nama Entitas Deskripsi Alias Kejadian 3 Karyawan M erupakan entitas yang
memberikan informasi mengenai data karyawan
Staff Setiap karyawan
memiliki tugas dalam setiap transaksi penjualan dan persediaan produk
4 Order Pembelian M erupakan entitas yang memberikan informasi mengenai bahan mentah atau alat makan yang akan di beli ke supplier
Pembelian Setiap order pembelian di buat oleh karyawan dan berisi banyak bahan mentah atau alat makan
5 Order Penjualan M erupakan entitas yang memberikan informasi mengenai produk-produk yang di pesan oleh pelanggan
Penjualan Setiap order penjualan dilakukan oleh satu costumer atau lebih
6 Pelanggan M erupakan entitas yang memberikan informasi mengenai data pelanggan
Costumer Setiap pelanggan
dapat membeli satu atau lebih jenis Produk
7 Pembayaran M erupakan entitas yang memberikan informasi mengenai pembayaran kepada supplier
Setiap pembelian
dapat dilakukan satu
atau lebih pembayaran
8 Penagihan M erupakan Entitas yang memberikan informasi mengenai penagihan
pembayaran terhadap pelanggan
Setiap penjualan
dapat dilakukan satu atau lebih penagihan
9 Alat M akan M erupakan entitas yang memberikan infromasi data jenis alat makan yang akan di beli ke pihak supplier
AM Setiap jenis alat
makan digunakan oleh restoran dan digunakan untuk pada
saat penyajian makanan
10 Bahan M entah M erupakan entitas yang memberikan infromasi data jenis bahan mentah yang akan di beli ke pihak supplier
BM Setiap jenis bahan mentah di beli oleh pihak restoran dan di
gunakan untuk membuat menu
11 Retur Beli M erupakan entitas yang memberikan informasi pengembalian barang pada pihak supplier
ReturBeli Setiap pengembalian barang yg telah dibeli dapat lebih dari satu jenis barang
4.1.1.2 Pengidentikasi Relationship
Table 4.2 : Table Pengidentifikasi Relationship
Nama Entitas M ultiplicity Relationship Nama Entitas M ultiplicity M enu 1..* 1..* 1..* 1..* Dimuat M enggunakan M enggunakan Dimuat Order Penjualan Alat M akan Bahan M entah Penagihan 1..* 1..* 1..* 1..* Bahan M entah 1..* 1..* 1..* Dimuat Dimuat Dimuat Order Pembelian Retur beli Pembayaran 1..* 0..* 1..* Alat M akan 1..* 1..* 1..* Dimuat Dimuat Dimuat Order Pembelian Retur beli Pembayaran 1..* 0..* 1..* Karyawan 1..1 1..1 1..1 1..1 1..1 M embuat M enangani M engurus M elakukan M elakukan Order Pembelian Order Penjualan Retur Beli Pembayaran Penagihan 0..* 0..* 0..1 0..* 0..* Pelanggan 1..1 1..1 M enerima M elakukan Penagihan Order Penjualan 1..1 1..* Supplier 1..1 1..1 1..1 M enerima M enerima M enyiapkan Pembayaran Retur Beli Order Pembelian 1..1 0..1 1..* Order Pembelian 1..1 Dimuat Retur Beli 0..*
4.1.1.3 Pengidentifikasian dan perhubungan Atribut dengan Entitas
Berikut ini adalah daftar table atribut pada model data konseptual
1.Table Entitas Order Pembelian
Table 4.3 : Table Entitas Order Pembelian
Atribut Deskripsi Panjang dan tipe data Null M ulti - valued
KdOB Kode order
pembelian
Varchar(20) No No
TglOB Tanggal transaksi
Datetime No No
TotalHarga Jumlah nominal
pembelian yang dilakukan
Int No No
2. Table Entitas Order Penjualan
Table 4.4 : Table Entitas Order Penjualan
Atribut Deskripsi Panjang dan tipe data Null M ulti - valued
KdOP Kode order
penjualan
Varchar(20) No No
TglOP Tanggal transaksi
Datetime No No
TotalHarga Total harga menu yang dipesan
3. Table Entitas M enu
Table 4.5 : Table Entitas M enu
Atribut Deskripsi Panjang dan tipe data Null M ulti - valued
KdM enu Kode menu Varchar(20) No No
NamaM enu Nama menu Varchar(20) No No
Harga M enu Harga menu Int No No
Qty Total menu yang
dipesan per hari
Int No No
4. Table Entitas Bahan M entah
Table 4.6 : Table Entitas Bahan M entah
Atribut Deskripsi Panjang dan tipe data Null M ulti – valued
KdBM Kode bahan
mentah
Varchar(20) No No
NamaBM Nama bahan
mentah
Varchar(20) No No
HargaBM Harga bahan
mentah
Int No No
SatuanBM Satuan bahan
mentah
Varchar(20) No No
Qty Total bahan
mentah yang tersedia
5. Table Entitas Alat M akan
Table 4.7 : T able Entitas Alat Makan
Atribut Deskripsi Panjang dan tipe data Null M ulti – valued
KdAM Kode alat makan Varchar(20) No No
NamaAM Nama alat
makan
Varchar(20) No No
HargaAM Harga alat
makan
Int No No
SatuanAM Satuan alat
makan
Varchar(20) No No
Qty Total alat makan
yang tersedia
Int No No
6. Table Entitas Karyawan
Table 4.8 : Table Entitas Karyawan
Atribut Deskripsi Panjang dan tipe data Null M ulti – valued
KdKaryawan Kode karyawan Varchar(20) No No
Namakaryawan Nama karyawan Varchar(20) No No Alamatkaryawan Alamat karyawan Varchar(20) No No TelpKaryawan No telepon karyawan Int No Yes
Qty Total pelanggan
yang di layani
Int No No
StatusKaryawan Status karyawan aktif atau tidak
7. Table Entitas Pelanggan
Table 4.9 : Table Entitas Pelanggan
Atribut Deskripsi Panjang dan tipe data Null M ulti – valued KdPelanggan Kode pelanggan Varchar(20) No No
NamaPelanggan Nama pelanggan Varchar(20) No No TelpPelanggan No telepon
pelanggan
Int No Yes
8. Table Entitas Supplier
Table 4.10 : Table Entitas Supplier
Atribut Deskripsi Panjang dan tipe data Null M ulti – valued
KdSupplier Kode supplier Varchar(20) No No
NamaSupplier Nama supplier Varchar(20) No No AlamatSupplier Alamat supplier Varchar(20) No No
TelpSupplier No telepon supplier
Int No Yes
9. Table Entitas Retur Beli
Table 4.11 : Table Entitas Retur Beli
Atribut Deskripsi Panjang dan tipe data Null M ulti – valued KdReturBeli Kode retur beli Varchar(20) No No
Atribut Deskripsi Panjang dan tipe data Null M ulti – valued TglReturBeli Tanggal retur
beli
10. Table Entitas Penagihan
Table 4.12 : Table Entitas Penagihan
Atribut Deskripsi Panjang dan tipe data Null M ulti – valued
KdPenagihan Kode Penagihan Varchar(20) No No TglPenagihan Tanggal tagihan
pembayaran
Datetime No No
JumlahPenagihan Jumlah penagihan
Int No No
11. Table Entitas Pembayaran
Table 4.13 : Table Entitas Pembayaran
Atribut Deskripsi Panjang dan tipe data Null M ulti – valued KdPembayaran Kode Pembayaran Varchar(20) No No TglPembayaran Tanggal pembayaran Datetime No No jumlahPembayaran Jumlah pembayaran Int No No
4.1.1.4 Penentuan Domain Atribut
1. Table Domain Atribut Order Pembelian
Table 4.14 : Domain Atribut Order Pembelian
Attribute Domain Value
KdOrderPembelian auto increment
TglOrderPembelian Datetime
TotalHarga Range value : 0-9, ','
2. Table Domain Atribut Order Penjualan
Table 4.15 : Table Domain Atribut Order Penjualan
Attribute Domain Value
KdOrderPenjualan auto increment
TglOrderPenjualan Datetime
TotalHarga Range value : 0-9, ','
3. Table Domain Atribut M enu
Table 4.16 : Domain Atribut M enu
Attribute Domain Value
KdM enu Range value : A-Z, 0-9
NamaM enu Range value : A-Z , a-z
HargaM enu Range value : 0-9
4. Table Domain Atribut Bahan M entah
Table 4.17 : Domain Atribut Bahan M entah
Attribute Domain Value
KdBahanM entah Range value : A-Z, 0-9
HargaBahanM entah Range value : A-Z, 0-9 SatuanBahanM entah Range value : A-Z, 0-9 NamaBahanM entah Range value : A-Z , a-z
Qty Range value : 0-9
5. Table Domain Atribut Alat M akan
Table 4.18 : Domain Atribut Alat M akan
Attribute Domain Value
KdAlatM akan Range value : A-Z, 0-9
NamaAlatM akan Range value : A-Z , a-z
HargaAlatM akan Range value : A-Z, 0-9
SatuanAlatM akan Range value : A-Z, 0-9
6. Table Domain Atribut Karyawan
Table 4.19 : Domain Atribut Karyawan
Attribute Domain Value
KdKaryawan Range value : A-Z, a-z, 0-9, '.', ',' NamaKaryawan Range value : A-Z, a-z, 0-9, '.', ',' AlamatKaryawan Range value : A-Z, a-z, 0-9, '.', ','
TelpKaryawan Range value : 0-9,’-‘
Qty Range value : 0-9
StatusKaryawan Range value : A-Z, a-z, 0-9, '.', ','
7. Table Domain Atribut Pelanggan
Table 4.20 : Domain Atribut Pelanggan
Attribute Domain Value
KdPelanggan Range value : A-Z, a-z, 0-9, '.', ',' NamaPelanggan Range value : A-Z, a-z, 0-9, '.', ','
TelpPelanggan Range value : 0-9,’-‘
8. Table Domain Atribut Supplier
Table 4.21 : Domain Atribut Supplier
Attribute Domain Value
KdSupplier Range value : A-Z, a-z, 0-9, '.', ',' NamaSupplier Range value : A-Z, a-z, 0-9, '.', ',' AlamatSupplier Range value : A-Z, a-z, 0-9, '.', ','
9. Table Domain Atribut Retur Beli
Table 4.22 : Domain Atribut Retur Beli
Attribute Domain Value
KdReturBeli auto increment
TglReturBeli Datetime
10. Table Domain Atribut Penagihan
Table 4.23 : Domain Atribut Penagihan
Attribute Domain Value
KdPenagihan auto increment
TglPenagihan Datetime
JumlahPenagihan Range value : 0-9
11. Table Domain Atribut Pembayaran
Table 4.24 : Domain Atribut Pembayaran
Attribute Domain Value
KdPembayaran auto increment
TglPembayaran Range value : A-Z, a-z, 0-9, '.', ','
4.1.1.5 Penentuan Atribut Primary key dan Candidate Key
T abel 4.25 Primary key dan Candidate Key
No Entitas Candidate key Primary key
1 Order Pembelian KdOB KdKaryawan KdAM KdBM KdSupplier
KdOB
2 Order Penjualan KdOP KdM enu KdPelanggan KdKaryawan KdOP 3 M enu KdM enu KdBM KdAM KdM enu 4 Bahan M entah KdBM KdBM
5 Alat M akan KdAM KdAM
6 Karyawan KdKaryawan KdKaryawan
7 Pelanggan KdPelanggan KdPelanggan
8 Supplier KdSupplier KdSupplier 9 Retur Beli KdReturBeli
KdSupplier KdKaryawan KdAM KdBM KdOB KdReturBeli 10 Pembayaran KdPembayaran KdSupplier KdKaryawan KdAM KdBM KdPembayaran 11 Penagihan KdPenagihan KdKaryawan KdPelanggan KdM enu KdPenagihan
4.1.1.6 Validasi Model Terhadap Adanya Perulangan
Tujuan dari langkah ini adalah untuk mengecek apakah terdapat redundansi dalam model yang telah dibentuk. Terdapat dua langkah dalam melakukan pengecekan ini, yaitu :
a. M engkaji kembali hubungan one-to-one (1:1)
• Hubungan entitas antara Pelanggan dengan Penagihan
Gambar 4.3 Hubungan one-to-one antara entitas
Entitas Pelanggan dengan entitas Penagihan tidak sama, karena entitas Pelanggan memberikan informasi mengenai data pelanggan sedangkan entitas Penagihan memberikan informasi mengenai penagihan pembayaran terhadap pelanggan.
b. M enghilangkan relasi yang redundan
Pada ER diagram konseptual yang dibuat terdapat redundansi karena ada beberapa informasi yang sama dapat diperoleh dari relasi yang lain yaitu :
Hubungan antara S upplier dengan ReturBeli
Gambar 4.4 ER Redundansi antara Supplier dengan ReturBeli
Setelah menghilangkan redundansi mejadi :
Gambar 4.5 Cek Model Redundansi antara S upplier dengan ReturBeli
Gambar 4.6 Entity Relationship Diagram dengan primary key setelah validasi model
4.1.1.7 Validasi Model konseptual lokal Pada Transaksi Pengguna
Berikut adalah transaksi yang ada : a) M anager membawahi Karyawan
b) Karyawan M elayani order penjualan yg di pesan pelanggan
c) Pelanggan melakukan order penjualan yang ada pada menu d) Karyawan M embuat Penagihan order yang dipesan oleh
pelanggan
e) Pelanggan M enerima Penagihan dari semua order yang dipesan
f) Karyawan membuat order pembelian untuk barang yang hampir habis atau habis
g) Supplier menerima order pembelian barang dari karyawan h) Karyawan membuat retur beli untuk barang yang rusak i) Karyawan melakukan pembayaran atas order pembelian j) Supplier menerima pembayaran atas order pembelian
Gambar 4.7 Entity Relationship Diagram setelah validasi model terhadap transaksi pengguna
4.1.2 Perancangan Database Logikal
Berikut ini adalah tahap-tahap perancangan database logical yaitu :
4.1.2.1 Menghilangkan Fitur yang Tidak Kompatibel dengan Model Relasional
Berikut ini adalah tahap-tahap dalam menghilangkan fitur-fitur yang tidak sesuai dengan model relasional
1. Menghilangkan Many-to-Many (*:*) Binary Relationship
a. Relasi Many-to-Many pada Entitas menu dan order penjualan akan menghasilkan entitas baru yaitu DetailM enu.
Gambar 4.8 ER DetailMenu
b. Relasi Many-to-Many pada Entitas menu dan bahan mentah akan menghasilkan entitas baru yaitu DetailBahanM entah.
Gambar 4.9 ER DetailBahanMentah
c. Relasi Many-to-Many pada Entitas menu dan alat makan akan menghasilkan entitas baru yaitu DetailAlatM akan.
Gambar 4.10 ER DetailAlatMakan
d. Relasi Many-to-Many pada Entitas Bahan M entah dan Order Pembelian akan menghasilkan entitas baru yaitu DetailPembelianBM
e. Relasi Many-to-Many pada Entitas Bahan M entah dan Retur Beli akan menghasilkan entitas baru yaitu DetailReturBM
Gambar 4.12 ER DetailReturBM
f. Relasi Many-to-Many pada Entitas Alat M akan dan Order Pembelian akan menghasilkan entitas baru yaitu DetailPembelianAM
Gambar 4.13 ER DetailPembelianAM
g. Relasi Many-to-Many pada Entitas Alat M akan dan Retur Beli akan menghasilkan entitas baru yaitu DetailReturAM .
Gambar 4.14 ER DetailReturAM
h. Relasi Many-to-Many pada Entitas M enu dan Penagihan akan menghasilkan entitas baru yaitu DetailPenagihan
Gambar 4.15 ER DetailPenagihan
i. Relasi Many-to-Many pada Entitas Alat M akan dan Pembayaran akan menghasilkan entitas baru yaitu DetailPembayaranAM
j. Relasi Many-to-Many pada Entitas Bahan M entah dan Pembayaran akan menghasilkan entitas baru yaitu DetailPembayaranBM
Gambar 4.17 ER DetailPembayaranBM
2. Menghilangkan Many-to-Many (*:*) Recursive Relationship Tidak ada recursive relation
3. Menghilangkan Multi-Valued Atribut
a. Atribut Multi-Valued TelpSupplier pada entitas Supplier di hilangkan dengan M enghasilkan sebuah entitas baru yaitu entitas TelpSupplier. Supplier KdSupplier NamaSupplier AlamatSupplier TelpSupplier
Gambar 4.18 ER TelpS upplier
b. Atribut Multi-Valued TelpPelanggan pada entitas Pelanggan di hilangkan dengan M enghasilkan sebuah entitas baru yaitu entitas TelpPelanggan. Pelanggan KdPelanggan NamaPelanggan TelpPelanggan Gambar 4.19 ER TelpPelanggan
c. Atribut Multi-Valued TelpKaryawan pada entitas Karyawan dihilangkan dengan M enghasilkan sebuah entitas baru yaitu entitas Telp_Karyawan. Karyawan KdKaryawan NamaKaryawan AlamatKaryawan TelpKaryawan Qty StatusKaryawan
Gambar 4.20 TelpKaryawan
4.1.2.2 Memperoleh Relasi bagi Model Data logikal Lokal Berikut adalah tahap-tahap memperoleh relasi bagi model data logikal lokal :
1. Mengidentifikasi Strong Entity
OrderPembelian (KdOB, TglOB, TotalHarga, KdKaryawan, KdSupplier, KdAM , KdBM )
Primary Key : KdOB
OrderPenjualan (KdOP, TglOP, TotalHarga, KdPelanggan, KdM enu, KdKaryawan)
Primary Key : KdOP
Menu (KdM enu, NamaM enu, HargaM enu, KdBM , KdAM, Qty)
BahanMentah (KdBM, NamaBM , HargaBM , SatuanBM , Qty)
Primary Key : KdBM
AlatMakan (KdAM , NamaAM , HargaAM , SatuanAM , Qty) Primary Key : KdAM
Karyawan (KdKaryawan, NamaKaryawan,
AlamatKaryawan, TelpKaryawan, Qty, StatusKaryawan ) Primary Key : KdKaryawan
Pelanggan (KdPelanggan, NamaPelanggan, TelpPelanggan) Primary Key : KdPelanggan
Supplier (KdSupplier, NamaSupplier, AlamatSupplier, TelpSupplier)
Primary Key : KdSupplier
Retur Beli (KdReturBeli, TglRetur, KdKaryawan, KdSupplier)
Penagihan (KdPenagihan, TglPenagihan, KdKaryawan, KdPelanggan , JumlahPenagihan, Kdmenu)
Primary Key : KdPenagihan
Pembayaran (KdPembayaran, TglPembayaran, JumlahPembayaran, KdKaryawan, KdSupplier, KdBM , KdAM )
Primary Key : KdPembayaran
2. Mengidentifikasi Weak Entity
DetailPenjualanMenu (KdOP, KdM enu) Primary Key : KdOP, KdM enu
DetailMenuAM (Kdmenu, KdAM ) Primary Key : KdM enu, KdAM
DetailMenuBM (KdM enu, KdBM ) Primary Key : KdM enu, KdBM
DetailPembelianBM (KdOB, KdBM ) Primary Key : KdOB, KdBM
DetailReturBM (KdReturBeli, KdBM ) Primary Key : KdReturBeli, KdBM
DetailPembelianAM (KdOB, KdAM ) Primary Key : KdOB, KdAM
DetailReturAM (KdReturBeli, KdAM ) Primary Key : KdReturBeli, KdAM
DetailPenagihan (KdPenagihan, KdM enu) Primary Key : KdPenagihan, KdM enu
DetailPembayaranAM (KdPembayaran, KdAM ) Primary Key : KdPembayaran, KdAM
DetailPembayaranBM (KdPembayaran, KdBM ) Primary Key : KdPembayaran, KdBM
TelpS upplier (KdSupplier, @TelpSupplier) Primary Key : TelpSupplier
TelpKaryawan (KdKaryawan, @TelpKaryawan) Primary Key : TelpKaryawan
TelpPelanggan (KdPelanggan, @TelpPelanggan) Primary Key : TelpPelanggan
3. Mengidentifikasi Relasi One-To-Many (1:*)
a. Karyawan dengan OrderPembelian untuk Relasi 1:* M engerjakan
Karyawan ( OrderPembelian ( KdKaryawan, KdOB, TglOB, NamaKaryawan, TotalHarga,
AlamatKaryawan, KdKaryawan,
qty, KdSupplier )
StatusKaryawan ) Primary Key : Primary Key : KdKaryawan KdOB
Foreign Key :
KdKaryawan
Reference :
Karyawan
b. Karyawan dengan OrderPenjualan untuk Relasi 1:* M engerjakan
KdKaryawan, KdOP, TglOP, NamaKaryawan, TotalHarga, Qty, AlamatKaryawan, KdKaryawan,
Qty, KdPelanggan)
StatusKaryawan) Primary Key : Primary Key : KdKaryawan KdOP
Foreign Key :
KdKaryawan
Reference :
Karyawan
c. Karyawan dengan Pembayaran untuk Relasi 1:* M engerjakan Karyawan ( Pembayaran ( KdKaryawan, KdPembayaran, NamaKaryawan, TglPembayaran, AlamatKaryawan, JumlahPembayaran, Qty, KdSupplier, StatusKaryawan) KdKaryawan )
Primary Key : KdKaryawan Primary Key : KdPembayaran
Foreign Key :
KdKaryawan
Reference :
Karyawan
d. Karyawan dengan Penagihan untuk Relasi 1:* M engerjakan Karyawan ( Penagihan ( KdKaryawan, KdPenagihan, NamaKaryawan, TglPenagihan, AlamatKaryawan, JumlahPenagihan, Qty, KdPelanggan, StatusKaryawan) KdKaryawan) Primary Key : KdKaryawan Primary Key :
KdPenagihan
Foreign Key :
KdKaryawan
Reference :
e. Pelanggan dengan OrderPenjualan untuk Relasi 1:* M engerjakan
Pelanggan ( OrderPenjualan ( KdPelanggan, KdOP, TglOP, NamaPelanggan, TotalHarga, Qty,
TelpPelanggan) KdKaryawan,
Primary Key : KdPelanggan KdPelanggan) Primary Key : KdOP Foreign Key : KdPelanggan Reference : Pelanggan
f. Supplier dengan OrderPembelian untuk Relasi 1:* M engerjakan
Supplier ( OrderPembelian ( KdSupplier, KdOB, TglOB, NamaSupplier, TotalHarga,
AlamatSupplier ) KdSupplier ) Primary Key : KdSupplier Primary Key :
KdOB
Foreign Key :
KdSupplier
Reference :
Supplier
g. OrderPembelian dengan ReturBeli untuk Relasi 1:* M engerjakan
OrderPembelian ( ReturBeli ( KdOB, TglOB, KdReturBeli, TotalHarga) TglReturBeli, Primary Key : KdOB KdKaryawan,
KdSupplier , Primary Key : KdReturBeli Foreign Key : KdOB Reference : OrderPembelian
4. Mengidentifikasi Relasi One-To-One (1:1)
a. Pelanggan dengan Penagihan untuk Relasi 1:1 M enghasilkan
Pelanggan ( Penagihan ( KdPelanggan, NamaPelanggan, KdPenagihan, TlpPelanggan) TglPenagihan, Primary Key : KdPelanggan JumlahPenagihan,
KdKaryawan, KdPelanggan) Primary Key : KdPenagihan Foreign Key : KdPelanggan Reference : Pelanggan
5. Mengidentifikasi Relasi Many-To-Many (*:*)
a. Menu ( OrderPenjualan (
KdM enu, Qty, KdOP, TglOP,
NamaM enu, TotalHarga, Qty,
Primary Key : KdKaryawan)
KdM enu Primary Key :
KdOP
KdMenu dengan
DetailMenu untuk model Relasi *:* M emiliki KdOP dengan DetailMenu untuk model Relasi *:* M enambah
DetailMenu (KdOP, KdM enu) Primary Key : KdOP, KdM enu
Foreign Key : KdOP referensi OrderPenjualan Foreign Key : KdM enu referensi M enu
b. Menu ( AlatMakan ( KdM enu, Qty, KdAM , Qty, NamaM enu, NamaAM ,
HargaM enu) HargaAM , Primary Key : SatuanAM ) KdM enu Primary Key :
KdAM
KdMenu dengan DetailAM untuk model Relasi *:* M emiliki KdAM dengan DetailAM untuk model Relasi *:* M enambah
DetailAM (KdM enu, KdAM) Primary Key : KdM enu, KdAM Foreign Key : KdM enu referensi M enu Foreign Key : KdAM referensi AlatM akan
c. Menu ( BahanMentah (
KdM enu, Qty, KdBM , Qty,
HargaM enu) HargaBM ,
Primary Key : SatuanBM )
KdM enu Primary Key :
KdBM
KdMenu dengan DetailBM untuk model Relasi *:* M emiliki KdBM dengan DetailBM untuk model Relasi *:* M enambah DetailBM (KdM enu, KdBM ) Primary Key : KdM enu, KdBM
Foreign Key : KdM enu referensi M enu Foreign Key : KdBM referensi BahanM entah
d. BahanMentah ( OrderPembelian (
KdBM , Qty, KdOB, TglOB,
HargaBM , KdKaryawan,
SatuanBM ) KdSupplier)
Primary Key : Primary Key :
KdBM KdOB
KdBM dengan
DetailPembelianBM untuk model Relasi *:* M emiliki KdOB dengan DetailPembelianBM untuk model Relasi *:* M enambah DetailPembelianBM (KdOB, KdBM ) Primary Key : KdOB, KdBM
Foreign Key : KdOB referensi OrderBarang Foreign Key : KdBM referensi BahanM entah
e. BahanMentah ( ReturBeli (
KdBM , Qty, KdReturBeli,
HargaBM , KdKaryawan,
SatuanBM ) KdSupplier)
Primary Key : Primary Key :
KdBM KdReturBeli
KdBM dengan
DetailReturBM untuk model Relasi *:* M emiliki KdReturBeli dengan DetailReturBM untuk model Relasi *:* M enambah DetailReturBM (KdReturBeli, KdBM ) Primary Key : KdReturBeli, KdBM
Foreign Key : KdReturBeli referensi ReturBeli Foreign Key : KdBM referensi BahanM entah
f. AlatMakan ( OrderPembelian (
KdAM , Qty, KdOB, TglOB,
HargaAM , KdKaryawan,
SatuanAM ) KdSupplier)
Primary Key : Primary Key :
KdAM KdOB
KdAM dengan
DetailPembelianAM untuk model Relasi *:* M emiliki KdOB dengan DetailPembelianAM untuk model Relasi *:* M enambah
DetailPembelianAM (KdOB, KdAM ) Primary Key : KdOB, KdAM
Foreign Key : KdOB referensi OrderBarang Foreign Key : KdAM referensi AlatM akan
g. AlatMakan ( ReturBeli (
KdAM , Qty, KdReturBeli,
HargaAM , KdKaryawan,
SatuanAM ) KdSupplier)
Primary Key : Primary Key :
KdAM KdReturBeli
KdAM dengan
DetailReturAM untuk model Relasi *:* M emiliki KdReturBeli dengan DetailReturAM untuk model Relasi *:* M enambah
DetailReturAM (KdReturBeli, KdAM ) Primary Key : KdReturBeli, KdAM
Foreign Key : KdReturBeli referensi ReturBeli Foreign Key : KdAM referensi AlatM akan
h. Menu ( Penagihan (
KdM enu, Qty, KdPenagihan,
HargaM enu) JumlahPenagihan, Primary Key : KdKaryawan,
KdM enu KdPelanggan)
Primary Key :
KdPenagihan
KdMenu dengan
DetailPenagihan untuk model Relasi *:* M emiliki KdPenagihan dengan DetailPenagihan untuk model Relasi *:* M enambah
DetailPenagihan (KdPenagihan, KdM enu) Primary Key : KdPenagihan, KdM enu
Foreign Key : KdPenagihan referensi Penagihan Foreign Key : KdM enu referensi M enu
i. BahanMentah ( Pembayaran (
NamaBM , TglPembayaran,
HargaBM , JumlahPembayaran,
SatuanBM ) KdKaryawan,
Primary Key : KdSupplier)
KdBM Primary Key :
KdPembayaran
KdBM dengan
DetailPembayaranBM untuk model Relasi *:* M emiliki KdPembayaran dengan DetailPembayaranBM untuk model Relasi *:* M enambah DetailPembayaranBM (KdPembayaran, KdBM ) Primary Key : KdPembayaran, KdBM
Foreign Key : KdPembayaran referensi Pembayaran Foreign Key : KdBM referensi BahanM entah
j. AlatMakan ( Pembayaran (
KdAM , Qty, KdPembayaran,
NamaAM , TglPembayaran,
HargaAM , JumlahPembayaran,
SatuanAM ) KdKaryawan,
Primary Key : KdSupplier)
KdAM Primary Key :
KdPembayaran
KdAM dengan
DetailPembayaranAM untuk model Relasi *:* M emiliki KdPembayaran dengan DetailPembayaranAM untuk model Relasi *:* M enambah
DetailPembayaranAM (KdPembayaran, KdAM ) Primary Key : KdPembayaran, KdAM
Foreign Key : KdPembayaran referensi Pembayaran Foreign Key : KdAM referensi AlatM akan
6. Mengidentifikasi Mutlti-Valued Atribut
a. KdS upplier dengan TelpSupplier untuk model relas i multi-valued M empunyai
Supplier ( TelpS upplier ( KdSupplier, TelpSupplier, NamaSupplier, KdSupplier ) AlamatSupplier, Primary Key : TelpSupplier) TelpSupplier Primary Key : Foreign Key : KdSupplier KdSupplier
Reference : Supplier
b. KdPelanggan dengan TelpPelanggan untuk model relas i multi-valued M empunyai
Pelanggan ( TelpPelanggan ( KdPelanggan, KdPelanggan, NamaPelanggan, TelpPelanggan) TelpPelanggan) Primary Key :
Primary Key : Foreign Key : KdPelanggan KdPelanggan
Reference : Pelanggan
c. KdKaryawan dengan TelpKaryawan untuk model relas i multi-valued M empunyai
Karyawan ( TelpKaryawan ( KdKaryawan, KdKaryawan, NamaKaryawan, TelpKaryawan) TelpKaryawan, Primary Key : AlamatKaryawan) KdKaryawan Primary Key : Foreign Key :
KdKaryawan KdKaryawan
Reference :
4.1.2.3 Memvalidasi Relasi Menggunakan Normalisasi
a. Normalisasi
Normalisasi adalah teknik untuk mengorganisasikan data ke dalam tabel untuk memenuhi kebutuhan organisasi. Sistem sudah dalam bentuk normalisasi pertama karena sistem sudah ditentukan primary key-nya pada perancangan konseptual dan pada fitur yang tidak kompatibel telah dihilangkan atribut multi-value. M aka pada tahap selanjutnya adalah menghilangkan ketergantungan parsial (Partial Depedency) sehingga memenuhi aturan 2NF (Second Normal Form)dan menghilangkan ketergantungan transitif (Transitive Depedency) sehingga memenuhi aturan 3NF (Third Normal Form).
Entitas Order Pembelian :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Order Pembelian = @KdOB, TglOB, TotalHarga, KdKaryawan, KdSupplier
Entitas Order Penjualan :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Order Penjualan = @KdOP, TglOP, TotalHarga, KdPelanggan, Qty, KdKaryawan
Entitas Menu :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
M enu = @ KdM enu, NamaM enu, HargaM enu,Qty
Entitas Bahan Mentah :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Entitas Alat Makan :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Alat M akan = @KdAM , NamaAM , HargaAM , SatuanAM ,Qty
Entitas Karyawan :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Karyawan = @KdKaryawan, NamaKaryawan, AlamatKaryawan, Qty, StatusKaryawan
Entitas Pelanggan :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Entitas S upplier :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Supplier = @KdSupplier, NamaSupplier, AlamatSupplier, TelpSupplier
Entitas Retur Beli :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Retur Beli = @KdReturBeli, TglReturBeli, KdKaryawan, KdSupplier
Entitas Penagihan :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Penagihan = @KdPenagihan, T glPenagihan, Kdkaryawan, KdPelanggan, JumlahPenagihan
Entitas Pembayaran :
Entitas ini sudah memenuhi 1NF dan 2NF
3NF
Pembayaran = @KdPembayaran, TglPembayaran,
Kdkaryawan, Kdsupplier, JumlahPembayaran
Entitas DetailMenu
DetailM enu = @KdOP, @KdM enu
(Entitas diatas sudah normal)
Entitas DetailAM
DetailAM = @KdM enu, @KdAM
(Entitas diatas sudah normal)
Entitas DetailBM
DetailBM = @KdM enu, @KdBM
Entitas DetailPenagihan
DetailPenagihanM enu = @KdPenagihan, @KdM enu
(Entitas diatas sudah normal)
Entitas DetailPembelianAM
DetailPembelianAM : @KdOB, @KdAM
(Entitas diatas sudah normal)
Entitas DetailPembayaranAM
DetailPembelianAM = @KdPembayaran, @KdAM
(Entitas diatas sudah normal)
Entitas DetailReturAM
DetailReturAM = @KdReturBeli, @KdAM
Entitas DetailPembelianBM
DetailPembelianBM : @KdOB, @KdBM
(Entitas diatas sudah normal)
Entitas DetailPembayaranBM
DetailPembelianBM = @KdPembayaran, @KdBM
(Entitas diatas sudah normal)
Entitas DetailReturBM
DetailReturBM = @KdReturBeli, @KdBM
(Entitas diatas sudah normal)
Entitas Telp Supplier
TelpSupplier = @TelpSupplier, KdSupplier
Entitas Telp Pelanggan
TelpPelanggan = @TelpPelanggan, KdPelanggan
(Entitas diatas sudah normal)
Entitas Telp Karyawan
TelpKaryawan = @TelpKaryawan, KdKaryawan
(Entitas diatas sudah normal)
Hasil validasi normalisasi
• ReturBeli (@KdReturBeli, TglRetur, KdKaryawan, KdSupplier)
Primary Key : KdReturBeli
Foreign Key : KdKaryawan reference karyawan (KdKaryawan)
Foreign Key : KdSupplier reference Supplier (KdSupplier)
• Penagihan (@KdPenagihan, T glPenagihan, KdKaryawan, KdPelanggan, JumlahPenagihan)
Primary Key : KdPenagihan
Foreign Key : KdKaryawan reference karyawan (KdKaryawan)
Foreign Key : KdPelanggan reference Pelanggan (KdPelanggan)
• Pembayaran (@KdPembayaran, TglPembayaran, JumlahPembayaran, KdKaryawan, KdSupplier)
Primary Key : KdPembayaran
Foreign Key : KdKaryawan reference karyawan (KdKaryawan)
Foreign Key : KdSupplier reference Supplier (KdSupplier)
• Order Penjualan (@KdOP, TglOP, TotalHarga, KdPelanggan, Qty, KdKaryawan)
Primary Key : KdOP
Foreign Key : KdKaryawan reference karyawan (KdKaryawan)
Foreign Key : KdPelanggan reference Pelanggan (KdPelanggan)
• Order Pembelian (@KdOB, TglOB, TotalHarga, KdKaryawan, KdSupplier)
Primary Key : KdOB
Foreign Key : KdKaryawan reference karyawan (KdKaryawan)
Foreign Key : KdSupplier reference Supplier (KdSupplier)
• DetailPenjualanMenu (@KdOP, @KdMenu)
Primary Key : KdOP, KdM enu
Foreign Key : KdOP reference Order Penjualan (KdOP)
• DetailMenuBM (@KdMenu, @KdBM)
Primary Key : KdM enu, KdBM
Foreign Key : KdM enu reference M enu (KdM enu)
Foreign Key : KdBM reference BahanM entah (KdBM )
• DetailMenuAM (@KdMenu, @KdAM)
Primary Key : KdM enu, KdAM
Foreign Key : KdM enu reference M enu (KdM enu)
Foreign Key : KdAM reference AlatM akan (KdAM )
• DetailPembelianBM (@KdBM, @KdOB)
Primary Key : KdBM , KdOB
Foreign Key : KdBM reference BahanM entah(KdBM )
Foreign Key : KdOB reference OrderPembelian (KdOB)
• DetailReturBM (@KdReturBeli, @KdBM)
Foreign Key : KdReturBeli reference ReturBeli (KdReturBeli)
Foreign Key : KdBM reference BahanM entah (KdBM )
• DetailPembelianAM (@KdAM, @KdOB)
Primary Key : KdAM , KdOB
Foreign Key : KdAM reference AlatM akan(KdAM ) ON
Foreign Key : KdOB reference OrderPembelian (KdOB)
• DetailReturAM (@KdReturBeli, @KdAM)
Primary Key : KdReturBeli, KdAM
Foreign Key : KdReturBeli reference ReturBeli (KdReturBeli)
Foreign Key : KdAM reference AlatM akan (KdAM )
• DetailPenagihan (@KdPenagihan, @KdMenu)
Foreign Key : KdPenagihan reference Penagihan (KdPenagihan)
Foreign Key : KdM enu reference M enu (KdM enu)
• DetailPembayaranBM (@KdPembayaran, @KdBM)
Primary Key : KdPembayaran, KdBM
Foreign Key : KdPembayaran reference Pembayaran (KdPembayaran)
Foreign Key : KdBM reference BahanM entah (KdBM )
• DetailPembayaranAM (@KdPembayaran, KdAM)
Primary Key : KdPembayaran, KdAM
Foreign Key : KdPembayaran reference Pembayaran (KdPembayaran)
Foreign Key : KdAM reference AlatM akan (KdAM )
• TelpSupplier (KdSupplier, @TelpSupplier)
Foreign Key : KdSupplier reference Supplier (KdSupplier)
• TelpPelanggan (KdPelanggan, @TelpPelanggan)
Primary Key : TelpPelanggan
Foreign Key : KdPelanggan reference Pelanggan (KdPelanggan)
• TelpKaryawan (KdKaryawan, @TelpKaryawan)
Primary Key : TelpKaryawan
Foreign Key : KdKaryawan reference Karyawan (KdKaryawan)
4.1.2.4 Mengecek integrity Constraint
• Bahan Mentah = @KdBM, NamaBM, HargaBM, SatuanBM , Qty
• Alat Makan = @KdAM, NamaAM, HargaAM, SatuanAM , Qty
Primary Key : KdAM
• Karyawan = @KdKaryawan, NamaKaryawan, AlamatKaryawan, TelpKaryawan, Qty
Primary Key : KdKaryawan
• Pelanggan = @KdPelanggan, NamaPelanggan
Primary Key : KdPelanggan
• Supplier = @KdSupplier, NamaSupplier, AlamatSupplier,
Primary Key : KdSupplier
• ReturBeli = @KdReturBeli, TglReturBeli, KdKaryawan, KdSupplier
Foreign Key : KdKaryawan reference karyawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdSupplier reference Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION
• Penagihan = @KdPenagihan, TglPenagihan, KdKaryawan, KdPelanggan, JumlahPenagihan
Primary Key : KdPenagihan
Foreign Key : KdKaryawan reference karyawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdPelanggan reference Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION
• Pembayaran = @KdPembayaran, TglPembayaran, JumlahPembayaran, KdKaryawan, KdSupplier
Primary Key : KdPembayaran
Foreign Key : KdKaryawan reference karyawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdSupplier reference Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION
• Menu = @KdMenu, NamaMenu, HargaMenu
Primary Key : KdM enu
• OrderPenjualan = @KdOP, TglOP, TotalHarga, KdPelanggan, Qty, KdKaryawan
Primary Key : KdOP
Foreign Key : KdKaryawan reference karyawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdPelanggan reference Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION
• OrderPembelian = @KdOB, TglOB, TotalHarga, KdKaryawan, KdSupplier
Primary Key : KdPembelian
Foreign Key : KdKaryawan reference karyawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdSupplier reference Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailMenu (@KdOP, @KdMenu)
Primary Key : KdOP, KdM enu
Foreign Key : KdOP reference Order Penjualan (KdOP) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdM enu reference M enu (KdM enu) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailBM (@KdMenu, @KdBM)
Foreign Key : KdM enu reference M enu (KdM enu) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdBM reference BahanM entah (KdBM ) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailAM (@KdMenu, @KdAM)
Primary Key : KdM enu, KdAM
Foreign Key : KdM enu reference M enu (KdM enu) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdAM reference AlatM akan (KdAM ) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailPembelianBM (@KdBM, @KdOB)
Primary Key : KdBM , KdOB
Foreign Key : KdBM reference BahanM entah(KdBM ) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdOB reference OrderPembelian (KdOB) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailReturBM (@KdReturBeli, @KdBM)
Primary Key : KdReturBeli, KdBM
Foreign Key : KdReturBeli reference ReturBeli (KdReturBeli) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdBM reference BahanM entah (KdBM ) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailPembelianAM (@KdAM, @KdOB)
Primary Key : KdAM , KdOB
Foreign Key : KdAM reference AlatM akan(KdAM ) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdOB reference OrderPembelian (KdOB) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailReturAM (@KdReturBeli, @KdAM)
Foreign Key : KdReturBeli reference ReturBeli (KdReturBeli) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdAM reference AlatM akan (KdAM ) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailPenagihan (@KdPenagihan, @KdMenu)
Primary Key : KdPenagihan, KdM enu
Foreign Key : KdPenagihan reference Penagihan (KdPenagihan) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : KdM enu reference M enu (KdM enu) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailPembayaranBM (@KdPembayaran, @KdBM)
Primary Key : KdPembayaran, KdBM
Foreign Key : KdPembayaran reference Pembayaran (KdPembayaran) ON UPDATE CASCADE ON DELETE
Foreign Key : KdBM reference BahanM entah (KdBM ) ON UPDATE CASCADE ON DELETE NO ACTION
• DetailPembayaranAM (@KdPembayaran, KdAM)
Primary Key : KdPembayaran, KdAM
Foreign Key : KdPembayaran reference Pembayaran (KdPembayaran) ON UPDATE CASCADE ON DELETE
NO ACTION
Foreign Key : KdAM reference AlatM akan (KdAM ) ON UPDATE CASCADE ON DELETE NO ACTION
• TelpSupplier (KdSupplier, @TelpSupplier)
Primary Key : TelpSupplier
Foreign Key : KdSupplier reference Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION
• TelpPelanggan (KdPelanggan, @TelpPelanggan)
Primary Key : TelpPelanggan
Foreign Key : KdPelanggan reference Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION
• TelpKaryawan (KdKaryawan, @TelpKaryawan)
Primary Key : TelpKaryawan
Foreign Key : KdKaryawan reference Karyawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
4.1.2.5 Pembuatan Model Basis Data Logikal Global
4.1.3 Perancangan Database Fisikal
4.1.3.1 Menentukan DBMS
Pemilihan DBM S ini merupakan hal yang dilakukan untuk menentukan DBM S apa yang nantinya akan digunakan oleh perusahaan. DBM S yang menjadi pertimbangan adalah : SQL Server 2005.
Berikut adalah pertimbangan yang menjadi faktor dalam memilih DBM S:
Tabel 4.26 Memilih DBMS
Keterangan SQL Server2005
Tipe DBMS Transactional Database Server
Biaya $647 to $1,799
(Standart Edition) Kebutuhan Piranti
Keras
Intel Core 2 Duo CPU T6600 @2.20GHz, 1GB , 380M B Harddisk space
Kebutuhan Piranti Lunak
Windows XP SP2, Windows 7 dan VB express
Kelebihan M endukung kehandalan dan keamanan enterprise, dapat menjalankan database dalam satu server
Kekurangan Biaya cukup tinggi memerlukan SQL Server2005 dan Windows XP SP2
Keterbatasan Database
Terbatas mendekati miliaran obyek dalam database
Kehandalan M endukung failover cluster, pemilihan point in time, dapat melakukan restart jika terhenti
Keamanan M enggunakan authentifikasi dengan pilihan untuk menyatukan keamanan database dengan keamanan Windows XP SP2
Platform
Tabel 4.27 Platform
SQL Server 2005 Windows-based (termasuk Windows Xp, Windows 2000) Platform adalah sebuah perangkat lunak yang dapat digunakan di beberapa sistem operasi yang berbeda.
Hardware
Tabel 4.28 Hardware
Keterangan SQL Server 2005
Processor Pentium 166MHZ atau lebih
Memori 1GB RAM (minimal untuk
desktop engine), 2 GB (minimal untuk semua edisi)
Harddisk Space 270M B (full installation),
250M B (typical installation), 95M B (minimal), desktop engine : 44M B, analysis Servise : minimal 50 dan 130M B, typical English
4.1.3.2 Menterjemahkan Global Logikal Data Model untuk Target DBMS
Merancang base relations
Domain KodeOB : Variable character, length 20
Domain TanggalOB : Datetime, length 8
Domain TotalHarga : Integer , length 12
Order Pembelian(
KdOB KodeOB NOT NULL,
TglOB TanggalOB NOT NULL,
TotalHarga TotalHarga NOT NULL,
Primary Key (KdOB) );
Domain KodeOP : Variable character, length 20
Domain TanggalOP : Datetime, length 8
Order Penjualan (
KdOP KodeOP NOT NULL,
TglOP TanggalOP NOT NULL,
TotalHarga TotalHarga NOT NULL,
Primary Key (KdOP) );
Domain KodeAM : Variable character, length 20
Domain NamaAM : Variable character, length 20
Domain HargaAM : Integer , length 12
Domain SatuanAM : Variable character, length 20
Domain Qty : Integer , length 12
Alat M akan (
KdAM KodeAM NOT NULL,
NamaAM NamaAM NOT NULL,
HargaAM HargaAM NOT NULL,
Qty Qty NOT NULL
Primary Key (KdAM ) );
Domain KodeBM : Variable character, length 20
Domain NamaBM : Variable character, length 20
Domain HargaBM : Integer , length 12
Domain SatuanBM : Variable character, length 128
Domain Qty : Integer , length 12
Bahan M entah (
KdBM KodeBM NOT NULL,
NamaBM NamaBM NOT NULL,
HargaBM HargaBM NOT NULL,
SatuanBM SatuanBM NOT NULL,
Qty Qty NOT NULL,
Domain KdM enu : Variable character, length 20
Domain NamaM enu : Variable character, length 20
Domain HargaM enu : Integer , length 12
Domain Qty : Integer , length 12
M enu (
KdM enu KodeM enu NOT NULL,
NamaM enu NamaM enu NOT NULL,
HargaM enu HargaM enu NOT NULL ,
Qty Qty NOT NULL,
Primary Key (KdM enu) );
Domain KodePelanggan : Integer , length 12
Domain NamaPelanggan : Variable character, length 20
Pelanggan (
KdPelanggan KodePelanggan NOT NULL,
NamaPelanggan NamaPelanggan NOT NULL,
TelpPelanggan TeleponPelanggan NOT NULL,
Primary Key (KdPelanggan) );
Domain KodeSupplier : Variable character, length 20
Domain NamaSupplier : Variable character, length 20
Domain AlamatSupplier : Variable character, length 20
Domain TeleponSupplier : Integer , length 12
Supplier (
KdSupplier KodeSupplier NOT NULL,
NamaSupplier NamaSupplier NOT NULL,
AlamatSupplier AlamatSupplier NOT NULL,
TelpSupplier TeleponSupplier NOT NULL,
Domain KodeKaryawan : Variable character, length 20
Domain NamaKaryawan : Variable character, length 20
Domain AlamatKaryawan : Variable character, length 20
Domain TeleponKaryawan : Integer , length 12
Domain Qty : Integer , length 12
Domain StatusKaryawan : Variable character, length 20
Karyawan (
KdKaryawan KodeKaryawan NOT NULL,
NamaKaryawan NamaKaryawan NOT NULL,
AlamatKaryawan AlamatKaryawan NOT NULL,
TelpKaryawan NoTeleponKaryawan NOT NULL,
Qty Qty NOT NULL,
StatusKaryawan StatusKaryawan NOT NULL
Domain KodeReturBeli : Variable character, length 20
Domain TanggalReturBeli : Datetime, length 8
Retur Beli (
KdReturBeli KodeReturBeli NOT NULL,
TglReturBeli TanggalReturBeli NOT NULL,
Primary Key (KdRetur) );
Domain KodePembayaran : Variable character, length 20
Domain TanggalPembayaran : Datetime, length 8
Domain JumlahPembayaran : Integer , length 12
Pembayaran (
KdPembayaran KodePembayaran NOT NULL,
TglPembayaran TanggalPembayaran NOT NULL,
JumlahPembayaran JumlahPembayaran NOT NULL,
Domain KodePenagihan : Variable character, length 20
Domain TanggalPenagihan : Datetime, length 8
Domain JumlahPenagihan JumlahPenagihan : Integer , length 12
Penagihan (
KdPenagihan KodePenagihan NOT NULL,
TglPenagihan TanggalPenagihan NOT NULL,
JumlahPenagihan JumlahPenagihan NOT NULL,
Primary Key (KdPenagihan) );
4.1.3.3 Merancang Batasan
Tujuan dari tahap ini adalah untuk merancang batasan yang tidak boleh dilanggar di dunia nyata, yang isinya antara lain :
• Karyawan tidak boleh memiliki lebih dari dua Kd karyawan CONSTRAINT M axKdKaryawan Check (NOT EXISTS (SELECT KdKaryawan FROM Karyawan HAVING COUNT (*)>2))
• Pelanggan tidak boleh memiliki lebih dari dua Kd pelanggan CONSTRAINT M axKdPelanggan Check (NOT EXISTS (SELECT KdPelanggan FROM Pelanggan HAVING COUNT (*)>2))
4.1.3.4 Analisis Transaksi
Langkah ini bertujuan untuk memahami fungsionalitas dari transaksi-transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi-transaksi yang penting. M atriks menunjukkan transaksi yang dibutuhkan dan relasi yang diakses. Adapun matriks tersebut sebagai berikut :
1. M elihat M enu yang tersedia
2. Update M enu
3. M elihat Bahan M entah dan Alat M akan yang masih tersedia
4. M emesan Bahan M entah dan Alat M akan
5. M enambah Bahan M entah dan Alat M akan yang dipesan
6. M endapatkan informasi pelanggan yang memesan menu
7. M endapatkan informasi tentang karyawan yang melayani
8. Karyawan membuat order penjualan
10. Karyawan membuat retur pembelian
11. M anager melihat seluruh laporan
Tabel 4.29 Tabel Analisa Transaksi 1
Transaksi 1 2 3 Relasi R U D I R U D I R U D I Order Pembelian Order Penjualan M enu X X Bahan M entah X X Alat M akan X X Karyawan X X X X X Pelanggan X X Supplier Retur Beli Penagihan Pembayaran DetailPenjualan DetailPembelian DetailAM DetailBM DetailPembayaran DetailPenagihan DetailM enu Telp Karyawan Telp Supplier Telp Pelanggan
Tabel 4.30 Tabel Analisa Transaksi 2 Transaksi 4 5 6 Relasi R U D I R U D I R U D I Order Pembelian X Order Penjualan X M enu X X Bahan M entah X X Alat M akan X X Karyawan X X X X X Pelanggan X Supplier X Retur Beli Penagihan X Pembayaran DetailPenjualan DetailPembelian DetailAM DetailBM DetailPembayaran DetailPenagihan DetailM enu Telp Karyawan Telp Supplier Telp Pelanggan
Tabel 4.31 Tabel Analisa Transaksi 3 Transaksi 7 8 9 Relasi R U D I R U D I R U D I Order Pembelian Order Penjualan X X X M enu X Bahan M entah X Alat M akan X Karyawan X X X X X Pelanggan X X Supplier X Retur Beli Penagihan X Pembayaran X DetailPenjualan DetailPembelian DetailAM DetailBM DetailPembayaran DetailPenagihan DetailM enu Telp Karyawan Telp Supplier Telp Pelanggan
Tabel 4.32 Tabel Analisa Transaksi 4 Transaksi 10 11 Relasi R U D I R U D I Order Pembelian X Order Penjualan X M enu Bahan M entah X X Alat M akan X X Karyawan X X Pelanggan Supplier X Retur Beli X X Penagihan Pembayaran DetailPenjualan DetailPembelian DetailAM DetailBM DetailPembayaran DetailPenagihan DetailM enu Telp Karyawan Telp Supplier Telp Pelanggan
4.1.3.5 Memilih Organisasi File
Organisasi file yang dipilih pada perancangan basis data ini adalah B-Tree. B-Tree adalah sebuah balanced search tree yang digunakan dalam basis data karena strukturnya dmemungkinkan data yang disimpan untuk disisipi, dihapus, dan diambil dengan jaminan proses dengan waktu terbaik. B-Tree mendukung pengambilan data berdasarkan key yang tepat, pola yang tepat, kisaran nilai, dan bagian dari spesifikasi key.
B-Tree index adalah dinamis yang berkembang sesuai dengan perkembangan relasi. Performa dari B-tree tidak terganggu saat ada relasi yang diupdate karena access key selalu dimaintain ketika ada file yang diupdate, sehingga penerimaan tuple dapat lebih efisien.
4.1.3.6 Memilih Index
• Order Pembelian
CREATE CLUSTERED INDEX Id_KdOB ON OrderPembelian (KdOB)
CREATE NONCLUSTERED INDEX Id_TglOB ON OrderBarang (TglOB)
CREATE NONCLUSTERED INDEX Id_ TotalHarga ON OrderBarang (TotalHarga)
• Order Penjualan
CREATE CLUSTERED INDEX Id_KdOP ON OrderPenjualan (KdOP)
CREATE NONCLUSTERED INDEX Id_TglPenjualan ON OrderPenjualan (T glPenjualan)
CREATE NONCLUSTERED INDEX Id_TotalHarga ON OrderPenjualan (TotalHarga)
• Alat Makan
CREATE CLUSTERED INDEX Id_KdAM ON AlatM akan (KdAM )
CREATE NONCLUSTERED INDEX Id_NamaAM ON AlatM akan (NamaAM )
CREATE NONCLUSTERED INDEX Id_HargaAM ON AlatM akan (HargaAM )
CREATE NONCLUSTERED INDEX Id_SatuanAM ON AlatM akan (SatuanAM )
CREATE NONCLUSTERED INDEX Id_Qty ON AlatM akan (Qty)
• Bahan Mentah
CREATE CLUSTERED INDEX Id_KdBM ON BahanM entah (KdBM )
CREATE NONCLUSTERED INDEX Id_NamaBM ON BahanM entah (NamaBM )
CREATE NONCLUSTERED INDEX Id_HargaBM ON BahanM entah (HargaBM )
CREATE NONCLUSTERED INDEX Id_SatuanBM ON BahanM entah (SatuanBM )
CREATE NONCLUSTERED INDEX Id_Qty ON BahanM entah(Qty)
• Menu
CREATE CLUSTERED INDEX Id_KdM enu ON M enu (KdM enu)
CREATE NONCLUSTERED INDEX Id_NamaM enu ON M enu (NamaM enu)
CREATE NONCLUSTERED INDEX Id_Harga M enu ON M enu (HargaM enu)
• Supplier
CREATE CLUSTERED INDEX Id_KdSupplier ON Supplier (KdSupplier)
CREATE NONCLUSTERED INDEX Id_NamaSupplier ON Supplier (NamaSupplier)
CREATE NONCLUSTERED INDEX Id_AlamatSupplier ON Supplier (AlamatSupplier)
CREATE NONCLUSTERED INDEX Id_TelpSupplier ON Supplier (TelpSupplier)
• Karyawan
CREATE CLUSTERED INDEX Id_KdKaryawan ON Karyawan (KdKaryawan)
CREATE NONCLUSTERED INDEX Id_NamaKaryawan ON Supplier (NamaKaryawan)
CREATE NONCLUSTERED INDEX Id_AlamatKaryawan ON Supplier (AlamatKaryawan)
CREATE NONCLUSTERED INDEX Id_TelpKaryawan ON Supplier (TelpKaryawan)
CREATE NONCLUSTERED INDEX Id_StatusKaryawan ON Supplier (Statuskaryawan)
• Pelanggan
CREATE CLUSTERED INDEX Id_KdPelanggan ON Pelanggan (KdPelanggan)
CREATE NONCLUSTERED INDEX Id_NamaPelanggan ON Supplier (NamaPelanggan)
CREATE NONCLUSTERED INDEX Id_TelpPelanggan ON Supplier (TelpPelanggan)
• Retur Beli
CREATE CLUSTERED INDEX Id_KdRetur ON ReturBeli (KdReturBeli)
CREATE NONCLUSTERED INDEX Id_TglRetur ON ReturBeli (TglReturBeli)
• Pembayaran
CREATE CLUSTERED INDEX Id_KdPembayaran ON Pembayaran (KdPembayaran)
CREATE NONCLUSTERED INDEX Id_TglPembayaran ON Pembayaran (TglPembayaran)
CREATE NONCLUSTERED INDEX Id_jumlahPembayaran ON Pembayaran (JumlahPembayaran)
• Penagihan
CREATE CLUSTERED INDEX Id_KdPenagihan ON Penagihan (KdPenagihan)
CREATE NONCLUSTERED INDEX Id_TglPenagihan ON Penagihan (TglPenagihan)
CREATE NONCLUSTERED INDEX Id_ jumlahPenagihan ON Penagihan (JumlahPenagihan)
• DetailPenjualanMenu
CREATE CLUSTERED INDEX Id_ KdOP ON OrderPenjualan (KdOP)
CREATE CLUSTERED INDEX Id_ KdM enu ON M enu (KdM enu)
• DetailMenuAM
CREATE CLUSTERED INDEX Id_ KdM enu ON M enu (KdM enu)
CREATE CLUSTERED INDEX Id_ KdAM ON AlatM akan (KdAM )
• DetailMenuBM
CREATE CLUSTERED INDEX Id_ KdM enu ON M enu (KdM enu)
CREATE CLUSTERED INDEX Id_ KdBM ON BahanM entah (KdBM )
• DetailPembelianBM
CREATE CLUSTERED INDEX Id_ KdOB ON OrderPembelian (KdOB)
CREATE CLUSTERED INDEX Id_ KdBM ON BahanM entah (KdBM )
• DetailReturBM
CREATE CLUSTERED INDEX Id_ KdReturBeli ON ReturBeli (KdReturBeli)
CREATE CLUSTERED INDEX Id_ KdBM ON BahanM entah (KdBM )
• DetailPembelianAM
CREATE CLUSTERED INDEX Id_ KdOB ON OrderPembelian (KdOB)
CREATE CLUSTERED INDEX Id_ KdAM ON AlatM akan (KdAM )
• DetailReturAM
CREATE CLUSTERED INDEX Id_ KdReturBeli ON ReturBeli (KdReturBeli)
CREATE CLUSTERED INDEX Id_ KdAM ON AlatM akan(KdAM )
• DetailPenagihanMenu
CREATE CLUSTERED INDEX Id_KdPenagihan ON Penagihan (KdPenagihan)
CREATE CLUSTERED INDEX Id_ KdM enu ON M enu (KdM enu)
• DetailPembayaranAM
CREATE CLUSTERED INDEX Id_KdPembayaran ON Pembayaran (KdPembayaran)
CREATE CLUSTERED INDEX Id_ KdAM ON AlatM akan(KdAM )
• DetailPembayaranBM
CREATE CLUSTERED INDEX Id_KdPembayaran ON Pembayaran (KdPembayaran)
CREATE CLUSTERED INDEX Id_ KdBM ON BahanM entah (KdBM )
• TelpSupplier
CREATE CLUSTERED INDEX Id_TelpSupplier ON TelpSupplier (TelpSupplier)
CREATE NONCLUSTERED INDEX Id_KdSupplier ON Supplier (KdSupplier)
• TelpKaryawan
CREATE CLUSTERED INDEX Id_TelpKaryawan ON TelpKaryawan (TelpKaryawan)
CREATE NONCLUSTERED INDEX Id_KdKaryawan ON Karyawan (KdKaryawan)
• TelpPelanggan
CREATE CLUSTERED INDEX Id_TelpPelanggan ON TelpPelanggan (TelpPelanggan)
CREATE NONCLUSTERED INDEX Id_KdPelanggan ON Pelanggan (KdPelanggan)
4.1.3.7 Estimasi Disk S pace Requirment
• Order Pembelian
KdOB Varchar (20)
TglOB Datetime (8)
TotalHarga Int (12)
Kapasitas dari tabel Order Pembelian adalah 40
Diperkirakan dalam satu hari terjadi 3 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
3 * 7 * 4 * 12 * 40 = 40320 byte
• Order Penjualan
KdOP Varchar (20)
TglOP Datetime (8)
Kapasitas dari tabel Order Penjualan adalah 40
Diperkirakan dalam satu hari terjadi 80 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
80 * 7 * 4 * 12 * 40 = 1075200 byte
• Menu
KdM enu Varchar (20) NamaM enu Varchar (20)
HargaM enu Int (12)
Qty Int (12)
Kapasitas dari tabel M enu adalah 64
Diperkirakan dalam satu hari terjadi 1 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
7 * 4 * 12 * 64 = 21504 byte • Bahan Mentah KdBM Varchar (20) NamaBM Varchar (20) HargaBM Int (12) SatuanBM Varchar (20) Qty Int (12)
Kapasitas dari tabel Bahan M entah adalah 84
Diperkirakan dalam satu hari terjadi 15 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
15 * 7 * 4 * 12 * 84 = 423360 byte • Alat Makan KdAM Varchar (20) NamaAM Varchar (20) HargaAM Int (12) SatuanAM Varchar (20) Qty Int (12)
Kapasitas dari tabel Alat M akan adalah 84
Diperkirakan dalam satu hari terjadi 5 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
5 * 7 * 4 * 12 * 84 = 2286144 byte • Karyawan KdKaryawan Varchar (20) Namakaryawan Varchar (20) Alamatkaryawan Varchar (20) TelpKaryawan Int (12) Qty Int (12)
StatusKaryawan Varchar(20) Kapasitas dari tabel Karyawan adalah 104
Diperkirakan dalam satu hari terjadi 2 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
2 * 7 * 4 * 12 * 104 = 69888 byte
• Pelanggan
KdPelanggan Varchar (20) NamaPelanggan Varchar (20)
TelpPelanggan Int (12)
Kapasitas dari tabel Pelanggan adalah 52
Diperkirakan dalam satu hari terjadi 80 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
80 * 7 * 4 * 12 * 52 = 1397760 byte • Supplier KdSupplier Varchar (20) NamaSupplier Varchar (20) AlamatSupplier Varchar (20) TelpSupplier Int (12)
Kapasitas dari tabel Supplier adalah 72
Dalam satu tahun pertumbuhan dari tabel ini adalah
3 * 7 * 4 * 12 * 72 = 72576 byte
• Retur Beli
KdRetur Varchar (20)
TglRetur DateTime (8)
Kapasitas dari tabel Retur Beli adalah 28
Diperkirakan dalam satu hari terjadi 1 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
1 * 7 * 4 * 12 * 28 = 9408 byte
• Penagihan
KdPenagihan Varchar (20)
TglPenagihan DateTime (8)
JumlahPenagihan Int (12)
Kapasitas dari tabel Penagihan adalah 40
Diperkirakan dalam satu hari terjadi 80 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
• Pembayaran
KdPembayaran Varchar (20)
TglPembayaran DateTime (8)
jumlahPembayaran Int (12) Kapasitas dari tabel Pembayaran adalah 40
Diperkirakan dalam satu hari terjadi 3 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah
3 * 7 * 4 * 12 * 40 = 40320 byte
4.1.3.8 Design User Interview
Terdapat dua bagian yang berkaitan langsung dengan view yang diperlukan.
Tabel 4.33 Tabel Design User Interview
User View Tabel Field Tabel
Karyawan Penjualan M enu
Order Penjualan KdM enu NamaM enu HargaM enu Qty KdOP TglOP TotalHarga Pemesanan Pemesanan Persediaan Order Pembelian Bahan M entah KdOB TglOB TotalHarga KdBM NamaBM HargaBM SatuanBM
Alat M akan Qty KdAM NamaAM HargaAM SatuanAM Qty M anager Laporan OrderPembelian
Retur Beli Karyawan KdOB TglOB TotalHarga KdReturBeli TglReturBeli KdKaryawan NamaKaryawan AlamatKaryawan TelpKaryawan Qty Orderpenjualan Penagihan Pembayaran KdOP TglOP TotalHarga KdPenagihan TglPenagihan JumlahPenagihan Kd Pembayaran Tgl Pembayaran Jumlah Pembayaran