73 BAB 4 PERANCANGAN DAN IMPLEMENTAS I
4.1
Perancangan Basis Data Perancangan basis data dilakukan sesuai dengan kebutuhan dari PT. Nabatindah Sejahtera. Proses perancangan basis data ini memiliki tiga tahapan, yaitu: 1. Perancangan basis data konseptual 2. Perancangan basis data logikal 3. Perancangan basis data fisikal 4.1.1
Perancangan Basis Data Konseptual Pada tahap ini, perancangan dipusatkan pada proses pembuatan suatu model dari informasi yang akan digunakan oleh perusahaan. Semua hal tersebut terlepas dari segala pertimbangan fisik. Tahapan ini menggunakan langkah-langkah berikut: 1. M engidentifikasi tipe entiti 2. M engidentifikasi tipe relationship 3. M engidentifikasi dan menghubungkan atribut dengan entiti atau tipe relationship 4. M enentukan atribut candidate dan primary key 5. M emvalidasi model konseptual terhadap transaksi user
74 4.1.1.1 Mengidentifikasi tipe entiti Pada tahapan ini tabel identifikasi entiti yang menjadi kebutuhan dari perusahaan setelah melalui proses analisis sistem yang telah berjalan. Table 4.1 Tabel tipe entiti dan detailnya Kejadian
Nama Keterangan
Alias
Entiti Karyawan yang M enjelaskan tentang data Karyawan
Karyawan
bekerja di PT.
karyawan Nabatindah Sejahtera. Setiap perusahaan M enjelaskan tentang yang memberikan pelanggan yang Pelanggan
Konsumen
permintaan proyek ke
menggunakan jasa PT. Nabatindah kontraktor Sejahtera Setiap perusahaan M enjelaskan tentang data Rental
suplier peralatan untuk
penyewaan peralatan Rental
peminjaman
tempat meminjam peralatan berat untuk pengerjaan proyek.
M enjelaskan tentang data Peralatan
peralatan berat yang dipinjam dari rental
Setiap peralatan berat Peralatan
yang dipinjam dari rental yang digunakan
75 untuk pengerjaan proyek.
Setiap barang yang dibeli dari suplier M enjelaskan informasi Barang
Barang
untuk digunakan
data barang dalam pengerjaan proyek. Setiap perusahaan M enjelaskan tentang data Pemasok
Suplier
penyedia material
suplier barang dasar proyek. Setiap proyek yang M enjelaskan tentang data Proyek
Proyek
dikerjakan pada PT.
proyek perusahaan Nabatindah Sejahtera Setiap transaksi M enjelaskan tentang Peminjaman transaksi peminjaman
peminjaman peralatan Peminjaman
peralatan
berat yang dilakukan oleh PT. Nabatindah Sejahtera Setiap transaksi
M enjelaskan tentang Pembelian
pembelian barang yang Pembelian
transaksi pembelian
dilakukan oleh PT. Nabatindah Sejahtera
76 Setiap transaksi penawaran jasa yang
M enjelaskan tentang Penawaran
Penawaran
dilakukan oleh PT.
transaksi penawaran jasa
Nabatindah Sejahtera Setiap transaksi M enjelaskan tentang
pembayaran yang
Pembayaran transaksi pembayaran
Pembayaran
utang oleh pelanggan
dilakukan konsumen kepada PT. Nabatindah Sejahtera.
4.1.1.2 Mengidentifikasi Tipe Relationship Pada tahapan ini ditentukan relasi antar tiap entiti yang telah
diidentifikasi pada tahap
sebelumnya. Tahapan
menggunakan langkah-langkah sebagai berikut: 1. M enentukan multiplicity dari tiap relasi 2. M enggunakan Entity Relationship Diagram (ERD) 4.1.1.2.1
Menentukan Multiplicity Tiap Entiti Tabel 4.2 Tabel relasi tiap entiti
Nama Entiti
Multiplicity
Relasi
Nama Entity
Multiplicity
Suplier
1..1
menerima
Pembelian
1..*
Karyawan
1..1
melakukan
Pembelian
1..*
1..1
menawarkan
Penawaran Jasa
0..*
1..1
melayani
Pembayaran
0..*
ini
77 1..1
melakukan
Peminjaman
0..*
1..1
menangani
Proyek
0..*
1..*
memiliki
Karyawan
1..1
1..1
memiliki
Karyawan
0..1
1..*
menerima
Penawaran
0..1
1..*
melakukan
Pembayaran
1..*
Rental
1..1
menerima
Peminjaman
1..*
Proyek
0..*
ditangani
Karyawan
1..1
Barang
1..*
dihasilkan
Pembelian
1..*
1..*
digunakan
Penawaran
0..*
Konsumen
dalam Peralatan
1..*
dihasilkan
Peminjaman
1..*
1..*
digunakan
Penawaran
0..*
Penawaran
0..*
dalam Jasa
1..*
digunakan dalam
Pembelian
Penawaran
1..*
diterima
Suplier
1..1
1..*
dilakukan
Karyawan
1..1
1..*
menghasilkan
Barang
1..*
0..*
ditawarkan
Karyawan
1..1
0..1
diterima
Konsumen
1..*
0..*
menggunakan
Barang
1..*
0..*
menggunakan
Peralatan
1..*
78
Pembayaran
Peminjaman
0..*
menggunakan
Jasa
1..*
0..*
dilayani
Karyawan
1..1
0..*
dilakukan
Konsumen
1..*
0..*
dilakukan
Karyawan
1..1
1..*
diterima
Rental
1..1
1..*
menghasilkan
Peralatan
1..*
4.1.1.2.2
Menggunakan
ERD
(Entity
Relationship
Diagram) Berikut ini adalah ERD konseptual yang memuat nama entiti, relasi serta multiplicity-nya:
Supp lier
1. .1
dit erim a
1.. *
1.. *
Pembelian
1. .*
m enghasi lkan
Barang
1. .*
1. .* m em iliki M elakukan
mem il iki 1. .1 0.. 1
1. .1
1.. 1
Karyawan
1. .*
1. .1
mel ayani
1. .1 1.. 1 1.. 1
0. .*
Pr oyek
menangani m enawarkan 0. .*
Mel akukan
menerim a
0.. 1
Penawaran 0. .*
1. .*
digunakan dalam
0.. * 0.. *
di gunakan dalam
Ko nsumen
1.. *
1. .*
Jasa
0.. *
Pembayar an
0. . * dilakukan digunakan dalam
0.. * 1. .1
Rental
dit eri ma
1.. *
1.. * 1.. *
Peminjaman
m enghasi lkan
1. .*
Peralatan
Gambar 4.1 Entity Relationship Diagram (ERD) konseptual
79 4.1.1.3 Mengidentifikasi dan Menghubungkan Atribut dengan Entiti atau Tipe Relationship, Domain Atribut, Candidate Key dan Primary Key 4.1.1.3.1 Identifikasi Atribut Tiap Entiti Tabel 4.3 Tabel identifikasi atribut Suplier Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Suplier
KdSuplier
id suplier
char(5)
tidak
tidak
nama_suplier
nama suplier
varchar(20)
tidak
tidak
alamat_suplier
alamat suplier
varchar(30)
tidak
tidak
kota
kota suplier
varchar(20)
tidak
tidak
telp_suplier
telepon suplier
numeric
tidak
ya
Tabel 4.4 Tabel identifikasi atribut Karyawan Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Karyawan
KdKaryawan
id
char(5)
tidak
tidak
karyawan KdJabatan
id jabatan
char(5)
tidak
tidak
Jabatan
nama
varchar(50)
tidak
tidak
varchar(30)
tidak
tidak
varchar(20)
tidak
tidak
jabatan alamat_karyawan
alamat karyawan
kota
kota karyawan
80 telp_karyawan
telepon
numeric
tidak
ya
varchar(20)
tidak
tidak
char(20)
tidak
tidak
varchar(35)
tidak
tidak
karyawan nama_karyawan
nama karyawan
UserID
username karyawan
password
password karyawan
Tabel 4.5 Tabel identifikasi atribut Barang Nama entiti
Atribut
Deskripsi
Tipe data
Barang
KdBarang
id barang
char(5)
tidak
tidak
nama_barang
nama barang
varchar(20)
tidak
tidak
Harga_beli
harga beli
money
tidak
tidak
integer
tidak
tidak
integer
tidak
tidak
Nullable Multivalue
barang stok
persediaan barang
Satuan
satuan barang
Tabel 4.6 Tabel identifikasi atribut Konsumen Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Konsumen
KdKonsumen
id
char(5)
tidak
tidak
81 konsumen nama_konsumen
nama
varchar(30)
tidak
tidak
varchar(30)
tidak
tidak
varchar(20)
tidak
tidak
numeric
tidak
ya
konsumen alamat_konsumen
alamat konsumen
kota
kota konsumen
telp_konsumen
telepon konsumen
Tabel 4.7 Tabel identifikasi atribut Proyek Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Proyek
KdProyek
id proyek
char(5)
tidak
tidak
nama_proyek
nama
varchar(20)
tidak
tidak
varchar(30)
tidak
tidak
proyek Alamat_proyek
alamat proyek
kota
kota proyek
varchar(20)
tidak
tidak
tgl_mulai
Tanggal
datetime
tidak
tidak
datetime
tidak
tidak
mulai proyek tgl_selesai
Tanggal selesai
82 proyek harga_proyek
Nilai proyek
money
tidak
tidak
Tabel 4.8 Tabel identifikasi atribut Rental Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Rental
KdRental
id rental
char(5)
tidak
tidak
nama_rental
nama rental
varchar(20)
tidak
tidak
Alamat_rental
Alamat
varchar(30)
tidak
tidak
rental kota
kota rental
varchar(20)
tidak
tidak
telp_rental
Telepon
numeric
tidak
ya
rental
Tabel 4.9 Tabel identifikasi atribut Pembelian Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Pembelian
KdPembelian
id
char(5)
tidak
tidak
pembelian Kdsuplier
id suplier
char(5)
tidak
tidak
KdBarang
id barang
char(5)
tidak
tidak
KdKaryawan
id karyawan
char(5)
tidak
tidak
qty_barang
jumlah
integer
tidak
tidak
barang yang dibeli
83 hrg_barang
Harga
money
tidak
tidak
datetime
tidak
tidak
barang yang dibeli tgl_pembelian
tanggal pembelian barang
Tabel 4.10 Tabel identifikasi atribut Pembayaran Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Pembayaran
KdPembayaran
id
char(5)
tidak
tidak
money
tidak
tidak
pembayaran jml_pembayaran
Jumlah pembayaran
KdKaryawan
id karyawan
char(5)
tidak
tidak
KdProyek
id proyek
char(5)
tidak
tidak
KdKonsumen
id konsumen
char(5)
tidak
tidak
tgl_pembayaran
Tanggal
datetime
tidak
tidak
datetime
tidak
tidak
pemabayaran tgl_pelunasan
Tanggal pelunasan
Tabel 4.11 Tabel identifikasi atribut Peminjaman Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Peminjaman
KdPeminjaman
id
char(5)
tidak
tidak
84 peminjaman KdPeralatan
id peralatan
char(5)
tidak
tidak
KdRental
id rental
char(5)
tidak
tidak
tgl_pinjam
Tanggal
datetime
tidak
tidak
datetime
tidak
tidak
integer
tidak
tidak
money
tidak
Tidak
char(5)
tidak
tidak
peminjaman tgl_kembali
Tanggal kembali
qty_pinjam
jumlah peralatan yang dipinjam
harga_sewa
Harga penyewaan
KdKaryawan
id karyawan
Tabel 4.12 Tabel identifikasi atribut Penawaran Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Penawaran
KdPenawaran
id
char(5)
tidak
tidak
varchar(20)
tidak
tidak
datetime
tidak
tidak
penawaran nama_penawaran
Nama penawaran
tgl_penawaran
Tanggal penawaran
85 jml_penawaran
Jumlah
money
tidak
tidak
penawaran KdKaryawan
id karyawan
char(5)
tidak
tidak
KdKonsumen
id
char(5)
tidak
tidak
konsumen Kdbarang
id barang
char(5)
tidak
tidak
qty_barang
Jumlah
integer
tidak
tidak
barang yang digunakan KdPeralatan
id peralatan
char(5)
tidak
tidak
qty_peralatan
Jumlah
integer
tidak
tidak
peralatan yang digunakan KdJasa
id jasa
char(5)
tidak
tidak
Status
status
varchar(10)
tidak
tidak
penawaran
Tabel 4.13 Tabel identifikasi atribut Peralatan Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Peralatan
KdPeralatan
id peralatan
char(5)
tidak
tidak
nama_peralatan
Nama
varchar(20)
tidak
tidak
peralatan
86 qty
jumlah
integer
tidak
tidak
peralatan
Tabel 4.14 Tabel identifikasi atribut Jasa Nama entiti
Atribut
Deskripsi
Tipe data
Nullable
Multivalue
Jasa
KdJasa
id Jasa
char(5)
tidak
tidak
Jasa
Nama Jasa
varchar(20)
tidak
tidak
Biaya
Harga
integer
tidak
tidak
4.1.1.3.2 Domain Atribut Tabel Table 4.15 Table domain atribut Field KdSuplier char (5)
Domain Atribut Dua karakter pertama diisi dengan SP, tiga karakter berikutnya berupa angka
KdBarang char (5)
Dua karakter pertama diisi dengan BR, tiga karakter berikutnya berupa angka
KdKonsumen char (5)
Dua karakter pertama diisi dengan KS, tiga karakter berikutnya berupa angka
KdProyek char (5)
Dua karakter pertama diisi dengan PR, tiga karakter berikutnya berupa angka
KdRental char (5)
Dua karakter pertama diisi dengan RE, tiga karakter berikutnya berupa angka
KdPeralatan char (5)
Dua karakter pertama diisi dengan AL, tiga karakter
87 berikutnya berupa angka KdKaryawan char (5)
Dua karakter pertama diisi dengan KY, tiga karakter berikutnya berupa angka
KdJasa char (5)
Dua karakter pertama diisi dengan JS, tiga karakter berikutnya berupa angka
KdPembelian char (5)
Dua karakter pertama diisi dengan BL, tiga karakter berikutnya berupa angka
KdPembayaran char (5)
Dua karakter pertama diisi dengan BY, tiga karakter berikutnya berupa angka
KdPeminjaman char (5)
Dua karakter pertama diisi dengan PJ, tiga karakter berikutnya berupa angka
KdPenawaran char (5)
Dua karakter pertama diisi dengan PN, tiga karakter berikutnya berupa angka
Nama varchar (20)
Dua puluh karakter dapat diisi dengan huruf dan kata ataupun dikombinasi
Alamat varchar (30)
Tiga puluh karakter dapat diisi dengan huruf dan kata ataupun dikombinasi
Kota varchar (20)
Dua puluh karakter dapat diisi dengan huruf dan kata ataupun dikombinasi
Telp numeric
Karakter yang digunakan sesuai dengan kebutuhannya dan semua dalam bentuk angka
Jabatan varchar (50)
Lima puluh karakter dapat diisi dengan huruf dan kata ataupun dikombinasi
88 Dua puluh karakter dapat diisi dengan huruf dan kata
userID varchar (20)
ataupun dikombinasi password varchar (35)
Tiga puluh lima karakter dapat diisi dengan huruf dan kata ataupun dikombinasi
harga money
Semua karakter diisi sesuai dengan mata uang yang digunakan
stok integer
Semua karakter hanya dapat diisi dengan angka yang bernilai positif
tanggal datetime
Semua karakter berbentuk tanggal dengan batasan 1 januari hingga 31 desember, batasan tahun dari sekarang. Format yang digunakan dd-mm-yyyy
qty integer
Semua karakter diisi dengan angka yang bernilai positif
4.1.1.3.3 Menentukan Atribut Candidate dan Primary Key Tabel 4.16 Tabel candidate key dan primary key tiap entiti Nama entiti
Candidate key
Karyawan
KdKaryawan, nama_karyawan
KdKaryawan
Konsumen
KdKonsumen, nama_konsumen
KdKonsumen
Suplier
KdSuplier, nama_suplier
KdSuplier
Barang
KdBarang, nama_barang
KdBarang
Jasa
KdJasa, Jasa
KdJasa
Pembelian
KdPembelian
KdPembelian
Penawaran
KdPenawaran,nama_penawaran
KdPenawaran
Primary key
89 Pembayaran
KdPembayaran
KdPembayaran
Peminjaman
KdPeminjaman
KdPeminjaman
Peralatan
KdPeralatan, nama_peralatan
KdPeralatan
Rental
kdRental , nama_rental
KdRental
Proyek
KdProyek , nama_proyek
KdProyek
Barang
Pembeli an
PK KdBarang 1..*
menghasil kan
Supplier
1..* PK KdPembelian
1..*
1..*
diterima
1..1 PK KdSupllier
1..*
digunakan dal am
memi liki
memil iki Melakukan 1..1 0..1
0..* Penawaran 0..*
1..* 1..1
Proyek
Karyawan 0..*
PK KdPenawaran
0..1
1..1
menawarkan
1..1
PK KdKaryawan 1..1
1..1
0..*
1..1
menangani
0..* PK KdProyek
Melakukan
digunakan dal am 0..*
1..* Jasa
Peminj aman melayani
PK KdJasa
PK KdPeminjaman 1..*
Rental diterima
1..1 PK KdRental
menerima 1..*
1..*
0..*
Konsumen PK KdKonsumen
menghasilkan
Pembayaran 1..*
dilakukan
0..* PK KdPembayaran
1..* Peralatan di gunakan dalam
1..* PK KdPeralatan
Gambar 4.2 Entity Relation Diagram (ERD) konseptual dengan primary key
90 4.1.1.4 Mempertimbangkan
Penggunaan
Konsep
Pemodelan
Enchanced Sistem
yang
dibuat
pada
perusahaan
ini
tidak
menggunakan model enchanced karena entiti yang ada tidak memungkinkan
model enchanced seperti spesialisasi dan
generalisasi. 4.1.1.5 Mengecek Redudansi Model Dari model konseptual yang telah dibuat tidak ditemukan dua entiti yang merepresentasikan objek yang sama dan tidak ada redudansi pada setiap relasionship-nya. 4.1.1.6 Memvalidasi Transaksi Tahapan
ini
bertujuan
untuk
memastikan
model
konseptual untuk mendukung transaksi yang dibutuhkan oleh view dengan menggunakan jalur arah transaksi (pathways) yang digambarkan dalam Entity Relationship. Transaksi yang terjadi adalah sebagai berikut: 1. Transaksi pembelian barang 2. Transaksi penawaran jasa 3. Transaksi pelayanan pembayaran konsumen 4. Transaksi peminjaman peralatan
91 Barang
Pembelian
PK KdBarang 1..*
menghasilkan
Supplier
1..* PK KdPembelian
1..*
1..*
diterima
1..1 PK KdSup llier
1..*
digunakan dalam
memiliki
memiliki Melakukan 1..1 0..1
0..*
1..1
0..*
PK KdPen awaran 0..*
0..1
1..* 1..1
Proyek
Karyawan
Penawaran menawarkan
1..1 PK KdKaryaw an 1..1
1..1
0..*
1..1
menangani
0..* PK KdProyek
Melakukan
digunakan dalam 0..*
1..* Jasa
Peminjaman melayani
PK KdJasa
PK KdPemin jaman 1..*
Rental diterima
1..1 PK KdRental
menerima 1..*
1..*
menghasil kan
0..*
Konsumen
Pembayaran
PK Kd Ko nsumen
1..*
di lakukan
0..* PK KdPembayaran
1..* Peral atan di gunakan dalam
1..* PK Kd Peralatan
Gambar 4.3 Entity Relationship Diagram (ERD) konseptual yang mendukung transaksi user dengan menggunakan pathways 4.1.2
Perancangan Basis Data Logikal M embuat sebuah model data logikal lokal dari sebuah model data konseptual lokal yang menggambarkan fakta-fakta perusahaan dan memvalidasikan untuk meyakinkan struktur itu benar dan mendukung permintaan transaksi. Keseluruhan proses dari pengembangan tahap pada tahap ini adalah penggunaan teknik normalisasi untuk menguji kebenaran
92 model data logikal, kemudian dari model data logikal lokal akan dikombinasikan menjadi model data logikal tunggal. 4.1.2.1 Menghilangkan
Fitur-Fitur yang
Tidak Sesuai
Model
Relasional Tujuan dari langkah ini adalah untuk memperbaiki model data konseptual lokal dengan menghilangkan fitur yang tidak sesuai dengan model relasional. 4.1.2.1.1
Menghilangkan Tipe Relasi Biner Many-to-many Relasi antara entiti Pembelian dengan entiti Barang membentuk suatu entiti baru yaitu entiti detail pembelian.
pembelian kdpembelian {PK} 1..* kdsupplier kdbarang kdkaryawan tgl_pembelian qty
barang 1.. *
menghasilkan
kdbarang {PK} nama_barang harga stok
kondisi awal
pembelian kdpembelian {PK} 1..1 kdsupplier kdkaryawan tgl_pembelian
barang
detail pembelian 1..*
t erdiri dari
kdpembelian {PK } kdbarang {PK} qty
1..*
dalam
1.. 1 kdbarang {PK} nama_barang harga stok
kondisi akhir
Gambar 4.4 M enghilangkan relasi many-to-many antara entiti Pembelian dengan entiti Barang
93 Relasi antara entiti peminjaman dengan entiti peralatan membentuk suatu entiti baru yaitu entiti detail peminjaman. peminjaman kdpeminjaman {PK} kdkaryawan 1. .* kdrental kdperalatan tgl_pinjam tgl_kembali qty
peralatan menghasilkan 1. .*
kdperalatan {PK} nama_peralatan harga_sewa st ok
kondisi awal
peminjaman kdpeminjaman {PK} 1..1 kdkaryawan kdrental tgl_pinjam tgl_kembali
peralatan detail peminjaman terdiri dari 1. .*
1..* kdpeminjaman {PK} kdperalatan {PK} qt y
dalam
1. .1 kdperalatan {PK} nama harga_sewa stok
kondisi akhir
Gambar 4.5 M enghilangkan relasi many-to-many antara entiti Peminjaman dengan entiti Peralatan
Relasi antara entiti pembayaran dengan entiti konsumen membentuk suatu entiti baru yaitu entiti detail pembayaran.
94 pembayaran kdpembayaran {PK} kdkaryawan 0..* kdkonsumen kdproyek jml_pembayaran tgl_pembayaran tgl_pelunasan
konsumen 1..* kdkonsumen {PK} nama_konsumen alamat_konsumen kota telpkonsumen
melakukan
kondisi awal
pembayaran
konsumen
detail pembayaran
kdpembayaran {PK} 1..1 terdiri dari 1..* kdpembayaran {PK} kdkaryawan kdkonsumen {PK} kdproyek jml_pembayaran tgl_pelunasan t gl_pembayaran
1..*
dalam
1. .1
kdkonsumen {PK} nama_konsumen alamat _konsumen kota telpkonsumen
kondisi akhir
Gambar 4.6 M enghilangkan relasi many-to-many antara entiti Pembayaran dengan entiti Konsumen
4.1.2.1.2
Menghilangkan Tipe Relasi kompleks Relasi antara entiti penawaran dengan entiti barang, peralatan, dan jasa masing-masing merupakan relasi yang identik sehingga dapat digabung membentuk suatu entiti baru yaitu entiti detail penawaran.
95 barang
penawaran kdpenawaran (PK) kdkonsum en kdkaryawan kdproyek kdperalatan kdbarang kdjasa nam a_penawaran tg l_penawaran qt y_barang qt y_peralat an jasa
0..*
digunakan dalam
kdbarang {PK} nam a_barang 1..* harga stok peralatan
0..* digunakan dalam
0..* digunakan dalam
kdperalatan {PK} 1..* nam a_peralatan harga_sewa stok
1..*
jasa kdjasa {PK} jasa Biaya
kondisi awal barang dalam
1..* penawaran kdpenawaran (PK) 1..1 kdkonsum en kdkaryawan kdproyek nam a_penawaran tg l_penawaran
1..1 kdbarang {PK} nam a_barang harga stok
detail penawaran terdiri dari
kdpenawaran {PK} 1.. * 1..* kdbarang {PK} kdperalatan {PK} kdjasa {PK} qty_barang qty_peralatan
peralatan dalam
1..1 kdperalatan {PK} nam a_peralatan harga_sewa stok
1..*
jasa dalam
1..1
kdjasa {PK} jasa Biaya
kondisi akhir
Gambar 4.7 M enghilangkan relasi kompleks antara entiti Penawaran dengan entiti Barang, Peralatan, dan Jasa
96 4.1.2.1.3
Menghilangkan Tipe Relasi Rekursif One-to-many Relasi antara entiti Karyawan dengan entiti Karyawan membentuk suatu entiti baru yaitu entiti Jabatan. 1..*
Karyawan
Karyawan
Kdkaryawan {PK}
1..*
memiliki
1..1
KdJabatan {PK} Jabatan
Kdkaryawan {PK}
memiliki
1..1
Jabatan
Kondisi Awal
Kondisi Akhir
Gambar 4.8 M enghilangkan relasi rekursif one-to-many pada entiti Karyawan
4.1.2.1.4
Menghilangkan Tipe Relasi Rekursif One-to-one Relasi antara entiti Karyawan dengan entiti Karyawan membentuk suatu entiti baru yaitu entiti User. 1..1
Karyawan Kdkaryawan {PK} 0..1
userID Karyawan
1..*
memiliki
Kdkaryawan {PK}
memiliki
Kondisi Awal
0..1
UserID {PK} password Status
Kondisi Akhir
Gambar 4.9 M enghilangkan relasi rekursif one-to-one pada entiti Karyawan
97 4.1.2.1.5
Menghilangkan Atribut Multivalues Karyawan memiliki satu atribut multivalues yaitu telp_karyawan sehingga membentuk suatu entiti baru yaitu entiti TelpKaryawan.
Kar yawan KdKaryawan { PK} KdJabatan Jabatan nama_karyawan alamat_karyawan telp_karyawan KdPengguna Password
Karyawan KdKar yawan {PK} KdJabatan Jabatan nama_karyawan 1..1 alamat_karyawan KdPengguna Password
memiliki
1..*
TelpKaryawan NoTelpKaryawan
Kondisi Akhir
Kondisi Awal
Gambar 4.10 M enghilangkan atribut multivalues pada entiti Karyawan
Suplier memiliki satu atribut multivalues yaitu telp_suplier sehingga membentuk suatu entiti baru yaitu entiti TelpSuplier. Supplier KdSupplier {PK} nama_supplier alamat_supplier telp_supplier
Supplier KdSupplier {PK} 1..1 nama_supplier alamat_supplier
memiliki
1..*
TelpSupplier NoT elpSupplier
Kondisi Akhir
Kondisi Awal
Gambar 4.11 M enghilangkan atribut multivalues pada entiti Suplier
Rental memiliki satu atribut multivalues yaitu telp_rental sehingga membentuk suatu entiti baru yaitu entiti TelpRental.
98 Rental
Rental
KdRental {PK} nama_rental alamat_rental telp_rental
KdRental {PK} 1..1 nama_rental alamat_rental
memiliki
1..*
TelpRental NoTelpRental
Kondisi Akhir
Kondisi Awal
Gambar 4.12 M enghilangkan atribut multivalues pada entiti Rental
Konsumen memiliki dua atribut multivalues yaitu telp_konsumen sehingga membentuk suatu entiti baru yaitu entiti TelpKonsumen.
Konsumen KdKonsumen {PK} nama_konsumen alamat_konsumen telp_konsumen email_konsumen
Konsumen KdKonsumen {PK} 1..1 nama_konsumen alamat_konsumen
memiliki
1..* TelpKonsumen NoTelpKonsumen
Kondisi Akhir
Kondisi Awal
Gambar 4.13 M enghilangkan atribut multivalues pada entiti Konsumen
4.1.2.2 Mendapatkan Relasi untuk Model Data Logikal 4.1.2.2.1
Strong & Weak Entity 1. Strong Entity Suplier (KdSuplier, nama_suplier, alamat_suplier) Primary Key KdSuplier
99 Karyawan (KdKaryawan, Kdjabatan, UserID, nama_karyawan, Jabatan, alamat_karyawan, password) Primary Key KdKaryawan Foreign Key KdJabatan References Jabatan (KdJabatan) Foreign Key UserID References User (UserID)
Barang (KdBarang, nama_barang, harga_beli, stok) Primary Key KdBarang
Konsumen (KdKonsumen, nama_konsumen, alamat_konsumen) Primary Key KdKonsumen
Proyek (KdProyek, nama_proyek, tempat_proyek, tgl_mulai, tgl_selesai, harga_proyek) Primary Key KdProyek
Rental (KdRental, nama_rental, alamat_proyek) Primary Key KdRental
100 Peralatan (KdPeralatan, nama_peralatan, qty) Primary Key KdPeralatan
Jabatan (KdJabatan, Jabatan) Primary Key KdJabatan
User (UserID, password) Primary Key UserID
Jasa (KdJasa, Jasa, biaya) Primary key KdJasa
Pembelian (KdPembelian, kdsuplier, kdkaryawan, tgl_pembelian) Primary Key KdPembelian Foreign Key kdsuplier References suplier (KdSuplier) Foreign Key kdkaryawan References karyawan (KdKaryawan)
Detail Pembelian (KdPembelian, KdBarang, Qty) Primary Key KdPembelian, KdBarang Foreign Key KdPembelian References pembelian (KdPembelian)
101 Foreign Key KdBarang References barang (KdBarang)
Pembayaran (KdPembayaran, KdKaryawan, KdProyek, tgl_pelunasan) Primary Key KdPembayaran Foreign Key KdKaryawan References karyawan (KdKaryawan) Foreign Key KdProyek References proyek (KdProyek)
Detail Pembayaran (KdPembayaran, KdKonsumen, tgl_pembayaran, jml_pembayaran) Primary Key KdPembayaran, KdKonsumen Foreign Key KdPembayaran References pembayaran (KdPembayaran) Foreign Key KdKonsumen References konsumen (KdKonsumen)
Peminjaman (KdPeminjaman, KdKaryawan, KdRental, tgl_pinjam, tgl_kembali) Primary Key KdPeminjaman
102 Foreign Key KdKaryawan References karyawan (KdKaryawan) Foreign Key KdRental References rental (KdRental)
Detail Peminjaman (KdPeminjaman, KdPeralatan, Qty) Primary Key KdPeminjaman, KdPeralatan Foreign Key KdPeminjaman References peminjaman (KdPeminjaman) Foreign Key KdPeralatan References peralatan (KdPeralatan)
Penawaran (KdPenawaran, KdKonsumen, KdKaryawan, KdProyek, nama_penawaran, tgl_penawaran) Primary Key KdPenawaran Foreign Key KdKonsumen References konsumen (KdKonsumen) Foreign Key KdKaryawan References karyawan (KdKaryawan) Foreign Key KdProyek References proyek (KdProyek)
103 Detail Penawaran (KdPenawaran, KdBarang, KdPeralatan, KdJasa, qty_barang, qty_peralatan) Primary Key KdPenawaran, KdBarang, KdPeralatan, KdJasa Foreign Key KdPenawaran References penawaran (KdPenawaran) Foreign Key KdBarang References barang (KdBarang) Foreign Key KdPeralatan References peralatan (KdPeralatan) Foreign Key KdJasa References jasa (KdJasa)
2. Weak Entity TelpKaryawan (NoTelpKaryawan) Primary Key belum teridentifikasi
TelpS upplier (NoTelpSupplier) Primary Key belum teridentifikasi
TelpRental (NoTelpRental) Primary Key belum teridentifikasi
104 TelpKonsumen (NoTelpKonsumen) Primary Key belum teridentifikasi
4.1.2.2.2
Tipe Relasi Biner One-to-many Hubungan antara entiti Suplier dengan entiti Pembelian. Menempatkan KdSupplier ke dalam Pembelian untuk Model one-to-many menerima
Supplier (KdSupplier, nama_supplier, alamat_supplier) Primary Key KdSupplier
Pembelian (KdPembelian, KdSupplier, qty_barang, harga_barang, tgl_pembelian) Primary Key KdPembelian Foreign Key KdSupplier references Supplier (KdSupplier)
Hubungan antara entiti Karyawan dengan entiti Pembelian Menempatkan KdKaryawan ke dalam Pembelian untuk Model one- to-many melakukan
Karyawan (KdKaryawan, nama_karyawan, alamat_karyawan, jabatan, password) Primary Key KdKaryawan
Pembelian (KdPembelian, KdSupplier, KdBarang, KdKaryawan, qty_barang, harga_barang, tgl_pembelian) Primary Key KdPembelian Foreign Key KdKaryawan references Karyawan (KdKaryawan)
Hubungan antara entiti Karyawan dengan entiti Penawaran Menempatkan KdKaryawan ke dalam Penawaran untuk Model one- to-many melakukan
Karyawan (KdKaryawan, nama_karyawan, alamat_karyawan, jabatan, password) Primary Key KdKaryawan
Penawaran (KdPenawaran, KdKaryawan, nama_penawaran, jml_penawaran, tgl_penawaran) Primary Key KdPenawaran Foreign Key KdKaryawan references Karyawan (KdKaryawan)
105 Hubungan
antara
entiti
Karyawan
dengan
entiti
Pembayaran Menempatkan KdKaryawan ke dalam Pembayaran untuk Model one-to-many melayani
Karyawan (KdKaryawan, nama_karyawan, alamat_karyawan, jabatan, password) Primary Key KdKaryawan
Hubungan
antara
Pembayaran (KdPembayaran, KdKaryawan, jml_penawaran, tgl_pembayaran, tgl_pelunasan) Primary Key KdPembayaran Foreign Key KdKaryawan references Karyawan (KdKaryawan)
entiti
Karyawan
dengan
entiti
Peminjaman Menempatkan KdKaryawan ke dalam Peminjaman untuk Model one-to-many melakukan
Karyawan (KdKaryawan, nama_karyawan, alamat_karyawan, jabatan, password) Primary Key KdKaryawan
Peminjaman (KdPeminjaman, KdKaryawan, har ga_sewa, qty_pinjam, tgl_pinjam, tgl_kembali) Primary Key KdPeminjaman Foreign Key KdKaryawan references Karyawan (KdKaryawan)
Hubungan antara entiti Jabatan dengan entiti Karyawan Menempatkan KdJabatan ke dalam Karyawan untuk Model one-to-many dimiliki
Jabatan (KdJabatan, Jabatan) Primary Key KdJabatan
Karyawan (KdKaryawan, KdJabatan, nama_karyawan, alamat_karyawan, password) Primary Key KdKaryawan Foreign Key KdJabatan references Jabatan (KdJabatan)
106 Hubungan antara entiti User dengan entiti Karyawan Menempatkan UserID ke dalam Karyawan untuk Model one-to-many dimiliki
Karyawan (KdKaryawan, UserID, KdJabatan, nama_k aryawan, alamat_karyawan, password) Primary Key KdKaryawan Foreign Key KdJabatan references Jabatan (KdJabatan) Foreign Key UserID references User (UserID)
User (UserID, password,status) Primary Key UserID
Hubungan antara entiti Rental dengan Entiti Peminjaman Menempatkan KdRental ke dalam Peminjaman untuk Model one-to-many dalam
Rental (KdRental, nama_rental, alamat_rental) Primary Key KdRental
Hubungan
antara
Peminjaman (KdPeminjaman, KdKaryawan, KdRental, KdPeralatan, harga_sewa, qty_pinjam, tgl_pinjam, tgl_kembali) Primary Key KdPeminjaman Foreign Key KdRental references Rental (KdRental)
entiti
Konsumen
dengan
Entiti
Penawaran Menempatkan KdKonsumen ke dalam Penawaran untuk Model one-to-many menerima
Konsumen (KdKonsumen, nama_Konsumen, alamat_konsumen) Primary Key KdKonsumen
Penawaran ( KdPenawaran, KdKaryawan, KdKonsumen, KdPeralatan, KdBarang, nama_penawaran, jml_penawaran, tgl_penawaran) Primary Key KdPenawaran Foreign Key KdKonsumen references Konsumen (KdKonsumen)
107 Hubungan antara entiti Proyek dengan entiti Pembayaran Menempatkan KdPr oyek ke dalam Pembayaran untuk Model one-to-many dalam
Proyek (KdProyek, nama_Proyek, tempat_proyek,tgl_mulai, tgl selesai, harga_proyek) Primary Key KdProyek
Pembayaran (KdPembayaran, KdKaryawan, KdProyek, KdKonsumen, jml_penawar an, tgl_pembayaran, tgl_pelunasan) Primary Key KdPembayaran Foreign Key KdProyek references Proyek (KdProyek )
Hubungan antara entiti Proyek dengan entiti Penawaran Menempatkan KdProyek ke dalam Penawaran untuk Model one-to-many dalam
Proyek (KdProyek, nama_Proyek, tempat_proyek,tgl_mulai, tgl selesai, harga_proyek) Primary Key KdProyek
Penawaran (KdPenawaran, KdKaryawan, KdProyek, KdKonsumen, KdPeralatan, KdBarang, nama_penawaran, jml_penawaran, tgl_penawaran) Primary Key KdPenawaran Foreign Key KdKonsumen references Kons umen (KdKonsumen) Foreign Key KdPr oyek references Proyek (KdProyek)
108 4.1.2.2.3
Tipe Relasi Biner Many-to-many (*:*) Hubungan antara entiti Pembelian dengan entiti barang
Menempatkan KdBar ang dan KdPembelian ke dalam Detail Pembelian untuk Model many-to-many dihasilkan Pembelian (KdPembelian, KdSupplier, KdKaryawan, tgl_pembelian) Foreign Key KdSupplier references supplier (KdSupplier ) Foreign Key KdKar yawan references Kar yawan ( KdKaryawan) Primary Key KdPembelian
Barang (KdBarang, nama_Barang, harga_barang, stok) Primary Key KdBar ang
Detail Pembelian (KdPembelian, KdBarang, qty_bar ang) Primary Key KdPembelian,KdBarang Foreign Key KdPembelian references pembelian (KdPembelian) Foreign Key KdBarang references Barang (KdBarang)
Hubungan antara entiti Peminjaman dengan entiti Peralatan Menempatkan KdPeralatan dan KdPeminjaman ke dalam Detail Peminjaman untuk Model many- to-many dihasilkan Peminjaman (KdPeminjaman, KdKaryawan, KdRental, tgl_pinjam, tgl_kembali) Foreign Key KdKar yawan references Kar yawan (KdKaryawan) Foreign Key KdRental references Rental (KdRental) Primary Key KdPeminjaman
Peralat an (KdPeralatan, nama_Peralatan, qty) Primary Key KdPeralatan
Detail Peminjaman (KdPeminjaman, KdPeralatan, qty_Per alatan) Primary Key KdPeminjaman,KdPeralatan Foreign Key KdPeminjaman references Peminjaman (KdPeminjaman) Foreign Key KdPeralatan references Peralatan (KdPeralatan)
109 Hubungan antara entiti Pembayaran dengan entiti Konsumen
Menempatkan KdPembayaran dan KdKonsumen ke dalam Detail Pembayar an untuk Model many-to-many dihasilkan Pembayaran ( KdPembayaran, KdKaryawan, KdProyek, tgl_pelunasan) Foreign Key KdKaryawan references Karyawan (KdKaryawan) Foreign Key KdProyek ref erences Pr oyek (KdProyek) Primary Key KdP embayaran
Konsumen (KdKonsumen, nama_Konsumen, alamat_konsumen) Primary Key KdKons umen
Detail Peminjaman ( KdPembayaran, KdKonsumen, tgl_pembayar an, jml_pembayaran) Primary Key KdPembayaran,KdKonsumen Foreign Key KdPembayaran references Pembayaran (KdPembayaran) Foreign Key KdKonsumen references Konsumen (KdKonsumen)
4.1.2.2.4
Tipe Relasi Kompleks Hubungan antara entiti Penawaran dengan entiti Barang, Peralatan, dan Jasa M enem patkan KdPenawaran, KdBarang, KdPeralatan, KdJasa ke dal am Detail Penawaran untuk Model relasi kompleks dihasil kan
Barang (KdBarang, nama_Barang, harga_barang, Penawaran (KdPenawaran, KdKaryawan, KdProyek, stok) KdKonsumen, KdPeralatan, KdBarang, nama_penawaran, Primary Key KdBarang jml_penawaran, tgl_penawaran) F oreign Key KdProyek references Proyek (KdProyek) Peralatan (KdPeralatan, nama_Peralatan, qty) F oreign Key KdKonsumen references Konsumen (KdKonsumen) Primary Key KdPeralatan Primary Key KdPenawaran Jasa (Kdjasa, jasa, harga) Primary Key KdJasa
Detail Penawaran (KdPenawaran, KdBarang, KdPeral atan, KdJasa, qty_barang, qty_peralatan) Primary Key KdPenawaran,KdBarang, KdPeralatan, KdJasa Foreig n Key KdPenawaran references Penawaran (KdPenawaran) Foreig n Key KdBarang references Barang (KdBarang) Foreig n Key KdPeral atan references Peralatan (KdPeralatan) Foreig n Key KdJasa references Jasa (KdJasa)
110 4.1.2.2.5
Atribut Multivalue Hubungan
antara
entiti Karyawan
dengan
entiti
TelpKaryawan Menempatkan KdKaryawan ke dalam TelpKaryawan untuk Model one- to-many memiliki
Karyawan (KdKaryawan, nama_karyawan, alamat_karyawan, jabatan, password) Primary Key KdKaryawan
TelpKaryawan (NoTelpKaryawan, KdKar yawan) Primary Key NoTelpKaryawan Foreign Key KdKaryawan references Karyawan (KdKaryawan)
Hubungan antara entiti Suplier dengan entiti TelpSuplier Menempatkan KdSupplier ke dalam TelpSupplier untuk Model one-to-many memiliki
Supplier (KdSupplier, nama_supplier, alamat_supplier) Primary Key KdSupplier
TelpSupplier (NoTelpSupplier, KdSupplier) Primary Key NoTelpSupplier Foreign Key KdSupplier references Supplier (KdSupplier)
Hubungan antara entiti Rental dengan entiti TelpRental Menempatkan KdRental ke dalam TelpRental untuk Model one-to-many memiliki
Rental (KdRental, nama_rental, alamat_rental) Primary Key KdRental
TelpRental (NoTelpRental, KdRental) Primary Key NoTelpRental Foreign Key KdRental references Rental (KdRental)
111 Hubungan
antara entiti Konsumen
dengan
entiti
TelpKonsumen Menempatkan KdKonsumen ke dalam TelpKonsumen untuk Model one-to-many memiliki
Konsumen (KdKonsumen, nama_Konsumen, alamat_Konsumen) Primary Key KdKonsumen
TelpKonsumen (NoTelpKonsumen, KdKonsumen) Primary Key NoTelpKonsumen Foreign Key KdKonsumen references Konsumen (KdKonsumen)
4.1.2.4 Validasi Relasi dengan Normalisasi Normalisasi yang akan dilakukan mencapai bentuk normal ketiga. Entiti akan dikelompokkan menurut bentuk-bentuk normal yang telah dicapai. Berikut ini adalah normalisasi entiti:
Normalisasi Pembelian 1NF Pembelian = @KdPembelian + @Kdsuplier + @Kdbarang + @Kdkaryawan + qtybarang + harga_barang + tglpembelian + nama_barang + nama_karyawan + nama_suplier 2NF Pembelian_H = @KdPembelian + #Kdsuplier + #Kdbarang + #Kdkaryawan
+ tglpembelian
+
nama_suplier
nama_karyawan Pembelian_D = @KdPembelian + #Kdbarang + qty
+
112 Barang = @Kdbarang + nama_barang + stok 3NF Pembelian_H = @KdPembelian + #Kdsuplier + #Kdkaryawan + tglpembelian Pembelian_D = @KdPembelian + #Kdbarang + qty Karyawan
=
@Kdkaryawan
+
#Kdjabatan
+
#UserID
+
nama_karyawan + alamat_karyawan TelpKaryawan = @NoTelpKaryawan + #Kdkaryawan Barang = @Kdbarang + nama_barang + harga + stok Supplier = @Kdsuplier + nama_suplier + alamat_suplier TelpSupplier = @NoTelpSuplier + #Kdsuplier Jabatan = @Kdjabatan + nama_jabatan User = @UserId + Password + status + login
Normalisasi Peminjaman 1NF Peminjaman = @KdPeminjaman + @KdPeralatan + @KdRental + @Kdkaryawan + tgl_peminjaman + tgl_kembali + qty_pinjam +
harga_sewa +
nama_peralatan
+
nama_karyawan + nama_rental 2NF Peminjaman_H = @KdPeminjaman + #KdPeralatan + #KdRental + #Kdkaryawan + tgl_peminjaman + tgl_kembali + qty_pinjam
113 Peminjaman_D = @KdPeminjaman + #KdPeralatan + qty_pinjam Peralatan
= @Kdperalatan + nama_peralatan + harga_sewa + stok_peralatan
3NF Peminjaman_H = @KdPeminjaman + #Kdrental + #Kdkaryawan + tglpembelian Peminjaman_D = @KdPeminjaman + #KdPeralatan + qty_pinjam Karyawan
=
@Kdkaryawan
+
#Kdjabatan
+
jabatan
+
nama_karyawan + alamat_karyawan + #UserID TelpKaryawan = @NoTelpKaryawan + #Kdkaryawan Rental = @Kdrental + nama_rental + alamat_rental TelpRental = @NoTelpRental + #Kdrental Peralatan = @Kdperalatan + nama_peralatan + harga_sewa + qty_peralatan Jabatan = @Kdjabatan + nama_jabatan User = @UserId + Password + status + Login
Normalisasi Penawaran 1NF Penawaran = @Kdpenawaran + @Kdbarang + @Kdkonsumen + @KdBarang + @Kdperalatan + @Kdkaryawan + @Kdjasa +
t gl_penawaran + jml_penawaran +
nama_penawaran + nama_barang + nama_konsumen + nama_peralatan + nama_karyawan
114
2NF Penawaran_H = @Kdpenawaran + #Kdbarang + #Kdkonsumen + #Kdkaryawan + #Kdperalatan + #Kdproyek + #kdjasa +
nama_penawaran
+tgl_penawaran
+
nama_konsumen + nama_barang + nama_peralatan + nama_karyawan Penawaran_D = @Kdpenawaran +
Kdproyek + qty_barang +
qty_peralatan Barang = @Kdbarang + nama_barang + qty Peralatan = @Kdperalatan + nama_peralatan + qty_peralatan 3NF Penawaran_H = @Kdpenawaran + Kdproyek + Kdkaryawan + tgl_penawaran Penawaran_D = @Kdpenawaran + #Kdproyek + #kdperalatan + #kdbarang + #kdjasa + qty_peralatan + qty_barang Barang = @Kdbarang + nama_barang + qty Peralatan = @Kdperalatan + nama_peralatan + qty_peralatan Karyawan
=
@Kdkaryawan
+
#Kdjabatan
+
jabatan
+
nama_karyawan + alamat_karyawan + #UserID TelpKaryawan = @NoTelpKaryawan + #Kdkaryawan Proyek
= @kdproyek + nama_proyek + tempat_proyek + tgl_mulai + tgl_selesai + harga_proyek
Konsumen = @KdKonsumen + nama_konsumen + alamat_konsumen
115 TelpKonsumen = @NoTelpKonsumen + #Kdkonsumen Jasa = @Kdjasa + nama_jasa + biaya Jabatan = @Kdjabatan + nama_jabatan User = @UserId + Password + Status + Login
Normalisasi Pembayaran 1NF Pembayaran = @Kdpembayaran + #KdKaryawan + #Kdproyek + #Kdkonsumen + jml_pembayaran + tgl_pembayaran + tgl_pelunasan
+
nama_karyawan
+
nama_proyek + nama_konsumen 2NF Pembayaran_H = @Kdpembayaran + #KdKaryawan + #Kdproyek + tgl_pembayaran + tgl_pelunasan + nama_karyawan + nama_proyek + nama_konsumen Pembayaran_D
=
@Kdpembayaran
+
#Kdkonsumen
+
Jumlah_pembayaran + Sisa_pembayaran 3NF PembayaranH
=
@Kdpembayaran
+
#KdKaryawan
+
#kdproyek + tgl_pembayaran + tgl_pelunasan PembayaranD
=
@Kdpembayaran
+
#Kdkonsumen
+
Jumlah_pembayaran + Sisa_pembayaran Karyawan
=
@Kdkaryawan
+
#Kdjabatan
+
jabatan
nama_karyawan + alamat_karyawan + #UserID
+
116 Proyek
= @kdproyek + nama_proyek + tempat_proyek + tgl_mulai + tgl_selesai + harga_proyek
Konsumen = @KdKonsumen + nama_konsumen + alamat_konsumen TelpKonsumen = NoTelpKonsumen + kdkonsumen Jabatan = @Kdjabatan + nama_jabatan User = @UserId + Password + Status + Login TelpKaryawan = @NoTelpKaryawan + #Kdkaryawan
4.1.2.4 Pembuatan Model Basis Data Logikal Global Pada tahap ini, model basis data secara global yang didapat dari tabel-tabel setelah mencapai bentuk normal beserta referensi dari setiap foreign key : Tabel 4.17 Relasi pada entiti msbarang Nama
Atribut
Primary key
Foreign key
Referensi
kdbarang,
kdbarang
-
-
entiti msbarang
nama_barang, harga, stok, satuan
Tabel 4.18 Relasi pada entiti pembelianH Nama entiti
Atribut
Primary key
Foreign key
Referensi
pembelianH
kdpembelian,
kdpembelian
kdsuplier
mssuplier
117 kdkaryawan
kdsuplier,
mskaryawan
kdkaryawan, tgl_pembelian
Tabel 4.19 Relasi pada entiti pembelianD Nama entiti
Atribut
Primary key
Foreign key
Referensi
pembelianD
kdpembelian,
kdpembelian
kdpembelian
pembelianH
kdbarang, qty
kdbarang
kdbarang
msbarang
Tabel 4.20 Relasi pada entiti mssuplier Nama entiti
Atribut
Primary key
Foreign key
Referensi
mssuplier
kdsuplier,
kdsuplier
-
-
nama_suplier, alamat_suplier, kota
Tabel 4.21 Relasi pada entiti TelpSuplier Nama entiti
Atribut
Primary key
Foreign key
Referensi
TelpSuplier
NoTelpSuplier,
NoTelpSuplier
Kdsuplier
mssuplier
kdsuplier
118 Tabel 4.22 Relasi pada entiti mskaryawan Nama entiti
Atribut
Primary key
Foreign key
Referensi
mskaryawan
kdkaryawan,
kdkaryawan
userID
msuser
kdjabatan
msjabatan
userID, kdjabatan, nama_karyawan, alamat_karyawan, kota
Tabel 4.23 Relasi pada entiti msjabatan Nama entiti
Atribut
Primary key
Foreign key
Referensi
msjabatan
kdjabatan,
kdjabatan
-
-
jabatan
Tabel 4.24 Relasi pada entiti msuser Nama entiti
Atribut
Primary key
Foreign key
Referensi
msuser
userID, pass,
userID
-
-
status, Login
Tabel 4.25 Relasi pada entiti TelpKaryawan Nama entiti
Atribut
Primary key
TelpKaryawan NoTelpKaryawan, NoTelpKaryawan kdkaryawan
Foreign key
Referensi
kdkaryawan
mskaryawan
119 Tabel 4.26 Relasi pada entiti peminjamanH Nama entiti
Atribut
Primary key
Foreign key
Referensi
peminjamanH
kdpeminjaman,
kdpeminjaman
kdkaryawan
mskaryawan
kdrental
msrental
kdkaryawan, kdrental, tgl_pinjam, tgl_kembali
Tabel 4.27 Relasi pada entiti peminjamanD Nama entiti
Atribut
Primary key
Foreign key
Referensi
peminjamanD
kdpeminjaman,
kdpeminjaman,
kdpeminjaman
peminjamanH
kdperalatan,
kdperalatan
kdperalatan
msperalatan
qty
Tabel 4.28 Relasi pada entiti msperalatan Nama entiti
Atribut
Primary key
Foreign key
Referensi
msperalatan
kdperalatan,
kdperalatan
-
-
nama_peralatan, harga_sewa, stok
120 Tabel 4.29 Relasi pada entiti msrental Nama entiti
Atribut
Primary key
Foreign key
Referensi
msrental
kdrental,
kdrental
-
-
nama_rental, alamat_rental, kota
Tabel 4.30 Relasi pada entiti TelpRental Nama entiti
Atribut
Primary key
Foreign key
Referensi
TelpRental
NoTelpRental,
NoTelpRental
Kdrental
msrental
kdrental
Tabel 4.31 Relasi pada entiti mskonsumen Nama entiti
Atribut
Primary key
Foreign key
Referensi
mskonsumen
kdkonsumen,
kdkonsumen
-
-
nama_konsumen, alamat_konsumen, kota
Tabel 4.32 Relasi pada entiti TelpKonsumen Nama entiti TelpKonsumen
Atribut
Primary key
NoTelpKonsumen, NoTelpKonsumen kdkonsumen
Foreign key
Referensi
kdkonsumen
mskonsumen
121 Tabel 4.33 Relasi pada entiti penawaranH Nama entiti
Atribut
Primary key
Foreign key
Referensi
penawaranH
kdpenawaran,
kdpenawaran
kdkonsumen
mskonsumen
kdkonsumen,
kdkaryawan
mskaryawan
kdkaryawan,
kdproyek
msproyek
kdproyek, nama_penawaran, tgl_penawaran status
Tabel 4.34 Relasi pada entiti penawaranD Nama entiti
Atribut
Primary key
Foreign key
Referensi
penawaranD
kdpenawaran,
kdpenawaran,
kdpenawaran
penawaranH
kdperalatan,
kdperalatan,
kdperalatan
msperalatan
kdbarang,
kdbarang,
kdbarang
msbarang
kdjasa,
kdjasa
kdjasa
msjasa
qty_barang, qty_peralatan
Tabel 4.35 Relasi pada entiti msproyek Nama entiti
Atribut
Primary key
Foreign key
Referensi
msproyek
kdproyek,
kdproyek
-
-
nama_proyek,
122 alamat_proyek, kota, tgl_mulai, tgl_selesai, harga_proyek
Tabel 4.36 Relasi pada entiti msjasa Nama entiti
Atribut
Primary key
Foreign key
Referensi
msjasa
kdjasa, jasa,
kdjasa
-
-
biaya
Tabel 4.37 Relasi pada entiti pembayaranH Nama entiti
Atribut
Primary key
Foreign key
Referensi
pembayaranH
kdpembayaran,
kdpembayaran
kdkaryawan
mskaryawan
kdkaryawan,
kdproyek
msproyek
kdproyek,
kdkonsumen
mskonsumen
tgl_pelunasan
Tabel 4.38 Relasi pada entiti pembayaranD Nama entiti
Atribut
Primary key
Foreign key
Referensi
pembayaranD
kdpembayaran,
kdpembayaran,
kdpembayaran
pembayaranH
kdkonsumen,
kdkonsumen
kdkonsumen
mskonsumen
tgl_pembayaran, jml_pembayaran
123 msbarang PK
pem bel ianH
kdbarang
PK
pem bel ianD
nam a_barang harga stok
PK,FK1 kdp embelian PK,FK2 kdb aran g
mssuplli er
kdpembelian
F K1 F K2
Tel pSupplier
PK kdsu pplier
kdsuppl ier kdkaryawan tgl_pembel ian
nam a_supplier alam at_suppl ier kota
qty
msjabatan PK
Jabatan
kdkaryawan
FK1 userID FK2 kdjabatan nam a_karyawan alam at_karyawan kota
m suser PK userID pass status login
kd penawaran
F K2 F K3 F K4
kdkonsumen kdkaryawan kdproyek nam a_penawaran tgl_penawaran
kdsupplier
PK
No Telp Karyawan
F K1
kdkaryawan
msrental PK kd ren tal pem injamanH
penawaranH PK
NoTelpSu pplier
FK1
TelpKaryawan
kdjab atan
mskaryawan PK
PK
PK
kdpemin jaman
FK2 FK3
kdkaryawan kdrental tgl _pi nj am tgl _kembal i
nam a_rental al am at_rental kota
pembayaranH PK
kdp embayaran
TelpRental PK
FK1 kdkaryawan FK2 kdproyek tgl_pelunasan pemi njamanD pembayaranD
msproyek PK kdpro yek nama_proyek alam at_proyek kota tgl _mulai tgl _selesai harga_proyek
PK,FK1 kdperalatan PK,FK2 kdpemin jaman
PK,FK1 kdpembayaran PK,FK2 kdkonsumen
qty
tgl_pem bayaran jm l_pem bayaran
mskonsumen PK kd ko nsumen
penawaranD PK,FK1 PK,FK2 PK,FK3 PK,FK4
kdpenawaran kdperalatan kdbarang kdjasa qty_barang qty_peralatan
NoT elpRenatal
FK1 kd_rental
nam a_konsum en al am at_konsumen kota
msjasa PK kd jasa j asa bi aya
m speralatan T el pKonsum en PK
NoTelpKonsumen
FK1
kdkonsum en
PK kdp eralatan nama_peralatan harga_sewa stok
Gambar 4.14 Entiti Relationship Diagram (ERD) logikal global
124 4.1.2.5 Pemilihan DBMS (Database Management System) Berikut ini adalah perbandingan antara SQL Server 2000 dengan Oracle 9iDB : Tabel 4.39 Perbandingan antara M icrosoft SQL Server 2000 dengan Oracle 9iDB Perbedaan
Microsoft SQL Server
Oracle 9i
2000 Type DBM S
Biaya
Transactional relational
Transactional relational
database server
database server
$1,489 - $4,999
$1,500 - $15,000
(Professional Edition) Kebutuhan perangkat keras
Intel Pentium II atau AM D
Dedicated server
K6-II processor, 64 M B RAM , 380 M B hard drive Kebutuhan piranti lunak
Windows XP atau
Windows Server 2000 atau
Windows Server 2000 atau
Windows .Net Server
Windows .Net Server
2003, TRU64 UNIX, HP-
2003, Internet Explorer 5.0
UX Version 11, Solaris 8, AIX
Kekurangan
Kehandalan
Biaya cukup tinggi,
Lisensi berdasarkan
memerlukan Windows
individu bukan medianya,
2000 Server
dokumentasi sulit dipahami
M endukung failover
M endukung failover
cluster, pemulihan point in
cluster, pemulihan point in
125
Standar
time, dapat melakukan
time dan kehandalan tingkat
restart jika berhenti
enterprise lainnya
SQL99, XM L, ODBC,
SQL99, SQL/J, PL/SQL,
JDBC, T-SQL
ODBC, JDBC, XM L, J2EE 1.3
Keterbatasan basis data
Terbatas mendekati 2 miliar Tidak diketahui objek dalam basis data
Pemenuhan ACID
Ya
Ya
Kelebihan
M endukung kehandalan
DBM S dengan standar
dan keamanan tingkat
industri mampu mengatur
enterprise, dapat
data tingkat enterprise,
menjalankan berbagai basis
mendukung semua akses
data dalam satu server
standar basis data pada umumnya, memiliki kehandalan dan tingkat keamanan yang tinggi
Keamanan
M enggunakan authentikasi
Integrated user
pengguna dengan pilihan
authentication, extensive
untuk menyatukan
transaction logging
keamanan basis data dengan keamanan Windows 2000 Server
126 Data-data tersebut menunjukkan bahwa Oracle 9iDB memiliki kemampuan yang lebih baik jika dibandingkan dengan M icrosoft SQL Server 2000, tetapi biaya yang harus dikeluarkan untuk DBM S tersebut relatif tinggi. Dengan pertimbangan masalah-masalah khususnya dalam masalah biaya tersebut maka aplikasi ini akan menggunakan M icrosoft SQL Server 2000 sebagai DBM S untuk implementasinya. 4.1.3
Perancangan Basis Data Fisikal Perancangan
basis
data
fisikal
merupakan
tahap
akhir
perancangan basis data. Tujuan perancangan basis data fisikal yaitu untuk menghasilkan suatu gambaran implementasi dari basis data pada penyimpanan sekunder. Tahap-tahap perancangan fisikal pada basis data PT. Nabatindah Sejahtera sebagai berikut: 4.1.3.1 Merancang Relasi-Relasi Dasar Tahap awal perancangan fisikal ini bertujuan untuk memutuskan bagaimana menggambarkan relasi basis model data logikal global pada DBM S. Untuk memulai prosesnya, dilakukan penyusunan informasi tentang relasi yang terbentuk pada perancangan logikal. Informasi yang tersusun antara lain nama relasi, atribut-atribut, primary keys, foreign keys, refential integrity, domain yang terdiri dari tipe data, panjang, constraints, dan apakah atribut yang bernilai null. Berikut ini adalah perancangan DBDL untuk setiap entiti yang bertujuan untuk membuat domain dari setiap atribut agar user
dapat
mengerti
penggunaan
setiap
atribut
tersebut
127 berdasarkan penjelasannya dan juga batasan yang terdapat di dalam setiap atribut. 1. DBDL (Database Design Language) untuk Tabel msbarang Domain kdbarang
fixed length character string, 5
Domain nama_barang
variable length character string, 20
Domain harga
integer
Domain stok
integer
Domain satuan
integer
msbarang ( kdbarang
kode barang
NOT NULL
nama_barang
nama barang
NOT NULL
harga
harga barang
NOT NULL
stok
stok
NOT NULL
satuan
satuan barang
NOT NULL
Primary Key (kdbarang) ) 2. DBDL (Database Design Language) untuk Tabel pembelianD Domain kdpembelian
fixed length character string, 5
Domain kdbarang
fixed length character string, 5
Domain qty
integer
pembelianD ( kdpembelian
kode pembelian
NOT NULL
kdbarang
kode barang
NOT NULL
qty
jumlah barang
NOT NULL
128 Primary Key (kdpembelian,kdbarang) Foreign
Key
(kdpembelian)
References
pembelian
(kdpembelian) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdbarang) References msbarang (kdbarang) ON UPDATE CASCADE ON DELETE NO ACTION ) 3. DBDL (Database Design Language) untuk Tabel pembelianH Domain kdpembelian
fixed length character string, 5
Domain kdsuplier
fixed length character string, 5
Domain kdkaryawan
fixed length character string, 5
Domain tgl_pembelian
datetime
pembelianH ( kdpembelian
kode pembelian
NOT NULL
kdsuplier
kode suplier
NOT NULL
kdkaryawan
kode karyawan
NOT NULL
tgl_pembelian
tanggal pembelian
NOT NULL
Primary Key (kdpembelian) Foreign Key (kdsuplier) References mssuplier (kdsuplier) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key
(kdkaryawan)
References
mskaryawan
(kdkaryawan) ON UPDATE CASCADE ON DELETE NO ACTION )
129 4. DBDL (Database Design Language) untuk Tabel mssuplier Domain kdsuplier
fixed length character string, 5
Domain nama_suplier
variable length character string, 20
Domain alamat_suplier
variable length character string, 20
Domain kota
variable length character string, 20
mssuplier ( kdsuplier
kode suplier
NOT NULL
nama_suplier
nama suplier
NOT NULL
alamat_suplier
alamat suplier
NOT NULL
kota
kota
NOT NULL
Primary Key (kdsuplier) ) 5. DBDL (Database Design Language) untuk Tabel TelpSuplier Domain NoTelpSuplier
numeric
Domain kdsuplier
fixed length character string, 5
TelpSuplier ( NoTelpSuplier
no telepon suplier
NOT NULL
kdsuplier
kode suplier
NOT NULL
Primary Key (NoTelpSuplier) Foreign Key (kdsuplier) References mssuplier (kdsuplier) ON UPDATE CASCADE ON DELETE NO ACTION ) 6. DBDL (Database Design Language) untuk Tabel msuser Domain userID
variable length character string, 20
130 Domain pass
fixed length character string, 35
Domain status
fixed length character string, 1
Domain login
integer, 1
msuser ( userID
nama user
NULL
pass
password user
NULL
status
status jabatan
NOT NULL
login
status login
NOT NULL
Primary Key (userID) ) 7. DBDL
(Database
Design
Language)
untuk
Tabel
mskaryawan Domain kdkaryawan
fixed length character string, 5
Domain userID
variable length character string, 20
Domain kdjabatan
fixed length character string, 5
Domain nama_karyawan variable length character string, 20 Domain alamat_karyawan variable length character string, 20 Domain kota
variable length character string, 20
mskaryawan ( kdkaryawan
kode karyawan
NOT NULL
userID
nama user
NOT NULL
kdjabatan
kode jabatan
NOT NULL
nama_karyawan
nama karyawan
NOT NULL
alamat_karyawan
alamat karyawan
NOT NULL
131 kota
kota karyawan
NOT NULL
Primary Key (kdkaryawan) Foreign Key (userID) References msuser (userID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdjabatan) References msjabatan (kdjabatan) ON UPDATE CASCADE ON DELETE NO ACTION ) 8. DBDL
(Database
Design
Language)
untuk
Tabel
TelpKaryawan Domain NoTelpKaryawan numeric Domain kdkaryawan
fixed length character string, 5
TelpKaryawan ( NoTelpKaryawan
no telepon karyawan NOT NULL
kdkaryawan
kode karyawan
NOT NULL
Primary Key (NoTelpKaryawan) Foreign
Key
(kdkaryawan)
References
mskaryawan
(kdkaryawan) ON UPDATE CASCADE ON DELETE NO ACTION ) 9. DBDL (Database Design Language) untuk Tabel msrental Domain kdrental
fixed length character string, 5
Domain nama_rental
variable length character string, 20
Domain alamat_rental
variable length character string, 20
Domain kota
variable length character string, 20
132 msrental ( kdrental
kode rental
NOT NULL
nama_rental
nama rental
NOT NULL
alamat_rental
alamat rental
NOT NULL
kota
kota rental
NOT NULL
Primary Key (kdrental) ) 10. DBDL
(Database
Design
Language)
untuk
Tabel
penawaranH Domain kdpenawaran
fixed length character string, 5
Domain kdkonsumen
fixed length character string, 5
Domain kdkaryawan
fixed length character string, 5
Domain kdproyek
fixed length character string, 5
Domain nama_penawaranvariable length character string, 20 Domain tgl_penawaran
datetime
Domain jumlah_penawaran integer Domain status
fixed length character string, 10
penawaranH ( kdpenawaran
kode penawaran
NOT NULL
kdkonsumen
kode konsumen
NOT NULL
kdkaryawan
kode karyawan
NOT NULL
kdproyek
kode proyek
NOT NULL
nama_penawaran
nama penawaran
NOT NULL
tgl_penawaran
tanggal penawaran
NOT NULL
133 status
status penawaran
NOT NULL
Primary Key (kdpenawaran) Foreign
Key
(kdkonsumen)
References
mskonsumen
(kdkonsumen) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key
(kdkaryawan)
References
mskaryawan
(kdkaryawan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdproyek) References msjabatan (kdproyek) ON UPDATE CASCADE ON DELETE NO ACTION ) 11. DBDL
(Database
Design
Language)
untuk
Tabel
pembayaranH Domain kdpembayaran
fixed length character string, 5
Domain kdkaryawan
fixed length character string, 5
Domain kdproyek
fixed length character string, 5
Domain tgl_pelunasan
datetime
pembayaran ( kdpembayaran
kode pembayaran
NOT NULL
kdkaryawan
kode karyawan
NOT NULL
kdproyek
kode proyek
NOT NULL
tgl_pelunasan
tanggal pelunasan
NOT NULL
Primary Key (kdpembayaran)
134 Foreign
Key
(kdkaryawan)
References
mskaryawan
(kdkaryawan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdproyek) References msproyek (kdproyek) ON UPDATE CASCADE ON DELETE NO ACTION ) 12. DBDL (Database Design Language) untuk Tabel msjabatan Domain kdjabatan
fixed length character string, 5
Domain jabatan
variable length character string, 20
msjabatan ( kdjabatan
kode jabatan
NOT NULL
jabatan
jabatan
NOT NULL
Primary Key (kdjabatan) ) 13. DBDL
(Database
Design
Language)
untuk
Tabel
peminjamanH Domain kdkaryawan
fixed length character string, 5
Domain kdpeminjaman
fixed length character string, 5
Domain kdrental
fixed length character string, 5
Domain tgl_pinjam
datetime
Domain tgl_kembali
datetime
peminjamanH ( kdkaryawan
kode karyawan
NOT NULL
kdpeminjaman
kode peminjaman
NOT NULL
135 kdrental
kode rental
NOT NULL
tgl_pinjam
tanggal pinjam
NOT NULL
tgl_kembali
tanggal kembali
NOT NULL
Primary Key (kdkaryawan, kdpeminjaman) Foreign
Key
(kdkaryawan)
References
mskaryawan
(kdkaryawan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key
(kdperalatan)
References
msperalatan
(kdperalatan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdrental) References msrental (kdrental) ON UPDATE CASCADE ON DELETE NO ACTION ) 14. DBDL (Database Design Language) untuk Tabel TelpRental Domain NoTelpRental
numeric
Domain kdrental
fixed length character string, 5
TelpRental ( NoTelpRental
no telp rental
NOT NULL
kdrental
kode rental
NOT NULL
Primary Key (NoTelpRental) Foreign Key (kdrental) References msrental (kdrental) ON UPDATE CASCADE ON DELETE NO ACTION )
136 15. DBDL (Database Design Language) untuk Tabel msproyek Domain kdproyek
fixed length character string, 5
Domain nama_proyek
variable length character string, 20
Domain alamat_proyek variable length character string, 20 Domain kota
variable length character string, 20
Domain tgl_mulai
datetime
Domain tgl_selesai
datetime
Domain harga_proyek
integer
msproyek ( kdproyek
kode proyek
NOT NULL
nama_proyek
nama proyek
NOT NULL
alamat_proyek
alamat proyek
NOT NULL
kota
kota proyek
NOT NULL
tgl_mulai
tanggal mulai
NOT NULL
tgl_selesai
tanggal selesai
NOT NULL
harga_proyek
harga proyek
NOT NULL
Primary Key (kdproyek) ) 16. DBDL
(Database
Design
Language)
untuk
pembayaranD Domain kdpembayaran
fixed length character string, 5
Domainkdkonsumen
fixed length character string, 5
Domain tgl_pembayaran integer Domain jml_pembayaran integer
Tabel
137 pembayaranD ( kdpembayaran
kode pembayaran
NOT NULL
kdkonsumen
kode konsumen
NOT NULL
jml_pembayaran
jumlah pembayaran
NOT NULL
tgl_pembayaran
tanggal pembayaran NOT NULL
Primary Key (kdpembayaran, kdkonsumen) Foreign Key (kdpembayaran) References mspembayaran (kdpembayaran) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key
(kdkonsumen)
References
mskonsumen
(kdkonsumen) ON UPDATE CASCADE ON DELETE NO ACTION ) 17. DBDL
(Database
Design
Language)
untuk
Tabel
peminjamanD Domain kdkaryawan
fixed length character string, 5
Domain kdpeminjaman
fixed length character string, 5
Domain kdperalatan
fixed length character string, 5
Domain qty
integer
peminjamanD ( kdkaryawan
kode karyawan
NOT NULL
kdpeminjaman
kode peminjaman
NOT NULL
kdperalatan
kode peralatan
NOT NULL
qty
jumlah peralatan
NOT NULL
138 Primary Key (kdkaryawan, kdpeminjaman, kdperalatan) Foreign
Key
(kdkaryawan)
References
mskaryawan
(kdkaryawan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdpeminjaman) References mspeminjaman (kdpeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key
(kdperalatan)
References
msperalatan
(kdperalatan) ON UPDATE CASCADE ON DELETE NO ACTION ) 18. DBDL
(Database
Design
Language)
untuk
Tabel
penawaranD Domain kdpenawaran
fixed length character string, 5
Domain kdperalatan
fixed length character string, 5
Domain kdbarang
fixed length character string, 5
Domain kdjasa
fixed length character string, 5
Domain qty_barang
integer
Domain qty_peralatan
integer
penawaranD ( kdpenawaran
kode penawaran
NOT NULL
kdperalatan
kode peralatan
NOT NULL
kdbarang
kode barang
NOT NULL
kdjasa
kode jasa
NOT NULL
139 qty_barang
jumlah barang
NOT NULL
qty_peralatan
jumlah peralatan
NOT NULL
Primary Key (kdpenawaran, kdperalatan, kdbarang, kdjasa) Foreign
Key
(kdpenawaran)
References
mspenawaran
(kdpenawaran) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key
(kdperalatan)
References
msperalatan
(kdperalatan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdbarang) References msbarang (kdbarang) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key (kdjasa) References msjasa (kdjasa) ON UPDATE CASCADE ON DELETE NO ACTION ) 19. DBDL (Database Design Language) untuk Tabel msjasa Domain kdjasa
fixed length character string, 5
Domain jasa
variable length character string, 20
Domain biaya
integer
msjasa ( kdjasa
kode jasa
NOT NULL
jasa
jasa
NOT NULL
biaya
harga jasa
NOT NULL
Primary Key (kdjasa) )
140 20. DBDL
(Database
Design
Language)
untuk
Tabel
mskonsumen Domain kdkonsumen
fixed length character string, 5
Domain nama_konsumen variable length character string, 20 Domain alamat_konsumen variable length character string, 20 Domain kota
variable length character string, 20
mskonsumen ( kdkonsumen
kode konsumen
NOT NULL
nama_konsumen
nama konsumen
NOT NULL
alamat_konsumen
alamat konsumen
NOT NULL
kota
kota konsumen
NOT NULL
Primary Key (kdkonsumen) ) 21. DBDL
(Database
Design
Language)
untuk
Tabel
TelpKonsumen Domain NoTelpKonsumen numeric Domain kdkonsumen
fixed length character string, 5
TelpKonsumen ( NoTelpKonsumen
no telepon konsumen NOT NULL
kdkonsumen
kode konsumen
NOT NULL
Primary Key (NoTelpKonsumen) Foreign
Key
(kdkonsumen)
References
mskonsumen
(kdkonsumen) ON UPDATE CASCADE ON DELETE NO ACTION
141 ) 22. DBDL (Database Design Language) untuk Tabel msperalatan Domain kdperalatan
fixed length character string, 5
Domain nama_peralatan variable length character string, 20 Domain harga_sewa
integer
Domain stok
integer
msperalatan ( kdperalatan
kode peralatan
NOT NULL
nama_peralatan
nama peralatan
NOT NULL
harga_sewa
harga sewa
NOT NULL
stok
stok peralatan
NOT NULL
Primary Key (kdperalatan) ) 4.1.3.2 Menganalisis Transaksi Analisa transaksi dilakukan untuk memahami penggunaan transaksi atau query yang akan dijalankan pada basis data dan untuk menganalisis transaksi-transaksi yang penting atau sering digunakan. Hasil dari analisis tersebut dapat digunakan dalam pemilihan index yang tepat. Langkah-langkah dalam menganalisis transaksi, yaitu: 1. M emetakan semua jalur transaksi dalam relasi 2. M enentukan relasi mana yang paling sering diakses oleh transaksi
142 3. M enganalisis penggunaan data dari relasi yang dipilih pada langkah sebelumnya Berikut adalah transaksi yang dilakukan: a. M asukkan username dan password untuk login b. M enambah, mengubah, menghapus, dan melihat detail semua data barang c. M enambah, mengubah, menghapus, dan melihat detil semua data peralatan d. M enambah, mengubah, menghapus, dan melihat detil semua data karyawan e. M enambah, mengubah, menghapus, dan melihat detil semua data konsumen f. M enambah, mengubah, menghapus, dan melihat detil semua data suplier g. M enambah, mengubah, menghapus, dan melihat detil semua data rental h. M enambah, mengubah, menghapus, dan melihat detil semua data proyek i. M enambah, mengubah, menghapus, dan melihat detil semua surat pembelian ke suplier j. M enambah, mengubah, menghapus, dan melihat detil semua surat peminjaman peralatan k. M enambah, mengubah, menghapus, dan melihat detil semua surat penawaran
143 l. M enambah, mengubah, menghapus, dan melihat detil semua data jasa. Tabel 4.40 Keterangan analisis transaksi 1 Transaksi Relasi
a R
I
msbarang
b U D R
I
c U D R
I
d U D R
I
U D
X X X X
pembelianD
X X X
pembelianH mssuplier telpsuplier msuser mskaryawan
X X
X X X X
telpKaryawan
X X X
msrental penawaranH pembayaran msjabatan peminjamanH telprental msproyek peminjamanD penawaranD msjasa
X X X
144 mskonsumen telpkonsumen msperalatan
X X X X Keterangan : R = Read
I = Insert
U = Update
D = Delete
Tabel 4.41 Keterangan analisis transaksi 2 Transaksi Relasi
e R
I
f U D R
I
g U D R
I
h U D R
I
U D
msbarang pembelianD pembelianH mssuplier telpsuplier
X X X X X X X X X X
msuser mskaryawan telpkaryawan msrental
X X X X
penawaranH
X X X
pembayaran msjabatan peminjamanH
X X X
telprental
X X X
msproyek
X X X X
145 peminjamanD penawaranD msjasa mskonsumen
X X X X
telpkonsumen
X X X
msperalatan Keterangan : R = Read
I = Insert
U = Update
D = Delete
Tabel 4.42 Keterangan analisis transaksi 3 Transaksi Relasi
i R
I
j U D R
msbarang
X
pembelianD
X X X X
pembelianH
X X X X
mssuplier
X
I
k U D R
I
l U D R
TelpSuplier msuser mskaryawan
X
X
X
TelpKaryawan msrental penawaranH pembayaran msjabatan
X X X X X
I
U D
146 peminjamanH
X X X X
TelpRental msproyek peminjamanD
X X X X
penawaranD
X X X
msjasa
X X X
mskonsumen
X
TelpKonsumen msperalatan
X Keterangan : R = Read
I = Insert
U = Update
D = Delete
4.1.3.3 Memilih Organisasi File Organisasi file yang digunakan adalah B-tree karena mendukung pengembalian data berdasarkan key match, pattern matching, range of values, dan part key specification. B-tree juga memelihara the order of the access key bahkan ketika file diupdate, sehingga menjadi lebih efisien. Selain itu index pada Btree bersifat dinamis, dalam arti masih berkembang sesuai perkembangan relasi.
147 4.1.3.4 Merancang User View Pada tahap ini dibuat user view yang bertujuan untuk merancang user interface yang memudahkan dalam menampilkan data yang dibutuhkan. Tabel 4.43 Rancangan User View Nama View ViewPembelian
ViewPeminjaman
Tabel
Field
msbarang
kdbarang, nama, harga
pembelianD
qty
msperalatan
kdperalatan,
nama,
harga_sewa
ViewPembayaran
ViewPenawaran
peminjamanD
qty
mskonsumen
kdkonsumen, nama
pembayaranD
tgl_bayar, jml_bayar
msbarang
kdbarang, nama
msperalatan
kdperalatan, nama
msjasa
jasa, biaya
penawaranD
qty_barang, qty_peralatan
ViewKaryawan
mskaryawan
kdkaryawan, alamat, kota
msjabatan
jabatan
msuser
userID, pass
telpkaryawan
telpKaryawan
nama,
148 ViewKonsumen
mskonsumen
kdkonsumen,
nama,
alamat, kota
ViewSuplier
telpkonsumen
telpkonsumen
mssuplier
kdsuplier,
nama,
alamat, kota
ViewRental
telpsuplier
telpsuplier
msrental
kdrental, nama, alamat, kota
telprental
telprental
4.1.3.5 Memprediksi Kebutuhan Kapasitas Disk Tujuan dari langkah ini adalah untuk menghitung kapasitas penyimpanan yang dibutuhkan oleh basis data. Estimasi disk di SQL Server 2000 menggunakan rumus sebagai berikut: Transaksi per bulan * 12 bulan * kapasitas tabel. Perkiraan kapasitas setiap tabel adalah sebagai berikut: 1. Tabel msbarang Table 4.44 Detail kapasitas tabel msbarang Atribut
Tipe Data
Length
kdbarang
Char
5 bytes
nama_barang
Varchar
20 bytes
harga
Integer
16 bytes
stok
Integer
16 bytes
149 Kapasitas dari tabel msbarang adalah 57 bytes Penambahan barang masuk setiap bulan 100 entri Dalam satu tahun pertumbuhan tabel msbarang adalah : 100 * 12 * 57 = 68400 bytes = 66,8 Kbytes
2. Tabel pembelianD Tabel 4.45 Detail kapasitas tabel pembelianD Atribut
Tipe Data
Length
kdpembelian
Char
5 bytes
kdbarang
Varchar
5 bytes
qty
Integer
16 bytes
Kapasitas tabel pembelianD adalah 26 bytes Penambahan transaksi pembelian setiap bulan 10 entri Dalam satu tahun pertumbuhan tabel pembelianD: 10 * 12 * 26 = 3120 bytes = 3,05 Kbytes
3. Tabel pembelianH Tabel 4.46 Detail kapasitas tabel pembelianH Atribut
Tipe Data
Length
kdpembelian
Char
5 bytes
kdsuplier
Char
5 bytes
kdkaryawan
Char
5 bytes
tgl_pembelian
Datetime
8 bytes
150 Kapasitas tabel pembelianH adalah 23 bytes Penambahan transaksi pembelian setiap bulan 10 entri Dalam satu tahun pertumbuhan tabel pembelianH : 10 * 12 * 23 = 2760 bytes = 2,7 Kbytes
4. Tabel mssuplier Tabel 4.47 Detail kapasitas tabel mssuplier Atribut
Tipe Data
Length
kdsuplier
Char
5 bytes
nama_suplier
Varchar
20 bytes
alamat_suplier
Varchar
30 bytes
kota
Varchar
20 bytes
Kapasitas tabel mssuplier 85 bytes Penambahan suplier setiap bulan 5 entri Dalam satu tahun pertumbuhan tabel mssuplier : 5 * 12 * 85 = 5100 bytes = 5 Kbytes
5. Tabel TelpSuplier Tabel 4.48 Detail kapasitas tabel TelpSuplier Atribut
Tipe Data
Length
NoTelpSuplier
numeric
7 bytes
kdsuplier
Char
5 bytes
Kapasitas tabel TelpSuplier 12 bytes
151 Penambahan no telp suplier setiap bulan 5 entri Dalam satu tahun pertumbuhan tabel TelpSuplier : 5 * 12 * 12 = 720 bytes = 0,7 Kbytes
6. Tabel msuser Tabel 4.49 Detail kapasitas tabel msuser Atribut
Tipe Data
Length
userID
Char
20 bytes
pass
Varchar
35 bytes
status
Varchar
1 bytes
login
Integer
2 bytes
Kapasitas tabel msuser 58 bytes Penambahan user setiap bulan 1 entri Dalam satu tahun pertumbuhan tabel msuser : 1 * 12 * 58 = 696 bytes = 0,68 Kbytes
7. Tabel mskaryawan Tabel 4.50 Detail kapasitas tabel mskaryawan Atribut
Tipe Data
Length
kdkaryawan
Char
5 bytes
userID
Char
20 bytes
kdjabatan
Char
5 bytes
nama_karyawan
Varchar
20 bytes
152 alamat_karyawan
Varchar
30 bytes
kota
Varchar
20 bytes
Kapasitas tabel mskaryawan 100 bytes Penambahan karyawan setiap bulan 100 entri Dalam satu tahun pertumbuhan tabel mskaryawan : 100 * 12 * 100 = 120000 bytes = 117,2 Kbytes
8. Tabel TelpKaryawan Tabel 4.51 Detail kapasitas tabel TelpKaryawan Atribut
Tipe Data
Length
NoTelpKaryawan
numeric
7 bytes
kdkaryawan
Char
5 bytes
Kapasitas tabel TelpKaryawan 12 bytes Penambahan no telp karyawan satu bulan 100 entri Dalam satu tahun pertumbuhan tabel TelpKaryawan : 100 * 12 * 12 = 14400 bytes = 14,1 Kbytes
9. Tabel msrental Tabel 4.52 Detail kapasitas tabel msrental Atribut
Tipe Data
Length
kdrental
Char
5 bytes
nama_rental
Varchar
20 bytes
alamat_rental
Varchar
30 bytes
153 Varchar
kota
20 bytes
Kapasitas tabel msrental 75 bytes Penambahan rental dalam satu bulan 2 entri Dalam satu tahun pertumbuhan tabel msrental : 2 * 12 * 75 = 1800 bytes = 1,76 Kbytes
10. Tabel penawaranH Tabel 4.53 Detail kapasitas tabel penawaranH Atribut
Tipe Data
Length
kdpenawaran
Char
5 bytes
kdkonsumen
Char
5 bytes
kdkaryawan
Char
5 bytes
kdproyek
Char
5 bytes
nama_penawaran
Varchar
20 bytes
tgl_penawaran
Datetime
8 bytes
jumlah_penawaran
Integer
16 bytes
Kapasitas tabel penawaranH 64 bytes Penambahan transaksi penawaran setiap bulan 1 entri Dalam satu tahun pertumbuhan tabel penawaranH : 1 * 12 * 64 = 756 bytes = 0,74 Kbytes
154 11. Tabel pembayaranH Tabel 4.54 Detail kapasitas tabel pembayaranH Atribut
Tipe Data
Length
kdpembayaran
Char
5 bytes
kdkaryawan
Char
5 bytes
kdproyek
Char
5 bytes
tgl_pembayaran
Datetime
8 bytes
tgl_pelunasan
Datetime
8 bytes
Kapasitas tabel pembayaran 31 bytes Penambahan transaksi pembayaran satu bulan 2 entri Dalam satu tahun pertumbuhan tabel pembayaran : 2 * 12 * 31 = 744 bytes = 0,73 Kbytes
12. Tabel msjabatan Tabel 4.55 Detail kapasitas tabel msjabatan Atribut
Tipe Data
Length
kdjabatan
Char
6 bytes
jabatan
Varchar
20 bytes
Kapasitas tabel msjabatan 26 bytes Tabel msjabatan tidak mengalami pertambahan Dalam satu tahun pertumbuhan tabel msjabatan : 0* 12 * 26 = 0 bytes = 0 Kbytes
155 13. Tabel peminjamanH Tabel 4.56 Detail kapasitas tabel peminjamanH Atribut
Tipe Data
Length
kdkaryawan
Char
5 bytes
kdpeminjaman
Char
5 bytes
kdperalatan
Char
5 bytes
kdrental
Char
5 bytes
tgl_pinjam
Datetime
8 bytes
tgl_kembali
Datetime
8 bytes
Kapasitas tabel peminjamanH 31 bytes Penambahan transaksi peminjaman satu bulan 1 entri Dalam satu tahun pertumbuhan tabel peminjamanH : 1 * 12 * 31 = 372 bytes = 0,36 Kbytes
14. Tabel TelpRental Tabel 4.57 Detail kapasitas tabel TelpRental Atribut
Tipe Data
Length
NoTelpRental
Numeric
7 bytes
kdrental
Char
5 bytes
Kapasitas tabel TelpRental 12 bytes Penambahan no telp rental dalam satu bulan 2 entri Dalam satu tahun pertumbuhan tabel TelpRental : 2 * 12 * 12 = 288 bytes = 0,28 Kbytes
156 15. Tabel msproyek Tabel 4.58 Detail kapasitas tabel msproyek Atribut
Tipe Data
Length
kdproyek
Char
5 bytes
nama_proyek
Varchar
20 bytes
alamat_proyek
Varchar
30 bytes
kota
Varchar
20 bytes
tgl_mulai
Datetime
8 bytes
tgl_selesai
Datetime
8 bytes
harga_proyek
Integer
16 bytes
Kapasitas tabel msproyek 107 bytes Penambahan transaksi proyek dalam satu bulan 1 entri Dalam satu tahun pertumbuhan tabel msproyek : 1 * 12 * 107 = 1284 bytes = 1,25 Kbytes
16. Tabel pembayaranD Tabel 4.59 Detail kapasitas tabel pembayaranD Atribut
Tipe Data
Length
kdpembayaran
Char
5 bytes
kdkonsumen
Char
5 bytes
jml_pembayaran
Integer
16 bytes
tgl_pembayaran
Integer
16 bytes
Kapasitas tabel pembayaranD 42 bytes
157 Penambahan transaksi pembayaran satu bulan 2 entri Dalam satu tahun pertumbun tabel pembayaranD : 2 * 12 * 42 = 1008 bytes = 0,98 Kbytes
17. Tabel peminjamanD Tabel 4.60 Detail kapasitas tabel peminjamanD Atribut
Tipe Data
Length
kdkaryawan
Char
5 bytes
kdpeminjaman
Char
5 bytes
kdperalatan
Char
5 bytes
qty
Integer
16 bytes
Kapasitas tabel peminjamanD 31 bytes Penambahan transaksi peminjaman satu bulan 1 entri Dalam satu tahun pertumbuhan tabel peminjamanD : 1 * 12 * 31 = 372 bytes = 0,36 Kbytes
18. Tabel penawaranD Tabel 4.61 Detail kapasitas tabel penawaranD Atribut
Tipe Data
Length
kdpenawaran
Char
5 bytes
kdperalatan
Char
5 bytes
kdbarang
Char
5 bytes
kdjasa
Char
5 bytes
158 qty_barang
Integer
16 bytes
qty_peralatan
Integer
16 bytes
Kapasitas tabel penawaranD 52 bytes Penambahan transaksi penawaran satu bulan 1 entri Dalam satu tahun pertumbuhan tabel penawaranD : 1 * 12 * 52 = 624 bytes = 0,6 Kbytes
19. Tabel msjasa Tabel 4.62 Detail kapasitas tabel msjasa Atribut
Tipe Data
Length
kdjasa
Char
5 bytes
jasa
Varchar
20 bytes
biaya
money
5 bytes
Kapasitas tabel msjasa 30 bytes Penambahan jasa dalam satu bulan 5 entri Dalam satu tahun pertumbuhan tabel msjasa : 5 * 12 * 30 = 1500 bytes = 1,46 Kbytes
20. Tabel mskonsumen Tabel 4.63 Detail kapasitas tabel mskonsumen Atribut
Tipe Data
Length
kdkonsumen
Char
5 bytes
nama_konsumen
Varchar
20 bytes
159 alamat_konsumen
Varchar
30 bytes
kota
Varchar
20 bytes
Kapasitas tabel mskonsumen 75 bytes Penambahan konsumen dalam satu bulan 2 entri Dalam satu tahun pertumbuhan tabel mskonsumen : 2 * 12 * 75 = 1800 bytes = 1,75 Kbytes
21. Tabel TelpKonsumen Tabel 4.64 Detail kapasitas tabel TelpKonsumen Atribut
Tipe Data
Length
NoTelpKonsumen
Numeric
7 bytes
kdkonsumen
Char
5 bytes
Kapasitas tabel TelpKonsumen 12 bytes Penambahan no telp konsumen satu bulan 2 entri Dalam satu tahun pertumbuhan tabel TelpKonsumen : 2 * 12 * 12 = 288 bytes = 0,28 Kbytes
22. Tabel msperalatan Tabel 4.65 Detail kapasitas tabel msperalatan Atribut
Tipe Data
Length
kdperalatan
Char
5 bytes
nama_peralatan
Varchar
20 bytes
harga_sewa
Integer
16 bytes
160 Integer
stok
16 bytes
Kapasitas tabel msperalatan 57 bytes Penambahan peralatan dalam satu bulan 10 entri Dalam satu tahun pertumbuhan tabel msperalatan : 10 * 12 * 57 = 6840 bytes = 6,68 Kbytes
23. Total Semua Tabel Tabel 4.66 Pertumbuhan total kapasitas dalam aplikasi basis data Nama Tabel
Kapasitas yang dibutuhkan dalam satu tahun
msbarang
66,8 Kbytes
pembelianD
3,05 Kbytes
pembelianH
2,7 Kbytes
mssuplier
5 Kbytes
TelpSuplier
0,72 Kbytes
msuser
0,68 Kbytes
mskaryawan
117,2 Kbytes
TelpKaryawan
14,1 Kbytes
msrental
1,76 Kbytes
penawaranH
0,74 Kbytes
pembayaranH
0,73 Kbytes
msjabatan
0 Kbytes
peminjamanH
0,36 Kbytes
TelpRental
0,28 Kbytes
161 msproyek
1,25 Kbytes
pembayaranD
0,98 Kbytes
peminjamanD
0,36 Kbytes
penawaranD
0,6 Kbytes
msjasa
1,46 Kbytes
mskonsumen
1,75 Kbytes
TelpKonsumen
0,28 Kbytes
msperalatan
6,68 Kbytes
Total kapasitas yang dibutuhkan dalam 1 tahun adalah 227,18 Kbytes Total kapasitas yang dibutuhkan dalam 5 tahun adalah 5 * 227,18 = 1.135,9 Kbytes = 1,1 Mbytes
4.1.3.6 Merancang Mekanisme Keamanan Sebuah sistem basis data yang baik seharusnya memiliki mekanisme keamanan yang baik pula. Oleh karena itu, dalam sistem basis data PT. Nabatindah Sejahtera ini diberlakukan mekanisme keamanan sebagai berikut: 1. Perlindungan Perangkat Keras Komputer yang nantinya akan di-install aplikasi dari sistem basis data ini, akan ditempatkan pada ruangan yang
terkunci.
Jadi
setiap
orang
yang
ingin
menggunakan komputer tersebut harus memiliki kunci pintu untuk masuk ke ruangan tersebut.
162 2. Keamanan Sistem Keamanan sistem meliputi perlindungan akses dan penggunaaan sistem basis data dengan adanya level akses seperti, penggunaan username dan password. 3. Keamanan Data Keamanan data meliputi perlindungan akses dan penggunaan objek dari sistem basis data, yaitu adanya view (staff view). Keamanan sistem mengatur pengaksesan dan penggunaan basis data. Sistem membuat halaman login, user diminta untuk memasukkan username dan password, sehingga user yang tidak memiliki username atau tidak memiliki password maka tidak akan bisa masuk ke dalam sistem. Sedangkan untuk keamanan data, berhubungan dengan relasi basis data dan aksi yang user lakukan terhadap relasi tersebut, misalnya aksi pemilihan, pengisian, pengubahan, dan penghapusan data. Berikut ini akan ditampilkan matriks referensi silang antara user dan relasi. Tujuannya adalah untuk membatasi hak akses user terhadap relasi yang ada. Tabel 4.67 Detail tentang hak akses 1 Transaksi Relasi msbarang
Logistik R
I
X X
M arketing
U D R
I
Personalia
U D R
I
U D
163 pembelianD
X X
pembelianH
X X
mssuplier
X X
TelpSuplier
X X
msuser
X X X
X X X
X X X
mskaryawan
X X
TelpKaryawan
X X
msrental
X X
penawaranH
X
pembayaranH msjabatan
X
peminjamanH
X X
TelpRental
X X
msproyek
X
pembayaranD peminjamanD
X X
penawaranD msjasa mskonsumen
X X
TelpKonsumen
X X
msperalatan
X X
Keterangan : R = Read
I = Insert
U = Update
D = Delete
164 Tabel 4.68 Detail tentang hak akses 2 Transaksi
Relasi msbarang
R
M anajer
Admin dan
Proyek
Keuangan
I
U D R
X
I
Direktur
U D R
X
X X X
pembelianD
X
X X X
pembelianH
X
X X X
mssuplier
X
X X X
TelpSuplier
X
X X X
I
U D
msuser
X X X
X X X X X X X
mskaryawan
X
X
X X X
TelpKaryawan
X
X X X
msrental
X
X X X X X X
penawaranH
X X
X
pembayaranH
X X
X X X X X
msjabatan
X
X
peminjamanH
X
X X X
TelpRental
X
X X X
X
X X X
msproyek
X X
pembayaranD
X X X X X
peminjamanD
X
X X X
penawaranD
X
X X X
X
X X X
msjasa
X
165 mskonsumen
X
TelpKonsumen msperalatan
X
X
X X X
X
X X X
X
X X X
Keterangan : R = Read 4.2
I = Insert
U = Update
D = Delete
Perancangan Aplikasi Pada tahap ini akan menjelaskan secara bertahap bagaimana aplikasi ini akan dibuat dan bagaimana aplikasi ini akan berjalan. Langkah-langkah pembuatan aplikasi ini dibagi tiga tahap, yaitu: 1. Struktur menu 2. Perancangan layar 3. Cara kerja aplikasi 4.2.1
S truktur Menu Bagian struktur menu aplikasi untuk setiap user dengan tingkatan hak yang berbeda. Dalam aplikasi ini hanya ada satu tingkatan user yaitu Administrasi dan Keuangan.
166
Gambar 4.15 Struktur menu
167 4.2.2
State Transition Diagram
Gambar 4.16 State Transition Diagram Awal Login
168
Gambar 4.17 State Transition Diagram M enu Utama
Gambar 4.18 State Transition Diagram M enu File
169
Gambar 4.19 State Transition Diagram M enu Transaksi
170
Gambar 4.20 State Transition Diagram M enu Data
171
Gambar 4.21 State Transition Diagram Pembelian
172
Gambar 4.22 State Transition Diagram Penawaran
173
Gambar 4.23 State Transition Diagram Peminjaman
Klik Update Ubah Data Pembayaran
Tampikan Form Pembayaran
Klik Submenu Pembayaran
174
Gambar 4.24 State Transition Diagram Pembayaran
175
Gambar 4.25 State Transition Diagram Barang
176
Gambar 4.26 State Transition Diagram Peralatan
177
Gambar 4.27 State Transition Diagram Karyawan
178
Gambar 4.28 State Transition Diagram Konsumen
179
Gambar 4.29 State Transition Diagram Suplier
180
Gambar 4.30 State Transition Diagram Rental
181
Gambar 4.31 State Transition Diagram Proyek
4.2.3
Perancangan Layar Pada tahap ini, perancangan layar dibagi menjadi dua macam, yaitu : perancangan layar masuk dan layar keluar. Pada layar masuk terdapat tampilan layar dari form yang digunakan untuk memasukkan data. Pada layar keluar terdapat tampilan layar dari form maupun laporan yang digunakan untuk menampilkan data yang telah dimasukkan maupun dianalisis sehingga mempermudah pemakai untuk melihat hasil dari
182 proses permintaan barang, pembelian, penawaran jasa, pembagian tugas, dan pembayaran utang konsumen. 4.2.3.1 Perancangan Layar Masuk
Gambar 4.32 Perancangan layar Login
Gambar 4.33 Perancangan layar M ain M enu
183
Gambar 4.34 Perancangan layar Data Barang
Gambar 4.35 Perancangan layar Data Suplier
184
Gambar 4.36 Perancangan layar Data Peralatan
Gambar 4.37 Perancangan layar Data Rental
185
Gambar 4.38 Perancangan layar Data Konsumen
Gambar 4.39 Perancangan layar Data Proyek
186
Gambar 4.40 Perancangan layar Data Karyawan
Gambar 4.41 Perancangan layar Data Jasa
187
Gambar 4.42 Perancangan layar Transaksi Pembelian
188
Gambar 4.43 Perancangan layar Transaksi Peminjaman
189
Gambar 4.44 Perancangan layar Transaksi Penawaran
190
Gambar 4.45 Perancangan layar Transaksi Pembayaran
191 4.2.3.2 Perancangan Layar Keluar
Gambar 4.46 Perancangan laporan Peminjaman
Gambar 4.47 Perancangan laporan Pembelian
192
Gambar 4.48 Perancangan laporan Pembayaran
Gambar 4.49 Perancangan laporan Penawaran
193 4.2.4
Tampilan Aplikasi Pada tahap ini, aplikasi dibuat untuk mempermudah penulisan. Aplikasi ini membagi cara kerja aplikasi menjadi 3 tahap, yaitu: 1. Login 2. Tabel M aster / Data 3. Transaksi 4. Laporan Transaksi 4.2.4.1 Login
Gambar 4.50 Form menu Login
194
Gambar 4.51 Form menu Utama
195 4.2.4.2 Tabel Master / Data
Gambar 4.52 Form master data barang
196
Gambar 4.53 Form master Peralatan
197
Gambar 4.54 Form master Karyawan
198
Gambar 4.55 Form master Proyek
199
Gambar 4.56 Form master Jasa
200
Gambar 4.57 Form master Rental
201
Gambar 4.58 Form master Suplier
202
Gambar 4.59 Form master Konsumen
203 4.2.4.3 Transaksi
Gambar 4.60 Form tansaksi pembelian
204
Gambar 4.61 Form tansaksi peminjaman
205
Gambar 4.62 Form tansaksi pembayaran
206
Gambar 4.63 Form tansaksi penawaran
207 4.2.4.4 Laporan Transaksi
Gambar 4.64 Form laporan pembelian
Gambar 4.65 Form laporan peminjaman
208
Gambar 4.66 Form laporan pembayaran
209
Gambar 4.67 Form laporan penawaran
4.3
Rencana Implementasi Rencana implementasi merupakan suatu hal yang dapat menentukan apakah sistem yang diusulkan dapat menyelesaikan permasalahan yang dihadapi atau dapat menambah masalah baru. Pada tahap implementasi ini, diperlukan perencanaan yang matang untuk menjalankan sistem tersebut agar dapat berjalan sesuai dengan yang diharapkan. Berikut ini merupakan bagian dari tata laksana sistem yang meliputi spesifikasi perangkat keras, spesifikasi perangkat lunak, dan cara pengoperasian aplikasi tersebut:
210 4.3.1
Kebutuhan Hardware Spesifikasi hardware yang diperlukan untuk implementasi aplikasi basis data pada PT. Nabatindah Sejahtera adalah sebagai berikut: 1. Server Processor
:
Pentium 4 2.6 Ghz
Memory
:
2Gb
Hardisk
:
250GB
M onitor
:
15”
Printer
:
Canon IP 1300
Jumlah
:
1 unit
Letak
:
Ruang Khusus Server
Processor
:
Pentium 3 1.4 Ghz
Memory
:
128 M B
Hardisk
:
40 GB
M onitor
:
15”
Printer
:
Canon IP 1300
Jumlah
:
5 unit
Letak
:
Bagian direktur, bagian logistik,
2. Client
bagian personalia, bagian keuangan, bagian manajemen proyek 4.3.2
Kebutuhan Software Spesifikasi software yang diperlukan untuk pengimplementasian aplikasi basis data pada PT. Nabatindah Sejahtera adalah sebagai berikut:
211 1. Server Sistem Operasi Microsoft Windows Server 2003 Database Microsoft SQL Server 2000 Microsoft Visual Basic 6.0 Microsoft Office 2003 Norton Antivirus 2007 2. Client Sistem Operasi Microsoft Windows 98 / XP Microsoft Office 2003 Norton Antivirus 2007 4.3.3
Instalasi Pada tahap ini akan dilakukan instalasi hardware dan software yang diperlukan seperti yang sudah dijelaskan. Penginstalasian hardware akan dilakukan pada server yang ada di dalam ruang server dan dilanjutkan penginstalan untuk setiap client atau pengguna lainnya. Tahap selanjutnya adalah penginstalan software di dalam server untuk penyesuaian ke semua client. Pemasangan software di dalam client juga akan disesuaikan dengan pemasangan software yang ada di server.
4.3.4
Implementasi Basis data 4.3.4.1 Implementasi S truktur Tabel Implementasi struktur tabel yang sudah disebutkan dalam bab sebelumnya akan dilakukan secara berurutan. Dalam pengimplementasian struktur tabel memerlukan langkah-langkah yang disesuaikan dengan SQL Server 2002 seperti berikut :
212 1. M engimplementasi domain-domain atribut yang ada dengan user-defined tipe data 2. M emberikan batasan-batasan untuk masing-masing tipe data. 3. M endefinisikan semua struktur tabel dengan fieldfield-nya. 4.3.4.2 Implementasi Enterprise Constraint Pada tahap ini akan dilakukan implementasi enterprise constraint akan dilakukan pengecekkan setiap constraint yang akan disesuaikan dengan yang telah dibuat dalam bab-bab sebelumnya. Constraint yang didapat berasal dari analisis terhadap data yang berhubungan dengan aplikasi basis data. Sehingga setiap constraint akan sesuai dengan data yang akan dimasukkan. 4.3.4.3 Implementasi View Pada tahap ini akan dilakukan implementasi view terhadap beberapa data yang sudah dibahas dalam bab-bab sebelumnya. Pada saat pengimplementasian view akan dilakukan menurut aturan dan batasan sesuai dengan SQL Server 2000. 4.3.5
Konversi Data Pada tahap ini akan dilakukan pengkonversian data dari perusahaan yang lama ke dalam perusahaan yang baru atau aplikasi basis data. Data-data dari perusahaan yang lama masih dalam bentuk kertas dan file office dan bentuk hardcopy lainnya.
213 Cara konversi data yang akan digunakan dengan meng-input satupersatu. Setiap data yang akan dimasukkan ke dalam sistem basis data harus melalui form pengisiannya. Pengkonversian data hanya dapat dilakukan oleh operator yang sudah ditugaskan. Operator tersebut sering disebut admin. Admin memiliki semua hak terhadap semua tabel yang ada di dalam basis data. 4.3.6 Evaluasi / Testing Pada tahap ini akan pengevaluasian tentang program aplikasi basis data. Pengevaluasian ini akan dilakukan oleh admin dengan pengawasan dari pihak perusahaan. Tujuan pengevaluasian program ini adalah untuk menemukan kesalahan dan mengetahui apakah kebutuhan yang diperlukan oleh pengguna sudah dapat dipenuhi. Apabila pengevaluasian
sudah
dilakukan,
maka
akan
diketahui
apakah
permasalahan yang dihadapi sudah mendapatkan pemecahannya. Setelah aplikasi sistem basis data ini diimplementasikan pada PT. Nabatindah Sejahtera maka didapatkan sebuah hasil wawancara dengan Direktur. Dari wawancara tersebut didapatkan penjelasan bahwa aplikasi yang dibuat cukup mudah digunakan, sedangkan bagi karyawan yang belum memahami komputer akan dilakukan pelatihan terhadap sistem basis data dan aplikasi yang dibuat. Dalam wawancara tersebut juga ditambahkan oleh pihak perusahaan bahwa dengan adanya aplikasi serta sistem basisdata-nya mempermudah perusahaan dalam menjalankan transaksi yang ada serta
214 membantu dalam pengambilan keputusan dalam PT. Nabatindah Sejahtera. Hasil wawancara dapat dilihat didalam lampiran. 4.3.7
Training Pada tahap ini akan dilakukan training untuk karyawan-karyawan yang akan ditugaskan dalam pengoperasian aplikasi basis data. Training tersebut akan dilakukan sampai karyawan yang bersangkutan mengerti dan dapat menggunakan program basis data secara optimal. Tahap training ini akan dilakukan sebelum penggunaan yang sebenarnya dalam lingkungan perusahaan. Proses tahap training tersebut akan dilakukan sekitar satu minggu dengan peserta sebanyak 12 orang.
4.3.8
Personil Pada tahap ini akan ditentukan personil yang diperlukan oleh PT. Nabatindah Sejahtera. Personil yang dibutuhkan adalah admin, dan admin tersebut harus mengerti sistem operasi Microsoft dan sistem basis data pada SQL Server 2000. Admin tersebut bertugas dalam maintenance untuk program aplikasi basis data terhadap sistem operasi pada setiap komputer client dan basis data yang ada pada komputer server. Tugas yang lain adalah melakukan konversi data dari perusahaan yang lama ke dalam database. Admin juga melakukan peng-input-an terhadap datadata yang baru terjadi dalam perusahaan. Karyawan yang dibutuhkan oleh PT. Nabatindah Sejahtera akan dilakukan training untuk pemakaian aplikasi dengan cepat dan tepat sehingga dapat menghemat waktu dan pengerjaan proyek menjadi efisien.
215 Pengerjaan program aplikasi yang bagus tidak akan menghambat kelancaran transaksi-transaksi pada PT. Nabatindah Sejahtera. 4.3.9
Jadwal Implementasi Berikut ini adalah jadwal implementasi sistem basis data yang direncanakan: Tabel 4.69 Jadwal Implementasi Data
No.
Kegiatan
Bulan 1 1
1
2
3
Bulan 2 4
1
2
3
Bulan 3 4
1
2
3
Bulan 4 4
1
2
3
4
Pengadaan Hardware / X X Software
2.
Instalasi
3.
Implementasi Basis data
4.
Konversi Data
5.
Evaluasi/ Testing
6.
Training
X X X X X X X X X X X X X X X X X