71
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 1 M enu
2
Supplier
Deskripsi Alias M erupakan entitas yang memberikan informasi mengenai makanan dan minuman yang tersedia M erupakan entitas yang Pemasok memberikan informasi mengenai data supplier
Kejadian Setiap jenis makanan dan minuman yang dapat di pesan oleh pelanggan Satu supplier dapat memasok satu atau lebih jenis bahan mentah atau alat makan
72
No
Nama Entitas
Deskripsi
Alias
3
Karyawan
M erupakan entitas yang Staff memberikan informasi mengenai data karyawan
4
Order Pembelian
M erupakan entitas yang Pembelian memberikan informasi mengenai bahan mentah atau alat makan yang akan di beli ke supplier
5
Order Penjualan
6
Pelanggan
M erupakan entitas yang Penjualan memberikan informasi mengenai produk-produk yang di pesan oleh pelanggan M erupakan entitas yang Costumer memberikan informasi mengenai data pelanggan
7
Pembayaran
8
Penagihan
9
Alat M akan
10
Bahan M entah
11
Retur Beli
M erupakan entitas yang memberikan informasi mengenai pembayaran kepada supplier M erupakan Entitas yang memberikan informasi mengenai penagihan pembayaran terhadap pelanggan M erupakan entitas yang AM memberikan infromasi data jenis alat makan yang akan di beli ke pihak supplier M erupakan entitas yang BM memberikan infromasi data jenis bahan mentah yang akan di beli ke pihak supplier M erupakan entitas yang ReturBeli memberikan informasi pengembalian barang pada pihak supplier
Kejadian Setiap karyawan memiliki tugas dalam setiap transaksi penjualan dan persediaan produk Setiap order pembelian di buat oleh karyawan dan berisi banyak bahan mentah atau alat makan Setiap order penjualan dilakukan oleh satu costumer atau lebih Setiap pelanggan dapat membeli satu atau lebih jenis Produk Setiap pembelian dapat dilakukan satu atau lebih pembayaran Setiap penjualan dapat dilakukan satu atau lebih penagihan
Setiap jenis alat makan digunakan oleh restoran dan digunakan untuk pada saat penyajian makanan Setiap jenis bahan mentah di beli oleh pihak restoran dan di gunakan untuk membuat menu Setiap pengembalian barang yg telah dibeli dapat lebih dari satu jenis barang
73
4.1.1.2 Pengidentikasi Relationship Table 4.2 : Table Pengidentifikasi Relationship Nama Entitas M enu
Bahan M entah
Alat M akan
Karyawan
Pelanggan
Supplier
Order Pembelian
M ultiplicity
Relationship
M ultiplicity
1..*
Dimuat
Order Penjualan
1..*
1..*
M enggunakan
Alat M akan
1..*
1..*
M enggunakan
Bahan M entah
1..*
1..*
Dimuat
Penagihan
1..*
1..*
Dimuat
Order Pembelian
1..*
1..*
Dimuat
Retur beli
0..*
1..*
Dimuat
Pembayaran
1..*
1..*
Dimuat
Order Pembelian
1..*
1..*
Dimuat
Retur beli
0..*
1..*
Dimuat
Pembayaran
1..*
1..1
M embuat
Order Pembelian
0..*
1..1
M enangani
Order Penjualan
0..*
1..1
M engurus
Retur Beli
0..1
1..1
M elakukan
Pembayaran
0..*
1..1
M elakukan
Penagihan
0..*
1..1
M enerima
Penagihan
1..1
1..1
M elakukan
Order Penjualan
1..*
1..1
M enerima
Pembayaran
1..1
1..1
M enerima
Retur Beli
0..1
1..1
M enyiapkan
Order Pembelian
1..*
1..1
Dimuat
Retur Beli
0..*
Nama Entitas
74
Gambar 4.1 ER konseptual tanpa primary key
75
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 Int pembelian yang dilakukan
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 Varchar(20) penjualan
No
No
TglOP
Tanggal transaksi
No
No
TotalHarga
Total menu dipesan
No
No
Datetime harga Int yang
76
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 Int dipesan per hari
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 mentah
bahan Varchar(20)
No
No
NamaBM
Nama mentah
bahan Varchar(20)
No
No
HargaBM
Harga mentah
bahan Int
No
No
SatuanBM
Satuan mentah
bahan Varchar(20)
No
No
Qty
Total mentah tersedia
bahan Int yang
No
No
77
5. Table Entitas Alat M akan Table 4.7 : T able Entitas Alat Makan Atribut
Deskripsi
KdAM
Kode alat makan
NamaAM
Panjang dan tipe data
Null
M ulti – valued
Varchar(20)
No
No
Nama makan
alat Varchar(20)
No
No
HargaAM
Harga makan
alat Int
No
No
SatuanAM
Satuan makan
alat Varchar(20)
No
No
Qty
Total alat makan Int yang tersedia
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 Int karyawan
No
Yes
Qty
Total pelanggan Int yang di layani
No
No
StatusKaryawan
Status karyawan Varchar(20) aktif atau tidak
No
No
78
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 Int pelanggan
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 Int supplier
No
Yes
9. Table Entitas Retur Beli Table 4.11 : Table Entitas Retur Beli Atribut KdReturBeli
Deskripsi Kode retur beli
Atribut
Deskripsi
TglReturBeli
Tanggal retur beli
Panjang dan tipe data Varchar(20) Panjang dan tipe data Datetime
Null No Null No
M ulti – valued No M ulti – valued No
79
10. Table Entitas Penagihan Table 4.12 : Table Entitas Penagihan Atribut
Deskripsi
KdPenagihan
Kode Penagihan
TglPenagihan JumlahPenagihan
Panjang dan tipe data Varchar(20)
Null
M ulti – valued
No
No
Tanggal tagihan Datetime pembayaran
No
No
Jumlah penagihan
No
No
Int
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
Int
No
No
jumlahPembayaran Jumlah pembayaran
80
4.1.1.4 Penentuan Domain Atribut 1. Table Domain Atribut Order Pembelian Table 4.14 : Domain Atribut Order Pembelian Domain Value
Attribute KdOrderPembelian
auto increment
TglOrderPembelian
Datetime
TotalHarga
Range value : 0-9, ','
2.
Table Domain Atribut Order Penjualan Table 4.15 : Table Domain Atribut Order Penjualan Domain Value
Attribute KdOrderPenjualan
auto increment
TglOrderPenjualan
Datetime
TotalHarga
Range value : 0-9, ','
3.
Table Domain Atribut M enu Table 4.16 : Domain Atribut M enu Domain Value
Attribute KdM enu
Range value : A-Z, 0-9
NamaM enu
Range value : A-Z , a-z
HargaM enu
Range value : 0-9
Qty
Range value : 0-9
81
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 Domain Value
Attribute 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
Qty
Range value : 0-9
82
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 Domain Value
Attribute 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 Domain Value
Attribute 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, '.', ','
TelpSupplier
Range value : 0-9,’-‘
83
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 Domain Value
Attribute 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, '.', ','
jumlahPembayaran
Range value : 0-9
84
4.1.1.5 Penentuan Atribut Primary key dan Candidate Key T abel 4.25 Primary key dan Candidate Key
No 1
Entitas Order Pembelian
2
Order Penjualan
3
M enu
4 5 6 7 8 9
Bahan M entah Alat M akan Karyawan Pelanggan Supplier Retur Beli
10
Pembayaran
11
Penagihan
Candidate key KdOB KdKaryawan KdAM KdBM KdSupplier KdOP KdM enu KdPelanggan KdKaryawan KdM enu KdBM KdAM KdBM KdAM KdKaryawan KdPelanggan KdSupplier KdReturBeli KdSupplier KdKaryawan KdAM KdBM KdOB KdPembayaran KdSupplier KdKaryawan KdAM KdBM KdPenagihan KdKaryawan KdPelanggan KdM enu
KdOP
KdM enu
KdBM KdAM KdKaryawan KdPelanggan KdSupplier KdReturBeli
KdPembayaran
KdPenagihan
Primary key KdOB
85
Gambar 4.2 ER dengan Primary Key
86
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 :
87
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
88
Gambar 4.6 Entity Relationship Diagram dengan primary key setelah validasi model
89
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
90
Gambar 4.7 Entity Relationship Diagram setelah validasi model terhadap transaksi pengguna
91
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.
92
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
DetailPembelianBM
Gambar 4.11 ER DetailPembelianBM
yaitu
93
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 .
94
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
Gambar 4.16 ER DetailPembayaranAM
95
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
96
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
97
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) Primary Key : KdM enu
98
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,
KdSupplier) Primary Key : KdReturBeli
TglRetur,
KdKaryawan,
99
Penagihan
(KdPenagihan,
TglPenagihan,
KdKaryawan,
KdPelanggan , JumlahPenagihan, Kdmenu) Primary Key : KdPenagihan
Pembayaran
(KdPembayaran,
JumlahPembayaran,
KdKaryawan,
TglPembayaran, KdSupplier,
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
KdBM ,
100
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
101
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
Karyawan (
OrderPenjualan (
102
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
103
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 : Karyawan
104
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,
TelpSupplier,
KdKaryawan,
105
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
106
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,
HargaM enu)
KdPelanggan,
107
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 ,
108
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,
NamaM enu,
NamaBM ,
109
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 ( KdBM , Qty,
KdOB, TglOB,
NamaBM ,
TotalHarga,
OrderPembelian (
110
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,
NamaBM ,
TglReturBeli,
111
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,
NamaAM ,
TotalHarga,
112
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,
NamaAM ,
TglReturBeli,
113
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,
NamaM enu,
TglPenagihan,
114
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 (
KdBM , Qty,
KdPembayaran,
115
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
116
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
117
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 : kdPelanggan
118
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 : Karyawan
119
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
120
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 Bahan M entah = @KdBM, NamaBM , HargaBM , SatuanBM ,Qty
121
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 Pelanggan = @KdPelanggan, NamaPelanggan
122
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,
KdPelanggan, JumlahPenagihan
Kdkaryawan,
123
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 diatas sudah normal)
124
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 diatas sudah normal)
125
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 diatas sudah normal)
126
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
:
Foreign
: KdKaryawan
Key
KdReturBeli reference
karyawan
reference
Supplier
(KdKaryawan) Foreign
Key
:
KdSupplier (KdSupplier)
127
•
Penagihan (@KdPenagihan, T glPenagihan, KdKaryawan, KdPelanggan, JumlahPenagihan) Primary Key
: KdPenagihan
Foreign
: KdKaryawan
Key
reference
karyawan
(KdKaryawan) Foreign
Key
: KdPelanggan reference Pelanggan (KdPelanggan)
•
Pembayaran
(@KdPembayaran,
TglPembayaran,
JumlahPembayaran,
KdKaryawan,
KdSupplier) Primary Key
:
Foreign Key
:
KdPembayaran KdKaryawan reference karyawan (KdKaryawan)
Foreign
Key
:
KdSupplier
reference
Supplier
(KdSupplier)
•
Order
Penjualan
(@KdOP,
TglOP,
TotalHarga,
KdPelanggan, Qty, KdKaryawan)
128
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)
•
DetailPenjualanM enu (@KdOP, @KdM enu) Primary Key : KdOP, KdM enu Foreign Key : KdOP reference Order Penjualan (KdOP) Foreign Key : KdM enu reference M enu (KdM enu)
129
•
DetailM enuBM (@KdM enu, @KdBM ) Primary Key : KdM enu, KdBM Foreign Key : KdM enu reference M enu (KdM enu) Foreign Key : KdBM reference BahanM entah (KdBM )
•
DetailM enuAM (@KdM enu, @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 ) Primary Key : KdReturBeli, KdBM
130
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, @KdM enu) Primary Key : KdPenagihan, KdM enu
131
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) Primary Key : TelpSupplier
132
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 M entah
=
@KdBM , NamaBM , HargaBM , SatuanBM , Qty
Primary Key : KdBM
133
•
Alat
M akan
=
@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 Primary Key : KdReturBeli
134
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, JumlahPembayaran, KdSupplier
TglPembayaran, KdKaryawan,
135
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
•
M enu = @KdM enu, NamaM enu, HargaM enu 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
136
• 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
•
DetailM enu (@KdOP, @KdM enu) 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 (@KdM enu, @KdBM ) Primary Key : KdM enu, KdBM
137
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 (@KdM enu, @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
138
•
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 ) Primary Key : KdReturBeli, KdAM
139
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, @KdM enu) 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 NO ACTION
140
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
141
•
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
142
4.1.2.5 Pembuatan Model Basis Data Logikal Global
Gambar 4.21 ER Model Basis Data Logikal Global
143
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 Tipe DBMS Biaya
SQL Server2005 Transactional Database Server $647 to $1,799 (Standart Edition) Kebutuhan Piranti Intel Core 2 Duo CPU T6600 @2.20GHz, Keras 1GB , 380M B Harddisk space Kebutuhan Piranti Windows XP SP2, Windows 7 dan VB Lunak 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 Terbatas mendekati miliaran obyek dalam Database 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 S tandar SQL99, XM L, ODBC, JDBC, T-SQL
144
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 Pentium 166MHZ atau lebih 1GB RAM (minimal untuk desktop engine), 2 GB (minimal untuk semua edisi) 270M B (full installation), 250M B (typical installation), 95M B (minimal), desktop engine : 44M B, analysis Servise : minimal 50 dan 130M B, typical English Query : 80M B
Processor Memori
Harddisk Space
145
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 Domain TotalHarga : Integer , length 12
146
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, SatuanAM SatuanAM NOT NULL,
147
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, Primary Key (KdBM ) );
148
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 Domain TeleponPelanggan : Int, length 12
149
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, Primary Key (KdSupplier) );
150
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 Primary Key (KdKaryawan) );
151
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, Primary Key (KdPembayaran) );
152
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))
153
•
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
9.
Karyawan membuat order pembelian
154
10. Karyawan membuat retur pembelian 11. M anager melihat seluruh laporan Tabel 4.29 Tabel Analisa Transaksi 1 Transaksi Relasi Order Pembelian Order Penjualan M enu Bahan M entah Alat M akan Karyawan Pelanggan Supplier Retur Beli Penagihan Pembayaran DetailPenjualan DetailPembelian DetailAM DetailBM DetailPembayaran DetailPenagihan DetailM enu Telp Karyawan Telp Supplier Telp Pelanggan
R
1 U
D
I
R
X
D
I
R
X
X X X
X X X
X X
X X
2 U
X
3 U
D
I
155
Tabel 4.30 Tabel Analisa Transaksi 2 Transaksi Relasi Order Pembelian Order Penjualan M enu Bahan M entah Alat M akan Karyawan Pelanggan Supplier Retur Beli Penagihan Pembayaran DetailPenjualan DetailPembelian DetailAM DetailBM DetailPembayaran DetailPenagihan DetailM enu Telp Karyawan Telp Supplier Telp Pelanggan
R X
4 U
D
I
R
D
I
R
6 U
D
X
X
I
X X X X
X X X
X
X X
X X
5 U
X
156
Tabel 4.31 Tabel Analisa Transaksi 3 Transaksi Relasi Order Pembelian Order Penjualan M enu Bahan M entah Alat M akan Karyawan Pelanggan Supplier Retur Beli Penagihan Pembayaran DetailPenjualan DetailPembelian DetailAM DetailBM DetailPembayaran DetailPenagihan DetailM enu Telp Karyawan Telp Supplier Telp Pelanggan
R
7 U
D
I
R
X
D
I
R
X
9 U
D
I
X
X X X
X X
X
X
X
X
X X X X
8 U
157
Tabel 4.32 Tabel Analisa Transaksi 4 Transaksi Relasi Order Pembelian Order Penjualan M enu Bahan M entah Alat M akan Karyawan Pelanggan Supplier Retur Beli Penagihan Pembayaran DetailPenjualan DetailPembelian DetailAM DetailBM DetailPembayaran DetailPenagihan DetailM enu Telp Karyawan Telp Supplier Telp Pelanggan
R
10 U
D
I
R X X
X X
X X X
X X X
X
11 U
D
I
158
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)
159
•
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 M akan CREATE CLUSTERED INDEX Id_KdAM ON AlatM akan (KdAM ) CREATE
NONCLUSTERED
INDEX
Id_NamaAM
ON
INDEX
Id_HargaAM
ON
INDEX
Id_SatuanAM
ON
AlatM akan (NamaAM ) CREATE
NONCLUSTERED
AlatM akan (HargaAM ) CREATE
NONCLUSTERED
AlatM akan (SatuanAM ) CREATE NONCLUSTERED INDEX Id_Qty ON AlatM akan (Qty)
160
•
Bahan M entah CREATE CLUSTERED INDEX Id_KdBM ON BahanM entah (KdBM ) CREATE
NONCLUSTERED
INDEX
Id_NamaBM
ON
INDEX
Id_HargaBM
ON
INDEX
Id_SatuanBM
ON
BahanM entah (NamaBM ) CREATE
NONCLUSTERED
BahanM entah (HargaBM ) CREATE
NONCLUSTERED
BahanM entah (SatuanBM ) CREATE
NONCLUSTERED
INDEX
Id_Qty
ON
BahanM entah(Qty)
•
M enu 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) CREATE NONCLUSTERED INDEX Id_Qty ON M enu(Qty)
161
•
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_Qty ON Supplier (Qty)
162
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)
163
•
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)
•
DetailPenjualanM enu CREATE CLUSTERED INDEX Id_ KdOP ON OrderPenjualan (KdOP)
164
CREATE CLUSTERED INDEX Id_ KdM enu ON M enu (KdM enu)
•
DetailM enuAM CREATE CLUSTERED INDEX Id_ KdM enu ON M enu (KdM enu) CREATE CLUSTERED INDEX Id_ KdAM ON AlatM akan (KdAM )
•
DetailM enuBM 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 )
165
•
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 )
•
DetailPenagihanM enu CREATE CLUSTERED INDEX Id_KdPenagihan ON Penagihan (KdPenagihan) CREATE CLUSTERED INDEX Id_ KdM enu ON M enu (KdM enu)
166
•
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
Id_TelpKaryawan
ON
Supplier (KdSupplier)
•
TelpKaryawan CREATE
CLUSTERED
INDEX
TelpKaryawan (TelpKaryawan) CREATE NONCLUSTERED INDEX Id_KdKaryawan ON Karyawan (KdKaryawan)
167
•
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)
TotalHarga
Int (12)
168
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)
169
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)
170
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 Diperkirakan dalam satu hari terjadi 3 transaksi
171
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 80 * 7 * 4 * 12 * 40 = 1075200 byte
172
•
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 Karyawan
View Penjualan
Tabel M enu
Order Penjualan
Pemesanan
Pemesanan
Order Pembelian
Persediaan
Bahan M entah
Field Tabel KdM enu NamaM enu HargaM enu Qty KdOP TglOP TotalHarga KdOB TglOB TotalHarga KdBM NamaBM HargaBM SatuanBM
173
Qty Alat M akan
M anager
Laporan
OrderPembelian
Retur Beli
KdReturBeli TglReturBeli
Karyawan
KdKaryawan NamaKaryawan AlamatKaryawan TelpKaryawan Qty KdOP TglOP TotalHarga
Orderpenjualan
KdAM NamaAM HargaAM SatuanAM Qty KdOB TglOB TotalHarga
Penagihan
KdPenagihan TglPenagihan JumlahPenagihan
Pembayaran
Kd Pembayaran Tgl Pembayaran Jumlah Pembayaran
174
4.2
Rancangan Prototipe Aplikasi 4.2.1 S TD (S tate Transition Diagram)
Login
M asukan nama dan kode karyawan
Penjualan
Pembelian
MDI
Verifikasi
Persediaan
Karyawan
Laporan
Gambar 4.22 S tate Transition Diagram Pada gambar diatas menunjukan bahwa untuk menjalankan aplikasi ini diperlukan username dan kd karyawan untuk password pada saat login. Kemudian setelah verifikasi berhasil maka user akan memasuki form M DI dimana ada 3 user yang memiliki hak akses tersendiri. Karyawan hanya dapat memasuki form penjualan, bagian pemesanan dapat mengakses form pesediaan dan pembelian, dan manager yang juga bertindak sebagai admin dapat akses ke semua form.
175
4.2.2 Input •
Form login
Gambar 4.23 Layar Login Pada layar ini, admin dan user diminta untuk mengisi username dan password. Layar ini berfungsi untuk membatasi akses admin dan user ke program sesuai dengan hak akses yang dimiliki. Jika admin dan user mengklik tombol “OK”, maka aplikasi akan memeriksa apakah username dan password yang dimasukkan sesuai dengan database yang ada (valid).
• Form MDI
Gambar 4.24 Layar Form MDI
176
Form ini form utama dari semua form yang ada dan selalu tampil di seluruh form. • Form Penjualan
Gambar 4.25 Layar Penjualan Di form ini user melayani pelanggan dengan membuat laporan sesuai menu yang dipesan oleh pelanggan.
177
• Form Persediaan
Gambar 4.26 Layar Persediaan Pada form ini user yang berupa persedian alat makan dan bahan mentah yang masih tersedia serta mengmasukan bahan mentah dan alat makan yang telah digunakan untuk membuat menu. Serta memasukan menu baru beserta bahan mentah dan alat makan yang akan dipakai untuk membuat menu baru tersebut.
178
•
Form Pembelian
Gambar 4.27 Layar Pembelian Pada form ini, karyawan bagian pemesanan dapat melakukan pemesanan barang, retur barang yang apabila terjadi kerusakan serta menginsert bahan mentah dan alat makan baru.
179
•
Form Karyawan
Gambar 4.28 Form Karyawan Pada form ini, manager dapat melihat laporan tentang karyawan dan dapat men – non aktifkan serta menghapus karyawan yang sudah tidak bekerja di sana.
180
4.2.3 Output •
Form Laporan
Gambar 4.29 Layar Laporan Pada form ini, manager dapat melihat laporan penjualan, persediaan, pemesanan, retur, penagihan, pembayaran, dan karyawan yang sesuai dengan tanggal yang diinginkan.
181
4.3 Implementasi dan Evaluasi 4.3.1
Implementasi 4.3.1.1 Jadwal Implementasi Program aplikasi dan sistem basis data yang telah
dibuat
akan diimplementasikan ke dalam perusahaan. Berikut adalah jadwal implementasi yang direncanakan : Jadwal Implementasi Program Aplikasi Tabel 4.34 Implementasi Program Aplikasi No
Kegiatan 1
1 2 3 4 5 6 7
Pengadaan perangkat X keras dan perangkat lunak Instalasi Perangkat Keras Instalasi Perangkat Lunak Melakukan pengujian aplikasi program Mengadakan pelatihan bagi pengguna Mengadakan evaluasi terhadap aplikasi program Operasi dan Maintenance
2
3
X X
X X
Minggu 4 5 6
X
X
7
8
9
X X
X X X
4.3.1.2 Pelatihan Pelatihan ini mencakup maintenance sistem basis data, cara penggunaan sistem, back up dan recovery data. Pelatihan cara penggunaan sistem dilakukan kepada user yang akan menggunakan aplikasi. Pelatihan maintenance
182
sistem basis data back up dan recovery data dilakukan kepada manager yang berperan sebagai admin.
4.3.1.3 S pesifikasi Kebutuhan Jaringan Setelah menentukan piranti keras maupun lunak dan besarnya kapasitas penyimpanan yang dibutuhkan, maka selanjutnya adalah tahap menentukan spesifikasi kebutuhan jaringan. Penelitian ini mengusulkan agar menggunakan sistem jaringan Local Area Network (LAN). Aplikasi ini berbasiskan database dimana pertama kali applikasi akan berkoneksi ke user dan ketika user memasukan data yang diinginkan applikasi tersebut akan terhubung dari applikasi tersebut ke database server (SQL server 2005) untuk mendapatkan datanya. Setelah data didapatkan akan tampil ke halaman program. Berikut ini arsitektur jaringannya dapat dilihat pada gambar 4.24
Gambar 4.30 Arsitektur Jaringan
183
Keuntungan dari n-tier architecture atau 3-tier architecture dibandingkan dengan 2-tier architecture yaitu yang berbeda adalah cara prosesnya yang menunjukan keseimbangan proses yang baik jika dijalankan dalam server yang berbeda, dan mempunyai jangkauan skala yang besar. Kerugiaan dari n-tier architecture yaitu memakan waktu proses yang lama dalam jaringan, lebih sulit untuk program dan pengujian piranti lunak dibandingkan dengan 2-tier
architecture
karena
memerlukan
banyak
perlengkapan untuk berkomunikasi dengan transaksi pengguna. 2-tier architechture membagi proses load kedalam dua
bagian.
dijalankan/berjalan
Aplikasi
utama
pada sisi
secara
logika
client yang
biasanya
mengirimkan request dalam bentuk sintaks SQL ke sebuah database
server
yang
berfungsi
sebagai
media
penyimpanan data. Kita bisa juga menyebutnya dengan arsitektur far client karena bagian terbesar atau yang utama dari aplikasi berjalan pada sisi client / komputer server. 3-tier architecture membagi proses loading antara : 1) Komputer client menjalankan grapichcal user interface (GUI) logic.
184
2) Aplikasi server menjalakan business logic. 3) Database atau legacy application. Karena 3-tier memindahkan application logic server sehingga sering juga disebut sebagai arsitektur fat server.
4.3.1.4
S pesifikasi Kebutuhan Hardware Perangkat keras sangat diperlukan dan sangat berpengaruh
dalam
kelancaran
seluruh
proses
pengoperasian aplikasi sistem informasi Restoran Hotel Pandu
Lakside.
Spesifikasi Hardware ini meliputi
perangkat keras komputer pada server dan client. Representasi data perangkat keras yang diperlukan dapat dilihat pada tabel 4.35. Tabel 4.35 Tabel spesifikasi perangkat keras yang diperlukan Hardware Processor M ain M emory M onitor Keyboard M ouse Hardidisk LAN Caed Letak
Server Core 2 Duo 2.80 Ghz PC 5400 2 GB 15” Ya Ya WDC 160GB Network Interface Card Ruang Kepala Bagian IT (Admin)
Client Dual Core 2.50 Ghz PC 6400 1 GB 15” Ya Ya WDC 80GB Network Interface Card Ruang bagian penjualan Ruang staff pembelian dan persediaan Ruang M anajer
185
Dibutuhkan
pula
sebuah
switch
sebagai
penghubung antara server dan client. 4.3.1.5 S pesifikasi Kebutuhan Software Selain piranti keras, juga diperlukan piranti lunaknya agar dapat menjalankan suatu aplikasi sistem informasi Restoran Hotel Pandu Lakeside. Spesifikasi piranti lunak ini meliputi kebutuhan piranti lunak pada server dan client. Representasi data piranti lunak yang diperlukan dapat dilihat pada tabel 4.36. Tabel 4.36 Tabel spesifikasi piranti lunak yang diperlukan
S oftware DBMS Sistem Operasi
Server M icrosoft Visual Basic 2008 Express Edition SQL Server 2005 M icrosoft Windows XP SP2
Dalam
penelitian
ini
Client M icrosoft Visual Basic 2008 Express Edition SQL Server 2005 M icrosoft Windows XP SP2
memutuskan
untuk
menggunakan Vb.net dalam membangun aplikasinya. Hal ini di karena kan penggunaan Vb.net lebih mudah di implementasikan dan penggunaannya yang mudah untuk di gunakan oleh user.
186
4.3.1.6 Support Applikasi Selain piranti keras dan piranti lunak, juga diperlukan pendukung aplikasi agar dapat membantu applikasi berjalan lebih sempurna yaitu crystal report 8.5. Support aplikasi ini nantinya akan membantu memberikan laporan - laporan kepada Restoran Hotel Pandu Lakeside.
4.3.2
Evaluasi 4.3.2.1 Evaluasi User Tabel 4.37 Tabel Evaluasi User
No 1
2
3
4
Nama Modul Pembelian
Sub Modul
Proses pembelian Laporan pembelian Laporan pembayaran Cetak laporan Penjualan Proses penjualan Laporan penjualan Cetak penagihan Cetak laporan Persediaan Proses persediaan Laporan persediaan Cetak laporan Karyawan Karyawan yang aktif Karyawan yang non aktif Laporan karyawan
X
Setuju / Tidak X X X X X X X X X X X X X
Komentar Sistem ini cukup membantu proses pembelian barang pada restoran Sistem ini cukup membantu proses Penjualan menu pada restoran Sistem ini cukup membantu untuk jumlah barang yang tersedia Sistem ini cukup membantu M anager untuk melihat data karyawan yang aktif
187
Setelah dilakukan evaluasi per masing-masing modul di dalam aplikasi yang sudah diimplementasikan, disepakati bahwa aplikasi sudah sesuai dengan proses bisnis yang ada. Dan aplikasi dapat dijalankan untuk
mencapai tujuan
dan
manfaat
yang sudah
didefinisikan
sebelumnya. 4.3.2.2 Evaluasi Pengembang Untuk evaluasi pengembang ini, dilakukan pengujian terhadap Domain Integrity, Entity Integrity, References Integrity, dan Security pada basis data yang telah dirancang. 1. Domain Integrity Pengujian yang dilakukan adalah apakah nilai atribut yang dihasilkan sesuai dengan domain yang telah ditentukan sebelumnya. Hal-hal yang diuji sebagai contoh adalah sebagai berikut : •
Domain atribut yang ditetapkan untuk nama pada tabel karyawan,
supplier,
dan
pelanggan
harus
berisi
huruf/karakter dan tidak boleh lebih dari 20. •
Pengujian juga dilakukan pada operasi yang diperbolehkan terjadi terhadap atribut yang ada hubungannya dengan atribut lain.
188
•
Hasil evaluasi domain integrity menunjukkan bahwa seluruh tabel diuji telah memiliki domain integrity yang tepat. 2.
Entity Integrity Pengujian yang dilakukan adalah menguji seluruh
tabel dan memastikan bahwa tidak ada atribut dari suatu primary key yang bernilai ‘NULL’ dan tidak ada 2 record yang sama pada primary key pada suatu strong entity. 3.
References Integrity Hal yang diuji adalah setiap tabel telah berhubungan,
terdapat foreign key dalam tabel yang terhubung tersebut dan nilai foreign key harus sesuai dengan primary key pada tabel yang terhubung. Hasil evaluasi domain integrity,Entity Integrity, dan referential integrity membuktikan bahwa seluruh tabel telah layak uji. 4. Security Evaluasi security dimaksudkan untuk menguji apakah seluruh tabel memiliki keamanan berdasarkan mekanisme keamanan yang baik sehingga tidak terjadi penyimpangan
189
atau penyalahgunaan data yang ada. Sebagai contoh adalah sebagai berikut : 1.
Pengguna tidak diperbolehkan untuk mengakses dan melakukan perubahan atau transaksi pada data yang ada tanpa memasukkan username dan password dengan benar pada menu login.
2.
Pengguna tidak dapat menyelesaikan transaksi yang dilakukan apabila terjadi ketidaksesuaian maka data akan dibatalkan ketika pembatalan transaksi tersebut.
3.
Setiap pengguna memiliki hak akses tersendiri. Hasil evaluasi security menunjukkan bahwa seluruh tabel
dapat
berjalan
dengan
benar
mengikuti
mekanisme keamanan yang baik. 5. Rencana Back Up dan Recovery -
Rencana Back Up Untuk menjaga agar data tidak hilang, maka perlu
dilakukan back up secara rutin. Complete back up adalah back up yang dilakukan terhadap seluruh data yang terdapat pertama kali pada saat basis data telah selesai di uji. Setelah itu complete back up akan dilakukan setiap
190
bulan. Differential back up akan dilakukan setiap hari dan seminggu sekali. Berikut tabel perencanaan back up dan medianya : Tabel 4.38 Tabel perencanaan Back Up Waktu Back Up Harian
M edia penyimpanan Hard disk
M ingguan
Hard disk
Bulanan
CD R
5.
M ekanisme Back up secara otomatis kedalam hard disk Back up secara otomatis oleh SQL server Back Up (full) secara manual pada CD R
Performance Setelah
melakukan
percobaan
terhadap
aplikasi,
performance menunjukkan bahwa sistem basis data berjalan sesuai dengan rancangan dan dapat menghasilkan data dalam waktu singkat.
4.3.2.3 Prototype aplikasi Evaluasi aplikasi dilakukan dengan pihak perusahaan pada saat aplikasi telah
dioperasikan. Perusahaan mengevaluasi keakuratan
data, kesesuaian aplikasi dengan kebutuhan perusahaan, dan performance dari aplikasi. Evaluasi aplikasi ditangani oleh staff IT dari perusahaan.
191
Hasil evaluasi dari sistem basisdata penjualan, pembelian dan persediaan dari pihak perusahaan adalah : a. Kelebihan - Sistem yang dihasilkan lebih mempermudah dan mempercepat penjualan, pembelian dan persediaan dan peng-update-an informasi yang dibutuhkan. - Pembuatan laporan lebih akurat dan dapat dihasilkan dalam waktu yang lebih singkat. - Aplikasi
dapat
memberikan
laporan
transaksi
berdasarkan jangka waktu tertentu. - Permasalahn yang mencakup keamanan telah dapat diatasi karena pembagian hak akses yang jelas. - User interface sederhana dan mudah digunakan oleh pengguna.
b. Kekurangan - Interface aplikasi masih kurang dalam hal tampilan. Dari hasil evaluasi, secara keseluruhan aplikasi yang berbasiskan aplikasi basisdata sudah dapat memenuhi kebutuhan operasional perusahaan.