BAB 4 PERANCANGAN SISTEM
4.1
DFD 4.1.1
DFD Context
Gambar 4.1 DFD Context
59
60
4.1.2
DFD Level 0
Gambar 4.2 DFD Level 0
61
4.1.3
DFD Level 1
62
Gambar 4.3 DFD Level 1
4.2
Perancangan Basis Data Konseptual Pada tahap perancangan basis data konseptual ini, perancangan tertuju pada suatu proses dimana model informasi yang digunakan dalam perusahaan tersebut tidak tergantung pada apapun dan juga belum memperhatikan secara fisik dan tampilan. Dalam tahap ini dilakukan identifikasi entitas, relasi, atribut.
Langkah 1 : Membangun data model konseptual lokal untuk setiap view 4.2.1
Mengidentifikasi Tipe-Tipe Entitas Berikut ini merupakan entitas-entitas yang dibutuhkan perusahaan telah melalui proses analisa sistem yang sedang berjalan. Entitas-entitas tersebut akan dijelaskan pada tabel 4.1 di bawah ini. Tabel 4.1 Tabel Kamus Data
63
No.
Nama Entitas
1
DaftarPelanggan
Deskripsi M erupakan yang
Alias entitas
Registrasi
memberikan
informasi
Kegiatan Setiap
calon
pelanggan
tentang
melakukan
bagaimana melakukan
pendaftaran
pendaftaran pelanggan
pelanggan melalui website pada PT. Era
Reportama
Nusantara. 2
Ms_Pelanggan
M erupakan yang
entitas
memberikan
informasi
Profile Pelanggan
mengenai
Setiap
calon
pelanggan
yang
terdaftar
profil pelanggan.
sebagai
pelanggan
tetap
PT.
Era
Reportama Nusantara. 3
Ms_Barang
M erupakan yang
entitas
Produk
memberikan
informasi
keluar
dan
mempengaruhi
jumlah barang 4
Ms_Karyawan
M erupakan yang
barang
yang masuk dan
mengenai
ketersediaan
Setiap
persediaan barang entitas
memberikan
Pegawai
Setiap
pegawai
yang
bekerja
64
informasi
mengenai
harus mengetahui
pegawai yang bekerja
tugas
dan
tanggung
jawab
masing-masing. 5
Ms_Jasa
M erupakan
entitas
Packet
Setiap jasa yang
yang menawarkan Jasa
ditawarkan akan
dalam bentuk paket-
dipilih
paket yang disediakan
pelanggan dengan
oleh
harga yang relatif. 6
TrPemesanan
entitas
Transaksi
memberikan
Pemesanan
M erupakan yang informasi
mengenai
pemesanan
paket
TrPenjualan
telah
mendaftar
dapat
Pemesanan paket
entitas
Transaksi
Setiap pemesanan
memberikan
Penjualan
paket
M erupakan yang
yang
melakukan
yang
dilakukan pelanggan 7
Setiap pelanggan
yang
dilakukan akan di
informasi
mengenai
penjualan
yang
cek
dilakukan
oleh
ketersediaannya yang
pegawai
kemudian
dilanjutkan
ke
pengiriman 8
Ms_Pengiriman
M erupakan
entitas
Pengiriman
Setiap pengiriman
65
yang
memberikan
informasi
Paket
mengenai
tujuan
pengiriman
Ms_Promosi
dilakukan
akan ke
tujuan
M erupakan yang
yang
dikirimkan
paket 9
paket
entitas
memberikan
informasi
Promosi
Setiap
promosi
Paket
paket
yang
dilakukan.
mengenai
paket-paket
yang
dijual oleh perusahaan 10
TrPembelian
entitas
Transaksi
Setiap Pembelian
memberikan
Pembelian
yang dilakukan.
M erupakan yang informasi
mengenai
pembelian
barang
untuk
memenuhi
persediaan barang 11
Q&A
M erupakan yang
entitas
Q&A
yang di ajukan
memberikan untuk
oleh
pelanggan
bertanya
akan
di
tempat pelanggan seputar promosi
IT
oleh
dan
Ms_Pemeliharaan
M erupakan
24 jam. entitas
jawab pegawai
dalam waktu 1 x
yang
ditawarkan 12
Setiap pertanyaan
Maintenance
Setiap
66
yang
melakukan
pengecekan
pengecekan
terhadap
barang
kualitas barang yang
dilakukan
akan di jual
pegawai
yang oeh untuk
memastikan barang
layak
pakai atau tidak.
4.2.2
Mengidentifikasi Tipe-Tipe Relasi Berikut ini merupakan tahapan untuk menentukan hubunganhubungan penting yang ada di antara jenis-jenis entitas. Relasi antar tiap entitas dapat dilihat pada Tabel 4.2
Tabel 4.2 Tabel Kamus Data yang Menunjukan Relasi Antar Tipe Entitas Nama Entitas
Multiplicity
Relasi
Nama Entitas
Multiplicity
DaftarPelanggan
1..1
M enghasilkan
Ms_Pelanggan
1..*
Ms_Pelanggan
1..1
M elakukan
TrPemesanan
0..*
1..1
M enanyakan
Q&A
0..*
1..1
M engurus
TrPemesanan
0..*
1..1
M emproses
TrPenjualan
0..*
1..1
M elakukan
Ms_Pengiriman
1..*
1..1
M enjawab
Q&A
0..*
1..1
M embuat
Ms_Promosi
0..*
1..1
M elakukan
Ms_Pemeliharaan
0..*
Ms_Karyawan
67
TrPemesanan
1..1
M emproses
TrPembelian
0..*
1..*
M emiliki
Ms_Barang
1..*
1..*
M emiliki
Ms_Jasa
1..*
1..1
Berhubungan
TrPenjualan
1..1
Ms_Pengiriman
1..1
Dengan TrPenjualan
1..1
Berhubungan Dengan
Ms_Promosi
1..1
M enawarkan
Ms_Pelanggan
1..*
TrPembelian
1..*
M enambah
Ms_Barang
1..*
1..1
Berhubungan
Ms_Pengiriman
1..1
Dengan
68
Gambar 4.4 ERD Konseptual
4.2.3
Mengidentifikasi dan Menghubungkan Atribut Dengan Entitas atau Tipe Entitas
Tabel 4.3 Identifikasi dan hubungan antara Atribut dengan Entitas Entitas
Atribut
Deskripsi
Tipe dan
Null
Multi Valued
Panjang Data DaftarPelanggan
Kd_Daftar
Kode Daftar
Char (5)
No
No
Date
No
No
yang unik Tgl_Daftar
Tanggal
69
pendaftaran Ms_Pelanggan
ID_Pelanggan
ID pelanggan
Char (5)
No
No
Char (15)
No
No
Char (10)
No
No
Nama
Varchar
No
No
Perusahaan
(50)
Alamat
Varchar
No
No
Perusahaan
(100)
Nomor Telepon
Varchar
No
yes
Perusahaan
(12)
Email M ilik
Varchar
No
No
Perusahaan
(40)
Kode Barang
Char (5)
No
No
Varchar
No
No
No
No
No
No
yang unik Username
Username untuk login
Password
Password untuk login
Nm_Perusahaan
Alm_Perusahaan
Telp_Perusahaan
Email_Perusahaan
Ms_Barang
Kd_Barang
yang unik Nm_Barang
Nama Barang
(20) Jenis_Barang
Jenis Barang
Varchar (10)
Definisi
M enjelaskan
Varchar
kegunaan
(200)
70
barang Harga
Harga barang
Numeric
No
No
Date
Yes
Yes
Date
Yes
Yes
Int
Yes
Yes
Char (5)
No
No
Char (15)
No
No
Char (10)
No
No
Varchar
No
No
No
No
yang sudah ditentukan Tgl_M asuk
M enampilkan tanggal barang masuk
Tgl_Keluar
M enampilkan tanggal barang keluar
Stok_Barang
M enampilkan Jumlah Barang yang tersedia
Ms_Karyawan
ID_Karyawan
ID karyawan yang unik
Username
Username untuk login
Password
Password untuk login
Nm_Karyawan
Nama Karyawan
(20) Jabatan
Jabatan yang
Varchar
71
dipegang
(15)
Karyawan Alamat
Telp_Karyawan
Ms_Jasa
ID_Jasa
Alamat
Varchar
No
No
Karyawan
(100)
Telepon
Varchar
No
Yes
Karyawan
(15)
ID Jasa yang
Char (5)
No
No
Jenis jasa yang
Varchar
No
No
ditawarkan
(20)
Jenis Paket yang
Varchar
No
No
disediakan
(20)
Informasi Harga
Numeric
No
No
Char (5)
No
No
Date
No
No
Numeric
No
No
Varchar
No
No
unik Jenis_Jasa
Paket
Harga
Paket TrPemesanan
Kd_Pemesanan
Kode Pemesanan yang unik
Tgl_Pemesanan
Tanggal pemesanan barang
TotalHarga
Total harga dari pemesanan
Ket
Keterangan
72
mengenai
(50)
Pemesanan TrPenjualan
Kd_Penjualan
Kode Penjualan
Char (5)
No
No
Date
No
No
Numeric
No
No
Numeric
No
No
Char (5)
No
No
Date
No
Yes
Nama karyawan
Varchar
No
No
yang melakukan
(20)
yang uni Tgl_Penjualan
Tanggal penjualan barang
Diskon
Korting harga yang diberikan
TotalHarga
Total harga setelah di korting
Ms_Pengiriman
ID_Pengiriman
ID pengiriman yang unk
Tgl_Pengiriman
Tanggal dilakukan pengiriman barang
Karyawan
pengiriman
73
Ms_Promosi
Kd_Promosi
Kode promosi
Char (5)
No
No
Nama Barang
Varchar
No
No
yang di
(20)
No
No
Date
No
No
Char (5)
No
No
Date
No
Yes
Char (5)
No
No
Pertanyaan yang
Varchar
No
No
dilakukan
(200)
yang unik Barang
promosikan Paket
Nama Paket
Varchar
yang di
(20)
promosikan Tgl_Promosi
Tanggal dilakukannya promosi
TrPembelian
Kd_Pembelian
Kode pembelian yang unik
Tgl_Pembelian
Tanggal terjadinya pembelian
Q&A
ID_Q&A
ID Q&A yang unik
Tanya_Q&A
pelanggan
74
Jawab_Q&A
Jawaban yang
Varchar
No
No
dilakukan
(200)
Char (5)
No
No
Date
No
No
Karyawan Ms_Pemeliharaan
Kd_Pemeliharaan
Kode pemeliharaan yang unik
Tgl_Pemeliharaan
Tanggal dilakukan pemeliharaan
4.2.4
Menentukan domain atribut Tabel 4.4 Tabel Identifikasi Domain Atribut
Nama Atribut
Domain Value
Kd_Daftar
Range Value D0000 – D9999
Tgl_Daftar
Date
ID_Pelanggan
Range Value P0000 – P9999
Username Pelanggan
Range Value a-z
Password Pelanggan
Range Value a-z
Nm_Perusahaan
Range Value a-z, A-Z
Alm_Perusahaan
Range Value a-z, A-Z, 0-9
Telp
Range Value 0-9
75
Email
Range Value a-z, A-Z, 0-9
Kd_Barang
Range Value B0000 – B9999
Nm_Barang
Range Value a-z
Jenis_Barang
Range Value a-z
Definisi Harga
Range Value a-z, A-Z Range Value 0-9
Tgl_M asuk
Date
Tgl_Keluar
Date
Stok_Barang
Numeric
ID_Karyawan
Range Value K0000 – K9999
Username Karyawan
Range Value a-z
Password Karyawan
Range Value a-z
Nm_Karyawan
Range Value a-z, A-Z
Jabatan
Range Value a-z, A-Z
Alamat
Range Value a-z, A-Z, 0-9
Telp ID_Jasa
Range Value 0-9 Range Value J0000 – J9999
Jenis_Jasa
Range Value a-z, A-Z
Paket
Range Value a-z, A-Z
Harga
Numeric
Kd_Pemesanan
Range Value PM 000 – PM 999
Tgl_Pemesanan
Date
TotalHarga
Numeric
76
Ket
Range Value a-z, A-Z
Kd_Penjualan
Range Value PJ000 – PJ999
Tgl_Penjualan
Date
Diskon TotalHarga
Range Value 0-9 Numeric
ID_Pengiriman
Range Value PG000 – PG999
Tgl_Pengiriman
Date
Karyawan Kd_Promosi
Range Value a-z, A-Z Range Value PR000 – PR9999
Barang
Range Value a-z, A-Z
Paket
Range Value a-z, A-Z
Tgl_Promosi
Date
Kd_Pembelian
Range Value PB000 – PB999
Tgl_Pembelian
Date
ID_Q&A
Range Value F0000 – F9999
Tanya_Q&A
Range Value a-z, A-Z , 0-9
Jawab_Q&A
Range Value a-z, A-Z , 0-9
Kd_Pemeliharaan
Range Value PL000 – PL999
Tgl_Pemeliharaan
Date
77
4.2.5
Menentukan Kandidat dan Primary Key Tabel 4.5 Tabel Menentukan Kandidat dan Primary Key
Entity
Candidate Key
Primary Key
DaftarPelanggan
Kd_Daftar
Kd_Daftar
MsPelanggan
ID_Pelanggan
ID_Pelanggan
NmPerusahaan Telp MsBarang
ID_Barang
ID_Barang
MsKaryawan
ID_Karyawan
ID_Karyawan
Telp MsJasa
ID_Jasa
ID_Jasa
TrPemesanan
Kd_Pemesanan
Kd_Pemesanan
TrPenjualan
Kd_Penjualan
Kd_Penjualan
MsPengiriman
ID_Pengiriman
ID_Pengiriman
MsPromosi
Kd_Promosi
Kd_Promosi
TrPembelian
Kd_Pembelian
Kd_Pembelian
Q&A
ID_Q&A
ID_Q&A
MsPemeliharaan
Kd_Pemeliharaan
Kd_Pemeliharaan
78
Gambar 4.5 gambar ERD konseptual dengan primary key
4.2.6
Mempertimbangkan penggunaan konsep model yang lebih tinggi Dalam tahap ini menjelaskan tentang pengembangan dari model entitas dengan menggunakan Enhanced Modelling Concept, seperti spesialisasi atau generalisasi. Namun pada Gambar pada tabel 4.3 tidak menunjukkan adanya penggunaan Enhanced tersebut baik itu spesialisasi ataupun generalisasinya
4.2.7
Memeriksa Redudansi pada model Pada tahap ini menjelaskan tentang pemeriksaan terhadap data-data yang redundan dan kemudian dihilangkan, maksudnya adalah pengulangan data-data yang berkelanjutan jika proses insert,
79
update dan delete dilakukan. Pada Tahap ini terdapat 2 langkah untuk memeriksanya yaitu : 1.
Memeriksa kembali one-to-one relationship ( 1..1 ) Pada tahap ini menjelaskan Kemungkinan ada 2 entitas yang menggambarkan objek yang sama dalam suatu perusahaan. M aka, kedua entitas tersebut harus digabungkan. Apabila primary key berbeda maka pilih salah satu primary key dan yang lainnya menjadi candidate key. Contoh ERD pada gambar 4.4 yang dapat menjelaskan tahapan ini : a.
Hubungan antara entitas TrPemesanan dengan TrPenjualan memiliki hubungan one-to-one seperti gambar di bawah ini :
b.
Hubungan antara entitas TrPenjualan dengan M sPengiriman memiliki memiliki hubungan one-to-one seperti gambar di bawah ini :
80
2.
Menghapus relasi yang menunjukkan redundancy Pada tahap ini menjelaskan identifikasi model data yang redundan kemudian menghapus
relasi tersebut. Namun dalam
ERD yang di buat, tidak menunjukkan adanya relasi yang redundan pada entitas-entitas ERD Konseptual pada gambar 4.4.
4.2.8
Memvalidasi model data konseptual lokal dengan transaksi pengguna Pada tahapan ini menjelaskan tentang pemeriksaan model yang telah dihasilkan apakah mendukung transaksi pada view. Pemeriksaan ini dapat menggunakan 2 langkah yaitu : 1.
M endeskripsikan transaksi
2.
M enggunakan jalur transaksi
Kedua langkah tersebut akan dijelaskan pada gambar di bawah ini :
81
Gambar 4.6 ERD konseptual dengan alur transaksi.
Adapun beberapa transaksi – transaksi yang terjadi adalah sebagai berikut : a. Pegawai melakukan pemeliharaan barang dalam waktu sebulan sekali. b. Pegawai membuat daftar barang untuk diberikan ke bagian promosi. c. Bagian promosi menawarkan barang kepada pelanggan. d. Pendaftaran yang dilakukan oleh calon pelanggan. e. Pengajuan pertanyaan oleh pelanggan.
82
f. Pegawai menjawab pertanyaan pelanggan. g. Pelanggan melakukan transaksi pemesanan barang. h. Pegawai mengurus setiap transaksi pemesanan barang. i. Pegawai melakukan proses pengiriman barang kepada pelanggan. j. Pegawai memproses setiap transaksi penjualan barang. k. M enampilkan jasa yang dipesan pelanggan. l. M emasukkan data transaksi pemesanan pada transaksi pembelian berdasarkan data – data yang dipesan pelanggan. m. M enampilkan seluruh data yang dipesan pelanggan. n. Setiap transaksi pembelian menambah stok barang. o. M emasukkan data – data pembelian berdasarkan data – data yang dipesan perusahaan. p. M emasukkan data – data penjualan berdasarkan data – data barang yang telah dikirim. q. Pegawai memproses setiap transaksi pembelian barang.
4.3
Perancangan Basis Data Logikal Perancangan ini merupakan memproses pembuatan suatu model informasi yang digunakan di dalam suatu organisasi berdasarkan model data yang spesifik, tetapi tidak tergantung pada DBM S dan hardware-hardware lainnya. Perancangan basis data logikal ini terdiri dari langkah – langkah sebagai berikut :
83
Langkah 2: Membuat dan memvalidasi model data logikal lokal untuk setiap bagian. 4.3.1
Menghilangkan bagian – bagian yang tidak sesuai dengan model relasi Tujuan dari langkah ini adalah untuk menghilangkan fitur – fitur yang tidak sesuai dengan model relasi data konseptual. 1. M enghilangkan hubungan many-to-many pada entitas 1.1 Terdapat entitas yang mempunyai hubungan many-to-many pada entitas TrPemesanan dengan M sBarang dan menghasilkan entitas baru yang bernama DetailPemesananBarang. 1.2 Terdapat entitas yang mempunyai hubungan many-to-many pada entitas TrPemesanan dengan M sJasa dan menghasilkan entitas baru yang bernama DetailPemesananJasa. 1.3 Terdapat entitas yang mempunyai hubungan many-to-many pada entitas TrPembelian dengan M sBarang dan menghasil entitas baru yang bernama DetailPembelianBarang. 2. M enghilangkan attribut multi-valued 2.1 Ms_Karyawan dengan Telp_Karyawan Atribut
Telp_Karyawan
yang
didapat
dari
entitas
Ms_Karyawan dihilangkan dan menghasilkan entitas baru yang bernama Telp_Karyawan. 2.2 Ms_Pelanggan dengan Telp_Perusahaan
84
Atribut
Telp_Perusahaan
yang
didapat
dari
entitas
Ms_Pelanggan dihilangkan dan menghasilkan entitas baru yang bernama Telp_Perusahaan. 2.3 Jawab_Q&A dengan Q&A Atribut
Jawab_Q&A yang didapat
dari entitas
Q&A
dihilangkan dan menghasilkan entitas baru yang bernama JawabanQ&A
4.3.2
Mendapatkan relasi untuk model data logikal lokal Tujuan dari langkah ini adalah mendapatkan relasi dari model data logikal logal untuk merepresentasikan pada beberapa entitas, relasi dan attribut yang telah diidentifikasi. 1. Strong entity types M erupakan entitas dalam data model yang tidak bergantung pada entitas lainnya. Dengan kata lain entitas tersebut dapat berdiri sendiri. Di bawah ini merupakan entitas-entitas tersebut: 1.1
DaftarPelanggan ( Kd_Daftar, Tgl_Daftar ) Primary Key KdDaftar
1.2
Ms_Pelanggan ( ID_Pelanggan, username, password, Nm_Perusahaan, Alm_Perusahaan, Email ) Primary Key ID_Pelanggan
1.3
Ms_Barang
85
( Kd_Barang, Nm_Barang, Jenis_Barang, Definisi, Harga, Tgl_M asuk, Tgl_Keluar, Stok_Barang ) Primary Key Kd_Barang 1.4
Ms_Karyawan (
ID_Karyawan,
username,
password,
Nm_Karyawan,
Jabatan, Alamat ) Primary Key ID_Karyawan 1.5
Ms_Jasa ( ID_Jasa, Jenis_Jasa, Paket, Harga ) Primary Key ID_Jasa
1.6
Tr_Pemesanan ( Kd_Pemesanan, Tgl_Pemesanan, Total_Harga, Ket ) Primary Key Kd_Pemesanan
1.7
Tr_Penjualan ( Kd_Penjualan, Tgl_Penjualan, Diskon, Total_Harga) Primary Key Kd_Penjualan
1.8
Ms_Pengiriman ( Kd_Pengiriman, Tgl_Pengiriman, Karyawan ) Primary Key Kd_Pengiriman
1.9
Ms_Promosi ( Kd_Promosi, Barang, Paket, Tgl_Promosi ) Primary Key Kd_Promosi
1.10 Tr_Pembelian ( Kd_Pembelian, T gl_Pembelian )
86
Primary Key Kd_Pembelian 1.11 Q&A ( ID_Q&A, Tanya_Q&A ) Primary Key ID_Q&A 1.12 Ms_Pemeliharaan ( Kd_Pemeliharaan, Tgl_Pemeliharaan ) Primary Key Kd_Pemeliharaan 2. Weak entity types M erupakan entitas data model yang bergantung pada entitas lainnya. Dengan kata lain entitas ini tidak dapat berdiri sendiri. D i bawah ini merupakan entitas-entitas tersebut : 2.1
DetailPemesananBarang ( Tgl_Pemesanan, Harga, Total_Harga ) Primary Key ( tidak ada )
2.2
DetailPembelianBarang ( Harga, Total_Harga ) Primary Key ( tidak ada )
2.3
JawabanQ&A ( JawabanPelanggan ) Primary Key ( tidak ada )
2.4
DetailPemesananJasa ( Tgl_Pemesanan, Harga, Total_Harga ) Primary Key ( Tidak ada )
87
2.5
TelpKaryawan ( Telp ) Primary Key ( tidak ada )
2.6
TelpPerusahaan ( Telp ) Primary Key ( tidak ada )
3. Tipe relasi one-to-many binary a. Hubungan
antara DaftarPelanggan
dengan
M s_Pelanggan
kemudian memasukkan Kd_Daftar pada M s_Pelanggan DaftarPelanggan ( Kd_Daftar,
Ms_Pelanggan ( ID_Pelanggan,
Tgl_Daftar )
Kd_Daftar, username, password,
Primary Key Kd_Daftar
Nm_Perusahaan, Alm_Perusahaan, Email ) Primary Key ID_Pelanggan Foreign Key Kd_Daftar References DaftarPelanggan ( Kd_Daftar )
b. Hubungan antara M s_Pelanggan dengan TrPemesanan kemudian memasukkan ID_Pelanggan pada TrPemesanan Ms_Pelanggan ( ID_Pelanggan,
TrPemesanan ( Kd_Pemesanan,
Kd_Daftar, username, password, ID_Pelanggan,
Tgl_Pemesanan,
Nm_Perusahaan, Alm_Perusahaan, Total_Harga, Ket )
88
Email )
Primary Key Kd_Pemesanan
Primary Key ID_Pelanggan
Foreign Key ID_Pelanggan References M s_Pelanggan ( ID_Pelanggan )
c. Hubungan antara M s_Pelanggan dengan Q&A kemudian memasukkan ID_Pelanggan pada Q&A Ms_Pelanggan ( ID_Pelanggan, Kd_Daftar,
username,
Q&A ( ID_Q&A, ID_Pelanggan,
password, Tanya_Q&A)
Nm_Perusahaan, Alm_Perusahaan, Primary Key ID_Q&A Email )
Foreign Key ID_Pelanggan
Primary Key ID_Pelanggan
References M s_Pelanggan ( ID_Pelanggan )
d. Hubungan antara M s_Karyawan dengan TrPemesanan kemudian memasukkan ID_Karyawan pada TrPemesanan. Ms_Karyawan ( ID_Karyawan,
TrPemesanan ( Kd_Pemesanan,
Username,
ID_Pelanggan,
password,
ID_Karyawan,
Nm_Karyawan, Jabatan, alamat )
Tgl_Pemesanan, Total_Harga, Ket
Primary Key ID_Karyawan
) Primary Key Kd_Pemesanan Foreign Key ID_Karyawan References M s_Karyawan
89
( ID_Karyawan )
e. Hubungan antara M s_Karyawan dengan TrPenjualan kemudian memasukkan ID_Karyawan pada TrPenjualan. Ms_Karyawan ( ID_Karyawan, Username,
TrPenjualan ( Kd_Penjualan,
password, ID_Karyawan,
Tgl_Penjualan,
Nm_Karyawan, Jabatan, alamat )
Diskon, Total_Harga )
Primary Key ID_Karyawan
Primary Key Kd_Penjualan Foreign Key ID_Karyawan References M s_Karyawan ( ID_Karyawan )
f. Hubungan
antara
M s_Karyawan
dengan
M s_Pengiriman
kemudian memasukkan ID_Karyawan pada M s_pengiriman Ms_Karyawan ( ID_Karyawan, Username,
Ms_Pengiriman ( ID_Pengiriman,
password, ID_Karyawan,
Tgl_Pengiriman,
Nm_Karyawan, Jabatan, alamat )
Karyawan )
Primary Key ID_Karyawan
Primary Key ID_Pengiriman Foreign Key ID_Karyawan References M s_Karyawan ( ID_Karyawan )
90
g. Hubungan antara M s_Karyawan dengan Q&A kemudian memasukkan ID_Karyawan pada Q&A Ms_Karyawan ( ID_Karyawan, Username,
Q&A ( ID_Q&A, ID_Karyawan,
password, ID_Pelanggan, Tanya_Q&A )
Nm_Karyawan, Jabatan, alamat )
Primary Key ID_Q&A
Primary Key ID_Karyawan
Foreign Key ID_Karyawan References M s_Karyawan ( ID_Karyawan )
h. Hubungan antara M s_Karyawan dengan M s_Promosi kemudian memasukkan ID_Karyawan pada Ms_Promosi Ms_Karyawan ( ID_Karyawan, Username,
Ms_Promosi ( Kd_Promosi,
password, ID_Karyawan,
Barang,
Nm_Karyawan, Jabatan, alamat )
Tgl_Promosi )
Primary Key ID_Karyawan
Primary Key Kd_Promosi
Paket,
Foreign Key ID_Karyawan References M s_Karyawan ( ID_Karyawan )
i. Hubungan antara M s_Karyawan dengan M s_Pemeliharaan kemudian memasukkan ID_Karyawan pada M s_Pemeliharaan Ms_Karyawan ( ID_Karyawan, Username,
Ms_Pemeliharaan
(
password, Kd_Pemeliharaan,
ID_Karyawan,
91
Nm_Karyawan, Jabatan, alamat )
Tgl_Pemeliharaan )
Primary Key ID_Karyawan
Primary Key Kd_Pemeliharaan Foreign Key ID_Karyawan References M s_Karyawan ( ID_Karyawan )
j. Hubungan antara M s_Promosi dengan M s_Pelanggan kemudian memasukkan Kd_Promosi pada M s_Pelanggan Ms_Pelanggan ( ID_Pelanggan,
Ms_Promosi ( Kd_Promosi, ID_Karyawan,
Paket, Kd_Daftar, Kd_Promosi, username,
Barang,
Tgl_Promosi )
password,
Nm_Perusahaan,
Primary Key Kd_Promosi
Alm_Perusahaan, Email ) Primary Key ID_Pelanggan Foreign Key Kd_Promosi References M s_Promosi ( Kd_Promosi )
k. Hubungan antara M s_Karyawan dengan TrPembelian kemudian memasukkan ID_Karyawan pada TrPembelian Ms_Karyawan ( ID_Karyawan, Username,
TrPembelian ( Kd_Pembelian,
password, ID_Karyawan, Tgl_Pembelian )
Nm_Karyawan, Jabatan, alamat )
Primary Key Kd_Pembelian
Primary Key ID_Karyawan
Foreign Key ID_Karyawan
92
References M s_Karyawan ( ID_Karyawan )
4. Tipe relasi one-to-one binary a. M engirimkan
Kd_Pemesanan
pada
TrPemesanan
kepada
TrPenjualan TrPemesanan ( Kd_Pemesanan, ID_Pelanggan,
TrPenjualan ( Kd_Penjualan,
ID_Karyawan, Kd_Pemesanan,
ID_Karyawan,
Tgl_Pemesanan, Total_Harga, Ket
Tgl_Penjualan,
)
Total_Harga )
Primary Key Kd_Pemesanan
Primary Key Kd_Penjualan
Foreign Key ID_Karyawan
Foreign Key Kd_Pemesanan
References M s_Karyawan
References TrPemesanan
( ID_Karyawan )
( TrPemesanan )
Foreign Key ID_Pelanggan
Foreign Key ID_Karyawan
References M s_Pelanggan
References M s_Karyawan
( ID_Pelanggan )
( ID_Karyawan )
b. M engirimkan
Kd_Penjualan
pada
Diskon,
TrPenjualan
kepada
Ms_Pengiriman TrPenjualan ( Kd_Penjualan, Kd_Pemesanan, Tgl_Penjualan,
Ms_Pengiriman ( ID_Pengiriman,
ID_Karyawan, Kd_Penjualan,
ID_Karyawan,
Diskon, Tgl_Pengiriman, Karyawan )
93
Total_Harga )
Primary Key ID_Pengiriman
Primary Key Kd_Penjualan
Foreign Key Kd_Penjualan
Foreign Key Kd_Pemesanan
References TrPenjualan
References TrPemesanan
( Kd_Penjualan )
( TrPemesanan )
Foreign Key ID_Karyawan
Foreign Key ID_Karyawan
References M s_Karyawan
References M s_Karyawan
( ID_Karyawan )
( ID_Karyawan )
c. M engirimkan
Kd_Pembelian
pada
TrPembelian
Kepada
Ms_Pengiriman TrPembelian ( Kd_Pembelian,
Ms_Pengiriman ( ID_Pengiriman,
ID_Karyawan, Tgl_Pembelian )
Kd_Penjualan,
ID_Karyawan,
Primary Key Kd_Pembelian
Kd_Pembelian,
Tgl_Pengiriman,
Foreign Key ID_Karyawan
Karyawan )
References M s_Karyawan
Primary Key ID_Pengiriman
( ID_Karyawan )
Foreign Key Kd_Penjualan References TrPenjualan ( Kd_Penjualan ) Foreign Key ID_Karyawan References M s_Karyawan ( ID_Karyawan ) Foreign Key Kd_Pembelian
94
References TrPembelian (Kd_Pembelian )
5. Tipe relasi many-to-many binary a. M enggabungkan Kd_Pemesanan pada TrPemesanan dengan Kd_Barang
pada
M s_Barang
ke
dalam
entitas
DetailPemesananBarang TrPemesanan ( Kd_Pemesanan, ID_Pelanggan,
Ms_Barang
(
ID_Karyawan, Nm_Barang,
Kd_Barang, Jenis_Barang,
Tgl_Pemesanan, Total_Harga, Ket )
Definisi,
Primary Key Kd_Pemesanan
Tgl_Keluar, Stok_Barang )
Foreign Key ID_Karyawan
Primary Key Kd_Barang
Harga,
Tgl_M asuk,
References M s_Karyawan ( ID_Karyawan ) Foreign Key ID_Pelanggan References M s_Pelanggan ( ID_Pelanggan )
DetailPemesananBarang ( Kd_Pemesanan, Kd_Barang, Tgl_Pemesanan, Harga, Total_Harga ) Primary Key Kd_Pemesanan, Kd_Barang Foreign Key Kd_Pemesanan References TrPemesanan ( Kd_Pemesanan )
95
Foreign Kd_Barang References M s_Barang ( Kd_Barang )
b. M enggabungkan Kd_Pemesanan pada TrPemesanan dengan ID_Barang pada M s_Jasa ke dalam entitas DetailPemesananJasa TrPemesanan ( Kd_Pemesanan, ID_Pelanggan,
Ms_Jasa ( ID_Jasa, Jenis_Jasa,
ID_Karyawan, Paket, Harga )
Tgl_Pemesanan, Total_Harga, Ket )
Primary Key ID_Jasa
Primary Key Kd_Pemesanan Foreign Key ID_Karyawan References M s_Karyawan ( ID_Karyawan ) Foreign Key ID_Pelanggan References M s_Pelanggan ( ID_Pelanggan )
DetailPemesananJasa ( Kd_Pemesanan, ID_Jasa, T gl_Pemesanan, Harga, Total_Harga ) Primary Key Kd_Pemesanan, ID_Jasa Foreign Key Kd_Pemesanan References TrPemesanan ( Kd_Pemesanan ) Foreign Key ID_Jasa References M s_Jasa ( ID_Jasa )
96
c. M enggabungkan Kd_Pembelian pada TrPembelian dengan ID_Barang
pada
M s_Barang
ke
dalam
entitas
DetailPembelianBarang TrPembelian ( Kd_Pembelian,
Ms_Barang
(
ID_Karyawan, Tgl_Pembelian )
Nm_Barang,
Primary Key Kd_Pembelian
Definisi,
Foreign Key ID_Karyawan
Tgl_Keluar, Stok_Barang )
References M s_Karyawan
Primary Key Kd_Barang
Harga,
Kd_Barang, Jenis_Barang, Tgl_M asuk,
( ID_Karyawan )
DetailPembelianBarang ( Kd_Pembelian, Kd_Barang, T gl_Pembelian, JumBeli, Harga, Total_Harga ) Primary Key Kd_Pembelian, Kd_Barang Foreign Key Kd_Pembelian References TrPembelian ( Kd_Pembelian ) Foreign Key Kd_Barang References M s_Barang ( Kd_Barang )
4.3.3
Validasi relasi dengan menggunakan normalisasi DaftarPelanggan UNF = Kd_Daftar + Tgl_Daftar 1NF = Kd_Daftar + Tgl_Daftar 2NF = Kd_Daftar + Tgl_Daftar 3NF = Kd_Daftar + Tgl_Daftar
97
Ms_Pelanggan UNF = ID_Pelanggan + Kd_Daftar + Kd_Promosi + username + password + Nm_Perusahaan + Alm_Perusahaan + Email 1NF Ms_Pelanggan = ID_Pelanggan + Kd_Daftar + Kd_Promosi + Nm_Perusahaan + Alm_Perusahaan + Email DetailLoginP = Kd_DetailLoginP + ID_Pelanggan + username + password 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan normalisasi 3 NF.
Ms_Karyawan UNF = ID_Karyawan + Username + Password + Nm_Karyawan + Jabatan + alamat 1NF Ms_Karyawan = ID_Karyawan + Nm_Karyawan + Jabatan + alamat DetailLoginK = Kd_DetailLoginK + ID_Karyawan + username + password 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
98
TrPemesanan UNF = Kd_Pemesanan +
ID_Pelanggan + ID_Karyawan +
Tgl_Pemesanan + Total_Harga + Ket 1NF TrPemesanan = Kd_Pemesanan + ID_Pelanggan + ID_Karyawan + Tgl_Pemesanan + Ket 2NF TrHeaderPemesanan
=
Kd_Pemesanan
+
ID_Pelanggan
ID_Karyawan + Tgl_Pemesanan TrDetailPemesanan =Kd_Pemesanan + Ket 3NF Sudah memenuhi aturan 3 NF
TrPembelian UNF = Kd_Pembelian + ID_Karyawan + Tgl_Pembelian 1NF Sudah memenuhi aturan 1 NF 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
+
99
Q&A UNF = ID_Q&A + ID_Karyawan + ID_Pelanggan + Tanya_Q&A 1NF Sudah memenuhi aturan 1 NF 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
TrPenjualan UNF =
Kd_Penjualan
+
Kd_Pemesanan
+
ID_Karyawan
+
Tgl_Penjualan + Diskon + Total_Harga 1NF TrPenjualan = Kd_Penjualan + Kd_Pemesanan + ID_Karyawan + Tgl_Penjualan + Diskon 2NF TrHeaderPenjualan = Kd_Penjualan + Kd_Penjualan + ID_Karyawan + Tgl_Penjualan TrDetailPenjualan = Kd_Penjualan + diskon 3NF Sudah memenuhi aturan 3 NF
100
Ms_Pengiriman UNF =
ID_Pengiriman
+
Kd_Penjualan
+
ID_Karyawan
+
Kd_Pembelian + Tgl_Pengiriman 1NF Sudah memenuhi aturan 1 NF 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
Ms_Promosi UNF = Kd_Promosi + ID_Karyawan + Barang + Paket + Tgl_Promosi 1NF Ms_Promosi = Kd_Promosi + ID_Karyawan + Tgl_Promosi Jenis_Promosi = Kd_Promosi + Barang + Paket 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
101
Ms_Pemeliharaan UNF = Kd_Pemeliharaan + ID_Karyawan + Tgl_Pemeliharaan 1NF Ms_Pemeliharaan
=
@Kd_Pemeliharaan
+
ID_Karyawan
+
Tgl_Pemeliharaan
Ms_Jasa UNF = ID_Jasa + Jenis_Jasa + Paket + Harga 1NF Ms_Jasa = ID_Jasa + Jenis_Jasa + Paket 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
DetailPemesananBarang UNF = + Kd_Barang Kd_Pemesanan + Tgl_Pemesanan + Harga + Total_Harga 1NF DetailPemesananBarang
=
Tgl_Pemesanan 2NF Sudah memenuhi aturan 2 NF 3NF
Kd_Pemesanan
+
Kd_Barang
+
102
DetailPemesananBarang= Ms_Barang = Kd_Barang + Nm_Barang + Jenis_Barang + Definisi + Tgl_M asuk + Tgl_Keluar + Stok_Barang
Ms_Barang UNF = Kd_Barang + Nm_Barang + Jenis_Barang + Definisi + Tgl_M asuk + Tgl_Keluar + Stok_Barang 1NF M S Barang= Kd_Barang + Nm_Barang + Jenis_Barang + Definisi + Tgl_M asuk + Tgl_Keluar + Stok_Barang 2NF M S Barang= Kd_Barang + Nm_Barang + Jenis_Barang + Definisi + Tgl_M asuk + Tgl_Keluar + Stok_Barang 3NF Ms_Barang = Kd_Barang + Nm_Barang + Jenis_Barang + Definisi DetailBarang =
Kd_Barang +
Tgl_M asuk
+
Tgl_Keluar
+
Stok_Barang
DetailPembelianBarang UNF = Kd_Pembelian + Kd_Barang + JumBeli + Harga + Total_Harga 1NF DetailPembelianBarang = Kd_Pembelian + Kd_Barang 2NF
103
Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
JawabanQ&A UNF = ID_Q&A + JawabanPelanggan 1NF Sudah memenuhi aturan 1 NF 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
DetailPemesananJasa UNF = Kd_Pemesanan + ID_Jasa + Tgl_Pemesanan + Harga + Total_Harga ) 1NF DetaiPemesananJasa = Kd_Pemesanan + ID_Jasa + Tgl_Pemesanan 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
104
TelpKaryawan UNF = Kd_Karyawan + Telp_Karyawan 1NF Sudah memenuhi aturan 1 NF 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
TelpPerusahaan UNF = Kd_Pelanggan + Telp_Perusahaan 1NF Sudah memenuhi aturan 1 NF 2NF Sudah memenuhi aturan 2 NF 3NF Sudah memenuhi aturan 3 NF
105 TelpPerusahaan Jenis_Promosi PK,FK1
Daft arPelanggan
Kd_Promosi
MsPromosi
barang paket
JawabanQ&A
PK
PK
Kd_Promosi
FK1
ID_Karyawan Tgl_Promosi
PK, FK1 I D_Q&A
PK
Telp_Perusahaan
DetailLoginP
Kd_Daftar FK 1 I D_Pel anggan
PK,FK1
Tgl_Daf tar
ID_Pelanggan username password
JawabanPelanggan Q&A
Ms_Pelanggan
PK
ID_Q&A
FK1 FK2
tanya_Q& A ID_Pelanggan ID_Karyawan
TelpKaryawan PK
PK
ID_Pelanggan
FK2 FK1
Nm_Perusahaan Alm_Perusahaan Email Kd_Daf tar Kd_Promosi
Telp_Karyawan
FK1 I D_Karyawan
DetailPemesananBarang TrPembelian
Ms_Karyawan
PK
Kd_Pem beli an
P K ID_Karyawan
FK1
ID_Karyawan Tgl_Pembelian
Nm_karyawan Jabat an Alamat
Det ailLoginK
PK,FK2 PK,FK1
Kd_Barang Kd_Pem esanan Tgl_Pemesanan
PK,FK1 ID_Karyawan username password
Ms_Pemeliharaan
MsPengiriman PK
ID_Pengiriman
FK1 FK2 FK3
Kd_Penjualan Kd_Pembelian ID_Karyawan Tgl_Pengiriman
Kd_P emeli haraan
FK1
ID_Karyawan Tgl_Pemeliharaan
DetailPemesananJasa
Ms_Jasa PK
PK
PK,FK2 PK,FK1
ID_Jasa Jenis_Jasa paket
Kd_Pem esanan ID_Jasa Tgl_Pemesanan
DetailPembelianBarang PK, FK2 Kd_Pembelian PK, FK1 Kd_Barang
Ms_Barang DetailBarang PK,FK1
PK
Kd_Barang
Kd_Barang
TrHeaderPemesanan
Nm_Barang Jenis_B arang definisi
Tgl_Masuk Tgl_Keluar Stok_Barang TrHeaderPenjualan PK FK2 FK1
Kd_P enjualan Kd_Pemesanan ID_Karyawan Tgl_Penjualan
TrDetailPenjualan PK,FK1
Kd_Penj ualan diskon
TrDet ailPemesanan PK,FK1 Kd_Pemesanan ket
Gambar 4.7 ERD setelah normalisasi
PK
Kd_Pemesanan
FK2 FK1
ID_Pelanggan ID_Karyawan Tgl_Pemesanan
106
4.3.4
Alur Transaksi yang Terjadi
Gambar 4.8 Validasi Transaksi (Model Logikal)
Adapun beberapa transaksi yang terjadi adalah sebagai berikut : a.
M enentukan jenis promosi
b.
M enjawab pertanyaan
c.
Pelanggan mendapatkan jawaban
107
d.
Pelanggan melihat promosi yang ada
e.
Karyawan mempublish promosi ke pelanggan
f.
Karyawan menjawab pertanyaan
g.
Setiap karyawan mempunyai nomor telepon
h.
Karyawan mengupdate proses penjualan
i.
Karyawan melakukan login
j.
Karyawan melakukan pengiriman
k.
Bagian pembelian melakukan pengiriman
l.
Detail pemesanan jasa
m. Pengiriman berdasarkan bagian penjualan n.
Detail barang yang ada
o.
Detail penjualan dan diskon
p. Detail pemesanan barang q.
Detail pemesanan jasa
r.
Detail pembelian barang
s.
Detail pemesanan barang
t.
Pembelian barang oleh karyawan
u.
Karyawan melakukan pemeliharan
v.
Karyawan memproses pemesanan
w. Karyawan memproses pembelian x.
Proses pendaftaran pelanggan
y. Detail pelanggan z. Pelanggan mempunyai nomor telp perusahaan aa. Detail barang yang dipesan
108
bb. Pelanggan melakukan pemesanan cc. Penjualan berdasarkan pemesanan oleh pelanggan.
4.3.5
Memeriksa Integritas Constraint
DaftarPelanggan ( Kd_Daftar, Tgl_Daftar ) Primary Key Kd_Daftar
Ms_Pengiriman ( ID_Pengiriman, Kd_Penjualan, ID_Karyawan, Kd_Pembelian, Tgl_Pengiriman, Karyawan ) Primary Key ID_Pengiriman Foreign Key Kd_Penjualan References Ms_Pengiriman ( Kd_Penjualan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key ID_Karyawan References Ms_Karyawan ( ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key Kd_Pembelian References TrPembelian ( Kd_Pembelian ) ON UPDATE CASCADE ON DELETE NO ACTION
TrPembelian ( Kd_Pembelian, ID_Karyawan, Tgl_Pembelian ) Primary Key Kd_Pembelian Foreign Key ID_Karyawan References Ms_Karyawan ( ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE
Ms_Barang ( Kd_Barang, Nm_Barang, Jenis_Barang, Definisi, Harga, Tgl_M asuk,
109
Tgl_Keluar, Stok_Barang ) Primary Key Kd_Barang
TrHeaderPemesanan
(
Kd_Pemesanan,
ID_Pelanggan,
ID_Karyawan,
Tgl_Pemesanan ) Primary Key Kd_Pemesanan Foreign Key ID_Karyawan References Ms_Karyawan ( ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key ID_PelangganReferences M s_Pelanggan ( ID_Pelanggan ) ON UPDATE CASCADE ON DELETE CASCADE
TrDetailPemesanan ( Kd_Pemesanan, Ket ) Primary Key Kd_Pemesanan Foreign Key Kd_Pemesanan References TrHeaderPemesanan ( Kd_Pemesanan ) ON UPDATE CASCADE ON DELETE NO ACTION
Ms_Jasa ( ID_Jasa, Jenis_Jasa, Paket ) Primary Key ID_Jasa
Ms_Pelanggan ( ID_Pelanggan, Kd_Daftar, Kd_Promosi, username, password, Nm_Perusahaan, Alm_Perusahaan, Email ) Primary Key ID_Pelanggan Foreign Key Kd_Promosi References M s_Promosi ( Kd_Promosi )
110
ON UPDATE CASCADE ON DELETE CASCADE Foreign Key Kd_Daftar References DaftarPelanggan ( Kd_Daftar ) ON UPDATE CASCADE ON DELETE NO ACTION
TrHeaderPenjualan ( Kd_Penjualan, Kd_Pemesanan, ID_Karyawan, Tgl_Penjualan ) Primary Key Kd_Penjualan Foreign Key Kd_Pemesanan References TrPemesanan ( TrPemesanan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key ID_Karyawan References Ms_Karyawan ( ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE
TrDetailPenjualan ( Kd_Penjualan, Kd_Penjualan, Diskon ) Primary Key Kd_Penjualan Foreign Key KdPenjualan References TrHeaderPenjualan ( KdPenjualan ) ON UPDATE CASCADE ON DELETE NO ACTION
Ms_Promosi ( Kd_Promosi, ID_Karyawan, Barang, Paket, Tgl_Promosi ) Primary Key Kd_Promosi Foreign Key ID_Karyawan References Ms_Karyawan ( ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE
Jenis_Promosi ( Barang, Paket, Kd_Promosi )
111
Primary Key Kd_Promosi Foreign Key Kd_Promosi References M s_Promosi ( Kd_Promosi ) ON UPDATE CASCADE ON DELETE CASCADE TelpPerusahaan (Telp_Perusahaan, ID_Pelanggan ) Primary_Key Telp_Perusahaan Foreign Key ID_Pelanggan References M s_Pelanggan ( ID_Pelanggan ) ON UPDATE CASCADE ON DELETE NO ACTION
DetailLoginP ( Username, Password, ID_Pelanggan ) Primary Key ID_Pelanggan Foreign Key ID_Pelanggan References M s_Pelanggan ( ID_Pelanggan ) ON UPDATE CASCADE ON DELETE NO ACTION
JawabanQ&A ( ID_Q&A, Jawaban_Pelanggan ) Primary Key ID_Q&A Foreign Key ID_Q&A References Q&A ( ID_Q&A ) ON UPDATE NO ACTION ON DELETE CASCADE
Q&A( ID_Q&A, ID_Pelanggan, ID_Karyawan, Tanya_Q&A ) Primary Key ID_Q&A Foreign Key ID_Pelanggan References M s_Pelanggan ( ID_Pelanggan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key ID_Karyawan References Ms_Karyawan ( ID_Karyawan )
112
ON UPDATE CASCADE ON DELETE CASCADE
TelpKaryawan ( Telp_Karyawan, ID_Karyawan ) Primary Key Telp_Karyawan Foreign Key ID_Karyawan References Ms_Karyawan ( ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE
Ms_Karyawan ( ID_Karyawan, Nama, Alamat, Jabatan ) Primary Key ID_Karyawan
DetailPemesananBarang ( Kd_Pemesanan, Kd_barang, Tgl_Pemesanan ) Primary Key Kd_Pemesanan, Kd_Barang Foreign Key Kd_Pemesanan References TrHeaderPemesanan ( Kd_Pemesanan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Barang References Ms_Barang ( Kd_Barang ) ON UPDATE CASCADE ON DELETE CASCADE
DetailLoginK ( Username, Password, ID_Karyawan ) Primary Key ID_Karyawan Foreign Key ID_Karyawan References Ms_Karyawan ( ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE
Ms_Pemeliharaan ( Kd_Pemeliharaan, ID_Karyawan, Tgl_Pemeliharaan )
113
Primary Key Kd_Pemeliharaan Foreign Key ID_Karyawan References Ms_Karyawan ( ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE
DetailPemesananJasa ( Kd_Pemesanan, ID_Jasa, Tgl_Pemesanan ) Primary Key Kd_HeaderPemesanan, ID_Jasa Foreign Key Kd_Pemesanan References TrHeaderPemesanan ( Kd_Pemesanan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key ID_Jasa References M s_Jasa ( ID_Jasa ) ON UPDATE CASCADE ON DELETE CASCADE
DetailPembelianBarang ( Kd_Pembelian, Kd_Barang ) Primary Key Kd_Pembelian, Kd_Barang Foreign Key Kd_Pembelian References TrPembelian ( Kd_Pembelian ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Barang References Ms_Barang ( Kd_Barang ) ON UPDATE CASCADE ON DELETE CASCADE
DetailBarang ( Tgl_M asuk, Tgl_Keluar, StokBarang, Kd_Barang ) Primary Key Kd_Barang Foreign Key Kd_Barang References Ms_Barang ( Kd_Barang ) ON UPDATE CASCADE ON DELETE CASCADE
114
4.4
Perancangan Database Fisikal 4.4.1
Pemilihan DBMS (Database Management System) Pemilihan DBM S merupakan langkah untuk menentukan DBM S yang akan digunakan oleh perusahaan. DBM S yang digunakan pada penulisan karya tulis ini adalah M YSQL. Tabel 4.6 S pesifikasi DBMS MYS QL MYS QL Processor
Intel Pentium 4 1.66 MHz
M emory
RAM : 128 MB (512 MB diutamakan) Virtual M emory : Initial size 50 M B, ukuran maksimal 400 MB
Hardisk Space
500 M B (diutamakan)
Platform
Windows
Cost
$ 0 (lisensi umum)
Pemenuhan ACID
Ya
Feature Tables
Relational tables
Feature Triggers
Tidak mendukung
Feature Procedures
M YSQL function
Feature ARRAYS
mendukung
115
Feature Back up Tidak mendukung dan security
4.4.2
Outer joins
Left, Right
M ax table size
4 GB
Penerjemahan Model Data Logical Global Untuk Target DBMS Perancangan basis data fisikal adalah proses menghasilkan penjelasan dari implementasi dari basis data pada secondary storage dan menjelaskan base relation, pengaturan file dan indeks yang digunakan untuk akses data, integrity constraints, serta ukuran keamanan. Langkah-langkah dalam perancangan basis data fisikal adalah sebagai berikut : 4.4.2.1 Merancang Base Relation Langkah ini bertujuan untuk memutuskan bagaimana merepresentasikan relasi dasar yang diidentifikasikan. 1. DaftarPelanggan Domain Kd_Daftar
Fixed length character string, length 5
Domain Tgl_Daftar
Date
DaftarPelanggan ( Kd_Daftar
Kd_Daftar
NOT NULL
Tgl_Daftar
Tgl_Daftar
NOT NULL
Primary Key Kd_Daftar
116
);
2.
Ms_Pengiriman Domain ID_Pengiriman
Fixed length character string, length 5
Domain Kd_Penjualan
Fixed length character string, length 5
Domain ID_Karyawan
Fixed length character string, length 5
Domain Kd_Pembelian
Fixed length character string, length 5
Domain Tgl_Pengiriman
Date
Domain Karyawan
Fixed
length Variable character
string, length 20 Ms_Pengiriman ( ID_Pengiriman
ID_Pengiriman
NOT NULL
Kd_Penjualan
Kd_Penjualan
NOT NULL
ID_Karyawan
ID_Karyawan
NOT NULL
Kd_Pembelian
Kd_Pembelian
NOT NULL
Tgl_Pengiriman
Tgl_Pengiriman
NOT NULL
Karyawan
Nm_Karyawan
NOT NULL
Primary Key ID_Pengiriman Foreign Key Kd_Penjualan References Ms_Pengiriman ( Kd_Penjualan ) ON UPDATE CASCADE ON DELETE NO ACTION
117
Foreign
Key ID_Karyawan
References Ms_Karyawan
(
ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE Foreign
Key
Kd_Pembelian
References
TrPembelian
(
Kd_Pembelian ) ON UPDATE CASCADE ON DELETE NO ACTION );
3.
TrPembelian Domain Kd_Pembelian
Fixed length character string, length 5
Domain ID_Karyawan
Fixed length character string, length 5
Domain Tgl_PembelianDate TrPembelian ( Kd_Pembelian
Kd_Pembelian
NOT NULL
ID_Karyawan
ID_Karyawan
NOT NULL
Date
Date
NOT NULL
Primary Key Kd_Pembelian Foreign
Key ID_Karyawan
References Ms_Karyawan
(
ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE );
4.
Ms_Barang Domain Kd_Barang Fixed length character string, length 5 Domain Nm_Barang Fixed length Variable character string, length 20
118
Domain Jenis_Barang Fixed length Variable character string, length 10 Domain Definisi
Fixed length Variable character string, length 200
Ms_Barang ( Kd_Barang
Kd_Barang
NOT NULL
Nm_Barang
Nm_Barang
NOT NULL
Jenis_Barang
Jenis_Barang
NOT NULL
Definisi
Definisi
NOT NULL
Primary Key Kd_Barang );
5. TrHeaderPemesanan Domain Kd_Pemesanan
Fixed length character string, length 5
Domain ID_Pelanggan
Fixed length character string, length 5
Domain ID_Karyawan
Fixed length character string, length 5
Domain Tgl_Pemesanan
Date
TrHeaderPemesanan ( Kd_Pemesanan
Kd_Pemesanan
NOT NULL
ID_Pelanggan
ID_Pelanggan
NOT NULL
ID_Karyawan
ID_Karyawan
NOT NULL
Tgl_Pemesanan
Tgl_Pemesanan
NOT NULL
Primary Key Kd_Pemesanan
119
Foreign
Key ID_Karyawan
References Ms_Karyawan
(
ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE Foreign
Key
ID_PelangganReferences
Ms_Pelanggan
(
ID_Pelanggan ) ON UPDATE CASCADE ON DELETE CASCADE );
6. TrDetailPemesanan Domain Kd_Pemesanan
Fixed length character string, length 5
Domain Ket
Fixed
length Variable character
string, length 50 TrDetailPemesanan ( Kd_Pemesanan
Kd_Pemesanan
NOT NULL
Ket
Ket
NOT NULL
Primary Key Kd_Pemesanan Foreign Key Kd_Pemesanan References TrHeaderPemesanan ( Kd_Pemesanan ) ON UPDATE CASCADE ON DELETE NO ACTION );
7. Ms_Jasa Domain ID_Jasa
Fixed length character string, length 5
120
Domain Jenis_Jasa
Fixed length Variable character string, length 20
Domain Paket
Fixed length Variable character string, length 20
Ms_Jasa ( ID_Jasa
ID_Jasa
NOT NULL
Jenis_Jasa
Jenis_Jasa
NOT NULL
Paket
Paket
NOT NULL
Primary Key ID_Jasa ); 8. Ms_Pelanggan Domain ID_Pelanggan
Fixed length character string, length 5
Domain Kd_Daftar
Fixed length character string, length 5
Domain Kd_Promosi
Fixed length character string, length 5
Domain Nm_Perusahaan
Fixed length Variable character string, length 50
Domain Alm_Perusahaan Fixed length Variable character string, length 100 Domain Email
Fixed
length
Variable
character
string, length 40 Ms_Pelanggan ( ID_Pelanggan
ID_Pelanggan
NOT NULL
Kd_Daftar
Kd_Daftar
NOT NULL
Kd_Promosi
Kd_Promosi
NOT NULL
121
Nm_Perusahaan
Nm_Perusahaan
NOT NULL
Alm_Perusahaan
Alm_Perusahaan
NOT NULL
Email
Email
NOT NULL
Primary Key ID_Pelanggan Foreign
Key
Kd_Promosi
References
Ms_Promosi
(
Kd_Promosi ) ON UPDATE CASCADE ON DELETE CASCADE Foreign
Key
Kd_Daftar
References
DaftarPelanggan
(
Kd_Daftar ) ON UPDATE CASCADE ON DELETE NO ACTION );
9. TrHeaderPenjualan Domain Kd_Penjualan
Fixed length character string, length 5
Domain Kd_Pemesanan
Fixed length character string, length 5
Domain ID_Karyawan
Fixed length character string, length 5
Domain Tgl_Penjualan
Date
TrHeaderPenjualan ( Kd_Penjualan
Kd_Penjualan
NOT NULL
Kd_Pemesanan
Kd_Pemesanan
NOT NULL
ID_Karyawan
ID_Karyawan
NOT NULL
122
Tgl_Penjualan
Tgl_Penjualan
NOT NULL
Primary Key Kd_Penjualan Foreign
Key Kd_Pemesanan
References TrPemesanan
(
TrPemesanan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key ID_Karyawan
References Ms_Karyawan
(
ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE );
10. TrDetailPenjualan Domain Kd_Penjualan
Fixed
length
character
string,
length 5 Domain Diskon
Numeric
TrDetailPenjualan ( Kd_Penjualan
Kd_Penjualan
NOT NULL
Diskon
Diskon
NOT NULL
) Primary Key Kd_Penjualan Foreign Key Kd_Penjualan References TrHeaderPenjualan ( KdPenjualan ) ON UPDATE CASCADE ON DELETE NO ACTION );
123
11. Ms_Promosi Domain Kd_Promosi
Fixed length character string, length 5
Domain ID_Karyawan
Fixed length character string, length 5
Domain Tgl_Promosi
Date
Ms_Promosi ( Kd_Promosi
Kd_Promosi
NOT NULL
ID_Karyawan
ID_Karyawan
NOT NULL
Tgl_Promosi
Tgl_Promosi
NOT NULL
Primary Key Kd_Promosi Foreign
Key ID_Karyawan
References Ms_Karyawan
(
ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE );
12. Jenis_Promosi Domain Barang
Fixed length Variable character string, length 50
Domain Paket
Fixed length Variable character string, length 50
Domain Kd_Promosi Fixed length character string, length 5 Jenis_Promosi ( Barang
Barang
NOT NULL
124
Paket
Paket
NOT NULL
Kd_Promosi
Kd_Promosi
NOT NULL
Primary Key Kd_Promosi Foreign
Key
Kd_Promosi
References
Ms_Promosi
(
Kd_Promosi ) ON UPDATE CASCADE ON DELETE CASCADE );
13. TelpPerusahaan Domain Telp_Perusahaan
Fixed length Variable character string, length 12
Domain ID_Pelanggan
Fixed length character string, length 5
TelpPerusahaan ( Telp_Perusahaan
Telp_Perusahaan
NOT NULL
ID_Pelanggan
ID_Pelanggan
NOT NULL)
Primary_Key Telp_Perusahaan Foreign
Key ID_Pelanggan References Ms_Pelanggan
ID_Pelanggan ) ON UPDATE CASCADE ON DELETE NO ACTION );
14. DetailLoginP ID_Pelanggan
Fixed length character string, length 5
(
125
Username
Fixed length character string, length 15
Password
Fixed length character string, length 10
DetailLoginP ( Username
Username
NOT NULL
Password
Password
NOT NULL
ID_Pelanggan
ID_Pelanggan
NOT NULL
Primary Key ID_Pelanggan Foreign
Key ID_Pelanggan References Ms_Pelanggan
(
ID_Pelanggan ) ON UPDATE CASCADE ON DELETE NO ACTION );
15. JawabanQ&A Domain ID_Q&A
Fixed length character string, length 5
Domain Jawaban_Pelanggan Fixed
length Variable character
string, length 200 JawabanQ&A( ID_Q&A
ID_Q&A
NOT NULL
Jawaban_Pelanggan
Jawaban_Pelanggan
NOT NULL
Primary Key ID_Q&A Foreign Key ID_Q&A References FAQ ( ID_Q&A ) ON UPDATE NO ACTION ON DELETE CASCADE );
126
16. Q&A Domain ID_Q&A
Fixed length character string, length 5
Domain ID_Pelanggan
Fixed length character string, length 5
Domain ID_Karyawan
Fixed length character string, length 5
Domain Tanya_Q&A
Fixed
length
Variable
character string, length 200 Q&A ( ID_Q&A
ID_Q&A
NOT NULL
ID_Pelanggan
ID_Pelanggan
NOT NULL
ID_Karyawan
ID_Karyawan
NOT NULL
Tanya_Q&A
Tanya_Q&A
NOT NULL
Primary Key ID_Q&A Foreign
Key ID_Pelanggan References Ms_Pelanggan
(
ID_Pelanggan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key ID_Karyawan
References Ms_Karyawan
ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE );
(
127
17. TelpKaryawan Domain Telp_Karyawan
Fixed
length Variable character
string, length 12 Domain ID_Karyawan
Fixed length character string, length 5
TelpKaryawan ( Telp_Karyawan
Telp_Karyawan
NOT NULL
ID_Karyawan
ID_Karyawan
NOT NULL
Primary Key Telp_Karyawan Foreign
Key ID_Karyawan
References Ms_Karyawan
(
ID_Karyawan ) );
18. Ms_Karyawan Domain ID_Karyawan
Fixed length character string, length 5
Domain Nama
Fixed
length Variable character
string, length 20 Domain Alamat
Fixed
length Variable character
string, length 100 Domain Jabatan
Fixed
length Variable character
string, length 10 Ms_Karyawan ( ID_Karyawan
ID_Karyawan
NOT NULL
128
Nama
Nm_Karyawan
NOT NULL
Alamat
Alm_Karyawan
NOT NULL
Jabatan
Jabatan
NOT NULL
Primary Key ID_Karyawan ); 19. DetailPemesananBarang Domain Kd_Pemesanan
Fixed length character string, length 5
Domain Kd_Barang
Fixed length character string, length 5
Domain Tgl_Pemesanan
Date
DetailPemesananBarang ( Kd_Pemesanan
Kd_Pemesanan
NOT NULL
Kd_Barang
Kd_Barang
NOT NULL
Tgl_Pemesanan
Tgl_Pemesanan
NOT NULL
Primary Key Kd_Pemesanan, Kd_Barang Foreign Key Kd_Pemesanan References TrHeaderPemesanan ( Kd_Pemesanan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Barang References Ms_Barang ( Kd_Barang ) ON UPDATE CASCADE ON DELETE CASCADE );
20. DetailLoginK Username
Fixed length character string, length 15
129
Password
Fixed length character string, length 10
ID_Karyawan
Fixed length character string, length 5
DetailLoginK ( Kd_DetailLoginK
Kd_DetailLoginK
NOT NULL
Username
Username
NOT NULL
Password
Password
NOT NULL
ID_Karyawan
ID_Karyawan
NOT NULL
Primary Key ID_Karyawan Foreign
Key ID_Karyawan
References Ms_Karyawan
(
ID_Karyawan ) ON UPDATE CASCADE ON DELETE CASCADE );
21. DetailPemesananJasa Domain Kd_Pemesanan
Fixed length character string, length 5
Domain ID_Jasa
Fixed length character string, length 5
Domain Tgl_Pemesanan
Date
DetailPemesananJasa ( Kd_Pemesanan
Kd_Pemesanan
NOT NULL
ID_Jasa
ID_Jasa
NOT NULL
Tgl_Pemesanan
Tgl_Pemesanan
NOT NULL
Primary Key Kd_Pemesanan, ID_Jasa
130
Foreign Key Kd_Pemesanan References TrHeaderPemesanan ( Kd_Pemesanan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key ID_Jasa References M s_Jasa ( ID_Jasa ) ON UPDATE CASCADE ON DELETE CASCADE );
22. DetailPembelianBarang Domain Kd_Pembelian
Fixed length character string, length 5
Domain Kd_Barang
Fixed length character string, length 5
DetailPembelianBarang ( Kd_Pembelian
Kd_Pembelian
NOT NULL
Kd_Barang
Kd_Barang
NOT NULL
Primary Key Kd_Pembelian, Kd_Barang Foreign
Key
Kd_Pembelian
References
TrPembelian
Kd_Pembelian ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Barang References Ms_Barang ( Kd_Barang ) ON UPDATE CASCADE ON DELETE CASCADE );
(
131
23. DetailBarang Domain Tgl_M asuk
Date
Domain Tgl_Keluar
Date
Domain StokBarang
Int
Domain Kd_Barang
Fixed length character string, length 5
DetailBarang ( Tgl_M asuk
Tgl_M asuk
NOT NULL
Tgl_Keluar
Tgl_Keluar
NOT NULL
StokBarang
StokBarang
NOT NULL
Kd_Barang
Kd_Barang
NOT NULL
Primary Key Kd_Barang Foreign Key Kd_Barang References Ms_Barang ( Kd_Barang ) ON UPDATE CASCADE ON DELETE CASCADE );
24. Ms_Pemeliharaan Domain Kd_Pemeliharaan
Fixed length character string, length 5
Domain Tgl_Pemeliharaan
Date
Ms_Pemeliharaan ( _Pemeliharaan
Kd_Pemeliharaan
NOT NULL
Tgl_Pemeliharaan Tgl_Pemeliharaan
NOT NULL
Primary Key Kd_Pemeliharaan );
132
4.4.2.2 Merepresentasi Desain dari Data yang Diturunkan Tujuan
dari
langkah
ini
untuk
menentukan
bagaimana merepresentasikan beberapa data yang diturunkan kemudian data tersebut digunakan dalam model data logikal global pada target DBM S, namun tidak ditemukan data yang dapat diturunkan.
4.4.2.3 Mendesain enterprise constraints Tujuan dari langkah ini untuk mendesain enterprise constraints untuk target DBM S. Beberapa constraints yang ada sebagai berikut : a) Tgl_Pemesanan tidak boleh lebih besar dari T gl_Penjualan CONSTRAINT “Tgl_Pemesanan Error” CHECK ( NOT EXIS T( S ELECT Kd_Penjualan FROM TrHeaderPenjualan WHERE
Tgl_Pemesanan
Tgl_Penjualan)) b) Definisi tidak boleh kosong CONSTRAINT “Definisi must be filled” CHECK ( NOT EXIS T( S ELECT Kd_Barang FROM M s_Barang WHERE Definisi == “”))
>
133
c) Tgl_M asuk barang harus lebih kecil dari Tgl_Keluar barang CONSTRAINT “Tgl_Keluar invalid ” CHECK ( NOT EXIS T( S ELECT Kd_Detailbarang FROM Detailbarang WHERE Tgl_M asuk < Tgl_Keluar))
4.4.2.4 Mendesain Representasi Fisikal Tujuan dari langkah ini adalah memaksimalkan kinerja organisasi file untuk di simpan pada base relation dan index yang dibutuhkan agar performanya diterima dengan baik. M engetahui penting nya kumpulan sistem maka perlunya peningkatan performa, data base fisikal harus mengetahuin 4 dasar perangkat keras yang berinteraksi dan mempengaruhi performa sistem, antara lain sebagai berikut : 1.
Main Memory
2.
CPU
3.
Disk I/O
4.
Network
Beberapa langkah yang menjelaskan adalah sebagai berikut
134
4.4.2.4.1 Menganalisa Transaksi Tabel 4.7 Analisa Transaksi
R
I
U
D
Jenis_Promosi
X
X
X
X
A
Ms_Promosi
X
X
X
X
B
DaftarPelanggan
X
X
X
C
TelpPerusahaan
X
X
X
D
DetailLoginP
X
X
X
E
JawabanQ&A
X
X
X
F
Q&A
X
X
X
G
Ms_Pelanggan
X
X
X
H
TelpKaryawan
X
Ms_karyawan
X
TrPembelian
X
K
DetailPemesananBarang
X
L
DetailLoginK
X
Ms_Pengiriman
X
N
Ms_Pemeliharaan
X
O
Ms_Jasa
X
DetailPemesananJasa
X
Q
DetailPembelianBarang
X
R
DetailBarang
X
S
Transaksi
Ket
I X
X
X
X
J
X
X
M
X
P
135
MsBarang
X
TrHeaderPemesanan
X
TrDetailPemesanan
X
TrheaderPenjualan
X
TrDetailPenjualan
X
X
X
X
T U
X
X
V W
X
X
X
Keterangan : A. M enampung, menghapus, menampilkan dan mengubah data Jenis_Promosi B. M enampung, menghapus, menampilkan dan mengubah data Ms_Promosi C. M enampung, menampilkan dan mengubah data DaftarPelanggan D. M enampung, menampilkan dan mengubah data TelpPerusahaan E. M enampung, menampilkan dan mengubah data DetailLoginP F.
M enampung, menampilkan dan mengubah data JawabanQ&A
G. M enampung, menampilkan dan mengubah data Q&A H. M enampung, menampilkan dan mengubah data Ms_Pelanggan I.
M enampilkan data Telp_Karyawan
136
J.
M enampung, menampilkan dan mengubah data Ms_Karyawan
K. M enampilkan data TrPembelian L. M enampilkan data DetailPemesananBarang M . M enampung, menampilkan dan mengubah data DetailLoginK N. M enampilkan data M s_Pengiriman O. M enampilkan data M s_Pemeliharaan P.
M enampung, menghapus, menampilkan dan mengubah data Ms_Jasa
Q. M enampilkan data DetailPemesananJasa R. M enampilkan data DetailPembelianBarang S.
M enampilkan data DetailBarang
T. M enampung, menghapus, menampilkan dan mengubah data Ms_Barang U. M enampilkan data TrheaderPemesanan V. M enampung, menampilkan dan mengubah data TrDetailPemesanan W. M enampilkan data TrHeaderPenjualan X. M enampung, menampilkan dan mengubah data TrDetailPenjualan
137
4.4.2.4.2 Mendesain User View Tujuan pada tahap merancang user view adalah
untuk
merancang
user
view
yang
diidentifikasi selama tahap pengumpulan kebutuhan dan
analisis
dari
siklus
hidup
basis
data.
Rancangan user view untuk basis data ini adalah sebagai berikut : a) Untuk Menampilkan Promosi yang di tawarkan Create View ViewPromosi as Select mp.Kd_Promosi, mk.ID_Karyawan, mp.Tgl_Promosi, jp.Barang, jp.Paket, mp.Tgl_Promosi From Ms_Promosi mp, Ms_Karyawan mk, Jenis_Promosi jp Where mk.ID_Karyawan = mp.ID_Karyawan Mp.Kd_Promosi = jp.Kd_Promosi b) Untuk Menampilkan Data Pelanggan Create View ViewPelanggan as Select dp.Tgl_Daftar, dp.Kd_Daftar, ml.ID_Pelanggan, ml.Nm_Perusahaan as “Nama Perusahaan”, ml.Alm_Perusahaan as “Alamat Perusahaan”, ml.Email, tp.Telp_Perusahaan, dl.Username, dl.Password From
DaftarPelanggan
dp,
Ms_Pelanggan
TelpPerusahaan tp, DetailLoginP dl Where mp.ID_Pelanggan = dl.ID_Pelanggan
ml,
138
mp.ID_Pelanggan = tp.ID_Pelanggan dp.Kd_Daftar = mp.Kd_Daftar c) Untuk Menampilkan data Karyawan Create View ViewKaryawan as Select mk.ID_Karyawan, mk.Nm_Karyawan as “Nama Karyawan”, mk. Jabatan, mk.Alamat,
dk.Username,
dk.Password,
tk.Telp_Karyawan From M s_Karyawan mk, DetailLoginK dk, TelpKaryawan tk Where mk.ID_Karyawan = dk.ID_Karyawan mk.ID_Karyawan = tk.ID_Karyawan d) Untuk
Menampilkan
Pemesanan
Barang
yang
dilakukan Create View ViewPemesanan as Select th.Kd_Pemesanan, th.ID_Pelanggan,
th.ID_Karyawan,
th.Tgl_Pemesanan,
td.Ket, db.Kd_Barang, dj.ID_Jasa From TrHeaderPemesanan th, TrDetailPemesanan td, DetailPemesananBarang db, DetailPemesananJasa dj Where th.Kd_Pemesanan = td.Kd_Pemesanan th.Kd_Pemesanan = db.Kd_Pemesanan th.Kd_Pemesanan = dj.Kd_Pemesanan
139
e) Untuk Menampilkan Persediaan Barang Create View ViewPersediaan as Select mb.Kd_barang, mb.Nm_Barang as “Nama Barang”, mb.Jenis_Barang, mb.definisi,
db.T gl_M asuk,
db.Tgl_Keluar,
db.Stok_Barang From Ms_Barang mb, Detail_Barang db Where mb.Kd_Barang = db.Kd_Barang
4.4.2.4.3 Memilih Indeks Tujuan dari langkah ini adalah menentukan apakah penambahan indeks menunjang performa sistem. Indeks-indeks yang akan digunakan adalah : Tabel 4.8 Indeks Tabel
Indeks
Nama Indeks
DaftarPelanggan
Kd_Daftar ( Primary )
idxKd_Daftar
Tgl_Daftar ( Secondary )
idxT gl_Daftar
ID_Pengiriman ( Primary )
idxID_Pengiriman
Tgl_Pengiriman ( Secondary )
idxT gl_Pengiriman
Kd_Pembelian ( Primary )
idxKd_Pembelian
Tgl_Pembelian ( Secondary )
idxT gl_Pembelian
Kd_Barang ( Primary )
idxKd_Barang
Nm_Barang ( Secondary )
idxNm_Barang
Kd_Pemesanan ( Primary )
idxKd_Pemesanan
Ms_Pengiriman
TrPembelian
Ms_Barang
TrHeaderPemesanan
140
Tgl_Pemesanan ( Secondary )
idxT gl_Pemesanan
TrDetailPemesanan
Kd_Pemesanan
idxKd_Pemesanan
Ms_Jasa
ID_Jasa ( Primary )
idxID_Jasa
Jenis_Jasa ( Secondary )
idxJenis_Jasa
ID_Pelanggan ( Primary )
idxID_Pelanggan
Nm_Perusahaan ( Secondary )
idxNm_perusahaan
Kd_Penjualan ( Primary )
idxKd_Penjualan
Tgl_Penjualan ( Secondary )
idxT gl_Penjualan
TrDetailPenjualan
Kd_Penjualan
idxKd_DetailPenjualan
Ms_Promosi
Kd_Promosi ( Primary )
idxKd_Promosi
Tgl_Promosi ( Secondary )
idxT gl_Promosi
Jenis_Promosi
Kd_Jenis
idxKd_jenis
TelpPerusahaan
Telp_Perusahaan
idxTelp_Perusahaan
DetailLoginP
Kd_DetailLoginP
idxKd_DetailLoginP
JawabanQ&A
ID_Q&A
idxID_Q&A
Q&A
ID_Q&A
idxID_Q&A
TelpKaryawan
Telp_Karyawan
idxTelp_Karyawan
Ms_karyawan
ID_Karyawan ( Primary )
idxID_Karyawan
Nm_Karyawan ( Secondary )
idxNm_Karyawan
Kd_Barang, KdPemesanan (
idxPemesananBarang
Ms_Pelanggan
TrHeaderPenjualan
DetailPemesananBarang
Primary ) DetailLoginK
Kd_DetailLoginK
idxKd_DetailLoginK
DetailPemesananJasa
Kd_Pemesanan, ID_Jasa (
idxPemesananJasa
141
Primary ) DetailPembelianBarang
Kd_Pembelian, Kd_Barang (
idxPembelianBarang
Primary ) DetailBarang
Kd_DetailBarang ( Primary )
IdxDetailBarang
a) Daftar Pelanggan CREATE UN IQUE INDEX idxKd_Daftar ON DaftarPelanggan ( Kd_Daftar ); CREATE IND EX idxT gl_Daftar ON DaftarPelanggan ( Tgl_Daftar ) CLUS TER; b) Ms_Pengiriman CREATE UNIQUE INDEX idxKd_Pengiriman ON Ms_Pengiriman ( Kd_Pengiriman ); CREATE
IND EX
idxT gl_Pengiriman
ON
M s_Pengiriman
(
Tgl_Pengiriman ) C LUS TER; c)
TrPembelian CREATE UNIQUE INDEX idxKd_Pembelian ON TrPembelian ( Kd_Pembelian ); CREATE IND EX T gl_Pembelian ON TrPembelian ( Tgl_Pembelian ) CLUS TER;
142
d) Ms_Barang CREATE UNIQUE IND EX idxKd_Barang ON Ms_Barang ( Kd_Barang ); CREATE INDEX Nm_Barang ON M s_Barang ( Nm_Barang ) CLUS TER; e) TrHeaderPemesanan CREATE UNIQUE IND EX idxKd_Pemesanan ON TrHeaderPemesanan ( Kd_Pemesanan ); CREATE
INDEX
T gl_Pemesanan
ON
TrHeaderPemesanan
(
Tgl_Pemesanan ) CLUS TER; f)
TrDetailPemesanan CREATE UNIQUE INDEX idxKd_PemesananON DaftarPelanggan ( Kd_Daftar );
g) Ms_Jasa CREATE UNIQUE INDEX idxID_Jasa ON M s_Jasa ( ID_Jasa ); CREATE INDEX Jenis_Jasa ON M s_Jasa ( Jenis_Jasa ) CLUS TER; h) Ms_Pelanggan CREATE UNIQUE INDEX idxID_Pelanggan ON M s_Pelanggan ( ID_Pelanggan ); CREATE INDEX Nm_Perusahaan ON M s_Pelanggan ( Nm_Perusahaan ) CLUS TER;\ i)
TrHeaderPenjualan CREATE UN IQUE INDEX idxKd_Penjualan ON TrHeaderPenjualan (Kd_Penjualan );
143
CREATE INDEX T gl_Penjualan ON TrHeaderPenjualan (Tgl_Penjualan) CLUS TER; j)
TrDetailPenjualan CREATE UN IQUE IND EX idxKd_Penjualan ON TrDetailPenjualan ( Kd_Penjualan );
k) Ms_Promosi CREATE UNIQUE IND EX idxKd_Promosi ON M s_Promosi ( Kd_Promosi ); CREATE INDEX Tgl_Promosi ON Ms_Promosi ( Tgl_Promosi ) CLUS TER; l)
Jenis_Promosi CREATE UNIQUE INDEX idxKd_Jenis ON Jenis_Promosi ( Kd_Jenis )
m) TelpPerusahaan CREATE UNIQUE INDEX idxTelp_Perusahaan ON TelpPerusahaan ( Telp_Perusahaan ) n) DetailLoginP CREATE UN IQUE INDEX idxKd_DetailLoginP ON DetailLoginP ( Kd_DetailLoginP ); o) Jawaban_Q&A CREATE UN IQUE INDEX idxID_Q&A ON Jawaban_Q&A ( ID_Q&A ); p) Q&A CREATE UNIQUE INDEX idxID_Q&A ON Q&A ( ID_Q&A );
144
q) TelpKaryawan CREATE UNIQUE IND EX idxTelp_Karyawan ON TelpKaryawan ( Telp_Karyawan ); r)
Ms_Karyawan CREATE UN IQUE INDEX idxID_Karyawan ON Ms_Karyawan ( ID_Karyawan ); CREATE INDEX idxNm_Karyawan ON Ms_Karyawan ( Nm_Karyawan ) CLUS TER;
s)
DetailPemesananBarang CREATE
UN IQUE
IND EX
idxKd_Pemesanan
ON
DetailPemesananBarang ( Kd_Pemesanan ); CREATE UNIQUE INDEX idxKd_Barang ON DetailPemesananBarang ( Kd_Barang ); t)
DetailLoginK CREATE UNIQUE INDEX idxKd_DetailLoginK ON DetailLoginK ( Kd_DetailLoginK );
u) DetailPemesananJasa CREATE UNIQUE INDEX idxKd_Pemesanan ON DetailPemesananJasa ( Kd_Pemesanan ); CREATE UNIQUE INDEX idxID_Jasa ON DetailPemesananJasa ( ID_Jasa ); v)
DetailPembelianBarang CREATE
UN IQUE
INDEX
DetailPembelianBarang ( Kd_Pembelian );
idxKd_Pembelian
ON
145
CREATE UNIQUE INDEX idxKd_Barang ON DetailPembelianBarang ( Kd_Barang ); w) DetailBarang CREATE UNIQUE IND EX idxKd_DetailBarang ON DetailBarang ( Kd_DetailBarang ); 4.4.2.4.4 Estimasi Kebutuhan Ruang Penyimpanan Tujuan dari estimasi disk space adalah untuk menghitung kapasitas penyimpanan yang dibutuhkan sistem basis data. 1.
DaftarPelanggan Atribut
Tipe Data
Ukuran
KdDaftar
Char
5
Tgl_Daftar
Date
10
Kapasitas atribut Perekayasa adalah 15 Diperkirakan 1 bulan terjadi 20 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 20*12*15 = 3600 bytes Tabel 4.9 Tabel Estimasi Daftar Pelanggan
2.
Ms_Pengiriman Atribut
Tipe Data
Ukuran
ID_Pengiriman
Char
5
Kd_Penjualan
Char
5
146
ID_Karyawan
Char
5
Kd_Pembelian
Char
5
Tgl_Pengiriman
Date
10
Karyawan
Varchar
20
Kapasitas atribut Perekayasa adalah 50 Diperkirakan 1 bulan terjadi 5 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 5*12*50 = 3000 bytes Tabel 4.10 Tabel Estimasi Ms_Pengiriman
3.
TrPembelian Atribut
Tipe Data
Ukuran
Kd_Pembelian
Char
5
ID_Karyawan
Char
5
Tgl_Pembelian
Date
10
Kapasitas atribut Perekayasa adalah 20 Diperkirakan 1 bulan terjadi 5 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 5*12*20 = 1200 bytes
Tabel 4.11 Tabel Estimasi TrPembelian
147
4.
Ms_Barang Atribut
Tipe Data
Ukuran
Kd_Barang
Char
5
Nm_Barang
Varchar
20
Jenis_Barang
Varchar
10
Definisi
Varchar
200
Kapasitas atribut Perekayasa adalah 235 Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 235*12*10 = 28200 bytes Tabel 4.12 Tabel Estimasi Ms_Barang
148
5.
TrHeaderPemesanan Atribut
Tipe Data
Ukuran
Kd_Pemesanan
Char
5
ID_Pelanggan
Char
5
ID_Karyawan
Char
5
Tgl_Pemesanan
Date
10
Kapasitas atribut Perekayasa adalah 25 Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 25*12*10 = 3000 bytes
Tabel 4.13 Tabel Estimasi TrHeaderPemesanan
6.
TrDetailPemesanan Atribut
Tipe Data
Ukuran
Kd_DetailPemesanan
Char
5
Kd_Pemesanan
Char
5
Ket
Varchar
50
7 Kapasitas atribut Perekayasa adalah 60 . Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 10*12*60 = 7200 bytes
Tabel 4.14 Tabel TrDetailPemesanan
149
7. Ms_Jasa Atribut
Tipe Data
Ukuran
ID_Jasa
Char
5
Jenis_Jasa
Varchar
20
Paket
Varchar
20
Kapasitas atribut Perekayasa adalah 45 Diperkirakan 1 bulan terjadi 8 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 8*12*45 = 4320 bytes
Tabel 4.15 Tabel Estimasi Ms_Jasa
8.
Ms_Pelanggan Atribut
Tipe Data
Ukuran
ID_Pelanggan
Char
5
Kd_Daftar
Char
5
Kd_Promosi
Char
5
Username
Char
15
Password
Char
10
Nm_Perusahaan
Varchar
50
Alm_Perusahaan
Varchar
100
Email
Varchar
40
Kapasitas atribut Perekayasa adalah 230
150
Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 230*12*10 = 27600 bytes
Tabel 4.16 Tabel Estimasi Ms_Pelanggan
9.
TrHeaderPenjualan Atribut
Tipe Data
Ukuran
Kd_Penjualan
Char
5
Kd_Pemesanan
Char
5
ID_Karyawan
Char
5
Tgl_Penjualan
Date
10
Kapasitas atribut Perekayasa adalah 25 Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 25*12*10 = 3000 bytes
Tabel 4.17 Tabel TrHeaderPenjualan
151
10. TrDetailPenjualan Atribut
Tipe Data
Ukuran
Kd_Penjualan
Char
5
Diskon
Numeric
5
11.Kapasitas atribut Perekayasa adalah 15 12.Diperkirakan 1 bulan terjadi 8 transaksi 13.Dalam 1 tahun pertumbuhan tabel ini adalah 15*12*8 = 1440 bytes 14. Tabel 4.18 Tabel TrDetailPenjualan
11. Ms_Promosi Atribut
Tipe Data
Ukuran
Kd_Promosi
Char
5
ID_Karyawan
Char
5
Barang
Varchar
50
Paket
Varchar
50
Tgl_Promosi
Date
10
Kapasitas atribut Perekayasa adalah 120 Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 120*12*10 = 14400 bytes
Tabel 4.19 Tabel Estimasi Ms_Promosi
152
12. Jenis_Promosi Atribut Kd_Jenis
Tipe Data Char
Barang Varchar 1 Paket Varchar 3 Kd_Promosi Char . Kapasitas atribut Perekayasa adalah 110
Ukuran 5 50 50 5
Diperkirakan 1 bulan terjadi 10 transaksi T Dalam 1 tahun pertumbuhan tabel ini adalah 110*12*10 = e 13200 bytes l Tabel 4.20 Tabel Jenis_Promosi
13. Telp_Perusahaan Atribut
Tipe Data
Ukuran
Telp_Perusahaan
Varchar
12
ID_Pelanggan
Char
5
Kapasitas atribut Perekayasa adalah 17 Diperkirakan 1 bulan terjadi 4 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 17*12*4 = 816 bytes
Tabel 4.21 Tabel Estimasi Telp_Perusahaan
153
14. DetailLoginP Atribut
Tipe Data
Ukuran
Kd_DetailLoginP
Char
5
ID_Pelanggan
Char
5
Username
Char
15
Password
Char
10
Kapasitas atribut Perekayasa adalah 35 Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 35*12*10 = 4200 bytes J Tabel 4.22 Tabel Estimasi DetailLoginP
15. JawabanQ&A Atribut
Tipe Data
Ukuran
Kd_Jawab
Char
5
ID_Q&A
Char
5
Jawaban_Pelanggan
Varchar
200
Kapasitas atribut Perekayasa adalah 210 Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 210*12*10 = 25200 bytes
Tabel 4.23 Tabel Estimasi Jawaban Q&A
154
16. Q&A
Atribut
Tipe Data
Ukuran
ID_Q&A
Char
5
ID_Pelanggan
Char
5
ID_Karyawan
Char
5
Tanya_Q&A
Varchar
200
Kapasitas atribut Perekayasa adalah 215 Diperkirakan 1 bulan terjadi 20 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 215*12*20 = 51600 bytes Tabel 4.24 Tabel Estimasi Q&A
17. TelpKaryawan Atribut
Tipe Data
Ukuran
Telp_Karyawan
Varchar
12
ID_Karyawan
Char
5
Kapasitas atribut Perekayasa adalah 17 Diperkirakan 1 bulan terjadi 4 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 17*12*4 = 816 bytes
Tabel 4.25 Tabel Estimasi TelpKaryawan
155
18. Ms_Karyawan Atribut
Tipe Data
Ukuran
ID_Karyawan
Char
5
Nama
Varchar
20
Alamat
Varchar
100
Jabatan
Varchar
10
Kapasitas atribut Perekayasa adalah 135 Diperkirakan 1 bulan terjadi 5 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 135*12*5 = 8100 bytes
Tabel 4.26 Tabel Ms_Karyawan
19. DetailPemesananBarang Atribut
Tipe Data
Ukuran
Kd_Pemesanan
Char
5
Kd_Barang
Char
5
Tgl_Pemesanan
Date
10
Kapasitas atribut Perekayasa adalah 20 Diperkirakan 1 bulan terjadi 15 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 20*12*15 = 3600 bytes
Tabel 4.27 Tabel Estimasi DetailPemesananBarang
156
20. DetailLoginK Atribut
Tipe Data
Ukuran
Kd_DetailLoginK
Char
5
Username
Char
15
Password
Char
10
ID_Karyawan
Char
5
Kapasitas atribut Perekayasa adalah 35 Diperkirakan 1 bulan terjadi 15 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 35*12*15 = 6300 bytes
Tabel 4.28 Tabel DetailLoginK
21. DetailPemesananJasa Atribut
Tipe Data
Ukuran
Kd_Pemesanan
Char
5
ID_Jasa
Char
5
Tgl_Pemesanan
Date
10
Kapasitas atribut Perekayasa adalah 20 Diperkirakan 1 bulan terjadi 15 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 20*12*15 = 3600 bytes
Tabel 4.29 Tabel DetailPemesananJasa
157
22. DetailPembelianBarang Atribut
Tipe Data
Ukuran
Kd_Pembelian
Char
5
Kd_Barang
Char
5
Kapasitas atribut Perekayasa adalah 10 Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 10*12*10 = 1200 bytes
Tabel 4.30 Tabel DetailPembelianBarang
23. DetailBarang Atribut
Tipe Data
Ukuran
Kd_DetailBarang
Char
5
Tgl_M asuk
Date
10
Tgl_Keluar
Date
10
StokBarang
Int
5
Kd_Barang
Char
5
Kapasitas atribut Perekayasa adalah 25 Diperkirakan 1 bulan terjadi 10 transaksi Dalam 1 tahun pertumbuhan tabel ini adalah 120*12*10 = 14400 bytes
Tabel 4.31 Tabel DetailBarang
158
Tabel 4.32 Estimasi Penyimpanan dalam 1 tahun Tabel
Estimasi Kapasitas Penyimpanan Yang Dibutuhkan Dalam 1 Tahun (KByte)
DaftarPelanggan
3,600
Ms_Pengiriman
3,000
TrPembelian
1,200
Ms_Barang
32,400
TrHeaderPemesanan
3,000
TrDetailPemesanan
7,200
Ms_Jasa
4,320
Ms_Pelanggan
27,600
TrHeaderPenjualan
3,000
TrDetailPenjualan
1,440
Ms_Promosi
14,400
Jenis_Promosi
13,200
TelpPerusahaan
0,816
DetailLoginP
4,200
JawabanQ&A
25,200
Q&A
51,600
TelpKaryawan
0,816
Ms_karyawan
8,100
DetailPemesananBarang
3,600
DetailLoginK
6,300
159
DetailPemesananJasa
3,600
DetailPembelianBarang
1,200
DetailBarang
14,400
4.4.3
Perancangan Program Aplikasi 4.4.3.1 S trukutur Menu
Gambar 4.9 Rancangan struktur menu
4.4.3.2 State Transition Diagram State Transition Diagram menggambarkan respon objek terhadap
suatu kejadian. Respon tersebut akan
160
melibatkan objek yang berada di state yang sama. Berikut adalah
State Diagram
dari
rancangan
aplikasi pada
perusahaan :
Gambar 4.10 S TD Halaman Home
Gambar 4.11 S TD halaman view report pada admin
161
Gambar 4.12 S TD halaman Q&A pada admin
Gambar 4.13 S TD halaman paket pada admin
162
Gambar 4.14 S TD halaman pemeliharaan pada admin
163
Gambar 4.15 S TD halaman penjualan pada admin
164
Gambar 4.16 S TD halaman pembelian pada admin
Gambar 4.17 S TD halaman paket pada member
165
Gambar 4.18 S TD halaman profil pada member
166
Gambar 4.19 S TD halaman Q&A pada member
167
Gambar 4.20 S TD halaman pemesanan admin
168
4.4.3.3 Perancangan Layar
Gambar 4.21 Perancangan layar pengguna melihat paket
Gambar 4.22 Perancangan Layar admin edit paket
169
Gambar 4.23 Perancangan Layar admin menginsert paket
Gambar 4.24 Perancangan Layar admin update paket
170
Gambar 4.25 Perancangan Layar admin view,edit,delete pembelian
Gambar 4.26 Perancangan Layar admin view,edit,delete laporan pemeliharaan
171
Gambar 4.27 Rancangan Layar admin edit,view,delete laporan pemesanan
Gambar 4.28 Rancangan Layar admin view,edit,delete laporan penjualan
172
Gambar 4.29 Rancangan Layar admin untuk memilih laporan yang ingin dikerjakan
Gambar 4.30 Rancangan Layar admin untuk melihat pertanyaan
173
Gambar 4.31 Rancangan Layar pengguna untuk melihat halaman sekilas tentang perusahaan
Gambar 4.32 Rancangan Layar Pengguna jika melihat pertanyaan dan harus Login dulu.
174
Gambar 4.33 Rancangan layar Pengguna melihat paket tanpa login dulu
Gambar 4.34 Rancangan Layar Pengguna untuk bertanya seputar produk dan harus Login
175
Gambar 4.35 Rancangan Layar Pengguna untuk memasukkan data pribadinya
Gambar 4.36 Rancangan Layar Pengguna tempat bertanya
176
Gambar 4.37 Rancangan Layar Pengguna untuk melihat produk
Gambar 4.38 Rancangan Layar Pengguna untuk melihat profil si pengguna
177
Gambar 4.39 Rancangan Layar Pengguna untuk memasukkan data pribadinya
Gambar 4.40 Rancangan Layar Pengguna untuk melihat profil perusahaan