bab iii analisis dan perancangan sistem 3.1 latar …thesis.binus.ac.id/asli/bab3/2010-1-00069-if...
TRANSCRIPT
61
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Latar Belakang Perusahaan
3.1.1 Riwayat Perusahaan
PT.Citramas Alfa Sejahtera berdiri pada tahun 1993, sejak awal mulai berdiri,
perusahaan ini telah melayani penjualan sistem telekomunikasi sederhana yang dimulai
dari penjualan ke konsumen tingkat rendah dan tingkat menengah. Seiring meningkatnya
kebutuhan akan sistem telekomunikasi maka PT Citramas Alfa Sejahtera
mengembangkan bisnisnya dan melayani penjualan untuk tingkat menengah ke atas juga
pada tingkat tinggi perusahaan. Pada tahun 1995 PT Citramas Alfa Sejahtera ditunjuk
sebagai distributor resmi oleh Panasonic Telephone System Indonesia. Semenjak akhir
tahun 2007, Citramas Alfa Sejahtera dipercaya IT-COMM PANASONIC Indonesia
untuk menjadi distributor resmi IP Camera System. PT. Citramas Alfa Sejahtera sebagai
Authorized Dealer (dealer resmi) PANASONIC dibawah naungan IT-COMM Indonesia,
menyediakan solusi lengkap bagi kebutuhan telekomunikasi dan security pelanggan
untuk meningkatkan produktivitas, operasional dan realibilitas untuk semua bisnis baik
skala kecil, menengah maupun besar.
3.1.2 Produk Perusahaan
PT. Citramas Alfa Sejahtera menyediakan solusi telekomunikasi PANASONIC, mulai
dari perangkat PABX TDA / TDE (IP Pure dan IP Hybrid PBX), Key Telephone, Call
Center, VoiceMail, Network/ IP Camera, PowerLine Communication, Mesin Fax,
62
PhotoCopy, PanaBoard dan perangkat-perangkat telekomunikasi PANASONIC lainnya
untuk personal dan bisnis. PT. Citramas Alfa Sejahtera juga melayani instalasi dan
pembangunan network / jaringan komputer LAN / WAN (WiFi, Access Point, Repeater,
dsb) dan Internet Network sampai setting perangkat komputer, dll.
Dengan dukungan teknis dari tenaga kerja yang terlatih, PT. Citramas Alfa Sejahtera
juga memberikan pelayanan purna jual dan maintenance untuk setiap perangkat dan
sistem solusi yang di pasang. Dengan demikian cakupan solusi dan produk yang
ditangani oleh Citramas Alfa Sejahtera adalah Distribusi Penjualan, Implementasi
(Instalasi) dan juga Layanan Purna Jual untuk solusi dan produk sbb:
1. Panafax - Faksimile Terpercaya dari Panasonic
2. Panaboard – Panasonic Electronic Print Board
3. Panasonic Multimedia LCD Projector
4. Panasonic IP-PBX / PABX System
5. Panasonic Proprietary Telephone untuk PABX System
6. Panasonic Voice Processing System untuk PABX System
7. Panasonic Single Line Telephone
8. Panasonic Cordless Phone
9. Panasonic Conference Phone
10. Panasonic Facsimile KXF Series
11. Panasonic Network Camera
12. Panasonic HD-PLC ( Power Line Communication )
63
13. Bahan Kelengkapan Tambahan dan kebutuhan sehari-hari dari produk-produk di
atas
14. Internet Broadband Provider for home / Office
15. Perangkat-perangkat Intranet / Internet (Router, Switch Hub, dsb)
16. CCTV Security (Analog)
3.1.3 Layanan Purna Jual yang disediakan PT Citramas Alfa Sejahtera:
a. Kunjungan perawatan perangkat secara berkala (selama masih dalam garansi).
b. Kunjungan tindakan perbaikan perangkat atas permintaan pelanggan bila
dibutuhkan.
c. Perangkat cadangan/pengganti apabila perangkat pelanggan mengalami
kerusakan dan harus diperbaiki di service centre IT-COMM.
d. Kontrak Perawatan dan Perbaikan Panasonic.
e. Penjualan bahan pakai (consumables) dan kelengkapan tambahan untuk
perangkat.
3.1.4 Visi dan Misi Perusahaan
Visi PT Citramas Alfa Sejahtera ialah menjadi perusahaan yang professional di bidang
telekomunikasi, penyediaan solusi lengkap sistem telekomunikasi, serta perdagangan
alat-alat telekomunikasi retail dan grosir yang terpercaya.
Misi PT Citramas Alfa Sejahtera ialah melayani segenap perusahaan baik kecil,
menengah maupun besar. PT. Citramas Alfa Sejahtera berusaha membantu untuk
64
memberikan solusi pemecahan masalah yang mungkin dialami pelanggan dengan
menyediakan berbagai macam produk dibidang telekomunikasi dan keamanan. Sehingga
para pengguna dapat dengan mudah mendapatkan sistem yang praktis dan modern agar
dapat memenuhi proses berjalannya bisnis dengan lancar di setiap perusahaan–
perusahaan kecil, menengah, maupun besar.
3.1.5 Struktur Organisasi
Gambar 3.1 Struktur organisasi perusahaan
65
3.1.6 Tugas dan Wewenang
Berikut ini tugas dan wewenang dari masing – masing jabatan yang ada di perusahaan
yang berhubungan dengan ruang lingkup penelitian kami :
a. Direktur
o Mengendalikan perusahaan secara langsung
o Mengambil keputusan – keputusan penting.
o Melakukan evaluasi terhadap kinerja perusahaan secara berkala.
b. Manajer
o Secara tidak langsung membantu perkerjaan direktur
o Mewakili direktur dalam mengambil keputusan.
c. Sales
o Menentukan langkah - langkah dalam mempromosikan produk
perusahaan
o Meningkatkan jumlah penjualan dengan melatih sales langsung atau
mengatur promosi dengan menggunakan media
d. Direct Sales
o Menjual produk perusahaan secara langsung. Contohnya pada shorum
atau toko cabang pembantu.
e. Indirect Sales
o Menjual produk perusahaan secara tidak langsung. Contohnya penjualan
pada sales keliling, media cetak.
.
66
f. Customer Support
o Melayani pelanggan dengan barang – barang produksi dari perusahaan.
o Melakukan pemilihan service apa yang diinginkan atau dibutuhkan
pelanggan.
o Melakukan pengaturan pengiriman barang kepada customer yang
memesan.
g. Teknisi
o Melakukan repair langsung kepada barang – barang milik pelanggan.
h. Delivery
o Melakukan pengantaran barang kepada pelanggan yang memesan.
i. Service and Repair
o Melakukan komunikasi dengan pelanggan apa yang mereka bisa lakukan
dengan barang tersebut
o Menjawab setiap pertanyaan pelanggan tentang barang yang mereka beli.
o Memberikan solusi kepada barang milik pelanggan yang bermasalah.
j. Accounting
o Mengatur gaji pegawai.
o Mengatur arus kas perusahaan.
o Membuat kebijakan umum tentang keuangan perusahaan.
o Menentukan harga dari barang.
k. Finance
o Mengatur arus kas keuangan perusahaan.
o Membuat laporan keuangan setiap periode.
67
l. Purchasing
o Melakukan pembelian – pembelian barang baku.
o Melakukan pembelian – pembelian barang sesuai kebutuhan perusahaan.
m. General Affair
o Melakukan kontak dengan karyawan dalam bagian – bagian umum.
3.1.7 Prosedur Sedang berjalan
Saat ini PT Citramas Alfa Sejahtera membuka cabang di luar daerah jabotabek.
Prosedur yang sedang berjalan saat pembeli datang secara langsung ke toko dan
memesan barang. Setelah menyetujui produk yang diinginkan, pelanggan membayar ke
toko.
Transaksi dapat juga di lakukan melalui telpon, setelah pelanggan menghubungi toko
melalui telpon, toko akan mengirim surat penawaran ke pelanggan. Jika di setujui, maka
barang akan dikirim ke tempat pelanggan dan dibayar di tempat.
Setiap hari karyawan di toko akan mengirimkan faktur dan bon penjualan ke kantor di
Jln. Harumanis no.4 Mangga Besar. Staff Accounting akan mendata faktur dan bon
penjualan yang dikirim dari toko dan menyerahkan laporannya ke ketua bagian
Accounting untuk kemudian di serahkan ke Manajer perusahaan.
68
3.1.8 Diagram Aliran Data (Diagram Konteks)
Gambar 3.2 Data Flow Diagram
69
3.1.9 Diagram Aliran Data (DFD Level Nol)
Gambar 3.3 Data Flow Diagram Level Nol
70
3.1.10 Permasalahan yang Dihadapi
Perusahaan membutuhkan sebuah sistem berbasiskan web yang dapat melayani
penjualan produk secara online.
a. Tidak adanya sistem database yang berbasiskan web untuk penjualan online.
b. Pesaing mulai menerapkan aplikasi web database untuk penjualan.
3.1.11 Pemecahan Masalah
a. Merancang sistem transaksi penjualan dan pembelian yang terintegrasi melalui
internet yang nantinya mampu mempermudah perusahaan dalam melakukan
manajemen pemesanan barang.
b. Merancang sebuah website yang mampu memberikan informasi yang terupdate
dan lengkap mengenai produk-produk Panasonic yang tersedia di perusahaan
secara detail.
3.1.12 Analisa Kebutuhan Sistem
Tabel 3.1 Tabel informasi yang dibutuhkan
Jenis Informasi Keterangan
Employee Menampilkan data Employee
Supplier Menampilkan data Supplier
SupplierType Menampilkan data SupplierType
Occupation Menampilkan data Occupation
Product Menampilakan data Product (Sales dan
71
purchase)
ProductType Menampilkan data ProductType (Sales
dan Purchase)
Branch Menampilkan data Branch
Member Menampilkan data Member
MemberType Menampilkan data MemberType
Delivery Menampilkan data Delivery
ServiveAndRepair Menampilkan data Service and Repair
Sales Menampilkan data Sales
Purchase Menampilkan data Purchase
3.2 Perancangan Database
Metodologi perancangan basis data yang kami gunakan terbagi menjadi tiga tahapan,
yaitu :
1. Perancangan Basis data Konseptual
2. Perancangan Basis data Logikal
3. Perancangan Basis data Fisikal
3.2.1 Perancangan Basis Data Konseptual
3.2.1.1 Mengidentifikasikan tipe-tipe dari entitas
72
Tabel 3.2 Identifikasi tipe entiti
Entity Deskripsi Penjelasan
Employee Karyawan yang bekerja di PT.
Citramas Alfa Sejahtera
Masing-masing karyawan minimal
memiliki satu jenis pekerjaan
Supplier
Perusahaan yang menyediakan
barang untuk PT. Citramas Alfa
Sejahtera
Karyawan melakukan pemesanan
barang ke supplier
SupplierType Tipe Supplier yang menyediakan
barang
Karyawan memilih tipe Supplier
Occupation Jenis pekerjaan yang ada di PT.
Citramas Alfa Sejahtera
Setiap jenis pekerjaan yang dimiliki
oleh karyawan
Product Macam-macam produk yang ada
di PT. Citramas Alfa Sejahtera
Produk dibeli dari supplier dan
produk dijual ke pelangan
ProductType Tipe produk Jenis produk yang dijual, dan produk
yang dibeli
Branch Cabang toko Cabang cabang toko yang terdapat di
Indonesia
Member Pelanggan yang mendaftar Proses pendaftaran dilakukan pada
website
MemberType Tipe anggota Status anggota terdiri atas pelanggan
dan admin
Delivery Pengiriman barang yang dipesan
pelanggan
Mengirimkan barang dari toko ke
tempat pelanggan
ServiceAndRepair Memberikan pelayanan purna jual
dan maintenance
Reparasi dan retur produk terjadi
jika ada komplain dari pelanggan
Sales Penjualan Mendeskripsikan penjualan ke
pelanggan
Purchase Pembelian Mendeskripsikan pembelian ke
supplier
Stock Persediaan barang Setiap cabang toko memiliki
73
persediaan
3.2.1.2 Mengidentifikasikan tipe-tipe dari relationship
Tabel 3.3 Identifikasi tipe relationship
Entity Multiplicity Relationship Multiplicity Entity
Employee
1..*
1..1
1..*
1..1
1..1
*..1
Bekerja sebagai
Menangani
Dilokasikan
Menangani
Menangani
Menangani
1..1
1..*
1..1
1..*
1..*
1..*
Occupation
Purchase
Branch
ServiceAndRepair
Sales
Delivery
Product
*..1
*.. *
*.. *
1.. *
Berasosiasikan
dengan
Memiliki
Berasal dari
Kategorinya
1..1
*.. *
*.. *
1.. 1
ServiceAndRepair
Sales
Purchase
ProductType
Member
1.. 1
1.. 1
1.. *
Transaksi
Meminta
Kategorinya
1..*
1.. *
1.. 1
Sales
ServiceAndRepair
MemberType
ServiceAndRepair
1..*
1.. *
1.. 1
Melayani
Dilayani oleh
Melakukan
reparasi pada
1..1
1.. 1
*.. 1
Member
Employee
Product
Branch 1..1 Mempunyai 1.. * Employee
Delivery 1..*
Mengantarkan
produk
*..1
Sales
74
1..* Ditangani *..1 Employee
Sales
*..*
*..1
1..*
1..*
Mempunyai
Dikirim oleh
Transaksi oleh
Ditangani
*..*
1..*
1..1
1..1
Product
Delivery
Member
Employee
Purchase
*..*
1..*
1..*
Mempunyai
Pembelian pada
Ditangani
*..*
1..1
1..1
Product
Supplier
Employee
Stock
1..*
1..*
Tempat
menyediakan
Ditempatkan
disetiap
1..1
*..1
Product
Branch
3.2.1.3 Identifikasi dan Asosiasi Atribut dengan Entiti
Tabel 3.4 Identifikasi dan Asosiasi Atribut dengan Entiti
Entiti Atribut Deskripsi Tipe Data Null MultiValue
Member MemberID ID anggota Char(7) Tidak Tidak
MemberName Nama lengkap
member
Varchar(30) Tidak Tidak
UserName Nama untuk
Login
Varchar(15) Tidak Tidak
Password Password untuk
login
Varchar(15) Tidak Tidak
BirthDay Tanggal lahir DateTime Tidak Tidak
MemberAddress Alamat member Text Tidak Tidak
MemberPhone Nomor
Telephone
Varchar(15) Tidak Ya
MemberEmail Alamat email Varchar(30) Tidak Tidak
75
City kota Varchar(20) Tidak Tidak
Provincre Provinsi Varchar(20) Tidak Tidak
Member
TypeID
ID tipe anggota Varchar(7) Tidak Tidak
Supplier SupplierID ID supplier Char(7) Tidak Tidak
SupplierName Nama Supplier Varchar(30) Tidak Tidak
SupplierAddress Alamat Supplier Text Tidak Tidak
SupplierPhone Nomor
Telephone
Varchar(15) Tidak Ya
SupplierFax Nomor
Telephone Fax
Varchar(15) Tidak Tidak
SupplierTypeID ID tipe Supplier Char(7) Tidak Tidak
Supplier
Type
SupplierTypeID ID tipe Supplier Char(7) Tidak Tidak
SupplierType
Name
Deskripsi tipe
supplier
Varchar(20) Tidak Tidak
Occupation OccupationID ID Occupation Char(7) Tidak Tidak
Occupation Deskripsi
Pekerjaan
Varchar(20) Tidak Tidak
Employee EmployeeID ID karyawan Char(7) Tidak Tidak
Username Nama untuk
Login
Varchar(15) Tidak Tidak
Password Password untuk
Login
Varchar(15) Tidak Tidak
EmployeeName Nama kengkap
karyawan
Varchar(30) Tidak Tidak
EmployeeAddress Alamat
karyawan
Text Tidak Tidak
EmployeeEmail Alamat Email Varchar(30) Tidak Tidak
EmployeePhone Nomor Varchar(15) Tidak Ya
76
Telephone
BirthDay Tanggal lahir Datetime Tidak Tidak
OccupationID ID Occupation Char(7) Tidak Tidak
BranchID ID cabang Char(7) Tidak Tidak
Product ProductID ID produk Char(15) Ya Tidak
ProductName Nama Produk Varchar(20) Tidak Tidak
Price Harga produk Decimal Tidak Tidak
ProductTypeID ID tipe Produk Char(7) Tidak Tidak
Service
AndRepair
ServiceAnd
RepairID
ID service Char(7) Tidak Tidak
ComplainDate Tanggal
komplain
DateTime Tidak Tidak
AnswerDate Tanggal
dijawab
DateTime Tidak Tidak
Complain Deskripsi
komplain
Text Tidak Tidak
Answer Jawaban
komplain
Text Tidak Tidak
ComplainState Status komplain Char(1) Tidak Tidak
EmployeeID ID karyawan Char(7) Tidak Tidak
ProductID ID produk Char(15) Ya Tidak
MemberID ID anggota Char(7) Tidak Tidak
Member
Type
MemberTypeID ID tipe anggota Char(7) Tidak Tidak
MemberType
Name
Deskripsi tipe
anggota
Varchar(20) Tidak Tidak
ProductType ProductTypeID ID tipe produk Char(7) Tidak Tidak
ProductType Deskripsi tipe
produk
Varchar(20) Tidak Tidak
Branch BranchID ID cabang Char(7) Tidak Tidak
77
BranchName Nama cabang Varchar(40) Tidak Tidak
BranchAddress Alamat Cabang Text Tidak Tidak
BranchPhone Nomor
Telephone
Varchar(15) Tidak Ya
BranchFax Nomor fax Varchar(15) Tidak Tidak
BranchEmail Alamat Email Varchar(30) Tidak Tidak
Delivery DeliveryID ID pengiriman Char(7) Tidak Tidak
Qty Jumlah kiriman Int Tidak Tidak
DeliveryDate Tanggal
pengiriman
DateTime Tidak Tidak
DeliveryAddress Alamat
pengiriman
Text Tidak Tidak
SalesID ID penjualan Char(7) Tidak Tidak
EmployeeID ID karyawan Char(7) Tidak Tidak
Sales SalesID ID Penjualan Char(7) Tidak Tidak
SalesDate Tanggal
penjualan
DateTime Tidak Tidak
EmployeeID ID karyawan Char(7) Tidak Tidak
MemberID ID member Char(7) Tidak Tidak
ProductID ID produk Char(15) Ya Tidak
Purchase PurchaseID ID pembelian Char(7) Tidak Tidak
PurchaseDate Tanggal
pembelian
DateTime Tidak Tidak
EmployeeID ID karyawan Char(7) Tidak Tidak
SupplierID ID suplier Char(7) Tidak Tidak
ProductID ID produk Char(15) Ya Tidak
Stock ProductID ID produk Char(15) Ya Tidak
BranchID ID cabang Char(7) Tidak Tidak
Stock Jumlah stok Int Tidak Tidak
78
3.2.1.4. Menentukan Domain Atribut
Tabel 3.5 Tabel Domain Atribut
Entiti Atribut Tipe Data Atribut Domain
Member MemberID
MemberName
Password
BirthDay
MemberAddress
MemberPhone
MemberEmail
City
Province
MemberTypeID
Char(7)
Varchar(30)
Varchar(15)
Datetime
Text
Varchar(15)
Varchar(30)
Varchar(20)
Varchar(20)
VarChar(7)
Harus diawali dengan ’CMS’, sisa
karakter dapat berupa angka, dan
maksimal 7 karakter
Diisi dengan karakter maksimal 30
karakter
Diisi dengan karakter, minimal 6
karakter dan maksimal 15 karakter
Diisi tanggal dan waktu dengan
format yyy-mm-dd
Diisi dengan karakter
Diisi dengan karakter berupa
angka, maksimal 15 karakter
Diisi dengan karakter, maksimal
30 karakter
Diisi dengan karakter, maksimal
20 karakter
Diisi dengan karakter, maksimal
20 karakter
Diisi dengan karakter, harus
diawali dengan ’MT’, maksimal 7
karakter
Supplier SupplierID
SupplierName
Char(7)
Varchar(30)
Diisi dengan karakter, diawali
dengan karakter ’SP’, dan
maksimal 7 karakter
Diisi dengan karakter, maksimal
30 karakter
79
SupplierAddress
SupplierPhone
SupplierFax
SupplierTypeID
Text
Varchar(15)
Varchar(15)
Char(7)
Diisi dengan karakter
Diisi dengan karakter berupa
angka, maksimal 15 karakter
Diisi dengan karakter berupa
angka, maksimal 15 karakter
Diawali dengan ’ST’ maksimal 7
karakter
Occupation OccupationID
Occupation
Char(7)
Varchar(20)
Diisi dengan karakter, diawali
dengan karakter ’OC’, dan
maksimal 7 karakter
Diisi dengan karakter, maksimal
20 karakter
Employee EmployeeID
UserName
Password
EmployeeName
EmployeeAddress
EmployeeEmail
EmployeePhone
BirthDay
OccupationID
Char(7)
Varchar(15)
Varchar(15)
Varchar(30)
Text
Varchar(30)
Varchar(15)
Datetime
Char(7)
Diisi dengan karakter, diawali
karakter ’PG’, dan maksimal 7
karakter
Diisi dengan karakter, maksimal
15 karakter
Diisi dengan karakter, maksimal
15 karakter
Diisi dengan karakter, maksimal
30 karakter
Diisi dengan karakter
Diisi dengan karakter, maksimal
30 karakter
Diisi dengan karakter, maksimal
15 karakter
Diisi tanggal dan waktu dengan
format yyy-mm-dd
Diisi dengan karakter, diawali
dengan karakter ’OC’, maksimal 7
karakter
80
BranchID Char(7) Diisi dengan karakter, diawali
dengan karakter ’BR’, dan
maksimal 7 karakter
Product ProductID
ProductName
Price
Stock
ProductTypeID
Char(15)
Varchar(20)
Decimal
Int
Char(7)
Diisi dengan karakter, diawali
dengan karakter ’PD’, dan
maksimal 15 karakter
Diisi dengan karakter, maksimal
20 karakter
Diisi dengan angka
Diisi dengan angka
Diisi dengan karakter, diawali
dengan karakter ’PT’, dan
maksimal 7 karakter
Service
AndRepair
ServiceAnd
RepairID
ComplainDate
AnswerDate
Complain
Answer
ComplainState
EmployeeID
ProductID
MemberID
Char(7)
DateTime
DateTime
Text
Text
Char(1)
Char(7)
Char(15)
Char(7)
Diisi dengan karakter, diawali
dengan ’SVC’, maksimal 7
karakter
Diisi tanggal dan waktu dengan
format yyyy-mm-dd hh:mm:ss
Diisi tanggal dan waktu dengan
format yyyy-mm-dd hh:mm:ss
Diisi dengan karakter
Diisi dengan karakter
Y atau N
Diisi dengan karakter, diawali
dengan ’PG’, dan maksimal 7
karakter
Diisi dengan karakter, diawali
dengan ’PD’, dan maksimal 15
karakter
Harus diawali dengan ’CMS’, sisa
karakter berupa angka, dan
81
maksimal 7 karakter
Member
Type
MemberType
ID
MemberType
Name
Varchar(7)
Varchar(20)
Harus diawali dengan ’MT’ sisa
karakter berupa angka, dan
maksimal 7 karakter
Diisi dengan karakter, maksimal
20 karakter
Branch BranchID
BranchName
BranchAddress
BranchPhone
BranchFax
BranchEmail
Varchar(7)
Varchar(40)
Text
Varchar(15)
Varchar(15)
Varchar(30)
Harus diawali dengan ’BR’ sisa
karakter berupa angka, dan
maksimal 7 karakter
Diisi dengan karakter, maksimal
40 karakter
Diisi dengan karakter
Diisi dengan karakter berupa
angka, maksimal 15 karakter
Diisi dengan karakter berupa
angka, maksimal 15 karakter
Diisi dengan karakter maksimal 30
karakter
Delivery DeliveryID
Qty
DeliveryDate
DeliveryAddres
SalesID
EmployeeID
Char(7)
Int
DateTime
Text
Char(7)
Char(7)
Diisi dengan karakter diawali
dengan ‘DO’ maksimal 7 karakter
Diisi dengan Angka
Diisi tanggal dan waktu dengan
format yyyy-mm-dd hh:mm:ss
Diisi dengan karakter
Diisi dengan karakter maksimal 7
karakter
Diisi dengan karakter, diawali
dengan ’PG’, dan maksimal 7
karakter
ProductType ProductTypeID Char(7) Diawali dengan ’PT’ maksimal 7
82
ProductType
Char(20)
karakter
Diisi dengan karakter, maksimal
20 karakter
Supplier
Type
SupplierTypeID
SupplierType
Name
Char(7)
Varchar(20)
Diawali dengan ’ST’ maksimal 7
karakter
Diisi dengan karakter maksimal 20
karakter
Sales SalesID
SalesDate
EmployeID
MemberID
ProductID
Char(7)
DateTime
Char(7)
Char(7)
Char(15)
Diawali dengan ’SL’ maksimal 7
karakter
Diisi tanggal dan waktu dengan
format yyyy-mm-dd hh:mm:ss
Diawali dengan ’PG’ maksimal 7
karakter
Diawali dengan ’CMS’ maksimal
9 karakter
Diisi dengan karakter, diawali
dengan karakter ’PD’, dan
maksimal 15 karakter
Purchase PurchaseID
PurchaseDate
EmployeeID
SupplierID
ProductID
Char(7)
DateTime
Char(7)
Char(7)
Char(15)
Diawali dengan ’PC’ maksimal 7
karakter
Diisi tanggal dan waktu dengan
format yyyy-mm-dd hh:mm:ss
Diawali dengan ’PG’ maksimal 7
karakter
Diisi dengan karakter, diawali
dengan karakter ’SP’, dan
maksimal 7 karakter
Diisi dengan karakter, diawali
dengan karakter ’PD’, dan
maksimal 15 karakter
Stock ProductID Char(15) Diisi dengan karakter, diawali
83
BranchID
Stock
Char(7)
Int
dengan karakter ’PD’, dan
maksimal 15 karakter
Harus diawali dengan ’BR’ sisa
karakter berupa angka, dan
maksimal 7 karakter
Diisi dengan Angka
3.2.1.5 Menentukan Atribut untuk Candidate, Primary, dan Alternate Key
Tabel 3.6 Tabel Candidate, Primary, dan Alternate Key
Entity Candidate Key Primary Key Alternate Key
Employee EmployeeID
UserName
EmployeeID Username
Supplier SupplierID SupplierID -
SupplierType SupplierTypeID SupplierTypeID -
Occupation OccupationID OccupationID -
Product ProductID ProductID -
Member MemberID
UserName
MemberID UserName
ServiceAndRepair ServiceAndRepairID ServiceAndRepairID -
Delivery DeliveryID DeliveryID -
MemberType MemberTypeID MemberTypeID -
ProductType ProductTypeID ProductTypeID -
Branch BranchID BranchID -
Stock ProductID
BranchID
ProductID
BranchID
-
Sales SalesID SalesID -
Purchase PurchaseID PurchaseID -
84
3.2.1.6 Memeriksa Redundansi
Pengecekan dilakukan pada tahap ini untuk memeriksa dan menghilangkan redudansi
dengan menggunakan 3 langkah antara lain :
1. Memeriksa relasi 1.. 1 (one – to – one)
Tidak terdapat relasi 1.. 1 pada relasi yang ada sehingga langkah ini tidak dilakukan
2. Menghilangkan relasi yang redundan
Tidak terdapat redudansi pada relasi antar entiti yang ada sehingga tidak ada yang perlu
di hilangkan.
3. Mempertimbangkan dimensi waktu
Langkah ini tidak dilakukan karena tidak ada relasi yang memiliki hubungan dengan
dimensi waktu.
3.2.1.7 Validasi model konseptual lokal terhadap transaksi pengguna
Transaksi – transaksi yang terjadi antara lain :
1. Member memesan produk
2. Member dapat melakukan komplain
3. Member memiliki tipe keanggotaan
4. Produk dibeli dari supplier
5. Produk dikategorikan berdasarkan masing - masing tipe
6. Produk memiliki jumlah stok
7. Employee dapat memesan barang dari supplier
8. ServiceAndRepair menerima dan mencatat komplain dari member
9. ServiceAndRepair menangani repair produk
85
10. Employee bekerja pada suatu cabang
11. Employee mendaftarkan jenis pekerjaan dan tanggung jawabnya
3.2.1.8 ERD (Entity Relationship Diagram)
Gambar 3.4 ERD
86
3.2.2 Perancangan Basis Data Logikal
3.2.2.1 Hilangkan Fitur-Fitur yang Tidak Kompatibel dengan Model Relasional
1. Menghilangkan relasi binary many-to-many (*.*)
a) Sales dengan Product
Gambar 3.5 Sales dengan Product
Menjadi
Gambar 3.6 SalesDetail dan SalesHeader dengan Product
b) Purchase dengan Product
87
Gambar 3.7 Purchase dengan Product
Menjadi
Purchase_header
PK PurchaseID
PurchaseDateFK1 EmployeeIDFK2 SupplierID
Purchase_detail
PK,FK2 ProductIDPK,FK1 PurchaseID
Qty
1..11..1
1..*1..*
Product
PK ProductID
ProductNamePriceStock
FK1 ProductTypeID
Gambar 3.8 PurchaseDetail dan PurchaseHeader dengan Product
2. Menghilangkan attribute mulivalue
a. Branch
88
Gambar 3.9 Tabel Branch
Menjadi
Gambar 3.10 Tabel Branch dengan BranchPhone
b. Employee
Gambar 3.11 Tabel Employee
Menjadi
Employee
PK EmployeeID
EmployeeNameBirthDayEmployeeAddress
FK3 EmployeePhoneFK1 OccupationIdFK2 BranchID
1..*
1..3
EmployeePhone
PK EmployeePhone
Gambar 3.12 Tabel Employee dengan EmployeePhone
c. Member
89
Member
PK MemberID
MemberNameBirthDayMemberAddressUserNamePassword
FK1 MemberTypeIdFK2 MemberPhone
Gambar 3.13 Tabel Member
Menjadi
Gambar 3.14 Tabel Member dengan MemberPhone
d. Supplier
Gambar 3.15 Tabel Supplier
Menjadi
90
Gambar 3.16 Tabel Supplier dengan SupplierPhone
3.2.2.2 Memvalidasikan Relasi-Relasi Menggunakan Normalisasi
Normalisasi Sales
a) UNF (Bentuk Un-Normalisasi)
Sales = SalesID + NoPO + SalesDate + BranchAddress + BranchID
+ BranchName + PhoneBranch + FaxBranch + MemberName + MemberAddress {Qty +
ProductID + ProductName + Price + Total + Discount} + TotalSales+ Amount +
EmployeeID + EmployeeName + EmployeeType
b) 1NF (Bentuk Normalisasi Pertama)
Sales = @SalesID + NoPO + SalesDate + BranchAddress + BranchID
+ BranchName + PhoneBranch + FaxBranch + MemberName + MemberAddress + Qty
+ ProductID + ProductName + Price + Discount + EmployeeID + EmployeeName +
EmployeeType
c) 2NF (Bentuk Normalisasi Kedua)
SalesHeader = @SalesID + NoPO + SalesDate + BranchAddress + BranchID +
91
BranchName + PhoneBranch + FaxBranch + MemberName + MemberAddress +
EmployeeID + EmployeeName + EmployeeTypeID + EmployeeTypeName
SalesDetail = @SalesID + @ProductID + Qty
Product = @ProductID + ProductName + Price
d) 3NF (Bentuk Normalisasi Ketiga)
SalesHeader = @SalesID + NoPO + SalesDate + EmployeeID + MemberID
SalesDetail = @SalesID + @ProductID + Qty
Branch = @BranchID + BranchName + BranchPhone + BranchFax
Product = @ProductID + ProductName + Price
Employee = @ EmployeeID + EmployeeName
EmployeeType = @EmployeeTypeID + EmployeeTypeName
Member = @MemberID + MemberName
MemberType = @MemberTypeID + MemberTypeName + Discount
Normalisasi Purchase
a) UNF (Bentuk Un-Normalisasi)
Purchasing = NoInvoice + NoPO + PurchaseDate + SupplierName + SupplierID +
SupplierAddress + SupplierPhone + SupplierFax + {Qty + ProductID + ProductName +
Price + Total + Discount} + TotalInvoice + Amount + EmployeeID + EmployeeName +
EmployeeTypeName
92
b) 1NF (Bentuk Normalisasi Pertama)
Purchasing = @NoInvoice + PurchaseDate + SupplierAddress + SupplierID +
SupplierName + SupplierPhone + SupplierFax + Qty + ProductID + ProductName +
Price + Discount + EmployeeID + EmployeeName + EmployeeTypeName
c) 2NF (Bentuk Normalisasi Kedua)
PurchasingHeader = @NoInvoice + PurchaseDate + SupplierAddress + SupplierID +
SupplierName + SupplierPhone + SupplierFax + EmployeeID + EmployeeName +
EmployeeTypeName
PurchasingDetail = @NoInvoice + @ProductID + Qty
Product = @ProductID + ProductName + Price
d) 3NF (Bentuk Normalisasi Ketiga)
PurchasingHeader = @PurchaseID + PurchaseDate + SupplierID + EmployeeID
PurchasingDetail = @PurchaseID + @ProductID + Qty
Supplier = @ SupplierID + SupplierName + SupplierPhone + SupplierFax
Product = @ProductID + ProductName + Price
SupplierType = @ SupplierTypeID + SupplierTypeName + Discount
Employee = @EmployeeID + EmployeeName
EmployeeTypeName = @EmployeeTypeID + EmployeeTypeName
93
3.2.2.3 Memvalidasikan Relasi-Relasi Terhadap Transaksi Pengguna
Berikut transaksi yang ada :
a. Karyawan dapat membeli produk dari supplier
b. Karyawan dapat menjual produk ke pelanggan
c. ServiceAndRepair menerima dan mencatat komplain dari member
d. Anggota melakukan komplain atau service
e. Anggota memesan produk
3.2.2.4 Menentukan Integrity Constraint
Employee (EmployeeID, UserName, Password, EmployeeName, EmployeeAddress,
EmployeeEmail, EmployeePhone, BirthDay, OccupationID, BranchID)
PRIMARY KEY (EmployeeID)
FOREIGN KEY (OccupationID) REFERENCES Occupation(OccupationID)
ON UPDATE CASCADE ON DELETE NO ACTION)
FOREIGN KEY (BranchID) REFERENCES Branch(BranchID)
ON UPDATE CASCADE ON DELETE NO ACTION)
EmployeePhone (SupplierPhone, Phone1, Phone2, Phone3)
PRIMARY KEY(EmployeePhone)
Occupation (OccupationID, Occupation)
PRIMARY KEY (OccupationID)
94
Supplier (SupplierID, SupplierName, SupplierAddress, SupplierPhone, SupplierFax,
SupplierTypeID)
PRIMARY KEY(SupplierID)
FOREIGN KEY (SupplierTypeID) REFERENCES SupplierType(SupplierTypeID)
ON UPDATE CASCADE ON DELETE NO ACTION)
SupplierType (SupplierTypeID, SupplierTypeName, Discount)
PRIMARY KEY(SupplierTypeID)
SupplierPhone (SupplierPhone, Phone1, Phone2, Phone3)
PRIMARY KEY(SupplierPhone)
Member (MemberID, MemberName, UserName, Password, Birthday, MemberAddress,
MemberPhone, MemberEmail, City, Province, MemberTypeID)
PRIMARY KEY (MemberID)
FOREIGN KEY (MemberTypeID) REFERENCES
MemberType(MemberTypeID) REFERENCES MemberType(MemberTypeID)
ON UPDATE CASCADE ON DELETE NO ACTION)
FOREIGN KEY (MemberPhone) REFERENCES MemberPhone(MemberPhone)
ON UPDATE CASCADE ON DELETE NO ACTION)
MemberPhone (MemberPhone, Phone1, Phone2, Phone3)
PRIMARY KEY(MemberPhone)
95
MemberType (MemberTypeID, MemberTypeName)
PRIMARY KEY(MemberTypeID)
Product (ProductID, ProductName, Price, Stock, ProductTypeID)
PRIMARY KEY (ProductID),
FOREIGN KEY (ProductTypeID) REFERENCES ProductType(ProductTypeID)
ON UPDATE CASCADE ON DELETE NO ACTION)
ProductType (ProductTypeID, ProductTypeName)
PRIMARY KEY (ProductTypeID)
ServiceAndRepair (SeviceAndRepairID, ComplainDate, AnswerDate, Complain,
Answer, ComplainState, EmployeeID, ProductID, MemberID)
PRIMARY KEY (ServiceAndRepairID)
FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID)
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (ProcuctID) REFERENCES Member(MemberID)
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (MemberID) REFERENCES Member(MemberID)
ON UPDATE CASCADE ON DELETE NO ACTION
PurchaseHeader (PurchaseID, PurchaseDate, EmployeeID, SupplierID)
PRIMARY KEY (PurchaseID)
FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID)
96
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (SupplierID) REFERENCES Supplier(SupplierID)
ON UPDATE CASCADE ON DELETE NO ACTION)
PurchaseDetail (PurchaseID, ProductID, QTY)
PRIMARY KEY (PurchaseID, ProductID)
FOREIGN KEY (PurchaseID) REFERENCES PurchaseHeader(PurchaseID)
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (ProductID) REFERENCES Product(ProductID)
ON UPDATE CASCADE ON DELETE NO ACTION)
SalesHeader (SalesID, NoPO, SalesDate , EmployeeID, MemberID)
PRIMARY KEY (SalesID),
FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID)
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (MemberID) REFERENCES Member(MemberID)
ON UPDATE CASCADE ON DELETE NO ACTION
SalesDetail (SalesID, ProductID, QTY)
PRIMARY KEY (SalesID, ProductID),
FOREIGN KEY (SalesID) REFERENCES SalesHeader(SalesID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (ProductID) REFERENCES Product(ProductID)
ON UPDATE CASCADE ON DELETE NO ACTION)
97
Branch (BranchID, BranchName, BranchAddress, BranchPhone, BranchFax,
BranchEmail)
PRIMARY KEY(BranchID)
BranchPhone (SupplierPhone, Phone1, Phone2, Phone3)
PRIMARY KEY(BranchPhone)
Delivery (DeliveryID, QTY, DeliveryDate, DeliveryAddress, SalesID, EmployeeID)
PRIMARY KEY(DeliveryID)
FOREIGN KEY (SalesID) REFERENCES SalesHeader(SalesID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID)
ON UPDATE CASCADE ON DELETE NO ACTION)
Stock (ProductID, BranchID)
PRIMARY KEY(ProductID, BranchID)
FOREIGN KEY (ProductID) REFERENCES Product(ProductID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (BranchID ID) REFERENCES BranchID(BranchID)
ON UPDATE CASCADE ON DELETE NO ACTION)
98
3.2.2.5 Menggabungkan Model Data Logical ke dalam Model Data Global
Gambar 3.17 Model Data Global
99
3.2.3 Perancangan Basis Data Fisikal
3.2.3.1 Rancangan Relational Database
Employee
Domain EmployeeID Character dengan panjang maksimal 7
Domain UserName Varchar dengan panjang maksimal 15
Domain Password Varchar dengan panjang maksimal 15
Domain Employee Name Varchar dengan panjang maksimal 30
Domain EmployeeAddress Teks
Domain EmployeeEmail Varchar dengan panjang maksimal 30
Domain EmployeePhone Varchar dengan panjang maksimal 15
Domain BirthDay Datetime
Domain OccupationID Character dengan panjang maksimal 7
Domain BranchID Character dengan panjang maksimal 7
Employee(
EmployeeID EmployeeIdentity NOT NULL,
UserName UserLoginName NOT NULL,
Password UserLoginPassword NOT NULL,
EmployeeName UserFullName NOT NULL,
EmployeeAddress UserAddress NOT NULL,
EmployeeEmail UserEmail NOT NULL,
EmployeePhone UserPhoneNumber NOT NULL,
100
BirthDay UserBirthday NOT NULL,
OccupationID OccupationIdenttity NOT NULL,
BranchID BranchIdentity NOT NULL,
PRIMARY KEY (EmployeeID)
FOREIGN KEY (OccupationID) REFERENCES Occupation(OccupationID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (BranchID) REFERENCES Branch(BranchID)
ON UPDATE CASCADE ON DELETE NO ACTION);
Supplier
Domain SupplierID Character dengan panjang maksimal 7
Domain SupplierName Varchar dengan panjang maksimal 30
Domain SupplierAddress Teks
Domain SupplierPhone Varchar dengan panjang maksimal 15
Domain SupplierFax Varchar dengan panjang maksimal 15
Doamin SupplierTypeID Character dengan panjang maksimal 7
Supplier(
SupplierID SupplierIdentity NOT NULL,
SupplierName SupplierName NOT NULL,
SupplierAddress SupplierAddress NOT NULL,
SupplierPhone SupplierPhoneNumber NOT NULL,
SupplierFax SupplierFaxNumber NOT NULL,
SupplierTypeID SupplierTypeIdentity NOT NULL,
PRIMARY KEY(SupplierID)
101
FOREIGN KEY (SupplierTypeID) REFERENCES SupplierType(SupplierTypeID)
ON UPDATE CASCADE ON DELETE NO ACTION);
SupplierType
SupplierTypeID Character dengan panjang maksimal 7
SupplierTypeName Varchar dengan panjang maksimal 20
SupplierType(
SupplierTypeID SupplierTypeIdentity NOT NULL
SupplierTypeName SupplierTypeName NOT NULL
PRIMARY KEY(SupplierTypeID));
Member
Domain MemberID Character dengan panjang maksimal 7
Domain MemberName Varchar dengan panjang maksimal 30
Domain UserName Varchar dengan panjang maksimal 15
Domain Password Varchar dengan panjang maksimal 15
Domain Birthday Datetime
Domain MemberAddress Teks
Domain MemberPhone Varchar dengan panjang maksimal 15
DomainMemberEmail Varchar dengan panjang maksimal 30
Domain City Varchar dengan panjang maksimal 20
Domain Province Varchar dengan panjang maksimal 20
Domain MemberTypeID Character dengan panjang maksimal 7
102
Member(
MemberID MemberIdentity NOT NULL,
MemberName MemberFullName NOT NULL,
UserName MemberLoginName NOT NULL,
Password MemberLoginPassword NOT NULL,
Birthday MemberBirthdayDate NOT NULL,
MemberAddress MemberPlace NOT NULL,
MemberPhone PhoneNumber NOT NULL,
MemberEmail EmailAddress NOT NULL,
City MemberCity NOT NULL,
Province MemberProvince NOT NULL,
MemberTypeID MemberTypeIdentity NOT NULL,
PRIMARY KEY (MemberID),
FOREIGN KEY (MemberTypeID) REFERENCES,
MemberType(MemberTypeID)
ON UPDATE CASCADE ON DELETE NO ACTION);
MemberType
DomainMemberTypeID Character dengan panjang maksimal 7
DomainMemberTypeName Varchar dengan panjang maksimal 20
MemberType(
MemberTypeID MemberTypeIdentity NOT NULL,
MemberTypeName MemberTypeName NOT NULL,
PRIMARY KEY(MemberTypeID));
103
Occupation
Domain OccupationID Character dengan panjang maksimal 7
Domain Occupation Varchar dengan panjang maksimal 20
Occupation(
OccupationID OccupationIdentity NOT NULL,
Occupation OccupationDescription NOT NULL,
PRIMARY KEY (OccupationID));
Product
Domain ProductID Character dengan panjang maksimal 15
Domain ProductName Varchar dengan panjang maksimal 20
Price Menggunakan angka decimal
Domain ProductTypeID Character dengan panjang maksimal 7
Product(
ProductID ProductIdentity NOT NULL,
ProductName ProductName NOT NULL,
Price ProductPrice NOT NULL,
ProductTypeID ProductTypeIdentity NOT NULL,
PRIMARY KEY (ProductID),
FOREIGN KEY (ProductTypeID) REFERENCES ProductType(ProductTypeID)
ON UPDATE CASCADE ON DELETE NO ACTION);
ProductType
104
Domain ProductTypeID Character dengan panjang maksimal 7
Domain ProductTypeName Character dengan panjang maksimal 20
ProductType(
ProductTypeID ProductTypeIdentity NOT NULL,
ProductTypeName ProductTypeName NOT NULL,
PRIMARY KEY (ProductTypeID));
ServiceAndRepair
Domain ServiceAndRepairID Character dengan panjang maksimal 7
Domain ComplainDate Datetime
Domain AnswerDate Datetime
Domain Complain Teks
Domain Answer Teks
Domain ComplainState Tinyinteger
Domain EmployeeID Character dengan panjang maksimal 7
Domain ProductID Character dengan panjang maksimal 15
Domain MemberID Character dengan panjang maksimal 7
ServiceAndRepair(
SeviceAndRepairID SeviceIdentity NOT NULL,
ComplainDate ComplainDate NOT NULL,
AnswerDate AnswerDate NOT NULL,
Complain ComplainDescription NOT NULL,
Answer AnswerDescription NOT NULL,
ComplainState SeviceStatus NOT NULL,
105
EmployeeID EmployeeIdentity NOT NULL,
ProductID ProductIdentity NOT NULL,
MemberID MemberIdentity NOT NULL,
PRIMARY KEY (ServiceAndRepairID)
FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (ProcuctID) REFERENCES Member(MemberID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (MemberID) REFERENCES Member(MemberID)
ON UPDATE CASCADE ON DELETE NO ACTION);
PurchaseHeader
Domain PurchaseID Character dengan panjang maksimal
Domain PurchaseDate Datetime
Domain EmployeeID Character dengan panjang maksimal
Domain SupplierID Character dengan panjang maksimal 9
PurchaseHeader(
PurchaseID PurchaseIdentity NOT NULL,
EmployeeID EmployeeIdentity NOT NULL,
SupplierID SupplierIdentity NOT NULL,
PurchaseDate PurchaseDate NOT NULL,
PRIMARY KEY (PurchaseID)
FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID)
ON UPDATE CASCADE ON DELETE NO ACTION,
106
FOREIGN KEY (SupplierID) REFERENCES Supplier(SupplierID)
ON UPDATE CASCADE ON DELETE NO ACTION);
Purchase detail
Domain PusrchaseID Character dengan panjang maksimal 7
Domain ProductID Character dengan panjang maksima15
Domain QTY Integer
PurchaseDetail(
PurchaseID PurchaseIdentity NOT NULL,
ProductID ProductIdentity NOT NULL,
QTY PurchaseQuantity NOT NULL,
PRIMARY KEY (PurchaseID)
PRIMARY KEY (ProductID)
FOREIGN KEY (PurchaseID) REFERENCES PurchaseHeader(PurchaseID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (ProductID) REFERENCES Product(ProductID)
ON UPDATE CASCADE ON DELETE NO ACTION);
SalesHeader
Domain SalesID Character dengan panjang maksimal 7
Domain NoPO Character dengan panjang maksimal 7
Domain SalesDate Datetime
Domain MemberID Character dengan panjang harus 7
Domain EmployeeID Character dengan panjang harus 7
107
SalesHeader(
SalesID SalesIdentity NOT NULL,
NoPO PONumber NOT NULL,
SalesDate SellingDate NOT NULL,
MemberID MemberIdentity NOT NULL,
EmployeeID EmployeeIdentity NOT NULL,
PRIMARY KEY (SalesID)
FOREIGN KEY (MemberID) REFERENCES Member(MemberID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID)
ON UPDATE CASCADE ON DELETE NO ACTION);
SalesDetail
Domain SalesID Character dengan panjang harus 15
Domain ProductID Character dengan panjang harus 7
Domain QTY Integer
SalesDetail(
SalesID TransactionIdentity NOT NULL,
ProductID ProductIdentity NOT NULL,
QTY SaleQuantity NOT NULL,
PRIMARY KEY (SalesID,ProductID),
FOREIGN KEY (SalesID) REFERENCES SalesHeader(SalesID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (ProductID) REFERENCES Product(ProductID)
108
ON UPDATE CASCADE ON DELETE NO ACTION);
Branch
Domain BranchID Character dengan panjang maksimal 7
Domain BranchName Varchar dengan panjang maksimal 40
Domain BranchAddress Teks
Domain BranchPhone Varchar dengan panjang maksimal 15
Domain BranchFax Varchar dengan panjang maksimal 15
Domain BranchEmail Varchar dengan panjang maksimal 30
Branch(
BranchID BranchIdentity NOT NULL,
BranchName BranchName NOT NULL,
BranchAddress Address NOT NULL,
BranchPhone Telephone NOT NULL,
BranchFax Fax NOT NULL,
BranchEmail Email NOT NULL,
PRIMARY KEY(BranchID));
Stock
DomainProductID Character dengan panjang maksimal 15
Domain BranchID Character dengan panjang maksimal 7
Domain Stock TinyInteger
Delivery
109
DeliveryID Character dengan panjang maksimal 7
Qty Character dengan panjang maksimal 15
DeliveryDate Datetime
DeliveryAddress Text
SalesID Character dengan panjang maksimal 7
EmployeeID Character dengan panjang maksimal 7
3.2.3.2 Pemilihan Organisasi Index
Dasar pemilihan untuk organisasi file yang digunakan adalah MySQL V.4.1.10 yang
merupakan tipe organisasi file Heap (Unordered file organization).
3.2.3.3 Pemilihan Index
Tabel 3.7 Pemilihan Index
Tabel Nama Index Key Index
Employee Employee_indx EmployeeID
Employee_username_indx UserName
Supplier Supplier_indx SupplierID
SupplierType SupplierType_indx SupplierTypeID
Member Member_indx MemberID
Member_username_indx UserName
Occupation Occopation_indx OccupationID
Product Product_indx ProductID
110
ServiceAndRepair ServiceAndRepair_indx ServiceAndRepairID
MemberType MemberType_indx MemberTypeID
ProductType ProductType_indx ProductTypeID
PurchaseHeader Purchase_indx PurchaseID
PurchaseDetail PurchaseDetail_indx PurchaseID
SalesHeader SalesHeader_indx SalesID
SalesDetail SalesDetail_indx SalesID
Branch Branch_indx BranchID
Stock Stock_indx StockID
Delivery Delivery_index DeliveryID
3.2.3.4 Perkiraan Disk Space
Tabel Employee
Tabel 3.8 Tabel perkiraan Disk Space Employee
Nama Field Type Ukuran
EmployeeID Char 7
OccupationID Char 7
BranchID Char 7
UserName Varchar 15
Password Varchar 15
EmployeeName Varchar 30
EmployeeAddress Text 255
111
Phone Varchar 15
BirthDay DateTime 8
Panjang Record dalam Tabel = 359 Bytes
Perkiraan transaksi yang terjadi dalam 1 tahun = 10
Pertumbuhan tabel dalam 1 tahun = 10 x 359 =3.590 Bytes
Tabel Supplier
Tabel 3.9 Tabel perkiraan Disk Space Supplier
Nama Field Type Ukuran
SuplierID Char 7
SupplierName Varchar 30
SupplierAddress Text 255
SupplierPhone Varchar 15
SupplierTypeID Char 7
SupplierFax Varchar 15
Panjang record dalam tabel = 329 Bytes
Perkiraan transaksi yang terjadi dalam 1 tahun = 20
Pertumbuhan tabel dalam 1 tahun = 20 x 329 = 6.580 Bytes
Tabel Member
Tabel 3.10 Tabel perkiraan Disk Space Member
112
Nama Field Type Ukuran
MemberID Varchar 9
MemberName Varchar 30
UserName Varchar 15
Password Varchar 15
MemberTypeID Varchar 7
BirthDay DateTime 8
Address Text 255
City Varchar 25
Province Varchar 20
MemberPhone Varchar 20
MemberEmail Varchar 30
Panjang record dalam tabel = 434 Bytes
Perkiraan transaksi yang terjadi dalam 1 hari = 30
Pertumbuhan tabel dalam 1 tahun = 30 x 30 x 12 x 434 = 4.687.200Bytes
Tabel Occupation
Tabel 3.11 Tabel perkiraan Disk Space Occupation
Nama Field Type Ukuran
OccupationID Char 7
Occupation Varchar 20
Panjang record dalam tabel = 27 Bytes
113
Perkiraan transaksi yang terjadi dalam 1 tahun = 3
Pertumbuhan tabel dalam 1 tahun = 27 x 3 = 81 Bytes
Tabel Product
Tabel 3.12 Tabel perkiraan Disk Space Product
Nama Field Type Ukuran
ProductId Varchar 15
ProductTypeId Char 7
ProductName Varchar 20
Price Decimal 8
Panjang record dalam tabel = 50 Bytes
Perkiraan transaksi yang terjadi dalam 1 bulan = 50
Pertumbuhan tabel dalam 1 tahun = 50 x 12 x 50 = 30.000 Bytes
Tabel ServiceAndRepair
Tabel 3.13 Tabel perkiraan Disk Space ServiceAndRepair
Nama Field Type Ukuran
ServiceAndRepairID Char 7
MemberID Char 7
ProductID Char 15
EmployeeID Char 7
ComplainDate DateTime 8
114
Complain Text 255
AnswerDate DateTime 8
Answer Text 255
AnswerState Char 1
Panjang record dalam tabel = 563 Bytes
Perkiraan transaksi yang terjadi dalam 1 hari = 20
Pertumbuhan tabel dalam 1 tahun = 20 x 30 x 12 x 563 = 4.053.600 Bytes
Tabel Branch
Tabel 3.14 Tabel perkiraan Disk Space Branch
Nama Field Type Ukuran
BranchID Char 7
BranchAddress Text 255
BranchName Varchar 40
BranchPhone Varchar 15
BranchEmail DateTime 30
Panjang record dalam tabel = 347 Bytes
Perkiraan transaksi yang terjadi dalam 1 bulan = 20
Pertumbuhan tabel dalam 1 tahun = 20 x 12 x 347 = 83.280 Bytes
Tabel Delivery
115
Tabel 3.15 Tabel perkiraan Disk Space Delivery
Nama Field Type Ukuran
DeliveryID Char 7
SalesID Char 7
EmployeeID Char 7
DeliveryAddress Text 255
DeliveryDate DateTime 8
Qty Int 4
Panjang record dalam tabel = 288 Bytes
Perkiraan transaksi yang terjadi dalam 1 hari = 30
Pertumbuhan tabel dalam 1 tahun = 30 x 30 x 12 x 288 = 3.110.400 Bytes
Tabel PurchaseHeader
Tabel 3.16 Tabel perkiraan Disk Space PurchaseHeader
Nama Field Type Ukuran
PurchaseId Char 7
EmployeeID Char 7
SupplierID Char 7
PurchaseDate DateTime 8
Panjang record dalam tabel = 29 Bytes
Perkiraan transaksi yang terjadi dalam 1 hari = 5
116
Pertumbuhan tabel dalam 1 tahun = 5 x 30 x 12 x 29 = 52.200 Bytes
Tabel PurchaseDetail
Tabel 3.17 Tabel perkiraan Disk Space PurchaseDetail
Nama Field Type Ukuran
PurchaseID Char 7
ProductID Char 7
Qty Int 4
Price Decimal 8
Panjang record dalam tabel = 26 Bytes
Perkiraan transaksi yang terjadi dalam 1 hari = 10
Pertumbuhan tabel dalam 1 tahun = 10 x 30 x 12 x 26 = 93.600 Bytes
Tabel SalesHeader
Tabel 3.18 Tabel perkiraan Disk Space SalesHeader
Nama Field Type Ukuran
SalesID Char 7
MemberID Char 7
EmployeeID Char 7
SalesDate DateTime 8
Panjang record dalam tabel = 29 Bytes
117
Perkiraan transaksi yang terjadi dalam 1 hari = 50
Pertumbuhan tabel dalam 1 tahun = 50 x 30 x 12 x 29 = 522.000 Bytes
Tabel SalesDetail
Tabel 3.19 Tabel perkiraan Disk Space SalesDetail
Nama Field Type Ukuran
SalesID Char 7
ProductID Char 7
Price Decimal 8
Qty Int 4
Panjang record dalam tabel = 26 Bytes
Perkiraan transaksi yang terjadi dalam 1 hari = 50
Pertumbuhan tabel dalam 1 tahun = 50 x 30 x 12 x 26 = 468.000 Bytes
Tabel kebutuhan total Disk space
Tabel 3.20 Tabel perkiraan total kebutuhan Disk Space
Nama Tabel Kebutuhan Kapasitas per Tahun
Employee 3.590 Bytes
Supplier 6.580 Bytes
Member 4.687.200 Bytes
Occupation 81 Bytes
Product 30.000 Bytes
118
Delivery 3.110.400 Bytes
ServiceAndRepair 4.053.600 Bytes
PurchaseHeader 52.200 Bytes
PurchaseDetail 93.000 Bytes
SalesHeader 522.000 Bytes
SalesDetail 468.000 Bytes
Total Disk Space yang di butuh kan dalam periode 1 tahun = 13.016.651 Bytes
Total Disk Space yang di butuh kan dalam periode 5 tahun = 65.083.255 Bytes
3.2.3.5 Merancang Mekanisme Keamanan
Tujuan dari merancang mekanisme keamanan ini adalah untuk mengatur hak akses
kepada user aplikasi demi menjaga keamanan data atau informasi yang ada agar tidak
dapat diakses oleh user yang tidak berhak.
Hak akses untuk Admin:
GRANT ALL to Admin
Hak akses untuk Staff:
GRANT SELECT on Occupation to Staff
GRANT SELECT,UPDATE on Employee to Staff
GRANT SELECT,INSERT,UPDATE on service to staff
GRANT SELECT,INSERT,UPDATE,DELETE on Product to Staff
119
GRANT SELECT on SalesDetail to Staff
GRANT SELECT on SalesHeader to Staff
GRANT SELECT on Member to Staff
HAK akses untuk Member:
REVOKE ALL on Occupation from Member
REVOKE ALL on Employee from Member
REVOKE ALL on PurchaseHeader from Member
REVOKE ALL on Supplier from Member
REVOKE ALL on PurchaseDetail From Member
GRANT SELECT on Product to Member
GRANT SELECT,INSERT,UPDATE on SalesDetail to Member
GRANT SELECT,INSERT,UPDATE on SalesHeader to Member
GRANT SELECT on Member to Member
GRANT SELECT on MemberType to Member
GRANT SELECT on ProductType to Member
REVOKE ALL on Branch to Member
120
3.3 State Transition Diagram
Gambar 3.18 STD Home untuk guest
121
Gambar 3.19 STD Log in untuk member
Gambar 3.20 STD Menu untuk member
122
Gambar 3.21 STD untuk mengubah profile member
Gambar 3.22 STD Search product
123
Gambar 3.23 STD Pemesanan product
Gambar 3.24 STD Shopping cart
124
Gambar 3.25 STD Log in Staff
125
Gambar 3.26 STD Home Staff
Gambar 3.27 STD Insert Product
Gambar 3.28 STD Delete product
126
Gambar 3.29 STD Insert report
Gambar 3.30 STD View Report
127
Gambar 3.31 STD View Order
3.4 Rancangan Layar
Gambar 3.32 Rancangan layar Home untuk Guest
128
Gambar 3.33 Rancangan layar Product untuk Guest
Gambar 3.34 Rancangan layar About us
129
Gambar 3.35 Gambar Rancangan layar Contact Us
Gambar 3.36 Rancangan layar Registrasi
130
Gambar 3.37 Rancangan layar My Profile
Gambar 3.38 Rancangan layar Product untuk Member
131
Gambar 3.39 Rancangan Layar Shopping Cart
Gambar 3.40 Rancangan layar Home Staff
132
Gambar 3.41 Rancangan layar Delete Product
Gambar 3.42 Rancangan layar Update Product
133
Gambar 3.43 Rancangan Layar Insert Product
Gambar 3.44 Rancangan layar Insert Report
134
Gambar 3.45 Rancangan Layar View Report
Gambar 3.46 Rancangan layar View Order