57
BAB 3 ANALISIS SISTEM YANG SEDANG BERJALAN
3.1 Riwayat Perusahaan 3.1.1 Sejarah PT Abdibangun Buana PT. Abdibangun Buana yang pada mulanya bernama PT. Scanteknik Elektro Indonesia ini telah berdiri sejak tanggal 22 Oktober 1982. Perusahaan yang berlokasi di Gedung CCM lantai 7 Cikini Raya No 95 ini merupakan cabang dari induk perusahaan yang berada di Swedia dengan nama ABB, Asea Brown Boveri Ltd. PT. Abdibangun Buana bergerak dibidang pendistribusian alat – alat listrik. Alat – alat listrik yang didistribusi antara lain, seperti pemutus sirkuit, soft starter, relai monitor, dan lainnya. PT. Abdibangun Buana sendiri sudah mendapat banyak kepercayaan dari para kliennya seperti: Krakatau Steel, Indofood, Carefour, Gudang Garam, dan lain-lain.
57
58
3.2 Struktur Organisasi 3.2.1 Struktur Organisasi PT Abdibangun Buana
Gambar 3.1 Struktur Organisasi PT Abdibangun Buana
59
3.2.2 Struktur Organisasi Product Division
Gambar 3.2 Struktur Organisasi Product Division
60
3.2.3 Tugas dan Wewenang 3.2.3.1 Board of Director Bagian ini berisi para pemegang saham perusahaan PT Abdibangun Buana. 3.2.3.2 Managing Director Bagian ini bertanggung jawab terhadap apa yang terjadi terhadap perusahaan. 3.2.3.3 General Manager Bagian ini bertanggung jawab terhadap keputusan yang diambil oleh para kepala divisi. General manager bertanggung jawab juga terhadap Managing Director. 3.2.3.4 EDP (Electronic Data Processing) Bagian ini bertugas untuk memberikan laporan kepada pihak manajerial. 3.2.3.5 Power Division Bagian ini bertugas untuk menjual alat – alat listrik bertegangan tinggi (high voltage) - diatas 36000V - dan pembangunan proyek.
61
3.2.3.6 Product Division Bagian ini bertugas untuk menjual alat – alat listrik yang memiliki voltase yang rendah (low voltage) sekitar 110V – 1000V. 3.2.3.7 MV Panel Division Bagian ini bertugas untuk menjual alat – alat listrik yang memiliki tegangan yang tidak terlalu besar (medium voltage) sekitar 1000V – 36000V. 3.2.3.8 Admin & Logistic Division Bagian ini bertugas untuk mengatur stocking barang, import barang, pengiriman barang, packing, pengambilan barang dari gudang, dan lain – lain. 3.2.3.9 Human Resource & General Administration Departement Bagian ini bertugas untuk kepengurusan karyawan, dan pengurusan biaya atau iuran perusahaan. 3.2.3.10 Principal Comm Sub Section Bagian ini bertugas untuk menentukan harga barang yang akan dijual agar dapat memberikan keuntungan yang semaksimal mungkin.
62
3.2.3.11 Evaluation Bagian ini bertugas untuk memberikan hasil analisa – analisa yang dibutuhkan dalam pengambilan keputusan dalam menentukan harga suatu barang. 3.2.3.12 Secretariat Bagian ini bertugas untuk menerima laporan yang datang dari luar perusahaan yang nantinya akan diproses kembali, seperti dokumen Permintaan Penawaran (PP).
3.3 Prosedur yang Sedang Berjalan Sistem yang sedang berjalan di PT Abdibangun Buana masih menggunakan sistem manual, yakni masih menggunakan Excel dan Word dalam pengarsipan data – datanya sehingga hasilnya kadang tidak sesuai dengan apa yang diharapkan.
3.3.1 Sistem Permintaan Penawaran Pelanggan melakukan pemesanan kepada pihak Product Division melalui telepon, email, surat, dan berbagai macam media komunikasi lainnya. Lalu permintaan Penawaran Pelanggan (PP) tersebut akan dicatat kedalam buku PP. PP yang diperoleh akan dipelajari dan dilihat apakah produk yang dipesan ada hubungannya dengan divisi yang menangani produk tertentu.
63
Apabila produk yang dipesan ada hubungannya dengan divisi lain, maka pihak sales akan menghubungi divisi yang bersangkutan untuk dipindah tangankan. Apabila pelanggan sudah menghubungi divisi yang tepat, maka pihak sales akan mengecek apakah barang tersebut terdapat di dalam PL (Price List) atau tidak, apabila barang terdapat di dalam PL, maka pihal sales department akan mengirim PL kepada pelanggan. Namun apabila barang tidak ada di PL, maka pihak sales department akan meminta PL kepada pihak marketing department dengan membuat surat surat permintaan PL sebagai bukti
permintaan.
Selanjutanya
bagian
marketing
department
akan
mengirimkan PL beserta surat pengantar PL sebagai bukti untuk pengiriman PL. Melalui PL yang dikirimkan kepada pihak marketing department, sales department membuat surat penawaran dan mencatat nomor penawaran di buku penawaran, lalu buku penawaran tersebut akan diarsipkan. Selanjutnya pihak sales department akan mengirimkan surat penawaran kepada pelanggan. (Diagram Aliran Dokumen (DAD) sistem ini dapat dilihat pada gambar 3.3)
3.3.2 Sistem Penerimaan Order Pihak sales department akan menerima PO dari pelanggan lalu mencatat PO ke dalam buku log PO dan membuat salinan PO, setelah mencatatnya buku log PO akan diarsipkan. Pihak sales department akan mengecek pelanggan dengan data pelanggan yang sudah ada melalui PO dan
64
buku log PO, di tahap ini akan dapat ditentukan apakah pelanggan merupakan pelanggan baru atau tidak. Apabila pelanggan baru maka kita akan menuju proses penentuan harga jual, namun apabila pelanggan lama maka pihak sales department akan mengecek jenis pelanggan tersebut apakah distributor, panel builder, atau end user. Setelah itu pihak sales department akan mengecek pembayaran pelangan tersebut apakah pelanggan tersebut pernah memiliki masalah dalam pembayaran atau tidak, dengan meminta catatan account receivable kepada pihak admin & log division. Apabila pelanggan tersebut memiliki permasalahan dalam pembayarannya, maka pihak sales department akan meminta persetujuan sales department head untuk disetujui, apabila sales department tidak menyetujui maka transaksi selesai dan pihak sales department akan menghubungi pihak pelanggan. Namun apabila pihak sales department head menyetujui maka PO akan ditanda tangani lalu berubah menjadi CPOA (customer purchase order approval). Apabila pihak sales department tidak mendapat pelanggan tersebut bermasalah maka PO tersebut akan ditandatangani oleh pihak sales department. (Diagram Aliran Dokumen (DAD) sistem ini dapat dilihat pada gambar 3.4)
3.3.3 Sistem Penentuan Harga Jual Barang Sistem ini terjadi apabila ada pelanggan baru yang ingin membeli barang dari PT ABB. Pihak sales akan mengecek pelanggan berdasarkan salinan PO (Purchase Order) yang diperolehnya. Setelah mengecek
65
pelanggan, maka pihak sales akan melakukan interview kepada pihak pelanggan dan meminta surat dagang kepada pelanggan dengan cara datang ke tempat pelanggan yang nantinya digunakan sebagai bukti apabila pelanggan tersebut merupakan distributor atau panel builder. Apabila pelanggan memiliki surat dagang, maka pihak sales akan mengirim surat dagang, catatan interview, serta salinan PO kepada pihak secretariat. Lalu dari pihak secretariat akan menyerahkan ketiga surat tersebut kepada pihak sales department head dari ketiga surat tersebut sales department head dapat menentukan apakah pelanggan tersebut termasuk distributor atau panel builder. Namun apabila pelanggan tidak memiliki surat dagang, maka pihak sales akan mengirim catatan interview dan salinan PO kepada secretariat. Lalu pihak secretariat akan memberikan diskon end user kepada pihak pelanggan. (Diagram Aliran Dokumen (DAD) sistem ini dapat dilihat pada gambar 3.5)
3.3.4 Sistem Pembayaran Pihak sales department akan mengirimkan CPOA yang belum dibayar kepada pihak fin & acc department, lalu pihak fin & acc department akan menanyakan jenis pembayaran kepada pihak customer. Apabila customer ingin membayar dengan kredit, maka sales department akan mengecek apakah customer bermasalah atau tidak. Apabila customer tidak bermasalah maka proses akan berlanjut kepada cara pembayaran kredit, apabila customer
66
bermasalah maka sales department akan menolak kredit yang diajukan oleh customer, selanjutnya akan ditanyakan apakah customer ingin melanjutkan transaksi atau tidak, apabila tidak maka transaksi selesai. Apabila customer ingin melanjutkan transaksi, maka user harus membayar dengan tidak menggunakan kredit. Apabila customer tidak membayar dengan kredit, maka customer harus mengirimkan bukti transfer kepada pihak fin & acc department yang selanjutnya bukti transfer tersebut akan diarsipkan, apabila pembayaran sudah dilakukan, maka pihak fin & acc department akan menginformasikan hasil pembayaran kepada pihak customer. (Diagram Aliran Dokumen (DAD) sistem ini dapat dilihat pada gambar 3.6)
3.3.5 Sistem Pembayaran Kredit Pihak finn & acc department beserta customer akan melakukan kesepakatan tentang cara pembayaran mulai dari jatuh tempo, penentuan bunga, dan lain – lain. Apabila pembayaran sudah jatuh tempo, maka pihak finn & acc department akan menagih kepada customer, dan customer akan melakukan pembayaran. Apabila pembayaran yang dilakukan bermasalah, maka pihak finn & acc department akan memberikan denda sanksi kepada customer. Apabila pembayaran customer tidak bermasalah, maka proses akan selesai. (Diagram Aliran Dokumen (DAD) sistem ini dapat dilihat pada gambar 3.7)
67
3.3.6 Sistem Komparasi Harga Kompetitor Pihak sales department head akan meminta perbandingan harga PT ABB dengan kompetitor lainnya. Selanjutnya pihak evaluation akan mengirim hasil perbandingan kepada pihak sales department head. Lalu pihak sales department head akan menganalisa hasil perbandingan harga tersebut, lalu akan menentukan apakah akan ada perubahan harga jual atau tidak. Apabila merubah harga jual, maka pihak sales department head akan mengirim hasil perubahan harga kepada pihak evaluation untuk merubah PL (Price List). Namun apabila tidak terjadi perubahan harga, maka PL tidak akan berubah. (Diagram Aliran Dokumen (DAD) sistem ini dapat dilihat pada gambar 3.8)
3.3.7 Sistem Laporan Hasil Penjualan Pihak sales department head akan meminta untuk dibuatkan laporan hasil penjualan kepada jabotabek sect head, yaitu bagian yang mengurusi penjualan di wilayah Jakarta, Bogor, Tangerang, dan Bekasi. Pihak jabotabek sect head akan membuat laporan sesuai dengan kebutuhan pihak sales department head. Setelah membuat laporan tersebut, maka laporan akan dikirim kepada pihak sales department head yang nantinya akan digunakan dalam pengambilan keputusan. (Diagram Aliran Dokumen (DAD) sistem ini dapat dilihat pada gambar 3.9)
68
3.4 Diagram Aliran Dokumen 3.4.1 Penanganan, Permintaan, dan Penawaran
Gambar 3.3 Diagram Aliran Dokumen Penanganan, Permintaan, dan Penawaran
69
3.4.2 Penerimaan Order
Gambar 3.4 Diagram Aliran Dokumen Penerimaan Order
70
3.4.3 Penentuan Harga Jual Barang
Gambar 3.5 Diagram Aliran Dokumen Penentuan Harga Jual Barang
71
3.4.4 Sistem Pembayaran
Gambar 3.6 Diagram Aliran Dokumen Sistem Pembayaran
72
3.4.5 Sistem Pembayaran Kredit
Gambar 3.7 Diagram Aliran Dokumen Sistem Pembayaran Kredit
73
3.4.6 Komparasi Harga Kompetitor
Gambar 3.8 Diagram Aliran Dokumen Komparasi Harga Kompetitor
74
3.4.7 Laporan Hasil Penjualan
Gambar 3.9 Diagram Aliran Dokumen Laporan Hasil Penjualan
75
3.5 Analisis Kebutuhan Sistem 3.5.1 Kebutuhan Informasi 3.5.1.1 Di Bidang Penjualan 1.
Informasi pegawai meliputi kode pegawai, nama, alamat, tanggal lahir, jenis kelamin, nomor telepon, nomor fax, email, jabatan, divisi, dan kewarganegaraan.
2.
Informasi
customer
meliputi
kode
perusahaan,
nama
perusahaan, nomor telepon, email, nomor fax, alamat, jenis customer, dan potongan harga. 3.
Informasi barang meliputi tipe,
nomor referensi,
harga,
deskripsi, arus nominal, jumlah kutub, icu, aus gangguan, dan lain sebagainya. 4.
Data transaksi penjualan.
3.5.2 Kebutuhan Keamanan Data Keamanan data pada suatu perusahaan adalah hal yang wajib dilakukan demi mengurangi berbagai resiko keamanan data yang mungkin saja dapat terjadi di suatu perusahaan. Selain itu masalah kewenangan dan otoritas user yang menggunakan aplikasi termasuk pengaksesan data yang dipakai dalam aplikasi, juga sangat dibutuhkan. Oleh karena itu, dibutuhkan adanya suatu sistem yang berupa aplikasi yang dapat menangani masalah hak akses dan otoritas dalam pengaksesan data.
76
3.5.3 Kebutuhan Integrasi Data Perusahaan
membutuhkan
suatu
aplikasi
yang
mampu
menghubungkan antara satu data dengan data yang lainnya khususnya pada product division. Sehingga data satu dengan data yang lainnya dapat saling terhubung.
3.5.4 Kebutuhan Transaksi Perusahaan membutuhkan suatu aplikasi yang mampu meng-insert, meng-update, dan men-delete data – data proses penjualan ke dalam suatu media penyimpanan berupa basis data.
3.5.5 Permasalahan yang Dihadapi Setelah menganalisa dan mendapatkan informasi sistem yang ada serta wawancara langsung terhadap manager yang telah dilakukan sebelumnya, maka didapatkan beberapa permasalahan yang dihadapi oleh PT. Abdibangun Buana yaitu sebagai berikut: 1.
Proses pembuatan laporan pembangunan proyek baik berupa laporan bulanan maupun tahunan, pengusulan barang subsitusi bagi para konsumen yang akan memesannya, dan perhitungan biaya proyek masih menggunakan cara manual yaitu dengan tulis tangan, sehingga dapat menyebabkan terjadinya kesalahan dalam pendataan proses penjualan atau human error yang terjadi khususnya pada product division;
77
2.
Tidak adanya sistem basis data yang dapat mempercepat dan mempermudah proses peng-input-an dan peng-update-an data yang diperoleh, sehingga memperlambat proses peng-input-an dan pengupdatean data serta memperlambat kinerja dari para karyawan;
3.
Tidak adanya aplikasi yang memudahkan proses pemindahan data perbandingan harga para kompetitor terhadap barang tertentu yang telah diperoleh datanya dalam format excel, sehingga dalam membandingkan harga kompetitor menjadi kurang efisien.
4.
Rentannya keamanan dari data yang disimpan di dalam format excel, word, dan kertas/dokumen lainnya, karena minimnya fitur yang dimiliki kedua aplikasi tersebut dan kertas dapat dengan mudah hilang maupun rusak, sehingga dapat menyebabkan bocornya rahasia perusahaan dan hilangnya data.
3.5.6 Usulan Pemecahan Masalah Dari analisis permasalahan serta kebutuhan perusahaan, berikut adalah usulan pemecahan masalah yang dapat diberikan: 1.
Merancang dan membangun basis data agar data yang dibutuhkan dapat dengan cepat dan mudah diperoleh serta menghindari kerusakan dan kehilangan data akibat ditulis pada secarik kertas atau dibuat dalam sebuah dokumen maupun dalam format word/excel; dan
78
2.
Merancang dan membangun sebuah aplikasi yang dapat diintegrasikan atau dihubungkan dengan data perbandingan harga para kompetitor terhadap barang tertentu yang terdapat dalam format excel.
3.
Merancang dan membangun aplikasi yang dapat memberikan keamanan terhadap informasi data yang telah diperoleh dan disimpan.
3.6 Perancangan Basis Data Perancangan basis data merupakan proses pembuatan suatu rancangan untuk suatu basis data yang akan mendukung operasi dan tujuan perusahaan. Perancangan basis data terdiri dari tiga tahap, yakni: •
Perancangan basis data konseptual (conceptual database design);
•
Perancangan basis data logikal (logical database design); dan
•
Perancangan basis data fisikal (physical database design).
3.6.1 Perancangan Basis Data Konseptual (Conceptual Database Design) Perancangan basis data secara konseptual merupakan proses membangun suatu model informasi yang digunakan dalam suatu perusahaan, bebas dari semua pertimbangan fisik. Langkah-langkah penting dalam merancang sebuah basis data secara konseptual adalah: •
Mengidentifikasi tipe entity;
•
Mengidentifikasi tipe relationship;
79
•
Identifikasi dan asosiasi atribut dengan entity atau tipe relationship;
•
Menetapkan domain atribut;
•
Mengidentifikasi candidate dan primary key setiap entity;
•
Mempertimbangkan kegunaan dari konsep enhanced modeling (optional);
•
Memeriksa model untuk redundancy;
•
Validasi model konseptual lokal terhadap transaksi user; dan
•
Review model data konseptual lokal dengan user.
3.6.1.1 Mengidentifikasi Tipe Entity Tujuan langkah mengidentifikasi tipe entity yaitu untuk menentukan entitas utama yang dibutuhkan oleh view. Tabel 3.1 Mengidentifikasi Tipe Entity Nama Entity Pegawai
Deskripsi Menjelaskan
Alias Karyawan
Kejadian Setiap pegawai
informasi
melakukan
semua pegawai
tugas
yang bekerja di
dengan
PT.
aktivitas kerja
Abdibangun
di perusahaan.
Buana.
sesuai
80
Nama Entity Customer
Deskripsi
Alias
Menjelaskan
Pelanggan
Kejadian Pelanggan
informasi
melakukan
semua
pemesanan
customer
PT.
terhadap
Abdibangun
perusahaan.
Buana. TipeBarang
Menjelaskan
TipeProduk
semua
tipe
barang
yang
barang
memiliki satu atau
ada.
PO
Satu
banyak
tipe barang.
Menjelaskan
PO
Purchase
semua PO yang
order
masuk
ditangani oleh
ke
PT.Abdibangun
satu pegawai.
Buana. Lengkapan
Menjelaskan
Aksesoris
Setiap
semua
aksesoris yang
lengkapan yang
dijual
ada
Abdibangun
di
Abdibangun Buana.
PT.
Buana.
PT
81
Nama Entity Interlok
Deskripsi Menjelaskan semua kabel
Alias Kabel
Kejadian Setiap interlok
jenis
yang
dijual
interlok
pada
PT.
yang ada di PT.
Abdibangun
Abdibangun
Buana.
Buana.
3.6.1.2 Mengidentifikasi Tipe Relationship Pada langkah identifikasi tipe relationship ini bertujuan untuk mengidentifikasi relationship penting yang terjadi antar tipe entity yang telah diidentifikasi.
Gambar 3.10 ER Diagram Konseptual
82
Tabel 3.2 Mengidentifikasi Tipe Relationship Entity Name Multiplicity Relationship
Entity Name
Multiplicity
Pegawai
1..1
menangani
PO
0..*
Customer
1..1
membuat
PO
1..*
PO
1..*
Melibatkan
TipeBarang
0..*
1..*
Melibatkan
Lengkapan
0..*
1..*
Melibatkan
Interlok
0..*
3.6.1.3 Identifikasi dan Asosiasi Atribut dengan Entity Atau Tipe Relationship Tahap ini bertujuan untuk mengasosiasikan atribut dengan entity atau tipe relationship yang sesuai serta menentukan domain bagi atibut-atibut dalam model data konseptual.
1. Pegawai Tabel 3.3 Atribut entity Pegawai Attribute
Description
Data Type
Null
Multivalue
and Length KdPegawai
Secara
unik Char(5)
No
No
No
No
mengidentifikasi Kode Pegawai NamaP
Nama Pegawai
Varchar(50)
83
Attribute
Description
Data Type
Null
Multivalue
and Length AlamatP
Alamat Pegawai
Varchar(100)
No
No
Phone
Nomor
Telepon Varchar (20)
No
Yes
Pegawai Fax
Fax Pegawai
Varchar (20)
Yes
Yes
Email
Email Pegawai
Varchar (100)
No
Yes
DOB
Tanggal
No
No
No
No
Varchar (15)
No
No
pegawai Varchar (30)
No
No
Username Nama user yang Varchar (10)
No
No
No
No
No
No
Lahir Datetime
Pegawai JK
Jenis
Kelamin Char(1)
Pegawai Jabatan
Jabatan pegawai
Divisi
Divisi bekerja
UserP
menggunakan aplikasi Password
WargaN
Password user
Varchar (20)
Kewarganegaraan Char (3)
84
2. Customer Tabel 3.4 Atribut entity Customer Attribute
Description
Data Type
Null
Multivalue
and Length KdCustomer
Secara
unik Char(5)
No
No
mengidentifikasi Kode Customer NamaC
Nama Customer
Varchar(50)
No
No
AlamatC
Alamat
Varchar(100)
No
No
No
Yes
Customer Phone
Nomor
Telp Varchar(20)
Customer Fax
Fax Customer
Varchar(20)
Yes
Yes
Email
Email Customer
Varchar(100)
No
Yes
JenisC
Jenis Customer
Varchar (30)
No
No
3. TipeBarang Tabel 3.5 Atribut entity TipeBarang Attribute
Description
Data Type
Null
Multivalue
and Length KdTipe
Secara
unik Varchar (20)
mengidentifikasi KodeTipeBarang
No
No
85
Attribute
Description
Data Type
Null
Multivalue
and Length In
Arus Nominal
Varchar (5)
Yes
No
Icu
Kapasitas
Varchar (5)
Yes
No
Varchar (15)
Yes
No
Yes
No
Pemutusan UnitTrip
Unit Trip
I3
Setelan
Arus Varchar (5)
Magnetis JumKutub
Jumlah Kutub
Varchar (3)
Yes
No
Un
Nominal Voltage
Varchar (5)
Yes
No
AusG
Aus Gangguan
Varchar (5)
Yes
No
SArus
Setelan Arus
Varchar (12)
Yes
No
Deskripsi
Deskripsi
Varchar (200) Yes
No
Ukuran3P Harga
Harga tipe barang money
No
No
Yes
No
ukuran 3P Ukuran4P Harga
Harga tipe barang money ukuran 4P
86
Attribute
Description
Data Type
Null
Multivalue
and Length Barang NamaB
Nama barang
Varchar(50)
No
No
NoStanda
Nomor standard
Varchar (15)
No
No
Kapasitas
Varchar (5)
Yes
No
rd Icu
pemutusan TipeUT
Tipe Unit Trip
Varchar (20)
Yes
No
Proteksi
Unit proteksi
Varchar (20)
Yes
No
JenisK
Jenis koneksi
Varchar (20)
Yes
No
TipeI
Tipe Instalasi
Varchar (15)
Yes
No
JArusP
Jangkauan
Arus Varchar (15)
Yes
No
Pengenal KelasTrip
Kelas Trip
Varchar (5)
Yes
No
CWave
Current Wave
Char (5)
Yes
No
Jenis Varchar (50)
No
No
Barang Varchar (50)
No
No
barang money
No
No
NamaJenisB
Nama Barang
BKompetitor NamaBar
Nama
angK
kompetitor
Harga
Harga kompetitor
87
4. PO Tabel 3.6 Atribut entity PO Attribute
Description
Data Type
Null
Multivalue
and Length KdPO
Secara
unik Varchar (10)
No
No
datetime
No
No
Varchar (3)
No
No
mengidentifikasi Kode PO Tanggal
Tanggal transaksi
Qty
Jumlah
5. Lengkapan Tabel 3.7 Atribut entity Lengkapan Attribute
Description
Data Type
Null
Multivalue
and Length KdTipeL
Secara
unik Char (5)
No
No
mengidentifikasi Kode
Tipe
Lengkapan TipeL
Tipe Lengkapan
Varchar (20)
No
No
UnitTrip
Unit Trip
Varchar (15)
Yes
No
Proteksi
Proteksi
Varchar (20)
Yes
No
88
Attribute
Description
Data Type
Null
Multivalue
and Length NoRefL
No
Referensi Char (6)
No
No
Lengkapan
Harga
Harga
money
No
No
Deskripsi
Deskripsi
Varchar (200)
Yes
No
Nomor
Varchar (15)
Yes
No
money
Yes
No
Varchar (15)
Yes
No
money
Yes
No
Ukuran3PL NoRefU3
Referensi lengkapan yang berukuran 3P Harga
Harga lengkapan berukuran 3P
Ukuran4PL NoRefU4
Nomor Referensi lengkapan yang berukuran 4P
Harga
Harga lengkapan u 4P
89
Attribute
Description
Data Type
Null
Multivalue
and Length BukaYO NoRefYO
Nomor
Varchar (5)
Yes
No
money
Yes
No
Integer (5)
Yes
No
money
Yes
No
Referensi pelepas pembuka pemutus sirkit Harga
Harga lengkapan pelepas pembuka pemutus sirkit
TutupYC NoRefYC
Nomor Referensi pelepas penutup pemutus sirkit
Harga
Harga lengkapan pelepas penutup pemutus sirkit
90
6. Interlok Tabel 3.8 Atribut entity Interlok Attribute
Description
Data Type
Null
Multivalue
and Length KdInterlok
Secara
unik Char(5)
No
No
mengidentifikasi Kode Interlok Harga
Harga interlok
money
No
No
Deskripsi
Deskripsi
Varchar(200)
Yes
No
Tipe
Tipe
No
No
pemutus Varchar (10)
sirkit
3.6.1.4 Menetapkan Domain Atribut Domain atribut merupakan batasan nilai yang valid bagi atribut.
91
Tabel 3.9 Menetapkan domain atribut Entity Name
Pegawai
Attribute
KdPegawai
Data Type and
Attribute
Length
Domain
Char(5)
Diisi
dengan
huruf dan angka, max 5 huruf dan angka
dengan
range
value
[P][0-9][0-9][09][0-9] NamaP
Varchar(50)
Diisi
dengan
huruf dan angka, max 50 huruf dan angka AlamatP
Varchar(100)
Diisi
dengan
huruf dan angka, max 100 huruf dan angka Phone
Varchar (20)
Diisi
dengan
angka, max 20 angka
dengan
range value 0-9
92
Entity Name
Attribute
Fax
Data Type and
Attribute
Length
Domain
Varchar (20)
Diisi
dengan
angka, max 20 angka
dengan
range value 0-9 Email
Varchar (100)
Diisi
dengan
huruf dan angka, max 100 huruf dan angka DOB
Datetime
Diisi
dengan
format
tanggal
(dd/mm/yyyy) JK
Char(1)
Diisi dengan ‘P’ atau ‘L’
Jabatan
Varchar (15)
Diisi huruf,
dengan max
15
huruf Divisi
Varchar (30)
Diisi huruf, huruf
dengan max
30
93
Entity Name
Attribute
Username
Data Type and
Attribute
Length
Domain
Varchar (10)
Diisi
dengan
huruf dan angka, max 10 huruf dan angka Password
Varchar (20)
Diisi
dengan
huruf dan angka, max 20 huruf dan angka WargaN
Char (3)
Diisi huruf,
dengan max
3
huruf
dengan
format
‘WNA’
atau ‘WNI’ Customer
KdCustomer
Char(5)
Diisi
dengan
huruf dan angka, max 5 huruf dan angka
dengan
range
value
[C][0-9][0-9][09][0-9]
94
Entity Name
Attribute
NamaC
Data Type and
Attribute
Length
Domain
Varchar(50)
Diisi huruf,
dengan max
50
huruf. AlamatC
Varchar(100)
Diisi
dengan
huruf dan angka, max 100 huruf dan angka. Phone
Varchar(20)
Diisi
dengan
angka, max 20 angka
dengan
range value 0-9. Fax
Varchar(20)
Diisi
dengan
angka, max 20 angka
dengan
range value 0-9. Email
Varchar(100)
Diisi
dengan
huruf dan angka, max 100 huruf dan angka
95
Entity Name
Attribute
JenisC
Data Type and
Attribute
Length
Domain
Varchar (30)
Diisi huruf,
dengan max
30
huruf TipeBarang
KdTipe
Varchar (20)
Diisi
dengan
huruf dan angka, max 20 huruf dan angka
dengan
range
value
[T][B][0-9][09][0-9].
In
Varchar (5)
Diisi angka, angka
dengan max
5
dengan
range value 0-9. Icu
Varchar (5)
Diisi angka, angka
dengan max
5
dengan
range value 0-9.
96
Entity Name
Attribute
UnitTrip
Data Type and
Attribute
Length
Domain
Varchar (15)
Diisi
dengan
huruf dan angka, max 15 huruf dan angka.
I3
Varchar (5)
Diisi angka, angka
dengan max
5
dengan
range value 0-9.
JumKutub
Varchar (3)
Diisi angka, angka
dengan max
3
dengan
range value 0-9.
Un
Varchar (5)
Diisi angka, angka
dengan max
5
dengan
range value 0-9.
97
Entity Name
Attribute
AusG
Data Type and
Attribute
Length
Domain
Varchar (5)
Diisi angka,
dengan max
angka
5
dengan
range value 0-9. SArus
Varchar (12)
Diisi
dengan
huruf dan angka, max 12 huruf dan angka. Deskripsi
Varchar (200)
Diisi
dengan
huruf dan angka, max 200 huruf dan angka. Harga
money
Harga
money
NamaB
Varchar(50)
Diisi
dengan
huruf dan angka, max 50 huruf dan angka
98
Entity Name
Attribute
NoStandard
Data Type and
Attribute
Length
Domain
Varchar (15)
Diisi
dengan
huruf dan angka, max 15 huruf dan angka Icu
Varchar (5)
Diisi angka, angka
dengan max
5
dengan
range value 0-9 TipeUT
Varchar (20)
Diisi
dengan
huruf dan angka, max 20 huruf dan angka Proteksi
Varchar (20)
Diisi
dengan
huruf dan angka, max 20 huruf dan angka JenisK
Varchar (20)
Diisi
dengan
huruf dan angka, max 20 huruf dan angka
99
Entity Name
Attribute
TipeI
Data Type and
Attribute
Length
Domain
Varchar (15)
Diisi
dengan
huruf dan angka, max 15 huruf dan angka JarusP
Varchar (15)
Diisi
dengan
huruf dan angka, max 15 huruf dan angka KelasTrip
Varchar (5)
Diisi angka, angka
dengan max
5
dengan
range value 0-9 CWave
Char (5)
Diisi
dengan
huruf dan angka, max 5 huruf dan angka NamaJenisB
Varchar (50)
Diisi
dengan
huruf dan angka, max 50 huruf dan angka
100
Entity Name
Attribute
NamaBarangK
Data Type and
Attribute
Length
Domain
Varchar (50)
Diisi
dengan
huruf dan angka, max 50 huruf dan angka
PO
Harga
money
KdPO
Varchar (10)
Diisi
dengan
huruf dan angka, max 10 huruf dan angka
dengan
range
value
YYMMDD[09][0-9][0-9][0-9]
Tanggal
datetime
Diisi
dengan
format
tanggal
dd/mm/yyyy
101
Entity Name
Lengkapan
Attribute
KdTipeL
Data Type and
Attribute
Length
Domain
Char (5)
Diisi
dengan
huruf dan angka, max 5 huruf dan angka
dengan
range
value
[T][L][0-9][09][0-9] TipeL
Varchar (20)
Diisi
dengan
huruf dan angka, max 20 huruf dan angka. UnitTrip
Varchar (15)
Diisi
dengan
huruf dan angka, max 15 huruf dan angka. Proteksi
Varchar (20)
Diisi
dengan
huruf dan angka, max 20 huruf dan angka.
102
Entity Name
Attribute
NoRefL
Data Type and
Attribute
Length
Domain
Char (6)
Diisi angka,
dengan max
6
angka.
Harga
money
Deskripsi
Varchar (200)
Diisi
dengan
huruf dan angka, max 20 huruf dan angka.
NoRefU3
Varchar (15)
Diisi
dengan
huruf dan angka, max 15 huruf dan angka. Harga
money
NoRefU4
Varchar (15)
Diisi
dengan
huruf dan angka, max 15 huruf dan angka. Harga
money
103
Entity Name
Attribute
NoRefYO
Data Type and
Attribute
Length
Domain
Integer (5)
Diisi angka, angka
dengan max
5
dengan
range value 0-9
Harga
money
NoRefYC
Integer (5)
Diisi angka, angka
dengan max
5
dengan
range value 0-9
Interlok
Harga
money
KdInterlok
Char(5)
Diisi
dengan
huruf dan angka, max 5 huruf dan angka
dengan
range value [I][09][0-9][0-9][0-9] Harga
money
104
Entity Name
Attribute
Deskripsi
Data Type and
Attribute
Length
Domain
Varchar(200)
Diisi
dengan
huruf dan angka, max 200 huruf dan angka. Tipe
Varchar (10)
Diisi
dengan
huruf dan angka, max 10 huruf dan angka.
3.6.1.5 Mengidentifikasi Candidate dan Primary Key Setiap Entity Menjelaskan atribut yang menjadi candidate key dan primary key dari setiap entity. Candidate key dan primary key dipilih berdasarkan keunikan dari setiap atribut. Tabel 3.10
Mengidentifikasi candidate dan primary key setiap entity
Entity Name
Candidate Key
Primary Key
Pegawai
NamaP
KdPegawai
Customer
NamaC
KdCustomer
TipeBarang
UnitTrip
KdTipe
PO
Tanggal
KdPO
105
Entity Name
Candidate Key
Primary Key
Lengkapan
NoRefL
KdTipeL
Interlok
Deskripsi
KdInterlok
3.6.1.6 Mempertimbangkan Kegunaan dari Konsep Enhanced Modeling (optional) Tidak terdapat entity dengan konsep enhanced modeling, seperti spesialisasi, generalisasi, penggabungan (aggregation), dan komposisi (composition).
3.6.1.7 Memeriksa Model untuk Redundancy 3.6.1.7.1 Menguji Ulang Relasi One-to-One (1:1) Tidak terdapat relasi one-to-one (1:1). 3.6.1.7.2 Hapus Redundant Relationship Tidak terdapat relationship yang redundant.
3.6.1.8 Validasi Model Konseptual Lokal Terhadap Transaksi User Untuk
memastikan
bahwa
rancangan
konseptual
yang
dibangun dapat mendukung transaksi yang dibutuhkan oleh user, maka digunakan dua pendekatan, yaitu menjelaskan transaksi dan menggambarkan panah transaksi pada ER Diagram. Berikut adalah panah transaksi ER Diagram:
106
Gambar 3.11 ER Diagram Validasi Model Konseptual Lokal terhadap Transaksi User Keterangan transaksi: (a) Informasi lengkap PO secara rinci yang dibuat oleh customer. (b) Informasi lengkap PO yang ditangan oleh pegawai. (c) Pegawai mengidentifikasi Barang yang terdapat di PO dengan Barang PT. ABB. (d) Pegawai mengidentifikasi Interlok yang terdapat di PO dengan Interlok PT. ABB. (e) Pegawai mengidentifikasi Lengkapan yang terdapat di PO dengan Lengkapan PT. ABB. (f) Pegawai menampilkan dan mengubah daftar Customer. (g) Pegawai menampilkan dan mengubah daftar TipeBarang.
107
(h) Pegawai menampilkan dan mengubah daftar Pegawai. (i) Pegawai menampilkan dan mengubah daftar Lengkapan. (j) Pegawai menampilkan dan mengubah daftar Interlok. (k) Pegawai menampilkan daftar Penjualan berdasarkan PO dan tanggal transaksi. (l) Pegawai menampilkan daftar Customer yang telah membeli Barang. (m) Pegawai menampilkan TipeBarang yang telah terjual. (n) Pegawai menampilkan daftar Pegawai yang menangani penjualan. (o) Pegawai menampilkan daftar Lengkapan yang telah terjual. (p) Pegawai menampilkan daftar Interlok yang telah terjual.
3.6.1.9 Review Model Data Konseptual Lokal Dengan User Model
data
konseptual
lokal
merupakan
representasi
sebenarnya dari transaksi user. Model data konsptual ini termasuk ER diagram dan dokumentasi pendukung yang mendeskripsikan model data.
3.6.2 Perancangan basis data logikal (logical database design) Perancangan basis data logikal adalah proses membangun suatu model informasi yang digunakan dalam suatu perusahaan berdasarkan suatu model khusus, tapi tidak tergantung kepada suatu DBMS tertentu dengan pertimbangan fisik lainnya.
108
Model data logikal dibangun dari model data konseptual yang akan merepresentasikan
view
tertentu
dari
perusahaan
dan
kemudian
memvalidasikan model ini untuk meyakinkan bahwa model tersebut secara stuktural benar dan model tersebut mendukung semua transaksi yang dibutuhkan. Berikut langkah penting dalam merancang basis data logikal: •
Menghapus fitur yang tidak sesuai dengan model relational;
•
Derive relations untuk model data logikal;
•
Validasi relation menggunakan normalisasi;
•
Validasi relation terhadap transaksi user;
•
Mendefinisikan integrity constraints; dan
•
Review model data logikal dengan user.
3.6.2.1 Menghapus Fitur yang Tidak Sesuai dengan Model Relational 3.6.2.1.1 Menghilangkan
Tipe
Many-to-Many
(*:*)
Binary
Relationship 1.
Relasi biner many-to-many (*:*) entity PO dan TipeBarang
Gambar 3.12 Hubungan many-to-many (*:*) entity PO dan TipeBarang
109
Relasi many-to-many (*:*) antara kedua entity, PO dan TipeBarang, menghasilkan entity baru yaitu entity DetailPO.
Gambar 3.13 Menghilangkan many-to-many (*:*) entity PO dan TipeBarang
2.
Relasi biner many-to-many (*:*) entity PO dan Lengkapan
Gambar 3.14 Hubungan many-to-many (*:*) entity PO dan Lengkapan
Relasi many-to-many (*:*) antara entity PO dan Lengkapan, menghasilkan entity baru yaitu entity DetailPO.
Gambar 3.15 Menghilangkan many-to-many (*:*) entity PO dan Lengkapan
110
3.
Relasi biner many-to-many (*:*) entity PO dan Interlok
Gambar 3.16 Hubungan many-to-many (*:*) entity PO dan Interlok
Relasi many-to-many (*:*) antara entity PO dan Interlok,
menghasilkan
entity
baru
yaitu
entity
DetailPO.
Gambar 3.17 Menghilangkan many-to-many (*:*) entity PO dan Interlok
3.6.2.1.2 Menghilangkan Tipe Many-to-Many (*:*) Recursive Relationship Tidak
terdapat
tipe
many-to-many
relationship.
3.6.2.1.3 Menghilangkan Tipe Complex Relationship Tidak terdapat tipe complex relationship.
recursive
111
3.6.2.1.4 Menghilangkan Atribut Multi-valued Pada model konseptual, terdapat beberapa entity yang memiliki atribut multi-valued atau atribut yang bernilai jamak, antara lain: • Pegawai memiliki [1..3] Phone (nomor telepon pegawai); • Pegawai memiliki [1..2] Email (alamat email pegawai); • Customer memiliki [1..3] Phone (nomor telepon customer), • Customer memiliki [1..2] Fax (nomor fax customer); dan • Customer memiliki [1..2] Email (alamat email customer). Hal ini tidak sesuai dengan model relasional, sehingga harus dihilangkan dengan cara mendekomposisi atribut multivalued menjadi sebuah entity baru. Berikut adalah langkahnya:
112
1.
Entity Pegawai
TelpP Pegawai
memiliki
Phone
EmailP mmki
Email
Gambar 3.18 Menghilangkan atribut multi-valued pada entity Pegawai
2.
Entity Customer
Gambar 3.19 Menghilangkan atribut multi-valued pada entity Customer
113
3.6.2.2 Derive relations untuk model data logikal 3.6.2.2.1 Tipe Strong Entity Pegawai (KdPegawai, NamaP, AlamatP, Fax, DOB, JK, Jabatan, Divisi, Username, Password, WargaN) Primary key (KdPegawai)
Customer (KdCustomer, NamaC, AlamatC, JenisC) Primary Key (KdCustomer)
TipeBarang (KdTipe, ln, lcu, UnitTrip, l3, JumKutub, Un, AusG,
SArus,
Deskripsi,
Harga,
Harga,
NamaB,
NoStandard, Icu, TipeUT, Proteksi, JenisK, TipeI, JarusP, KelasTrip, Cwave, NamaJenisB, NamaBarangK, Harga) Primary Key (KdTipe)
PO (KdPO, Tanggal) Primary Key (KdPO)
Lengkapan (KdTipeL, TipeL, UnitTrip, Proteksi, NoRefL, Harga, Deskripsi, NoRefU3, Harga, NoRefU4, Harga, NoRefYO, Harga, NoRefYC, Harga) Primary Key (KdTipeL)
114
Interlok (KdInterlok, Harga, Deskripsi, Tipe) Primary Key (KdInterlok)
3.6.2.2.2 Tipe Weak Entity DetailPO (KdDetailPO, Qty) Primary Key KdDetailPO
TelpP (Phone) Primary Key tidak ada sampai saat ini
EmailP (Email) Primary Key tidak ada sampai saat ini
TelpC (Phone) Primary Key tidak ada sampai saat ini
FaxC (Fax) Primary Key tidak ada sampai saat ini
EmailC (Email) Primary Key tidak ada sampai saat ini
115
3.6.2.2.3 Tipe One-to-Many (1:*) Binary Relationship 1.
Hubungan one-to-many (1:*) Pegawai dengan PO
Kirim KdPegawai ke PO untuk memodelkan relasi 1:* Menangani Pegawai (KdPegawai, NamaP, AlamatP, Fax, DOB, JK, Jabatan, Divisi, Username, Password, WargaN) Primary key : KdPegawai
2.
PO (KdPO, Tanggal, KdPegawai) Primary key : KdPO Foreign key : KdPegawai references Pegawai (KdPegawai)
Hubungan one-to-many (1:*) Customer dengan PO
Kirim KdCustomer ke PO untuk memodelkan relasi 1:* Membuat Customer (KdCustomer, NamaC, AlamatC, JenisC) Primary key : KdCustomer
PO (KdPO, Tanggal, KdPegawai, KdCustomer) Primary key : KdPO Foreign key : KdPegawai references Pegawai (KdPegawai) Foreign key : KdCustomer references Customer (KdCustomer)
3.6.2.2.4 Tipe One-to-One (1:1) Binary Relationship Tidak terdapat one-to-one (1:1) binary relationship.
116
3.6.2.2.5 One-to-One Recursive Relationship Tidak terdapat tipe recursive relationship.
3.6.2.2.6 Tipe Superclass/Subclass Relationship Tidak terdapat tipe superclass/subclass relationship.
3.6.2.2.7 Tipe Many-to-Many (*:*) Binary Relationship Pada tahap ini dibuat untuk menggambarkan hubungan dan termasuk beberapa atribut yang merupakan bagian dari relasi. Primary key pada entitas merupakan foreign key pada hubungan entitas yang baru.
117
1.
Hubungan many-to-many (*:*) PO dengan TipeBarang
PO (KdPO, Tanggal, KdPegawai, KdCustomer) Primary key : KdPO Foreign Key : KdPegawai references Pegawai (KdPegawai) Foreign Key : KdCustomer references Customer (KdCustomer)
TipeBarang (KdTipe, ln, lcu, UnitTrip, l3, JumKutub, Un, AusG, SArus, Deskripsi, Harga, Harga, NamaB, NoStandard, Icu, TipeUT, Proteksi, JenisK, TipeI, JarusP, KelasTrip, Cwave, NamaJenisB, NamaBarangK, Harga) Primary key : KdTipe
DetailPO (KdDetailPO, KdPO, KdTipe, Qty) Primary key : KdDetailPO, KdPO Foreign key : KdPO references PO (KdPO) Foreign key : KdTipe references TipeBarang (KdTipe)
118
2.
Hubungan many-to-many (*:*) PO dengan Lengkapan
PO (KdPO, Tanggal, KdPegawai, KdCustomer) Primary key : KdPO Foreign Key : KdPegawai references Pegawai (KdPegawai) Foreign Key : KdCustomer references Customer (KdCustomer)
Lengkapan (KdTipeL, TipeL, UnitTrip, Proteksi, NoRefL, Harga, Deskripsi, NoRefU3, Harga, NoRefU4, Harga, NoRefYO, Harga, NoRefYC, Harga) Primary key : KdTipeL
DetailPO (KdDetailPO, KdPO, KdTipe, KdTipeL, Qty) Primary key : KdDetailPO, KdPO Foreign key : KdPO references PO (KdPO) Foreign key : KdTipe references TipeBarang (KdTipe) Foreign key : KdTipeL references Lengkapan (KdTipeL)
119
3.
Hubungan many-to-many (*:*) PO dengan Interlok
PO (KdPO, Tanggal, KdPegawai, KdCustomer)
Interlok (KdInterlok, Harga, Deskripsi, Tipe)
Primary key : KdPO
Primary key : KdInterlok
Foreign Key : KdPegawai references Pegawai (KdPegawai) Foreign Key : KdCustomer references Customer (KdCustomer)
DetailPO (KdDetailPO, KdPO, KdTipe, KdTipeL, KdInterlok, Qty) Primary key : KdDetailPO, KdPO Foreign key : KdPO references PO (KdPO) Foreign key : KdTipe references TipeBarang (KdTipe) Foreign key : KdTipeL references Lengkapan (KdTipeL) Foreign key : KdInterlok references Interlok (KdInterlok)
120
3.6.2.2.8 Tipe Complex Relationship Tidak terdapat tipe complex relationship.
3.6.2.2.9 Atribut Multi-valued Tahap ini dibuat untuk menggambarkan hubungan dan termasuk beberapa atribut yang merupakan bagian dari relasi. Primary key pada entitas merupakan foreign key pada hubungan entitas yang baru. 1.
Hubungan Pegawai memiliki TelpP KdPegawai di-post ke dalam TelpP
Pegawai (KdPegawai, NamaP, AlamatP, Fax, DOB, JK, Jabatan, Divisi, Username, Password, WargaN) Primary key : KdPegawai
2.
TelpP (KdPegawai, Phone) Primary key : Phone Foreign key : KdPegawai references Pegawai (KdPegawai)
Hubungan Pegawai memiliki EmailP KdPegawai di-post ke dalam EmailP
Pegawai (KdPegawai, NamaP, AlamatP, Fax, DOB, JK, Jabatan, Divisi, Username, Password, WargaN) Primary key : KdPegawai
EmailP (KdPegawai, Email) Primary key : Email Foreign key : KdPegawai references Pegawai (KdPegawai)
121
3.
Hubungan Customer memiliki TelpC KdCustomer di-post ke dalam TelpC
Customer (KdCustomer, NamaC, AlamatC, JenisC)
TelpC (KdCustomer, Phone)
Primary key : KdCustomer
Primary key : Phone Foreign key : KdCustomer references Customer (KdCustomer)
4.
Hubungan Customer memiliki FaxC KdCustomer di-post ke dalam FaxC
Customer (KdCustomer, NamaC, AlamatC, JenisC)
FaxC (KdCustomer, Fax)
Primary key : KdCustomer
Primary key : Fax Foreign key : KdCustomer references Customer (KdCustomer)
5.
Hubungan Customer memiliki EmailC KdCustomer di-post ke dalam EmailC
Customer (KdCustomer, NamaC, AlamatC, JenisC)
EmailC (KdCustomer, Email)
Primary key : KdCustomer
Primary key : Email Foreign key : KdCustomer references Customer (KdCustomer)
122
Tabel 3.11 Hasil Relasi Pegawai
KdPegawai, NamaP, AlamatP, Fax, DOB, JK, Jabatan, Divisi, Username, Password, WargaN Primary Key KdPegawai
TelpP
KdPegawai, Phone Primary Key Phone Foreign Key KdPegawai references Pegawai (KdPegawai)
EmailP
KdPegawai, Email Primary Key Email Foreign Key KdPegawai references Pegawai (KdPegawai)
Customer
KdCustomer,
NamaC,
AlamatC,
JenisC Primary Key KdCustomer TelpC
KdCustomer, Phone Primary Key Phone Foreign Key KdCustomer references Customer (KdCustomer)
FaxC
KdCustomer, Fax Primary Key Fax
123
Foreign Key KdCustomer references Customer (KdCustomer)
EmailC
KdCustomer, Email Primary Key Email Foreign Key KdCustomer references Customer (KdCustomer)
PO
KdPO,
Tanggal,
KdPegawai,
KdCustomer Primary Key KdPO Foreign Key KdPegawai references Pegawai (KdPegawai) Foreign Key KdCustomer references Customer (KdCustomer) DetailPO
KdDetailPO,
KdPO,
KdTipe,
KdTipeL, KdInterlok, Qty Primary Key KdDetailPO Primary Key KdPO Foreign Key KdPO references PO (KdPO) Foreign
Key
KdTipe
references
TipeBarang (KdTipe) Foreign Key KdTipeL references
124
Lengkapan (KdTipeL) Foreign Key KdInterlok references Interlok (KdInterlok) TipeBarang
KdTipe,
ln,
JumKutub,
lcu, Un,
UnitTrip, AusG,
l3,
SArus,
Deskripsi, Harga, Harga, NamaB, NoStandard, Icu, TipeUT, Proteksi, JenisK,
TipeI,
JarusP,
KelasTrip,
Cwave, NamaJenisB, NamaBarangK, Harga Primary Key KdTipe Lengkapan
KdTipeL, TipeL, UnitTrip, Proteksi, NoRefL, Harga, Deskripsi, NoRefU3, Harga, NoRefU4, Harga, NoRefYO, Harga, NoRefYC, Harga Primary Key KdTipeL
Interlok
KdInterlok, Harga, Deskripsi, Tipe Primary Key KdInterlok
3.6.2.3 Validasi Relasi Menggunakan Normalisasi Tujuan dari tahap ini adalah untuk memvalidasi relation dalam data model logikal menggunakan normalisasi.
125
Langkah – langkah dalam proses normalisasi ini adalah sebagai berikut : a.
UNF Tabel yang mengandung satu atau lebih grup yang berulang.
b.
Validasi First Normal Form (1NF) Untuk mengubah Unnormalized Table (UNF) ke First Normal Form (1NF) dapat dilakukan dengan mengidentifikasikan dan memindahkan grup berulang yang ada di tabel. Grup perulangan itu termaksud atribut, atau grup atribut.
c.
Validasi Second Normal Form (2NF) Tahap ini mengubah 1NF menjadi 2NF dengan cara memindahkan Partial Dependencies. Jika terdapat Partial Dependecy, pindahkan atribut tersebut dari relasi dengan menempatkannya ke dalam relasi baru.
d.
Validasi Third Normal Form (3NF) Tahap ini mengubah 2NF menjadi 3NF dengan cara memindahkan Transitive Dependencies. Jika terdapat Transitive Dependency, pindahkan atribut Transitive Dependency dari relasi dengan menempatkan atributnya ke relasi baru.
1.
Pegawai @KdPegawai, NamaP, AlamatP, DOB, JK, Fax, Jabatan, Divisi, Username, Password, WargaN
126
1NF Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Tidak terdapat partial dependency sehingga tahap 2NF sudah normal. 3NF Terdapat transitive dependency, hubungan antara non-key dan non-key, yaitu Jabatan, Divisi, Username, Password, dan WargaN, sehingga tahap 3NF perlu dinormalisasi menjadi:
Pegawai: @KdPegawai, NamaP, AlamatP, DOB, JK, Fax, #KdJabatan, #KdDivisi, #KdKWN Jabatan: @KdJabatan, Jabatan Divisi: @KdDivisi, Divisi UserP: @KdUser, Username, Password KWN: @KdKWN, WargaN
2.
TelpP #KdPegawai, @Phone
1NF
127
Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Terdapat partial dependency, hubungan key dengan non-key, yaitu KdPegawai, sehingga tahap 2NF perlu dinormalisasi menjadi:
TelpP: #KdPegawai, @Phone Pegawai: @KdPegawai, NamaP, AlamatP, DOB, JK, Fax, #KdJabatan, #KdDivisi, #KdKWN Jabatan: @KdJabatan, Jabatan Divisi: @KdDivisi, Divisi UserP: @KdUser, Username, Password, #KdPegawai KWN: @KdKWN, WargaN
3NF Tidak terdapat transitive dependency, sehingga pada tahap 3NF sudah normal.
3.
EmailP #KdPegawai, @Email
1NF
128
Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Terdapat partial dependency , hubungan key dengan non-key, yaitu KdPegawai, sehingga tahap 2NF perlu dinormalisasi menjadi:
EmailP: #KdPegawai, @Email Pegawai: @KdPegawai, NamaP, AlamatP, DOB, JK, Fax, #KdJabatan, #KdDivisi, #KdKWN Jabatan: @KdJabatan, Jabatan Divisi: @KdDivisi, Divisi UserP: @KdUser, Username, Password, #KdPegawai KWN: @KdKWN, WargaN
3NF Tidak terdapat transitive dependency, sehingga pada tahap 3NF sudah normal.
4.
Customer @KdCustomer, NamaC, AlamatC, JenisC
1NF
129
Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Tidak terdapat partial dependency sehingga tahap 2NF sudah normal. 3NF Terdapat transitive dependency yaitu JenisC, sehingga tahap 3NF perlu dinormalisasi menjadi:
Customer: @KdCustomer, NamaC, AlamatC, #KdJenisC JenisCustomer: @KdJenisC, JenisC
5.
TelpC #KdCustomer, @Phone
1NF Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Terdapat partial dependency yaitu KdCustomer, sehingga tahap 2NF perlu dinormalisasi menjadi:
TelpC: #KdCustomer, @Phone
130
Customer: @KdCustomer, NamaC, AlamatC, #KdJenisC JenisCustomer: @KdJenisC, JenisC
3NF Tidak terdapat transitive dependency, sehingga pada tahap 3NF sudah normal.
6.
FaxC #KdCustomer, @Fax
1NF Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Terdapat partial dependency yaitu KdCustomer, sehingga tahap 2NF perlu dinormalisasi menjadi: FaxC: #KdCustomer, @Fax Customer: @KdCustomer, NamaC, AlamatC, #KdJenisC JenisCustomer: @KdJenisC, JenisC
3NF Tidak terdapat transitive dependency, sehingga pada tahap 3NF sudah normal.
131
7.
EmailC #KdCustomer, @Email
1NF Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Terdapat partial dependency yaitu KdCustomer, sehingga tahap 2NF perlu dinormalisasi menjadi:
EmailC: #KdCustomer, @Email Customer: @KdCustomer, NamaC, AlamatC, #KdJenisC JenisCustomer: @KdJenisC, JenisC
3NF Tidak terdapat transitive dependency, sehingga pada tahap 3NF sudah normal. 8.
TipeBarang @KdTipe, ln, lcu, UnitTrip, l3, JumKutub, Un, AusG, SArus, Deskripsi, Harga, Harga, NamaB, NoStandard, Icu, TipeUT, Proteksi, JenisK, TipeI, JarusP, KelasTrip, Cwave, NamaJenisB, NamaBarangK, Harga
132
1NF Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Tidak terdapat partial dependency sehingga tahap 2NF sudah normal. 3NF Terdapat transitive dependency yaitu Harga, Harga, NamaB, NoStandard, Icu, TipeUT, Proteksi, JenisK, TipeI, JarusP, KelasTrip, Cwave, NamaJenisB, NamaBarangK, dan Harga, sehingga tahap 3NF perlu dinormalisasi menjadi:
TipeBarang: @KdTipe, In, Icu, UnitTrip, I3, JumKutub, Un, AusG, Sarus, Deskripsi, #KdBarang, #KdNoRefU3P Ukuran3P: @KdNoRefU3P, Harga Ukuran4P: @KdNoRefU4P, Harga, #KdTipe Barang: @KdBarang, NamaB, NoStandard, Icu, TipeUT, Proteksi, JenisK, TipeI, JarusP, KelasTrip, Cwave, #KdJenisB JenisBarang: @KdJenisB, NamaJenisB BKompetitor: #KdTipe
@KdBKompetitor,
NamaBarangK,
Harga,
133
9.
Lengkapan @KdTipeL, TipeL, UnitTrip, Proteksi, NoRefL, Harga, Deskripsi, NoRefU3, Harga, NoRefU4, Harga, NoRefYO, Harga, NoRefYC, Harga
1NF Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Tidak terdapat partial dependency sehingga tahap 2NF sudah normal. 3NF Terdapat
transitive
dependency
yaitu
NoRefU3,
Harga,
NoRefU4, Harga, NoRefYO, Harga, NoRefYC, Harga, sehingga tahap 3NF perlu dinormalisasi menjadi:
Lengkapan: @KdTipeL, TipeL, UnitTrip, Proteksi, NoRefL, Harga, Deskripsi Ukuran3PL: @KdU3PL, NoRefU3, Harga, #KdTipeL Ukuran4PL: @KdU4PL, NoRefU4, Harga, #KdTipeL BukaYO: @KdYO, NoRefYO, Harga, #KdTipeL TutupYC: @KdYC, NoRefYC, Harga, #KdTipeL
134
10. Interlok @KdInterlok, Harga, Deskripsi, Tipe
1NF Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Tidak terdapat partial dependency sehingga tahap 2NF sudah normal. 3NF Terdapat transitive dependency yaitu Tipe, sehingga tahap 3NF perlu dinormalisasi menjadi:
Interlok: @KdInterlok, Harga, Deskripsi, #KdTInstalasi Tinstalasi: @KdTInstalasi, Tipe
11. PO KdPO, Tanggal, KdPegawai, KdCustomer
1NF Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF
135
Terdapat partial dependency yaitu KdPegawai dan KdCustomer, sehingga tahap 2NF perlu dinormalisasi menjadi:
PO: @KdPO, Tanggal, #KdPegawai, #KdCustomer Pegawai: @KdPegawai, NamaP, AlamatP, DOB, JK, Fax, #KdJabatan, #KdDivisi, #KdKWN Customer: @KdCustomer, NamaC, AlamatC, #KdJenisC Jabatan: @KdJabatan, Jabatan Divisi: @KdDivisi, Divisi UserP: @KdUser, Username, Password, #KdPegawai KWN: @KdKWN, WargaN JenisC: @KdJenisC, JenisC
3NF Tidak terdapat transitive dependency, sehingga pada tahap 3NF sudah normal.
12. DetailPO @KdDetailPO, @#KdPO, #KdTipe, #KdTipeL, #KdInterlok, Qty
1NF
136
Tidak terdapat perulangan (repeating group) sehingga tahap 1NF sudah normal. 2NF Terdapat partial dependency yaitu KdPO, KdTipe, KdTipeL, dan KdInterlok, sehingga tahap 2NF perlu dinormalisasi menjadi:
DetailPO: @KdDetailPO, @#KdPO, #KdTipe, #KdTipeL, #KdInterlok, Qty PO: @KdPO, Tanggal, #KdPegawai, #KdCustomer TipeBarang: @KdTipe, In, Icu, UnitTrip, I3, JumKutub, Un, AusG, Sarus, Deskripsi, #KdBarang, #KdNoRefU3P Ukuran3P: @KdNoRefU3P, Harga Ukuran4P: @KdNoRefU4P, Harga, #KdTipe Barang: @KdBarang, NamaB, NoStandard, Icu, TipeUT, Proteksi, JenisK, TipeI, JarusP, KelasTrip, Cwave, #KdJenisB JenisBarang: @KdJenisB, NamaJenisB BKompetitor:
@KdBKompetitor,
NamaBarangK,
Harga,
#KdTipe Lengkapan: @KdTipeL, TipeL, UnitTrip, Proteksi, NoRefL, Harga, Deskripsi Ukuran3PL: @KdU3PL, NoRefU3, Harga, #KdTipeL Ukuran4PL: @KdU4PL, NoRefU4, Harga, #KdTipeL
137
BukaYO: @KdYO, NoRefYO, Harga, #KdTipeL TutupYC: @KdYC, NoRefYC, Harga, #KdTipeL Interlok: @KdInterlok, Harga, Deskripsi, #KdTInstalasi Tinstalasi: @KdTInstalasi, Tipe Pegawai: @KdPegawai, NamaP, AlamatP, DOB, JK, Fax, #KdJabatan, #KdDivisi, #KdKWN5r Jabatan: @KdJabatan, Jabatan Divisi: @KdDivisi, Divisi UserP: @KdUser, Username, Password, #KdPegawai KWN: @KdKWN, WargaN Customer: @KdCustomer, NamaC, AlamatC, #KdJenisC JenisC: @KdJenisC, JenisC
3NF Tidak terdapat transitive dependency, sehingga pada tahap 3NF sudah normal.
3.6.2.4 Validasi RelasiTerhadap Transaksi User Relasi dalam model data local logical sudah mendukung transaksi yang dibutuhkan oleh view.
138
Gambar 3.20 Validasi Relasi Terhadap Transaksi User
Keterangan transaksi: (a) Memasukkan/menghapus/mengubah data PO: KdPO, Tanggal, KdPegawai, KdCustomer dan menampilkan data Pegawai yang sesuai dengan KdPegawai yang menangani dan berada pada data PO;
139
(b) Memasukkan/menghapus/mengubah
data
EmailP:
Email,
KdPegawai dan menampilkan data Pegawai yang sesuai dengan KdPegawai yang memiliki dan berada pada data EmailP; (c) Memasukkan/menghapus/mengubah
data
TelpP:
Phone,
KdPegawai dan menampilkan data Pegawai yang sesuai dengan KdPegawai yang memiliki dan berada pada data TelpP; (d) Memasukkan/menghapus/mengubah data Pegawai: KdPegawai, NamaP, AlamatP, DOB, JK, Fax, KdJabatan, KdDivisi, KdKWN dan menampilkan data Jabatan yang sesuai dengan KdJabatan yang berada pada data Pegawai; (e) Memasukkan/menghapus/mengubah data Pegawai: KdPegawai, NamaP, AlamatP, DOB, JK, Fax, KdJabatan, KdDivisi, KdKWN dan menampilkan data Divisi yang sesuai dengan KdDivisi yang berada pada data Pegawai; (f) Memasukkan/menghapus/mengubah
data
UserP:
KdUser,
Username, Password, KdPegawai dan menampilkan data Pegawai yang sesuai dengan KdPegawai yang memiliki dan berada pada data UserP; (g) Memasukkan/menghapus/mengubah data Pegawai: KdPegawai, NamaP, AlamatP, DOB, JK, Fax, KdJabatan, KdDivisi, KdKWN dan menampilkan data KWN yang sesuai dengan KdKWN yang berada pada data Pegawai;
140
(h) Memasukkan/menghapus/mengubah data PO: KdPO, Tanggal, KdPegawai, KdCustomer dan menampilkan data Customer yang sesuai dengan KdCustomer yang membuat dan berada pada data PO; (i) Memasukkan/menghapus/mengubah
data
TelpC:
Phone,
KdCustomer dan menampilkan data Customer yang sesuai dengan KdCustomer yang memiliki dan berada pada TelpC; (j) Memasukkan/menghapus/mengubah
data
EmailC:
Email,
KdCustomer dan menampilkan data Customer yang sesuai dengan KdCustomer yang memiliki dan berada pada EmailC; (k) Memasukkan/menghapus/mengubah
data
Customer:
KdCustomer, NamaC, AlamatC, KdJenisC dan menampilkan data JenisCustomer yang sesuai dengan KdJenisC yang dimiliki dan berada pada data Customer; (l) Memasukkan/menghapus/mengubah
data
FaxC:
Fax,
KdCustomer dan menampilkan data Customer yang sesuai dengan KdCustomer yang berada pada data FaxC; (m) Memasukkan/menghapus/mengubah data Interlok: KdInterlok, Harga, Deskripsi, KdTInstalasi dan menampilkan data TInstalasi yang sesuai dengan KdTInstalasi yang berada pada data Interlok; (n) Memasukkan/menghapus/mengubah
data
DetailPO:
KdDetailPO, KdPO, Qty, KdTipe, KdTipeL, KdInterlok dan
141
menampilkan data Interlok yang sesuai dengan KdInterlok yang berada pada data DetailPO; (o) Memasukkan/menghapus/mengubah data TutupYC: KdYC, NoRefYC, Harga, KdTipeL dan menampilkan data Lengkapan yang sesuai dengan KdTipeL yang berada pada data TutupYC; (p) Memasukkan/menghapus/mengubah data BukaYO: KdYO, NoRefYC, Harga, KdTipeL dan menampilkan data Lengkapan yang sesuai dengan KdTipeL yang berada pada data BukaYO (q) Memasukkan/menghapus/mengubah data Ukuran4PL: KdU4PL, NoRefU4, Harga, KdTipeL dan menampilkan data Lengkapan yang sesuai dengan KdTipeL yang berada pada data Ukuran4PL (r) Memasukkan/menghapus/mengubah data Ukuran3PL: KdU3PL, NoRefU3, Harga, KdTipeL dan menampilkan data Lengkapan yang sesuai dengan KdTipeL yang berada pada data Ukuran3PL (s) Memasukkan/menghapus/mengubah
data
DetailPO:
KdDetailPO, KdPO, Qty, KdTipe, KdTipeL, KdInterlok dan menampilkan data Lengkapan yang sesuai dengan KdTipeL yang berada pada data DetailPO; (t) Memasukkan/menghapus/mengubah KdBKompetitor,
NamaBarangK,
data Harga,
BKompetitor: KdTipe
dan
menampilkan data TipeBarang yang sesuai dengan KdTipe yang berada pada data BKompetitor;
142
(u) Memasukkan/menghapus/mengubah data Barang: KdBarang, NamaB, NoStandard, Icu, TipeUT, Proteksi, JenisK, TipeI, JArusP, KelasTrip, Cwave, KdJenisB dan menampilkan data JenisBarang yang sesuai dengan KdJenisB yang berada pada data Barang; (v) Memasukkan/menghapus/mengubah data TipeBarang: KdTipe, In, Icu, UnitTrip, I3, JumKutub, Un. AusG, SArus, Deskripsi, KdBarang, KdNoRefU3P dan menampilkan data Barang yang sesuai dengan KdBarang yang berada pada data TipeBarang; (w) Memasukkan/menghapus/mengubah KdNoRefU4P,
Harga,
KdTipe
data dan
Ukuran4P:
menampilkan
data
TipeBarang yang sesuai dengan KdTipe yang berada pada data Ukuran4P; (x) Memasukkan/menghapus/mengubah data TipeBarang: KdTipe, In, Icu, UnitTrip, I3, JumKutub, Un. AusG, SArus, Deskripsi, KdBarang, KdNoRefU3P dan menampilkan data Ukuran3P yang sesuai dengan KdNoRefU3P yang berada pada data TipeBarang; (y) Memasukkan/menghapus/mengubah
data
DetailPO:
KdDetailPO, KdPO, Qty, KdTipe, KdTipeL, KdInterlok dan menampilkan data TipeBarang yang sesuai dengan KdTipe yang berada pada data DetailPO;
143
(z) Memasukkan/menghapus/mengubah
data
DetailPO:
KdDetailPO, KdPO, Qty, KdTipe, KdTipeL, KdInterlok dan menampilkan data PO yang sesuai dengan KdPO yang berada pada data DetailPO
3.6.2.5 Mendefinisikan Integrity Constraints Menambahkan kata-kata “ON UPDATE NO ACTION ON DELETE NO ACTION” pada setiap foreign key yang terlibat. Bertujuan untuk mendefinisikan integrity constraints yang disampaikan dalam view. Terdapat lima (5) tipe integrity constraints, yaitu: a.
Kebutuhan Data (required data) Beberapa atribut harus selalu terdiri dari nilai yang valid; dengan kata lain, atribut-atribut ini tidak diperkenankan memiliki nilai null. Aturan ini telah diidentifikasi pada saat atribut didokumentasikan di kamus data pada tahap konseptual.
b.
Attribute Domain Constraints Setiap atribut mempunyai sebuah domain, yaitu kumpulan dari nilai yang legal.
144
Aturan ini telah diidentifikasi pada saat tahap menetapkan domain atribut untuk data model pada tahap konseptual.
c.
Entity Integrity Primary key dari suatu entity tidak boleh memiliki nilai null. Aturan ini harus telah dipertimbangkan pada saat mengidentifikasi primary key untuk setiap entity.
d.
Referential Integrity Referential Integrity berarti bahwa jika foreign key terdiri dari nilai, nilai tersebut harus tertuju pada tuple yang ada pada relasi parent-nya; dengan kata lain tahap ini mengidentifikasi nilai dari foreign key jika terjadi pengubahan dan penghapusan key pada parent-nya. Tabel 3.12 Referential Integrity Pegawai (KdPegawai, NamaP, AlamatP, DOB, JK, Fax, KdJabatan, KdDivisi, KdKWN) Primary key (KdPegawai) Foreign key (KdJabatan) REFERENCES Jabatan ON UPDATE CASCADE ON DELETE CASCADE Foreign key (KdDivisi) REFERENCES Divisi ON UPDATE
145
CASCADE ON DELETE CASCADE Foreign key (KdKWN) REFERENCES KWN ON UPDATE CASCADE ON DELETE CASCADE TelpP (KdPegawai, Phone) Primary key (Phone) Foreign
key
(KdPegawai)
REFERENCES
Pegawai
(KdPegawai) EmailP (KdPegawai, Email) Primary key (Email) Foreign key (KdPegawai) REFERENCES Pegawai ON UPDATE CASCADE ON DELETE CASCADE Jabatan (KdJabatan, Jabatan) Primary key (KdJabatan) Divisi (KdDivisi, Divisi) Primary key (KdDivisi) KWN (KdKWN, WargaN) Primary key (KdKWN) UserP (KdUser, KdPegawai, Username, Password) Primary key (KdUser) Foreign key (KdPegawai) REFERENCES Pegawai ON UPDATE CASCADE ON DELETE CASCADE Customer (KdCustomer, NamaC, AlamatC, KdJenisC)
146
Primary key (KdCustomer) Foreign key (KdJenisC) REFERENCES JenisCustomer ON UPDATE CASCADE ON DELETE CASCADE TelpC (KdCustomer, Phone) Primary key (Phone) Foreign key (KdCustomer) REFERENCES Customer ON UPDATE CASCADE ON DELETE CASCADE FaxC (KdCustomer, Fax) Primary key (Fax) Foreign key (KdCustomer) REFERENCES Customer ON UPDATE CASCADE ON DELETE CASCADE EmailC (KdCustomer, Email) Primary key (Email) Foreign key (KdCustomer) REFERENCES Customer ON UPDATE CASCADE ON DELETE CASCADE JenisCustomer (KdJenisC, JenisC) Primary key (KdJenisC) PO (KdPO, Tanggal, KdPegawai, KdCustomer) Primary key (KdPO) Foreign key (KdPegawai) REFERENCES Pegawai ON UPDATE CASCADE ON DELETE CASCADE Foreign key (KdCustomer) REFERENCES Customer ON
147
UPDATE CASCADE ON DELETE CASCADE DetailPO (KdDetailPO, KdPO, KdTipe, KdTipeL, KdInterlok, Qty) Primary key (KdDetailPO) Primary key (KdPO) Foreign key (KdPO) REFERENCES PO ON UPDATE CASCADE ON DELETE CASCADE Foreign key (KdTipe) REFERENCES TipeBarang ON UPDATE CASCADE ON DELETE CASCADE Foreign key (KdTipeL) REFERENCES Lengkapan ON UPDATE CASCADE ON DELETE CASCADE Foreign key (KdInterlok) REFERENCES Interlok ON UPDATE CASCADE ON DELETE CASCADE TipeBarang (KdTipe, NamaTipe, ln, Icu, UnitTrip, I3, JumKutub,
Un,
AusG,
SArus,
Deskripsi,
KdBarang,
KdNoRefU3P) Primary key (KdTipe) Foreign
key
(KdBarang)
REFERENCES
Barang
ON
UPDATE CASCADE ON DELETE CASCADE Foreign key (KdNoRefU3P) REFERENCES Ukuran3P ON UPDATE CASCADE ON DELETE CASCADE Ukuran3P (KdNoRefU3P, Harga) Primary key (KdNoRefU3P)
148
Ukuran4P (KdNoRefU4P, KdTipe, Harga) Primary key (KdNoRefU4P) Foreign key (KdTipe) REFERENCES TipeBarang ON UPDATE CASCADE ON DELETE CASCADE Barang (KdBarang, NamaB, NoStandard, IcuInfo, TipeUT, Proteksi, JenisK, TipeI, JArusP, KelasTrip, Cwave) Primary key (KdBarang) Foreign
key
(KdJenisB)
REFERENCES
Barang
ON
UPDATE CASCADE ON DELETE CASCADE JenisBarang (KdJenisB NamaJenisB) Primary key (KdJenisB) BKompetitor
(KdBKompetitor,
KdTipe,
NamaBarangK,
Harga) Primary key (KdBKompetitor) Foreign key (KdTipe) REFERENCES TipeBarang ON UPDATE CASCADE ON DELETE CASCADE Lengkapan (KdTipeL, TipeL, UnitTrip, Proteksi, NoRefL, Harga, Deskripsi) Primary key (KdTipeL) Ukuran3PL (KdU3PL, KdTipeL, NoRefU3, Harga) Primary key (KdU3PL) Foreign key (KdTipeL) REFERENCES Lengkapan ON
149
UPDATE CASCADE ON DELETE CASCADE Ukuran4PL (KdU4PL, KdTipeL, NoRefU4, Harga) Primary key (KdU4PL) Foreign key (KdTipeL) REFERENCES Lengkapan ON UPDATE CASCADE ON DELETE CASCADE BukaYO (KdYO, KdTipeL, NoRefYO, Harga) Primary key (KdYO) Foreign key (KdTipeL) REFERENCES Lengkapan ON UPDATE CASCADE ON DELETE CASCADE TutupYC (KdYC, KdTipeL, NoRefYC, Harga) Primary key (KdYC) Foreign key (KdTipeL) REFERENCES Lengkapan ON UPDATE CASCADE ON DELETE CASCADE Interlok (KdInterlok, KdTInstalasi, Deskripsi, NoRef, Harga) Primary key (KdInterlok) Foreign key (KdTInstalasi) REFERENCES TInstalasi ON UPDATE CASCADE ON DELETE CASCADE TInstalasi (KdTInstalasi, Tipe) Primary key (KdTInstalasi)
150
e.
Enterprise Constraints Mengupdate entity yang diatur oleh aturan enterprise governing transaksi ‘real world’ yang digambarkan dengan update.
3.6.2.6 Review Model Data Logikal dengan User Model
data
logikal
dan
dokumen
pendukung
yang
mendeskripsikan model adalah representasi yang benar dari view.
Gambar 3.21 Gambar Diagram ER Logikal
151
3.6.3 Perancangan Basis Data Fisikal (Physical Database Design) 3.6.3.1 Menerjemahkan Model Data Global Logical untuk Target DBMS Tabel 3.13 Model Data Global Logical Pegawai
KdPegawai,
NamaP,
AlamatP,
Fax,
DOB, JK, KdJabatan, KdDivisi, KdKWN Primary key : KdPegawai Foreign key : KdJabatan references Jabatan (KdJabatan) Foreign key : KdDivisi references Divisi (KdDivisi) Foreign key : KdKWN references KWN (KdKWN) TelpP
KdPegawai, Phone Primary key : Phone Foreign key : KdPegawai references Pegawai (KdPegawai)
EmailP
KdPegawai, Email Primary key : Email Foreign key : KdPegawai references Pegawai (KdPegawai)
Jabatan
KdJabatan, Jabatan Primary key : KdJabatan
152
Divisi
KdDivisi, Divisi Primary key : KdDivisi
UserP
KdUser,
Username,
Password,
KdPegawai Primary key : KdUser Foreign key : KdPegawai references Pegawai (KdPegawai) KWN
KdKWN, WargaN Primary key : KdKWN
Customer
KdCustomer,
NamaC,
AlamatC,
KdJenisC Primary key : KdCustomer Foreign key : KdJenisC references JenisCustomer (KdJenisC) TelpC
KdCustomer, Phone Primary key : Phone Foreign key : KdCustomer references Customer (KdCustomer)
FaxC
KdCustomer, Fax Primary key : Fax Foreign key : KdCustomer references Customer (KdCustomer)
153
EmailC
KdCustomer, Email Primary key : Email Foreign key : KdCustomer references Customer (KdCustomer)
JenisCustomer
KdJenisC, JenisC Primary key : KdJenisC
TipeBarang
KdTipe, ln, lcu, UnitTrip, l3, JumKutub, Un, AusG, SArus, Deskripsi, KdBarang, KdNoRefU3P Primary key : KdTipe Foreign key : KdBarang references Barang (KdBarang) Foreign key : KdNoRefU3P references Ukuran3P (KdNoRefU3P)
Ukuran3P
KdNoRefU3P, Harga Primary key : KdNoRefU3P
Ukuran4P
KdNoRefU4P, Harga, KdTipe Primary key : KdNoRefU4P Foreign
key
:
KdTipe
references
TipeBarang (KdTipe) Barang
KdBarang, NamaB, NoStandard, Icu,
154
TipeUT, Proteksi, JenisK, TipeI, JArusP, KelasTrip, CWave, KdJenisB Primary key : KdBarang Foreign key : KdJenisB references JenisBarang (KdJenisB) JenisBarang
KdJenisB, NamaJenisB Primary key : KdJenisB
BKompetitor
KdBKompetitor, NamaBarangK, Harga, KdTipe Primary key : KdBKompetitor Foreign
key
:
KdTipe
references
TipeBarang (KdTipe) PO
KdPO, Tanggal Primary key : KdPO
DetailPO
KdDetailPO, KdPO, KdTipe, KdTipeL, KdInterlok, Qty Primary Key : KdDetailPO Primary key : KdPO Foreign key : KdPO references PO (KdPO) Foreign
key
:
KdTipe
references
TipeBarang (KdTipe) Foreign key : KdTipeL references
155
Lengkapan (KdTipeL) Foreign key : KdInterlok references Interlok (KdTipeL) Lengkapan
KdTipeL, TipeL, UnitTrip, Proteksi, NoRefL, Harga, Deskripsi Primary key : KdTipeL
Ukuran3PL
KdU3PL, NoRefU3, Harga, KdTipeL Primary key : KdU3PL Foreign key : KdTipeL references Lengkapan (KdTipeL)
Ukuran4PL
KdU4PL, NoRefU4, Harga, KdTipeL Primary key : KdU4PL Foreign key : KdTipeL references Lengkapan (KdTipeL)
BukaYO
KdYO, NoRefYO, Harga, KdTipeL Primary key : KdYO Foreign key : KdTipeL references Lengkapan (KdTipeL)
TutupYC
KdYC, NoRefYC, Harga, KdTipeL Primary key : KdYC Foreign key : KdTipeL references Lengkapan (KdTipeL)
156
KdInterlok,
Interlok
Harga,
Deskripsi,
KdTInstalasi Primary key : KdInterlok Foreign key : KdTInstalasi references TInstalasi (KdTInstalasi) KdTInstalasi, Tipe
TInstalasi
Primary key : KdTInstalasi
3.6.3.1.1 Merancang Base Relations 1.
Pegawai
Domain KdPegawai
variable length character string, length 5 Format : [P][0-9][0-9][0-9][0-9]
Domain NamaP
variable length character string, length 50
Domain AlamatP
variable length character string, length 100
Domain DOB
variable date
Domain JK
variable length character length 1 Format : [L] / [P]
Domain Fax
variable length character string, length 20
Domain KdJabatan
variable length character string, length 5
157
Format : [J][0-9][0-9][0-9][0-9] Domain KdDivisi
variable length character string, length 5 Format : [D][0-9][0-9][0-9][0-9]
Domain KdKWN
variable length character string length 5 Format : [K][W][N][0-9][0-9]
Pegawai( KdPegawai
KdPegawai
NOT NULL,
NamaP
NamaPegawai
NOT NULL,
AlamatP
AlamatPegawai
NOT NULL,
DOB
DateOfBirth
NOT NULL,
JK
JenisKelamin
NOT NULL,
Fax
NoFax,
KdJabatan
KodeJabatan
NOT NULL,
KdDivisi
KodeDivisi
NOT NULL,
KdKWN
KodeWargaNegara
NOT NULL,
PRIMARY KEY (KdPegawai), FOREIGN KEY (KdJabatan) REFERENCES Jabatan ON UPDATE CASCADE ON DELETE CASCADE,
158
FOREIGN KEY (KdDivisi) REFERENCES Divisi ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (KdKWN) REFERENCES KWN ON UPDATE CASCADE ON DELETE CASCADE ); 2.
TelpP
Domain Phone
variable length character string, length 20
Domain KdPegawai
variable length character string, length 5 Format : [P][0-9][0-9][0-9][0-9]
TelpP( Phone
TeleponPegawai
NOT NULL,
KdPegawai
KodePegawai
NOT NULL,
PRIMARY KEY (Phone), FOREIGN KEY (KdPegawai) REFERENCES Pegawai ON UPDATE CASCADE ON DELETE CASCADE ); 3. Domain Email
EmailP variable length character string, length 100
159
Domain KdPegawai
variable length character string, length 5 Format : [P][0-9][0-9][0-9][0-9]
EmailP( EmailP
EmailPegawai
NOT NULL,
KdPegawai
KodePegawai
NOT NULL,
PRIMARY KEY (Email), FOREIGN KEY (KdPegawai) REFERENCES Pegawai ON UPDATE CASCADE ON DELETE CASCADE ); 4.
Customer
Domain KdCustomer
variable length character string, length 5 Format : [P][0-9][0-9][0-9][0-9]
Domain NamaC
variable length character string, length 50
Domain AlamatC
variable length character string, length 100
Domain KdJenisC
variable length character string length 3 Format : [J][C][0-9]
Customer( KdCustomer
KdCustomer
NOT NULL,
160
NamaC
NamaCustomer
NOT NULL,
AlamatC
AlamatCustomer
NOT NULL,
KdJenisC
KodeJenisCustomer
NOT NULL,
PRIMARY KEY (KdCustomer), FOREIGN KEY (KdJenisC) REFERENCES JenisCustomer ON UPDATE CASCADE ON DELETE CASCADE ); 5.
TelpC
Domain Phone
variable length character string, length 20
Domain KdCustomer
variable length character string, length 5 Format : [C][0-9][0-9][0-9][0-9]
TelpC ( Phone
TelponCustomer
NOT NULL,
KdCustomer
KodeCustomer
NOT NULL,
PRIMARY KEY (Phone), FOREIGN KEY (KdCustomer) REFERENCES Customer ON UPDATE CASCADE ON DELETE CASCADE
161
); 6.
FaxC
Domain Fax
variable length character string, length 20
Domain KdCustomer
variable length character string, length 5 Format [C][0-9][0-9][0-9][0-9]
FaxC ( Fax
FaxCustomer
NOT NULL,
KdCustomer
KodeCustomer
NOT NULL,
PRIMARY KEY (FaxCus, KdCustomer), FOREIGN KEY (KdCustomer) REFERENCES Customer ON UPDATE CASCADE ON DELETE CASCADE ); 7.
EmailC
Domain Email Domain KdCustomer
variable length character string, length 100 variable length character string, length 5 Format : [C][0-9][0-9][0-9][0-9]
EmailC (
162
Email
EmailCustomer
NOT NULL,
KdCustomer
KodeCustomer
NOT NULL,
PRIMARY KEY (Email), FOREIGN KEY (KdCustomer) REFERENCES Customer ON UPDATE CASCADE ON DELETE CASCADE ); 8.
PO
Domain KdPO
variable length character string, length 10 Format : YYMMDD[09][0-9][0-9][0-9]
Domain KdCustomer
variable length character string, length 5 Format [C][0-9][0-9][0-9][0-9]
Domain KdPegawai
variable length character string, length 5 Format : [P][0-9][0-9][0-9][0-9]
Domain Tanggal
variable date
PO ( KdPO
KodePO
NOT NULL,
163
KdCustomer
KodeCustomer
NOT NULL,
KdPegawai
KodePegawai
NOT NULL,
Tanggal
Tanggal
NOT NULL,
PRIMARY KEY (KdPO), FOREIGN KEY (KdCustomer) REFERENCES Customer ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (KdPegawai) REFERENCES Pegawai ON UPDATE CASCADE ON DELETE CASCADE ); 9.
DetailPO
KdDetailPO
variable length character string, length 10 Format : YYMMDD[0-9][09][0-9][0-9]
Domain KdPO
variable length character string, length 10 Format : YYMMDD[0-9][09][0-9][0-9]
Domain KdTipe
variable length character string, length 20 Format : [T][B][0-9][0-9][0-9]..[0-9]
164
Domain KdTipeL
variable length character string, length 5 Format : [T][L][0-9][0-9][0-9]
Domain KdInterlok
variable length character string, length 5 Format : [I][0-9][0-9][0-9][0-9]
Qty
variable length character integer length 3
DetailPO ( KdDetailPO
KodeDetailPO
NOT NULL,
KdPO
KodePO
NOT NULL,
KdTipe
KodeTipe,
KdTipeL
KodeTipeLengkapan,
KdInterlok
KodeInterlok,
Qty
Quantity
NOT NULL,
PRIMARY KEY (KdDetailPO), PRIMARY KEY (KdPO), FOREIGN
KEY
(KdPO)
REFERENCES
Customer
ON
UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (KdTipe) REFERENCES TipeBarang ON UPDATE CASCADE ON DELETE CASCADE,
165
FOREIGN KEY (KdTipeL) REFERENCES Lengkapan ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (KdInterlok) REFERENCES Interlok ON UPDATE CASCADE ON DELETE CASCADE ); 10. TipeBarang Domain KdTipe
variable length character string, length 20 Format : [T][B][0-9][0-9][0-9]
Domain KdBarang
variable length character string, length 20 Format : [B][0-9][0-9][0-9]…[0-9]
Domain KdNoRefU3
Variable length character string, length 10
Domain NamaTipe
variable length character string, length 30
Domain ln
variable length character string, length 5
Domain Icu
variable length character string, length 5
Domain UnitTrip
variable length character string, length 15
Domain I3
variable length character string, length 5
Domain JumKutub
variable length character string, length 5
Domain Un
variable length character string, length 5
166
Domain AusG
variable length character string, length 5
Domain SArus
variable length character string, length 12
Domain Deskripsi
variable length character string, length 200
TipeBarang ( KdTipe
KodeTipe
NOT NULL,
KdBarang
KodeBarang
NOT NULL,
KdNoRefU3
Kode Ukuran3P,
NamaTipe
NamaTipe
Ln
Ln,
Icu
Icu,
UnitTrip
UnitTrip,
I3
I3,
JumKutub
JumlahKutub,
Un
Un,
AusG
AusG,
SArus
SArus,
Deskripsi
Deskripsi,
NOT NULL,
167
PRIMARY KEY (KdTipe), FOREIGN KEY (KdBarang) REFERENCES Barang ON UPDATE CASCADE ON DELETE CASCADE ); 11. Lengkapan Domain KdTipeL
variable length character string, length 5 Format : [T][L][0-9][0-9][0-9]
Domain TipeL
variable length character string, length 20
Domain UnitTrip
variable length character string, length 15
Domain Proteksi
variable length character string, length 20
Domain NoRefL
variable length character string, length 6
Domain Harga
variable money
Domain Deskripsi
variable length character string, length 200
Lengkapan ( KdTipeL
KodeTipeLengkapan
NOT NULL,
TipeL
TipeLengkapan
NOT NULL,
UnitTrip
UnitTrip,
168
Proteksi
Proteksi,
NoRefL
NoRefLengkapan,
Harga
Money,
Deskripsi
Deskripsi,
PRIMARY KEY (KdTipeL) ); 12. Interlok Domain KdInterlok
variable length character string, length 5 Format : [I][0-9][0-9][0-9][0-9]
Domain KdTInstalasi
variable length character string, length 5 Format : [T][I][0-9][0-9][0-9]
Domain Deskripsi
variable length character string, length 200
Domain Harga
variable money
Interlok ( KdInterlok
KodeInterlok
NOT NULL,
KdTInstalasi
KodeTInstalasi
NOT NULL,
Deskripsi
Deskripsi,
169
Harga
Harga
NOT NULL,
PRIMARY KEY (KdInterlok), FOREIGN KEY (KdTInstalasi) REFERENCES TInstalasi ON UPDATE CASCADE ON DELETE CASCADE ); 13. KWN Domain KdKWN
variable length character string, length 4 Format : [K][W][N][0-9]
Domain WargaN
variable length character string, length 30
KWN ( KdKWN
KodeWargaNegara
NOT NULL,
WargaN
WargaNegara
NOT NULL,
PRIMARY KEY (KdKWN) ); 14. Jabatan Domain KdJabatan
variable length character string, length 5 Format : [J][0-9][0-9][0-9][0-9]
170
Domain Jabatan
variable length character string, length 30
Jabatan( KdJabatan
KodeJabatan
NOT NULL,
Jabatan
Jabatan
NOT NULL,
PRIMARY KEY (KdJabatan) ); 15. Divisi Domain KdDivisi
variable length character string, length 5 Format : [D][0-9][0-9][0-9][0-9]
Domain Divisi
variable length character string, length 30
Divisi( KdDivisi
KodeDivisi
NOT NULL,
Divisi
Divisi
NOT NULL,
PRIMARY KEY (KdDivisi) ); 16. UserP Domain KdUser
variable length character string, length 3
171
Format : [U][0-9][0-9] Domain KdPegawai
variable length character string, length 5 Format : [P][0-9][0-9][0-9][0-9]
Domain Username
variable length character string, length 5
Domain Password
variable length character string, length 10
UserP( KdUser
KodeUser
NOT NULL,
KdPegawai
KodePegawai
NOT NULL,
Username
Username
NOT NULL,
Password
Password
NOT NULL,
PRIMARY KEY (KdUser), FOREIGN KEY (KdPegawai) REFERENCES Pegawai ON UPDATE CASCADE ON DELETE CASCADE ); 17. Ukuran3PL Domain KdU3PL
variable length character string, length 10 Format : [3][P][L][0-9][0-9]…[0-9]
172
Domain KdTipeL
variable length character string, length 10
Format : [T][L][0-9][0-9][0-9] Domain NoRefU3
variable length character string, length 20
Domain Harga
variable money
Ukuran3PL( KdU3PL
Kode3PL
NOT NULL,
KdTipeL
KodeTipeLengkapan
NOT NULL,
NoRefU3
NoRefU3
NOT NULL,
Harga
Harga
NOT NULL,
PRIMARY KEY (KdU3PL), FOREIGN KEY (KdTipeL) REFERENCES Lengkapan
ON
UPDATE CASCADE ON DELETE CASCADE ); 18. Ukuran4PL Domain KdU4PL
variable length character string, length 10 Format : [4][P][L][0-9][0-9]…[0-9]
Domain KdTipeL
variable length character string, length 10
173
Format : [T][L][0-9][0-9][0-9] Domain NoRefU4
variable length character string, length 20
Domain Harga
variable harga
Ukuran4PL( KdU4PL
Kode4PL
NOT NULL,
KdTipeL
KodeTipeLengkapan
NOT NULL,
NoRefU4
NoRefU4
NOT NULL,
Harga
Harga
NOT NULL,
PRIMARY KEY (KdU4PL), FOREIGN KEY (KdTipeL) REFERENCES Lengkapan
ON
UPDATE CASCADE ON DELETE CASCADE ); 19. BukaYO Domain KdYO
variable length character string, length 5 Format : [Y][O][0-9][0-9][0-9]
Domain KdTipeL
variable length character string, length 10 Format : [T][L][0-9][0-9][0-9]
174
Domain NoRefYO
variable length character string, length 20
Domain Harga
variable money
KdYO( KdYO
KodeYO
NOT NULL,
KdTipeL
KodeTipeLengkapan
NOT NULL,
NoRefYO
NoRefYO
NOT NULL,
Harga
Harga
NOT NULL,
PRIMARY KEY (KdYO), FOREIGN KEY (KdTipeL) REFERENCES Lengkapan
ON
UPDATE CASCADE ON DELETE CASCADE ); 20. TutupYC Domain KdYC
variable length character string, length 5 Format : [Y][C][0-9][0-9][0-9]
Domain KdTipeL
variable length character string, length 10 Format : [T][L][0-9][0-9][0-9]
Domain NoRefYC
variable length character string, length 20
175
Domain Harga
variable money
KdYC( KdYC
KodeYC
NOT NULL,
KdTipeL
KodeTipeLengkapan
NOT NULL,
NoRefYC
NoRefYC
NOT NULL,
Harga
Harga
NOT NULL,
PRIMARY KEY (KdYC), FOREIGN KEY (KdTipeL) REFERENCES Lengkapan
ON
UPDATE CASCADE ON DELETE CASCADE ); 21. JenisCustomer Domain KdJenisC
variable length character string, length 3 Format : [J][C][0-9]
Domain JenisC
variable length character string, length 20
JenisCustomer( KdJenisC
KodeJenisCustomer
NOT NULL,
JenisC
JenisCustomer
NOT NULL,
176
PRIMARY KEY (KdJenisC) ); 22. Ukuran3P Domain KdNoRefU3P variable length character string, length 10 Domain KdTipe
variable length character string, length 5 Format : [T][B][0-9][0-9][0-9]
Domain Harga
variable money
Ukuran3P( KdNoRefU3P
KdNoRefU3P
NOT NULL,
KdTipe
KodeTipe
NOT NULL,
Harga
Harga
NOT NULL,
PRIMARY KEY (KdNoRefU3P), FOREIGN KEY (KdTipe) REFERENCES TipeBarang
ON
UPDATE CASCADE ON DELETE CASCADE ); 23. Ukuran4P Domain KdNoRefU4P variable length character string, length 10
177
Domain KdTipe
variable length character string, length 5 Format : [T][B][0-9][0-9][0-9]
Domain Harga
variable money
Ukuran4P( KdNoRefU4P
KdNoRefU3P
NOT NULL,
KdTipe
KodeTipe
NOT NULL,
Harga
Harga
NOT NULL,
PRIMARY KEY (KdNoRefU4P), FOREIGN KEY (KdTipe) REFERENCES TipeBarang
ON
UPDATE CASCADE ON DELETE CASCADE ); 24. JenisBarang Domain KdJenisB
variable length character string, length 5 Format : [K][J][B][0-9][0-9]
Domain NamaJenisB
variable length character string, length 50
JenisBarang( KdJenisB
KodeJenisB
NOT NULL,
178
NamaJenisB
NamaJenisB
NOT NULL,
PRIMARY KEY (KdJenisB) ); 25. BKompetitor Domain KdBKompetitor variable length character string, length 20 Format : [K][B][K][0-9][0-9][0-9] Domain KdTipe
variable length character string, length 20 Format : [T][B][0-9][0-9][0-9]..[0-9]
Domain NamaBarangK Domain Harga
variable length character string, length 30 variable money
BKompetitor( KdBKompetitor
KodeBKompetitor
NOT NULL,
KdTipe
KodeTipe
NOT NULL,
NamaBarangK
NamaBarangK
NOT NULL,
Harga
Harga
NOT NULL,
PRIMARY KEY (KdBKompetitor),
179
FOREIGN KEY (KdTipe) REFERENCES TipeBarang
ON
UPDATE CASCADE ON DELETE CASCADE ); 26. Barang Domain KdBarang
variable length character string, length 20 Format : [B][0-9][0-9][0-9]…[0-9]
Domain KdJenisB
variable length character string, length 5 Format : [K][J][B][0-9][0-9]
Domain NamaB
variable length character string, length 30
Domain NoStandard
variable length character string, length 20
Domain IcuInfo
variable length character string, length 30
Domain TipeUT
variable length character string, length 20
Domain Proteksi
variable length character string, length 20
Domain JenisK
variable length character string, length 20
Domain TipeI
variable length character string, length 20
Domain JarusP
variable length character string, length 20
Domain KelasTrip
variable length character string, length 20
180
Domain CWave
variable length character string, length 20
Barang( KdBarang
KodeBarang
NOT NULL,
KdJenisB
KodeJenisBarang
NOT NULL,
NamaB
NamaBarang
NOT NULL,
NoStandard
NomorStandard
NOT NULL,
IcuInfo
Icu Info,
TipeUT
TipeUT,
Proteksi
Proteksi,
JenisK
JenisK,
TipeI
TipeI,
JarusP
JarusP,
KelasTrip
KelasTrip
Cwave
Cwave,
PRIMARY KEY (KdBarang), FOREIGN KEY (KdJenisB) REFERENCES Barang UPDATE CASCADE ON DELETE CASCADE
ON
181
); 27. TInstalasi Domain KdTInstalasi variable length character string, length 5 Format : [T][I][0-9][0-9][0-9] Domain Tipe
variable length character string, length 30
TInstalasi( KdTInstalasi
KodeTipeInstalasi
NOT NULL,
Tipe
TipeInstalasi
NOT NULL,
PRIMARY KEY (KdTInstalasi) );
3.6.3.1.2 Merancang Representasi Derived Data Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan suatu data turunan pada global logikal data model pada DBMS yang dipakai. Setelah ditinjau, kami tidak menemukan data turunan pada global logikal data model.
182
3.6.3.1.3 Merancang Enterprise Constraints Setelah ditinjau, perusahaan tidak menentukan enterprise constraint maka tidak terdapat enterprise constraint.
3.6.3.2 Merancang Representasi Fisikal Perancangan
representasi
fisikal
merupakan
proses
menghasilkan deskripsi dari implementasi database pada secondary storage; perancangan representasi fisikal menjelaskan relasi dasar (base relations), organisasi file (file organizations), dan index yang digunakan untuk mencapai akses ke data yang efisien, dan setiap integrity constraints dan security measures yang berhubungan.
3.6.3.2.1 Pemilihan DBMS (Database Management System) Pemilihan
DBMS
adalah
tahapan
pemilihan
DBMS yang sesuai untuk mendukung aplikasi basis data. Berikut ini merupakan pertimbangan pemilihan DBMS antara SQL Server 2005 Developer Edition dan Oracle 9i:
183
Tabel 3.14 Perbandingan SQL Server 2005 Developer Edition dan Oracle 9i Perbandingan
SQL Server 2005
Oracle 9i
Developer Edition Operating system
dapat Bisa bekerja pada
Hanya
berjalan di platform hampir
semua
XP Service Pack 2, platform mulai dari Windows Vista
platform
berbasis
Windows,
UNIX,
Compaq
Tru64,
AIX, HP-UX, Sun Solaris, Linux Intel Processor
Pentium higher
III 600
or Untuk intel/platform MHz kompatibel
lain
:
(minimum), 1 GHz Pentium 166 MHz (recommended)
atau lebih untuk AIX : IBM RISC/6000 atau Server series
184
Perbandingan
SQL Server 2005
Oracle 9i
Developer Edition Memory
512
MB
RAM Untuk Windows :
(minimum), 1 GB 128 RAM (recomended)
MB
RAM
(minimum) dan 256 MB
RAM
(dianjurkan) Untuk Unix : 512 MB
RAM
(minimum) Hard disk
746 MB hard disk 140 MB pada system free space
drive + 4.5 GB untuk the
Oracle
Home
Drive (FAT) atau 2.8 GB untuk the Oracle Home Drive (NTFS) Typical Installation : minimal
450
s/d
550MB Compact installation : Minimal 350 s/d 400MB Custom installation :
185
Minimal 350 s/d 700 Mb
Tabel 3.15
Perbandingan keterbatasan fitur SQL Server 2005 dengan Oracle 9i
Feature Column
SQL Server 2005 name 128
Oracle9i 30
length Index name length
128
30
Table name length
128
30
View name length
128
30
procedure 128
30
Stored
name length Max columns per 16
32
index Max char() size
8000
2000
Max varchar() size
8000
4000
Max columns per 1024
1000
table Max
table
row 8036
255000
length Max query size
16777216
16777216
186
Feature Recursive
SQL Server 2005 40
Oracle9i 64
subqueries Constant string size 16777207
4000
in SELECT
Constant string size 8000
4000
in WHERE
Dari data di atas, Oracle memiliki performa yang tidak berbeda jauh daripada SQL Server 2005, namun dari segi hardware dan biaya, Oracle lebih tinggi. Oleh karena itu SQL Server 2005 dipilih sebagai DBMS yang akan digunakan dalam implements basis data.
3.6.3.2.2 Analisis Transaksi 1.
Analisis transaksi (I) (a) Memasukkan/menghapus/mengubah
data
PO:
KdPO, Tanggal, KdPegawai, KdCustomer dan menampilkan data Pegawai yang sesuai dengan KdPegawai yang menangani dan berada pada data PO;
187
(b) Memasukkan/menghapus/mengubah data EmailP: Email,
KdPegawai
dan
menampilkan
data
Pegawai yang sesuai dengan KdPegawai yang memiliki dan berada pada data EmailP; (c) Memasukkan/menghapus/mengubah data TelpP: Phone,
KdPegawai
dan
menampilkan
data
Pegawai yang sesuai dengan KdPegawai yang memiliki dan berada pada data TelpP. Tabel 3.16 Analisi Transaksi (I) a
Transaksi Relasi
I R U D
Pegawai
x
TelpP
x
EmailP
x
Jabatan
x
Divisi
x
KWN
x
UserP
x
Customer
x
TelpC
x
FaxC
x
EmailC
x
b I
c
R U D
I
x
x
U
D
x
x
x x
x
R
x
x
x
188
a
Transaksi Relasi
b
I R U D
I
R U D
c I
R
U
D
x
JenisCustomer PO
x
x
x
x
DetailPO
x
x
x
x
TipeBarang Ukuran3P Ukuran4P Barang JenisBarang Bkompetitor Lengkapan Ukuran3PL Ukuran4PL BukaYO TutupYC Interlok TInstalasi Keterangan: I=Insert, R=Read, U=Update, D=Delete
189
2.
Analisis transaksi (II) (d) Memasukkan/menghapus/mengubah
data
Pegawai: KdPegawai, NamaP, AlamatP, DOB, JK, Fax, KdJabatan, KdDivisi, KdKWN dan menampilkan data Jabatan yang sesuai dengan KdJabatan yang berada pada data Pegawai; (e) Memasukkan/menghapus/mengubah
data
Pegawai: KdPegawai, NamaP, AlamatP, DOB, JK, Fax, KdJabatan, KdDivisi, KdKWN dan menampilkan data Divisi yang sesuai dengan KdDivisi yang berada pada data Pegawai; (f) Memasukkan/menghapus/mengubah data UserP: KdUser, Username, Password, KdPegawai dan menampilkan data Pegawai yang sesuai dengan KdPegawai yang memiliki dan berada pada data UserP. Tabel 3.17 Analisis Transaksi (II) d
Transaksi
f
Relasi
I R U D
I
R U D
Pegawai
x
x
x
TelpP EmailP
e
x
x
x
x
x
I
R x
U
D
190
d
Transaksi Relasi Jabatan Divisi
I R U D
e I
R U D
f I
R
U
D
x
x
x
x
x x
KWN UserP Customer TelpC FaxC EmailC JenisCustomer PO DetailPO TipeBarang Ukuran3P Ukuran4P Barang JenisBarang Bkompetitor Lengkapan Ukuran3PL Ukuran4PL
191
Transaksi Relasi
d I R U D
e I
R U D
f I
R
U
D
BukaYO TutupYC Interlok TInstalasi Keterangan: I=Insert, R=Read, U=Update, D=Delete
3.
Analisis transaksi (III) (g) Memasukkan/menghapus/mengubah
data
Pegawai: KdPegawai, NamaP, AlamatP, DOB, JK, Fax, KdJabatan, KdDivisi, KdKWN dan menampilkan data KWN yang sesuai dengan KdKWN yang berada pada data Pegawai; (h) Memasukkan/menghapus/mengubah
data
PO:
KdPO, Tanggal, KdPegawai, KdCustomer dan menampilkan data Customer yang sesuai dengan KdCustomer yang membuat dan berada pada data PO; (i) Memasukkan/menghapus/mengubah data TelpC: Phone, KdCustomer dan menampilkan data Customer yang sesuai dengan KdCustomer yang memiliki dan berada pada TelpC;
192
Tabel 3.18 Analisis Transaksi (III) g
Transaksi
h
Relasi
I R U D
Pegawai
x
x
x
I
i
R U D
I
R
U
D
x
x
x
TelpP EmailP Jabatan Divisi KWN
x
UserP x
Customer
x x
TelpC FaxC EmailC JenisCustomer PO DetailPO TipeBarang Ukuran3P Ukuran4P Barang JenisBarang
x
x
x
x
x
193
Transaksi Relasi
g I R U D
h I
R U D
i I
R
U
D
Bkompetitor Lengkapan Ukuran3PL Ukuran4PL BukaYO TutupYC Interlok TInstalasi Keterangan: I=Insert, R=Read, U=Update, D=Delete
4.
Analisis transaksi (IV) (j) Memasukkan/menghapus/mengubah
data
EmailC: Email, KdCustomer dan menampilkan data Customer yang sesuai dengan KdCustomer yang memiliki dan berada pada EmailC; (k) Memasukkan/menghapus/mengubah Customer:
KdCustomer,
NamaC,
data AlamatC,
KdJenisC dan menampilkan data JenisCustomer yang sesuai dengan KdJenisC yang dimiliki dan berada pada data Customer;
194
(l) Memasukkan/menghapus/mengubah data FaxC: Fax,
KdCustomer
dan
menampilkan
data
Customer yang sesuai dengan KdCustomer yang berada pada data FaxC; Tabel 3.19 Analisis Transaksi (IV) j
Trransaksi Relasi
k
I R U D
l
I
R U D
x
x
I
R
U
D
x
x
Pegawai TelpP EmailP Jabatan Divisi KWN UserP x
Customer
x
x
x
TelpC x
FaxC EmailC JenisCustomer PO DetailPO TipeBarang
x
x
x
x x
x
195
Transaksi Relasi
j I R U D
k I
R U D
l I
R
U
D
Ukuran3P Ukuran4P Barang JenisBarang Bkompetitor Lengkapan Ukuran3PL Ukuran4PL BukaYO TutupYC Interlok TInstalasi Keterangan: I=Insert, R=Read, U=Update, D=Delete
5.
Analisis transaksi (V) (m) Memasukkan/menghapus/mengubah Interlok:
KdInterlok,
Harga,
data Deskripsi,
KdTInstalasi dan menampilkan data TInstalasi yang sesuai dengan KdTInstalasi yang berada pada data Interlok;
196
(n) Memasukkan/menghapus/mengubah DetailPO:
KdPO,
Qty,
KdTipe,
data KdTipeL,
KdInterlok dan menampilkan data Interlok yang sesuai dengan KdInterlok yang berada pada data DetailPO; (o) Memasukkan/menghapus/mengubah
data
TutupYC: KdYC, NoRefYC, Harga, KdTipeL dan menampilkan data Lengkapan yang sesuai dengan
KdTipeL
yang
berada
pada
data
TutupYC; Tabel 3.20 Analisis Transaksi (V) Transaksi Relasi Pegawai TelpP EmailP Jabatan Divisi KWN UserP Customer TelpC
m I R U D
n I
R U D
o I
R
U
D
197
m
Transaksi Relasi
n
I R U D
o
I
R U D
x
x
I
R
U
D
x
x
FaxC EmailC JenisCustomer PO DetailPO
x
x
TipeBarang Ukuran3P Ukuran4P Barang JenisBarang Bkompetitor x
Lengkapan Ukuran3PL Ukuran4PL BukaYO x
TutupYC Interlok TInstalasi
x
x
x
x
x
x
x Keterangan: I=Insert, R=Read, U=Update, D=Delete
198
6.
Analisis Transaksi (VI) (p) Memasukkan/menghapus/mengubah
data
BukaYO: KdYO, NoRefYC, Harga, KdTipeL dan menampilkan data Lengkapan yang sesuai dengan KdTipeL yang berada pada data BukaYO (q) Memasukkan/menghapus/mengubah Ukuran4PL:
KdU4PL,
data
NoRefU4,
Harga,
KdTipeL dan menampilkan data Lengkapan yang sesuai dengan KdTipeL yang berada pada data Ukuran4PL (r) Memasukkan/menghapus/mengubah Ukuran3PL:
KdU3PL,
data
NoRefU3,
Harga,
KdTipeL dan menampilkan data Lengkapan yang sesuai dengan KdTipeL yang berada pada data Ukuran3PL Tabel 3.21 Analisis Transaksi (VI) Transaksi Relasi Pegawai TelpP EmailP Jabatan
p I R U D
q I
R U D
r I
R
U
D
199
p
Transaksi Relasi
q
I R U D
I
r
R U D
I
R
U
D
x
x
Divisi KWN UserP Customer TelpC FaxC EmailC JenisCustomer PO DetailPO TipeBarang Ukuran3P Ukuran4P Barang JenisBarang Bkompetitor x
Lengkapan
x
x x
Ukuran3PL x
Ukuran4PL BukaYO
x
x
x
x
x
x
x
x
200
Transaksi Relasi
p I R U D
q I
r
R U D
I
R
U
D
TutupYC Interlok TInstalasi Keterangan: I=Insert, R=Read, U=Update, D=Delete
7.
Analisis Transaksi (VII) (s) Memasukkan/menghapus/mengubah DetailPO:
KdPO,
Qty,
KdTipe,
data KdTipeL,
KdInterlok dan menampilkan data Lengkapan yang sesuai dengan KdTipeL yang berada pada data DetailPO; (t) Memasukkan/menghapus/mengubah
data
BKompetitor: KdBKompetitor, NamaBarangK, Harga,
KdTipe
dan
menampilkan
data
TipeBarang yang sesuai dengan KdTipe yang berada pada data BKompetitor; (u) Memasukkan/menghapus/mengubah data Barang: KdBarang, NamaB, NoStandard, Icu, TipeUT, Proteksi, JenisK, TipeI, JArusP, KelasTrip, Cwave,
KdJenisB
dan
menampilkan
data
201
JenisBarang yang sesuai dengan KdJenisB yang berada pada data Barang; Tabel 3.22 Analisis Transaksi (VII) s
Transaksi Relasi
t
I R U D
I
R U D
Pegawai TelpP EmailP Jabatan Divisi KWN UserP Customer TelpC FaxC EmailC JenisCustomer PO DetailPO TipeBarang Ukuran3P Ukuran4P
x
x
x
x x
u I
R
U
D
202
s
Transaksi Relasi
I R U D
t I
u
R U D
Barang
I
R
U
D
x
x
x
x
x
JenisBarang x
Bkompetitor
x
x
x
x
Lengkapan Ukuran3PL Ukuran4PL BukaYO TutupYC Interlok TInstalasi
Keterangan: I=Insert, R=Read, U=Update, D=Delete
8.
Analisis Transaksi (VIII) (v) Memasukkan/menghapus/mengubah
data
TipeBarang: KdTipe, In, Icu, UnitTrip, I3, JumKutub,
Un.
AusG,
SArus,
Deskripsi,
KdBarang, KdNoRefU3P dan menampilkan data Barang yang sesuai dengan KdBarang yang berada pada data TipeBarang; (w) Memasukkan/menghapus/mengubah
data
Ukuran4P: KdNoRefU4P, Harga, KdTipe dan
203
menampilkan data TipeBarang yang sesuai dengan KdTipe yang berada pada data Ukuran4P; (x) Memasukkan/menghapus/mengubah
data
TipeBarang: KdTipe, In, Icu, UnitTrip, I3, JumKutub,
Un.
AusG,
SArus,
Deskripsi,
KdBarang, KdNoRefU3P dan menampilkan data Ukuran3P yang sesuai dengan KdNoRefU3P yang berada pada data TipeBarang; Tabel 3.23 Analisis Transaksi (VIII) Transaksi Relasi Pegawai TelpP EmailP Jabatan Divisi KWN UserP Customer TelpC FaxC EmailC
v I R U D
w I
R U D
x I
R
U
D
204
v
Transaksi Relasi
w
I R U D
I
x
R U D
I
R
U
D
x
x
x
x
x
JenisCustomer PO DetailPO x
TipeBarang
x
x
x
x
Ukuran3P x
Ukuran4P
x
x
x
x
Barang JenisBarang Bkompetitor Lengkapan Ukuran3PL Ukuran4PL BukaYO TutupYC Interlok TInstalasi
Keterangan: I=Insert, R=Read, U=Update, D=Delete
9.
Analisis Transaksi (XI) (y) Memasukkan/menghapus/mengubah DetailPO:
KdPO,
Qty,
KdTipe,
data KdTipeL,
205
KdInterlok dan menampilkan data TipeBarang yang sesuai dengan KdTipe yang berada pada data DetailPO; (z) Memasukkan/menghapus/mengubah DetailPO:
KdPO,
Qty,
data
KdTipe,
KdTipeL,
KdInterlok dan menampilkan data PO yang sesuai dengan KdPO yang berada pada data DetailPO Tabel 3.24 Analisis Transaksi (XI) y
Transaksi Relasi Pegawai TelpP EmailP Jabatan Divisi KWN UserP Customer TelpC FaxC EmailC
I
R
z U
D
I
R
U
D
206
y
Transaksi Relasi
I
R
z U
D
I
R
U
D
x
x
JenisCustomer x
PO DetailPO TipeBarang
x
x
x
x
x
x
x
Ukuran3P Ukuran4P Barang JenisBarang Bkompetitor Lengkapan Ukuran3PL Ukuran4PL BukaYO TutupYC Interlok TInstalasi Keterangan: I=Insert, R=Read, U=Update, D=Delete
3.6.3.2.3 Memilih Organisasi File Karena DBMS yang digunakan dalam perancangan sistem penjualan pada PT. Abdibangun buana adalah
207
MySQL Server 2005, maka organisasi file yang digunakan adalah heap (unordered files). Heap menempatkan record di file dalam urutan yang sama dengan ketika dimasukkan. Record baru akan dimasukkan disetiap akhir urutan, dan begitu seterusnya.
3.6.3.2.4 Memilih Index Tujuan langkah ini adalah untuk meningkatkan performa dalam suatu sistem basis data. Indeks dibuat berdasarkan field yang sering digunakan dalam proses pencarian. Tabel 3.25 Pemilihan Index Entity Table Pegawai
Index Name
Index Key
Idx_kdpegawai
KdPegawai
Idx_namapeg
NamaPegawai
TelpP
Idx_telpp
Phone
FaxP
Idx_faxp
Fax
EmailP
Idx_emailp
Email
Jabatan
Idx_kdjabatan
KdJabatan
Divisi
Idx_kddivisi
KdDivisi
UserP
Idx_kduser
KdUser
Idx_username
Username
208
Entity Table
Index Name
Index Key
KWN
Idx_kdkwn
KdKWN
Customer
Idx_kdcus
KdCustomer
Idx_namaC
NamaCustomer
TelpC
Idx_telpc
Phone
FaxC
Idx_faxc
Fax
EmailC
Idx_emailc
Email
JenisCustomer
Idx_kdjeniscus
KdJenisCustomer
TipeBarang
Idx_tipeb
KdTipe
Ukuran3P
Idx_kdu3p
KdNoRefU3P
Ukuran4P
Idx_kdu4p
KdNoRef4UP
Barang
Idx_kdb
KdBarang
Idx_namaB
NamaBarang
JenisBarang
Idx_kdjb
KdJenisBarang
BKompetitor
Idx_kdbkom
KdBKompetitor
Idx_namabkom
NamaBarangK
Idx_kdleng
KdTipeL
Idx_namaL
TipeL
Ukuran3PL
Idx_kdu3pl
KdU3PL
Ukuran4PL
Idx_kdu4pl
KdU4PL
Lengkapan
209
Entity Table
Index Name
Index Key
BukaYO
Idx_kdyo
KdYO
TutupYC
Idx_kdyc
KdYC
Interlok
Idx_kdinterlok
KdInterlok
TInstalasi
Idx_tinstalasi
KdTInstalasi
Idx_tipe
Tipe
PO
Idx_kdpo
KdPO
DetailPO
Idx_kddetailpo
KdDetailPO
Idx_kdpo
KdPO
Idx_tipeb
KdTipe
Idx_tipeleng
KdLengkapan
Idx_kdinterlok
KdInterlok
3.6.3.2.5 Memperkirakan Kebutuhan Kapasitas Disk Tahap besarnya
ini
kapasitas
mendukung
bertujuan disk
implementasi
untuk
yang database
memperkirakan
dibutuhkan pada
untuk
secondary
storage. Berikut asumsi kebutuhan kapasitas media penyimpanan dalam setahun dengan peng-update-an data per bulannya:
210
Tabel 3.26 Estimasi Tabel Pegawai Field
Data Type
Ukuran
KdPegawai
Char (5)
5 bytes
NamaP
Varchar (50)
50 bytes
AlamatP
Varchar (100)
100 bytes
DOB
Datetime
8 bytes
JK
Char (1)
1 byte
KdJabatan
Char (5)
5 bytes
KdDivisi
Char (5)
5 bytes
KdKWN
Char (5)
5 bytes
Total (bytes)
179 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
8496
bytes
8,496 KB
=
211
Tabel 3.27 Estimasi Tabel TelpP Field
Data Type
Ukuran
KdPegawai
Char (5)
5 bytes
Phone
Varchar (20)
20 bytes
Total
25 bytes
Perkiraan Pertumbuhan Data (1 6 * 12 = 72 tahun) Kapasitas Entitas (KB)
1800
bytes
=
1,800 KB
Tabel 3.28 Estimasi Tabel EmailP Field
Data Type
Ukuran
KdPegawai
Char (5)
5 bytes
Email
Varchar (100)
100 bytes
Total
105 bytes
Perkiraan Pertumbuhan Data (1 6 * 12 = 72 tahun) Kapasitas Entitas (KB)
7560
bytes
7,560 KB
=
212
Tabel 3.29 Estimasi Tabel Jabatan Field
Data Type
Ukuran
KdPegawai
Char (5)
5 bytes
Jabatan
Varchar (15)
15 bytes
Total
20 bytes
Perkiraan Pertumbuhan Data (1 0 tahun) Kapasitas Entitas (KB)
0 bytes = 0,240 KB
Tabel 3.30 Estimasi Tabel Divisi Field
Data Type
Ukuran
KdPegawai
Char (5)
5 bytes
Divisi
Varchar (30)
30 bytes
Total
35 bytes
Perkiraan Pertumbuhan Data (1 0 tahun) Kapasitas Entitas (KB)
0 bytes = 0 KB
213
Tabel 3.31 Estimasi Tabel KWN Field
Data Type
Ukuran
KdKWN
Char (5)
5 bytes
WargaN
Char (3)
3 bytes
Total
8 bytes
Perkiraan Pertumbuhan Data (1 0 tahun) Kapasitas Entitas (KB)
0 bytes = 0 KB
Tabel 3.32 Estimasi Tabel UserP Field
Data Type
Ukuran
KdUser
Char (5)
5 bytes
Username
Varchar (10)
10 bytes
Password
Varchar (20)
20 bytes
KdPegawai
Char (5)
5 bytes
Total
40 bytes
Perkiraan Pertumbuhan Data (1 2 * 12 = 24 tahun) Kapasitas Entitas (KB)
960
bytes
0,960 KB
=
214
Tabel 3.33 Estimasi Tabel Customer Field
Data Type
Ukuran
KdCustomer
Char (5)
5 bytes
NamaC
Varchar (50)
50 bytes
AlamatC
Varchar (100)
100 bytes
KdJenisC
Char (5)
5 bytes
Total
160 bytes
Perkiraan Pertumbuhan Data (1 5 * 12 = 60 tahun) Kapasitas Entitas (KB)
9600
bytes
=
9,600 KB
Tabel 3.34 Estimasi Tabel TelpC Field
Data Type
Ukuran
KdCustomer
Char (5)
5 bytes
Phone
Varchar (20)
20 bytes
Total
25 bytes
Perkiraan Pertumbuhan Data (1 10 * 12 = 120 tahun) Kapasitas Entitas (KB)
3000
bytes
3,000 KB
=
215
Tabel 3.35 Estimasi Tabel FaxC Field
Data Type
Ukuran
KdCustomer
Char (5)
5 bytes
Fax
Varchar (20)
20 bytes
Total
25 bytes
Perkiraan Pertumbuhan Data (1 6 * 12 = 72 tahun) Kapasitas Entitas (KB)
1800
bytes
=
1,800 KB
Tabel 3.36 Estimasi Tabel EmailC Field
Data Type
Ukuran
KdCustomer
Char (5)
5 bytes
Email
Varchar (100)
100 bytes
Total
105 bytes
Perkiraan Pertumbuhan Data (1 5 * 12 = 60 tahun) Kapasitas Entitas (KB)
6300
bytes
6,300 KB
=
216
Tabel 3.37 Estimasi Tabel JenisCustomer Field
Data Type
Ukuran
KdJenisC
Char (5)
5 bytes
JenisC
Varchar (30)
30 bytes
Total
35 bytes
Perkiraan Pertumbuhan Data (1 0 tahun) Kapasitas Entitas (KB)
0 bytes = 0 KB
Tabel 3.38 Estimasi Tabel TipeBarang Field
Data Type
Ukuran
KdTipe
Varchar (20)
20 bytes
ln
Varchar (5)
5 bytes
Icu
Varchar (5)
5 bytes
UnitTrip
Varchar (15)
15 bytes
I3
Varchar (5)
5 bytes
JumKutub
Varchar (3)
3 bytes
Un
Varchar (5)
5 bytes
AusG
Varchar (5)
5 bytes
SArus
Varchar (12)
12 bytes
Deskripsi
Varchar (200)
200 bytes
KdBarang
Char (5)
5 bytes
217
Field KdNoRefU3P
Data Type Varchar (6)
Total
Ukuran 6 bytes 286 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
13728 bytes = 13,728 KB
Tabel 3.39 Estimasi Tabel Ukuran3P Field
Data Type
Ukuran
KdNoRefU3P
Varchar (6)
5 bytes
Harga
Money
15 bytes
Total
20 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
960
bytes
0,960 KB
=
218
Tabel 3.40 Estimasi Tabel Ukuran4P Field
Data Type
Ukuran
KdNoRefU4P
Varchar (6)
5 bytes
Harga
Money
15 bytes
KdTipe
Char (5)
5 bytes
Total
25 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
1200
bytes
1,200 KB
Tabel 3.41 Estimasi Tabel Barang Field
Data Type
Ukuran
KdBarang
Char (5)
5 bytes
NamaB
Varchar(50)
20 bytes
NoStandard
Varchar (5)
5 bytes
Icu
Varchar (20)
20 bytes
TipeUT
Varchar (20)
20 bytes
Proteksi
Varchar (20)
20 bytes
JenisK
Varchar (20)
20 bytes
TipeI
Varchar (15)
15 bytes
JArusP
Varchar (15)
15 bytes
=
219
Field
Data Type
Ukuran
KelasTrip
Varchar (5)
5 bytes
CWave
Char (5)
5 bytes
KdJenisB
Char (5)
5 bytes
Total
155 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
7440
bytes
=
7,440 KB
Tabel 3.42 Estimasi Tabel JenisBarang Field
Data Type
Ukuran
KdJenisB
Char (5)
5 bytes
NamaJenisB
Varchar (50)
50 bytes
Total
55 bytes
Perkiraan Pertumbuhan Data (1 1 * 12 = 12 tahun) Kapasitas Entitas (KB)
660
bytes
0,660 KB
=
220
Tabel 3.43 Estimasi Tabel BKompetitor Field
Data Type
Ukuran
KdBKompetitor Char (5)
5 bytes
NamaBarangK
Varchar (50)
50 bytes
Harga
Money
15 bytes
KdTipe
Char (5)
5 bytes
Total
30 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
1440
bytes
=
1,440 KB Tabel 3.44 Estimasi Tabel PO Field
Data Type
Ukuran
KdPO
Varchar (10)
10 bytes
Tanggal
Datetime
8 bytes
KdPegawai
Char (5)
5 bytes
KdCustomer
Char (5)
5 bytes
Total
28 bytes
Perkiraan Pertumbuhan Data (1 17 * 12 = 204 tahun) Kapasitas Entitas (KB)
5712
bytes
5,712 KB
=
221
Tabel 3.45 Estimasi Tabel DetailPO Field
Data Type
Ukuran
KdDetailPO
Varchar (10)
10 bytes
KdPO
Varchar (10)
10 bytes
KdTipe
Char (5)
5 bytes
KdTipeL
Char (5)
5 bytes
KdInterlok
Char (5)
5 bytes
Qty
Varchar (3)
3 bytes
Total
38 bytes
Perkiraan Pertumbuhan Data (1 17 * 12 = 204 tahun) Kapasitas Entitas (KB)
7752
bytes
7,752 KB
Tabel 3.46 Estimasi Tabel Lengkapan Field
Data Type
Ukuran
KdTipeL
Char (5)
5 bytes
TipeL
Datetime
8 bytes
UnitTrip
Varchar (15)
15 bytes
Proteksi
Varchar (20)
20 bytes
NoRefL
Char (6)
6 bytes
Harga
Money
15 bytes
=
222
Field Deskripsi
Data Type Varchar (200)
Total
Ukuran 200 bytes 269 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
12912 bytes = 12,912 KB
Tabel 3.47 Estimasi Tabel Ukuran3PL Field
Data Type
Ukuran
KdU3PL
Char (5)
5 bytes
NoRefU3
Varchar (6)
6 bytes
Harga
Money
15 bytes
KdTipeL
Char (5)
5 bytes
Total
31
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
1488
bytes
1,488 KB
=
223
Tabel 3.48 Estimasi Tabel Ukuran4PL Field
Data Type
Ukuran
KdU4PL
Char (5)
5 bytes
NoRefU4
Varchar (6)
6 bytes
Harga
Money
15 bytes
KdTipeL
Char (5)
5 bytes
Total
31 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
1488
bytes
=
1,488 KB Tabel 3.49 Estimasi Tabel BukaYO Field
Data Type
Ukuran
KdYO
Char (5)
5 bytes
NoRefYO
Varchar (6)
6 bytes
Harga
Money
15 bytes
KdTipeL
Char (5)
5 bytes
Total
31 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
1488
bytes
1,488 KB
=
224
Tabel 3.50 Estimasi Tabel TutupYC Field
Data Type
Ukuran
KdYC
Char (5)
5 bytes
NoRefYC
Varchar (6)
6 bytes
Harga
Money
15 bytes
KdTipeL
Char (5)
5 bytes
Total
31 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
1488
bytes
=
1,488 KB Tabel 3.51 Estimasi Tabel Interlok Field
Data Type
Ukuran
KdInterlok
Varchar (6)
6 bytes
Harga
Money
15 bytes
Deskripsi
Datetime
8 bytes
KdTInstalasi
Char (5)
5 bytes
Total
34 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
1632
bytes
1,632 KB
=
225
Tabel 3.52 Estimasi Tabel TInstalasi Field
Data Type
Ukuran
KdTInstalasi
Char (5)
5 bytes
Tipe
Varchar (10)
10 bytes
Total
15 bytes
Perkiraan Pertumbuhan Data (1 4 * 12 = 48 tahun) Kapasitas Entitas (KB)
720
bytes
=
0,720 KB
Tabel 3.53 Total kebutuhan memory selama 1 tahun Tabel
Ukuran (KB)
Pegawai
8,496
TelpP
1,800
EmailP
7,560
Jabatan
0
Divisi
0
Customer
9,600
TelpC
3,000
FaxC
1,800
EmailC
6,300
JenisCustomer
0
226
Tabel
Ukuran (KB)
TipeBarang
13,728
Ukuran3P
0,960
Ukuran 4P
1,200
Barang
7,440
JenisBarang
0,660
BKompetitor
1,440
PO
5,712
DetailPO
7,752
Lengkapan
12,912
Ukuran3PL
1,488
Ukuran4PL
1,488
BukaYO
1,488
TutupYC
1,488
Interlok
1,632
Tinstalasi
0,720
KWN
0
UserP
0,960
Total
99,624
Jadi, total kebutuhan memory PT. Abdi Bangun Buana selama 1 tahun berdasarkan estimasi kapasitas memory
227
yang telah diuraikan sebelumnya adalah sebesar 99, 624 KB.
3.6.3.3 Merancang Procedure 1. Pegawai •
Masukkan data Pegawai CREATE PROC insertPegawai @KdPegawai char(5), @NamaP char(50), @AlamatP char(100), @DOB datetime, @JK char(1), @KdJabatan char(5), @KdDivisi char(5), @KdKWN char(5) AS INSERT INTO Pegawai VALUES (@KdPegawai, @NamaP, @AlamatP, @DOB, @JK, @KdJabatan, @KdDivisi, @KdKWN)
•
Hapus data Pegawai CREATE PROC deletePegawai @KdPegawai char(5) AS UPDATE Pegawai SET (NamaP=@NamaP) WHERE KdPegawai=@KdPegawai
•
Ubah data Pegawai CREATE PROC updatePegawai @KdPegawai char(5), @NamaP
char(50),
@AlamatP
char(100),
@DOB
datetime, @JK char(1), @KdJabatan char(5), @KdDivisi char(5), @KdKWN char(5)
228
AS
UPDATE
Pegawai
SET
(NamaP=@NamaP,
AlamatP=@AlamatP, DOB=@DOB, JK=@JK) WHERE KdPegawai = @KdPegawai
2. TelpP •
Masukkan data TelpP CREATE PROC insertTelpP @KdPegawai char(5), @Phone integer(20) AS INSERT INTO TelpP VALUES (@KdPegawai, @Phone)
•
Hapus data TelpP CREATE PROC deleteTelpP @Phone integer(20) AS UPDATE TelpP SET (Phone=@Phone) WHERE Phone=@Phone
•
Ubah data TelpP CREATE PROC updateTelpP @KdPegawai char(5), @Phone integer(20) AS UPDATE TelpP SET (KdPegawai=@KdPegawai, Phone=@Phone) WHERE Phone=@Phone
3. EmailP •
Masukkan data EmailP
229
CREATE PROC insertEmailP @KdPegawai char(5), @Email varchar(100) AS INSERT INTO EmailP VALUES (@KdPegawai, @Email) •
Hapus data EmailP CREATE PROC deleteEmailP @Email varchar(100) AS UPDATE EmailP SET (Email=@Email) WHERE Email=@Email
•
Ubah data EmailP CREATE PROC updateEmailP @KdPegawai char(5), @Email varchar(100) AS UPDATE EmailP SET (KdPegawai=@KdPegawai, Email=@Email) WHERE Email=@Email
4. Jabatan •
Masukkan data Jabatan CREATE PROC insertJabatan @KdJabatan char(5), @Jabatan varchar(15) AS INSERT INTO Jabatan VALUES (@KdJabatan, @Jabatan)
•
Hapus data Jabatan CREATE PROC deleteJabatan @KdJabatan varchar(15)
230
AS UPDATE Jabatan SET (Jabatan=@Jabatan) WHERE KdJabatan=@KdJabatan •
Ubah data Jabatan CREATE PROC updateJabatan @KdJabatan char(5), @Jabatan varchar(15) AS UPDATE Jabatan SET (KdJabatan=@KdJabatan, Jabatan=@Jabatan) WHERE KdJabatan=@KdJabatan
5. Divisi •
Masukkan data Divisi CREATE
PROC
insertDivisi
@KdDivisi
char(5),
@Divisi varchar(30) AS INSERT INTO Divisi VALUES (@KdDivisi, @Divisi) •
Hapus data Divisi CREATE PROC deleteDivisi @KdDivisi char(5) AS UPDATE Divisi SET (Divisi=@Divisi) WHERE KdDivisi=@KdDivisi
•
Ubah data Divisi CREATE PROC updateDivisi @KdDivisi char(5), @Divisi varchar(30) AS
UPDATE
Divisi
SET
(KdDivisi=@KdDivisi,
Divisi=@Divisi) WHERE KdDivisi=@KdDivisi
231
6. UserP •
Masukkan data UserP CREATE
PROC
@Username
insertUserP
varchar(10),
@KdUser
@Password
char(5),
varchar(20),
KdPegawai char(5) AS
INSERT
INTO
UserP
VALUES
(@KdUser,
@Username, @Password, @KdPegawai) •
Hapus data UserP CREATE PROC deleteUserP @KdUser char(5) AS UPDATE UserP SET (Username=@Username) WHERE KdUser=@KdUser
•
Ubah data UserP CREATE @Username
PROC
updateUserP
varchar(10),
@KdUser
@Password
char(5),
varchar(20),
KdPegawai char(5) AS
UPDATE
UserP
Username=@Username,
SET
(KdUser=@KdUser, Password=@Password,
KdPegawai=@KdPegawai) WHERE KdUser=@KdUser
7. KWN •
Masukkan data KWN
232
CREATE
PROC
insertKWN
@KdKWN
char(5),
@WargaN char(3) AS INSERT INTO KWN VALUES (@KdKWN, @WargaN) •
Hapus data KWN CREATE PROC deleteKWN @KdKWN AS UPDATE KWN SET (WargaN=@WargaN) WHERE KdKWN=@KdKWN
•
Ubah data KWN CREATE
PROC
updateKWN
@KdKWN
char(5),
@WargaN char(3) AS
UPDATE
KWN
SET
(KdKWN=@KdKWN,
WargaN=@WargaN) WHERE KdKWN=@KdKWN
8. Customer •
Masukkan data Customer CREATE PROC insertCustomer @KdCustomer char(5), @NamaC
varchar(50),
@AlamatC
varchar(100),
KdJenisC char(5) AS INSERT INTO Customer VALUES (@KdCustomer, @NamaC, @AlamatC, @KdJenisC) •
Hapus data Customer CREATE PROC deleteCustomer @KdCustomer char(5)
233
AS
UPDATE
Customer
SET
(NamaC=@NamaC)
WHERE KdCustomer=@KdCustomer •
Ubah data Customer CREATE PROC updateCustomer @KdCustomer char(5), @NamaC
varchar(50),
@AlamatC
varchar(100),
@KdJenisC char(5) AS
UPDATE
(KdCustomer=@KdCustomer,
Customer
SET
NamaC=@NamaC,
AlamatC=@AlamatC, KdJenisC=@KdJenisC) WHERE KdCustomer=@KdCustomer
9. TelpC •
Masukkan data TelpC CREATE PROC insertTelpC @KdCustomer char(5), @Phone integer(20) AS INSERT INTO TelpC VALUES (@KdCustomer, @Phone)
•
Hapus data TelpC CREATE PROC deleteTelpC @Phone integer(20) AS UPDATE TelpC SET (Phone=@Phone) WHERE Phone=@Phone
•
Ubah data TelpC
234
CREATE PROC updateTelpC @KdCustomer char(5), @Phone integer(20) AS UPDATE TelpC SET (KdCustomer=@KdCustomer, Phone=@Phone) WHERE Phone=@Phone
10. FaxC •
Masukkan data FaxC CREATE PROC insertFaxC @KdCustomer char(5), @Fax integer(20) AS INSERT INTO FaxC VALUES (@KdCustomer, @Fax)
•
Hapus data FaxC CREATE PROC deleteFaxC @Fax integer(20) AS UPDATE FaxC SET (FaxC=@FaxC) WHERE Fax=@Fax
•
Ubah data FaxC CREATE PROC updateFaxC @KdCustomer char(5), @Fax integer(20) AS UPDATE FaxC SET (KdCustomer=@KdCustomer, FaxC=@FaxC) WHERE Fax=@Fax
11. EmailC •
Masukkan data EmailC
235
CREATE PROC insertEmailC @KdCustomer char(5), @Email varchar(100) AS INSERT INTO EmailC VALUES (@KdCustomer, @Email) •
Hapus data EmailC CREATE PROC deleteEmailC @Email varchar(100) AS UPDATE EmailC SET (Email=@Email) WHERE Email=@Email
•
Ubah data EmailC CREATE PROC updateEmailC @KdCustomer char(5), @Email varchar(100) AS
UPDATE
EmailC
SET
(KdCustomer=@KdCustomer, Email=@Email) WHERE Email=@Email
12. JenisCustomer •
Masukkan data JenisCustomer CREATE
PROC
insertJenisCustomer
@KdJenisC
char(5), @JenisC varchar(30) AS
INSERT
INTO
(@KdJenisC, @JenisC) •
Hapus data JenisCustomer
JenisCustomer
VALUES
236
CREATE
PROC
deleteJenisCustomer
@KdJenisC
char(5) AS UPDATE JenisCustomer SET (JenisC=@JenisC) WHERE KdJenisC=@KdJenisC •
Ubah data JenisCustomer CREATE
PROC
updateJenisCustomer
@KdJenisC
char(5), @JenisC varchar(30) AS
UPDATE
JenisCustomer
(KdJenisC=@KdJenisC,
SET
JenisC=@JenisC)
WHERE
KdJenisC=@KdJenisC
13. TipeBarang •
Masukkan data TipeBarang CREATE
PROC
insertTipeBarang
@KdTipe
varchar(20), @In integer(5), @Icu integer(5), @UnitTrip varchar(15), @I3 integer(5), @JumKutub integer(3), @Un
integer(5),
varchar(12),
@AusG
@Deskripsi
integer(5),
varchar(200),
@SArus
@KdBarang
char(5), @KdNoRefU3P varchar(6) AS INSERT INTO TipeBarang VALUES (@KdTipe, @In, @Icu, @UnitTrip, @I3, @JumKutub, @Un, @AusG,
@SArus,
@KdNoRefU3P)
@Deskripsi,
@KdBarang,
237
•
Hapus data TipeBarang CREATE PROC deleteTipeBarang @KdTipe varchar(20) AS UPDATE TipeBarang SET (Deskripsi=@Deskripsi) WHERE KdTipe=@KdTipe
•
Ubah data TipeBarang CREATE
PROC
updateTipeBarang
@KdTipe
varchar(20), @In integer(5), @Icu integer(5), @UnitTrip varchar(15), @I3 integer(5), @JumKutub integer(3), @Un
integer(5),
varchar(12),
@AusG
@Deskripsi
integer(5),
varchar(200),
@SArus
@KdBarang
char(5), @KdNoRefU3P varchar(6) AS UPDATE TipeBarang SET (KdTipe=@KdTipe, In=@In,
Icu=@Icu,
UnitTrip=@UnitTrip,
JumKutub=@JumKutub,
Un=@Un,
SArus=@SArus,
I3=@I3,
AusG=@AusG,
Deskripsi=@Deskripsi,
KdBarang=@KdBarang, KdNoRefU3P=@KdNoRefU3P) KdTipe=@KdTipe
14. Ukuran3P •
Masukkan data Ukuran3P
WHERE
238
CREATE
PROC
insertUkuran3P
@KdNoRefU3P
varchar(6), @Harga money AS
INSERT
INTO
Ukuran3P
VALUES
(@KdNoRefU3P, @Harga) •
Hapus data Ukuran3P CREATE
PROC
deleteUkuran3P
@KdNoRefU3P
varchar(6) AS UPDATE Ukuran3P SET (Harga=@Harga) WHERE KdNoRefU3P =@KdNoRefU3P •
Ubah data Ukuran3P CREATE
PROC
updateUkuran3P
@KdNoRefU3P
varchar(6), @Harga money AS
UPDATE
Ukuran3P
(KdNoRefU3P=@KdNoRefU3P,
SET
Harga=@Harga)
WHERE KdNoRefU3P =@KdNoRefU3P
15. Ukuran4P •
Masukkan data Ukuran4P CREATE
PROC
insertUkuran4P
@KdNoRefU4P
varchar(6), @Harga money, @KdTipe char(5) AS
INSERT
INTO
Ukuran4P
(@KdNoRefU4P, @Harga, @KdTipe) •
Hapus data Ukuran4P
VALUES
239
CREATE
PROC
deleteUkuran4P
@KdNoRefU4P
varchar(6) AS UPDATE Ukuran4P SET (Harga=@Harga) WHERE KdNoRefU4P=@KdNoRefU4P •
Ubah data Ukuran4P CREATE
PROC
updateUkuran4P
@KdNoRefU4P
varchar(6), @Harga money, @KdTipe char (5) AS
UPDATE
Ukuran4P
(KdNoRefU4P=@KdNoRefU4P,
SET
Harga=@Harga,
KdTipe=@KdTipe)
WHERE
KdNoRefU4P=@KdNoRefU4P
16. Barang •
Masukkan data Barang CREATE PROC insertBarang @KdBarang char(5), NamaB
varchar(50),
NoStandard
integer(5),
Icu
varchar(20), TipeUT varchar(20), Proteksi varchar(20), JenisK
varchar(20),
varchar(15),
KelasTrip
TipeI
varchar(15),
integer(5),
CWave
JArusP char(5),
@KdJenisB char(5) AS INSERT INTO Barang VALUES (@KdBarang, @NamaB, @NoStandard, @Icu, @TipeUT, @Proteksi,
240
@JenisK, @TipeI, @JArusP, @KelasTrip, @CWave, @KdJenisB) •
Hapus data Barang CREATE PROC deleteBarang @KdBarang char(5) AS UPDATE Barang SET (NamaB=@NamaB) WHERE KdBarang=@KdBarang
•
Ubah data Barang CREATE PROC updateBarang @KdBarang char(5), @NamaB varchar(50), @NoStandard integer(5), @Icu varchar(20),
@TipeUT
varchar(20),
@Proteksi
varchar(20), @JenisK varchar(20), @TipeI varchar(15), @JArusP varchar(15), @KelasTrip integer(5), @CWave char(5), @KdJenisB char(5) AS UPDATE Barang SET (KdBarang=@KdBarang, NamaB=@NamaB, Icu=@Icu,
NoStandard=@NoStandard,
TipeUT=@TipeUT,
JenisK=@JenisK,
TipeI=@TipeI,
JarusP=@JArusP,
KelasTrip=@KelasTrip,
CWave=@CWave,
KdJenisB=@KdJenisB)
WHERE
KdBarang=@KdBarang
17. JenisBarang •
Proteksi=@Proteksi,
Masukkan data JenisBarang
241
CREATE PROC insertJenisBarang @KdJenisB char(5), @NamaJenisB varchar(50) AS INSERT INTO JenisBarang VALUES (@KdJenisB, @NamaJenisB) •
Hapus data JenisBarang CREATE PROC deleteJenisBarang @KdJenisB char(5) AS
UPDATE
(NamaJenisB=@NamaJenisB)
JenisBarang
SET WHERE
KdJenisB=@KdJenisB •
Ubah data JenisBarang CREATE PROC updateJenisBarang @KdJenisB char(5), @NamaJenisB varchar(50) AS UPDATE JenisBarang SET (KdJenisB=@KdJenisB, NamaJenisB=@NamaJenisB)
WHERE
KdJenisB=@KdJenisB
18. BKompetitor •
Masukkan data BKompetitor CREATE PROC insertBKompetitor @KdBKompetitor char(5), @NamaBarangK varchar(50), @Harga money, @KdTipe char(5)
242
AS
INSERT
INTO
(@KdBKompetitor,
BKompetitor
VALUES
@NamaBarangK,
@Harga,
@KdTipe) •
Hapus data BKompetitor CREATE PROC deleteBKompetitor @KdBKompetitor char(5) AS
UPDATE
BKompetitor
(NamaBarangK=@NamaBarangK)
SET WHERE
KdBKompetitor=@KdBKompetitor •
Ubah data BKompetitor CREATE PROC updateBKompetitor @KdBKompetitor char(5), @NamaBarangK varchar(50), @Harga money, @KdTipe char(5) AS
UPDATE
BKompetitor
SET
(KdBKompetitor=@KdBKompetitor, NamaBarangK=@NamaBarangK, KdTipe=@KdTipe) KdBKompetitor=@KdBKompetitor
19. PO •
Masukkan data PO
Harga=@Harga, WHERE
243
CREATE
PROC
@Tanggal
insertPO
datetime,
@KdPO
varchar(10),
@KdPegawai
char(5),
@KdCustomer char(5) AS INSERT INTO PO VALUES (@KdPO, @Tanggal, @KdPegawai, @KdCustomer) •
Hapus data PO CREATE PROC deletePO @KdPO varchar(10) AS UPDATE PO SET (Tanggal=@Tanggal) WHERE KdPO =@KdPO
•
Ubah data PO CREATE @Tanggal
PROC
updatePO
datetime,
@KdPO
varchar(10),
@KdPegawai
char(5),
@KdCustomer char(5) AS
UPDATE
PO
Tanggal=@Tanggal,
SET
(KdPO=@KdPO,
KdPegawai=@KdPegawai,
KdCustomer=@KdCustomer) WHERE KdPO=@KdPO
20. DetailPO •
Masukkan data DetailPO CREATE
PROC
insertDetailPO
@KdDetailPO
varchar(10), @KdPO varchar(10), @KdTipe char(5), @KdTipeL integer(3)
char(5),
@KdInterlok
char(5),
@Qty
244
AS INSERT INTO DetailPO VALUES (@KdDetailPO, @KdPO, @KdTipe, @KdTipeL, @KdInterlok, @Qty) •
Hapus data DetailPO CREATE
PROC
deleteDetailPO
@KdDetailPO
varchar(10) AS UPDATE DetailPO SET (Qty=@Qty) WHERE KdDetailPO=@KdDetailPO •
Ubah data DetailPO CREATE PROC updateDetailPO @KdPO varchar(10), @KdTipe char(5), @KdTipeL char(5), @KdInterlok char(5), @Qty integer(3) AS
UPDATE
DetailPO
(KdDetailPO=@KdDetailPO, KdTipe=@KdTipe,
SET
KdPO=@KdPO, KdTipeL=@KdTipeL,
KdInterlok=@KdInterlok,
Qty=@Qty)
WHERE
KdDetailPO=@KdDetailPO
21. Lengkapan •
Masukkan data Lengkapan CREATE PROC insertLengkapan @KdTipeL char(5), @TipeL datetime, @UnitTrip varchar(15), @Proteksi varchar(20),
@NoRefL
@Deskripsi varchar(200)
char(6),
@Harga
money,
245
AS INSERT INTO Lengkapan VALUES (@KdTipeL, @TipeL, @UnitTrip, @Proteksi, @NoRefL, @Harga, @Deskripsi) •
Hapus data Lengkapan CREATE PROC deleteLengkapan @KdTipeL char(5) AS
UPDATE
Lengkapan
SET
(Harga=@Harga)
WHERE KdTipeL=@KdTipeL •
Ubah data Lengkapan CREATE PROC updateLengkapan @KdTipeL char(5), @TipeL datetime, @UnitTrip varchar(15), @Proteksi varchar(20),
@NoRefL
char(6),
@Harga
money,
@Deskripsi varchar(200) AS UPDATE Lengkapan SET (KdTipeL=@KdTipeL, TipeL=@TipeL,
UnitTrip=@UnitTrip,
Proteksi=@Proteksi, Harga=@Harga,
NoRefL=@NoRefL, Deskripsi=@Deskripsi)
WHERE
KdTipeL=@KdTipeL
22. Ukuran3PL •
Masukkan data Ukuran3PL CREATE PROC insertUkuran3PL @KdU3PL char(5), @NoRefU3 varchar(6), @Harga money, @KdTipeL char(5)
246
AS INSERT INTO Ukuran3PL VALUES (@KdU3PL, @NoRefU3, @Harga, @KdTipeL) •
Hapus data Ukuran3PL CREATE PROC deleteUkuran3PL @KdU3PL char(5) AS
UPDATE
Ukuran3PL
SET
(Harga=@Harga)
WHERE KdU3PL=@KdU3PL •
Ubah data Ukuran3PL CREATE PROC updateUkuran3PL @KdU3PL char(5), @NoRefU3 varchar(6), @Harga money, @KdTipeL char(5) AS UPDATE Ukuran3PL SET (KdU3PL=@KdU3PL, NoRefU3=@NoRefU3,
Harga=@Harga,
KdTipeL=@KdTipeL) WHERE KdU3PL=@KdU3PL
23. Ukuran4PL •
Masukkan data Ukuran4PL CREATE PROC insertUkuran4PL @KdU4PL char(5), @NoRefU4 varchar(6), @Harga money, @KdTipeL char(5) AS INSERT INTO Ukuran4PL VALUES (@KdU4PL, @NoRefU4, @Harga, @KdTipeL)
•
Hapus data Ukuran4PL CREATE PROC deleteUkuran4PL @KdU4PL char(5)
247
AS
UPDATE
Ukuran4PL
SET
(Harga=@Harga)
WHERE KdU4PL=@KdU4PL •
Ubah data Ukuran4PL CREATE PROC updateUkuran4PL @KdU4PL char(5), @NoRefU4 varchar(6), @Harga money, @KdTipeL char(5) AS UPDATE Ukuran4PL SET (KdU4PL=@KdU4PL, NoRefU4=@NoRefU4,
Harga=@Harga,
KdTipeL=@KdTipeL) WHERE KdU4PL=@KdU4PL
24. BukaYO •
Masukkan data BukaYO CREATE
PROC
insertBukaYO
@KdYO
char(5),
@NoRefYO varchar(6), @Harga money, @KdTipeL char(5) AS INSERT INTO BukaYO VALUES (@KdYO, @NoRefYO, @Harga, @KdTipeL) •
Hapus data BukaYO CREATE PROC deleteBukaYO @KdYO char(5) AS UPDATE BukaYO SET (Harga=@Harga) WHERE KdYO=@KdYO
•
Ubah data BukaYO
248
CREATE PROC updateBukaYO @KdYO char(5), @NoRefYO varchar(6), @Harga money, @KdTipeL char(5) AS
UPDATE
BukaYO
SET
NoRefYO=@NoRefYO,
(KdYO=@KdYO, Harga=@Harga,
KdTipeL=@KdTipeL) WHERE KdYO=@KdYO
25. TutupYC •
Masukkan data TutupYC CREATE
PROC
insertTutupYC
@KdYC
char(5),
@NoRefYC varchar(6), @Harga money, @KdTipeL char(5) AS INSERT INTO TutupYC VALUES (@KdYC, @NoRefYC, @Harga, @KdTipeL) •
Hapus data TutupYC CREATE PROC deleteTutupYC @KdYC char(5) AS UPDATE TutupYC SET (Harga=@Harga) WHERE KdYC=@KdYC
•
Ubah data TutupYC CREATE PROC updateTutupYC @KdYC char(5), @NoRefYC varchar(6), @Harga money, @KdTipeL char(5)
249
AS
UPDATE
TutupYC
SET
NoRefYC=@NoRefYC,
(KdYC=@KdYC, Harga=@Harga,
KdTipeL=@KdTipeL) WHERE KdYC=@KdYC
26. Interlok •
Masukkan data Interlok CREATE PROC insertInterlok @KdInterlok varchar(6), @Harga
money,
@Deskripsi
varchar(200),
@KdTInstalasi char(5) AS INSERT INTO Interlok VALUES (@KdInterlok, @Harga, @Deskripsi, @KdTInstalasi) •
Hapus data Interlok CREATE PROC deleteInterlok @KdInterlok varchar(6) AS UPDATE Interlok SET (Harga=@Harga) WHERE KdInterlok=@KdInterlok
•
Ubah data Interlok CREATE PROC updateInterlok @KdInterlok varchar(6), @Harga
money,
@Deskripsi
varchar(200),
@KdTInstalasi char(5) AS UPDATE Interlok SET (KdInterlok=@KdInterlok, Harga=@Harga, KdTInstalasi=@KdTInstalasi) KdInterlok=@KdInterlok
Deskripsi=@Deskripsi, WHERE
250
27. TInstalasi •
Masukkan data TInstalasi CREATE PROC insertTInstalasi @KdTInstalasi char(5), @Tipe varchar(10) AS INSERT INTO TInstalasi VALUES (@KdTInstalasi, @Tipe)
•
Hapus data TInstalasi CREATE PROC deleteTInstalasi @KdTInstalasi char(5) AS UPDATE TInstalasi SET (Tipe=@Tipe) WHERE KdTInstalasi=@KdTInstalasi
•
Ubah data TInstalasi CREATE
PROC
updateTInstalasi
@KdTInstalasi
char(5), @Tipe varchar(10) AS
UPDATE
TInstalasi
SET
(KdTInstalasi=@KdTInstalasi, Tipe=@Tipe) WHERE KdTInstalasi=@KdTInstalasi
3.6.3.4 Merancang User View CREATE VIEW DetailKaryawan AS SELECT P.KdPegawai, P.NamaP,P. AlamatP,P. DOB, P.JK, J.Jabatan, T.TelpPeg, E.EmailPeg, U.Username, U.Password FROM Pegawai P, Jabatan J, phone T, Email E, UserP U
251
WHERE P.KdPegawai = T.KdPegawai AND P.KdJabatan = J.KdJabatan AND P.KdPegawai = U.KdPegawai and P.kdpegawai = E.kdpegawai
CREATE VIEW DetailPelanggan AS SELECT C.KdCustomer, C.NamaC, C. AlamatC, JC.JenisC, T.TelpCus, E.EmailCus, F.FaxCus FROM Customer C, JenisCustomer JC, phone T, email E, Fax F WHERE C.KdCustomer = T.KdCustomer AND C.KdCustomer = E.KdCustomer AND C.KdCustomer = F.KdCustomer AND C.KdJenisC = JC.KdJenisC
CREATE VIEW DetailTipeBarang AS SELECT TB.KdTipe, B.Kdbarang, JB.NamaJenisB as [Jenis Barang], B.NamaB as [Nama Barang], TB.Namatipe, ln, Icu, UnitTrip, I3, JumKutub, Un, AusG, SArus, Deskripsi, tigaP.KdNoRefU3P, tigaP.Harga as [Harga3P], empatP.KdNoRefU4P, empatP.harga as [Harga4P] FROM TipeBarang TB, Ukuran3P tigap, Ukuran4P empatp, barang b,jenisbarang JB WHERE tb.kdtipe = tigap.kdtipe
252
AND tb.kdtipe = empatp.kdtipe AND TB.kdbarang = B.kdbarang AND B.kdjenisb = JB.kdjenisb
CREATE VIEW DetailInterlok AS SELECT kdinterlok, TI.kdtinstalasi, Tipe, NoRef, harga, deskripsi FROM Tinstalasi TI, interlok I WHERE I.KdTinstalasi = TI.kdtinstalasi
CREATE VIEW Kompetitor AS SELECT TB.Namatipe as [Barang ABB], tigaP.Harga as [Harga ABB], K.Namabarangk as [Barang Kompetitor], k.harga [Harga Kompetitor] FROM tipebarang tb, bkompetitor k, ukuran3p tigap WHERE TB.kdtipe = k.kdtipe
CREATE VIEW Lengkapan3pdan4p AS SELECT L.KdTipeL, TipeL, UnitTrip, Proteksi, Deskripsi, tigap.NoRefU3, tigap.Harga as [Harga 3P], empatp.NoRefU4, empatp.harga as [Harga 4P] FROM lengkapan L, ukuran3pl tigap, ukuran4pl empatp WHERE L.kdtipeL = tigap.kdtipel
253
AND L.kdtipel = empatp.kdtipel
CREATE VIEW Bukayotutupyc AS SELECT L.KdTipeL, TipeL, UnitTrip, Proteksi, Deskripsi, bukaYO.NoRefYO, bukaYO.Harga as [Harga BukaYO], TutupYC.NoRefYC, TutupYC.harga as [Harga BukaYC] FROM lengkapan L, BukaYO, TutupYC WHERE L.kdtipeL = BukaYO.kdtipel AND L.kdtipel = TutupYC.kdtipel
CREATE VIEW Lengkapandetail AS SELECT * FROM lengkapan WHERE NoRefL NOT LIKE ‘’
3.6.3.5 Merancang Security Measures Security measures atau mekanisme keamanan dirancang untuk memastikan hanya pengguna (user) yang memiliki otoritas yang berhak mengakses tabel-table pada basis data. Adapun mekanisme keamanan yang dirancang adalah sebagai berikut : 1.
Keamanan sistem
254
Keamanan sistem diterapkan dengan menggunakan authentikasi user, yaitu dengan menggunakan halaman login sebelum masuk ke dalam sistem yang dirancang pada aplikasi. Pada halaman login, user diminta untuk memasukkan username dan password. Selain itu, juga diatur agar user hanya bisa mengakses modul – modul tertentu dalam program sesuai dengan hak aksesnya.
2.
Keamanan data Keamanan data berhubungan dengan relasi basis data (tabel atau relasi) dan aksi user terhadap relasi tersebut, misalnya aksi pemilihan, pengisian, pengubahan, dan penghapusan data. Keamanan data ini diterapkan menggunakan authorisasi user dengan tujuan membatasi hak akses user terhadap relasi yang ada. Tabel 3.54 Keamanan Data Admin
User
User
Relasi
I
U
R
D
Pegawai
x
x
x
x
x
TelpP
x
x
x
x
x
FaxP
x
x
x
x
x
EmailP
x
x
x
x
x
Customer
x
x
x
x
I
x
U
R
x
D
255
Admin
User
Relasi
I
U
TelpC
x
x
FaxC
x
EmailC
R
User D
I
U
R
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
PO
x
x
x
x
x
x
DetailPO
x
x
x
x
x
x
TipeBarang
x
x
x
x
x
x
Lengkapan
x
x
x
x
x
x
Interlok
x
x
x
x
x
x
KWN
x
x
x
x
x
x
Jabatan
x
x
x
x
x
x
Divisi
x
x
x
x
x
x
UserP
x
x
x
x
Ukuran3PL
x
x
x
x
x
x
Ukuran4PL
x
x
x
x
x
x
BukaYO
x
x
x
x
x
x
TutupYC
x
x
x
x
x
x
JenisCustomer
x
x
x
x
x
x
Ukuran3P
x
x
x
x
x
x
Ukuran4P
x
x
x
x
x
x
JenisBarang
x
x
x
x
x
x
D
256
Admin
User
User
Relasi
I
U
R
D
I
BKompetitor
x
x
x
x
x
x
Barang
x
x
x
x
x
x
TInstalasi
x
x
x
x
x
x
U
R
D
Keterangan: I=Insert, R=Read, U=Update, D=Delete
Perancangan mekanisme keamanan terdapat pada DBMS, yaitu dengan membuat user yang akan mengakses basis data serta memberikan hak tertentu sesuai dengan peran masing-masing user, melalui pernyataan SQL berikut ini: •
Untuk admin diberikan hak akses dengan GRANT ALL PRIVILIGES TO Admin
•
Untuk user diberikan hak – hak akses sebagai berikut : GRANT SELECT ON Pegawai TO User GRANT SELECT ON TelpP TO User GRANT SELECT ON FaxP TO User GRANT SELECT ON EmailP TO User GRANT SELECT, INSERT ON Customer TO User GRANT SELECT, INSERT ON TelpC TO User GRANT SELECT, INSERT ON FaxC TO User GRANT SELECT, INSERT ON EmailC TO User GRANT SELECT, INSERT ON PO TO User
257
GRANT SELECT, INSERT ON DetailPO TO User GRANT SELECT, INSERT ON TipeBarang TO User GRANT SELECT, INSERT ON Lengkapan TO User GRANT SELECT, INSERT ON Interlok TO User GRANT SELECT, INSERT ON KWN TO User GRANT SELECT, INSERT ON Jabatan TO User GRANT SELECT, INSERT ON Divisi TO User GRANT SELECT, INSERT ON Ukuran3PL TO User GRANT SELECT, INSERT ON Ukuran4PL TO User GRANT SELECT, INSERT ON BukaYO TO User GRANT SELECT, INSERT ON TutupYC TO User GRANT SELECT, INSERT ON JenisCustomer TO User GRANT SELECT, INSERT ON Ukuran3P TO User GRANT SELECT, INSERT ON Ukuran4P TO User GRANT SELECT, INSERT ON JenisBarang TO User GRANT SELECT, INSERT ON BKompetitor TO User GRANT SELECT, INSERT ON Barang TO User GRANT SELECT, INSERT ON TInstalasi TO User
3.7 Perancangan Aplikasi Berikut adalah perancangan aplikasi yang menggunakan dan memproses basis data yang telah ada. Perancangan aplikasi ini meliputi perancangan struktur
258
menu, pembuatan state transition diagram (STD). Spesifikasi proses serta perancagan input dan output.
3.7.1 Perancangan Struktur Menu
Gambar 3.22 Perancangan Struktur Menu
3.7.2 State Transition Diagram (STD) State Transition Diagram merupakan diagram yang menjelaskan aliran suatu state ke state yang lain dalam sebuah aplikasi. Berikut ini merupakan STD yang di rancang :
259
•
STD Halaman Login
Login error
Klik ‘ok’
Klik ‘login’
Tampilkan halaman
Login error, tampilkan pesan
Halaman login Klik ‘login’
Klik ‘login’ Login valid sebagai user, tampilkan halaman utama user Halaman utama user
Login valid sebagai admin, tampilkan halaman utama admin
Halaman utama admin
Gambar 3.23 STD Halaman Login
260
•
STD Halaman Homepage
Halaman Homepage
Master Klik ‘master’ Tampilkan
Klik ‘transaksi’ Tampilkan menu transaksi
Transaksi
Klik ‘laporan’ Tampilkan menu laporan
Laporan
Klik ‘komparasi’ Tampilkan halaman komparasi
Komparasi
Klik ‘simulasi’ Tampilkan halaman simulasi
Simulasi
Klik ‘exit’ Tampilkan layar windows
Layar windows
Gambar 3.24 STD Halaman Homepage
261
•
STD Menu Transaksi
Transaksi Klik ‘penjualan’ Tampilkan layar penjualan
Penjualan
Gambar 3.25 STD Menu Transaksi •
STD Halaman Transaksi Penjualan Cari Barang
Klik ‘Search’ Tampilkan halaman Cari Barang
Klik ‘Insert’ Tampilkan data di transaksi penjualan
Klik ‘add’ Tambahkan data di table
Transaksi penjualan Klik ‘insert’ Klik ‘back’ Pindahkan data ke halaman transaksi2
Pindahkan data ke halaman transaksi2
Klik ‘process’ Cetak Laporan
Cetak laporan
Transaksi penjualan 2
Klik ‘cancel’ Tampilkan halaman utama Halaman utama admin
Gambar 3.26 STD Halaman Transaksi Penjualan
262
•
STD Menu Laporan
Laporan
Klik ‘penjualan’ Tampilkan layar penjualan Penjualan
Gambar 3.27 STD Menu Laporan
•
STD Halaman Laporan Penjualan Penjualan
Klik ‘Print Pilih filter yang diinginkan Laporan
Gambar 3.28 STD Halaman Laporan Penjualan
263
•
Klik ‘browse’
STD Halaman Komparasi
Pilih barang yang diinginkan
Klik ‘search’
Klik ‘exit’
Insert Komparasi
Tampilkan data sesuai yang diinginkan
Klik ‘add’ Tampilkan halaman insertkompar asi
Tampilkan halaman utama sesuai dengan user yang login Halaman Utama user/admin
Klik ‘insert Simpan data ke database, dan tampilkan halaman komparasi
Komparasi
Gambar 3.29 STD Halaman Komparasi
•
STD Halaman Simulasi Klik ‘exit’
Halaman Utama user/admin
Tampilkan halaman utama sesuai dengan user yang login
Simulasi
Klik ‘search’
Klik ‘insert’
Tampilkan data sesuai yang diinginkan
Masukkan data ke dalam tabel Cari barang
Gambar 3.30 STD Halaman Simulasi
264
•
STD Halaman Master Tipe Barang Insert Tipe Barang
Klik ‘Insert’ Tampilkan halaman Insert tipe barang
Update Tipe Barang
Klik ‘Insert’ Simpan data dan tampilkan layar Master Tipe Barang
Klik ‘update’ Tampilkan halaman update tipe barang Klik ‘update’ Simpan data dan tampilkan master tipe barang
Master Tipe Barang
Klik ‘delete’ Delete data yang dipilih
Klik ‘search’ Tampilkan data yang dipilih
Klik ‘exit’ Tampilkan halaman utama Halaman homepage
Gambar 3.31 STD Halaman Master TipeBarang
265
•
STD Master Lengkapan
Insert Lengkapan Klik ‘Insert’
Update Tipe Barang
Tampilkan halaman Insert lengkapan
Klik ‘Insert’ Simpan data dan tampilkan layar Master lengkapan
Klik ‘update’ Tampilkan halaman update lengkapan
Tampilkan data yang dipilih
Master Lengkapan
Klik ‘update’ Simpan data dan tampilkan master lengkapan
Klik ‘search’
Klik ‘exit’ Klik ‘delete’ Delete data yang dipilih
Tampilkan halaman Halaman homepage
Gambar 3.32 STD Master Lengkapan
266
•
STD Master Pelanggan
Insert Pelanggan Klik ‘Insert’ Tampilkan halaman Insert Pelanggan
Update Pelanggan
Klik ‘Insert’ Simpan data dan tampilkan layar Master lengkapan
Klik ‘update’ Tampilkan halaman update Pelanggan
Klik ‘search’ Tampilkan data yang dipilih
Master Pelanggan Klik ‘exit’ Klik ‘update’ Simpan data dan tampilkan master Pelanggan
Tampilkan halaman utama Klik ‘delete’ Delete data yang dipilih
Halaman homepage
Gambar 3.33 STD Master Pelanggan
267
•
STD Master Interlok
Klik ‘Insert’
Insert interlok
Tampilkan halaman Insert interlok
Update interlok
Klik ‘Insert’ Simpan data dan tampilkan layar Master interlok
Klik ‘update’
Tampilkan data yang dipilih
Tampilkan halaman update interlok Master interlok Klik ‘update’ Simpan data dan tampilkan master interlok
Klik ‘search’
Klik ‘exit’ Tampilkan halaman utama
Klik ‘delete’ Delete data yang dipilih
Halaman homepage
Gambar 3.34 STD Master Interlok
268
3.7.3 Perancangan Layar 1. Rancangan Layar Login
Gambar 3.35 Rancangan Layar Login
2. Rancangan Layar Homepage
Gambar 3.36a Rancangan Layar Homepage 1
269
Laporan
Transaksi
Komparasi
Simulasi
Master Exit
Penjualan
Gambar 3.36b Rancangan Layar Homepage 2
Transaksi
Laporan
Komparasi
Simulasi Master
Penjualan
Gambar 3.36c Rancangan Layar Homepage 3
Exit
270
Transaksi
Laporan
Komparasi
Simulasi
Master
Exit
Barang Interlok Lengkapan Pelanggan
Gambar 3.36d Rancangan Layar Homepage 4
3. Rancangan Layar Master Barang
Gambar 3.37 Rancangan Layar Master Barang
271
4. Rancangan Layar Master Pelanggan
Gambar 3.38 Rancangan Layar Master Pelanggan 5. Rancangan Layar Master Lengkapan
Gambar 3.39 Rancangan Layar Master Lengkapan
272
6. Rancangan Layar Master Interlok
Gambar 3.40 Rancangan Layar Master Interlok 7. Rancangan Layar Simulasi
Gambar 3.41 Rancangan Layar Simulasi
273
8. Rancangan Layar Komparasi
Gambar 3.42 Rancangan Layar Komparasi 9. Rancangan Layar Insert Komparasi
Gambar 3.43 Rancangan Layar Insert Komparasi
274
10. Rancangan Layar Penjualan1
Gambar 3.44 Rancangan Layar Penjualan1 11. Rancangan Layar Penjualan2
Gambar 3.45 Rancangan Layar Penjualan2
275
12. Rancangan Layar Insert Interlok
Gambar 3.46 Rancangan Layar Insert Interlok 13. Rancangan Layar Insert Lengkapan
Gambar 3.47 Rancangan Layar Insert Lengkapan
276
14. Rancangan Layar Insert Pelanggan
Gambar 3.48 Rancangan Layar Insert Pelanggan 15. Rancangan Layar Insert Barang
Gambar 3.49 Rancangan Layar Insert Barang
277
16. Rancangan Layar Update Interlok
Gambar 3.50 Rancangan Layar Update Interlok 17. Rancangan Layar Update Lengkapan
Gambar 3.51 Rancangan Layar Update Lengkapan
278
18. Rancangan Layar Update Pelanggan
Gambar 3.52 Rancangan Layar Update Pelanggan 19. Rancangan Layar Update Barang
Gambar 3.53 Rancangan Layar Update Barang
279
20. Rancangan Layar Form Filter
Gambar 3.54 Rancangan Layar Form Filter 21. Rancangan Layar Transaksi Barang
Gambar 3.55 Rancangan Layar Transaksi Barang
280
3.7.4 Spesifikasi Proses Tahap ini merupakan tahap penjabaran langkah-langkah yang terstruktur pada tiap modul yang ada, yang disusun menggunakan pseudocode.
Modul User Login Modul user login Masukkan username Masukkan password Tekan login Akhir modul
Modul Tekan Login Modul Tekan login If Username dan/atau Password salah atau Username dan/atau Password kosong Tampilkan pesan bahwa Username atau Password salah Else if Username==”abc111” dan Password==”aa11” Tampilkan halaman utama dan menu diaktifkan sesuai dengan hak akses masing-masing pegawai Akhir modul
Modul Pilihan Halaman Utama
281
Modul Pilihan Halaman Utama Menampilkan pilihan “Transaksi” Menampilkan pilihan “Laporan” Menampilkan pilihan “Komparasi” Menampilkan pilihan “Simulasi” Menampilkan pilihan “Master” Menampilkan pilihan “Exit” Akhir Modul
Modul Pilihan Transaksi Modul Pilihan Transaksi Menampilkan pilihan “Penjualan” (Penjualan 1) Akhir modul
Modul Pilihan Penjualan (Penjualan 1) Modul Pilihan Penjualan Menampilkan Kode transaksi Menampilkan Nama Customer Menampilkan Nama Pegawai Menampilkan Tanggal transaksi Menampilkan Nama Produk Menampilkan Jumlah Menampilkan pilihan “Search”
282
Menampilkan pilihan “Add” (Penjualan 2) Menampilkan Produk Menampilkan No Ref Menampilkan Quantity Menampilkan Harga Menampilkan pilihan “Delete” Menampilkan pilihan “Insert” Menampilkan pilihan “Cancel” Akhir modul
Modul Pilihan Search Modul Pilihan Search Jika dan hanya jika Nama Produk kosong Tampilkan pesan error dan tetap pada halaman Penjualan Lainnya Menampilkan temuan search pada data grid viewPenjualan Akhir Modul
Modul Pilihan Add (Penjualan 2) Modul Pilihan Add Jika dan hanya jika
283
Kode
Transaksi dan/ Kode Transaksi dan/ Nama Customer dan/
NamaPegawai dan/atau Tanggal transaksi dan/atau Nama Produk dan/Atau Jumlah kosong Tampilkan pesan error dan tetap pada halaman Penjualan Lainnya Data masuk ke dalam data grid view Akhir Modul
Modul Pilihan Delete Modul Pilihan Delete Melakukan delete Akhir Modul
Modul Pilihan Insert Modul Pilihan Insert Menampilkan Barang Menampilkan Jumlah Menampilkan Harga Awal Menampilkan Eskalasi Menampilkan Diskon 1 Menampilkan Diskon 2 Menampilkan Diskon 3 Menampilkan Grand Total
284
Menampilkan pilihan “Process” Menampilkan Pilihan “Back” Akhir modul
Modul Pilihan Process Modul Pilihan Process Memproses pencetakan laporan penjualan Akhir Modul
Modul Pilihan Back Modul Pilihan Back Kembali ke halaman Penjualan Akhir Modul
Modul Pilihan Cancel Modul Pilihan Cancel Kembali ke halaman Homepage Akhir Modul
Modul Pilihan Laporan Modul Pilihan Laporan Menampilkan Pilihan “Penjualan” (Laporan) Akhir modul
285
Modul Pilihan Penjualan (Laporan) Modul Pilihan Penjualan Menampilkan pilihan Laporan per waktu Menampilkan Awal Menampilkan S/D Menampilkan pilihan Laporan per sales Menampilkan Nama Sales Menampilkan pilihan “Browse” Menampilkan pilihan “Print” Akhir modul
Modul Pilihan Browse Modul Pilihan Browse Melakukan browsing Akhir Modul
Modul Pilihan Print Modul Pilihan Print Melakukan pencetakan laporan Akhir Modul
Modul Pilihan Komparasi
286
Modul Pilihan Komparasi Menampilkan Tipe Barang Menampilkan pilihan “Search” Menampilkan pilihan “Add” Menampilkan Barang ABB Menampilkan Harga ABB Menampilkan Barang Kompetitor Menampilkan Harga Kompetitor Menampilkan pilihan “Exit” Akhir modul
Modul Pilihan Search Modul Pilihan Search Melakukan pencarian dan menampilkan hasil pada data grid view komparasi Akhir Modul
Modul Pilihan Add Modul Pilihan Add Menampilkan Kode Kompetitor Menampilkan Kode Tipe Menampilkan pilihan “Browse” Menampilkan Nama BarangK
287
Menampilkan Harga Menampilkan pilihan “Insert” Akhir Modul
Modul Pilihan Browse Modul Pilihan Browse Melakukan browse Akhir Modul
Modul Pilihan Insert Modul Pilihan Insert Melakukan insert Akhir Modul
Modul Pilihan Exit Modul Pilihan Exit Melakukan exit dan kembali ke halaman homepage Akhir Modul
Modul Pilihan Simulasi Modul Pilihan Simulasi Menampilkan Budget Menampilkan Jenis Customer
288
Menampilkan Produk Menampilkan Jumlah Menampilkan pilihan “Search” Menampilkan pilihan “Add” Menampilkan Produk Menampilkan No Ref Menampilkan Qty Menampilkan Harga Menampilkan pilihan “Process” Menampilkan pilihan “Remove” Menampilkan Sub Total Menampilkan Discount Menampilkan Grand Total Menampilkan Sisa Budget Menampilkan pilihan “Exit” Akhir modul
Modul Pilihan Search Modul Pilihan Search Melakukan pencarian dan menampilkan hasil pada data grid view simulasi Akhir Modul
289
Modul Pilihan Add Modul Pilihan Add Melakukan input data ke dalam data grid view simulasi Akhir Modul
Modul Pilihan Process Modul Pilihan Process Melakukan process penyimpanan data ke dalam halaman Penjualan Akhir Modul
Modul Pilihan Remove Modul Pilihan Remove Melakukan Remove Akhir Modul
Modul Pilihan Exit Modul Pilihan Exit Melakukan Exit dan kembali ke halaman homepage Akhir Modul
Modul Pilihan Master Modul Pilihan Master Menampilkan Pilihan “Barang”
290
Menampilkan pilihan “Interlok” Menampilkan pilihan “Lengkapan” Menampilkan pilihan “Pelanggan” Akhir modul
Modul Pilihan Barang Modul Pilihan Barang Menampilkan Nama Tipe Menampilkan pilihan “Search” Menampilkan pilihan “Insert” Menampilkan pilihan “Update” Menampilkan pilihan “Delete” Menampilkan pilihan “Exit” Menampilkan KdTipe Menampilkan KdBarang Menampilkan Jenis Barang Menampilkan Nama Barang Menampilkan Harga4P Akhir modul
Modul Pilihan Search Modul Pilihan Search Melakukan search dan menampilkan hasil pada data grid view barang
291
Akhir Modul
Modul Pilihan Insert Modul Pilihan Insert Menampilkan Jenis Barang Menampilkan KodeBarang Menampilkan Nama Tipe Menampilkan In Menampilkan Icu Info Menampilkan Unit Trip Menampilkan I3 Menampilkan JumlahKutub Menampilkan Un Menampilkan AusG Menampilkan SArusG Menampilkan Ukuran3P Menampilkan Harga3P Menampilkan Ukuran4P Menampilkan Harga4P Menampilkan Deskripsi Lakukan: Insert Akhir modul
292
Modul Pilihan Update Modul Pilihan Update Menampilkan KodeBarang Menampilkan Nama Tipe Menampilkan In Menampilkan Icu Info Menampilkan Unit Trip Menampilkan I3 Menampilkan JumlahKutub Menampilkan Un Menampilkan AusG Menampilkan SArusG Menampilkan Ukuran3P Menampilkan Harga3P Menampilkan Ukuran4P Menampilkan Harga4P Menampilkan Deskripsi Lakukan: Update Akhir Modul
Modul Pilihan Delete Modul Pilihan Delete Melakukan delete
293
Akhir Modul
Modul Pilihan Exit Modul Pilihan Exit Melakukan exit dan kembali ke halaman homepage Akhir Modul
Modul Pilihan Interlok Modul Pilihan Interlok Menampilkan Kode Interlok Menampilkan pilihan “Search” Menampilkan pilihan “Insert” Menampilkan pilihan “Update” Menampilkan pilihan “Delete” Menampilkan pilihan “Exit” Menampilkan KdInterlok Menampilkan KdInstalasi Menampilkan Tipe Menampilkan NoRef Menampilkan Harga Menampilkan Deskripsi Akhir modul
294
Modul Pilihan Search Modul Pilihan Search Melakukan search dan menampilkan hasil pada data grid view interlok Akhir Modul
Modul Pilihan Insert Modul Pilihan Insert Menampilkan KodeInterlok Menampilkan pilihan Tipe Instalasi Menampilkan No Referensi Menampilkan Harga Menampilkan Deskripsi Lakukan: Insert Akhir Modul
Modul Pilihan Update Modul Pilihan Update Menampilkan KodeInterlok Menampilkan No Referensi Menampilkan Harga Menampilkan Deskripsi Lakukan: Update Akhir Modul
295
Modul Pilihan Delete Modul Pilihan Delete Melakukan delete Akhir Modul
Modul Pilihan Exit Modul Pilihan Exit Melakukan exit dan kembali ke halaman homepage Akhir Modul
Modul Pilihan Lengkapan Modul Pilihan Lengkapan Menampilkan pilihan Jenis lengkapan Menampilkan Tipe Lengkapan Menampilkan pilihan “Search” Menampilkan pilihan “Insert” Menampilkan pilihan “Update” Menampilkan pilihan “Delete” Menampilkan pilihan “Exit” Menampilkan data grid view sesuai dengan pilihan Jenis lengkapan Akhir modul
296
Modul Pilihan Search Modul Pilihan Search Melakukan search dan menampilkan hasil pada data grid view lengkapan Akhir Modul
Modul Pilihan Insert Modul Pilihan Insert Menampilkan pilihan Jenis Lengkapan Menampilkan Tipe Lengkapan Menampilkan Unit Trip Menampilkan Proteksi Menampilkan No Referensi Menampilkan No Referensi 3P Menampilkan Harga 3P Menampilkan No Referensi 4P Menampilkan Harga 4P Menampilkan Buka YO Menampilkan Harga YO Menampilkan Tutup YC Menampilkan Harga YC Menampilkan Deskripsi Lakukan: Insert
297
Akhir Modul
Modul Pilihan Update Modul Pilihan Update Menampilkan pilihan Jenis Lengkapan Menampilkan Tipe Lengkapan Menampilkan Unit Trip Menampilkan Proteksi Menampilkan No Referensi Menampilkan No Referensi 3P Menampilkan Harga 3P Menampilkan No Referensi 4P Menampilkan Harga 4P Menampilkan Buka YO Menampilkan Harga YO Menampilkan Tutup YC Menampilkan Harga YC Menampilkan Deskripsi Lakukan: Update Akhir Modul
Modul Pilihan Delete Modul Pilihan Delete
298
Melakukan delete Akhir Modul
Modul Pilihan Exit Modul Pilihan Exit Melakukan exit dan kembali ke halaman homepage Akhir Modul
Modul Pilihan Pelanggan Modul pilihan pelanggan Menampilkan Nama pelanggan Menampilkan pilihan “Search” Menampilkan pilihan “Insert” Menampilkan pilihan “Update” Menampilkan pilihan “Delete” Menampilkan pilihan “Exit” Menampilkan KdCostomer Menampilkan NamaC Menampilkan AlamatC Menampilkan JenisC Menampilkan TeleponCus Menampilkan EmailCus Menampilkan FaxCus
299
Akhir modul
Modul Pilihan Search Modul Pilihan Search Melakukan search Akhir Modul
Modul Pilihan Insert Modul Pilihan Insert Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan Menampilkan Jenis Pelanggan Menampilkan Alamat Pelanggan Menampilkan Telp Pelanggan Menampilkan Fax Pelanggan Menampilkan Email Pelanggan Lakukan: Insert Akhir Modul
Modul Pilihan Update Modul Pilihan Update Menampilkan Kode Pelanggan Menampilkan Nama Pelanggan
300
Menampilkan Jenis Pelanggan Menampilkan Alamat Pelanggan Menampilkan Telp Pelanggan Menampilkan Fax Pelanggan Menampilkan Email Pelanggan Lakukan: Update Akhir Modul
Modul Pilihan Delete Modul Pilihan Delete Melakukan delete Akhir Modul
Modul Pilihan Exit Modul Pilihan Exit Melakukan exit dan kembali ke halaman homepage Akhir Modul