• Tidak ada hasil yang ditemukan

BAB 4 HASIL DAN BAHASAN. antara lain purchase report, sales report, purchase retur, sales retur. 1. Pengelolahan data (Insert, Update) Customer.

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 HASIL DAN BAHASAN. antara lain purchase report, sales report, purchase retur, sales retur. 1. Pengelolahan data (Insert, Update) Customer."

Copied!
132
0
0

Teks penuh

(1)

BAB 4

HASIL DAN BAHASAN 4.1 Definisi Sistem

4.1.1 Mission Statement

Tujuan dari pembuatan aplikasi database yang berbasis web ini yaitu untuk integrasi data mempermudah pencatatan transaksi dan laporan antara lain purchase report, sales report, purchase retur, sales retur. Selain itu pembuatan aplikasi ini juga mempermudah pengambilan keputusan berdasarkan aturan yang akurat, misalnya pembelian barang untuk persediaan yang hampir habis, dan menjaga keamanan data dari resiko kehilangan data.

4.1.2 Mission Objective

1. Pengelolahan data (Insert, Update) Customer. 2. Pengelolahan data (Insert, Update) Product. 3. Pengelolahan data (Insert, Update) Employee. 4. Pengelolahan data (Insert, Update) Vendor. 5. Pengelolahan data (Insert, Update) Sales. 6. Pengelolahan data (Insert, Update) Sales Retur. ` 7. Pengelolahan data (Insert, Update) Purchase.

8. Pengelolahan data (Update) Testimonial. 9. Pengelolahan data (Insert, Update) Payment.

10. Pengelolahan data (Insert, Update) Purchase Retur. 11. Menampilkan data Customer.

12. Menampilkan data Product. 13. Menampilkan data Employee.

(2)

14. Menampilkan data Vendor. 15. Menampilkan data Testimonial. 16. Menampilkan data Sales. 17. Menampilkan data Sales Retur. 18. Menampilkan data Purchase. 19. Menampilkan data Purchase Retur. 20. Menampilkan data Payment.

21. Membuat laporan Penjualan (Sales).

22. Membuat laporan Retur Penjualan (Sales Retur). 23. Membuat laporan Pembelian (Purchase).

(3)

4.1.3 System Boundary

(4)

4.1.4 User Requirement Specification 4.1.4.1 Data Requirement 1. Product

Informasi yang berisi tentang data - data vendor yang tersedia di perusahaan. Data yang diperlukan antara lain kode product, nama product, dan stock product.

2. Vendor

Informasi yang berisi tentang data-data vendor. Data yang diperlukan antara lain kode vendor dan nomer telephone vendor.

3. Customer

Informasi yang berisi tentang data-data customer. Data yang diperlukan antara lain kode customer, password, nama customer, alamat customer, email customer, nomer telephone customer, nomer rekening customer dan jenis kelamin customer.

4. Employee

Informasi yang berisi tentang data-data karyawan. Data yang diperlukan antara lain kode employee, nama employee dan status employee.

5. Testimonial

Informasi yang berisi tentang comment dari customer. Data yang diperlukan antara lain kode testimonial, isi comment dan status comment.

(5)

6. Sales

Informasi yang berisi tentang data–data penjualan yang dilakukan perusahaan kepada customer. Data yang dibutuhkan antara lain kode sales, status, status pembayaran, nama customer, nama barang, QTY barang, harga barang, tanggal pemesanan, tanggal transaksi, sub total, grand total, kode barang dan kode customer.

7. Payment

Informasi yang berisi tentang data – data pembayaran yang dilakukan oleh customer. Data yang dibutuhkan antara lain kode payment, nama bank, kode customer, nomer rekening, jumlah pembayaran, status pembayaran, grand total, tanggal pembayaran dan kode sales.

8. Sales Retur

Informasi yang berisi tentang data – data penjualan barang yang dijual oleh perusahaan kepada customer kerusakan atau ketidaksesuaian barang. Data yang diperlukan antara lain kode sales retur, nama customer, kode product, quantity barang yang diretur, harga barang, tanggal transaksi, nama product dan kode sales.

9. Purchase

Informasi berisi tentang data – data pembelian barang yang dilakukan perusahaan kepada vendor. Data yang diperlukan antara lain kode purchase, deskripsi barang, nama product, nama vendor, quantity barang, sub total, grand total, tanggal transaksi, harga barang, kode barang dan kode vendor.

(6)

10. Purchase Retur

Informasi yang berisi tentang data–data pengembalian barang yang dibeli oleh perusahaan dari vendor yang disebabkan kerusakan atau ketidaksesuaian barang. Data yang diperlukan antara lain kode purchase retur, quantity barang, nama vendor, kode product, nama product, harga, tanggal transaksi dan kode purchase.

4.1.4.2 Transaction Requirement 4.1.4.2.1 Data Entry 1. Insert Data Customer. 2. Insert Data Employee. 3. Insert Data Product. 4. Insert Data Vendor. 5. Insert Data Sales. 6. Insert Data Sales Retur. 7. Insert Data Purchase. 8. Insert Data Purchase Retur. 9. Insert Data Payment. 4.1.4.2.2 Data Update 1. Update data Customer. 2. Update data Employee. 3. Update data Product. 4. Update data Testimonial. 5. Update data Vendor. 6. Update data Sales.

(7)

7. Update data Sales Retur. 8. Update data Purchase. 9. Update data Purchase Retur. 10. Update data Payment. 4.1.4.2.3 Data Queries

1. Menampilkan data customer berdasarkan penjualan. 2. Menampilkan data vendor berdasarkan pembelian. 3. Menampilkan data karyawan berdasarkan pembelian. 4. Menampilkan data stock barang berdasarkan nama barang. 5. Menampilkan status pembayaran penjualan kepada

karyawan (admin) berdasarkan nomer sales. 6. Menghasilkan laporan sales berdasarkan tanggal. 7. Menghasilkan laporan purchase berdasarkan tanggal. 8. Menghasilkan laporan sales retur berdasarkan tanggal. 9. Menghasilkan Purchase retur berdasarkan tanggal.

4.1.4.3 General System Requirement A. Initial Database Size

1. Terdapat sekitar 50 barang yang dibeli dalam proses pembelian yang ada dalam 1 bulan.

2. Terdapat sekitar 20 barang yang dijual dalam proses penjualan yang ada dalam 1 bulan.

3. Terdapat 1 karyawan yang bertugas sebagai admin.

(8)

5. Terdapat sekitar 10 perusahaan yang menjadi vendor PT. Multec Steel.

6. Terdapat 30 customer yang melakukan pembelian pada PT. Multec Steel.

B. Database Growth

1. Sekitar 50 purchase yang ada dalam 1 bulan. 2. Sekitar 5 purchase retur yang ada dalam 1 bulan. 3. Sekitar 20 sales yang ada dalam 1 bulan.

4. Sekitar 5 sales retur yang ada 1 bulan.

5. Sekitar 3 karyawan yang masuk dalam 1 tahun.

6. Sekitar 10 customer baru yang melakukan pembelian dalam 1 tahun.

7. Sekitar 2 vendor baru dalam 1 tahun.

8. Sekitar 40 purchase detail yang ada dalam 1 bulan. 9. Sekitar 60 sales detail yang ada dalam 1 bulan.

C. Networking And Shared Access

1. Sistem dapat diakses secara bersamaan oleh dua atau lebih pengguna.

D. Security

1. Database dilindungi dengan password.

2. Setiap staff perusahaan diberikan hak akses kedalam database sesuai dengan kebutuhan dan jabatan.

(9)

E. Back Up And Recovery

1. Database di back up sekali dalam sehari.

4.2 Perancangan Basis Data

Perancangan basis data meliputi tiga tahap, yaitu perancangan basis data konseptual, perancangan basis data logikal dan perancangan basis data fisikal.

4.2.1 Perancangan Konseptual

Perancangan basis data konseptual adalah proses membangun sebuah rancangan informasi yang dipusatkan pada pemrosesan suatu model dari informasi yang akan digunakan dalam suatu organisasi dan bebas dari pertimbangan fisikal. Tujuan dari perancangan ini untuk membuat representasi konseptual dari basis data yang meliputi identifikasi dari entitas, relasi dan atribut.

Perancangan basis data konseptual terdiri dari Sembilan tahap perancangan, yaitu (Connolly dan Begg, 2010, p468):

1. Identifikasi tipe entitas. 2. Identifikasi tipe relasi.

3. Identifikasi dan asosiasi atribut dengan entitas atau tipe relasi. 4. Menentukan domain atribut.

5. Identifikasi candidate dan primary key. 6. Penggunaan enhanced modeling concept. 7. Memeriksa redundansi.

8. Validasi transaksi dengan transasksi user. 9. Peninjauan model data konseptual dengan user.

(10)

4.2.1.1 Identifikasi Tipe Entitas

Tabel berikut merupakan tabel yang menjelaskan entity yang menjadi kebutuhan perusahaan.

Tabel 4.1 Identifikasi Tipe Entitas

No Entity Name Description Aliases Occurece

1 Pelanggan Informasi yang berisi data pelanggan

Customer Semua pelanggan yang melakuakan pembelian 2 Penjualan Informasi mengenai

pelanggan

Sales Semua pembelian yang dilakuakan oleh pelanggan

3 Barang Informasi mengenai semua produk

Product Produk yang ada untuk dijual

4 Pembelian Informasi mengenai semua persediaan

Purchase Semua pembelian yang dilakukan oleh perusahaan

5 Pembayaran Informasi mengenai pembayaran

Payment Cara pembayaran yang dilakukan oleh

pelanggan 6 Pemasok Informasi mengenai

pemasok

Vendor Semua pemasok dimana perusahaan membeli persediaan 7 Karyawan Berisi keterangan

mengenai data employee

Employee Bertugas sebagai karyawan yang menangani produk,penjualan, pembayaran,dll 8 Komentar Informasi mengenai

komentar

Testimony Setiap pelanggan dapat memberikan komentar mengenai produk 9 Retur Penjualan Informasi mengenai retur penjulan

Sales Retur Pembelian barang yang cacat dan tidak sesuai dengan permintaan customer 10 Retur pembelian Informasi mengenai retur pembelian Purchase Retur Pengembalian barang kepada pemasok karena barang cacat atau tidak sesuai dengan order perusahaan

(11)

4.2.1.2 Identifikasi Tipe Relasi

Menggunakan Entity Relational Diagram (ERD)

(12)

Tabel 4.2 Batasan Multiplicity dari Tipe Relasi

Nama Entitas Multiplicity Relationship Nama Entitas Multiplicity

Customer 1…1 Membuat Testimonial 0…*

Sales 1…* Mencantumkan Product 1…*

1…1 Memiliki Payment 1…1

1…* Mencantumkan Customer 1…1

Employee 1…1 Mengelola Testimonial 1…*

Purchase 1…* Mencatat Vendor 1…1

1…* Mencatat Product 1…*

SalesRetur 0…* Memasukan Sales 1…1

1...* Mencantumkan Product 1...* PurchaseRetur 0…* Mencantumkan Purchase 1…1

1...* Mencantumkan Product 1...* Payment 1...1 Mencantumkan Customer 1...1

4.2.1.3 Identifikasi dan Asosiasi Atribut dengan Entitas atau Tipe Relasi

Tabel 4.3 Identifikasi Atribut dengan Tipe Relasi

Nama Entitas Atribut Deskripsi

Tipe Data & Panjang Null

s Mult i Valu ed MsCustomer UserId Mengidentifikasi customer secara unik Char (8) No No

Pasword Password Varchar

(10) No No FirstName Nama depan

customer

Varchar

(15) No No LastName Nama belakang

customer

Varchar

(15) No No Address Alamat customer Varchar

(100) No No Email Alamat email

customer

Varchar

(30) Yes Yes BankAccountNo Nomer rekening Varchar

(15) No No PhoneNo No. Tlp customer Varchar No Yes

(13)

(15)

Gender Jenis kelamin INT No No

MsProduct ProductId Mengidentifikasi Product secara unik Char(8) No No

ProductName Nama produk Varchar

(10) No No Stock Stock pada

gudang INT No No

Price Harga produk Decimal

(10,2) No No

TrSales

SalesNo Mengidentifikasi

Sales secara unik Char (12) No No UserId

Mengidentifikasi customer secara

unik

Char(8) No No FirstName Nama depan

customer

Varchar

(15) No No ProductId Mengidentifikasi

product secara unik Char (8) No No ProductName Nama product Varchar

(10) No No Price Harga product Decimal

(10,2) No No

Status Status sales INT No No

RequestDate Tanggal

permintaan DateTime No No

Qty Kuantitas INT No No

SubTotal Total harga per item

Decimal

(10,2) No No GrandTotal Total harga

keseluruhan

Decimal

(10,2) No No PaymantStatus Status

pembayaran INT No No

TransactionDate Tanggal transaksi DateTime No No

Tr Purchase PurchaseNo Mengidentifikasi purchase secara unik Char (12) No No VendorId Mengidentifikasi

vendor secara unik Char (8) No No VendorName Nama vendor Varchar

(20) No No ProductId Mengidentifikasi

product secara unik Char (8) No No ProductName Nama product Varchar

(10) No No Price Harga product Decimal

(10,2) No No Description Deskripsi Varchar

(50) No No

(14)

SubTotal Total harga per item

Decimal

(10,2) No No GrandTotal Total harga

keseluruan

Decimal

(10,2) No No TransactionDate Tanggal transaksi DateTime No No

Payment PaymentNo Mengidentifikasi payment secara unik Char (12) No No

BankName Nama bank Varchar

(20) No No BankAccountNo Nomer rekening Varchar

(20) No No

Amount Jumlah INT No No

Status Status INT No No

TransactionDate Tanggal transaksi DateTime No No SalesNo Mengidentifikasi

Sales secara unik Char (12) No No UserId

Mengidentifikasi customer secara

unik

Char (8) No No GrandTotal Total harga

keseluruhan Decimal (10,2) No No MsVendor VendorId Mengidentifikasi vendor secara unik Char (8) No No

VendorName Nama vendor Varchar

(20) No No Anddress Alamat vendor Varchar

(100) No No Email Alamat email

vendor

Varchar

(30) Yes Yes PhoneNo No. Tlp vendor Varchar

(15) No Yes MsEmploye EmployeId Mengidentifikasi employee secara unik Char (8) No No

EmployeName Nama employee Varchar

(10) No No

Status Status INT No No

Testimonial TestimonialID Mengidentifikasi testimonial secara unik Char (8) No No FirstName Nama Customer Varchar

(15) No No

Comment Komentar Varchar

(100) No No

Status Status INT No No

EmployeeId

Mengidentifikasi employee secara

unik

(15)

UserId Mengidentifikasi customer secara unik Char (8) No No SalesRetur SelesReturId Mengidentifikasi SalesRetur secara unik Char (12) No No SalesNo Mengidentifikasi Sales secara unik

Char (12) No No FirstName Nama depan

customer

Varchar (15)

No No ProductId Mengidentifikasi

product secara unik

Char (8) No No ProductName Nama Product Varchar

(10)

No No

QTY Kuantitas INT No No

Price Harga Decimal

(10,2)

No No TransactionDate Tanggal DateTime No No

PurchaseRetur PurchaseReturId Mengidentifikasi PurchaseRetur secara unik Char (12) No No PurchaseNo Mengidentifikasi Purchase secara unik Char (12) No No

VendorName Nama Vendor Varchar (12) No No ProductId Mengidentifikasi product secara unik Char (8) No No

ProductName Nama Product Varchar (10)

No No

QTY Kuantitas INT No No

TransactionDate Tanggal DateTime No No

Price Harga Decimal

(10,2)

(16)

4.2.1.4 Menentukan Domain Atribut

Domain untuk setiap atribut dapat dijelaskan dengan tabel seperti dibawah ini:

Tabel 4.4 Identifikasi Domain Atribut No Nama Entitas Atribut Tipe Data

& Length Domain Atribut

1 MsCustmer UserId Char (8) Diisi dengan angka dan huruf Password Varchar

(10)

Diisi dengan angka atau huruf

FirstName Varchar (15)

Diisi dengan huruf maksimum 15

LastName Varchar (15)

Diisi dengan huruf maksimum 15

Address Varchar

(100)

Diisi dengan huruf maksimum 100

Email Varchar

(30)

Diisi dengan huruf atau angka maksimum 30

PhoneNo Varchar

(15)

Diisi dengan huruf maksimum 15

BankAccountNo Varchar (15)

Diisi dengan angka maksimum 15

Gender INT Male atau Female

2 MsProduct ProductId Char (8) Diisi dengan angka dan huruf ProductName Varchar

(10)

Diisi dengan huruf maksimum 10

Stock INT Diisi dengan angka

Price Decimal

(10,2)

Diisi dengan angka maksimum 10 di depan koma dan 2 dibelakang koma 3 TrSales SalesNo Char (12) Diisi dengan angka dan huruf

UserId Char (8) Diisi dengan angka dan huruf FirstName Varchar (15) Diisi dengan huruf maksimum

15

ProductId Char (8) Diisi dengan angka dan huruf ProductName Varchar (10) Diisi dengan huruf maksimum

10

Price Decimal

(10,2)

Diisi dengan angka maksimum 10 di depan koma dan 2 dibelakang koma

Status INT True / False

Qty INT Diisi dengan angka

SubTotal Decimal (10,2)

Diisi dengan angka maksimum 10 di depan koma dan 2 dibelakang koma

(17)

GrandTotal Decimal (10,2)

Diisi dengan angka maksimum 10 di depan koma dan 2 dibelakang koma RequestDate DateTime Format yyyy-mm-dd PaymentStatus INT Done or not done TransactionDate DateTime Format yyyy-mm-dd

4 TrPurchase PurchaseNo Char (12) Diisi dengan angka dan huruf VendorId Char (8) Diisi dengan angka dan huruf VendorName Varchar (20) Diisi dengan huruf

maksimum 20

ProductId Char (8) Diisi dengan angka dan huruf ProductName Varchar (10) Diisi dengan huruf

maksimum 10

Price Decimal

(10,2)

Diisi dengan angka maksimum 10 di depan koma dan 2 dibelakang koma Description Varchar

(50)

Diisi dengan huruf maksimum 50

TransactionDate DateTime Format yyyy-mm-dd

Qty INT Diisi dengan angka

SubTotal Decimal (10,2)

Diisi dengan angka maksimum 10 di depan koma dan 2 dibelakang koma GrandTotal Decimal

(10,2)

Diisi dengan angka maksimum 10 di depan koma dan 2 dibelakang koma 5 MsVendor VendorId Char (8) Diisi dengan angka dan huruf

VendorName Varchar (20)

Diisi dengan huruf maksimum 20

Address Varchar

(100)

Diisi dengan huruf maksimum 100

Email Varchar

(30)

Diisi dengan huruf atau angka maksimum 30

PhoneNo Varchar

(15)

Diisi dengan huruf maksimum 15

6 PurchaseRetur PurchaseReturId Char (12) Diisi dengan angka dan huruf PurchaseNo Char (12) Diisi dengan angka dan huruf VendorName Varchar (20) Diisi dengan huruf

maksimum 20

ProductId Char (8) Diisi dengan angka dan huruf

ProductName Varchar (10) Diisi dengan huruf

maksimum 10

Qty INT Diisi dengan Angka

Price Decimal

(10,2)

Diisi dengan angka maksimum 10 didepan koma dan 2 dibelakang koma TransactionDate DateTime Format yyyy-mm-dd

7 SalesRetur SalesReturId Char (12) Diisi dengan angka dan huruf SalesNo Char (12) Diisi dengan angka dan huruf

(18)

FirstName Varchar (15) Diisi dengan huruf maksimum 15

ProductId Char (8) Diisi dengan angka dan huruf ProductName Varchar (10) Diisi dengan huruf

maksimum 10

Qty INT Diisi dengan angka

Price Decimal

(10,2)

Diisi dengan angka maksimum 10 didepan koma dan 2 dibelakang koma TransactionDate DateTime Format yyyy-mm-dd

8 Testimonial TestimonialId Char(8) Diisi dengan angka dan huruf FirstName Varchar(15) Diisi dengan huruf

maksimum 15

EmployeeId Char (8) Diisi dengan angka dan huruf UserId Char (8) Diisi dengan angka dan huruf

Comment Varchar

(100)

Diisi dengan huruf maksimum 100

Status INT Approve / No

9 MsEmployee EmployeeId Char (8) Diisi dengan angka dan huruf EmployeeName Varchar(10) Diisi dengan huruf max10 Status INT Admin / Bagian Gudang /

Delivery

10 Payment PaymentNo Char (12) Diisi dengan angka dan huruf SalesNo Char (12) Diisi dengan angka dan huruf UserId Char (8) Diisi dengan angka dan huruf GrandTotal Decimal

(10,2)

Diisi dengan angka maksimum 10 didepan koma dan 2 dibelakang koma BankName Varchar

(20)

Diisi dengan huruf max 20 BankAccountNo Varchar

(10)

Diisi dengan angka dan huruf

Amount INT Diisi dengan angka

Status INT Done or not done

(19)

4.2.1.5 Menentukan Candidate dan Primary Key

Berikut merupakan identifikasi atribut dan domain atribut:

Tabel 4.5 Candidate dan Primary Key

No Entity Name Candidate Key Primary Key

1 Customor UserId UserId

2 Product ProductId ProductId

3 Sales SalesNo UserId ProductId SalesNo 4 Purchase PurchaseNo VendorId ProductId PurchaseNo 5 Payment PaymentNo SalesNo UserId PaymentNo

6 Vendor VendorId VendorId

7 Employee EmployeeId EmployeeId

8 Testimonial TestimonialId UserId EmployeeId TestimonialId 9 SalesRetur SalesReturId SalesNo ProductId SalesReturId 10 PurchaseRetur PurchaseReturId PurchaseNo ProductId PurchaseReturId

(20)

Gambar 4.3 Model Data Konseptual dengan PrimaryKey

4.2.1.6 Peninjauan Model Data Konseptual dengan User

Model data konseptual dan dokumen pendukung yang mendeskripsikan model adalah representasi yang sudah didiskusikan dan dinyatakan benar oleh user.

(21)

4.2.2 Perancangan Logikal

Perancangan basis data logikal adalah suatu proses membangun sebuah model dari informasi yang digunakan perusahaan berdasarkan sebuah model data spesifik, terlepas dari DBMS dan pertimbangan fisik lain. Tujuan perancangan logikal adalah untuk merepresentasikan konseptual ke struktur logikal dari basis data yang meliputi perancangan relasi.

Perancangan basis data logikal terdiri dari tahap perancangan, yaitu : 1. Menghilangkan fitur yang tidak kompatibel dengan model relasi.

2. Derive relation untuk model data logical. 3. Validasi relasi menggunakan normalisasi. 4. Validasi relasi terhadap transaksi user. 5. Menentukan batasan integritas.

6. Peninjauan model data logikal dengan user. 7. Merger model data logikal ke dalam model global. 8. Validasi logikal data model secara global.

9. Periksa untuk pertumbuhan di masa dating.

(22)

4.2.2.1 Menghilangkan Fitur yang Tidak Kompatibel dengan Model Relasi

Remove many to many binary relationship types

Gambar 4.4 Hubungan Relasi Sales dan Product yang Sudah Dipecah

Keterangan:

Pisahkan hubungan many to many antara Sales dan Product dengan menambahkan SalesDetail. Langkah ini bertujuan untuk menghilangkan redudansi data.

(23)

Gambar 4.5 Hubungan Relasi Purchase dan Product yang Sudah Dipecah

(24)

Gambar 4.6 Hubungan Relasi Purchase Retur dan Product yang Sudah Dipecah

Keterangan:

Pisahkan antara many to many antara PurchaseRetur dan Product dengan menambahkan PurchaseReturDetail untuk menghilangkan redudansi data.

(25)

Gambar 4.7 Hubungan Relasi Sales Retur dan Product yang Sudah Dipecah

Keterangan:

Pisahkan antara many to many antara SalesRetur dan Product dengan menambahkan SalesReturDetail untuk menghilangkan redudansi data.

(26)

Remove multi-valued attributes

Keterangan:

Memisahkan CustomerPhone dan atribut CustomerEmail dari customer untuk menghilangkan redudansi data.

(27)

Gambar 4.8 Multi-Valued Atribut yang Sudah Dihilangkan Keterangan:

Memisahkan VendorPhone dan VendorEmail dari atribut vendor untuk menghilangkan redudansi data.

(28)

4.2.2.2 Derive Relation untuk Model Data Logikal Tipe Entitas Strong

Tipe entitas strong yang terdapat dalam basis data kami dapat dijelaskan sebagai berikut:

Tabel 4.6 Strong Entity

1 MsCustomer (UserId, Password, FirstName, LastName, Gender, PhoneNo, Address, Email, BankAccountNo)

Primary Key: UserId

2 MsProduct (ProductId, ProductName,Stock, Price) Primary Key: ProductId

3 TrSales (SalesNo,UserId, FirstName, ProductId, ProductName, Price, Status, RequestDate, PaymentStatus,QTY, SubTotal, GrandTotal, TransactionDate)

Primary Key: SalesNo

4 TrPurchase (PurchaseNo, VendorId, VendorName, ProductId, ProductName, Price, Description, TransactionDate, QTY,SubTotal, GrandTotal)

Primary Key: PurchaseNo

5 MsVendor (VendorId, VendorName, Address, PhoneNo, Email) Primary Key: VendorId

6 PurchaseRetur (PurchaseReturId, PruchaseNo, VendorName, ProductId, ProductName, Quantity, Price, TransactionDate)

Primary Key: PurchaseReturId

7 SalesRetur (SalesReturId, SalesNo, FirstName, ProductId, ProductName Quantity, Price,TransactionDate)

Primary Key: SalesReturId

8 Testimonial (TestimonialId, EmployeeId, FirstName, UserId, Comment, Status)

Primary Key: TestimonialId

9 MsEmployee (EmployeeId, EmployeeName, Status) Primary Key: EmployeeId

10 Payment (PaymentNo, SalesNo, UserId, GrandTotal, BankName, BankAccountNo, Amount, Status, TransactionDate)

Primary Key: PaymentNo

Tipe Entitas Weak

Tipe entitas weak dapat dijelaskan sebagai berikut: Tabel 4.7 Weak Entity

1 TrPurchaseDetail (PurchaseNo, Price, ProductlId, QTY) Primary Key: PurchaseNo, ProductlId

2 TrSalesDetail (SalesNo, ProductId, Price, QTY) Primary Key: SalesNo, ProductId

3 TrPurchaseReturDetail (PurchaseReturNo, Price, ProductlId, QTY) Primary Key: PurchaseReturNo, ProductlId

(29)

4 TrSalesReturDetail (SalesReturNo, ProductId, Price, QTY) Primary Key: SalesReturNo, ProductId

Tipe Hubungan Binary 1:*

Untuk setiap relasi binary one-to-many, entitas ‘oneside’ dari relasi dijadikan sebagai entitas dan entitas ‘many-side’ dijadikan sebagai entitas child. Untuk menunjukkan relasi ini, kita mengirimkan atribut primary key dari parent kedalam entitas child dan memegang peranan sebagai foreign key (Connolly dan Begg, 2010, p493)

Masukkan UserId ke Testimonial

Masukkan EmployeeId ke testimonial

MsEmployee (EmployeeId, EmployeeName, Status) Primary Key: EmployeeId

Testimonial (TestimonialId, FirstName, UserId, Comment, Status, EmployeeId) Primary Key: TestimonialId

Foreign Key: UserId References MsCustomer (UserId)

EmployeeId References MsEmployee MsCustomer (UserId, Password,

FirstName, LastName, Gender, Address, PhoneNo, Email, BankAccountNo) Primary Key: UserId

Testimonial (TestimonialId, EmployeeId, Comment, FirstName, UserId, Status)

Primary key: TestimonialId Foreign Key: UserId References MsCustomer (UserId)

(30)

(EmployeeId)

Masukkan UserId ke TrSales

Mscustomer (UserId, Password, FirstName, Address, PhoneNo, Email, BankAccountNo, Gender)

Primary Key: UserId

TrSales (SalesNo, UserId, FirstName, ProductId, ProductName, Price, Status, RequestDate, PaymentStatus, UserId, QTY, SubTotal, GrandTotal,

TransactionDate) Primary Key: SalesNo

Foreign Key: UserId References MsCustomer (UserId)

Masukkan VendorId ke TrPurchase

MsVendor (VendorId, VendorName, Address, PhoneNo,Email)

Primary key: VendorId

TrPurchase (PurcahaseNo, VendorId, VendorName, ProductId, ProductName, Price, Description, VendorId,

TransactionDate, SubTotal, GrandTotal) Primary Key: PurchaseNo

Foreign Key: VendorId References MsVendor (VendorId)

(31)

Masukkan PurchaseNo ke PurchaseRetur

TrPurchase (PurcahaseNo,VendorName, ProductId, ProductName, Price,

Description, VendorId, TransactionDate, SubTotal, GrandTotal)

Primary Key: PurchaseNo

PurchaseRetur (PurcahseReturId, VendorName, ProductId, ProductName, PurchaseNo, QTY, Price,

TransactionDate)

Primary Key: PurchaseReturId Foreign Key: PurchaseNo References TrPurchase (PurchaseNo)

Masukkan SalesNo ke SalesRetur

TrSales (SalesNo, UserId, FirstName, ProductId, ProductName, Price, Status, RequestDate, PaymentStatus, UserId, QTY, SubTotal, GrandTotal,

TransactionDate) Primary Key: SalesNo

SalesRetur (SelesReturId, FirstName, ProductId, ProductName, Quantity, Price, SalesNo, TransactionDate) Primary key: SalesReturId Foreign Key: SalesNo References TrSales (SalesNo)

(32)

Tipe Hubungan Binary 1:1

Masukkan SalesNo ke Payment

TrSales (SalesNo, UserId, FirstName, ProductId, ProductName, Price, Status, RequestDate, PaymentStatus, SubTotal, QTY GrandTotal, TransactionDate) Primary Key: SalesNo

Payment (PaymentNo, UserId, GrandTotal, BankName, Amount, SalesNo, BankAccountNo, Status, TranactionDate)

Primary Key: PaymentNo

Foreign Key: SalesNo References TrSales (SalesNo)

(33)

Tipe Hubungan Binary *:*

MsProduct (ProductId,ProductName, Stock, Price)

Primary Key: ProductId

TrSales (SalesNo, FirstName, ProductId, ProductName, Price, UserId,

RequestDate, PaymentStatus, SubTotal, QTY, GrandTotal, TransactionDate) Primary Key: SalesNo

Foreign Key: UserId References MsCustomer (UserId)

Keterangan : Buat entitas baru dengan Primary key Product (ProductId) dan Primary Key Sales (SalesNo) sebagai Primary Key dan Foreign Key entitas tersebut

TrSalesDetail (ProductId, SalesNo, Price, QTY) Primary Key: ProductId, SalesNo

Foreign Key: SalesNo References TrSales (SalesNo) ProductId References MsProduct (ProductId)

(34)

MsProduct (ProductId,ProductName, Stock, Price)

Primary Key: ProductId

TrPurchase (PurcahaseNo,

VendorName, ProductId, ProductName, Price, Description, VendorId,

TransactionDate, QTY, SubTotal, GrandTotal)

Primary Key: PurchaseNo

Foreign Key: VendorId References MsVendor (VendorId)

Keterangan : Buat entitas baru dengan Primary key Product (ProductId) dan Primary Key Purchase (PurchaseNo) sebagai Primary Key dan Foreign Key entitas tersebut.

TrPurchaseDetail (ProductId, PurchaseNo,Price, QTY) Primary Key: ProductId, PurchaseNo

Foreign Key: PurchaseNo References TrPurchase (PurchaseNo) ProductId References MsProduct (ProductId)

(35)

MsProduct (ProductId,ProductName, Stock, Price)

Primary Key: ProductId

TrSalesRetur (SalesReturId, FirstName, ProductId, ProductName, Price,

SalesNo,UserId, RequestDate, QTY, TransactionDate)

Primary Key: SalesReturNo

Foreign Key: SalesNo References TrSales (SalesNo)

Keterangan : Buat entitas baru dengan Primary key Product (ProductId) dan Primary Key SalesRetur (SalesReturId) sebagai Primary Key dan Foreign Key entitas tersebut.

TrSalesReturDetail (ProductId, SalesReturNo, Price, QTY) Primary Key: ProductId, SalesReturId

Foreign Key: SalesReturId References TrSalesRetur (SalesReturId) ProductId References MsProduct (ProductId)

(36)

MsProduct (ProductId,ProductName, Stock, Price)

Primary Key: ProductId

TrPurchaseRetur

(PurcahaseReturId,PurchaseNo,

VendorName, ProductId, ProductName, Price, TransactionDate, QTY)

Primary Key: PurchaseReturId Foreign Key: PurchaseNo References TrPurchase (PurchaseNo)

Keterangan : Buat entitas baru dengan Primary key Product (ProductId) dan Primary Key PurchaseRetur (PurchaseReturId) sebagai Primary Key dan Foreign Key entitas tersebut

TrPurchaseReturDetail (ProductId, PurchaseReturId,Price, QTY) Primary Key: ProductId, PurchaseReturId

Foreign Key: PurchaseReturId References TrPurchaseRetur (PurchaseReturId) ProductId References MsProduct (ProductId)

(37)

Atribut Multi-Valued

Pada desain basis data kami, ditemukan adanya atribut multi-value pada size dan price. Untuk produk Tart mempunyai variasi ukuran yang beragam.

Masukkan UserId ke CustomerPhone

MsCustomer (UserId, Password, FirstName, LastName, Address, Email, BankAccountNo, Gender)

Primary Key: UserId

CustomerPhone (CustomerPhoneNo, UserId)

Primary Key: CustomerPhoneNo Foreign Key: UserId References MsCustomer (UserId)

Masukkan UserId ke CustomerEmail

MsCustomer (UserId, Password, FirstName, LastName, Address, BankAccountNo, Gender) Primary Key: UserId

CustomerEmail(CustomerEmailNo, UserId)

Primary Key: CustomerEmailNo Foreign Key: UserId References MsCustomer (UserId)

Masukkan VendorId ke VendorPhone

MsVendor (VendorId, VendorName, Email, Address)

Primary Key: VendorId

VendorPhone (VendorPhoneNo, VendorId)

Primary Key: VendorPhoneNo Foreign Key: VendorId References MsVendor (VendorId)

(38)

Masukkan VendorId ke VendorEmail

MsVendor (VendorId, VendorName, Address)

Primary Key: VendorId

VendorEmail (VendorEmailNo, VendorId)

Primary Key: VendorEmailNo Foreign Key: VendorId References MsVendor (VendorId)

4.2.2.3 Validasi Relasi Menggunakan Normalisasi

Di dalam tahap perancangan basis data logikal, normalisasi kembali dilakukan terhadap basis data yang sudah terbentuk ditahap konseptual untuk memvalidasi relasi. Normalisasi yang dilakukan dapat dijelaskan sebagai berikut :

1. Sales

Normalisasi dalam entitas sales adalah sebagai berikut : UNF

Sales (SalesNo, FirstName, Status, RequestDate, PaymentStatus, TransactionDate, UserId, (ProductId, ProductName, QTY, Price, SubTotal), GrandTotal)

1NF

SalesH (SalesNo, UserId, FirstName, TransactionDate, PaymentStatus, RequestedDate, Status)

(39)

2NF

SalesH (SalesNo, UserId, FirstName, TransactionDate, PaymentStatus, RequestedDate, Status)

SalesD (SalesNo, PoductId, ProductName, Price, QTY) Product (ProductId, ProductName)

3NF

SalesH (SalesNo, UserId, FirstName, TransactionDate, PaymentStatus, RequestedDate, Status)

SalesD (SalesNo, ProductId, ProductName, Price, QTY) Product (ProductId, ProductName)

Customer (UserId, Firstname)

2. Purchase

Normalisasi dalam entitas Pembelian adalah sebagai berikut : UNF

Purchase (PurchaseNo, Description, TransactionDate, VendorId, VendorName (ProductId, ProductName, QTY, Price, SubTotal), GrandTotal)

1NF

PurchaseH (PurchaseNo, Description, TransactionDate, VendorId, VendorName)

(40)

2NF

PurchaseH (PurchaseNo, Description, TransactionDate, VendorId, VendorName)

PurchaseD (PurchaseNo, ProductId, ProductName, Price, QTY) Product (ProductId, ProductName)

3NF

PurchaseH (PurchaseNo, VendorName, Description, TransactionDate, VendorId)

PurchaseD (PurchaseNo, ProductId, ProductName, Price, QTY) Product (ProductId, ProductName)

Vendor (VendorId, VendorName)

3. Purchase Retur

Normalisasi dalam entitas Retur Pembelian adalah sebagai berikut :

UNF

PurchaseRetur (PurchaseReturId, TransactionDate, VendorName PurchaseNo, (ProductId, ProductName, QTY, Price))

(41)

1NF

PurchaseReturH (PurchaseReturId, VendorName, TransactionDate, PurchaseNo)

PurchaseReturD (PurchaseReturId, ProductName, ProductId, QTY, Price)

2NF

PurchaseReturH (PurchaseReturId, VendorName, TransactionDate, PurchaseNo)

PurchaseReturD (PurchaseReturId, ProductName, ProductId, Price, QTY)

Purchase (PurchaseNo, VendorName)

3NF

PurchaseReturH (PurchaseReturId, TransactionDate, PurchaseNo)

PurchaseReturD (PurchaseReturId, ProductId, Price, QTY) Purchase (PurchaseNo, VendorName)

(42)

4. ReturnSales

Normalisasi dalam entitas Retur Penjualan adalah sebagai berikut :

UNF

SalesRetur (SalesReturId, TransactionDate, SalesNo, FirstName (ProductName, ProductId, QTY, Price))

1NF

SalesReturH (SalesReturId, TransactionDate, SalesNo, FirstName)

SalesReturD (PurchaseReturId, ProductName, ProductId, QTY, Price)

2NF

SalesReturH (SalesReturId, TransactionDate, SalesNo, FirstName)

SalesReturD (SalesReturId, ProductName, ProductId, QTY, Price)

(43)

3NF

SalesReturH (SalesReturId, TransactionDate, SalesNo) SalesReturD (SalesReturId, ProductId, QTY, Price) Sales (SalesNo, FirstName)

Product (ProductId, ProductName)

5. Payment UNF

Payment (PaymentNo, Amount, Status, TransactionDate, BankName, BankAccountNo, UserId, GrandTotal, SalesNo)

1NF

Payment (PaymentNo, Amount, Status, TransactionDate, BankName, BankAccountNo, SalesNo, GrandTotal, UserId)

2NF

Payment (PaymentNo, Amount, Status, TransactionDate, BankName, BankAccountNo, GrandTotal UserId, SalesNo)

(44)

3NF

Payment (PaymentNo, Amount, Status, TransactionDate, BankName, BankAccountNo, UserId, SalesNo) Sales (SalesNo, GrandTotal)

6. Testimonial UNF

Testimonial (TestimonialId, Comment, Status, (EmployeeId), (UserId, FirstName))

1NF

Testimonial (TestimonialId, Comment, Status, UserId, FirstName, EmployeeId )

2NF

Testimonial (TestimonialId, Comment, Status, UserId, FirstName, EmployeeID, )

3NF

Testimonial (TestimonialId, Comment, Status, UserId, FirstName, EmployeeID, )

Customer (UserId, FirstName) Employee (EmployeeId)

(45)

7. Customer UNF

Customer (UserId, Password, FirstName, LastName, Address, Gender, BankAccountNo)

1NF

Customer (UserId, Password, FirstName, LastName, Address, Gender, BankAccountNo)

2NF

Customer (UserId, Password, FirstName, LastName, Address, Gender, BankAccountNo)

3NF

Customer (UserId, Password, FirstName, LastName, Address, Gender, BankAccountNo)

8. Employee

UNF

Employee (EmployeeId, EmployeeName, Status) 1NF

Employee (EmployeeId, EmployeeName, Status)

(46)

Employee (EmployeeId, EmployeeName, Status)

3NF

Employee (EmployeeId, EmployeeName, Status)

9. Vendor UNF

Vendor (VendorId, VendorName, Address)

1NF

Vendor (VendorId, VendorName, Address)

2NF

Vendor (VendorId, VendorName, Address)

3NF

Vendor (VendorId, VendorName, Address)

10. Product

UNF

Product (ProductId, ProductName, Price, Stock)

1NF

(47)

2NF

Product (ProductId, ProductName, Price, Stock)

3NF

Product (ProductId, ProductName, Price, Stock)

4.2.2.4 Validasi relasi terhadap transaksi user

Relasi dalam model data logikal sudah mendukung transaksi yang dibutuhkan oleh user.

4.2.2.5 Menentukan batasan integritas

Batasan integritas dari entitas dalam basis data kami adalah sebagai berikut:

Tabel 4.8 Menentukan Batasan Integritas

MsCustomer (UserId, Password, FirstName, LastName, Gender, Address, BankAccountNo)

Primary Key: UserId

MsEmployee (EmployeeId, EmployeeName, Status) Primary Key: EmployeeId

MsProduct (ProductId, ProductName, Stock, Price) Primary Key: ProductId

Testimonial (TestimonialId, FirstName, UserId, Comment, Status, EmployeeId) Primary Key: TestimonialId

Foreign Key: UserId References MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE

EmployeeId References MsEmployee (EmployeeId) ON UPDATE CASCADE ON DELETE CASCADE

MsVendor (VendorId, VendorName, Address) Primary Key: VendorId

(48)

RequestedDate, PaymentStatus, QTY, TransactionDate) Primary Key: SalesNo

Foreign Key: UserId References MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE

TrPurchase (PurchaseNo, VendorId, VendorName, ProductId, ProductName , Price, Description, QTY, TransactionDate)

Primary Key: PurchaseNo

Foreign Key; VendorId References MsVendor (VendorId) ON UPDATE CASCADE ON DELETE CASCADE

PurchaseRetur (PurchseReturId, PurchaseNo, QTY, Price, VendorName, ProductId, ProductName, TransactionDate)

Primary Key: PurchseReturId

Foreign Key: PurchaseNo References TrPurchase (PurchaseNo) ON UPDATE CASCADE ON DELETE CASCADE

SalesRetur (SalesReturId, QTY, Price, FirstName, ProductId, ProductName SalesNo,TransactionDate)

Primary key: SalesReturId

Foreign Key: SalesNo References TrSales (SalesNo) ON UPDATE CASCADE ON DELETE CASCADE

Payment (PaymentNo, UserId, BankName, BankAccountNo, Amount, SalesNo, Status, TransactionDate)

Primary Key: PaymentNo

Foreign Key : SalesNo References TrSales (SalesNo) ON UPDATE CASCADE ON DELETE CASCADE

TrSalesDetail (SalesNo, ProductId, Price, QTY) Primary Key: SalesNo, ProductId

Foreign Key: SalesNo References TrSales (SalesNo) ON UPDATE CASCADE ON DELETE CASCADE

ProductId References MsProduct (ProductId) ON UPDATE CASCADE ON DELETE CASCADE

TrPurchaseDetail (PurchaseNo, ProductId, Price, QTY) Primary Key: PurchaseNo, ProductId

(49)

CASCADE ON DELETE CASCADE

ProductId References MsProduct (ProductId) ON UPDATE CASCADE ON DELETE CASCADE

TrSalesReturDetail (SalesReturId, ProductId, Price, QTY) Primary Key: SalesNo, ProductId

Foreign Key: SalesReturId References TrSalesReur (SalesReturId) ON UPDATE CASCADE ON DELETE CASCADE

ProductId References MsProduct (ProductId) ON UPDATE CASCADE ON DELETE CASCADE

TrPurchaseDetail (PurchaseReturid, ProductId, Price, QTY) Primary Key: PurchaseReturId, ProductId

Foreign Key: PurchaseReturId References TrPurchaseRetur (PurchaseReturId) ON UPDATE CASCADE ON DELETE CASCADE

ProductId References MsProduct (ProductId) ON UPDATE CASCADE ON DELETE CASCADE

CustomerPhone (CustomerPhoneNo, UserId) Primary Key: CustomerPhoneNo

Foreign Key: UserId References MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE

VendorPhone (VendorPhoneNo, VendorId) Primary Key: VendorPhoneNo

Foreign Key: VendorId References MsVendor (VendorId) ON UPDATE CASCADE ON DELETE CASCADE

CustomerEmail (CustomerEmailNo, UserId) Primary Key: CustomerEmailNo

Foreign Key: UserId References MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE

VendorEmail (VendorEmailNo, VendorId) Primary Key: VendorEmailNo

Foreign Key: VendorId References MsVendor (VendorId) ON UPDATE CASCADE ON DELETE CASCADE

(50)

4.2.2.6 Peninjauan model data logikal dengan user

Model data logikal dan dokumen pendukung yang mendeskripsikan model adalah representasi yang telah didiskusikan dan dinyatakan benar oleh user.

(51)

Keterangan:

1. Proses Penjualan

A Registrasi Customer yang baru bergabung.

B Transaksi pembelian (Sales) yang dilakukan oleh customer.

C Transaksi pembelian (Sales) mencantumkan product. D Transaksi pembayaran (Payment) berdasarkan

penjualan (Sales).

E Transaksi pembayaran (Payment) mengambil data customer.

F Transaksi retur penjualan (Sales Retur) berdasarkan penjualan (Sales).

G Transaksi retur penjualan (SalesRetur) mencantumkan product.

H Customer memberikan testimonial.

I Employee mengelolah (Mengupdate) testimonial dari customer.

2. Proses Pembelian

J Registrasi vendor yang baru bergabung.

K Transaksi pembelian (Purchase) yang dilakukan perusahaan terhadap vendor.

L Transaksi pembelian (Purchase) mencantumkan product.

(52)

M Transaksi retur pembelian (Purchase Retur) berdasarkan pembelian (Purchase).

N Transaksi retur pembelian (Purchase Retur) mencantumkan product.

4.2.2.7 Merger model data logikal ke dalam model global Pada perancangan basis data ini, kami melakukan langkah merger model data logikal ke dalam model global.

(53)

Gambar 4.10 Merger model data logical

4.2.2.8 Validasi logikal data model secara global

Pada perancangan basis data ini, kami tidak melakukan langkah validasi logikal data model secara global.

(54)

Gambar 4.11 Validasi logikal data model secara global 4.2.2.9 Periksa untuk pertumbuhan dimasa datang

Model data logikal yang dirancang sudah disesuaikan dengan kemungkinan yang terjadi di masa depan, selama tidak terjadi perubahan kebutuhan dari user.

(55)

4.2.3 Perancangan Fisikal

Perancangan basis data fisik adalah proses yang menghasilkan gambaran dari implement database pada secondary storage. Tahap ini menggambarkan base relation, penyusunan dan pemberian indek file yang digunakan untuk mencapai akses data yang efisien, batasan integritas, dan tingkat keamanan (Connolly dan Begg, 2010, p523).

Perancangan basis data fisikal terdiri dari tahap perancanganan, yaitu: 1. Memetakan model data logikal untuk target DBMS

• Desain base relation.

• Desain representasi dan derived data. • Desain batasan umum.

2. Desain penyusunan dan pemberian index pada file • Analisis transaksi.

• Memilih index.

• Memperkirakan ukuran kapasitas disk yang dibutuhkan. 3. Desain user views

4. Desain mekanisme keamanan

5. Mempertimbangkan petunjuk untuk pengaturan redundancy 6. Monitor dan tune sistem operasional

4.2.3.1 Memetakan Model Data Logikal Untuk Target DBMS

Tujuan dari langkah ini adalah untuk menghasilkan skema basis data relasional dari model data logikal yang dapat diimplementasikan di DBMS (Connolly dan Begg, 2010, p524).

(56)

Tujuan dari langkah ini adalah untuk memutuskan bagaimana kita menampilkan base relation yang ditemukan dari model data logikal ke dalam target DBMS (Connolly dan Begg, 2010, p525). Desain Base Relation

• MsCustomor

Domain UserId: Fixed length character string, length 8 DomainPassword: Variable length character string, length 10 Domain FirstName: Variable length character string, length 15 Domain LastName: Variable length character string, length 15 Domain Gender: Integer

Domain Address: Variable length character string, length 100 Domain BankAccountNo: Variable length character string, length 15 MsCustomer(

UserId UserId NOT NULL,

Password CustomerPassword NOT NULL,

FirstName CustomerFirstName NOT NULL,

LastName CustomerLastName NOT NULL,

Gender Gender NOT NULL,

Address CustomerAddress NOT NULL,

BankAccountNo BankAccountNo NOT NULL,

PRIMARY KEY (UserId), )

• MsEmplyee

Domain EmployeeId: Fixed length character string , length 8

(57)

Domain Status: Integer MsEmployee(

EmployeeId EmployeeId NOT NULL, EmployeeName EmployeeName NOT NULL, Status EmployeeStatus NOT NULL, PRIMARY KEY (EmployeeId),

)

• MsProduct

Domain ProductId: Fixed length character string , length 8

Domain ProductName: variable length character string , length 10 Domain Price: Decimal, length 10,2

Domain Stock : Integer MsProduct(

ProductId ProductId NOT NULL,

ProductName ProductName NOT NULL,

Price Price NOT NULL,

Stock Stock NOT NULL,

PRIMARY KEY (ProductId), )

• Testimonial(

Domain TestimonialId: Fixed length character string , length 8 Domain UserId: Fixed length character string , length 8

Domain Comment: Variable length character string , length 100 Domain FirstName: Variable length character string , length 15

(58)

Domain Status: Integer

Domain EmployeeId: Fixed length character string , length 8 Testimonial(

TestimonialId TestimonialId NOT NULL,

UserId UserId NOT NULL,

Comment TestimonialComment NOT NULL,

Status Status NOT NULL,

EmployeeId EmployeeId NOT NULL,

FirstName CustomerFirstName NOT NULL, PRIMARY KEY (TestimonialId),

FOREIGN KEY UserId REFERENCES MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY EmployeeId REFERENCES MsEmployee (EmployeeId) ON UPDATE CASCADE ON DELETE CASCADE, )

• MsVendor

Domain VendorId: Fixed length character string , length 8

Domain VendorName: variable length character string , length 20 Domain Address: variable length character string , length 100 MsVendor(

VendorId VendorId NOT NULL,

VendorName VendorName NOT NULL,

Address VendorAddress NOT NULL,

PRIMARY KEY (VendorId), )

(59)

• TrSales

Domain SalesNo: Fixed length character string , length 12 Domain Status: Integer

Domain UserId: Fixed length character string , length 8 Domain RequestedDate: DateTime, format yyyy-mm-dd Domain PaymentStatus: Integer

Domain TransactionDate: DateTime, format yyyy-mm-dd Domain FirstName : variable length character string , length 15 Domain ProductId: Fixed length character string , length 8

Domain ProductName: variable length character string , length 10 Domain Price: Decimal, length 10,2

TrSales

SalesNo SalesNo NOT NULL,

FirsName CustomerFirstName NOT NULL,

ProductId ProductId NOT NULL,

ProductName ProductName NOT NULL,

Price Price NOT NULL,

Status SalesStatus NOT NULL,

UserId UserId NOT NULL,

RequestedDate SalesRequestDate NOT NULL, PaymentStatus PaymentStatus NOT NULL, TransactionDate SalesTransactionDate NOT NULL, PRIMARY KEY(SalesNo),

FOREIGN KEY UserId REFERENCES MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE,

(60)

)

• TrPurchase

Domain PurchaseNo: Fixed length character string , length 12 Domain VendorId: Fixed length character string , length 8 Domain Description: Variable length character string , length 50 Domain TransactionDate: DateTime, format yyyy-mm-dd

Domain VendorName : Variable length character string , length 20 Domain ProductId: Fixed length character string , length 8

Domain ProductName: Variable length character string , length 10 Domain Price: Decimal, length 10,2

TrPurchase(

PurchaseNo PurchaseNo NOT NULL,

VendorName VendorName NOT NULL,

ProductId ProductId NOT NULL,

ProductName ProductName NOT NULL,

Price Price NOT NULL,

VendorId VendorId NOT NULL,

Description PurchaseDescription NOT NULL, TransactionDate PurchaseTransactionDate NOT NULL, PRIMARY KEY (PurchaseNo),

FOREIGN KEY VendorId REFERENCES MsVendor (VendorId) ON UPDATE CASCADE ON DELETE CASCADE,

(61)

• PurchaseRetur

Domain PurchaseReturId: Fixed length character string , length 12 Domain PurchaseNo: Fixed length character string , length 12 Domain TransactionDate: DateTime, format yyyy-mm-dd

Domain VendorName: Variable length character string , length 20 Domain ProductId: Fixed length character string , length 8

Domain ProductName: Variable length character string , length 10 Domain QTY : Integer

Domain Price: Decimal, length 10,2 PurchaseRetur(

PurchaseReturId PurchaseReturId NOT NULL,

VendorName VendorName NOT NULL,

ProductId ProductId NOT NULL,

ProductName ProductName NOT NULL,

PurchaseNo PurchaseNo NOT NULL,

TransactionDate PurchaseReturDate NOT NULL,

QTY Quantity NOT NULL,

Price Price NOT NULL,

PRIMARY KEY (PuchaseReturId),

FOREIGN KEY PurchaseNo REFERENCES TrPurchase (PurchaseNo) ON UPDATE CASCADE ON DELETE CASCADE, )

• SalesRetur

Domain SalesReturId: Fixed length character string , length 12 Domain SalesNo: Fixed length character string , length 12

(62)

Domain TransactionDate: DateTime, format yyyy-mm-dd Domaim QTY: Integer

Domain Price: Decimal, length 10,2

Domain FirstName: Variable length character string , length 15 Domain ProductId: Fixed length character string , length 8 Domain ProductName: Variable length character string , length 8 SalesRetur(

SalesReturId SalesReturId NOT NULL,

QTY Quantity NOT NULL,

Price Price NOT NULL,

FirstName CustomerFirstName NOT NULL,

ProductId ProductId NOT NULL,

ProductName ProductName NOT NULL,

SalesNo SalesNo NOT NULL,

TransactionDate SalesReturDate NOT NULL, PRIMARY KEY (SalesReturId),

FOREIGN KEY SalesNo REFERENCES TrSales (SalesNo) ON UPDATE CASCADE ON DELETE CASCADE,

)

• Payment

Domain PaymentNo: Fixed length character string , length 12 Domain BankName: Variable length character string , length 20 Domain BankAccountNo : Variable length character string, length 15 Domain Amount: Integer

(63)

Domain Status: Integer

Domain TransactionDate: Date, length 10, format yyyy-mm-dd Domain UserId: Fixed length character string , length 8

Payment(

PaymentNo PaymentNo NOT NULL,

UserId UserId NOT NULL,

BankName BankName NOT NULL,

Amount PaymentAmount NOT NULL,

SalesNo SalesNo NOT NULL,

BankAccountNo BankAccountNo NOT NULL, Status PaymentStatus NOT NULL, TransactionDate PaymentDate NOT NULL, PRIMARY KEY (PaymentNo),

FOREIGN KEY SalesNo REFERENCES TrSales (SalesId) ON UPDATE CASCADE ON DELETE CASCADE,

)

• TrSalesDetail

Domain SalesNo: Fixed length character string , length 12 Domain ProductId: Fixed length character string , length 8 Domain QTY: Integer

Domain Price: Decimal, length 10,2 TrSalesDetail(

(64)

SalesNo SalesNo NOT NULL,

Price Price NOT NULL,

ProductId ProductId NOT NULL,

QTY Quantity NOT NULL,

PRIMARY KEY (SalesNo, ProductId)

FOREIGN KEY SalesNo REFERENCES TrSales (SalesNo) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY ProductId REFERENCES MsProduct (ProductId) ON UPDATE CASCADE ON DELETE CASCADE,

)

• TrPurchaseDetail

Domain PurchaseNo: Fixed length character string , length 12 Domain ProductId: Fixed length character string , length 8 Domain QTY: Integer

Domain Price: Decimal, length 10,2 TrPurchaseDetail(

PurchaseNo PurchaseNo NOT NULL,

Price Price NOT NULL,

ProductId ProductId NOT NULL,

QTY Quantity NOT NULL,

PRIMARY KEY (PurchaseNo, ProductId)

FOREIGN KEY PurchaseNo REFERENCES TrPurchase (PurchaseNo) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY ProductId REFERENCES MsProduct (ProductlId) ON UPDATE CASCADE ON DELETE CASCADE,

(65)

)

• TrSalesReturDetail

Domain SalesReturId: Fixed length character string , length 12 Domain ProductId: Fixed length character string , length 8 Domain QTY: Integer

Domain Price: Decimal, length 10,2 TrSalesReturDetail(

SalesReturId SalesReturId NOT NULL,

Price Price NOT NULL,

ProductId ProductId NOT NULL,

QTY Quantity NOT NULL,

PRIMARY KEY (SalesReturId, ProductId)

FOREIGN KEY SalesReturId REFERENCES TrSalesRetur (SalesReturId) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY ProductId REFERENCES MsProduct (ProductId) ON UPDATE CASCADE ON DELETE CASCADE,

)

• TrPurchaseReturDetail

Domain PurchaseReturId: Fixed length character string , length 12 Domain ProductId: Fixed length character string , length 8

Domain QTY: Integer

Domain Price: Decimal, length 10,2 TrPurchaseReturDetail(

PurchaseReturId PurchaseReturId NOT NULL,

(66)

ProductId ProductId NOT NULL,

QTY Quantity NOT NULL,

PRIMARY KEY (PurchaseReturId, ProductId)

FOREIGN KEY PurchaseReturId REFERENCES TrPurchaseRetur (PurchaseReturId) ON UPDATE CASCADE ON DELETE CASCADE,

FOREIGN KEY ProductId REFERENCES MsProduct (ProductlId) ON UPDATE CASCADE ON DELETE CASCADE,

)

• CustomerPhone

Domain CustomerPhoneNo: variable length character string , length 15

Domain UserId: Fixed length character string , length 8 CustomerPhone(

CustomerPhoneNo CustomerPhoneNo NOT NULL,

UserId UserId NOT NULL,

PRIMARY KEY (CustomerPhoneNo)

FOREIGN KEY UserId REFERENCES MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE,

)

• CustomerEmail

Domain CustomerEmailNo: Variable length character string , length 30

(67)

CustomerEmail(

CustomerEmailNo CustomerEmailNo NOT NULL,

UserId UserId NOT NULL,

PRIMARY KEY (CustomerEmailNo)

FOREIGN KEY UserId REFERENCES MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE,

)

• VendorPhone

Domain VendorPhoneNo: Fixed length character string , length 15 Domain VendorId: Fixed length character string , length 8

VendorPhone(

VendorPhoneNo VendorPhoneNo NOT NULL,

VendorId VendorId NOT NULL,

PRIMARY KEY (VendorPhoneNo),

FOREIGN KEY VendorId REFERENCES MsVendor (VendorId) ON UPDATE CASCADE ON DELETE CASCADE,

)

• VendorEmail

Domain VendorEmailNo: Fixed length character string , length 30 Domain VendorId: Fixed length character string , length 8

VendorEmail(

VendorEmailNo VendorEmailNo NOT NULL,

VendorId VendorId NOT NULL,

(68)

FOREIGN KEY VendorId REFERENCES MsVendor (VendorId) ON UPDATE CASCADE ON DELETE CASCADE,

)

4.2.3.2 Desain Penyusunan dan Pemberian Index pada File

Tujuan dari langkah ini adalah untuk mempertimbangkan pengaturan atau penyusunan file yang optimal untuk disimpan dalam base relation dan indeks yang dibutuhkan untuk mencapai performa yang diinginkan.

• Analisis Transaksi

Tujuan dari langkah ini adalah untuk mengerti manfaat transaksi yang akan dijalankan di dalam basis data dan untuk menganalisis transaksi penting (Connolly dan Begg, 2010, p529).

(69)

Tabel 4.9 Cross-referencing transaction and relation Transaksi / Relasi 1 2 3 4 I R U D I R U D I R U D I R U D MsCustomer x x x MsEmployee x x x MsProduct x x x Testimonial x x x MsVendor TrSales TrSalesRetur TrPurchase TrPurchaseRetur Payment TrSalesDetail TrPurchaseDetail TrPurchaseReturDetail TrSalesReturDetail CustomerPhone VendorPhone CustomerEmail VendorEmail

I : Insert , R : Read , U : Update , D : Delete

Keterangan :

1. Menginput dan mengubah data Customer 2. Menginput dan mengubah data Employee 3. Menginput dan mengubah data Product 4. Menampilkan dan mengubah data Testimonial

(70)

Transaksi / Relasi 5 6 7 8 I R U D I R U D I R U D I R U D MsCustomer MsEmployee MsProduct Testimonial MsVendor x x x TrSales x x x TrSalesRetur x x x TrPurchase x x x TrPurchaseRetur Payment TrSalesDetail TrPurchaseDetail TrSalesReturDetail TrPurchaseReturDetail CustomerPhone VendorPhone CustomerEmail VendorEmail

I : Insert , R : Read , U : Update , D : Delete

Keterangan :

5. Menginput dan mengubah data Vendor 6. Menginput dan mengubah data Sales 7. Menginput dan mengubah data SalesRetur 8. Menginput dan mengubah data Purchase

(71)

Transaksi / Relasi 9 10 11 12 I R U D I R U D I R U D I R U D MsCustomer MsEmployee MsProduct Testimonial MsVendor TrSales TrSalesRetur TrPurchase TrPurchaseRetur x x x Payment x x x TrSalesDetail x x x TrPurchaseDetail x x x TrSalesReturDetail TrPurchaseReturDetail CustomerPhone VendorPhone CustomerEmail VendorEmail

I : Insert , R : Read , U : Update , D : Delete Keterangan :

9. Menginput dan mengubah data PurchaseRetur. 10. Menginput dan menampilkan data Payment. 11. Menginput dan mengubah data SalesDetail. 12. Menginput dan mengubah data PurchaseDetail.

(72)

Transaksi / Relasi 13 14 15 16 I R U D I R U D I R U D I R U D MsCustomer MsEmployee MsProduct Testimonial MsVendor TrSales TrSalesRetur TrPurchase TrPurchaseRetur Payment TrSalesDetail TrPurchaseDetail TrSalesReturDetail TrPurchaseReturDetail CustomerPhone x x x VendorPhone x x x CustomerEmail x x x VendorEmail x x x

I : Insert , R : Read , U : Update , D : Delete

Keterangan :

13. Menginput dan mengubah data CustomerPhone. 14. Menginput dan mengubah data VendorPhone. 15. Menginput dan mengubah data CustomerEmail. 16. Menginput dan mengubah data VendorEmail.

(73)

Transaksi / Relasi 17 18 I R U D I R U D MsCustomer MsEmployee MsProduct Testimonial MsVendor TrSales TrSalesRetur TrPurchase TrPurchaseRetur Payment TrSalesDetail TrPurchaseDetail TrSalesReturDetail x x x TrPurchaseReturDetail x x x CustomerPhone VendorPhone CustomerEmail VendorEmail

17. Menginput dan mengubah data SalesReturDetail. 18. Menginput dan mengubah data PurchaseReturDetail.

• Memilih Index

Tujuan dari langkah ini adalah untuk mempertimbangkan apakah penambahan indeks akan membantu peningkatan performa dari system (Connolly dan Begg, 2010, p535).

(74)

Tabel 4.10 Indeks

Tabel Entitas Nama Indeks Key Indeks Keterangan Indeks

MsCustomer IdxCustomer UserId Berdasarkan

UserId

MsEmployee IdxEmpoyee EmployeeId Berdasarkan

EmployeeId

MsProduct IdxProduct ProductId Berdasarkan

ProductId Testimonial IdxTestimonial TestimonialId Berdasarkan

TestimonialI d

MsVendor IdxVendor VendorId Berdasarkan

VendorId

TrSales IdxSales SalesNo Berdasarkan

SalesNo

TrPurchase IdxPurchase PurchaseNo Berdasarkan

PurchaseNo PurchaseRetur IdxPurchaseRetur PurchaseReturId Berdasarkan

PurchaseRet urId

SalesRetur IdxSalesRetur SalesReturId Berdasarkan SalesReturId

Payment IdxPayment PaymentNo Berdasarkan

PaymentNo TrSalesDetail IdxSalesDetail SalesNo

ProductId

Berdasarkan SalesNo dan ProductId TrPurchaseDatail IdxPurchaseReturDetail PurchaseNo

ProductId

Berdasarkan PurchaseNo dan

ProductId TrSalesReturDetail IdxSalesReturDetail SalesReturId Berdasarkan

(75)

ProductId SalesReturId dan

ProductId TrPurchaseReturDatail IdxPurchaseReturDetail PurchaseReturId

ProductId

Berdasarkan PurchaseRet urId dan ProductId CustomerPhone IdxCustomerPhone CustomerPhoneNo Berdasarkan

CustomerPh oneNo VendorPhone IdxVendorPhone VendorPhoneNo Berdasarkan

VendorPhon eNo

CutomerEmail IdxCustomerEmail CustomerEmailNo Berdasarkan CustomerE mailNo VendorEmail IdxVendorEmail VendorEmailNo Berdasarkan

VendorEmai lNo

• Memperkirakan Ukuran Kapasitas Disk yang Dibutuhkan Tujuan dari langkah ini adalah untuk memperkirakan kapasitas disk yang akan dibutuhkan oleh database (Connolly dan Begg, 2010, p541).

Tabel 4.11 Disk Space

Table/Entity Attributes Data type Size in

bytes

MsCustomer UserId Char 8

Password Varchar 10

(76)

LastName Varchar 15 BankAccountNo Varchar 15 Address Varchar 100 Gender Integer 1 Total :164

MsProduct ProductId Char 8

ProductName Varchar 10

Price Decimal 15

Stock Integer 4

Total :37

TrSales SalesNo Char 12

UserId Char 8 Status Integer 1 RequestedDate DateTime 12 PaymentStatus Integer 1 QTY Integer 4 TransactionDate DateTime 12 ProductId Char 8 ProductName Varchar 10 Price Decimal 15 FirstName Varchar 15 Total :98

TrPurchase PurchaseNo Char 12

VendorId Char 10 Description Varchar 50 TransactionDate DateTime 12 QTY Integer 4 VendorName Varchar 20 ProductId Char 8 ProductName Varchar 10

(77)

Price Decimal 15 Total :141

MsVendor VendorId Char 8

VendorName Varchar 20

Address Varchar 100

Total :128

PurchaseRetur PurchaseReturId Char 12

PurchaseNo Char 12 TransactionDate DateTime 12 QTY Integer 4 Price Decimal 15 VendorName Varchar 20 ProductId Char 8 ProductName Vaerchar 10 Total :93

SalesRetur SalesReturId Char 12

SalesNo Char 12 TransactionDate DateTime 12 QTY Integer 4 Price Decimal 15 FirstName Varchar 15 ProductId Char 8 ProductName Vaerchar 10 Total :88

Testimonial TestimonialId Char 8

UserId Char 8

EmployeeId Char 8

Comment Varchar 100

Status Integer 1

(78)

Total :140

MsEmployee EmployeeId Char 8

EmployeeName Varchar 10

Status Integer 1

Total :19

Payment PaymentNo Char 12

SalesNo Char 10 BankName Varchar 20 BankAccountNo Varchar 15 Amount Integer 10 Status Integer 1 UserId Char 8 TransactionDate DateTime 12 Total :88

TrSalesDetail SalesNo Char 12

ProductId Char 8

Price Decimal 15

QTY Integer 4

Total :39

TrPurchaseDetail PurchaseNo Char 12

ProductId Char 8

Price Decimal 15

QTY Integer 4

Total :39

TrSalesReturDetail SalesReturId Char 12

ProductId Char 8

Price Decimal 15

Gambar

Gambar 4.3 Model Data Konseptual dengan PrimaryKey
Gambar 4.7 Hubungan Relasi Sales Retur  dan Product yang Sudah  Dipecah
Gambar 4.8 Multi-Valued Atribut yang Sudah Dihilangkan  Keterangan:
Gambar 4.9 model data logikal dengan user
+7

Referensi

Dokumen terkait

Kritik hadis dalam bahasa Arab dikenal dengan sebutan naqd al-hadith. Kata naqd mempunyari arti penelitian, pengecekan, pembedaan dan analisis. Menurut istilah,

Hasil penelitian menunjukkan bahwa pemberian kadar NaCl hingga 4.500 ppm masih dapat ditolerir oleh tanaman selada dan pemberian dosis kompos jerami hingga 50 ton/h mampu

Lampiran 6 : Hasil analysis statistik sebelum memenuhi asumsi klasik..

menekankan pada segi kognitif, sedangkan belajar proses memungkinkan tercapainya tujuan belajar dari segi kognitif, afektif, maupun psikomotor. Oleh karena itu,

Kurva Two Component Mix Hasil Pengujian Respon Transmitan SNEDDS Ekstrak Kloroform Daun Salam Dengan Metode Simplex Latice Design pada Aplikasi State Ease dx 9 Trial

Aplikasi yang berada pada kuadran high potential dan strategi mampu memberikan manfaat kompetitif kepada perusahaan karena dapat memberikan manfaat kompetitif serta dapat

Berdasarkan hasil penelitian diketahui bahwa pelayanan kesehatan di Puskesmas Juanda untuk indikator standar pelayanannya sudah terbilang cukup baik, hanya saja untuk