• Tidak ada hasil yang ditemukan

BAB 4 PERANCANGAN DATABASE DAN APLIKASI. 1. Perancangan konseptual. 2. Perancangan logikal. 3. Perancangan fisikal Pengidentifikasi Entitas

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 PERANCANGAN DATABASE DAN APLIKASI. 1. Perancangan konseptual. 2. Perancangan logikal. 3. Perancangan fisikal Pengidentifikasi Entitas"

Copied!
121
0
0

Teks penuh

(1)

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

(2)

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

(3)

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)
(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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, '.', ','

(13)

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, '.', ','

(14)

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

(15)
(16)

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 :

(17)

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

(18)

Gambar 4.6 Entity Relationship Diagram dengan primary key setelah validasi model

(19)

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

(20)

Gambar 4.7 Entity Relationship Diagram setelah validasi model terhadap transaksi pengguna

(21)

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.

(22)

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

(23)

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 .

(24)

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

(25)

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

(26)

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

(27)

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)

(28)

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)

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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 :

(34)

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,

(35)

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

(36)

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,

(37)

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 ,

(38)

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,

(39)

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,

(40)

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,

(41)

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,

(42)

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,

(43)

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,

(44)

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 (

(45)

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

(46)

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

(47)

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 :

(48)

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 :

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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)

(57)

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

(58)

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)

(59)

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

(60)

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)

(61)

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)

(62)

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

(63)

• 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

(64)

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

(65)

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

(66)

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

(67)

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

(68)

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

(69)

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

(70)

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

(71)

• 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

(72)

4.1.2.5 Pembuatan Model Basis Data Logikal Global

(73)

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

(74)

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

(75)

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

(76)

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,

(77)

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,

(78)

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

(79)

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,

(80)

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

(81)

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,

(82)

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

(83)

• 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

(84)

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

(85)

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

(86)

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

(87)

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

(88)

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)

(89)

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

(90)

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

(91)

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

(92)

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)

(93)

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

(94)

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 )

(95)

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

(96)

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

(97)

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

(98)

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)

(99)

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)

(100)

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

(101)

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

(102)

• 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

(103)

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

Gambar

Gambar 4.1 ER konseptual tanpa primary key
Gambar 4.2 ER dengan Primary Key
Gambar 4.4 ER Redundansi antara Supplier dengan  ReturBeli
Gambar 4.6 Entity Relationship Diagram dengan primary key setelah validasi  model
+7

Referensi

Dokumen terkait

[r]

Praktik Pengalaman Lapangan (PPL) merupakan kegiatan kurikuler yang harus dilakukan oleh mahasiswa praktikan, sebagai pelatihan untuk menerapkan teori yang diperoleh

Ikatan untuk Pendidikan Komunikasi dan Teknologi Pendidikan (AECT) adalah sebuah asosiasi profesional dari ribuan pendidik dan kegiatan lain yang diarahkan menuju

dapat dilihat dari pernyataan terdakwa di dalam persidangan, diketahui bahwa alasan terdakwa melakukan tindakan perkosaan terhadap korban Siti Munawaroh karena

account officer (AO) merupakan karyawan yang bertugas untuk mencari nasabah yang layak sesuai dengan kriteria peraturan bank, menilai, mengevaluasi, mengusulkan besarnya

Jadi yang dimaksud dengan Pemerintah Kabupaten Kebumen dalam penelitian ini adalah perangkat dearah yang mempunyai wewenang untuk mengentaskan kemiskinan melalui

Bentuk ekspresi yang dapat dilihat mulai dari menyalahkan kaum reformis karena sebab gerakan merekalah kestabilan pemerintahan orde baru terganggu, menimbulkan ketidakpatian

4 Bagi peserta yang tidak menang lelang, pengembalian uang jaminan Lelang maksimal 5 (lima) hari kerja setelah lelang dilaksanakan.. 5 Daftar Unit ini hanya merupakan panduan