BAB 3 METODOLOGI 3.1. Metodologi
Pada pembahasan ini akan dibahas mengenai metodologi yang digunakan, yaitu metodologi Database System Development Lifecycle.
3.1.1. Database Planning Database Planning yaitu aktivitas manajemen yang memungkinkan tahapan dari Database System Development Lifecycle untuk direalisasikan seefisien dan seefektif mungkin. Terdapat dua langkah dalam tahapan perencaanan basis data, yaitu:
3.1.1.1. Mission Statement Mission statement dari perencanaan basis data ini yaitu menghasilkan aplikasi basis data yang dapat memasukkan, menyimpan, mengubah, dan menampilkan data untuk proses pemesanan, produksi, persediaan dan pembeliaan bahan baku secara terstruktur dan terintegrasi dengan baik.
3.1.1.2. Mission Objective Mission objective dari perencanaan basis data ini yaitu: 1.
Memelihara (insert, update) dan melihat data pelanggan
2.
Memelihara (insert, update)dan melihat data pengajuan pemesanan
3.
Memelihara (insert, update) dan melihatdata pemesanan
4.
Memelihara (insert, update) dan melihatdata kontrak
5.
Memelihara (insert, update) dan melihat data jadwal
6.
Memelihara (insert, update) dan melihatdata produksi
7.
Memelihara (insert, update) dan melihat data rumus bahan baku
8.
Memelihara (insert, update) dan melihatdata rancangan kusen
9.
Memelihara (insert, update) dan melihatdata tugas produksi
10.
Memelihara (insert, update) dan melihat data pengambilan bahan baku
11.
Memelihara (insert, update) dan melihatdata barang jadi 41
42 12.
Memelihara (insert, update) dan melihatdata pemasangan
13.
Memelihara (insert, update) dan melihat data bahan baku
14.
Memelihara (insert, update) dan melihat data pengajuan pembelian
15.
Memelihara (insert, update) dan melihat data retur pembelian
16.
Memelihara (insert, update) dan melihat data pengiriman
17.
Memelihara (insert, update) dan melihat data pemasok
18.
Memelihara (insert, update) dan melihatdata pembelian
19.
Memelihara (insert, update) dan melihatdata karyawan
20.
Memelihara (insert, update) dan melihatdata pembayaran pemesanan
21.
Memelihara (insert, update) dan melihatdata pembayaran pembelian
22.
Membuat surat kontrak, PO pemesanan, danlaporan pemesanan
23.
Membuat bukti pembayaran danlaporan pembayaran pemesanan
24.
Membuat laporan pembayaran pembelian
25.
Membuat surat retur pembelian
26.
Membuat surat persetujuan rancangan
27.
Membuat laporan pengambilan bahan baku
28.
Membuat surat jalan dan laporan pengiriman
29.
Membuat surat pemasangan danlaporan pemasangan
3.1.2. System Definition System definition mendeskripsikan jangkauan dan batasan dari batasan aplikasi basis data dan pandangan-pandangan utama para pengguna. Ruang lingkup untuk aplikasi basis data yang akan dirancang sudah didefinisikan pada Bab 1.3 dan user views bagi para karyawan dalam mengakses aplikasi basis data juga sudah didefinisikan berdasarkan tugas dan wewenang, serta melakukan evaluasi ulang dengan Wakil Direktur PT Luxus Indo Prima.
3.1.3. Requirement Collection and Analysis Requirement collection and analysis yaitu proses mengumpulkan dan menganalisa informasi tentang bagian dariperusahaanyangakan didukungoleh sistem basis data dan menggunakan informasi ini untuk mengidentifikasi kebutuhan pemakai terhadap sistembaru.
43 Proses pengumpulan informasi-informasi yang diperlukan dilakukan dengan cara dan penjelasan berikut:
3.1.3.1. Wawancara Kegiatan wawancara dilakukan beberapa kali dengan Wakil Direktur PT Luxus Indo Prima pada tanggal dan tujuan berikut: 1.
memahami proses bisnis yang sedang berjalan pada PT Luxus Indo Prima
2.
membahas mengenai dokumen-dokumen bisnis dari PT Luxus Indo Prima
3.
mengevaluasi dengan pihak PT Luxus Indo Prima bahwa perancangan yang dilakukan pada setiap tahapan sudah memenuhi kebutuhan dari pihak perusahaan
3.1.3.2. Menguji Dokumentasi Beberapa dokumen penting, seperti faktur pembelian, pemesanan, rumus perhitungan, kontrak, dan surat lainnya diberikan oleh pihak PT Luxus Indo Prima agar dapat mendukung kelancaran dalam menganalisa sistem.
3.1.3.3. Observasi Observasi dilakukan pada PT Luxus Indo Prima dengan tujuan: 1.
Melihat secara langsung proses kerja yang berlangsung pada PT Luxus Indo Prima
2.
Mendapatkan informasi lainnya yang belum diperoleh sebelumnya ketika mewawancarai karyawan-karyawan lain
3.1.3.4. Kuesioner Kuesioner dilakukan untuk mengukur tanggapan dan memperoleh saran dari pengguna mengenai aplikasi basis data yang dihasilkan.Pertanyaan kuesioner disusun dengan mempertimbangkan aturan Eight Golden Rules.
44 3.1.4. Database Design Database design yaitu proses pembuatan desain yang mendukung mission statement dan mission objective perusahaan untuk keperluan sistem basis data. Tiga fase dalam perancangan basis data yaitu:
3.1.4.1. Peracangan Basis Data Koseptual Pada perancangan basis data konseptual akan dibangun model data konseptual yang terdiri dari sembilan langkah dan akan dirancang pada Bab 3.3.1.
3.1.4.2. Peracangan Basis Data Logikal Pada perancangan basis data logikal akan dibangun dan divalidasi model data logikal yang terdiri dari tujuh langkah dan akan dirancang pada Bab 3.3.2.
3.1.4.3. Peracangan Basis Data Fisikal Peracangan basis data fisikal terdiri dari enam langkah, yang meliputi perancangan file organization, indexes, space, user views, security, dan pertimbangan yang lainnya. Tahapan ini akan dibahas pada Bab 3.3.3.
3.1.5. DBMS Selection DBMS selection yaitu proses pemilihan DBMS yang tepat yang mendukung sistem basis data. Proses pemilihan DBMS ini dilakukan pada Bab 3.3.2.
3.1.6. Application Design Application design yaitu proses merancang user interface dan program aplikasi yang digunakan dan diproses oleh basis data. Terdapat dua aspek dalam merancang aplikasi, yaitu:
3.1.6.1. Transaction Design Transaction design meliputi penentuan transaksi-transaksi yang diperlukan dan akan ditentukan pada Bab 3.2.
45 3.1.6.2. User Interface Design User interface design meliputi perancangan StateTransitionDiagram, layar input, output. Peracangan user interface juga didesain mengikuti Eight Golden Rules, yang meliputi: 1.
Strive for Consistency
2.
Cater to Universal Usability
3.
Offer Informative Feedback
4.
Design Dialogs to Yield Closure
5.
Prevent Errors
6.
Permit Easy Reversal of Actions
7.
Support Internal Locus of Control
8.
Reduce Short Term Memory Load Peracangan user interfaceakan dibahas secara lebih detil dengan
gambar-gambar rancangan pada Bab 3.4.
3.1.7. Prototyping Prototypingyaitu prosesmembangunmodelkerjadarisistembasisdata dan merupakan langkah pilihan. Langkah ini tidak dilakukan karena perancangan layar dan State Transition Diagram yang didesain dapat memberikan gambaran yang jelas mengenai aplikasi basis data yang akan dihasilkan.
3.1.8. Implementation Implementationyaitu
proses
realisasi
secarafisikdaribasis
datadandesainaplikasi. Implementasi sistem basis data meliputi instalasi perangkat keras, lunak, jaringan, dan sebagainya. Tahapan ini akan dibahas secara lebih detil pada Bab 4.1.
3.1.9. Data Coversion and Loading Dataconversionandloading yaitu prosesmemindahkan data yang ada ke dalam basis data baru dan mengkonversi setiap aplikasi yang sudah ada untuk dijalankan di dalam basis data baru.
46 Pada tahapan ini, data-data yang diperlukan dalam proses bisnis PT Luxus Indo Prima, seperti data karyawan, pemasok, pelanggan, pemesanan, dan lainnya akan dikonversi ke dalam basis data yang sudah dirancang. Estimasi konversi data manual ke dalam basis data akan ditampilkan pada Lampiran Estimasi Konversi Data PT Luxus Indo Prima.
3.1.10. Testing Testing yaitu prosesmenjalankan sistem basis data dengan tujuan untuk menemukan kesalahan. Testing yang akan dilakukan meliputi System Integration Testing dan User Acceptance Testing yang akan dibahas pada Bab 4.3.
3.1.11. Operational Maintenance Operationalmaintenanceyaitu proses memantau danmemelihara sistem basis data setelah melakukan instalasi. Proses pemantauan dan pemeliharaan perlu dilakukan secara rutin agar dapat menjamin bahwa aplikasi basis data PT Luxus Indo Prima dapat selalu berfungsi dengan baik.
3.2. Analisis Masalah Pada pembahasan ini akan dianalisa sistem manual yang berjalan, kebutuhan, dan masalah pada PT Luxus Indo Prima, serta pemberian usulan pemecahan masalah. 3.2.1. Analisis Sistem yang Berjalan Pada pembahasan ini akan dibahas tentang riwayat perusahaan, divisi yang terlibat, dan alur bisnis dari proses bisnis yang terkait. 3.2.1.1. Riwayat Perusahaan Pada awal tahun delapan puluhan, kondisi ekonomi di Indonesia sangat buruk, apalagi bagi yang menetap di pulau-pulau dan daerah-daerah kecil. Oleh karena itu, banyak penduduk yang merantau ke kota Jakarta dengan tujuan bisa memiliki penghasilan yang lebih banyak di kota mutiara ini. Salah satunya adalah Bapak Francis Cahyadi.
47 Bapak Francis Cahyadi lahir pada tahun 1953 di pulau Belitung.Beliau datang Jakarta ketika berumur tiga puluhan.Modal yang dimiliki beliau saat itu bukanlah uang ataupun pendidikan yang tinggi, melainkan keinginan dan tekad yang kuat. Karena tidak memiliki pendidikan yang tinggi, maka pekerjaan yang bisa dilakukan saat itu sangat terbatas, seperti tukang bengkel, supir lori, dan lainnya. Namun, usaha dan kerja keras dari Bapak Francis tidaklah sia-sia, pada saat sekitar umur empat puluh, beliau mampu memiliki perusahaan sendiri yang bergerak di bidang perminyakan sehingga hasil dari usaha beliau bisa terlihat dari bisnis yang dimiliki. Pada akhir tahun 2011, Bapak Francis merencanakan untuk memulai usaha baru yang bergerak di bidang kusen pintu jendela. Maka, beliau mengajak dua orang teman yang bernama Erwin Sutrisno dan Ign Jasin untuk bekerja sama. Kedua teman tersebut setuju dan berperan sebagai pemangku saham.Kemudian, Bapak Francis mengajak keponakannya yang bernama Jen Min untuk berperan sebagai Wakil Direktur dalam perusahaan tersebut. Tidak lama kemudian, yaitu pada bulan Mei 2012, usaha kusen pintu jendela dari Bapak Francis Cahyadi didirikan dengan nama PT Luxus Indo Prima dan berlokasi di Kapuk Business Park Blok BH, Jl. Kapuk Raya No.28 Jakarta Barat. Pada awal berdirinya PT Luxus Indo Prima, karyawan yang bekerja hanya ada sekitar enam yang terdiri dari tiga karyawan produksi, dua karyawan pengiriman
dan
pemasangan,
serta
satu
karyawan
penggambar
desain.Pembagian divisi perusahaan pada saat itu juga belum jelas.Untuk hal eksternal yang melibatkan pencarian pelanggan dan negosiasi dengan pelanggan dilakukan oleh Direktur sendiri, yaitu Bapak Francis Cahyadi. Untuk hal internal yang melibatkan perhitungan rincian bahan baku, pengontrolan stok gudang, dan pembelian bahan baku dilakukan oleh Wakil Direktur, yaitu Bapak Jen Min. Pada enam bulan pertama, PT Luxus Indo Prima tidak mendapatkan pemesanan yang banyak. PO yang diterima setiap bulan oleh bagian produksi hanya sekitar tiga sampai lima. Hal ini mengakibatkan Direktur dan Wakil Direktur menimbulkan pemikiran untuk menghentikan bisnis yang kurang berpotensi ini.Namun, pemikiran tersebut tidak mempengaruhi tekad dan keingingan Direktur PT Luxus Indo Prima.Beliau tidak menyerah, melainkan
48 bekerja secara lebih sungguh-sungguh dengan Wakil Direktur agar dapat membuahkan kesusksesan dalam bisnis UPVC. Dengan usaha dan kemauan yang besar, ternyata pada bulan November tahun 2012, PT Luxus Indo Prima mengalami kemajuan.PO yang diterima meningkat hingga belasan untuk setiap bulan.Proyek yang diterima juga bervariasi, dari perumahan hingga gedung.Karena proyek yang diterima bertambah banyak, maka tenaga kerja yang diperlukan juga lebih banyak, mulai dari karyawan untuk bagian pemasaran, produksi, gudang, akuntansi, dan pembelian. Kemajuan bisnis PT Luxus Indo Prima lebih terlihat pada bulan Agustus 2012 dengan jumlah PO yang diterima sekitar dua puluhan.Pemesanan proyek tersebut bukan hanya berasal dari Jakarta, melainkan juga kota-kota luar seperti Bekasi, Makassar, dan Semarang. Selain itu, PT Luxus Indo Prima juga berhasil bekerja sama dengan pihak distributor dari Cengkareng dan Makassar. Hal ini bisa terjadi karena kualitas dari produksi yang dikerjakan dan sikap ramah dari pihak PT Luxus Indo Prima dalam melayani pelanggan.
3.2.1.2. Visi dan Misi 1.
Visi: Menjadi pemasok pintu dan jendela UPVC terbaik di Indonesia
2.
Misi: a.
Berkomitmen tinggi, positif, berpikiran sukses, dan maju, jujur dalam melayani pelanggan yang membutuhkan pintu dan jendela UPVC yang berkualitas
b.
Bekerja keras dan sungguh-sungguh untuk melayani semua pelanggan dengan memberikan pelayanan terbaik dengan sepenuh hati
c.
Menawarkan produk pintu dan jendela UPVC yang berkualitas tinggi dengan harga yang terjangkau sesuai dengan kebutuhan setiap pelanggan
d.
Meningkatkan dan memperbaiki kinerja agar lebih baik dalam melayani pelanggan baik sekarang maupun pada masa yang akan datang
49 e.
Menjalankan
perusahaan
dengan
“Good
Corporate
Governance” supaya dapat menjadi sumber kesejahteraan bagi pemilik, karyawan, dan pelanggan PT Luxus Indo Prima
3.2.1.3. Struktur Organisasi Berikut adalah gambar diagram struktur organisasi dalam PT Luxus Indo Prima:
Gambar 3.1Struktur organisasi PT Luxus Indo Prima
3.2.1.4. Tugas dan Wewenang 1.
2.
Direktur a.
Memimpin rapat dan mengambil keputusan akhir
b.
Mengangkat dan memberhentikan manajer dan karyawan
c.
Membina hubungan yang baik dengan pihak luar
d.
Membuat peraturan perusahaan
Wakil Direktur a.
Membantu dan memberi dukungan kepada Direktur
b.
Menggantikan posisi Direktur jika tidak berada di tempat
c.
Mengawasi seluruh kegiatan perusahaan
d.
Menerima laporan dari berbagai divisi
50 3.
Pemasaran a.
Membina hubungan yang baik dengan pelanggan
b.
Bertanggungjawab atas kelancaran proses pemesanan produk
c.
Bertanggungjawab untuk memantau kelancaran selama proses produksi hingga pemasangan
d.
Mempersiapkan semua dokumen yang diperlukan dalam proses pemesanan hingga pemasangan
e. 4.
Membuat laporan pemesanan
Produksi Divisi Produksi dibagi menjadi tiga bagian yang masing-masing
memiliki tugas dan wewenang yang berbeda. a.
Estimasi Harga 1.
Membuat rancangan desain produk sesuai permintaan pelanggan
2. b.
Memperhitungkan estimasi harga dan waktu produksi
Produksi 1.
Menghasilkan produk yang berkualitas tinggi
2.
Menjaga dan merawat mesin dengan baik agar selalu berada dalam kondisi yang maksimal
3.
Membuat laporan produksi dan dokumen lainnya yang diperlukan
c.
Pemasangan 1.
Menjalan proses pemasangan pintu jendela UPVC dengan maksimal
2.
Bertanggungjawab atas produk kusen pintu jendela selama proses pemasangan
5.
Gudang 1.
Bagian gudang bertanggungjawab atas Gudang Bahan Baku dan Gudang Bahan Jadi
2.
Mengontrol stok bahan baku agar selalu tersedia
3.
Bertanggungjawab untuk memelihara stok bahan baku dan produk jadi
51 4.
Bertanggungajawab atas semua proses penambahan dan pengeluaran stok maupun produk jadi
5.
Membuat laporan persediaan barang dan dokumen lainnya yang diperlukan
6.
Pembelian 1.
Bertanggungjawab atas pengajuan penambahan persediaan barang dari pihak Gudang sesuai jadwal
2.
Membina hubungan yang baik dengan pihak pemasok
3.
Membuat laporan pembelian dan dokumen lainnya yang diperlukan
52 3.2.1.5. Proses Bisnis 1.
Flowchart Pemesanan
Gambar 3.2Flowchart Proses Pemesanan
53 Berikut merupakan tahapan-tahapan dalam menjalankan proses pemesanan: 1.
Divisi pemasaran akan menerima gambar model kusen pintu yang diberikan oleh pelanggan kemudian melakukan duplikasi gambar model tersebut menjadi dua rangkap.
2.
Rangkap gambar model pertama
akan disimpan oleh Divisi
Pemasaran sebagai arsip. 3.
Rangkap gambar model kedua akan diberikan kepada Divisi Produksi Bagian Estimasi Harga untuk melakukan perhitungan harga.
4.
Sebelum melakukan perhitungan harga, Bagian Estimasi Harga dari Divisi Produksi akan melakukan pengecekan rumus yang sesuai untuk menghitung harga berdasarkan gambar model dan ukuran kusen pintu jendela.
5.
Jika rumus yang dibutuhkan tidak ada, maka Bagian Estimasi Harga akan membuat rumus baru dan rumus baru tersebut akan disimpan dalam daftar rumus.
6.
Jika rumus yang dibutuhkan sudah tersedia, maka akan dibuat daftar bahan baku yang berisi jumlah dan jenis bahan baku yang dihitung berdasarkan rumus yang sesuai.
7.
Berdasarkan daftar bahan baku dan daftar harga bahan baku, maka Bagian Estimasi Harga akan menghitung daftar biaya produksi.
8.
Divisi Pemasaran akan membuat surat penawaran harga sebanyak dua rangkap yang mengandung kontrak berdasarkan daftar biaya produksi yang dibuat oleh Bagian Estimasi Harga. Kedua rangkap surat tersebut akan diberikan kepada pelanggan untuk dibaca
9.
Apabila pelanggan tidak menyetujui surat penawaran harga tersebut, maka pelanggan dapat melakukan negosiasi harga dengan menghubungi Divisi Pemasaran untuk menambahkan diskon yang diberikan. Kemudian, Divisi Pemasaran akan menentukan harga baru yang disepekati. Surat penawaran harga
54 yang baru akan dikirim ulang oleh Divisi Pemasaran kepada pelanggan. 10. Apabila pelanggan menyetujui surat penawaran harga tersebut, maka pelanggan akan menandatangani kedua rangkap surat penawaran harga yang diberikan. 11. Rangkap pertama akan disimpan oleh pelanggan dan rangkap kedua akan dikembalikan kepada Divisi Pemasaran untuk disimpan sebagai arsip. 12. Kemudian Divisi Pemasaran akan membuat PO sebanyak empat rangkap. Rangkap pertama disimpan oleh Divisi Pemasaran, rangkap kedua akan diberikan ke Pelanggan, rangkap ketiga akan diberikan ke Divisi Produksi Bagian Produksi untuk memulai produksi, sedangkan rangkap keempat akan diberikan ke Divisi Keuangan yang akan diarsip untuk pembayaran pemesanan. 13. Setelah membuat PO, Divisi Pemasaran akan membuat jadwal pemasangan sebanyak dua rangkap. Rangkap pertama akan disimpan oleh Divisi Pemasaran sebagai arsip dan rangkap kedua akan diberikan ke Divisi Produksi sebagai target proses produksi. 14. Pelanggan akan melakukan pembayaran sesuai PO yang diberikan ke Divisi Keuangan. Selanjutnya Divisi Keuanganakan membuat bukti pembayaran sebanyak dua rangkap. Rangkap pertama disimpan oleh Divisi Keuangan, sedangkan rangkap kedua akan diberikan kepada pelanggan.
55 2.
Flowchart Produksi
Gambar 3.3Flowchart Proses Produksi
56 Berikut
merupakan
tahapan-tahapan
dalam
menjalankan
prosesproduksi: 1.
Divisi Produksi akan menerima PO dan jadwal pemasangan yang dibuat oleh Divisi Pemasaran.
2.
Divisi Produksi akan membuat rancangan detil kusen pintu jendela sesuai dengan PO yang diterima. Rancangan tersebut dibuat sebanyak dua rangkap.
3.
Rangkap pertama akan disimpan oleh divisi produksi sebagai arsip, sedangkan rangkap kedua akan diberikan ke divisi pemasaran.
4.
Divisi pemasaran akan membuat surat persetujuan rancangan sebanyak dua rangkap yang berisi pernyataan kesesuaian rancangan dan rancangan detil yang sebelumnya telah diberikan oleh Divisi produksi.
5.
Kedua rangkap surat persetujuan rancangan diberikan ke pelanggan untuk dibaca.
6.
Apabila pelanggan tidak menyetujui rancangan detil yang diberikan, maka pelanggan akan mengajukan revisi rancangan. Kemudian Divisi produksi akan membuat ulang rancangan detil kusen sesuai dengan permintaan revisi pelanggan.
7.
Apabila pelanggan menyetujui rancangan yang dibuat, maka pelanggan akan menandatangani kedua rangkap surat persetujuan rancangan tersebut.
8.
Rangkap pertama surat persetujuan rancangan yang sudah ditandatangani akan disimpan oleh pelanggan, sedangkan rangkap keduanya akan kembalikan ke Divisi Pemasaran.
9.
Setelah
menerima
persetujuan
rancangan
dari
pelanggan
selanjutnya Divisi Produksi akan membuat daftar pembagian tugas untuk memulai produksi barang jadi. Daftar pembagian tugas tersebut berisi tugas-tugas yang harus dikerjakan oleh Divisi Produksi Bagian Produksi. 10. Divisi Produksi akan mengambil bahan baku yang sesuai dengan daftar bahan baku yang sudah ditentukan sebelumnya.
57 11. Setiap kali pengambilan bahan baku, Divisi Produksi akan mencatat bahan baku apa saja yang telah diambil dalam catatan pengambilan sementara. 12. Kemudian berdasarkan catatan pengambilan sementara akan dibuat surat pengambilan bahan baku yang berisi daftar bahan baku yang diambil selama satu hari proses produksi. Surat tersebut dibuat sebanyak dua rangkap. 13. Rangkap pertama surat pengambilan bahan baku akan disimpan oleh Divisi Produksi sebagai arsip, sedangkan rangkap kedua akan diberikan ke Gudang Bahan Baku yang selanjutnya akan dicek oleh Gudang Bahan Baku. 14. Setelah barang selesai diproduksi, Divisi Produksi akan membuat surat penyerahan barang jadi sebanyak dua rangkap. 15. Rangkap pertama surat penyerahan barang jadi akan disimpan sebagai arsip, sedangkan rangkap kedua akan diberikan kepada Gudang Barang Jadi beserta dengan barang jadi, kemudian Gudang Barang Jadi akan menambahkan stok barang jadi pada buku stok barang jadi sesuai dengan surat penyerahan barang jadi tersebut. 16. Apabila jumlah barang jadi yang diproduksi sudah cukup untuk melakukan
proses pemasangan, maka Divisi Produksi akan
membuat laporan barang jadi sebanyak dua rangkap. 17. Rangkap pertama laporan barang jadi akan disimpan oleh Divisi Produksi sebagai arsip, sedangkan rangkap kedua akan diberikan ke Divisi Pemasaran sebagai pemberitahuan barang jadi sudah selesai diproduksi dan siap dikirimkan kepada pelanggan.
58 3.
FlowchartProses Pembelian dan Persediaan Bahan Baku
Gambar 3.4Flowchart Proses Pembelian dan Persediaan Bahan Baku
59 Berikut merupakan tahapan-tahapan dalam menjalankan proses pembelian dan persediaan bahan baku: 1.
Gudang Bahan Baku akan menerima surat pengambilan bahan baku yang diberikan oleh Divisi Produksi. Berdasarkan surat pengambilan bahan baku tersebut, Gudang Bahan Baku akan melakukan pengurangan stok bahan baku pada buku stok bahan baku.
2.
Gudang Bahan Baku akan melakukan pengecekan stok bahan baku setiap kali melakukan pengurangan stok. Pengecekan stok dilakukan berdasarkan buku stok bahan baku.
3.
Apabila stok bahan baku berada di bawah batas minimal, maka Gudang Bahan Baku akan mengajukan surat pengajuan pembelian barang sebanyak dua rangkap. Rangkap pertama akan disimpan oleh Gudang Bahan Baku dan rangkap kedua akan diberikan ke Divisi Pembelian.
4.
Berdasarkan surat pengajuan pembelian barang yang diajukan oleh Gudang Bahan Baku, Divisi Pembelian akan membuat PO pembelian sebanyak empat rangkap.
5.
Rangkap PO pertama akan disimpan oleh Divisi Pembelian sebagai arsip.
6.
Rangkap PO kedua akan diberikan kepada Gudang Bahan Baku untuk mengecek barang yang akan diterima dari pemasok.
7.
Rangkap PO ketiga akan diberikan ke Divisi Keuangan yang digunakan sebagai arsip untuk melakukan pembayaran.
8.
Rangkap PO keempat akan diberikan ke pemasok. Pemasok akan memenuhi PO yang diterima, kemudian mengantarkan barang dan memberikan surat jalan ke Gudang Bahan Baku.
9.
Gudang Bahan Baku akan mengecek barang yang dikirimkan pemasok. Apabila barang tidak sesuai dengan PO pembelian, maka Gudang Bahan Baku akan membuat surat pengajuan retur yang diberikan pada Divisi Pembelian.
10. Selanjutnya Divisi Pembelian akan membuat faktur retur pembelian sesuai dengan surat pengajuan retur yang diterima sebanyak dua rangkap.
60 11. Rangkap pertama faktur retur pembelian akan disimpan oleh Divisi Pembelian sebagai arsip dan rangkap kedua faktur retur pembelian akan berikan ke pemasok beserta bahan baku yang tidak sesuai. Kemudian pemasok akan kembali memenuhi PO pembelian sebelumnya. 12. Apabila barang sesuai dengan PO pembelian, maka Gudang Bahan Baku akan melakukan penambahan stok bahan baku pada buku stok bahan baku dan membuat laporan penerimaan barang sebanyak dua rangkap. 13. Rangkap pertama laporan penerimaan barang disimpan oleh Gudang Bahan Baku sebagai arsip. 14. Rangkap kedua laporan penerimaan barang akan diberikan ke Divisi Keuangan yang digunakan untuk melakukan pembayaran sesuai dengan PO yang diberikan sebelumnya. 15. Beberapa minggu setelah pengiriman bahan baku, pihak pemasok akan memberikan faktur pembelian ke Divisi Keuangan untuk menagih pembayaran yang harus dilakukan oleh Divisi Keuangan. Divisi Keuangan keuangan akan memeriksa faktur pembelian tersebut dengan PO pembelian dan laporan penerimaan barang yang diterima sebelumnya. Pembayaran akan dilakukan jika faktur pembelian tersebut cocok dengan laporan penerimaan barang dan PO pembelian.
61 4.
Flowchart Pengiriman dan Pemasangan
Gambar 3.5Flowchart Proses Pengiriman dan Pemasangan
62 Berikut merupakan tahapan-tahapan dalam menjalankan proses pengiriman dan pemasangan: 1.
Divisi Pemasaran akan melihat Jadwal pemasangan untuk memperoleh informasi mengenai nama proyek dan tanggal pemasangan di lokasi pelanggan.
2.
Selanjutnya, Divisi Pemasaran akan mengecek ketersediaan barang jadi melalui laporan barang jadi untuk proyek yang batas akhir pemasangan sisa sehari.
3.
Apabila barang jadi yang diperlukan untuk pemasangan tidak tersedia, maka Divisi Pemasaran akan melakukan pengunduran jadwal pemasangan sesuai dengan kondisi dari Divisi Produksi .
4.
Apabila barang jadi yang diperlukan untuk pemasangan sudah tersedia, maka Divisi Pemasaran akan menghubungi pelanggan untuk mengkonfirmasi pengiriman barang jadi ke lokasi pelanggan.
5.
Apabila pelanggan belum siap untuk dikirimkan barang, maka Divisi Pemasaran akan mencatat tanggal pemasangan baru yang diajukan oleh pelanggan. Selanjutnya Divisi Pemasaran akan menghubungi ulang pelanggan pada tanggal yang ditentukan.
6.
Apabila pelanggan sudah siap untuk dikirimkan barang, maka Divisi Pemasaran akan membuat surat jalan sebanyak tiga rangkap. Surat jalan tersebut berisi data pelanggan yang dituju dan produk jadi yang akan dikirimkan.
7.
Rangkap pertama surat jalan akan disimpan oleh Divisi Pemasaran sebagai arsip, sedangkan rangkap kedua dan ketiga surat jalan akan diberikan ke Gudang untuk melakukan pengiriman barang jadi.
8.
Gudang Barang Jadi akan mengurangi stok barang jadi pada buku stok barang jadi dan membuat laporan pengeluaran barang jadi sesuai dengan surat jalan yang diberikan oleh Divisi Pemasaran.
9.
Gudang Barang Jadi akan mengirimkan barang jadi pada lokasi pelanggan sesuai dengan surat jalan tersebut.
10. Pelanggan
akan
menerima
barang
yang
dikirim
menandatangani kedua rangkap surat jalan yang diberikan.
dan
63 11. Rangkap kedua surat jalan akan disimpan oleh pelanggan sedangkan rangkap ketiga surat jalan akan dikembalikan ke Divisi Pemasaran sebagai bukti bahwa produk sudah diterima oleh pelanggan. 12. Divisi Pemasaran akan membuat surat pemasangan sebanyak dua rangkap. Surat pemasangan tersebut berisi informasi mengenai proyek yang akan diselesaikan. 13. Rangkap pertama surat pemasangan akan disimpan oleh Divisi Pemasaran sebagai arsip sedangkan rangkap kedua surat pemasangan
akan
diberikan
ke
Divisi
Produksi
Bagian
Pemasangan untuk memulai pelaksanaan pemasangan. 14. Divisi Pemasaran akan membuat surat penyelesaian pemasangan apabila pemasangan yang dilakukan oleh Divisi Produksi Bagian Pemasangan
sudah
hampir
selesai.
Surat
penyelesaian
pemasangan tersebut dibuat sebanyak dua rangkap. 15. Pada hari terakhir pemasangan, pelanggan akan menerima kedua rangkap
surat
penyelesaian
pemasangan
tersebut
dan
pemasangan
akan
menandatanganinya. 16. Rangkap
pertama
surat
penyelesaian
dikembalikan kepada Divisi Pemasaran sebagai akhir dari kontrak,
sedangkan
rangkap
kedua
surat
penyelesaian
pemasangan akan disimpan oleh pelanggan.
3.2.2. Analisis Kebutuhan Kebutuhan yang akan dianalisa meliputi kebutuhan informasi, transaksi, keamanan, akses, dan integritas. 3.2.2.1. Kebutuhan Informasi Kebutuhan informasi yang diperlukan dalam sistem bisnis pada PT Luxus Indo Prima meliputi:
64 Tabel 3.1Kebutuhan Informasi Informasi
Isi
Pengajuan
Data-data pemesanan yang diajukan Pemasaran, Produksi
Pemesanan
oleh pelanggan meliputi gambar (Bagian Estimasi Harga), kusen
Pihak yang memerlukan
pintu
jendela
dan
yang pelanggan
lainnya Bahan baku
Data-data yang berkaitan dengan Produksi (Bagian Estimasi semua bahan baku yang ada
Harga), Produksi (Bagian Produksi)
Rumus
bahan Data
tentang
rumus-rumus Produksi (Bagian Estimasi
baku
pembuatan bahan baku
Produksi
Data-data
bahan
Harga) baku
yang Produksi (Bagian Estimasi
diperlukan dalam sebuah produksi Harga),Pemasaran termasuk harga bahan baku Kontrak
Data-data yang berkaitan dengan Pemasaran, pelanggan kontrak proyek kusen pintu jendela dengan pelanggan
Pemesanan
Data-data yang berkaitan dengan Produksi (Bagian pemesanan pelanggan
Produksi), Pemasaran , pelanggan
Pembayaran
Data-data yang berkaitan dengan Keuangan, pelanggan,
pemesanan
pembayaran
yang
dilakukan Pemasaran
pelanggan Rancangan kusen
Rancangan detil yang dibuat oleh Pemasaran, Produksi pintu bagian estimasi harga sesuai gambar (Bagian Estimasi Harga),
jendela
model
yang
diajukan
oleh pelanggan
pelanggan Target produksi
Jadwal yang berisi tanggal-tanggal Produksi (Bagian Produksi pemasangan dan pengiriman
dan Pemasangan), Pemasaran
Tugas produksi
Data-data tentang tugas yang harus Produksi(Bagian Produksi) dikerjakan oleh bagian produksi
65 Informasi
Isi
Pengambilan
Data-data
tentang
bahan baku
pengambilan
bahan
Pihak yang Memerlukan jumlah Gudang bahan baku, baku
yang Produksi (bagian produksi)
digunakan untuk produksi Barang jadi
Data-data tentang informasi barang Produksi(bagian produksi), jadi yang sudah diproduksi seperti Pemasaran, Gudang barang nama barang jadi,tanggal selesai jadi produksi, dan yang lainnya
Pengajuan
Data-data tentang bahan baku yang Produksi(bagian produksi),
pembelian
ingin beli
Pembelian
barang Pembelian
Data-data yang berkaitan dengan Produksi(bagian produksi), pembelian bahan baku ke pemasok
Pembelian, Keuangan
Pembayaran
Data-data yang berkaitan dengan Keuangan
pembelian
pembayaran
yang
dilakukan
perusahaan ke pemasok Retur
Data-data yang berkaitan dengan Pembelian, Gudang Bahan
pembelian
pengembalian
bahan baku
pemasok
Pemasok
Data-data yang berkaitan dengan Pembelian, Keuangan
bahan
baku
ke Baku
pemasok Pelanggan
Data-data yang berkaitan dengan Pemasaran pelanggan
Pengiriman
Data-data yang berkaitan dengan Pemasaran, Gudang barang pengiriman barang jadi ke lokasi jadi, pelanggan pelanggan
Pemasangan
Data-data yang berkaitan dengan Pemasarang, Produksi pemasangan barang jadi di lokasi (Bagian Produksi), pelanggan
Karyawan
pelanggan
Data-data yang berkaitan dengan Produksi (Bagian karyawan
Produksi), Pemasaran
66 3.2.2.2. Kebutuhan Transaksi Untuk mendukung proses bisnis agar dapat berjalan dengan efektif dan efisien, perusahaan membutuhkan transaksi-transaksi sebagai berikut: 1.
Memasukkan dan mengubah data pengajuan pemesanan
2.
Memasukkan dan mengubah data pelanggan
3.
Memasukkan dan mengubah data rumus bahan baku
4.
Memasukkan dan mengubah data produksi
5.
Memasukkan dan mengubah data kontrak
6.
Memasukkan dan mengubah data rancangan kusen pintu jendela
7.
Memasukkan dan mengubah data pemesanan
8.
Memasukkan dan mengubah data target produksi
9.
Memasukkan dan mengubah data tugas produksi
10.
Memasukkan dan mengubah data pengambilan bahan baku
11.
Memasukkan dan mengubah data barang jadi
12.
Memasukkan dan mengubah data bahan baku
13.
Memasukkan dan mengubah data pemasok
14.
Memasukkan dan mengubah data pengajuan pembelian
15.
Memasukkan dan mengubah data pembelian
16.
Memasukkan dan mengubah data retur pembelian
17.
Memasukkan dan mengubah data pengiriman
18.
Memasukkan dan mengubah data pemasangan
19.
Memasukkan dan mengubah data karyawan
20.
Memasukkan dan mengubah data pembayaran pemesanan
21.
Memasukkan dan mengubah data pembayaran pembelian
22.
Menampilkan pengajuan pemesanan berdasarkan identitas pelanggan.
23.
Menampilkan data bahan baku berdasarkan rumus bahan baku
24.
Menampilkan data produksi berdasarkan nomor pengajuan pemesanan
25.
Menampilkan rancangan kusen pintu jendela berdasarkan nomor pengajuan pemesanan
26.
Menampilkan kontrak sesuai dengan identitas pelanggan dan pemesanan yang diajukan
27.
Menampilkan pemesanan yang dibuat oleh karyawan
28.
Menampilkan pemesanan
target
produksi
berdasarkan
nomor
pengajuan
67 29.
Menampilkan data tugas produksi dan nama karyawan yang terlibat didalamnya
30.
Menampilkan data pengambilan bahan baku berdasarkan nama karyawan
31.
Menampilkan data barang jadi berdasarkan kode produksi
32.
Menampilkan data pembelian berdasarkan nomor pengajuan pembelian
33.
Menampilkan data retur pembelian berdasarkan nomor pembelian
34.
Menampilkan
data
pengiriman
berdasarkan
nomor
pengajuan
pemesanan 35.
Menampilkan data pemasangan berdasarkan nomor pengajuan pemesanan
36.
Menampilkan detil pengajuan pemesanan yang dibuat berdasarkan data karyawan
37.
Menampilkan kontrak yang diurus oleh karyawan
38.
Menampilkan data pengajuan pembelian yang diajukan oleh karyawan
39.
Menampilkan data pembelian yang dibuat oleh karyawan
40.
Menampilkan data retur pembelian yang diurus oleh karyawan
41.
Menampilkan data pengiriman dan karyawan yang terlibat di dalamnya
42.
Menampilkan data pemasangan yang dilakukan oleh karyawan
43.
Menampilkan data barang jadi yang dikirim
44.
Menampilkan rumus yang digunakan untuk produksi
45.
Menampilkan tugas produksi sesuai nomor produksi
46.
Menampilkan bahan baku yang dibeli melalui pembelian
47.
Menampilkan pembelian berdasarkan nama pemasok
48.
Menampilkan daftar bahan baku dalam pengajuan pembelian
49.
Menampilkan daftar bahan baku dalam retur pembelian
50.
Menampilkan daftar bahan baku dalam pengambilan bahan baku
51.
Menampilkan
data
pembayaran
pemesanan
berdasarkan
nama
karyawan yang mengurusnya dan nomor pemesanan 52.
Menampilkan
data
pembayaran
pembelian
berdasarkan
karyawan yang mengurusnya dan nomor pembelian
nama
68 3.2.2.3. Kebutuhan Keamanan Data merupakan salah satu yang terpenting dalam sebuah sistem informasi. Oleh karena itu, dalam merancang dan membuat aplikasi basis data, ada beberapa hal yang diperhatikan dalam menjaga kemanan data, yaitu: 1.
Untuk mengakses basis data diperlukan password agar pihak yang berwenang saja yang dapat mengakses basis data tersebut
2.
Setiap karyawan diberikan hak akses aplikasi sesuai dengan tugas dan wewenang yang dimilikinya
3.2.2.4. Kebutuhan Akes Aplikasi basis data yang dirancang memungkinkan pengaksesan kebutuhan data yang lebih cepat bagi PT Luxus Indo Prima. Pengaksesan kebutuhan data yang tersebut meliputi, laporan-laporan yang dibutuhkan oleh Direktur dan Wakil Direktur, status pemesanan pelanggan oleh Divisi Pemasaran, pengajuan pembelian bahan baku oleh Divisi Pembelian, dan yang lainnya.
3.2.2.5. Kebutuhan Integritas Integritas data setiap divisi yang terlibat dalam proses pemesanan, produksi, persediaan dan pembelian bahan baku, pengiriman dan pemasangan sangat diperlukan. Integrasi data tersebut meliputi: 1.
Integrasi data antara Divisi Pemasaran dan Produksi sehingga Divisi pemasaran dapat mengetahui status produksi yang berlangsung dan informasi lainnya dalam prose pemesanan.
2.
Integrasi data antara Divisi Pembelian dan Gudang Bahan Baku sehingga Divisi Pembelian dapat mengetahui daftar bahan baku yang perlu dibeli dan informasi lainnya dalam proses persediaan dan pembelian.
3.
Integrasi data antara Divisi Produksi, Pemasaran, Gudang Barang Jadi, sehingga Divisi Pemasaran dapat mengetahui status barang yang sudah selesai diproduksi dan informasi lainnya dalam proses pengiriman dan pemasangan kusen pintu jendela.
4.
Integrasi data antara Divisi Produksi dan Gudang Bahan Baku sehingga Gudang Bahan Baku dapat mengetahui bahan baku yang
69 diambil oleh Divisi Produksi dalam memproduksi barang jadi dan informasi lainnya dalam proses produksi. 5.
Integrasi setiap divisi dalam proses pemesanan hingga pemasangan, sehingga Direktur dan Wakil Direktur dapat memperoleh laporanlaporan yang diperlukan dengan mudah dan cepat.
3.2.3. Identifikasi Masalah Identifikasi masalah untuk sistem manual yang sedang berjalan pada PT Luxus Indo Prima dilakukan dengan dua cara, yaitu wawancara dan observasi. Berikut akan disampaikan masalah yang diperoleh dari hasil mengidentfikasi.
3.2.3.1. Wawancara Tujuan dari wawancara yaitu memahami sistem manual yang berjalan secara lebih detil dan menemukan masalah yang terjadi pada sistem manual tersebut. Wawancara dilakukan dengan Wakil Direktur dan beberapa karyawan PT Luxus Indo Prima. Beberapa masalah yang ditemukan ketika melakukan wawancara, yaitu: 1.
Setiap transaksi bisnis yang dilakukan memakan waktu yang lebih lama karena memerlukan tatap muka antar divisi yang terlibat
2.
Perhitungan rumus bahan baku dengan MicrosoftExcel memerlukan waktu yang lebih banyak
3.
Terjadi pemborosan kertas karena sebagian besar data perlu dicetak dalam bentuk kertas
4.
Resiko terjadinya kehilangan data karena data-data yang disimpan dalam kertas atau buku
5.
Sulit untuk membuat laporan dari setiap divisi karena data-data dari kertas harus dikumpulkan terlebih dahulu
3.2.3.2. Observasi Tujuan dari observasi yaitu melihat secara langsung sistem manual yang berjalan dan menemukan masalah yang belum diidentifikasikan sebelumnya. Observasi dilakukan dengan mengunjungi kantor dan pabrik produksi PT Luxus Indo Prima secara langsung. Pihak yang terlibat dalam
70 observasi yaitu Divisi Pemasaran, Produksi yang meliputi Bagian Pembuatan dan Estimasi Harga, serta Bagian Gudang. Beberapa masalah ditemukan setelah meninjau perusahaan secara langsung, yaitu: 1.
Banyak tumpukan kertas ditemukan pada meja-meja karyawan
2.
Data-data bahan baku dan rumus perhitungan yang disimpan dalam Microsoft Excel mengakibatkan kesulitan dalam memanipulasi data
3.
Sebagian data dicatat dalam kertas seperti pengambilan dan pengajuan pembelian bahan baku
4.
Sebagian data dicetak dalam kertas seperti jadwal target produksi dan rancangan kusen
3.2.3.3. Kesimpulan Masalah Kesimpulan masalah yang diperoleh dari hasil wawancara dan observasi terhadap sistem yang berjalan saat ini pada PT Luxus Indo Prima yaitu: 1.
Proses bisnis PT Luxus Indo Prima memerlukan waktu yang lebih banyak karena sistem manual yang berjalan mengakibatkan setiap divisi harus bertatapan muka untuk melakukan setiap transaksi
2.
Perhitungan bahan baku yang masih menggunakan Microsoft Excel mengakibatkan kerumitan dalam menghitung sehingga menghabiskan waktu yang lama, apalagi dalam menghadapi proyek yang berskala besar
3.
Jumlah transaksi yang banyak mengakibatkan penggunaan kertas yang banyak sehingga menimbulkan berbagai masalah, seperti pemborosan kertas, kesulitan dalam penyimpanan berkas, dan resiko kehilangan data
4.
Data-data yang disimpan dalam kertas dan buku mengakibatkan pembuatan laporan yang sulit dari berbagai divisi sehingga laporan diberikan secara tidak rutin kepada Direktur dan Wakil Direktur
3.2.4. Usulan Pemecahan Masalah Dalam mengatasi masalah yang dihadapi, akan dirancang sebuah aplikasi basis data pemesanan, produksi, persedian, dan pembelian bahan baku
71 serta pengiriman dan pemasangan yang diharapkan dapat memudahkan prosesproses yang berjalan di PT Luxus Indo Prima. Pemecahan masalah yang diusulkan pada PT Luxus Indo Prima untuk mengatasi masalah – masalah yang dihadapi antara lain: 1.
Membuat sebuah basis data yang digunakan untuk menyimpan datadata yang diperlukan dalam mendukung proses pemesanan, produksi, persedian, dan pembelian bahan baku, serta pengiriman dan pemasangan barang jadi.
2.
Membangun sebuah aplikasi berbasis web yang digunakan untuk mengakses data-data terkait proses pemesanan, produksi, persedian, dan pembelian bahan baku, serta pengiriman dan pemasangan barang jadi sehingga mempermudah karyawan dalam melaksanakan tugasnya.
3.
Membangun sebuah aplikasi berbasis web yang dapat menghasilkan surat-surat seperti PO pemesanan, PO pembelian, laporan persediaan barang, laporan produksi, laporan pemesanan, laporan pembelian, serta laporan pemasangan dengan format yang konsisten. Penjelasan detil mengenai cara kerja aplikasi basis data agar dapat
mengatasi masalah-masalah pada PT Luxus Indo Prima akan disampaikan dengan flowchart beserta deskripsinya.
72
Gambar 3.6Flowchart Proses Pemesanan dengan menggunakan Basis Data
73 Berikut merupakan usulan tahapan-tahapan dalam menjalankan proses pemesanan melalui aplikasi basis data: 1. Divisi Pemasaran akan menyimpan data pemesanan yang diajukan oleh pelanggan ke dalam tabel pengajuan pemesanan. 2. Setelah melihat data pengajuan pemesanan, Divisi Produksi akan menggunakan atau membuat rumus baru berdasarkan tabel rumus bahan baku yang ada pada basis data untuk menghitung jumlah bahan baku dan estimasi harga untuk menjalankan produksi. Hasil tersebut akan disimpan dalam tabel produksi. 3. Divisi
Pemasaran
akan
membuat
surat
penawaran
harga
berdasarkan tabel produksi dan disimpan dalam tabel kontrak. 4. Surat penawaran harga tersebut akan dicetak sebanyak dua rangkap dan diberikan kepada pelanggan untuk dipertimbangkan 5. Apabila pelanggan tidak menyetujui isi kontrak, maka pelanggan dapat melakukan negosiasi dengan Divisi Pemasaran dan menghasilkan surat penawaran harga yang baru. 6. Apabila pelanggan setuju dengan surat penawaran yang diberikan, maka pelanggan akan menandatangani kedua surat penawaran harga. Rangkap pertama akan disimpan oleh pelanggan dan rangkap kedua akan dikembalikan kepada Divisi Pemasaran. 7. Setelah surat penawaran harga ditandatangani, Divisi Pemasaran akan membuat PO dan menyimpan data PO tersebut ke dalam tabel pemesanan. 8. Selanjutnya PO akan dicetak sebanyak dua rangkap, rangkap pertama akan disimpan sebagai arsip dan rangkap kedua akan dikirimkan kepada pelanggan. 9. Divisi Pemasaran akan membuat jadwal target pemasangan dan pengiriman, kemudian disimpan dalam tabel jadwal yang akan diakses oleh Divisi Produksi untuk melihat jadwal tersebut. 10. Setelah menerima PO, pelanggan akan melakukan pembayaran pada Divisi Keuangan. Divisi Keuangan akan menyimpan data pembayaran tersebut dan mencetak bukti pembayaran untuk pelanggan.
74
Gambar 3.7Flowchart Proses Produksi dengan menggunakan Basis Data
75 Berikut merupakan usulan tahapan-tahapan dalam menjalankan proses produksi melalui aplikasi basis data: 1.
Divisi Produksi akan mengakses tabel pemesanan dan jadwal untuk melihat PO dan jadwal.
2.
Setelah itu, Divisi Produksi akan mebuat rancangan detil kusen berdasarkan data pemesanan yang diterima. Rancangan kusen akan disimpan ke dalam tabel rancangan kusen.
3.
Divisi Pemasaran akan melihat rancangan kusen dari tabel rancangan kusen, kemudian membuat surat persetujuan rancangan sebanyak dua rangkap dan diberikan kepada pelanggan.
4.
Pelanggan akan membaca surat persetujuan rancangan. Apabila pelanggan tidak setuju dengan rancangan yang diberikan, maka Divisi Produksi akan menghasilkan rancangan yang baru hingga diterima oleh pelanggan.
5.
Jika pelanggan menyetujui dan menandatangani kedua rangkap surat persetujuan rancangan tersebut. Maka rangkap pertama akan disimpan oleh pelanggan dan rangkap kedua diberikan kepada Divisi Pemasaran.
6.
Divisi Produksi akan membuat daftar pembagian tugas produksi dan daftar tersebut disimpan dalam tabel tugas produksi.
7.
Divisi Produksi akan mengambil jumlah bahan baku yang diperlukan untuk memproduksi, kemudian menambahkan jumlah data pengambilan pada tabel pengambilan bahan baku.
8.
Setelah produk jadi selesai dikerjakan, maka akan disimpan dalam gudang barang jadi dan menambahkan data barang jadi pada tabel barang jadi.
76
Gambar 3.8Flowchart Proses Persediaan dan Pembelian Bahan Baku dengan menggunakan Basis Data
77 Berikut merupakan usulan tahapan-tahapan dalam menjalankan proses persediaan dan pembelian bahan baku melalui aplikasi basis data: 1.
Berdasarkan data pengambilan bahan baku pada basis data, Bagian Gudang akan mengurangi jumlah stok bahan baku pada tabel bahan baku sesuai jumlah yang diambil.
2.
Jika terdapat bahan baku yang jumlahnya berada di bawah batas minimal, maka Bagian Gudang akan membuat pengajuan pembelian bahan baku yang disimpan pada tabel pengajuan pembelian.
3.
Divisi Pembelian akan melihat tabel pengajuan pembelian mengenai bahan baku yang diajukan dari Bagian Gudang.
4.
Divisi Pembelian akan membuat pembelian sesuai dengan jumlah dan tipe yang diajukan. Data pembelian tersebut akan disimpan pada tabel pembelian.
5.
Selanjutnya Divisi Pembelian akan mencetak PO pembelian dan memberikannya kepada pemasok. Pemasok akan memenuhi permintaan PO pembelian dan kemudian mengirimkan barang yang diminta beserta surat jalan.
6.
Bagian Gudang akan menerima barang dari pemasok dan mengecek apakah barang yang diterima sudah sesuai dengan data pembelian atau belum.
7.
Apabila bahan baku yang diterima sudah sesuai, maka stok bahan baku pada tabel bahan baku akan ditambah dan status pembelian pada tabel pembelian akan diubah menjadi ‘Diterima’.
8.
Apabila bahan baku yang diterima tidak sesuai, maka Bagian Gudang akan membuat retur pembelian dan disimpan dalam tabel retur pembelian.
9.
Setelah itu, Divisi Pembelian akan mencetak retur pembelian dan dikirimkan kepada pemasok agar dapat dipenuhi lagi.
10.
Setelah pengiriman bahan baku, pihak pemasok akan memberikan faktur pembelian kepada Divisi Keuangan untuk menagih. Divisi Keuangan akan memeriksa faktur pembelian tersebut dengan data pembelian dan status penerimaan yang ada pada tabel pembelian.
78 Pembayaran akan dilakukan jika faktur pembelian tersebut sudah sesuai dengan data yang ada pada tabel pembelian.
Gambar 3.9Flowchart Proses Pengiriman dan Pemasangan dengan menggunakan Basis Data
79 Berikut merupakan usulan tahapan-tahapan dalam menjalankan proses pengiriman dan pemasangan melalui aplikasi basis data: Berikut merupakan tahapan-tahapan dalam menjalankan proses pengiriman dan pemasangan melalui aplikasi basis data: 1.
Divisi Pemasaran akan melihat jadwal pemasangan, pengiriman dan barang jadi yang berkaitan dengan pemesanan pada basis data.
2.
Apabila tanggal pemesanan sudah tiba dan barang jadi sudah tersedia, maka Divisi Pemasaran akan menghubungi pelanggan mengenai kepastian pengiriman dan pemasangan.
3.
Apabila barang jadi belum tersedia dan pelanggan menginginkan penundaan jadwal, maka Divisi Pemasaran akan mengundur jadwal pengiriman dan pemasangan dengan mengubah tanggal pada tabel jadwal.
4.
Apabila pelanggan sudah setuju dengan tanggal pengiriman dan pemasangan, maka Divisi Pemasaran akan membuat data pengiriman untuk Bagian Gudang.
5.
Selanjutnya, Bagian Gudang akan mencetak surat jalan sebanyak dua rangkap, mengirimkan barang jadi, dan mengurangi barang jadi pada tabel barang jadi.
6.
Setelah menerima barang jadi yang dikirim, pelanggan akan menandatangani surat jalan tersebut. Rangkap pertama akan disimpan oleh pelanggan, kemudian rangkap kedua akan diberikan pada Divisi Pemasaran.
7.
Divisi Pemasaran akan membuat data pemasangan pada tabel pemasangan setelah menerima surat jalan yang ditandatangani.
8.
Divisi Produksi akan mencetak surat pemasangan berdasarkan data pemasangan pada tabel pemasangan, melakukan pemasangan, dan mengubah status pemasangan.
9.
Jika status pemasangan berada pada kondisi tahap akhir, maka Divisi Produksi akan mencetak surat penyelesaian pemasangan sebanyak dua rangkap dan diberikan kepada pelanggan.
10.
Pelanggan akan menandatangani surat tersebut. Rangkap pertama akan disimpan oleh pelanggan, sedangkan rangkap kedua akan dikembalikan kepada Divisi Pemasaran.
80
3.3. Perancangan Basis Data
BerdasarkanDatabase System Development Lifecycle, terdapat tiga tahapan dalam melakukan perancangan basis data, yaitu: 1.
Perancangan Basis Data Konseptual
2.
Perancangan Basis Data Logikal
3.
Perancangan Basis Data Fisikal
3.3.1. Perancangan Basis Data Konseptual Perancangan basis data konseptual yaitu proses membangun sebuah model data konseptual dari kebutuhan data perusahaan. Hal-hal yang perlu dilakukan dalam tahap ini yaitu membangun model data konseptual yang meliputi langkah-langkah: 1.
Mengidentifikasi tipe entitas
2.
Mengidentifikasi tipe relationship
3.
Mengidentifikasi dan mengasosiasikan atribut dengan tipe entitas atau relationship
4.
Menentukan domain atribut
5.
Menentukan atribut dari candidate key dan primary key
6.
Mempertimbangkan penggunaan dari enhanced modeling concept
7.
Memeriksa redudansi dari model
8.
Memvalidasikan model konseptual lokal terhadap transaksi pengguna
9.
Meninjau kembali model konseptual data lokal terhadap kebutuhan pengguna
3.3.1.1. Mengidentifikasi Tipe-TipeEntity Tujuannya untuk mengidentifikasi tipe entitas yang diperlukan. Setelah menganalisa sistem yang berjalan pada PT Luxus Indo Prima, berikut adalah tipe-tipe entias yang ditemukan:
81 Tabel 3.2Tipe Entitas Tipe Entitas
Deskripsi detil
Alias
pengajuan Pemesanan
Occurance
Pengajuan
Semua
Pemesanan
pemesanan yang dilakukan Awal
yang dilakukan pelanggan
oleh pelanggan
dapat dilihat oleh Divisi
ke PT
Luxus Indo Prima BahanBaku
Jenis-jenis
dan
Setiap pengajuan pemesanan
Pemasaran dan Produksi jumlah
Setiap bahan baku yang
bahan baku yang dimiliki
digunakan
oleh perusahaan
produksi kusen pintu jendela
RumusBahan
Rumus-rumus bahan baku Formula
Setiap rumus bahan baku
Baku
untuk
yang
produksi
yang BahanBaku
dimiliki oleh perusahaan
dalam
proses
digunakan
menentukan yang
untuk
bahan
baku
digunakan
dalam
proses produksi kusen pintu jendela Produksi
Semua detil produksi yang Produksi
Produksi
dilakukan oleh perusahaan
akan
yang
dilakukan
menambah
jumlah
barang jadi Kontrak
Detil
perjanjian
antara Surat
pelanggan dan perusahaan
Perjanjian
Setiap kontrak menentukan kelanjutan dari proses produksi
Pemesanan
Semua detil barang yang Faktur
Setiap PO pemesanan dibuat
akan dibeli oleh pelanggan Pemesanan
berdasarkan
sesuai dengan pengajuan
yang dilakukan pelanggan
pemesanan pelanggan
dan
pemesanan
menandakan
kontrak
disetujui
oleh
sudah pelanggan Pembayaran
Semua detil pembayaran
Setiap
pemesanan
yang
pemesanan yang dilakukan
dilakukan
oleh
pelanggan ke perusahaan
oleh
pembayaran
pelanggan
sesuai
dengan pemesanan yang ada
82 Tipe Entitas
Deskripsi
Alias
Occurance
Rancangan
Rancangan detil dari kusen Rancangan
Setiap
rancangan
Kusen
pintu jendela yang akan Kusen
pintu jendela yang dibuat
dibuat oleh perusahaan
oleh Divisi Produksi sesuai dengan
kusen
gambar
yang
diberikan oleh pelanggan Target
Detil tanggal pemasangan Jadwal
Setiap jadwal pemasangan
Produksi
dan pengiriman dari kusen
dibuat
pintu jendela yang sudah
Pemasaran dan dilihat oleh
selesai diproduksi
Divisi
oleh
Divisi
Produksi
untuk
menentukan target produksi sehingga pemasangan dan pengiriman
barang
dapat
dilakukan
tepat
pada
waktunya Tugas
Detil
pembagian
tugas Jadwal
Setiap
pembagian
tugas
Produksi
yang
dibuat
untuk Produksi
akan dilihat oleh karyawan
mencapai target produksi
Divisi Produksi
Pengambilan
Detil pengambilan bahan
Setiap pengambilan bahan
BahanBaku
baku
yang
baku akan mengurangi stok
untuk
proses
digunakan produksi
bahan baku di gudang
barang jadi BarangJadi
Detil barang jadi yang
Setiap barang jadi yang
sudah diproduksi
diproduksi oleh perusahaan
Pengajuan
Detil
pengajuan
bahan Pengajuan
Setiap pengajuan pembelian
Pembelian
baku yang ingin dibeli Pembelian
dibuat oleh Bagian Gudang
oleh perusahaan
bahan baku untuk dilihat oleh divisi pembelian
Pembelian
Karyawan
Detil
pembelian
bahan Faktur
Setiap PO pembelian akan
baku yang dilakukan oleh Pembelian
menambah
jumlah
perusahaan ke pemasok
baku gudang
Karyawan yang bekerja Pegawai
Karyawan
pada PT Luxus Indo Prima
pada PT Luxus Indo Prima
yang
bahan
bekerja
83 Tipe Entitas
Deskripsi pembayaran
Alias yang
Occurance
Pembayaran
Detil
Setiap
pembayaran
Pembelian
dilakukan oleh perusahaan
pembelian akan mengubah
ke pemasok
status pembelian menjadi lunas
Retur
Detill pengembalian bahan Retur
Perusahaan
Pembelian
baku
mengembalikan bahan baku
yang
dibeli
oleh Pembelian
perusahaan ke pemasok
akan
yang tidak sesuai dengan pemesanan yang dilakukan
Pemasok
Pelanggan
Pemasok
yang Supplier
pemasok
yang
menyediakan bahan baku
menjadi rekan PT Luxus
untuk
Indo
PT
Luxus
Indo
Prima
dalam
Prima
menyediakan bahan baku
Organisasi atau individu Customer
Setiap
yang
pelanggan
yang
memesan
atau
melakukan pemesanan dan
produk
yang
pelanggan
membeli
Pengiriman
Setiap
bisa
ditawarkan oleh PT Luxus
membatalkan
Indo Prima
sebelum
Detil pengiriman barang Delivery
Setiap pengiriman barang
jadi
jadi yang dilakukan oleh
yang
dilakukan
perusahaan ke pelanggan
pemesanan
karyawan akan mengubah status barang jadi
Pemasangan
Detil pemasangan kusen Instalasi
Setiap
pintu
yang
dilakukan karyawan akan
dilakukan perusahaan di
mengubah status pemesanan
lokasi pelanggan
pelanggan
jendela
pemasangan
84 3.3.1.2. Mengidentifikasi Tipe-TipeRelationship Tujuannya untukmengidentifikasi hubungan-hubungan penting yang ada antaratipe-tipe entitas. Berikut merupakan hasil identifikasi tipe relationship setiap tipe entitas:
Tabel 3.3Tipe Relationship Entity Name
Multiplicity
Pelanggan Karyawan
Pengajuan Pemesanan
Pengiriman Rumus Bahan Baku Pemasangan Produksi
Relationship
Entity Name
Multiplicity
1..1 1..1 1..1 1..1 1..1 1..* 1..1
Memesan Menandatangani Melayani Mengurus Membuat Melaksanakan Melakukan
1..* 1..* 0..* 0..* 0..* 0..* 0..*
1..1 1..1 1..1 1..1 1..* 1..1
Mengajukan Membuat Mengurus Melakukan Menjalankan Mengurus
1..1
Mengurus
1..1 1..1 1..1 1..1 1..1 1..1 1..1 1..1 1..* 1..1
Mempunyai Memiliki Mengakibatkan Memproduksi Menghasilkan Memiliki Memiliki Mengirim Menuju Menghasilkan
PengajuanPemesanan Kontrak PengajuanPemesanan Kontrak Pemesanan TugasProduksi PengambilanBahan Baku PengajuanPembelian Pembelian ReturPembelian Pengiriman Pemasangan Pembayaran Pembelian Pembayaran Pemesanan Kontrak TargetProduksi Pemesanan Produksi RancanganKusen Pengiriman Pemasangan BarangJadi Pelanggan Produksi
1..* 1..* 1..1 1..1
Menghitung Memasang Membagi Menghasilkan
BahanBaku Pelanggan TugasProduksi BarangJadi
1..* 1..1 1..* 1..1
0..* 0..* 0..* 0..* 0..* 0..* 0..* 1..* 0..* 0..1 1..* 1..* 0..* 0..* 1..* 1..1 1..*
85 Entity Name
Multiplicity
Relationship
Entity Name
Multiplicity
Pembelian
1..1 1..* 1..1
Menimbulkan Menambah Memiliki
0..1 1..* 1..*
Pemasok Pemesanan
1..1 1..1
Memenuhi Memiliki
Pengajuan Pembelian
1..*
Mengajukan
Retur Pembelian BahanBaku Pembayaran Pembelian Pembelian Pembayaran Pemesanan BahanBaku
1..1 1..*
Menyebabkan Mengembalikan
Pembelian BahanBaku
1..* 1..*
Mengurangi
BahanBaku
1..*
Menghasilkan
Produksi
1..*
Menghitung Memasang Membagi Menghasilkan
BahanBaku Pelanggan TugasProduksi BarangJadi
1..* 1..1 1..* 1..1
Retur Pembelian Pengambilan 1..* BahanBaku Rumus 1..1 Bahan Baku 1..* Pemasangan 1..* Produksi 1..1 1..1
1..* 1..* 1..*
86
Gambar 3.10ERD Setelah Bab 3.3.1.2
87 3.3.1.3. Mengidentifikasi dan Mengasosiasikan Atribut-Atribut dengan TipeTipeEntity atau Relationship Tujuannyauntukmenghubungkan atribut-atribut dengan tipe entitas atau relationship. Berikut adalah atribut-atribut yang diidentifikasikan untu setiap entitas: 1.
PengajuanPemesanan Tabel 3.4Atribut-Atribut PengajuanPemesanan Atribut
KdPengPemesanan TglPengPemesanan GmbPengPemesanan StatusPengPemesanan NamaProyek AlamatPemesanan KotaPemesanan KecPemesanan KelPemesanan KdPosPemesanan
Deskripsi Kode dari pengajuan pemesanan Tanggal pengajuan pemesanan Image path Gambar yang dipesan Status dari pengajuan pemesanan Nama dari proyek pemesanan Alamat pemesanan Kota pemesanan Kecamatan pemasok Kelurahan pemasok Kode pos pemasok
Tipe dan Panjang Data
Nulls
Multivalued
Char 7
No
No
Datetime
No
No
Varchar 30
No
No
Char 1
No
No
Varchar 40
No
No
Varchar 100 Varchar 20 Varchar 20 Varchar 20 Char 5
No No Yes Yes No
No No No No No
88 2.
BahanBaku Tabel 3.5Atribut-Atribut BahanBaku Atribut
Deskripsi
KdBahanBaku NamaBahanBaku KdTipeBahan TipeBahanBaku KdSatuanBahan SatuanBahanBaku Harga Stok StokMin
3.
Kode dari bahan baku Nama bahan baku Kode dari tipe bahan baku Tipe dari bahan baku Kode dari satuan bahan baku Satuan yang dimiliki bahan baku (cm/mm/pcs) Harga terkini dari bahan baku Stok dari bahan baku Stok minimal dari bahan baku
Tipe dan Panjang Data
Nulls
Multi valued
Char 5 Varchar 40
No No
No No
Char 3
No
No
Varchar 20
No
No
Char 3
No
No
Varchar 5
No
No
Integer
No
No
SmallInteger
No
No
SmallInteger
No
No
RumusBahanBaku Tabel 3.6 Atribut – Atribut RumusBahanBaku Atribut
KdRumus NamaRumus SatuanRumus RumusUkuran Gambar Deskripsi
Deskripsi Kode rumus bahan baku Nama dari rumus Satuan dari bahan baku Rumus menghitung ukuran dari bahan baku yang diperlukan Image path dari gambar kusen pintu jendela Keterangan mengenai rumus
Tipe dan Panjang Data
Nulls
Multivalued
Char 5 Varchar 20 Char 1
No No No
No No No
Varchar100
No
No
Varchar 30
No
No
Varchar 100
No
No
89 4.
Produksi
Atribut KdProduksi NamaBarang TglMulaiProduksi StatusProduksi JumlahProduksi UkTinggi UkLebar HargaProduksi 5.
Tabel 3.7Atribut-Atribut Produksi Tipe dan Deskripsi Nulls Panjang Data Kode dari produksi Nama barang yang diproduksi Tanggal mulai produksi Status dari produksi Jumlah barang yang diproduksi Ukuran tinggi produksi Ukuran lebar produksi Biaya yang diperlukan untuk produksi
Multivalued
Char 7
No
No
Varchar 20
No
No
Datetime
No
No
Char 1
No
No
SmallInteger
No
No
Small Integer No
No
Small Integer No
No
Integer
No
No
Kontrak Tabel 3.8Atribut-Atribut Kontrak Atribut
KdKontrak Spesifikasi Keterangan TglKontrak StatusKontrak Diskon
Deskripsi Nomor dari kontrak Spesifikasi dari produk yang ditawarkan Keterangan kontrak Tanggal dibuatnya kontrak Status dari kontrak Besarnya diskon yang diberikan
Tipe dan Panjang Data
Nulls
Multivalued
Char 7
No
No
Varchar 200
No
No
Varchar 200
No
No
Datetime
No
No
Char 1
No
No
TinyInteger
No
No
90 6.
Pemesanan Tabel 3.9Atribut-Atribut Pemesanan Atribut
Deskripsi Nomor faktur dari pemesanan Tanggal dibuatnya PO
KdPemesanan TglPemesanan 7.
Tipe dan Panjang Data
Nulls
Multivalued
Char 7
No
No
Datetime
No
No
PembayaranPemesanan Tabel 3.10Atribut-Atribut PembayaranPemesanan Atribut
Deskripsi
Tipe dan Panjang Data
Kode dari pembayaran Char 7 pemesanan Tanggal dari TglPembPemesanan Datetime pembayaran Jumlah yang Jumlah Bayar dibayarkan untuk Integer pemesanan produk 8. RancanganKusen KdPembPemesanan
Nulls
Multivalued
No
No
No
No
No
No
Tabel 3.11Atribut-Atribut RancanganKusen Atribut KdRancangan TglRancangan GmbRancangan StatusRancangan UkLubang UkJendela Keterangan
Deskripsi Kode rancangan kusen Tanggal dibuatnya rancangan Image path dari gambar rancangan Status dari rancangan Ukuran lubang Ukuran jendela Keterangan tambahan untuk rancangan
Tipe dan Panjang Data
Nulls
Multivalued
Char 7
No
No
Datetime
No
No
Varchar 30
No
No
Char 1 Varchar 15 Varchar 15
No No No
No No No
Varchar 100
No
No
91 9.
TargetProduksi Tabel 3.12Atribut-Atribut TargetProduksi Atribut
Deskripsi Tanggal dari pemasangan Tanggal dari pemasangan Keterangan dari pemasangan
TglPengiriman TglPemasangan Keterangan
10.
Tipe dan Panjang Data
Nulls
Multivalued
Date
No
No
Date
No
No
Varchar 100
No
No
TugasProduksi Tabel 3.13Atribut-Atribut TugasProduksi
Atribut KdTugas Keterangan Deadline StatusTugas TglMulai TglSelesai DeskTugas
Deskripsi Kode dari pembagian Keterangan tugas secara keseluruhan Tanggal batas pengerjaan Status pengerjaan Tanggal mulai pengerjaan Tanggal selesai pengerjaan Deskripsi dari setiap tugas yang diberikan
Tipe dan Panjang Data
Nulls
Multivalued
Char 7
No
No
Varchar 100
No
No
Datetime
No
No
Char 1
No
No
Datetime
No
No
Datetime
No
No
Varchar(80)
No
No
92 11.
PengambilanBahanBaku Tabel 3.14Atribut-Atribut PengambilanBahanBaku
Atribut
Deskripsi
KdPengambilan TglPengambilan JumlahAmbil
12.
Tipe dan Panjang Data
Nulls
Kode pengambilan Char 7 bahan baku Tanggal pengambilan Datetime Jumlah bahan baku yang SmallInteger diambil
Multivalued
No
No
No
No
No
No
BarangJadi Tabel 3.15Atribut-Atribut BarangJadi
Atribut
Deskripsi
KdBarangJadi Kode dari barang jadi TglBarangMasuk Tanggal barang masuk StatusBarangJadi Status dari barang jadi 13.
Tipe dan Panjang Data
Nulls
Char 7 Datetime Char 1
No No No
Multivalued No No No
PengajuanPembelian Tabel 3.16Atribut-Atribut PengajuanPembelian Atribut
KdPengajuan TglPengajuan StatusPengajuan JumlahAju
Deskripsi Kode pengajuan Tanggal pengajuan Status dari pengajuan Jumlah barang yang diajukan
Tipe dan Panjang Data
Nulls
Multivalued
Char 7 Datetime Char 1
No No No
No No No
SmallInteger
No
No
93 14.
Pembelian Tabel 3.17Atribut-Atribut Pembelian Atribut
Deskripsi
KdPembelian TglPembelian HargaBeli JumlahBeli TotalPembelian StatusPembelian 15.
Kode dari pembelian Tangal pembelian Harga barang yang dibeli Jumlah barang yang dibeli Diperoleh dari HargaBeli * JumlahBeli Status dari pembelian
Tipe dan Panjang Data
Nulls
Multivalued
Char 7 Datetime
No No
No No
Integer
No
No
SmallInteger
No
No
Derived
-
-
Char 1
No
No
PembayaranPembelian Tabel 3.18Atribut-Atribut PembayaranPembelian Atribut
Deskripsi
Kode dari pembayaran pembelian Tanggal pembayaran TglPembPembelian pembelian Jumlah yang JumlahBayar dibayarkan untuk pembelian bahan baku KdPembPembelian
Tipe dan Panjang Data
Nulls
Multivalued
Char 7
No
No
Datetime
No
No
Integer
No
No
94 16.
ReturPembelian Tabel 3.19Atribut-Atribut ReturPembelian
Atribut KdReturPemb TglRetur StatusRetur JumlahRetur AlasanRetur 17.
Deskripsi Nomor retur pembelian Tanggal retur pembelian Status retur Jumlah barang yang diretur Alasan retur barang
Tipe dan Panjang Data
Nulls
Multivalued
Char 7 Datetime Char 1
No No No
No No No
SmallInteger
No
No
Varchar 50
No
No
Pemasok Tabel 3.20Atribut-Atribut Pemasok Atribut
Deskripsi
Tipe dan Panjang Data
Nulls
Multivalued
KdPem
Kode pemasok
Char 5
No
No
NamaPem
Nama dari pemasok
Varchar 40
No
No
AlamatPem
Alamat dari pemasok
Varchar 100
No
No
KotaPem
Kota pemasok
Varchar 20
No
No
KecPem
Kecamatan pemasok
Varchar 20
Yes
No
KelPem
Kelurahan pemasok
Varchar 20
Yes
No
KdPosPem
Kode pos pemasok
Char 5
No
No
EmailPem
E-mail dari pemasok
Varchar 50
Yes
No
TelpPem
Nomor Telpon pemasok
Varchar 15
No
Yes
FaxPem
Nomor fax pemasok
Varchar 15
Yes
No
95 18.
Pelanggan Tabel 3.21Atribut-Atribut Pelanggan Atribut
Deskripsi
Tipe dan Panjang Data
Nulls
Multivalued
KdPel
Kode untuk pelanggan
Char 5
No
No
NamaPel
Nama dari pelanggan
Varchar 40
No
No
AlamatPel
Alamat dari pelanggan
Varchar 100
No
No
KotaPel
Kota pelanggan
Varchar 20
No
No
KecPel
Kecamatan pelanggan
Varchar 20
Yes
No
KelPel
Kelurahan pelanggan
Varchar 20
Yes
No
KdPosPel
Kode pos pelanggan
Char 5
No
No
EmailPel
E-mail dari pelanggan
Varchar 50
No
No
Varchar 15
No
Yes
Varchar 15
Yes
No
TelpPel FaxPel
19.
Nomor Telpon pelanggan Nomor fax pelanggan
Pengiriman Tabel 3.22Atribut-Atribut Pengiriman Atribut
Deskripsi
Tipe dan Panjang Data
Nulls
Multivalued
KdPengiriman
Kode dari pengiriman
Char 7
No
No
TglPengiriman
Tanggal pengiriman
Datetime
No
No
Char 1
No
No
StatusPengiriman Status dari pengiriman
96 20.
Pemasangan Tabel 3.23Atribut-Atribut Pemasangan Atribut
Deskripsi
KdPemasangan TglPemasangan
Kode dari pemasangan Tanggal pemasangan Image path dari gambar FotoHasil pemasangan StatusPemasangan Status dari pemasangan 21.
Tipe dan Panjang Data
Nulls
Multivalued
Char 7 Datetime
No No
No No
Varchar 30
No
No
Char 1
No
No
Karyawan Tabel 3.24Atribut-Atribut Karyawan Atribut
Deskripsi
Tipe dan Panjang Data
Nulls
Multivalued
KdKar
Kode karyawan
Char 5
No
No
NamaKar
Nama dari karyawan
Varchar 40
No
No
Char 3
No
No
Varchar 40 Varchar 100 Varchar 20 Varchar 20 Varchar 20 Char 5 Varchar 50
No No No Yes Yes No No
No No No No No No No
Varchar 15
No
Yes
Char 1
No
No
Varchar 20
No
No
KdPosisi PosisiKar AlamatKar KotaKar KecKar KelKar KdPosKar EmailKar TelpKar JenisKelamin FotoKar
Kode dari posisi karyawan Posisi dari karyawan Alamat dari karyawan Kota karyawan Kecamatan karyawan Kelurahan karyawan Kode pos karyawan E-mail dari karyawan Nomor Telpon karyawan Jenis kelamin dari karyawan Image path dari foto karyawan
97 3.3.1.4. Menentukan Domain Atribut Tujuannyauntukmenentukandomainbagiatribut-atributdalam
model
datakonseptual. Berikut adalah domain-domain yang diidentifikasikan untuk setiap atribut pada entitas: 1.
PengajuanPemesanan Tabel 3.25Domain Atribut PengajuanPemesanan
Nama Atribut
Domain Atribut
Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’O’ yang mengidentifikasikan order, huruf kedua menentukan KdPengPemesanan urutan KdPengPemesanan dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 199999 TglPengPemesanan Datetime Varchar dengan panjang 30 karakter, terdiri dari GmbPengPemesanan karakter ’A-Z’, ’a-z’, ’0-9’, ’/’ dan ’-’ Char dengan panjang 1 karakter, terdiri dari karakter ’P’ yang menyatakan pending, ’A’ yang StatusPengPemesanan menyatakan approved, ’R’ yang menyatakan rejected, dan ’D’ yang menyatakan deal Varchar dengan panjang 40 karakter, terdiri dari NamaProyek karakter ’A-Z’, ’a-z’, dan ’0-9’ Varchar dengan panjang 100 karakter, terdiri dari AlamatPemesanan karakter ’A-Z’, ’a-z ’, ’ ’(spasi) dan ’0-9’ Varchar dengan panjang 20 karakter, terdiri dari KotaPemesanan karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Varchar dengan panjang 20 karakter, terdiri dari KecPemesanan karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Varchar dengan panjang 20 karakter, terdiri dari KelPemesanan karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Char dengan panjang 5 karakter, terdiri dari KdPosPemesanan angka ’0-9’
98 2.
BahanBaku Tabel 3.26Domain Atribut BahanBaku
Nama Atribut
Domain Atribut Char dengan panjang 5 karakter, dua karakter pertama huruf,
KdBahanBaku
huruf
pertama
adalah
’M’
yang
mengidentifikasikan material, huruf kedua menentukan urutan KdBahanBaku dengan nilai A-Z, tiga karakter selanjutnya berupa angka dengan nilai 1-999
NamaBahanBaku
KdTipeBahan
TipeBahanBaku
KdSatuanBahan
Varchar dengan panjang 40 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’ ’(spasi), ’-’, dan ’_’ Char
dengan
panjang
3
karakter,
terdiri
dari
karakter ’A-Z’, ’a-z ’, dan ’0-9’ Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z’, dan ’0-9’ Char
dengan
panjang
3
karakter,
terdiri
dari
karakter ’A-Z’, ’a-z ’, dan ’0-9’ Varchar dengan panjang 5 karakter, terdiri dari
SatuanBahanBaku karakter
’A-Z’,
’a-z’,
’.’,
dan
contohnya: ’100cm’, ’5m’, ’0.5mm’, ’pcs’ Harga
Integer
Stok
Small Integer
StokMin
Small Integer
’0-9’
,
99 3.
RumusBahanBaku Tabel 3.27Domain Atribut RumusBahanBaku
Nama Atribut
Domain Atribut Char dengan panjang 5 karakter, dua karakter pertama huruf,
KdRumus
huruf
pertama
adalah
’F’
yang
mengidentifikasikan formula, huruf kedua menentukan urutan KdRumus dengan nilai A-Z, tiga karakter selanjutnya berupa angka dengan nilai 1-999
NamaRumus
Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’-’, ’_’ dan ’ ’(spasi) Char dengan panjang 1 karakter, terdiri dari karakter ’H’
SatuanRumus
yang
menyatakan
’height’
,
’W’
yang
menyatakan ’width’ dan ’-’ yang menyatakan tidak memiliki satuan
RumusUkuran
Gambar
Deskripsi
Varchar dengan panjang 100 karakter, terdiri dari karakter ’w’, ’l’, ’0-9’, ’/’ , ’-’ , '+' , 'x' Varchar dengan panjang 30 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’/’ dan ’-’ Varchar dengan panjang 100 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’/’, ’-’, ’.’, dan ’,’
100 4.
Produksi Tabel 3.28Domain Atribut Produksi
Nama Atribut
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’R’ yang
KdProduksi
mengidentifikasikan
production,
huruf
kedua
menentukan urutan KdProduksi dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999
NamaBarang TglMulaiProduksi
varchar dengan panjang 40 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’ ’(spasi), ’-’, dan ’_’ Datetime Char dengan panjang 1 karakter, terdiri dari
StatusProduksi
karakter ’D’ yang menyatakan delay, ’P’ yang menyatakan production, dan ’F’ yang menyatakan finish
JumlahProduksi
Small Integer
UkTinggi
Small Integer
UkLebar
Small Integer
HargaProduksi
Integer
101 5.
Kontrak Tabel 3.29Domain Atribut Kontrak
Nama Atribut
KdKontrak
Spesifikasi Keterangan TglKontrak StatusKontrak Diskon 6.
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’K’ yang mengidentifikasikan contract, huruf kedua menentukan urutan KdKontrak dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999 Varchar dengan panjang 200 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’.’, ’ ’(spasi), dan ’,’ Varchar dengan panjang 200 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’.’, ’ ’(spasi), dan ’,’ Datetime Char dengan panjang 1 karakter, terdiri dari karakter ’P’ yang menyatakan pending , ’R’ yang menyatakan rejected, dan ’A’ yang menyatakan approved Tiny Integer
Pemesanan Tabel 3.30Domain Atribut Pemesanan
Nama Atribut
KdPemesanan
TglPemesanan
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’P’ yang mengidentifikasikan Purchase Order, huruf kedua menentukan urutan KdPemesanan dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999 Datetime
102 7.
PembayaranPemesanan Tabel 3.31Domain Atribut PembayaranPemesanan
Nama Atribut
Domain Atribut
KdPembPemesanan
TglPembPemesanan JumlahBayar
8.
Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’M’ yang mengidentifikasikan pembayaran pemesanan, huruf kedua menentukan urutan KdPembPemesanan dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999 Datetime Integer
RancanganKusen Tabel 3.32Domain Atribut RancanganKusen
Nama Atribut
KdRancangan
TglRancangan GmbRancangan StatusRancangan UkLubang UkJendela
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’D’ yang mengidentifikasikan design, huruf kedua menentukan urutan KdRancangan dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999 Datetime Varchar dengan panjang 30 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’/’ dan ’-’ Char dengan panjang 1 karakter, berisikan karakter ’A’ yang menyatakan approved, dan ’R’ yang menyatakan rejected Varchar dengan panjang 15 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, contoh : ’1000cm’ Varchar dengan panjang 15 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, contoh : ’1000cm’
103 9.
TargetProduksi Tabel 3.33Domain Atribut TargetProduksi
Nama Atribut
Domain Atribut
TglPengiriman
Date
TglPemasangan
Date Varchar dengan panjang 100 karakter, terdiri dari
Keterangan
10.
karakter ’A-Z’, ’a-z’ dan ’0-9’
TugasProduksi Tabel 3.34Domain Atribut TugasProduksi
Nama Atribut
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’T’ yang
KdTugas
mengidentifikasikan task, huruf kedua menentukan urutan KdPembagian dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 199999
Keterangan Deadline
Varchar dengan panjang 100 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’.’, ’ ’(spasi), dan ’,’ Datetime Char dengan panjang 1 karakter, terdiri dari
StatusTugas
karakter ’W’ yang menyatakan working , dan ’D’ yang menyatakan done
TglMulai
Datetime
TglSelesai
Datetime
DeskTugas
Varchar dengan panjang 80 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’.’, ’ ’(spasi), dan ’,’
104 11.
PengambilanBahanBaku Tabel 3.35Domain Atribut PengambilanBahanBaku
Nama Atribut
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’A’ yang
KdPengambilan
mengidentifikasikan take, huruf kedua menentukan urutan KdPengambilan dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 199999
TglPengambilan
Datetime
JumlahAmbil
Small Integer
12.
BarangJadi Tabel 3.36 Domain Atribut BarangJadi
Nama Atribut
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’G’ yang
KdBarangJadi
mengidentifikasikan
goods,
huruf
kedua
menentukan urutan KdBarangJadi dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999
TglBarangMasuk
Datetime Char dengan panjang 1 karakter , terdiri dari
StatusBarangJadi
karakter ’R’ yang menyatakan ready dan ’S’ yang menyatakan sent
105 13.
PengajuanPembelian Tabel 3.37Domain Atribut PengajuanPembelian
Nama Atribut
KdPengajuan
TglPengajuan StatusPengajuan JumlahAju 14.
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’Q’ yang mengidentifikasikan request, huruf kedua menentukan urutan KdPengajuan dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999 Datetime Char dengan panjang 1 karakter, terdiri dari karakter ’P’ yang menyatakan pending, ’A’ yang menyatakan approved, dan ’R’ yang menyatakan rejected Small Integer
Pembelian Tabel 3.38Domain Atribut Pembelian
Nama Atribut
KdPembelian
TglPembelian HargaBeli JumlahBeli StatusPembelian
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’B’ yang mengidentifikasikan purchase, huruf kedua menentukan urutan KDPembelian dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999 Datetime Integer Small Integer Char dengan panjang 1 karakter, terdiri dari karakter ’P’ yang menyatakan pending, ’A’ yang menyatakan approved, ’R’ yang menyatakan rejected, dan’V’ yang menyatakan verified
106 15.
PembayaranPembelian Tabel 3.39Domain Atribut PembayaranPembelian
Nama Atribut
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’Y’ yang
KdPembPembelian
mengidentifikasikan pembayaran pembelian, huruf kedua
menentukan
urutan
KdPembPemesanan
dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999 TglPembPembelian
Datetime
JumlahBayar
Integer
16.
ReturPembelian Tabel 3.40Domain Atribut ReturPembelian
Nama Atribut
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’N’ yang
KdReturPemb
mengidentifikasikan
return,
huruf
kedua
menentukan urutan KdReturPemb dengan nilai A-Z, lima karakter selanjutnya berupa angka dengan nilai 1-99999
TglRetur
Datetime Char dengan panjang 1 karakter, terdiri dari
StatusRetur
karakter ’P’ yang menyatakan pending, ’A’ yang menyatakan
approved,
’R’
yang
menyatakan
rejected, dan’V’ yang menyatakan verified JumlahRetur AlasanRetur
Small Integer Varchar dengan panjang 200 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’.’, ’ ’(spasi), dan ’,’
107 17.
Pemasok Tabel 3.41Domain Atribut Pemasok
Nama Atribut
KdPem
NamaPem AlamatPem KotaPem KecPem KelPem KdPosPem
EmailPem
TelpPem FaxPem KategoriPem
Domain Atribut Char dengan panjang 5 karakter, dua karakter pertama huruf, huruf pertama adalah ’S’ yang mengidentifikasikan supplier, huruf kedua menentukan urutan KdPemasok dengan nilai A-Z, tiga karakter selanjutnya berupa angka dengan nilai 1-999 Varchar dengan panjang 40 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Varchar dengan panjang 100 karakter, terdiri dari karakter ’A-Z’, ’a-z ’, ’ ’(spasi) dan ’0-9’ Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Varchar dengan panjang 20 karakter, karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi)
berisikan
Char dengan panjang 5 karakter, terdiri dari angka ’0-9’ Varchar dengan panjang 50 karakter, tersusun atas kombinasi karakter yang diawali dengan karakter huruf ’A-Z’ dan ’a-z’ diikuti dengan kombinasi karakter ’A-Z’, ’a-z’, ’0-9’ dan maksimal satu karakter ’.’, yang kemudian diikuti dengan karakter ’@’, karakter ’@’ dan ’.’ tidak boleh bersampingan, selanjutnya diikuti lagi dengan karakter ’A-Z’, ’a-z’, dan ’0-9’ kemudian diberi tanda ’.’, selanjutnya diakhiri dengan karakter ’A-Z’, ’a-z’, dan ’0-9’ Varchar dengan panjang 15 karakter, terdiri dari angka ’0-9’ varchar dengan panjang 15 karakter, terdiri dari angka ’0-9’ Varchar dengan panjang 15 karakter, terdiri dari karakter ’A-Z’, ’a-z’ dan ’0-9’
108 18.
Pelanggan Tabel 3.42Domain Atribut Pelanggan
Nama Atribut
KdPel
NamaPel AlamatPel KotaPel KecPel KelPel KdPosPel
EmailPel
TelpPel FaxPel
Domain Atribut Char dengan panjang 5 karakter, dua karakter pertama huruf, huruf pertama adalah ’C’ yang mengidentifikasikan customer, huruf kedua menentukan urutan KdPelanggan dengan nilai’A-Z’, tiga karakter selanjutnya berupa angka dengan nilai 1-999. Varchar dengan panjang 40 karakter, terdiri dari karakter ’A-Z’, ’a-z ’, dan ’ ’(spasi). Varchar dengan panjang 100 karakter, terdiri dari karakter ’A-Z’, ’a-z ’, ’ ’(spasi) dan ’0-9’. Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi). Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi). Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi). Char dengan panjang 5 karakter, terdiri dari angka ’0-9’. Varchar dengan panjang 50 karakter, tersusun atas kombinasi karakter yang diawali dengan karakter huruf ’A-Z’ dan ’a-z’ diikuti dengan kombinasi karakter ’A-Z’, ’a-z’, ’0-9’ dan maksimal satu karakter ’.’, kemudian diikuti dengan karakter ’@’, karakter ’@’ dan ’.’ tidak boleh bersampingan, selanjutnya diikuti lagi dengan karakter ’A-Z’, ’a-z’, dan ’0-9’ kemudian diberi tanda ’.’, selanjutnya diakhiri dengan karakter ’A-Z’, ’a-z’, dan ’0-9’. Varchar dengan panjang 15 karakter, terdiri dari angka ’0-9’. Varchar dengan panjang 15 karakter, terdiri dari angka ’0-9’.
109 19.
Pengiriman Tabel 3.43Domain Atribut Pengiriman
Nama Atribut
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’V’ yang mengidentifikasikan deliver, huruf kedua menentukan urutan KdPengiriman dengan nilai’AZ’, limakarakter selanjutnya berupa angka dengan nilai 1-99999 Datetime Char dengan panjang 1 karakter, terdiri dari karakter ’P’ yang menyatakan pending, ’S’ yang menyatakan sending, dan ’D’ yang menyatakan done
KdPengiriman
TglPengiriman StatusPengiriman
20.
Pemasangan Tabel 3.44Domain Atribut Pemasangan
Nama Atribut
KdPemasangan
TglPemasangan FotoHasil
StatusPemasangan
Domain Atribut Char dengan panjang 7 karakter, dua karakter pertama huruf, huruf pertama adalah ’I’ yang mengidentifikasikan installation, huruf kedua menentukan urutan KdPemasangan dengan nilai AZ, lima karakter selanjutnya berupa angka dengan nilai 1-99999 Datetime Varchar dengan panjang 30 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’/’ dan ’-’ Char dengan panjang 1 karakter, terdiri dari karakter ’P’ yang menyatakan pending, ’I’ yang menyatakan installing, dan ’D’ yang menyatakan done
110 21.
Karyawan Tabel 3.45Domain Atribut Karyawan
Nama Atribut
KdKar
NamaKar KdPosisi PosisiKar AlamatKar KotaKar KecKar KelKar KdPosKar
EmailKar
TelpKar JenisKelamin FotoKar
Domain Atribut Char dengan panjang 5 karakter, dua karakter pertama huruf, huruf pertama adalah ’E’ yang mengidentifikasikan employee, huruf kedua menentukan urutan KdKaryawan dengan nilai A-Z, tiga karakter selanjutnya berupa angka dengan nilai 1-999 Varchar dengan panjang 40 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Char dengan panjang 3 karakter, terdiri dari karakter ’AZ’, ’a-z ’, dan ’0-9’ Varchar dengan panjang 40 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Varchar dengan panjang 100 karakter, terdiri dari karakter ’A-Z’, ’a-z ’, ’ ’(spasi) dan ’0-9’ Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z ’ dan ’ ’(spasi) Char dengan panjang 5 karakter, terdiri dari angka ’0-9’ Varchar dengan panjang 50 karakter, tersusun atas kombinasi karakter yang diawali dengan karakter huruf ’A-Z’ dan ’a-z’ diikuti dengan kombinasi karakter ’A-Z’, ’a-z’, ’0-9’ dan maksimal satu karakter ’.’, yang kemudian diikuti dengan karakter ’@’, karakter ’@’ dan ’.’ tidak boleh bersampingan, selanjutnya diikuti lagi dengan karakter ’A-Z’, ’a-z’, dan ’0-9’, kemudian diberi tanda ’.’, selanjutnya diakhiri dengan karakter ’A-Z’, ’a-z’, dan ’0-9’ Varchar dengan panjang 15 karakter, terdiri dari angka ’0-9’ Char dengan panjang 1 karakter, terdiri dari karakter ’M’ yang menyatakan laki-laki dan ’F’ yang menyatakan perempuan Varchar dengan panjang 20 karakter, terdiri dari karakter ’A-Z’, ’a-z’, ’0-9’, ’/’ dan ’-’
111 3.3.1.5. Menentukan Atribut-Atribut Candidate, Primary, dan Alternate Key Tujuannya untuk mengidentifikasikan candidate key untuk setiap tipe entitas dan jika terdapat lebih dari satu candidate key, memilih salah satu sebagai primary key dan sisanya sebagai alternate key. Terdapat beberapa panduan dalam memilih primary keydi antara sejumlah candidate key, yaitu: a.
Candidate key dengan kumpulan atribut yang minimal
b.
Candidate key yang nilainya jarang berubah
c.
Candidate key dengan karakter-karakter yang paling sedikit (untuk yang memiliki textual attributes)
d.
Candidate key dengan nilai maksimum paling rendah (untuk yang memiliki numerical attributes)
e.
Candidate key yang paling mudah digunakan dari sudut pandang user Dari hasil panduan di atas, maka didapatkan beberapa candidate key dan
sebuah primary key, yaitu: Tabel 3.46Candidate Key dan Primary Key Entity Name
Candidate Key
Primary Key
Pelanggan
KdPel, EmailPel
KdPel
Karyawan
KdKar, EmailKar
KdKar
Pemasok
KdPem, EmailPem
KdPem
RumusBahanBaku
KdRumus
KdRumus
BahanBaku
KdBahanBaku
KdBahanBaku
PengajuanPemesanan
KdPengPemesanan
KdPengPemesanan
TargetProduksi
-
-
Pemesanan
KdPemesanan
KdPemesanan
RancanganKusen
KdRancangan
KdRancangan
Produksi
KdProduksi
KdProduksi
BarangJadi
KdBarangJadi
KdBarangJadi
Pengiriman
KdPengiriman
KdPengiriman
Pemasangan
KdPemasangan
KdPemasangan
Kontrak
KdKontrak
KdKontrak
112 Entity Name
Candidate Key
Primary Key
TugasProduksi
KdTugas
KdTugas
PengambilanBahanBaku
KdPengambilan
KdPengambilan
PengajuanPembelian
KdPengajuan
KdPengajuan
Pembelian
KdPembelian
KdPembelian
ReturPembelian
KdReturPemb
KdReturPemb
PembayaranPembelian
KdPembPembelian
KdPembPembelian
PembayaranPemesanan
KdPembPemesanan
KdPembPemesanan
3.3.1.6. Mempertimbangkan Penggunaan Enhanced Modeling Concept Tujuannya untuk mempertimbangkan penggunaan enhanced modeling concept,
sepertispecialization/generalization, aggregation, dan composition.
Setelah melakukan analisa, ERD yang sudah ada tidak memerlukan penggunaan enhanced modeling concept sehingga tahap ini tidak dilakukan.
3.3.1.7. Memeriksa Model untuk Redundansi Tujuannya untuk memeriksa redundasi yang muncul dalam model. Terdapat tiga hal yang perlu diperiksa dalam langkah ini, yaitu:
a.
Mengecek kembali hubungan satu-satu (1:1)
1.
Pembelian yang memiliki relasi “memiliki” dengan ReturPembelian
Gambar 3.11Redundansi Pembelian dan ReturPembelian Entitas Pembelian dan ReturPembelian adalah dua entitas yang tidak bisa digabung karena masing-masing merupakan dua object yang berbeda dalam perusahaan. 2.
PengajuanPemesanan yang memiliki relasi “mengakibatkan” dengan Pemesanan.
113
Gambar 3.12Redundansi PengajuanPemesan dan Pemesanan Dalam
hal
ini,
entitas
PengajuanPemesanan
dan
Pemesanan
merepresentasikan entitas yang sama dalam perusahaan, sehingga pada tahap
ini
dilakukan
penggabungan
PengajuanPemesanan
dengan
Pemesanan menjadi entitas Pemesanan.
Gambar 3.13Hasil Redundansi PengajuanPemesan dan Pemesanan b.
Menghapus hubungan yang berulang
1.
Relationship “memasang” antara entitas Pemasangan dan Pelanggan
Gambar 3.14Redundansi Hubungan Memasang
Relationship memasang antara entitas Pemasangan dan Pelanggan merupakan hubungan yang redundant karena hubungan memasang tersebut tidak memberikan informasi tambahan antara entitas Pemasangan
114 dan Pelanggan yang dapat diperoleh dengan lebih tepat melalui entitas Pemesanan.Oleh karena itu, relationship memasang dapat dihilangkan untuk memperoleh model yang minimal.
Gambar 3.15Hasil Redundansi Hubungan Memasang 2.
Relationship “menuju” antara entitas Pengiriman dan Pelanggan
Gambar 3.16Redundansi Hubungan Menuju Relationship menuju antara entitas Pengiriman dan Pelanggan merupakan hubungan yang redundant karena hubungan menuju tersebut tidak memberikan informasi tambahan antara Pengiriman dan Pelanggan yang dapat diperoleh dengan lebih tepat melalui entitas
Pemesanan. Oleh
karena itu, relationship menuju dapat dihilangkan untuk memperoleh model yang minimal.
115
Gambar 3.17Hasil Redundansi Hubungan Menuju 3.
Relationship “menandatangani” antara entitas Pelanggan dan Kontrak
Gambar 3.18Redundansi Hubungan Menandatangani Relationship menandatangani antara entitas Pelanggan dan Kontrak merupakan hubungan yang redundant karena hubungan menandatangani tersebut tidak memberikan informasi tambahan antara Kontrak dan Pelanggan yang dapat diperoleh dengan lebih tepat melalui entitas Pemesanan. Oleh karena itu, relationship menuju dapat dihilangkan untuk memperoleh model yang minimal.
116
Gambar 3.19Hasil Redundansi Hubungan Menandatangani Berikut
adalah
ERD
yang
sudah
disederhanakan
melalui
pengidentifikasian hubungan yang redundant dari model dan penambahan primary key pada setiap entitas:
117
Gambar 3.20ERD Setelah Bab 3.3.1.7
118 3.3.1.8. Memvalidasikan Model Konseptual terhadap Transaksi-Transaksi Pengguna Tujuannyauntukmemastikanmodelkonseptualmendukungtransaksi yangdibutuhkan.Terdapat dua pendekatan yang bisa digunakan untuk mendukung tujuan ini, yaitu: a.
Mendeskripsikan transaksi-transaksi
1.
Data entries dan data updates
2.
1.
Memasukkan dan mengubah data pengajuan pemesanan
2.
Memasukkan dan mengubah data pelanggan
3.
Memasukkan dan mengubah data rumus bahan baku
4.
Memasukkan dan mengubah data produksi
5.
Memasukkan dan mengubah data kontrak
6.
Memasukkan dan mengubah data rancangan kusen pintu jendela
7.
Memasukkan dan mengubah data pemesanan
8.
Memasukkan dan mengubah data target produksi
9.
Memasukkan dan mengubah data tugas produksi
10.
Memasukkan dan mengubah data pengambilan bahan baku
11.
Memasukkan dan mengubah data barang jadi
12.
Memasukkan dan mengubah data bahan baku
13.
Memasukkan dan mengubah data pemasok
14.
Memasukkan dan mengubah data pengajuan pembelian
15.
Memasukkan dan mengubah data pembelian
16.
Memasukkan dan mengubah data retur pembelian
17.
Memasukkan dan mengubah data pengiriman
18.
Memasukkan dan mengubah data pemasangan
19.
Memasukkan dan mengubah data karyawan
20.
Memasukkan dan mengubah data pembayaran pemesanan
21.
Memasukkan dan mengubah data pembayaran pembelian
Data queries 1.
Menampilkan pengajuan pemesanan berdasarkan identitas pelanggan
2.
Menampilkan data bahan baku berdasarkan rumus bahan baku
119 3.
Menampilkan
data
produksi
berdasarkan
nomor
pengajuan
pemesanan 4.
Menampilkan rancangan kusen pintu jendela berdasarkan nomor pengajuan pemesanan
5.
Menampilkan kontrak sesuai dengan pemesanan yang diajukan
6.
Menampilkan pemesanan yang dibuat oleh karyawan
7.
Menampilkan target produksi berdasarkan nomor pengajuan pemesanan
8.
Menampilkan data tugas produksi dan nama karyawan yang terlibat didalamnya
9.
Menampilkan data pengambilan bahan baku berdasarkan nama karyawan
10.
Menampilkan data barang jadi berdasarkan kode produksi
11.
Menampilkan data pembelian berdasarkan nomor pengajuan pembelian
12.
Menampilkan data retur pembelian berdasarkan nomor pembelian
13.
Menampilkan data pengiriman berdasarkan nomor pengajuan pemesanan
14.
Menampilkan data pemasangan berdasarkan nomor pengajuan pemesanan
15.
Menampilkan detil pengajuan pemesanan yang dibuat berdasarkan data karyawan
16.
Menampilkan kontrak yang diurus oleh karyawan
17.
Menampilkan data pengajuan pembelian yang diajukan oleh karyawan
18.
Menampilkan data pembelian yang dibuat oleh karyawan
19.
Menampilkan data retur pembelian yang diurus oleh karyawan
20.
Menampilkan data pengiriman dan karyawan yang terlibat di dalamnya
21.
Menampilkan data pemasangan yang dilakukan oleh karyawan
22.
Menampilkan data barang jadi yang dikirim
120 23.
Menampilkan rumus yang digunakan untuk produksi
24.
Menampilkan pembagian tugas sesuai dengan nomor produksi
25.
Menampilkan bahan baku yang dibeli melalui pembelian
26.
Menampilkan pembelian berdasarkan nama pemasok
27.
Menampilkan daftar bahan baku dalam pengajuan pembelian
28.
Menampilkan daftar bahan baku dalam retur pembelian
29.
Menampilkan daftar bahan baku dalam pengambilan bahan baku
30.
Menampilkan data pembayaran pemesanan berdasarkan nama karyawan yang mengurusnya dan nomor pemesanan
31.
Menampilkan data pembayaran pembelian berdasarkan nama karyawan yang mengurusnya dan nomor pembelian
121 b.
Menggunakan alur-alur transaksi
Gambar 3.21Transaction Pathways
122 3.3.1.9. Meninjau Kembali Model Data Konseptual denganPengguna Tujuannyauntukmeninjau kembali model data konseptual dengan pengguna untuk memastikan bahwa model tersebut merupakan representasi dari keperluan data perusahaan. Setelah melakukan pembahasan kembali dengan pengguna, model tersebut sudah memenuhi keperluan dan permintaan dari pengguna.
3.3.2. Pemilihan Database Management System Tujuannya untuk memilih Database Management System yang tepat dan bisa mendukung sistem basis data. Berikut merupakan perbandingan dari tiga DBMS yang ditemukan, yaitu MySql, MicrosoftSQLServer, dan Microsoft Access.
Tabel 3.47Perbandingan DBMS Perbandingan
MySql
Microsoft SQL Server
Ms Access
Sistem operasi
Windows, Mac OS, Linux, UNIX
Windows
Windows, Mac OS
Lisensi
Gratis
Berbayar
Berbayar
4GB
2GB
64KB
Tidak terbatas
524,258 TB
2GB
64 karakter
128 karakter
Tidak diketahui
64KB
Tidak terbatas
16MB
4096 kolom
30000 kolom
255 kolom
64 bits
126bits
32bits
64KB
2GB
255B
Ukuran maksimal blob atau clob Ukuran maksimal basis data Ukuran maksimal nama kolom Ukuran maksimal baris Maksimal kolom per baris Ukuran maksimal tipe data number Ukuran maksimal tipe data character
123 Setelah melakukan perbandingan antar ketiga DBMS tersebut, dapat disimpulkan bahwaMySql merupakan DBMS yang paling cocok untuk aplikasi basis data PT Luxus Indo Prima karena memiliki kapasitas penyimpanan yang memadai dan berlisensi gratis. Selain itu, MySQL juga mendukung tahapan normalisasi yang akan diidentifikasikan berikutnya. Normalisasi dapat mengatasi masalah redundansi sehingga dapat mengurangi penggunaan ruang penyimpanan, memungkinkan data agar dapat disimpan dengan lebih baik dan memudahkan pencarian, serta dapat meningkatkan integritas data.Hal ini dapat menjawab masalah penyimpanan dan integritas data yang dialami oleh PT Luxus Indo Prima. Engine yang dipilih dari MySQL yaitu innoDB karena innoDB mendukung foreign key constraint, serta dapat menjalakan perintah commit dan rollback.Selain itu, innoDB juga memungkinkan pemulihan dari kerusakan yang terjadi. Pemulihan bisa dilakukan dengan menjalankan ulang (restart) MySQL, kemudian innoDB akan melakukan pemeriksaan terhadap logs dan kembali pada kondisi ketika transaksi yang terakhir belum dijalankan. Selama proses pemulihan, MySQL akan menampilkan perintah seperti ini:
InnoDB: Database was not shut down normally. InnoDB: Starting recovery from log files... InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 13674004 InnoDB: Doing recovery: scanned up to log sequence number 13739520 InnoDB: Doing recovery: scanned up to log sequence number 13805056 InnoDB: Doing recovery: scanned up to log sequence number 13870592 InnoDB: Doing recovery: scanned up to log sequence number 13936128 ... InnoDB: Doing recovery: scanned up to log sequence number 20555264 InnoDB: Doing recovery: scanned up to log sequence number 20620800 InnoDB: Doing recovery: scanned up to log sequence number 20664692 InnoDB: 1 uncommitted transaction(s) which must be rolled back InnoDB: Starting rollback of uncommitted transactions
0 0 0 0
0 0 0
124 InnoDB: Rolling back trx no 16745 InnoDB: Rolling back of trx no 16745 completed InnoDB: Rollback of uncommitted transactions completed InnoDB: Starting an apply batch of log records to the database... InnoDB: Apply batch completed InnoDB: Started mysqld: ready for connections
3.3.3. Perancangan Basis Data Logikal Perancangan basis data logikal yaitu proses menerjemahkan model data konseptual ke dalam model data logikal dan memvalidasi model ini untuk mengecek bahwa bentuk strukturalnya sudah benar, serta mampu mendukung transaksi yang diperlukan. Hal-hal yang perlu dilakukan dalam tahap ini yaitu membangun dan memvalidasi model data logikal yang meliputi langkah-langkah: 1.
Menurunkan hubungan untuk model data logikal
2.
Memvalidasi relasi dengan menggunakan normalisasi
3.
Memvalidasi relasi dengan user transaction
4.
Memeriksa integrity constraints
5.
Review model data logikal dengan user
6.
Menggabungkan model data logikal ke dalam model global
7.
Mempertimbangkan perkembangan di masa depan
3.3.3.1. Menurunkan Relasi untuk Model Data Logikal Tujuannya untuk menciptakan relasi-relasi untuk model data logikal yang merepresentasikan entitas, relasi, dan atribut yang sudah ditentukan. Hal-hal yang akan muncul dan perlu diidentifikasikan dari yaitu: 1.
Strong Entity 1. Pelanggan (KdPel, NamaPel, AlamatPel, KotaPel, KecPel, KelPel, KdPosPel, EmailPel, TelpPel, FaxPel) PrimaryKey (KdPel)
125 2. Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar,
KecKar,
KelKar,KdPosKar,
EmailKar,
TelpKar,
JenisKelamin, FotoKar) PrimaryKey (KdKar) 3. Pemasok (KdPem, NamaPem, AlamatPem, KotaPem, KecPem, KelPem,KdPosPem, EmailPem, TelpPem, FaxPem) PrimaryKey (KdPem) 4. RumusBahanBaku
(KdRumus,
NamaRumus,
SatuanRumus,
NamaBahanBaku,
KdTipeBahan,
RumusUkuran, Gambar, Deskripsi) PrimaryKey (KdRumus) 5. BahanBaku
(KdBahanBaku,
TipeBahanBaku, KdSatuanBahan, SatuanBahanBaku, Harga, Stok, StokMin) PrimaryKey (KdBahanBaku) 6. Pemesanan
(KdPemesanan,
GmbPengPemesanan,
TglPemesanan,
TglPengPemesanan,
StatusPengPemesanan,
NamaProyek,
AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan) 7. PembayaranPemesanan(KdPembPemesanan,
TglPembPemesnan,
JumlahBayar) PrimaryKey (KdPembPemesanan) 8. RancanganKusen (KdRancangan, TglRancangan, GmbRancangan, StatusRancangan, UkLubang, UkJendela, Keterangan) PrimaryKey (KdRancangan) 9. Produksi
(KdProduksi,
NamaBarang,
TglMulaiProduksi,
StatusProduksi, JumlahProduksi, UkTinggi, UkLebar, HargaProduksi) PrimaryKey (KdProduksi) 10. BarangJadi (KdBarangJadi, TglBarangMasuk, StatusBarangJadi) PrimaryKey (KdBarangJadi)
126 11. Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman) PrimaryKey (KdPengiriman) 12. Pemasangan
(KdPemasangan,
TglPemasangan,
FotoHasil,
StatusPemasangan) PrimaryKey (KdPemasangan) 13. Kontrak (KdKontrak, Spesifikasi, Keterangan, Diskon, TglKontrak, StatusKontrak) PrimaryKey (KdKontrak) 14. TugasProduksi (KdTugas, Keterangan, Deadline, StatusTugas, TglMulai, TglSelesai, DeskTugas) PrimaryKey (KdTugas) 15. PengambilanBahanBaku
(KdPengambilan,
TglPengambilan,
JumlahAmbil) PrimaryKey (KdPengambilan) 16. PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, JumlahAju) PrimaryKey (KdPengajuan) 17. Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli) PrimaryKey (KdPembelian) 18. PembayaranPembelian
(KdPembPembelian,
TglPembPembelian,
JumlahBayar) PrimaryKey (KdPembPembelian) 19. ReturPembelian (KdReturPemb, TglRetur, StatusRetur, AlasanRetur, JumlahRetur) PrimaryKey (KdReturPemb)
2.
Weak Entity 1. TargetProduksi (TglPengiriman, TglPemasangan, Keterangan)
127 3.
Tipe relasi binary one to many (1:*) Relasi ini diatasi dengan menempatkan atribut primary key dari entitas
parent ke dalam entitas child untuk berfungsi sebagai foreign key. Berikut merupakan hasil dari relasi binary one to many (1:*): MenempatkanKdPel ke Pemesanan untuk model 1:* relasi Memesan Pelanggan (KdPel, NamaPel, AlamatPel, KotaPel, KecPel, KelPel, KdPosPel, EmailPel, TelpPel, FaxPel) PrimaryKey (KdPel)
Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan, KdPel) PrimaryKey (KdPemesanan) ForeignKeyKdPelreferences Pelanggan (KdPel)
MenempatkanKdKar ke Pemesanan untuk model 1:* relasiMelayani Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar)
Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan, KdKar) PrimaryKey (KdPemesanan) ForeignKeyKdKarreferences Karyawan(KdKar)
MenempatkanKdKar ke Kontrak untuk model 1:* relasiMengurus Karyawan (KdKar, NamaKar,KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar)
Kontrak (KdKontrak, Spesifikasi, Keterangan, Diskon, TglKontrak, StatusKontrak, KdKar) PrimaryKey (KdKontrak) ForeignKeyKdKarreferences Karyawan (KdKar)
128 MenempatkanKdKar ke PengambilanBahanBaku untuk model 1:* relasi Melakukan Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar)
PengambilanBahanBaku (KdPengambilan, TglPengambilan, JumlahAmbil, KdKar) PrimaryKey (KdPengambilan) ForeignKeyKdKarreferences Karyawan (KdKar)
MenempatkanKdKar ke PengajuanPembelian untuk model 1:* relasiMengajukan Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar)
PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, JumlahAju, KdKar) PrimaryKey (KdPengajuan) ForeignKeyKdKarreferences Karyawan (KdKar)
Menempatkan KdKar ke Pembelian untuk model 1:* relasiMembuat Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar)
Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli, KdKar) PrimaryKey (KdPembelian) ForeignKeyKdKarreferences Karyawan (KdKar)
MenempatkanKdKar ke ReturPembelian untuk model 1:* relasiMengurus Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar)
ReturPembelian (KdReturPemb, TglRetur, StatusRetur, AlasanRetur, JumlahRetur , KdKar) PrimaryKey (KdReturPemb) ForeignKeyKdKarreferences Karyawan (KdKar)
129 MenempatkanKdKar ke Pengiriman untuk model 1:* relasiMelakukan Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar)
Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman, KdKar) PrimaryKey (KdPengiriman) ForeignKeyKdKarreferences Karyawan (KdKar)
MenempatkanKdKar ke PembayaranPembelian untuk model 1:* relasiMengurus Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar)
PembayaranPembelian (KdPembPembelian, TglPembPembelian, JumlahBayar, KdKar) PrimaryKey (KdPembPembelian) ForeignKeyKdKarreferences Karyawan (KdKar)
MenempatkanKdKar ke PembayaranPemesanan untuk model 1:* relasi Mengurus Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar)
PembayaranPemesanan (KdPembPemesanan, TglPembPemesanan, JumlahBayar, KdKar) PrimaryKey (KdPembPemesanan) ForeignKeyKdKarreferences Karyawan (KdKar)
MenempatkanKdPemesanan ke Kontrak untuk model 1:* relasiMempunyai Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan)
Kontrak (KdKontrak, Spesifikasi, Keterangan, Diskon, TglKontrak, StatusKontrak, KdPemesanan) PrimaryKey (KdKontrak) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
130 MenempatkanKdPemesanan ke TargetProduksi untuk model 1:* relasiMemiliki Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan)
TargetProduksi (TglPengiriman, TglPemasangan, Keterangan, KdPemesanan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
MenempatkanKdPemesanan ke Produksi untuk model 1:* relasiMemproduksi Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan)
Produksi (KdProduksi, NamaBarang, TglMulaiProduksi, StatusProduksi, JumlahProduksi, UkTinggi, UkLebar, HargaProduksi, KdPemesanan) PrimaryKey (KdProduksi) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
MenempatkanKdPemesanan ke RancanganKusen untuk model 1:* relasi Menghasilkan Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan)
RancanganKusen (KdRancangan, TglRancangan, GmbRancangan, StatusRancangan, UkLubang, UkJendela, Keterangan, KdPemesanan) PrimaryKey (KdRancangan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
131 MenempatkanKdPemesanan ke Pengiriman untuk model 1:* relasiMemiliki Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan)
Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman, KdPemesanan) PrimaryKey (KdPengiriman) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
MenempatkanKdPemesanan ke Pemasangan untuk model 1:* relasiMemiliki Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan)
Pemasangan (KdPemasangan, TglPemasangan, FotoHasil, StatusPemasangan, KdPemesanan) PrimaryKey (KdPemasangan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
MenempatkanKdPengiriman ke BarangJadi untuk model 1:* relasiMengirim Pengiriman (KdPengiriman, BarangJadi (KdBarangJadi, TglPengiriman, StatusPengiriman) TglBarangMasuk, StatusBarangJadi, PrimaryKey (KdPengiriman) KdPengiriman) PrimaryKey (KdBarangJadi) ForeignKeyKdPengiriman references Pengiriman(KdPengiriman) MenempatkanKdRumus ke Produksi untuk model 1:* relasi Menghasilkan RumusBahanBaku (KdRumus, NamaRumus, SatuanRumus, RumusUkuran, Gambar, Deskripsi) PrimaryKey (KdRumus)
Produksi (KdProduksi, NamaBarang, TglMulaiProduksi, StatusProduksi, JumlahProduksi, UkTinggi, UkLebar, HargaProduksi, KdRumus) PrimaryKey (KdProduksi) ForeignKeyKdRumusreferences RumusBahanBaku(KdRumus)
132 MenempatkanKdProduksi ke TugasProduksi untuk model 1:* relasiMembagi
Produksi (KdProduksi, NamaBarang, TglMulaiProduksi, StatusProduksi, JumlahProduksi, UkTinggi, UkLebar, HargaProduksi) PrimaryKey (KdProduksi)
TugasProduksi (KdTugas, Keterangan, Deadline, StatusTugas, , TglMulai, TglSelesai, DeskTugas, KdProduksi) PrimaryKey (KdTugas) ForeignKeyKdProduksireferences Produksi(KdProduksi)
MenempatkanKdProduksi ke BarangJadi untuk model 1:* relasiMenghasilkan
Produksi (KdProduksi, NamaBarang, TglMulaiProduksi, StatusProduksi, JumlahProduksi, UkTinggi, UkLebar, HargaProduksi) PrimaryKey (KdProduksi)
BarangJadi (KdBarangJadi, TglBarangMasuk, StatusBarangJadi, KdProduksi) PrimaryKey (KdBarangJadi) ForeignKeyKdProduksireferences Produksi(KdProduksi)
MenempatkanKdPembelian ke PembayaranPembelian untuk model 1:* relasi Memiliki Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli) PrimaryKey (KdPembelian)
PembayaranPembelian (KdPembPembelian, TglPembPembelian, JumlahBayar, KdPembelian) PrimaryKey (KdPembPembelian) ForeignKeyKdPembelianreferences Pembelian(KdPembelian)
133 MenempatkanKdPem ke Pembelian untuk model 1:* relasi Memenuhi Pemasok (KdPem, AlamatPem, KotaPem, KelPem,KdPosPem, TelpPem, FaxPem) PrimaryKey (KdPem)
NamaPem, Pembelian (KdPembelian, TglPembelian, KecPem, StatusPembelian, HargaBeli, JumlahBeli, EmailPem, KdPem) PrimaryKey (KdPembelian) ForeignKeyKdPemreferences Pemasok(KdPem)
MenempatkanKdPemesanan ke PembayaranPemesanan untuk model 1:* relasiMemiliki Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan)
PembayaranPemesanan (KdPembPemesanan, TglPembPemesanan, JumlahBayar, KdPemesanan) PrimaryKey (KdPembPemesanan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
MenempatkanKdPengajuan ke Pembelian untuk model 1:* relasiMenyebabkan PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, JumlahAju) PrimaryKey (KdPengajuan)
4.
Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli, KdPengajuan) PrimaryKey (KdPembelian) ForeignKeyKdPengajuan references PengajuanPembelian(KdPengajuan)
Tipe relasi binary one to one (1:1) Untuk relasi binary one to one (1:1) berikut dapat diatasi dengan
menempatkan atribut primary key dari entitas parent ke dalam entitas child untuk berfungsi sebagai foreign key. Berikut merupakan hasil dari relasi binary one to one (1:1):
134 MenempatkanKdPembelian ke ReturPembelian untuk model 1:1 relasiMenimbulkan
Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli, KdKar, KdPengajuan, KdPemasok) PrimaryKey (KdPembelian) ForeignKeyKdKar references Karyawan (KdKar) ForeignKeyKdPengajuan references PengajuanPembelian(KdPengajuan) ForeignKeyKdPemasok references Pemasok(KdPemasok) 5.
ReturPembelian(KdReturPemb, TglRetur, StatusRetur, AlasanRetur, JumlahRetur, KdKar, Kd ) PrimaryKey (KdReturPemb) ForeignKeyKdKar references Karyawan (KdKar) ForeignKeyKdPembelian references Pembelian(KdPembelian)
Tipe relasi recursive one to one (1:1) Pada perancangan basis data konseptual ini tidak ditemukan tip relasi
recursive (1:1) sehingga tahap ini tidak perlu dilakukan.
6.
Tipe relasi superclass atau subclass Pada perancangan basis data konseptual ini tidak ditemukan tipe relasi
superclass atau subclass sehingga tahap ini tidak perlu dilakukan.
7.
Tipe relasi binary many to many (*:*) Untuk relasi binary many to many (*:*)dapat diatasi dengan menciptakan
sebuah relasi dan memindahkan atribut ke yang bersangkutan ke dalam relasi tersebut. Kemudian menempatkan atribut primary key dari entitas-entitasparent ke dalam relasi baruuntuk berfungsi sebagai foreign key. Satu atau kedua dari foreign key tersebut juga akan menjadi primary key. Berikut merupakan hasil dari relasi many to many (*:*):
135 Karyawan (KdKar, NamaKar, KdPosisi, TugasProduksi (KdTugas, Keterangan, PosisiKar, AlamatKar, KotaKar, KecKar, KdProduksi) KelKar,KdPosKar, EmailKar, TelpKar, PrimaryKey (KdTugas) JenisKelamin, FotoKar)
ForeignKeyKdProduksireferences
PrimaryKey (KdKar)
Produksi(KdProduksi)
DetilTugas (KdKar, KdTugas, StatusTugas, TglMulai, TglSelesai, DeskTugas, Deadline) PrimaryKeyKdKar, KdTugas ForeignKeyKdKar referencesKaryawan(KdKar) ForeignKeyKdTugas referencesTugasProduksi(KdTugas)
Karyawan (KdKar, NamaKar, KdPosisi, Pemasangan
(KdPemasangan,
PosisiKar, AlamatKar, KotaKar, KecKar, TglPemasangan,
FotoHasil,
KelKar,KdPosKar, EmailKar, TelpKar, KdPemesanan) JenisKelamin, FotoKar)
PrimaryKey (KdPemasangan)
PrimaryKey (KdKar)
ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
DetilPemasangan (KdKar, KdPemasangan, StatusPemasangan) PrimaryKeyKdKar, KdPemasangan ForeignKeyKdKar referencesKaryawan(KdKar) ForeignKeyKdPemasanganreferencesPemasangan(KdPemasangan)
136 RumusBahanBaku (KdRumus, BahanBaku (KdBahanBaku, NamaRumus, Gambar, Deskripsi) NamaBahanBaku, KdTipeBahan, PrimaryKey (KdRumus TipeBahanBaku, KdSatuanBahan, SatuanBahanBaku, Harga, Stok, StokMin) PrimaryKey (KdBahanBaku)
DetilRumus (KdRumus, KdBahanBaku, SatuanRumus, RumusUkuran) Primary Key KdRumus, KdBahanBaku ForeignKeyKdRumusreferencesRumusBahanBaku(KdRumus) ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku) Pembelian (KdPembelian, TglPembelian, StatusPembelian, KdKar, KdPengajuan, KdPem) PrimaryKey (KdPembelian) ForeignKeyKdKary references Karyawan(KdKar) ForeignKeyKdPengajuanreferences PengajuanPembelian(KdPengajuan) ForeignKeyKdPemreferences Pemasok(KdPem)
BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, TipeBahanBaku, KdSatuanBahan, SatuanBahanBaku, Harga, Stok, StokMin) PrimaryKey (KdBahanBaku)
DetilPembelian (KdPembelian, KdBahanBaku,HargaBeli, JumlahBeli) PrimaryKeyKdPembelian, KdBahanBaku ForeignKeyKdPembelianreferencesPembelian(KdPembelian) ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku)
137 PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, KdKar) PrimaryKey (KdPengajuan) ForeignKeyKdKar references Karyawan(KdKar)
BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, TipeBahanBaku, KdSatuanBahan, SatuanBahanBaku, Harga, Stok, StokMin) PrimaryKey (KdBahanBaku)
DetilPengajuanBeli (KdPengajuan, KdBahanBaku, JumlahAju) PrimaryKeyKdPengajuan, KdBahanBaku ForeignKeyKdPengajuanreferencesPengajuanPembelian(KdPengajuan) ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku)
ReturPembelian (KdReturPemb, TglRetur, StatusRetur, AlasanRetur, KdKar, KdPembelian) PrimaryKey (KdReturPemb) ForeignKeyKdKarreferences Karyawan(KdKar) ForeignKeyKdPembelianreferences Pembelian(KdPembelian)
BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, TipeBahanBaku, KdSatuanBahan, SatuanBahanBaku, Harga, Stok, StokMin) PrimaryKey (KdBahanBaku)
DetilReturBeli (KdReturPemb, KdBahanBaku, JumlahRetur) PrimaryKeyKdReturPemb, KdBahanBaku ForeignKeyKdReturPemb referencesReturPembelian(KdReturPemb) ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku)
138 BahanBaku
PengambilanBahanBaku (KdPengambilan,
(KdBahanBaku,
TglPengambilan, NamaBahanBaku,
JumlahAmbil , KdKar)
TipeBahanBaku,
PrimaryKey (KdPengambilan)
SatuanBahanBaku,
ForeignKeyKdKar
KdTipeBahan, KdSatuanBahan, Harga,
Stok,
references StokMin)
Karyawan(KdKar)
PrimaryKey (KdBahanBaku)
DetilPengambilanBahan (KdPengambilan, KdBahanBaku, JumlahAmbil) PrimaryKeyKdPengambilan, KdBahanBaku ForeignKeydPengambilanreferences PengambilanBahanBaku (KdPengambilan) ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku)
8.
Tipe relasi kompleks Pada peracangan basis data konseptual ini tidak ditemukan tipe relasi
kompleks sehingga tahap ini tidak perlu dilakukan.
9.
Atribut-atribut multi-valued Atribut multi-valued dapat diatasi dengan menciptakan relasi baru untuk
merepresentasikan atribut multi-valued dan memberikan primarikey dari entitas ke dalam relasi baru untuk berfungsi sebagai foreignkey. Berikut merupakan hasil dari atribut multi-valued:
139 Menempatkan KdKar ke TelpKaryawan
Karyawan
(KdKar,
NamaKar, TelpKaryawan(KdKar,TelpKar)
KdPosisi,
PosisiKar,
AlamatKar, PrimaryKey TelpKar
KotaKar, KecKar, KelKar,KdPosKar, ForeignKey EmailKar, JenisKelamin, FotoKar)
KdKar
references
Karyawan(KdKar)
PrimaryKey (KdKaryawan)
Menempatkan KdPel ke TelpPelanggan
Pelanggan (KdPel, NamaPel, AlamatPel, KotaPel, KecPel, KelPel, KdPosPel, EmailPel, TelpPel, FaxPel) PrimaryKey (KdPel)
TelpPelanggan( KdPel ,TelpPel) PrimaryKey TelpPel ForeignKeyKdPelreferences Pelanggan(KdPel)
Menempatkan KdPem ke TelpPemasok
Pemasok (KdPem, AlamatPem, KotaPem, KelPem, KdPosPem, FaxPem, KategoriPem) PrimaryKey (KdPem)
NamaPem, TelpPemasok( KdPem ,TelpPem) KecPem, PrimaryKey TelpPem EmailPem, ForeignKey KdPemreferences Pemasok( KdPem )
Berikut merupakan hasil akhir dari tahapan menurunkan hubungan untuk model data logikal: Tabel 3.48Hasil dari Menurunkan Hubungan untuk Model Data Logikal Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar) Pelanggan (KdPel, NamaPel, AlamatPel, KotaPel, KecPel, KelPel, KdPosPel, EmailPel, TelpPel, FaxPel) PrimaryKey (KdPel) Pemasok (KdPem, NamaPem, AlamatPem, KotaPem, KecPem, KelPem,KdPosPem, EmailPem, TelpPem, FaxPem) PrimaryKey (KdPem)
140 TugasProduksi (KdTugas, Keterangan, KdProduksi) PrimaryKey (KdTugas) ForeignKeyKdProduksireferences Produksi(KdProduksi) DetilTugas (KdKar, KdTugas, StatusTugas, TglMulai, TglSelesai, DeskTugas, Deadline) PrimaryKey (KdKar, KdTugas) ForeignKeyKdKar references Karyawan(KdKar) ForeignKeyKdTugas references TugasProduksi(KdTugas) Pemasangan (KdPemasangan, TglPemasangan, FotoHasil, KdPemesanan) PrimaryKey (KdPemasangan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) DetilPemasangan (KdKar, KdPemasangan, StatusPemasangan) PrimaryKey (KdKar, KdPemasangan) ForeignKeyKdKar references Karyawan(KdKar) ForeignKeyKdPemasanganreferences Pemasangan(KdPemasangan) RumusBahanBaku (KdRumus, NamaRumus, Gambar, Deskripsi) PrimaryKey (KdRumus) DetilRumus (KdRumus, KdBahanBaku, SatuanRumus, RumusUkuran ) Primary Key (KdRumus, KdBahanBaku) ForeignKeyKdRumusreferences RumusBahanBaku(KdRumus) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku) Pembelian (KdPembelian, TglPembelian, StatusPembelian, KdKar, KdPengajuan, KdPem) PrimaryKey (KdPembelian) ForeignKeyKdKar references Karyawan(KdKar) ForeignKeyKdPengajuanreferences PengajuanPembelian(KdPengajuan) ForeignKeyKdPemreferences Pemasok(KdPem) DetilPembelian (KdPembelian, KdBahanBaku,HargaBeli, JumlahBeli) PrimaryKey (KdPembelian, KdBahanBaku) ForeignKeyKdPembelianreferences Pembelian(KdPembelian) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku) PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, KdKar) PrimaryKey (KdPengajuan) ForeignKeyKdKar references Karyawan(KdKar) DetilPengajuanBeli (KdPengajuan, KdBahanBaku, JumlahAju) PrimaryKey (KdPengajuan, KdBahanBaku) ForeignKeyKdPengajuanreferences PengajuanPembelian(KdPengajuan) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku) ReturPembelian (KdReturPemb, TglRetur, StatusRetur, AlasanRetur, KdKar, KdPembelian) PrimaryKey(KdReturPemb) ForeignKeyKdKar references Karyawan (KdKar) ForeignKeyKdPembelian references Pembelian (KdPembelian) DetilReturBeli (KdReturPemb, KdBahanBaku, JumlahRetur) PrimaryKey (KdReturPemb, KdBahanBaku) ForeignKeyKdReturPemb references ReturPembelian(KdReturPemb) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku)
141 PengambilanBahanBaku (KdPengambilan, TglPengambilan, KdKar) PrimaryKey (KdPengambilan) ForeignKeyKdKar references Karyawan(KdKar) DetilPengambilanBahan (KdPengambilan, KdBahanBaku, JumlahAmbil) PrimaryKey (KdPengambilan, KdBahanBaku) ForeignKeyKdPengambilanreferences PengambilanBahanBaku(KdPengambilan) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku) TelpKaryawan (KdKar,TelpKar) PrimaryKey (TelpKar) ForeignKeyKdKar references Karyawan (KdKar) TelpPelanggan (KdPel ,TelpPel) PrimaryKey (TelpPel) ForeignKeyKdPelreferences Pelanggan(KdPel) TelpPemasok (KdPem ,TelpPem) PrimaryKey (TelpPem) ForeignKeyKdPemreferences Pemasok (KdPem) BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, TipeBahanBaku, KdSatuanBahan, SatuanBahanBaku, Harga, Stok, StokMin) PrimaryKey (KdBahanBaku) Produksi (KdProduksi, NamaBarang TelpPem, TglMulaiProduksi, StatusProduksi, JumlahProduksi, UkTinggi, UkLebar, HargaProduksi, KdRumus, KdPemesanan) PrimaryKey (KdProduksi) ForeignKeyKdRumusreferences RumusBahanBaku(KdRumus) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) TargetProduksi (TglPengiriman, TglPemasangan, Keterangan, KdPemesanan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) PembayaranPembelian (KdPembPembelian, TglPembPembelian, JumlahBayar, KdPembelian, KdKar) PrimaryKey (KdPembPembelian) ForeignKeyKdPembelianreferences Pembelian(KdPembelian) ForeignKeyKdKar references Karyawan (KdKar) BarangJadi (KdBarangJadi, TglBarangMasuk, StatusBarangJadi, KdPengiriman, KdProduksi) PrimaryKey (KdBarangJadi) ForeignKeyKdPengiriman references Pengiriman(KdPengiriman) ForeignKeyKdProduksireferences Produksi(KdProduksi) Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman, KdPemesanan, KdKar) PrimaryKey (KdPengiriman) ForeignKeyKdKarreferences Karyawan (KdKar) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) Kontrak (KdKontrak, Spesifikasi, Keterangan, Diskon, TglKontrak, StatusKontrak, KdKar, KdPemesanan) PrimaryKey (KdKontrak) ForeignKeyKdKar references Karyawan (KdKar)
142 ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek,AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan KdPel, KdKar) PrimaryKey (KdPemesanan) ForeignKeyKdPel references Pelanggan(KdPel) ForeignKeyKdKar references Karyawan (KdKar) RancanganKusen (KdRancangan, TglRancangan, GmbRancangan, UkLubang, UkJendela, Keterangan, KdPemesanan) PrimaryKey (KdRancangan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
StatusRancangan,
PembayaranPemesanan (KdPembPemesanan, TglPembPemesanan, JumlahBayar, KdKar, KdPemesanan) PrimaryKey (KdPembPemesanan) ForeignKeyKdKar references Karyawan (KdKar) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
143 3.3.3.2. Memvalidasi Relasi dengan Menggunakan Normalisasi Tujuannya untuk memvalidasi relasi-relasi dalam model data logikal dengam normalisasi.Berikut ini merupakan hasil dari normalisasi:
1.
Karyawan (1NF) Sudah memuhi aturan normalisasi 1NF karena tidak ditemukan grup yang berulang dan hasil perhitungan.
Kd Nama Kd Posisi Alamat Kota Kec Kar
Kar Posisi Kar
Kar
Kar Kar
Kel
KdPos Email Kar
Kar
Jenis
Foto
Kar Kelamin Kar fd1(Primary Key) fd2(TransitiveDependency) fd3(TransitiveDependency)
(2NF) Sudah memenuhi aturan normalisasi 2NF karena tidak ditemukan ketergantungan parsial. (3NF) Karyawan
= KdKar, NamaKar, AlamatKar, EmailKar, JenisKelamin, FotoKar, KdPosKar, KdPosisi
PosisiKaryawan =KdPosisi, PosisiKar PosKaryawan
2.
= KdPosKar, KotaKar, KecKar, KelKar
Pelanggan (1NF) Sudah memuhi aturan normalisasi 1NF karena tidak ditemukan grup yang berulang dan hasil perhitungan.
Kd Nama Alamat Kota Kec
Kel KdPos Email
Fax
Pel
Pel
Pel
Pel
Pel
Pel
Pel
Pel
Pel
fd1(Primary Key) fd2(TransitiveDependency)
144 (2NF) Sudah memenuhi aturan normalisasi 2NF karena tidak ditemukan ketergantungan parsial. (3NF) Pelanggan
= KdPel, NamaPel, AlamatPel, EmailPel, FaxPel, KdPosPel
PosPelanggan = KdPosPel, KotaPel, KecPel, KelPel
3.
Pemasok (1NF) Sudah memuhi aturan normalisasi 1NF karena tidak ditemukan grup yang berulang dan hasil perhitungan. KdPem NamaPem AlamatPem KotaPem KecPem KelPem KdPosPem EmailPem FaxPem fd1(Primary Key) fd2(TransitiveDependency)
(2NF) Sudah memenuhi aturan normalisasi 2NF karena tidak ditemukan ketergantungan parsial. (3NF) Pemasok
= KdPem, NamaPem, AlamatPem, EmailPem, FaxPem, KdPosPem
PosPemasok
4.
= KdPosPem, KotaPem, KecPem, KelPem
TugasProduksi Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdTugas
Keterangan
KdProduksi fd1(Primary Key)
145 TugasProduksi = KdTugas, Keterangan, KdProduksi
5.
DetilTugas Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
KdKar KdTugas StatusTugas TglMulai TglSelesai DeskTugas Deadline fd1(Primary Key)
DetilProduksi = KdKar, KdTugas, StatusTugas, TglMulai, TglSelesai, DeskTugas, Deadline 6.
Pemasangan Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdPemasagan
TglPemasangan
FotoHasil
KdPemesanan fd1(Primary Key)
Pemasangan
= KdPemasangan, TglPemasangan, FotoHasil, KdPemesanan
7.
DetilPemasangan Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdKar
KdPemasangan
StatusPemasangan
fd1(Primary Key)
DetilPemasangan
= KdKar, KdPemasangan, StatusPemasangan
146 8.
RumusBahanBaku Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdRumus
NamaRumus
Gambar
Deskripsi fd1(Primary Key)
RumusBahanBaku
9.
= KdRumus, NamaRumus, Gambar, Deskripsi
DetilRumus Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
KdRumus
KdBahanBaku
SatuanRumus
RumusUkuran
fd1(Primary Key)
DetilRumus
10.
= KdRumus, KdBahanBaku, SatuanRumus,RumusUkuran
Pembelian Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdPembelian TglPembelian StatusPembelian
KdKar KdPengajuan
KdPem
fd1(Primary Key)
Pembelian
= KdPembelian, TglPembelian, StatusPembelian, KdKaryawan, KdPengajuan, KdPem
147 11.
DetilPembelian Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdPembelian
KdBahanBaku
HargaBeli
JumlahBeli
fd1(Primary Key)
DetilPembelian = KdPembelian, KdBahanBaku, HargaBeli, JumlahBeli
12.
PengajuanPembelian Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdPengajuan
TglPengajuan
StatusPengajuan
KdKar
fd1(Primary Key)
PengajuanPembelian = KdPengajuan, TglPengajuan, StatusPengajuan, KdKar
13.
DetilPengajuanBeli Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdPengajuan
KdBahanBaku
JumlahAju
fd1(Primary Key)
DetilPengajuanBeli
= KdPengajuan, KdBahanBaku, JumlahAju
148 14.
ReturPembelian Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdReturPemb
TglRetur
StatusRetur
AlasanRetur
KdKar
KdPembelian fd1(Primary Key)
ReturPembelian
= KdReturPemb, TglRetur, StatusRetur, AlasanRetur, KdKar, KdPembelian
15.
DetilReturBeli Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdReturPemb
KdBahanBaku
JumlahRetur fd1(Primary Key)
DetilReturBeli
16.
= KdReturPemb, KdBahanBaku, JumlahRetur
PengambilanBahanBaku Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdPengambilan
TglPengambilan
KdKar
fd1(Primary Key)
PengambilanBahanBaku = KdPengambilan, TglPengambilan, KdKar
149 17.
DetilPengambilanBahan Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
KdPengambilan
KdBahanBaku
JumlahAmbil
fd1(Primary Key)
DetilPengambilanBahan = KdPengambilan, KdBahanBaku, JumlahAmbil
18.
TelpKayawan Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. TelpKar
KdKar fd1(Primary Key)
TelpKaryawan
19.
= KdKar, TelpKar
TelpPelanggan Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. TelpPel
KdPel fd1(Primary Key)
TelpPelanggan
= KdPel, TelpPel
150 20.
TelpPemasok Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. TelpPem
KdPem fd1(Primary Key)
TelpPemasok
21.
= KdPem, TelpPem
BahanBaku (1NF) Sudah memuhi aturan normalisasi 1NF karena tidak ditemukan grup yang berulang dan hasil perhitungan. KdBahan NamaBahan KdTipe TipeBahan KdSatuan SatuanBahan Baku
Baku
Bahan
Baku
Bahan
Baku
Stok Harga Stok
Min
fd1(Primary Key) fd2(Transitive Dependecy) fd3(Transitive Dependecy)
(2NF) Sudah memenuhi aturan normalisasi 2NF karena tidak ditemukan ketergantungan parsial.
(3NF) BahanBaku
= KdBahanBaku, NamaBahanBaku,Harga, Stok, StokMin, KdTipeBahan, KdSatuanBahan
TipeBahan
= KdTipeBahan, TipeBahanBaku
SatuanBahan
= KdSatuanBahan, SatuanBahanBaku
151 22.
Produksi Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta tidak ditemukan ketergantungan parsial dan transitif. Kd
Nama TglMulai
Status
Jumlah
Uk
Uk
Harga
Kd
Kd
Produksi Barang Produksi Produksi Produksi Panjang Lebar Produksi Rumus Pemesanan fd1(Primary Key)
Produksi
= KdProduksi, NamaBarang, TglMulaiProduksi, StatusProduksi, JumlahProduksi, UkPanjang, UkLebar, HargaProduksi, KdRumus, KdPemesanan
23.
TargetProduksi (1NF) TargetProduksi = TglPengiriman, TglPemasangan, Keterangan, KdPemesanan (2NF dan 3NF) Sudah memuhi aturan normalisasi 2NF, dan 3NF karena tidak ditemukan ketergantungan parsial dan transitif. TglPengiriman
TglPemasangan
Keterangan
KdPemesanan fd1(Primary Key)
TargetProduksi = TglPengiriman, TglPemasangan, Keterangan, KdPemesanan
24.
PembayaranPembelian Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
152
KdPembPembelian
TglPembPembelian
JumlahBayar
KdPembelian
KdKar fd1(Primary Key)
PembayaranPembelian = KdPembPembelian, TglPembPembelian, JumlahBayar, KdPembelian, KdKar
25.
BarangJadi Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdBarangJadi
TglBarangMasuk
StatusBarangJadi
KdPengiriman
KdProduksi fd1(Primary Key)
BarangJadi
= KdBarangJadi, TglBarangMasuk, StatusBarangJadi, KdPengiriman, KdProduksi
26.
Pengiriman Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. KdPengiriman
TglPengiriman
StatusPengiriman
KdKar
KdPemesanan
fd1(Primary Key)
Pengiriman
= KdPengiriman, TglPengiriman, StatusPengiriman, KdPemesanan, KdKar
27.
Kontrak Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
153
KdKontrak Spesifikasi Keterangan Diskon TglKontrak StatusKontrak KdKar fd1(Primary Key)
Kontrak
= KdKontrak, Spesifikasi, Keterangan, Diskon, TglKontrak, StatusKontrak, KdKar, KdPemesanan
28.
Pemesanan (1NF) Sudah memuhi aturan normalisasi 1NF karena tidak ditemukan grup yang berulang dan hasil perhitungan. Kd
Tgl
Pemesanan Pemesanan
Kd
Kd
TglPeng
GmbPeng
Pel
Kar Pemesanan Pemesanan
StatusPeng
Nama
Alamat
Pemesanan Proyek Pemesanan
fd1(Primary Key)
KdPosPemesanan
KotaPemesanan
KelPemesanan
KecPemesanan
fd2(Transitive Dependency)
(2NF) Sudah memenuhi aturan normalisasi 2NF karena tidak ditemukan ketergantungan parsial. (3NF) Pemesanan
= KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPel, KdKar, KdPosPemesanan
PosPemesanan = KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan
154 29.
RancanganKusen Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif. Kd
Tgl
Gmb
Status
Uk
Uk
Rancangan Rancangan Rancangan Rancangan Lubang Jendela
Keterangan
Kd Pemesanan fd1(Primary Key)
RancanganKusen= KdRancangan, TglRancangan, GmbRancangan, StatusRancangan, UkLubang, UkJendela, Keterangan, KdPemesanan
30.
PembayaranPemesanan Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
KdPembPemesanan
TglPembPemesanan
JumlahBayar
KdKar
KdPemesanan fd1(Primary Key)
PembayaranPemesanan
= KdPembPemesanan, TglPembPemesanan, JumlahBayar, KdKar, KdPemesanan
155
Gambar 3.22ERD Setelah Normalisasi
156 3.3.3.3. Memvalidasi Relasi dengan User Transaction Tujuan dari langkah ini yaitu memastikan bahwa relasi-relasi yang berada dalam model data logikal sudah mendukung transaksi yang diperlukan. Transaksi-transaksi yang telah diidentifikasi, yaitu: 1.
2.
Data entries dan data updates 1.
Memasukkan dan mengubah data pengajuan pemesanan
2.
Memasukkan dan mengubah data pelanggan
3.
Memasukkan dan mengubah data rumus bahan baku
4.
Memasukkan dan mengubah data produksi
5.
Memasukkan dan mengubah data kontrak
6.
Memasukkan dan mengubah data rancangan kusen pintu jendela
7.
Memasukkan dan mengubah data pemesanan
8.
Memasukkan dan mengubah data target produksi
9.
Memasukkan dan mengubah data tugas produksi
10.
Memasukkan dan mengubah data pengambilan bahan baku
11.
Memasukkan dan mengubah data barang jadi
12.
Memasukkan dan mengubah data bahan baku
13.
Memasukkan dan mengubah data pemasok
14.
Memasukkan dan mengubah data pengajuan pembelian
15.
Memasukkan dan mengubah data pembelian
16.
Memasukkan dan mengubah data retur pembelian
17.
Memasukkan dan mengubah data pengiriman
18.
Memasukkan dan mengubah data pemasangan
19.
Memasukkan dan mengubah data karyawan
20.
Memasukkan dan mengubah data pembayaran pemesanan
21.
Memasukkan dan mengubah data pembayaran pembelian
Data queries 1.
Menampilkan pengajuan pemesanan berdasarkan identitas pelanggan
2.
Menampilkan data bahan baku berdasarkan rumus bahan baku
3.
Menampilkan pemesanan
data
produksi
berdasarkan
nomor
pengajuan
157 4.
Menampilkan rancangan kusen pintu jendela berdasarkan nomor pengajuan pemesanan
5.
Menampilkan kontrak sesuai dengan pemesanan yang diajukan
6.
Menampilkan pemesanan yang dibuat oleh karyawan
7.
Menampilkan target produksi berdasarkan nomor pengajuan pemesanan
8.
Menampilkan data tugas produksi dan nama karyawan yang terlibat didalamnya
9.
Menampilkan data pengambilan bahan baku berdasarkan nama karyawan
10.
Menampilkan data barang jadi berdasarkan kode produksi
11.
Menampilkan data pembelian berdasarkan nomor pengajuan pembelian
12.
Menampilkan data retur pembelian berdasarkan nomor pembelian
13.
Menampilkan data pengiriman berdasarkan nomor pengajuan pemesanan
14.
Menampilkan data pemasangan berdasarkan nomor pengajuan pemesanan
15.
Menampilkan detil pengajuan pemesanan yang dibuat berdasarkan data karyawan
16.
Menampilkan kontrak yang diurus oleh karyawan
17.
Menampilkan data pengajuan pembelian yang diajukan oleh karyawan
18.
Menampilkan data pembelian yang dibuat oleh karyawan
19.
Menampilkan data retur pembelian yang diurus oleh karyawan
20.
Menampilkan data pengiriman dan karyawan yang terlibat di dalamnya
21.
Menampilkan data pemasangan yang dilakukan oleh karyawan
22.
Menampilkan data barang jadi yang dikirim
23.
Menampilkan rumus yang digunakan untuk produksi
24.
Menampilkan pembagian tugas sesuai dengan nomor produksi
158 25.
Menampilkan bahan baku yang dibeli melalui pembelian
26.
Menampilkan pembelian berdasarkan nama pemasok
27.
Menampilkan daftar bahan baku dalam pengajuan pembelian
28.
Menampilkan daftar bahan baku dalam retur pembelian
29.
Menampilkan daftar bahan baku dalam pengambilan bahan baku
30.
Menampilkan data pembayaran pemesanan berdasarkan nama karyawan yang mengurusnya dan nomor pemesanan
31.
Menampilkan data pembayaran pembelian berdasarkan nama karyawan yang mengurusnya dan nomor pembelian
159
Gambar 3.23ERDdengan Transaction Pathway
160 3.3.3.4. Memeriksa Integrity Constraints Tujuannya untuk memeriksa integrity constraint yang direpresentasikan dalam model data logikal.Integrity Constraintsterdiri dari enam tipe, yaitu: 1.
Required data Constraint ini sudah diidentifikasi pada perancangan basis data
konseptualtahapan ketiga, yaitu
mengidentifikasi dan mengasosiasikan atribut
dengan tipe entitas atau relationship(3.3.1.3). 2.
Attribute domain constraint Constraint ini sudah diidentifikasi pada perancangan basis data konseptual
tahapan keempat, yaitu menentukan domain atribut(3.3.1.4). 3.
Multiplicity Constraint ini sudah diidentifikasi pada perancangan basis data konseptual
tahapan kedua, yaitu mengidentifikasi tipe relationship(3.3.1.2). 4.
Entity Integrity Constraint ini sudah diidentifikasi pada perancangan basis data konseptual
tahapan kelima, yaitu menentukan atribut dari candidate key dan primary key(3.3.1.5). 5.
Referential Integrity Berikut adalah referentialintegrityyang telah dibuat:
Tabel 3.49Hasil Referential Integrity Karyawan (KdKar, NamaKar, AlamatKar, EmailKar, JenisKelamin,
FotoKar, KdPosKar,
KdPosisi) PrimaryKey (KdKar) Foreign Key KdPosKarreferences PosKaryawan (KdPosKar) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPosisireferences PosisiKaryawan(KdPosisi) ON UPDATE CASCADE ON DELETE NO ACTION PosisiKaryawan (KdPosisi, PosisiKar) PrimaryKey (KdPosisi) PosKaryawan (KdPosKar, KotaKar, KecKar, KelKar) PrimaryKey (KdPosKar)
161 Pelanggan (KdPel, NamaPel, AlamatPel, EmailPel, FaxPel, KdPosPel) PrimaryKey (KdPel) Foreign KeyKdPosPelreferences PosPelanggan(KdPosPel) ON UPDATE CASCADE ON DELETE NO ACTION PosPelanggan (KdPosPel, KotaPel, KecPel, KelPel) PrimaryKey (KdPosPel) Pemasok (KdPem, NamaPem, AlamatPem, EmailPem, FaxPem, KdPosPem) PrimaryKey (KdPem) Foreign KeyKdPosPemreferences PosPemasok(KdPosPem) ON UPDATE CASCADE ON DELETE NO ACTION PosPemasok (KdPosPem,KotaPem, KecPem, KelPem) PrimaryKey (KdPosPem) TugasProduksi (KdTugas, Keterangan, KdProduksi) PrimaryKey (KdTugas) Foreign KeyKdProduksireferences Produksi (KdProduksi) ON UPDATE CASCADE ON DELETE NO ACTION DetilTugas (KdKar, KdTugas, StatusTugas, TglMulai, TglSelesai, DeskTugas, Deadline) PrimaryKey (KdKar, KdTugas) Foreign Key KdKarreferences Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdTugasreferences TugasProduksi (KdTugas) ON UPDATE CASCADE ON DELETE NO ACTION Pemasangan (KdPemasangan, TglPemasangan, FotoHasil, KdPemesanan) PrimaryKey (KdPemasangan) Foreign KeyKdPemesananreferences Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION DetilPemasangan (KdKar, KdPemasangan, StatusPemasangan) PrimaryKey (KdKar, KdPemasangan) Foreign Key KdKarreferences Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
KeyKdPemasanganreferences
Pemasangan
(KdPemasangan)
CASCADE ON DELETE NO ACTION RumusBahanBaku (KdRumus, NamaRumus, Gambar, Deskripsi) PrimaryKey (KdRumus)
ON
UPDATE
162 DetilRumus (KdRumus, KdBahanBaku, SatuanRumus, RumusUkuran) Primary Key (KdRumus, KdBahanBaku) Foreign KeyKdRumusreferences RumusBahanBaku (KdRumus) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdBahanBakureferences BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION Pembelian (KdPembelian, TglPembelian, StatusPembelian, KdKar, KdPengajuan, KdPem) PrimaryKey (KdPembelian) Foreign Key KdKar references Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdPengajuanreferences PengajuanPembelian (KdPengajuan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdPemreferences Pemasok (KdPem) ON UPDATE CASCADE ON DELETE NO ACTION DetilPembelian (KdPembelian, KdBahanBaku, HargaBeli, JumlahBeli) PrimaryKey (KdPembelian, KdBahanBaku) Foreign KeyKdPembelianreferences Pembelian (KdPembelian) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdBahanBakureferences BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, KdKar) PrimaryKey (KdPengajuan) Foreign Key KdKar references Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION DetilPengajuanBeli (KdPengajuan, KdBahanBaku, JumlahAju) PrimaryKey (KdPengajuan, KdBahanBaku) Foreign KeyKdPengajuanreferences PengajuanPembelian (KdPengajuan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdBahanBakureferences BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION ReturPembelian (KdReturPemb, TglRetur, StatusRetur, AlasanRetur, KdKar, KdPembelian) PrimaryKey(KdReturPemb) Foreign Key KdKar references Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPembelian references Pembelian (KdPembelian) ON UPDATE CASCADE
163 ON DELETE NO ACTION DetilReturBeli (KdReturPemb, KdBahanBaku, JumlahRetur) PrimaryKey (KdReturPemb, KdBahanBaku) Foreign KeyKdReturPembreferences ReturPembelian (KdReturPemb) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdBahanBakureferences BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION PengambilanBahanBaku (KdPengambilan, TglPengambilan, KdKar) PrimaryKey (KdPengambilan) Foreign Key KdKar references Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION DetilPengambilanBahan (KdPengambilan, KdBahanBaku, JumlahAmbil) PrimaryKey (KdPengambilan, KdBahanBaku) Foreign KeyKdPengambilanreferences PengambilanBahanBaku (KdPosPem) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdBahanBakureferences BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION TelpKaryawan (KdKar,TelpKar) PrimaryKeyTelpKar Foreign KeyKdKar references Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION TelpPelanggan (KdPel, TelpPel) PrimaryKeyTelpPel Foreign KeyKdPelreferences Pelanggan (KdPel) ON UPDATE CASCADE ON DELETE NO ACTION TelpPemasok (KdPem, TelpPem) PrimaryKeyTelpPem Foreign KeyKdPemreferences Pemasok (KdPem) ON UPDATE CASCADE ON DELETE NO ACTION BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, KdSatuanBahan, Harga, Stok, StokMin) PrimaryKey (KdBahanBaku) Foreign KeyKdTipeBahanreferences TipeBahan (KdTipeBahan) ON UPDATE CASCADE ON DELETE NO ACTION
164 Foreign KeyKdSatuanBahanreferences SatuanBahan (KdSatuanBahan) ON UPDATE CASCADE ON DELETE NO ACTION TipeBahan (KdTipeBahan, TipeBahanBaku) PrimaryKey (KdTipeBahan) SatuanBahan (KdSatuanBahan, SatuanBahanBaku) PrimaryKey (KdSatuanBahan) Produksi (KdProduksi, NamaBarang, TglMulaiProduksi, StatusProduksi, JumlahProduksi,
UkTinggi, UkLebar, HargaProduksi, KdRumus, KdPemesanan) PrimaryKey (KdProduksi) Foreign KeyKdRumusreferences RumusBahanBaku (KdRumus) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdPemesananreferences Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION TargetProduksi (TglPengiriman, TglPemasangan, Keterangan, KdPemesanan) PrimaryKey (TglPengiriman, TglPemasangan, KdPemesanan) Foreign KeyKdPemesananreferences Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION PembayaranPembelian
(KdPembPembelian,
TglPembPembelian,
JumlahBayar,
KdPembelian, KdKar) PrimaryKey (KdPembPembelian) Foreign KeyKdPembelianreferences Pembelian (KdPembelian) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdKar references Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION BarangJadi
(KdBarangJadi,
TglBarangMasuk,
StatusBarangJadi,
KdPengiriman,
KdProduksi) PrimaryKey (KdBarangJadi) Foreign Key KdPengiriman references Pengiriman (KdPengiriman) ON UPDATECASCADE ON DELETE NO ACTION Foreign KeyKdProduksireferences Produksi (KdProduksi) ON UPDATE CASCADE ON DELETE NO ACTION Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman, KdPemesanan, KdKar) PrimaryKey (KdPengiriman)
165 Foreign KeyKdKarreferences Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION ForeignKeyKdPemesananreferences Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION Kontrak (KdKontrak, Spesifikasi, Keterangan, Diskon, TglKontrak, StatusKontrak, KdKar, KdPemesanan) PrimaryKey (KdKontrak) ForeignKey KdKar references Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION ForeignKeyKdPemesananreferences Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPel, KdKar, KdPosPemesanan) PrimaryKey (KdPemesanan) ForeignKey KdPel references Pelanggan (KdPel) ON UPDATE CASCADE ON DELETE NO ACTION ForeignKey KdKar references Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPosPemesanan references PosPemesanan (KdPosPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION PosPemesanan (KdPosPemesanan, KotaPemesanan, KecPemesanan, KelPemesanan) PrimaryKey (KdPosPemesanan) RancanganKusen
(KdRancangan,
TglRancangan,
GmbRancangan,
StatusRancangan,
UkLubang, UkJendela, Keterangan, KdPemesanan) PrimaryKey (KdRancangan) Foreign KeyKdPemesananreferences Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION PembayaranPemesanan (KdPembPemesanan, TglPembPemesanan, JumlahBayar, KdKar, KdPemesanan) PrimaryKey (KdPembPemesanan) Foreign Key KdKar references Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION Foreign KeyKdPemesananreferences Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION
166 6.
General Constraint PT Luxus Indo Prima memiliki beberapa batasan, yaitu: 1.
Seorang karyawan produksi hanya dapat melakukan satu tugas produksi pada waktu yang bersamaan
2.
Tugas produksi harus bisa diselesaikan sesuai tanggal pengiriman yang sudah ditentukan
3.
Tugas produksi harus bisa diselesaikan sesuai tanggal pemasangan yang sudah ditentukan
3.3.3.5. Review Model Data Logikal dengan User Tujuannya untuk memeriksa ulang model data logikal dengan pengguna untuk memastikan bahwa mereka sudah mempertimbangkan model dengan benar dari data yang diperlukan dalam perusahaan. Perancangan hingga model data logikalsudah dibahas dengan Wakil Direktur PT Luxus Indo Prima dan semua kebutuhan sudah sesuai dengan kebutuhan perusahaan.
3.3.3.6. Menggabungkan Model Data Logikal ke Dalam Model Global Tujuannya untuk menggabungkan model data logikal lokal ke dalam model data logikal global tunggal untuk merepresentasikan semua pandangan pengguna terhadap basis data. Tahapan ini hanya dilakukan jika menggunakan multiuserviews, sedangkan perancangan basis data ini menggunakan singeluserviews sehingga tahapan ini tidak dibahas. 3.3.3.7. Mempertimbangkan Perkembangan di Masa Depan Tujuan dari langkah ini yaitu menentukan segala perubahan signifikan yang mungkin terjadi pada masa depan dan menaksirkan kemungkinan untuk menangani perubah tersebut. Setelah perancangan basis data logikal ini diperiksa, tidak ditemukan perubahan yang signifikan.
167
3.3.4. Perancangan Basis Data Fisikal Perancangan basis data fisikal yaitu proses yang menghasilkan deskripsi implementasi basis data pada penyimpanan sekunder, mendeskripsikan hubungan dasar, files organization, indeks yang digunakan untuk mencapai akses yang efisien terhadap data, integrityconstraints, dan juga pengukuran keamanan. Hal-hal yang perlu dilakukan dalam tahap ini yaitu: 1.
Menerjemahkan model data logikal untuk DBMS yang digunakan
2.
Merancang file organizations dan index
3.
Merancang user view
4.
Merancang mekanisme keamanan
5.
Mempertimbangkan pengenalan redundansi terkontrol
6.
Mengawasi dan mengendalikan sistem operasional
3.3.4.1. Menerjemahkan Model Data Logikal untuk DBMS yang Digunakan Tujuannya untuk menghasilkan sebuah skema basis data relasional dari model data logis yang dapat diimplementasikan dalam DBMS yang dipilih. Terdapat beberapa langkah dalam tahapan ini, yaitu: 1.
Merancang relasi-relasi dasar Tujuannya untuk menentukan cara merepresentasikan relasi-relasi dasar yang diidentifikasikan dalam model data logikal global ke dalam target DBMS.Berikut merupakan informasi yang diidentifikasikan melalui Database Design Language (DBDL):
1.
Karyawan
Domain KodeKaryawan:
Fixed length character string, length 5
Domain NamaKaryawan:
Variable length varchar string, length 40
Domain AlamatKaryawan:
Variable length varchar string, length 100
Domain EmailKaryawan:
Variable length varchar string, length 50
Domain JenisKelamin:
Fixed length character string, length 1
Domain FotoKaryawan:
Variable length varchar string, length 20
168 Domain KodePosKaryawan:
Fixed length character string, length 5
Domain KodePosisi:
Fixed length character string, length 3
Karyawan( KdKar
KodeKaryawan
NOT NULL,
NamaKar
NamaKaryawan
NOT NULL,
AlamatKar
AlamatKaryawan
NOT NULL,
EmailKar
EmailKaryawan
NOT NULL,
JenisKelamin
JenisKelamin
NOT NULL,
FotoKar
FotoKaryawan
NOT NULL,
KdPosKar
KodePosKaryawan
NOT NULL,
KdPosisi
KodePosisi
NOT NULL,
PRIMARY KEY (KdKar) FOREIGN KEY (KdPosKar) REFERENCES PosKaryawan (KdPosKar) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdPosisi)REFERENCES PosisiKaryawan(KdPosisi) ON UPDATE CASCADE ON DELETE NO ACTION);
2.
PosisiKaryawan
Domain KodePosisiKaryawan:
Fixed length character string, length 5
Domain PosisiKaryawan:
Variable length varchar string, length 40
PosisiKaryawan( KdPosisi
KodePosisiKaryawan
NOT NULL,
PosisiKar
PosisiKaryawan
NOT NULL,
PRIMARY KEY (KdPosisi) ); 3.
PosKaryawan
Domain KodePosKaryawan:
Fixed length character string, length 5
Domain KotaKaryawan:
Variable length varchar string, length 40
Domain KecamatanKaryawan:
Variable length varchar string, length 40
Domain KelurahanKaryawan:
Variable length varchar string, length 40
PosKaryawan(
169 KdPosKar
KodePosKaryawan
NOT NULL,
KotaKar
KotaKaryawan
NOT NULL,
KecKar
KecamatanKaryawan
NOT NULL,
KelKar
KelurahanKaryawan
NOT NULL,
PRIMARY KEY (KdPosKar) );
4.
Pelanggan
Domain KodePelanggan:
Fixed length character string, length 5
Domain NamaPelanggan:
Variable length varchar string, length 40
Domain AlamatPelanggan:
Variable length varchar string, length 100
Domain EmailPelanggan:
Variable length varchar string, length 50
Domain FaxPelanggan:
Variable length varchar string, length 15
Domain KodePosPelanggan:
Fixed length character string, length 5
Pelanggan( KdPel
KodePelanggan
NOT NULL,
NamaPel
NamaPelanggan
NOT NULL,
AlamatPel
AlamatPelanggan
NOT NULL,
EmailPel
EmailPelanggan
NOT NULL,
FaxPel
FaxPelanggan
NOT NULL,
KdPosPel
KodePosPelanggan
NOT NULL,
PRIMARY KEY (KdPel) FOREIGN KEY (KdPosPel) REFERENCES PosPelanggan (KdPosPel) ON UPDATE CASCADE ON DELETE NO ACTION);
5.
PosPelanggan
Domain KodePosPelanggan:
Fixed length character string, length 5
Domain KotaPelanggan:
Variable length varchar string, length 40
Domain KecamatanPelanggan:
Variable length varchar string, length 40
Domain KelurahanPelanggan:
Variable length varchar string, length 40
Pos Pelanggan( KdPosPel
KodePosPelanggan
NOT NULL,
170 KotaPel
KotaPelanggan
NOT NULL,
KecPel
KecamatanPelanggan
NOT NULL,
KelPel
KelurahanPelanggan
NOT NULL,
PRIMARY KEY (KdPosPel) );
6.
Pemasok
Domain KodePemasok:
Fixed length character string, length 5
Domain NamaPemasok:
Variable length varchar string, length 40
Domain AlamatPemasok:
Variable length varchar string, length 100
Domain EmailPemasok:
Variable length varchar string, length 5
Domain FaxPemasok:
Variable length varchar string, length 15
Domain KdPosPemasok:
Fixed length character string, length 5
Pemasok( KdPem
KodePemasok
NOT NULL,
NamaPem
NamaPemasok
NOT NULL,
AlamatPem
AlamatPemasok
NOT NULL,
EmailPem
EmailPemasok
NOT NULL,
FaxPem
FaxPemasok
NOT NULL,
KdPosPem
KodePosPemasok
NOT NULL,
PRIMARY KEY (KdPem) FOREIGN KEY (KdPosPemasok) REFERENCES PosPemasok (KdPosPemasok) ON UPDATE CASCADE ON DELETE NO ACTION);
7.
PosPemasok
Domain KodePosPemasok:
Fixed length character string, length 5
Domain KotaPemasok:
Variable length varchar string, length 40
Domain KecamatanPemasok:
Variable length varchar string, length 40
Domain KelurahanPemasok:
Variable length varchar string, length 40
PosPemasok( KdPosPem
KodePosPemasok
NOT NULL,
171 KotaPem
KotaPemasok
NOT NULL,
KecPem
KecamatanPemasok
NOT NULL,
KelPem
KelurahanPemasok
NOT NULL,
PRIMARY KEY (KdPosPem) );
8.
TugasProduksi
Domain KodeTugasProduksi:
Fixed length character string, length 7
Domain KeteranganProduksi:
Variable length varchar string, length 100
Domain KodeProduksi:
Fixed length character string, length 7
TugasProduksi( KdTugas
KodeTugasProduksi
NOT NULL,
Keterangan
KeteranganProduksi
NOT NULL,
KdProduksi
KodeProduksi
NOT NULL,
PRIMARY KEY (KdTugas) FOREIGN KEY (KdProduksi) REFERENCES Produksi (KdProduksi) ON UPDATE CASCADE ON DELETE NO ACTION);
9.
DetilTugas
Domain KodeKaryawan:
Fixed length character string, length 5
Domain KodeTugasProduksi:
Fixed length character string, length 7
Domain StatusTugas:
Fixed length character string, length 1
Domain JatuhTempoProduksi:
Datetime
Domain TanggalMulai:
Datetime
Doman TanggalSelesai:
Datetime
Domain DeskripsiTugas:
Variable length varchar string, length 80
DetilTugas( KdKar KdTugas StatusTugas
KodeKaryawan
NOT NULL,
KodeTugasProduksi
NOT NULL,
StatusTugas
NOT NULL,
Deadline
JatuhTempoProduksi
NOT NULL,
TglMulai
TanggalMulai
NOT NULL,
172 TglSelesai
TanggalSelesai
NOT NULL,
DeskTugas
DeskripsiTugas
NOT NULL,
PRIMARY KEY (KdKar, KdTugas) FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdTugas) REFERENCES TugasProduksi (KdTugas) ON UPDATE CASCADE ON DELETE NO ACTION); 10.
Pemasangan
Domain KodePemasangan:
Fixed length character string, length 7
Domain TanggalPemasangan:
Datetime
Domain FotoHasilPemasangan:
Variable length varchar string, length 30
Domain KodePemesanan:
Fixed length character string, length 7
Pemasangan( KdPemasangan
KodePemasangan
NOT NULL,
TglPemasangan
TanggalPemasangan
NOT NULL,
FotoHasil
FotoHasilPemasangan
NOT NULL,
KdPemesanan
KodePemesanan
NOT NULL,
PRIMARY KEY (KdPemasangan) FOREIGN KEY (KdPemasangan) REFERENCES Pemasangan (KdPemasangan) ON UPDATE CASCADE ON DELETE NO ACTION);
11.
DetilPemasangan
Domain KodeKaryawan:
Fixed length character string, length 5
Domain KodePemasangan:
Fixed length character string, length 7
Domain StatusPemasangan:
Fixed length character string, length 1
DetilPemasangan( KdKar
KodeKaryawan
NOT NULL,
KdPemasangan
KodePemasangan
NOT NULL,
StatusPemasangan
StatusPemasangan
NOT NULL,
173 PRIMARY KEY (KdKar, KdPemasangan) FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdPemasangan) REFERENCES Pemasangan (KdPemasangan) ON UPDATE CASCADE ON DELETE NO ACTION); 12.
RumusBahanBaku
Domain KodeRumusBahan:
Fixed length character string, length 5
Domain NamaRumusBahan:
Variable length varchar string, length 40
Domain GambarRancangan:
Variable length varchar string, length 30
Domain DeskripsiRumus:
Variable length varchar string, length 100
RumusBahanBaku( KdRumus
KodeRumusBahan
NOT NULL,
NamaRumus
NamaRumusBahan
NOT NULL,
Gambar
GambarRancangan
NOT NULL,
Deskripsi
DeskripsiRumus
NOT NULL,
PRIMARY KEY (KdRumus) );
13.
DetilRumus
Domain KodeRumusBahan:
Fixed length character string, length 5
Domain KodeBahanBaku:
Fixed length character string, length 5
Domain SatuanRumus:
Fixed length character string, length 1
Domain RumusUkuran:
Variable length varchar string, length 100
DetilRumus( KdRumus
KodeRumusBahan
NOT NULL,
KdBahanBaku
KodeBahanBaku
NOT NULL,
SatuanRumus
SatuanRumus
NOT NULL,
RumusUkuran
RumusUkuran
NOT NULL,
PRIMARY KEY (KdRumus, KdBahanBaku) FOREIGN KEY (KdRumus) REFERENCES RumusBahanBaku (KdRumus) ON UPDATE CASCADE ON DELETE NO ACTION
174 FOREIGN KEY (KdBahanBaku) REFERENCES BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION);
14.
Pembelian
Domain KodePembelian:
Fixed length character string, length 7
Domain TanggalPembelian:
Datetime
Domain StatusPembelian:
Fixed length character string, length 1
Domain KodeKaryawan:
Fixed length character string, length 5
Domain KodePengajuanBeli:
Fixed length character string, length 7
Domain KodePemasok:
Fixed length character string, length 5
Pembelian( KdPembelian
KodePembelian
NOT NULL,
TglPembelian
TanggalPembelian
NOT NULL,
StatusPembelian
StatusPembelian
NOT NULL,
KdKar
KodeKaryawan
NOT NULL,
KdPengajuan
KodePengajuanBeli
NOT NULL,
KdPem
KodePemasok
NOT NULL,
PRIMARY KEY (KdPembelian) FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN
KEY
(KdPengajuan)
REFERENCES
PengajuanPembelian
(KdPengajuan) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdPem) REFERENCES Pemasok (KdPem) ON UPDATE CASCADE ON DELETE NO ACTION);
15.
DetilPembelian
Domain KodePembelian:
Fixed length character string, length 7
Domain KodeBahanBaku:
Fixed length character string, length 5
Domain JumlahBeli:
Small Integer
Domain HargaBeli:
Integer
DetilPembelian(
175 KdPembelian
KodePembelian
NOT NULL,
KdBahanBaku
KodeBahanBaku
NOT NULL,
JumlahBeli
JumlahPembelian
NOT NULL,
HargaBeli
HargaBahanBaku
NOT NULL,
PRIMARY KEY (KdPembelian, KdBahanBaku) FOREIGN KEY (KdPembelian) REFERENCES Pembelian (KdPembelian) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdBahanBaku) REFERENCES BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION);
16.
PengajuanPembelian
Domain KodePengajuanBeli:
Fixed length character string, length 7
Domain TanggalPengajuanBeli:
Datetime
Domain StatusPengajuanBeli:
Fixed length character string, length 1
Domain KodeKaryawan:
Fixed length character string, length 5
PengajuanPembelian( KdPengajuan
KodePengajuanBeli
NOT NULL,
TglPengajuan
TanggalPengajuanBeli
NOT NULL,
StatusPengajuan
StatusPengajuanBeli
NOT NULL,
KdKar
KodeKaryawan
NOT NULL,
PRIMARY KEY (KdPengajuan) FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION);
17.
DetilPengajuanBeli
Domain KodePengajuanBeli:
Fixed length character string, length 7
Domain KodeBahanBaku:
Fixed length character string, length 5
Domain JumlahPengajuanBeli:
Small Integer
DetilPengajuanBeli( KdPengajuan
KodePengajuanBeli
NOT NULL,
KdBahanBaku
KodeBahanBaku
NOT NULL,
176 JumlahAju
JumlahPengajuanBeli
NOT NULL,
PRIMARY KEY (KdPengajuan, KdBahanBaku) FOREIGN
KEY
(KdPengajuan)
REFERENCES
PengajuanPembelian
(KdPengajuan) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdBahanBaku) REFERENCES BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION);
18.
ReturPembelian
Domain KodeReturBeli:
Fixed length character string, length 7
Domain TanggalReturBeli:
Datetime
Domain StatusReturBeli:
Fixed length character string, length 1
Domain AlasanReturBeli:
Variable length varchar string, length 20
Domain KodeKaryawan:
Fixed length character string, length 5
Domain KodePembelian:
Fixed length character string, length 7
ReturPembelian( KdReturPemb
KodeReturBeli
NOT NULL,
TglRetur
TanggalReturBeli
NOT NULL,
StatusRetur
StatusReturBeli
NOT NULL,
AlasanRetur
AlasanReturBeli
NOT NULL,
KdKar
KodeKaryawan
NOT NULL,
KdPembelian
KodePembelian
NOT NULL,
PRIMARY KEY (KdReturPemb) FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdPembelian) REFERENCES Pembelian (KdPembelian) ON UPDATE CASCADE ON DELETE NO ACTION);
19.
DetilReturBeli
Domain KodeReturBeli:
Fixed length character string, length 7
Domain KodeBahanBaku:
Fixed length character string, length 5
Domain JumlahReturBeli:
Small Integer
177 DetilReturBeli( KdReturPemb
KodeReturBeli
NOT NULL,
KdBahanBaku
KodeBahanBaku
NOT NULL,
JumlahRetur
JumlahReturBeli
NOT NULL,
PRIMARY KEY (KdReturPemb, KdBahanBaku) FOREIGN KEY (KdReturPemb) REFERENCES ReturPembelian (KdReturPemb) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdBahanBaku) REFERENCES BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION);
20.
PengambilanBahanBaku
Domain KodeAmbilBahan:
Fixed length character string, length 7
Domain TanggalAmbilBahan: Datetime Domain KodeKaryawan:
Fixed length character string, length 5
PengambilanBahanBaku( KdPengambilan
KodeAmbilBahan
NOT NULL,
TglPengambilan
TanggalAmbilBahan
NOT NULL,
KdKar
KodeKaryawan
NOT NULL,
PRIMARY KEY (KdPengambilan) FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION); 21.
DetilPengambilanBahan
Domain KodeAmbilBahan:
Fixed length character string, length 7
Domain KodeBahanBaku:
Fixed length character string, length 5
Domain JumlahAmbilBahan: Small Integer DetilPengambilanBahan( KdPengambilan
KodeAmbilBahan
NOT NULL,
KdBahanBaku
KodeBahanBaku
NOT NULL,
JumlahAmbil
JumlahAmbilBahan
NOT NULL,
PRIMARY KEY (KdPengambilan, KdBahanBaku)
178 FOREIGN KEY (KdPengambilan) REFERENCES PengambilanBahanBaku (KdPengambilan) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdBahanBaku) REFERENCES BahanBaku (KdBahanBaku) ON UPDATE CASCADE ON DELETE NO ACTION);
22.
TelpKayawan
Domain KodeKaryawan:
Fixed length character string, length 5
Domain TeleponKaryawan:
Variable length varchar string, length 15
TelpKaryawan( KdKar
KodeKaryawan
NOT NULL,
TelpKar
TeleponKaryawan
NOT NULL,
PRIMARY KEY (TelpKar) FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION);
23.
TelpPelanggan
Domain KodePelanggan:
Fixed length character string, length 5
Domain TeleponPelanggan:
Variable length varchar string, length 15
TelpPelanggan( KdPel
KodePelanggan
NOT NULL,
TelpPel
TeleponPelanggan
NOT NULL,
PRIMARY KEY (TelpPel) FOREIGN KEY (KdPel) REFERENCES Pelanggan (KdPel) ON UPDATE CASCADE ON DELETE NO ACTION);
24.
TelpPemasok
Domain KodePemasok:
Fixed length character string, length 5
Domain TeleponPemasok:
Variable length varchar string, length 15
TelpPemasok( KdPem
KodePemasok
NOT NULL,
179 TelpPem
TeleponPemasok
NOT NULL,
PRIMARY KEY (TelpPem) FOREIGN KEY (KdPem) REFERENCES Pemasok (KdPem) ON UPDATE CASCADE ON DELETE NO ACTION);
25.
BahanBaku
Domain KodeBahanBaku:
Fixed length character string, length 5
Domain NamaBahanBaku:
Variable length varchar string, length 40
Domain KodeTipeBahan:
Fixed length character string, length 3
Domain KodeSatuanBahan:
Fixed length character string, length 3
Domain HargaBahanBaku:
Integer
Domain StokBahanBaku:
SmallInteger
Domain StokMinimalBahan:
SmallInteger
BahanBaku( KdBahanBaku
KodeBahanBaku
NOT NULL,
NamaBahanBaku
NamaBahanBaku
NOT NULL,
KdTipeBahan
KodeTipeBahan
NOT NULL,
KdSatuanBahan
KodeSatuanBahan
NOT NULL,
Harga
HargaBahanBaku
NOT NULL,
Stok
StokBahanBaku
NOT NULL,
StokMin
StokMinimalBahan
NOT NULL,
PRIMARY KEY (KdBahanBaku) FOREIGN KEY (KdTipeBahan) REFERENCES TipeBahan (KdTipeBahan) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdSatuanBahan) REFERENCES SatuanBahan (KdSatuanBahan) ON UPDATE CASCADE ON DELETE NO ACTION);
26.
TipeBahan
Domain KodeTipeBahanBaku:
Fixed length character string, length 3
Domain TipeBahanBaku:
Variable length varchar string, length 20
TipeBahan(
180 KdTipeBahan
KodeTipeBahanBaku
NOT NULL,
TipeBahanBaku
TipeBahanBaku
NOT NULL,
PRIMARY KEY (KdTipeBahan) ); 27.
SatuanBahan
Domain KodeSatuanBahanBaku:
Fixed length character string, length 3
Domain SatuanBahanBaku:
Variable length varchar string, length 5
SatuanBahan( KdSatuanBahan
KodeSatuanBahanBaku
NOT NULL,
SatuanBahanBaku
SatuanBahanBaku
NOT NULL,
PRIMARY KEY (KdSatuanBahan) );
28.
Produksi
Domain KodeProduksi:
Fixed length character string, length 7
Domain NamaBarangProduksi:
Variable length varchar string, length 40
Domain TanggalMulaiProduksi:
Datetime
Domain StatusProduksi:
Fixed length character string, length 1
Domain JumlahProduksi:
Small Integer
Domain UkuranTinggi:
Small Integer
Domain UkuranLebar:
Small Integer
Domain HargaProduksi:
Integer
Domain KodeRumusBahan:
Fixed length character string, length 5
Domain KodePemesanan:
Fixed length character string, length 7
Produksi( KdProduksi
KodeProduksi
NOT NULL,
NamaBarang
NamaBarangProduksi
NOT NULL,
TglMulaiProduksi
TanggalMulaiProduksi
NOT NULL,
StatusProduksi
StatusProduksi
NOT NULL,
JumlahProduksi
JumlahProduksi
NOT NULL,
UkTinggi
UkuranTinggi
NOT NULL,
UkLebar
UkuranLebar
NOT NULL,
181 HargaJual
HargaProduksi
NOT NULL,
KdRumus
KodeRumusBahan
NOT NULL,
KdPemesanan
KodePemesanan
NOT NULL,
PRIMARY KEY (KdProduksi) FOREIGN KEY (KdRumus) REFERENCES RumusBahanBaku (KdRumus) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdPemesanan) REFERENCES Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION);
29.
TargetProduksi
Domain TanggalPengiriman:
Date
Domain TanggalPemasangan:
Date
Domain KeteranganTarget:
Variable length varchar string, length 100
Domain KodePemesanan:
Fixed length character string, length 7
TargetProduksi( TglPengiriman
TanggalPengiriman
NOT NULL,
TglPemasangan
TanggalPemasangan
NOT NULL,
Keterangan
KeteranganTarget
NOT NULL,
KdPemesanan
KodePemesanan
NOT
NULL,PRIMARY KEY (TglPengiriman, TglPemasangan, KdPemesanan) FOREIGN KEY (KdPemesanan) REFERENCES Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION);
30.
PembayaranPembelian
Domain KodePembayaranBeli:
Fixed length character string, length 7
Domain TanggalPembayaranBeli:
Datetime
Domain JumlahBayar:
Integer
Domain KodePembelian:
Fixed length character string, length 7
Domain KodeKaryawan:
Fixed length character string, length 5
PembayaranPembelian( KdPembPembelian
KodePembayaranBeli
NOT NULL,
182 TglPembPembelian
TanggalPembayaranBeli
NOT NULL,
JumlahBayar
JumlahBayar
NOT NULL,
KdPembelian
KodePembelian
NOT NULL,
KdKar
KodeKaryawan
NOT NULL,
PRIMARY KEY (KdPembPembelian) FOREIGN KEY (KdPembelian) REFERENCES Pembelian (KdPembelian) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION);
31.
BarangJadi
Domain KodeBarangJadi:
Fixed length character string, length 7
Domain TanggalBarangMasuk:
Datetime
Domain StatusBarangJadi:
Fixed length character string, length 1
Domain KodePengiriman:
Fixed length character string, length 7
Domain KodeProduksi:
Fixed length character string, length 7
BarangJadi( KdBarangJadi
KodeBarangJadi
NOT NULL,
TglBarangMasuk
TanggalBarangMasuk
NOT NULL,
StatusBarangJadi
StatusBarangJadi
NOT NULL,
KdPengiriman
KodePengiriman
NOT NULL,
KdProduksi
KodeProduksi
NOT NULL,
PRIMARY KEY (KdBarangJadi) FOREIGN KEY (KdPengiriman) REFERENCES Pengiriman (KdPengiriman) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdProduksi) REFERENCES Produksi (KdProduksi) ON UPDATE CASCADE ON DELETE NO ACTION);
183 32.
Pengiriman
Domain KodePengiriman:
Fixed length character string, length 7
Domain TanggalPengiriman:
Datetime
Domain StatusPengiriman:
Fixed length character string, length 1
Domain KodePemesanan:
Fixed length character string, length 7
Domain KodeKaryawan:
Fixed length character string, length 5
Pengiriman( KdPengiriman
KodePengiriman
NOT NULL,
TglPengiriman
TanggalPengiriman
NOT NULL,
StatusPengiriman
StatusPengiriman
NOT NULL,
KdPemesanan
KodePemesanan
NOT NULL,
KdKar
KodeKaryawan
NOT NULL,
PRIMARY KEY (KdPengiriman) FOREIGN KEY (KdPemesanan) REFERENCES Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION);
33.
Kontrak
Domain KodeKontrak:
Fixed length character string, length 7
Domain SpesifikasiKontrak:
Variable length varchar string, length200
Domain KeteranganKontrak:
Variable length varchar string, length 200
Domain DiskonPemesanan:
Tiny Integer
Domain TanggalKontrak:
Datetime
Domain StatusKontrak:
Fixed length character string, length 1
Domain KodeKaryawan:
Fixed length character string, length 5
Domain KodePemesanan:
Fixed length character string, length 7
Kontrak( KdKontrak
KodeKontrak
NOT NULL,
Spesifikasi
SpesifikasiKontrak
NOT NULL,
Keterangan
KeteranganKontrak
NOT NULL,
184 Diskon
DiskonPemesanan
NOT NULL,
TglKontrak
TanggalKontrak
NOT NULL,
StatusKontrak
StatusKontrak
NOT NULL,
KdKar
KodeKaryawan
NOT NULL,
KdPemesanan
KodePemesanan
NOT NULL,
PRIMARY KEY (KdKontrak) FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdPemesanan) REFERENCES Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION);
34.
Pemesanan
Domain KodePemesanan:
Fixed length character string, length 7
Domain TanggalPemesanan:
Datetime
Domain TglPengajuanPemesanan:
Datetime
Domain GmbPengajuanPemesanan:
Variable length varchar string, length 30
Domain StatusPengPemesanan:
Fixed length character string, length 1
Domain NamaProyek:
Variable length varchar string, length 40
Domain AlamatPemesanan:
Variable length varchar string, length 100
Domain KodePelanggan:
Fixed length character string, length 5
Domain KodeKaryawan:
Fixed length character string, length 5
Domain KodePosPemesanan:
Fixed length character string, length 5
Pemesanan( KdPemesanan
KodePemesanan
NOT NULL,
TglPemesanan
TanggalPemesanan
NOT NULL,
TglPengPemesanan
TglPengajuanPemesanan
NOT NULL,
GmbPengPemesanan
GmbPengajuanPemesanan
NOT NULL,
StatusPengPemesanan
StatusPengPemesanan
NOT NULL,
NamaProyek
NamaProyek
NOT NULL,
AlamatPemesanan
AlamatPemesanan
NOT NULL,
KdPel
KodePelanggan
NOT NULL,
185 KdKar
KodeKaryawan
NOT NULL,
KdPosPemesanan
KodePosPemesanan
NOT NULL,
PRIMARY KEY (KdPemesanan) FOREIGN KEY (KdPel) REFERENCES Pelanggan (KdPel) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdPosPemesanan) REFERENCES PosPemesanan (KdPosPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION);
35.
PosPemesanan
Domain KodePosPemesanan:
Fixed length character string, length 5
Domain KotaPemesanan:
Variable length varchar string, length 40
Domain KecamatanPemesanan:
Variable length varchar string, length 40
Domain KelurahanPemesanan:
Variable length varchar string, length 40
PosPemesanan( KdPosPemesanan
KodePosPemesanan
NOT NULL,
KotaPemesanan
KotaPemesanan
NOT NULL,
KecPemesanan
KecamatanPemesanan
NOT NULL,
KelPemesanan
KelurahanPemesanan
NOT NULL,
PRIMARY KEY (KdPosPemesanan) );
36.
RancanganKusen
Domain KodeRancanganKusen:
Fixed length character string, length 7
Domain TanggalRancanganKusen:
Datetime
Domain GmbRancanganKusen:
Variable length varchar string, length 30
Domain StatusRancanganKusen:
Fixed length character string, length 1
Domain UkuranLubang:
Small Integer
Domain UkuranJendela:
Small Integer
Domain KeteranganRancangan:
Variable length varchar string, length 100
Domain KodePemesanan:
Fixed length character string, length 7
186 RancanganKusen( KdRancangan
KodeRancanganKusen
NOT NULL,
TglRancangan
TanggalRancanganKusen
NOT NULL,
GmbRancangan
GambarRancanganKusen
NOT NULL,
StatusRancangan
StatusRancanganKusen
NOT NULL,
UkLubang
UkuranLubang
NOT NULL,
UkJendela
UkuranJendela
NOT NULL,
Keterangan
KeteranganRancangan
NOT NULL,
KdPemesanan
KodePemesanan
NOT NULL,
PRIMARY KEY (KdRancangan) FOREIGN KEY (KdPemesanan) REFERENCES Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION);
37.
PembayaranPemesanan
Domain KdPembayaranPesan:
Fixed length character string, length 7
Domain TglPembayaranPesan:
Datetime
Domain JumlahBayar:
Integer
Domain KdKar:
Fixed length character string, length 5
Domain KdPemesanan:
Fixed length character string, length 7
PembayaranPemesanan( KdPembPemesanan
KodePembayaranPesan
NOT NULL,
TglPembPemesanan
TanggalPembayaranPesan
NOT NULL,
JumlahBayar
JumlahBayar
NOT NULL,
KdKar
Kode Karyawan
NOT NULL,
KdPemesanan
Kode Pemesanan
NOT NULL,
PRIMARY KEY (KdPembPemesanan) FOREIGN KEY (KdKar) REFERENCES Karyawan (KdKar) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (KdPemesanan) REFERENCES Pemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION);
187 2.
Merancang representasi untuk derived data Tujuannya untuk menentukan cara untuk mewakili derived data yang
berada dalam model data logikal dalam DBMS yang dipilih. Terdapat beberapa atribut derived data yang ditemukan, yaitu: a.
Atribut TotalPembelian pada DetilPembelian yang merepresentasikan besar pembelian. Atribut ini didapat dari perkalian antara JumlahBeli dan HargaBeli.
b.
Attribut TotalHargaProduksi pada Produksi yang merepresentasikan besar harga produksi. Attribut ini didapat dari perkalian antara JumlahProduksi dan HargaProduksi. Berdasarkan pertimbangan performa dan efisiensi space maka atribut
TotalPembelian dan TotalHargaProduksi tidak direpresentasikan secara fisik di dalam database. Kedua atribut tersebut dapat diperoleh dengan menggunakan query sederhana. 3.
Merancang general constraint Tujuannya untuk menentukan general constraint untuk DBMS yang
dipilih. Terdapat beberapa general constraint yang sudah ditentukan sebelumnya, yaitu: a.
Seorang karyawan produksi hanya dapat melakukan satu tugas produksi pada waktu yang bersamaan. CREATE TRIGGER tugasMaks BEFORE INSERT ON DetilTugas FOR EACH ROW BEGIN DECLARE msg VARCHAR(255); IF EXISTS( SELECT Kdkar FROM detiltugas WHERE StatusTugas='1' and Kdkar=new.Kdkar) THEN SET msg = concat('Melanggar General Constraint: Karyawan hanya boleh memiliki satu tugas yang sedang aktif'); SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg; END IF;
188 END b.
Tugas produksi harus bisa diselesaikan sesuai tanggal pengiriman yang sudah ditentukan. CREATE TRIGGER targetPengiriman BEFORE INSERT ON Pengiriman FOR EACH ROW BEGIN DECLARE msg VARCHAR(255); IF EXISTS( SELECT a.TglPengiriman FROM TargetProduksi a WHERE new.TglPengiriman > a.TglPengiriman AND new.KdPemesanan = a.KdPemesanan) THEN SET msg = concat('Melanggar General Constraint: Tanggal Pengiriman tidak boleh lebih lama dari Tanggal Pengiriman pada TargetProduksi'); SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg; END IF; END
c.
Tugas produksi harus bisa diselesaikan sesuai tanggal pemasangan yang sudah ditentukan. CREATE
TRIGGER
targetPemasangan
BEFORE
INSERT
ON
Pemasangan FOR EACH ROW BEGIN DECLARE msg VARCHAR(255); IF EXISTS( SELECT a.TglPemasangan FROM TargetProduksi a WHERE
new.TglPemasangan
>
a.TglPemasangan
AND
new.KdPemesanan = a.KdPemesanan) THEN SET msg = concat('Melanggar General Constraint: Tanggal Pemasangan tidak boleh lebih lama dari Tanggal Pemasangan pada TargetProduksi'); SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg; END IF; END
189 3.3.4.2. Merancang File Organizations dan Indexes Tujuannya untuk menentukan file organizationsyang optimal untuk menyimpan relasi-relasi dasar dan indexyang diperlukan. Terdapat beberapa langkah dari tahapan ini, yaitu: 1.
Menganalisa transaksi Tujuannya untuk memahami fungsi dari transaksi yang akan dijalankan
pada basis data dan menganalisa transaksi-transaksi yang penting. Berikut merupakan transaksi-transaksi yang ditentukan: 1.
Memasukkan dan mengubah data pengajuan pemesanan
2.
Memasukkan dan mengubah data pelanggan
3.
Memasukkan dan mengubah data rumus bahan baku
4.
Memasukkan dan mengubah data produksi
5.
Memasukkan dan mengubah data kontrak
6.
Memasukkan dan mengubah data rancangan kusen pintu jendela
7.
Memasukkan dan mengubah data pemesanan
8.
Memasukkan dan mengubah data target produksi
9.
Memasukkan dan mengubah data tugas produksi
10.
Memasukkan dan mengubah data pengambilan bahan baku
11.
Memasukkan dan mengubah data barang jadi
12.
Memasukkan dan mengubah data bahan baku
13.
Memasukkan dan mengubah data pemasok
14.
Memasukkan dan mengubah data pengajuan pembelian
15.
Memasukkan dan mengubah data pembelian
16.
Memasukkan dan mengubah data retur pembelian
17.
Memasukkan dan mengubah data pengiriman
18.
Memasukkan dan mengubah data pemasangan
19.
Memasukkan dan mengubah data karyawan
20.
Memasukkan dan mengubah data pembayaran pemesanan
21.
Memasukkan dan mengubah data pembayaran pembelian
22.
Menampilkan pengajuan pemesanan berdasarkan identitas pelanggan.
23.
Menampilkan data bahan baku berdasarkan rumus bahan baku
190 24.
Menampilkan data produksi berdasarkan nomor pengajuan pemesanan
25.
Menampilkan rancangan kusen pintu jendela berdasarkan nomor pengajuan pemesanan
26.
Menampilkan kontrak sesuai dengan pemesanan yang diajukan
27.
Menampilkan pemesanan yang dibuat oleh karyawan
28.
Menampilkan target produksi berdasarkan nomor pengajuan pemesanan
29.
Menampilkan data tugas produksi dan
nama karyawan yang terlibat
didalamnya 30.
Menampilkan data pengambilan bahan baku berdasarkan nama karyawan
31.
Menampilkan data barang jadi berdasarkan kode produksi
32.
Menampilkan data pembelian berdasarkan nomor pengajuan pembelian
33.
Menampilkan data retur pembelian berdasarkan nomor pembelian
34.
Menampilkan data pengiriman berdasarkan nomor pengajuan pemesanan
35.
Menampilkan data pemasangan berdasarkan nomor pengajuan pemesanan
36.
Menampilkan detil pengajuan pemesanan yang dibuat berdasarkan data karyawan
37.
Menampilkan kontrak yang diurus oleh karyawan
38.
Menampilkan data pengajuan pembelian yang diajukan oleh karyawan
39.
Menampilkan data pembelian yang dibuat oleh karyawan
40.
Menampilkan data retur pembelian yang diurus oleh karyawan
41.
Menampilkan data pengiriman dan karyawan yang terlibat di dalamnya
42.
Menampilkan data pemasangan yang dilakukan oleh karyawan
43.
Menampilkan data barang jadi yang dikirim
44.
Menampilkan rumus yang digunakan untuk produksi
45.
Menampilkan tugas produksi sesuai nomor produksi
46.
Menampilkan bahan baku yang dibeli melalui pembelian
47.
Menampilkan pembelian berdasarkan nama pemasok
48.
Menampilkan daftar bahan baku dalam pengajuan pembelian
49.
Menampilkan daftar bahan baku dalam retur pembelian
50.
Menampilkan daftar bahan baku dalam pengambilan bahan baku
191 51.
Menampilkan data pembayaran pemesanan berdasarkan nama karyawan yang mengurusnya dan nomor pemesanan
52.
Menampilkan data pembayaran pembelian berdasarkan nama karyawan yang mengurusnya dan nomor pembelian
192 Tabel 3.50Matriks Menganalisa Transaksi 1-4 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(1) R U D X X
I
(2) R U D X X
I
(3) R U D X X
I
(4) R U X X
X X X X X X
X X X X X X
X X X
X X X X X X
D
193 Tabel 3.51Matriks Menganalisa Transaksi 5-8 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(5) R U D I X X
(6) R U D I X X
(7) R U D X X
I
(8) R U D X X
X X X
X X X X X X X X
X X X X
194 Tabel 3.52Matriks Menganalisa Transaksi 9-12 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(9) R U D I X X
(10) R U D I X X
(11) R U D X X
I
(12) R U D X X
X X X X X X
X X X X X X
X X X X X X X X X
X X X
195 Tabel 3.53Matriks Menganalisa Transaksi 13-16 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(13) R U D I X X
(14) R U D I X X
(15) R U D X X
I
(16) R U D X X
X X X X X X
X X X X X X X X X X X X X X X X X X
196 Tabel 3.54Matriks Menganalisa Transaksi 17-20 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(17) R U D I X X
(18) R U D I X X X X X
(19) R U D X X X X X X
I
(20) R U D X X
X X X X X X
X X X
X X X
197 Tabel 3.55Matriks Menganalisa Transaksi 21-24
Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(21) R U D I X X
(22) R U D I
(23) R U D
I
(24) R U D
X X
X X
X X X X X X X
X X
X X
198 Tabel 3.56Matriks Menganalisa Transaksi 24-28 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(25) R U D I
(26) R U D I
(27) R U D X X
I
(28) R U D
X
X X X
X X X
X X
X X
199 Tabel 3.57Matriks Menganalisa Transaksi 29-32 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(29) R U D I X X
(30) R U D I X X
(31) R U D
I
(32) R U D
X X
X X X X
X X
X
X
200 Tabel 3.58Matriks Menganalisa Transaksi 33-36 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(33) R U D I
(34) R U D I
(35) R U D
I
(36) R U D X X X
X X
X X
X X
X X X
X X
X X
201 Tabel 3.59Matriks Menganalisa Transaksi 37-40
Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(37) R U D I X X X
(38) R U D I X X X
(39) R U D X X X
I
(40) R U D X X X
X X X X X X
X
202 Tabel 3.60Matriks Menganalisa Transaksi 41-44 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(41) R U D I X X X
(42) R U D I X X X
(43) R U D
I
(44) R U D
X X X X
X
X
X X
203 Tabel 3.61Matriks Menganalisa Transaksi 45-48 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(45) R U D I
(46) R U D I
(47) R U D
I
(48) R U D
X X X X
X X
X X X X
X X X X
X X X
204 Tabel 3.62Matriks Menganalisa Transaksi 49-52 Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
(49) R U D I
(50) R U D I
(51) R U D X X X
I
(52) R U D X X X
X X
X X X X
X X X
X X X
X
X
X
205 Berdasarkan matriks tersebut, dapat dilihat bahwa tabel yang paling sering diakses adalah tabel Karyawan, yaitu sebanyak tiga belas transaksi dari seluruh transaksi yang ada.Oleh karena itu, transaksi-transaksi yang berkaitan dengan tabel Karyawan harus lebih diperhatikan. Transaksi-transaksi tersebut yaitu: 1.
Memasukkan dan mengubah data karyawan
2.
Menampilkan pemesanan yang dibuat oleh karyawan
3.
Menampilkan data tugas produksi dan
nama karyawan yang terlibat
didalamnya 4.
Menampilkan data pengambilan bahan baku berdasarkan nama karyawan
5.
Menampilkan detil pengajuan pemesanan yang dibuat berdasarkan data karyawan
6.
Menampilkan kontrak sesuai dengan identitas pelanggan dan pemesanan yang diajukan
7.
Menampilkan data pengajuan pembelian yang diajukan oleh karyawan
8.
Menampilkan data pembelian yang dibuat oleh karyawan
9.
Menampilkan data retur pembelian yang diurus oleh karyawan
10.
Menampilkan data pengiriman dan karyawan yang terlibat di dalamnya
11.
Menampilkan data pemasangan yang dilakukan oleh karyawan
12.
Menampilkan data pembayaran pemesanan berdasarkan nama karyawan yang mengurusnya
13.
Menampilkan data pembayaran pembelian berdasarkan nama karyawan yang mengurusnya
2.
Memilih file organizations Tujuannya untuk untuk menentukan file organizations yang efisien untuk
setiap relasi dasar. Terdapat beberapa tipe file organizations yang dapat dipilih untuk mengatur penyimpanan indeks secara fisik yaitu,Heap, Hash, Indexed Sequential Access Method (ISAM), B+ Tree dan Clusters. Namun, DBMS yang dipilih adalah MySQL yang tidak memungkinkan untuk memilihfile organizations secara bebas. Pada MySQL, tipe indeksfile organizations yang digunakan bergantung pada
206 database engine yang dipilih sedangkan database engine yang dipilih untuk MySQL adalah innoDB yang menggunakan organisasi file B+ tree untuk index.
3.
Memilih index Tujuannya
untuk
menentukan
penambahan
indeks
yang
akan
meningkatkan performa sistem. Secara umum,terdapat dua jenis indeks yang sering digunakan, yaitu: a.
Primary Index adalah indeks yang pasti akan terbentuk ketika sebuah primary key diciptakan. Dengan kata lain, primary index memiliki sifat yang sama dengan primary key, yaitu bersifat unik dan tidak boleh null. Dalam MySQL, primary index disebut juga cluster index.
b.
Secondary Index adalah indeks yang memiliki nilai tidak unik atau identik dalam semua kolom indeks. Dalam MySQL, secondary index juga disebut non cluster index. Berikut terdapat tabel-tabel yang sudah ditentukan indeks untuk setiap
tabel yang ada basis data:
207 Tabel 3.63Penentuan Indeks No
1
Entitas
Karyawan
Indeks
Nama Indeks
Tipe Indeks
KdKar
PRIMARY
Primary
KdPosKar
KdPosKar
Secondary
KdPosisi
KdPosisi
Secondary
2
PosisiKaryawan
KdPosisi
PRIMARY
Primary
3
PosKaryawan
KdPosKar
PRIMARY
Primary
4
Pelanggan
KdPel
PRIMARY
Primary
KdPosPel
KdPosPel
Secondary
5
PosPelanggan
KdPosPel
PRIMARY
Primary
6
Pemasok
KdPem
PRIMARY
Primary
KdPosPem
KdPosPem
Secondary
7
PosPemasok
KdPosPem
PRIMARY
Primary
8
TugasProduksi
KdTugas
PRIMARY
Primary
KdProduksi
KdProduksi
Secondary
9
DetilTugas
KdKar
PRIMARY
Primary
KdTugas
PRIMARY
Primary
10
Pemasangan
KdPemasangan
PRIMARY
Primary
KdPemesanan
KdPemesanan
Secondary
11
DetilPemasangan
KdKar
PRIMARY
Primary
KdPemasangan
PRIMARY
Primary
12
RumusBahanBaku
KdRumus
PRIMARY
Primary
13
DetilRumus
KdRumus
PRIMARY
Primary
KdBahanBaku
PRIMARY
Primary
KdPembelian
PRIMARY
Primary
KdKar
KdKar
Secondary
KdPengajuan
KdPengajuan
Secondary
KdPem
KdPem
Secondary
KdPembelian
PRIMARY
Secondary
KdBahanBaku
PRIMARY
Primary
KdPengajuan
PRIMARY
Primary
KdKar
KdKar
Secondary
14
Pembelian
15
DetilPembelian
16
PengajuanPembelian
208
No
Entitas
17
DetilPengajuanBeli
18
19
20
21
Indeks
Nama Indeks
Tipe Indeks
KdPengajuan
PRIMARY
Primary
KdBahanBaku
PRIMARY
Primary
KdReturPemb
PRIMARY
Primary
KdKar
KdKar
Secondary
KdPembelian
KdPembelian
Secondary
KdReturPemb
PRIMARY
Primary
KdBahanBaku
PRIMARY
Primary
PengambilanBahan
KdPengambilan
PRIMARY
Primary
Baku
KdKar
KdKar
Secondary
DetilPengambilan
KdPengambilan
PRIMARY
Primary
Bahan
KdBahanBaku
PRIMARY
Primary
TelpKar
PRIMARY
Primary
KdKar
KdKar
Secondary
TelpPel
PRIMARY
Primary
KdPel
KdPel
Secondary
TelpPem
PRIMARY
Primary
KdPem
KdPem
Secondary
KdBahanBaku
PRIMARY
Primary
KdTipeBahan
KdTipeBahan
Secondary
KdSatuanBahan
KdSatuanBahan
Secondary
ReturPembelian
DetilReturBeli
22
TelpKaryawan
23
TelpPelanggan
24
TelpPemasok
25
BahanBaku
26
TipeBahan
KdTipeBahan
PRIMARY
Primary
27
SatuanBahan
KdSatuanBahan
PRIMARY
Primary
KdProduksi
PRIMARY
Primary
KdRumus
KdRumus
Secondary
KdPemesanan
KdPemesanan
Clustering
TglPengiriman
PRIMARY
Secondary
TglPemasangan
PRIMARY
Secondary
KdPemesanan
PRIMARY
Secondary
28
29
Produksi
TargetProduksi
209 No
30
31
32
33
34
Entitas Pembayaran Pembelian
BarangJadi
Pengiriman
Kontrak
Pemesanan
35
PosPemesanan
36
RancanganKusen
37
Pembayaran Pemesanan
Indeks
Nama Indeks
Tipe Indeks
KdPembPembelian
PRIMARY
Primary
KdPembelian
KdPembelian
Secondary
KdKar
KdKar
Secondary
KdBarangJadi
PRIMARY
Primary
KdPengiriman
KdPengiriman
Secondary
KdProduksi
KdProduksi
Secondary
KdPengiriman
PRIMARY
Primary
KdKar
KdKar
Secondary
KdPemesanan
KdPemesanan
Secondary
KdKontrak
PRIMARY
Primary
KdKar
KdKar
Secondary
KdPemesanan
KdPemesanan
Secondary
KdPemesanan
PRIMARY
Primary
KdPel
KdPel
Secondary
KdKar
KdKar
Secondary
KdPosPemesanan
KdPosPemesanan
Secondary
KdPosPemesanan
PRIMARY
Primary
KdRancangan
PRIMARY
Primary
KdPemesanan
KdPemesanan
Secondary
KdPembPemesanan PRIMARY
Primary
KdKar
KdKar
Secondary
KdPemesanan
KdPemesanan
Secondary
210 Tabel 3.64Script Indeks 1. Karyawan CREATE UNIQUE INDEX PRIMARY ON Karyawan(KdKar); CREAT INDEX KdPosisi ON Karyawan (KdPosKar); CREAT INDEX KdPosisi ON Karyawan (KdPosisi); 2. PosisiKaryawan CREATE UNIQUE INDEX PRIMARY ON PosisiKaryawan (KdPosisi); 3. PosKaryawan CREATE UNIQUE INDEX PRIMARY ON PosKaryawan (KdPosKar); 4. Pelanggan CREATE UNIQUE INDEX PRIMARY ON Pelanggan (KdPel); CREATE INDEX KdPosPel ON Pelanggan (KdPosPel); 5. PosPelanggan CREATE UNIQUE INDEX PRIMARY ON PosPelanggan (KdPosPel); 6. Pemasok CREATE UNIQUE INDEX PRIMARY ON Pelanggan (KdPem); CREAT INDEX KdPosPem ON Pelanggan (KdPosPem); 7. PosPemasok CREATE UNIQUE INDEX PRIMARY ON PosPemasok (KdPosPem); 8. TugasProduksi CREATE UNIQUE INDEX PRIMARY ON TugasProduksi (KdTugas); CREATE INDEX KdProduksi ON TugasProduksi (KdProduksi); 9. DetilTugas CREATE UNIQUE INDEX PRIMARY ON DetilTugas (KdKar); CREATE UNIQUE INDEX PRIMARY ON DetilTugas (KdTugas); 10. Pemasangan CREATE UNIQUE INDEX PRIMARY ON Pemasangan (KdPemasangan); CREATE INDEX KdPemesanan ON Pemasangan (KdPemesanan); 11. DetilPemasangan CREATE UNIQUE INDEX PRIMARY ON DetilPemasangan (KdKar); CREATE UNIQUE INDEX PRIMARY ON DetilPemasangan (KdPemasangan); 12. RumusBahanBaku CREATE UNIQUE INDEX PRIMARY ON RumusBahanBaku (KdRumus); 13. DetilRumus CREATE UNIQUE INDEX PRIMARY ON DetilRumus (KdRumus); CREATE UNIQUE INDEX PRIMARY ON DetilRumus (KdBahanBaku); 14. Pembelian CREATE UNIQUE INDEX PRIMARY ON Pembelian (KdKar); CREATE INDEX KdKar ON Pembelian (KdKar); CREATE INDEX KdPengajuan ON Pembelian (KdPengajuan); CREATE INDEX KdPem ON Pembelian (KdPem); 15. DetilPembelian CREATE UNIQUE INDEX PRIMARY ON DetilPembelian (KdPembelian);
211 CREATE UNIQUE INDEX PRIMARY ON DetilPembelian (KdBahanBaku); 16. PengajuanPembelian CREATE UNIQUE INDEX PRIMARY ON PengajuanPembelian (KdPengajuan); CREATE INDEX KdKar ON PengajuanPembelian (KdKar); 17. DetilPengajuanBeli CREATE UNIQUE INDEX PRIMARY ON DetilPengajuanBeli (KdPengajuan); CREATE UNIQUE INDEX PRIMARY ON DetilPengajuanBeli (KdBahanBaku); 18. ReturPembelian CREATE UNIQUE INDEX PRIMARY ON ReturPembelian (KdReturPemb); CREATE INDEX KdKar ON ReturPembelian (KdKar); CREATE INDEX KdPembelian ON ReturPembelian (KdPembelian); 19. DetilReturBeli CREATE UNIQUE INDEX PRIMARY ON DetilReturBeli (KdReturPemb); CREATE UNIQUE INDEX PRIMARY ON DetilReturBeli (KdBahanBaku); 20. PengambilanBahanBaku CREATE UNIQUE INDEX PRIMARY ON PengambilanBahanBaku (KdPengambilan); CREATE INDEX KdKar ON PengambilanBahanBaku (KdKar); 21. DetilPengambilanBahan CREATE UNIQUE INDEX PRIMARY ON PengambilanBahanBaku (KdPengambilan); CREATE INDEX KdKar ON PengambilanBahanBaku (KdKar); 22. TelpKayawan CREATE UNIQUE INDEX PRIMARY ON TelpKaryawan (TelpKar); CREATE INDEX KdKar ON TelpKaryawan (KdKar); 23. TelpPelanggan CREATE UNIQUE INDEX PRIMARY ON TelpPelanggan (TelpPel); CREATE INDEX KdPel ON TelpPelanggan (KdPel); 24. TelpPemasok CREATE UNIQUE INDEX PRIMARY ON TelpPemasok (TelpPem); CREATE INDEX KdPem ON TelpPemasok (KdPem); 25. BahanBaku CREATE UNIQUE INDEX PRIMARY ON BahanBaku (KdBahanBaku); CREATE INDEX KdTipeBahan ON BahanBaku (KdTipeBahan); CREATE INDEX KdSatuanBahan ON BahanBaku (KdSatuanBahan); 26. TipeBahan CREATE UNIQUE INDEX PRIMARY ON TipeBahan (KdTipeBahan); 27. SatuanBahan CREATE UNIQUE INDEX PRIMARY ON SatuanBahan (KdSatuanBahan); 28. Produksi CREATE UNIQUE INDEX PRIMARY ON Produksi (KdProduksi); CREATE INDEX KdRumus ON Produksi (KdRumus); CREATE INDEX KdPemesanan ON Produksi (KdPemesanan);
212 29. TargetProduksi CREATE INDEX TglPengiriman ON TargetProduksi (TglPengiriman); CREATE INDEX TglPemasangan ON TargetProduksi (TglPemasangan); CREAT INDEX KdPemesanan ON TargetProduksi (KdPemesanan); 30. PembayaranPembelian CREATE UNIQUE INDEX PRIMARY ON PembayaranPembelian (KdPembPembelian); CREATE INDEX KdPembelian ON PembayaranPembelian (KdPembelian); CREATE INDEX KdKar ON PembayaranPembelian (KdKar); 31. BarangJadi CREATE UNIQUE INDEX PRIMARY ON BarangJadi (KdBarangJadi); CREATE INDEX KdPengiriman ON BarangJadi (KdPengiriman); CREATE INDEX KdProduksi ON BarangJadi (KdProduksi); 32. Pengiriman CREATE UNIQUE INDEX PRIMARY ON Pengiriman (KdPengiriman); CREATE INDEX KdKar ON Pengiriman (KdKar); CREATE INDEX KdPemesanan ON Pengiriman (KdPemesanan); 33. Kontrak CREATE UNIQUE INDEX PRIMARY ON Kontrak (KdKontrak); CREATE INDEX KdKar ON Kontrak (KdKar); CREATE INDEX KdPemesanan ON Kontrak (KdPemesanan); 34. Pemesanan CREATE UNIQUE INDEX PRIMARY ON Pemesanan (KdPemesanan); CREATE INDEX KdPel ON Pemesanan (KdPel); CREATE INDEX KdKar ON Pemesanan (KdKar); CREATE INDEX KdPosPemesanan ON Pemesanan (KdPosPemesanan); 35. PosPemesanan CREATE UNIQUE INDEX PRIMARY ON PosPemesanan (KdPosPemesanan); 36. RancanganKusen CREATE UNIQUE INDEX PRIMARY ON RancanganKusen (KdRancangan); CREATE INDEX KdPemesanan ON RancanganKusen (KdPemesanan); 37. PembayaranPemesanan CREATE UNIQUE INDEX PRIMARY ON PembayaranPemesanan (KdPembPemesanan); CREATE INDEX KdKar ON PembayaranPemesanan (KdKar); CREATE INDEX KdPemesanan ON PembayaranPemesanan (KdPemesanan);
4.
Melakukan estimasi kapasitas disk yang diperlukan Berikut terdapat tabel-tabel untuk menghitung estimasi ukuran yang
diperlukan untuk seluruh tabel yang ada pada basis data:
213 Tabel 3.65Perkiraan Jumlah Baris untuk Setiap Tabel Perkiraan jumlah baris yang ada sekarang Karyawan 40 PosisiKaryawan 18 PosKaryawan 40 Pelanggan 150 PosPelanggan 130 Pemasok 5 PosPemasok 5 TugasProduksi 750 DetilTugas 2000 Pemasangan 400 DetilPemasangan 1000 RumusBahanBaku 20 DetilRumus 50 Pembelian 40 DetilPembelian 800 PengajuanPembelian 40 DetilPengajuanBeli 800 ReturPembelian 0 DetilReturBeli 0 PengambilanBahanBaku 500 DetilPengambilanBahan 5000 TelpKaryawan 80 TelpPelanggan 200 TelpPemasok 10 BahanBaku 400 TipeBahan 10 SatuanBahan 20 Produksi 2000 TargetProduksi 250 PembayaranPembelian 50 BarangJadi 2000 Pengiriman 350 Kontrak 500 Pemesanan 250 PosPemesanan 230 RancanganKusen 350 PembayaranPemesanan 600 Tabel
Perkiraan jumlah baris dalam setahun 8 2 8 200 180 5 5 800 2500 500 2000 20 50 350 800 35 800 10 50 500 6000 20 350 10 50 5 5 2500 250 40 2500 350 500 250 200 350 600
Total 48 20 48 300 310 10 10 1550 4500 900 3000 40 100 390 1600 75 1600 10 50 1000 1100 28 550 20 450 15 25 4500 500 90 4500 700 1000 500 430 700 1200
214 1. Karyawan Tabel 3.66Penentuan Kapasitas untuk TabelKaryawan Atribut KdKar NamaKar AlamatKar EmailKar JenisKelamin FotoKar KdPosKar KdPosisi
Tipe Data Char(5) Varchar(20) Varchar(100) Varchar(50) Char(1) Varchar(20) Char(5) Char(3)
Indeks Primary
Ukuran Indeks
Ukuran 5
5 + 5 = 10 Secondary 3+5= 8 Secondary 23 Total Estimasi ukuran untuk tabel Karyawan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 48 * (23 + 204) = 10.896bytes
5 20 100 50 1 20 5 3 204
2. PosisiKaryawan Tabel 3.67Penentuan Kapasitas untuk Tabel PosisiKaryawan Atribut KdKar PosisiKaryawan
Tipe Data Char(5) Varchar(20)
Indeks Primary
Ukuran Indeks
Ukuran 5
5 Total Ukuran Estimasi ukuran untuk tabel PosisiKaryawan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 20 * (5+29) = 480 bytes
5 20 29
3. PosKaryawan Tabel 3.68Penentuan Kapasitas untuk Tabel PosKaryawan Atribut KdPosKar KotaKar KecKar KelKar
Tipe Data Char(5) Varchar(40) Varchar(40) Varchar(40)
Indeks Primary
Ukuran Indeks
Ukuran 5
Total Ukuran 5 Estimasi ukuran untuk tabel PosKaryawan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 48 * (5+125) = 6.240 bytes
5 40 40 40 125
215 4. Pelanggan Tabel 3.69Penentuan Kapasitas untuk Tabel Pelanggan Atribut KdPel NamaPel AlamatPel EmailPel FaxPel KdPosPel
Tipe Data Char(5) Varchar(40) Varchar(100) Varchar(50) Varchar(15) Char(5)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 5
5 + 5 = 10 Secondary 15 Total Ukuran Estimasi ukuran untuk tabel Pelanggan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 300 * (15+215) = 69.000 bytes
5 40 100 50 15 5 215
5. PosPelanggan Tabel 3.70Penentuan Kapasitas untuk Tabel Pemasok Atribut KdPosPel KotaPel KecPel KelPel
Tipe Data Char(5) Varchar(40) Varchar(40) Varchar(40)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 5
5 Total Ukuran Estimasi ukuran untuk tabel PosPelanggan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 310* (5+125) = 40.300 bytes
5 40 40 40 125
6. Pemasok Tabel 3.71Penentuan Kapasitas untuk Tabel Pemasok Atribut KdPem NamaPem AlamatPem EmailPem FaxPem KdPosPemasok
Tipe Data Char(5) Varchar(40) Varchar(100) Varchar(50) Varchar(15) Char(5)
Tipe Indeks Primary
Ukuran Indeks 5
5 + 5 = 10 Secondary 15 Total Ukuran Estimasi ukuran untuk tabel Pemasok hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 10 * (15+215) = 2.300 bytes
Ukuran 5 40 100 50 15 5 215
216 7. PosPemasok Tabel 3.72Penentuan Kapasitas untuk Tabel PosPemasok Atribut KdPosPem KotaPem KecPem KelPem
Tipe Data Char(5) Varchar(40) Varchar(40) Varchar(40)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 5
5 40 40 40 125
5 Total Ukuran Estimasi ukuran untuk tabel PosPemasok hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 10 * (5+125) = 1.300 bytes
8. TugasProduksi Tabel 3.73Penentuan Kapasitas untuk Tabel TugasProduksi Atribut KdTugas Keterangan KdProduksi
Tipe Data Char(7) Varchar(100) Char(7)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 7
7 + 7 = 14 Secondary 21 Total Ukuran Estimasi ukuran untuk tabel TugasProduksi hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 1550 * (21+114) = 209.250 bytes
7 100 7 114
9. DetilTugas Tabel 3.74Penentuan Kapasitas untuk Tabel DetilTugas Atribut KdKar KdTugas StatusTugas TglMulai TglSelesai Deadline DeskTugas
Tipe Data Char(5) Char(7) Char(1) Datetime Datetime Datetime Varchar(80)
Tipe Indeks Primary Primary
Ukuran Indeks
Ukuran 5 7
12 Total Ukuran Estimasi ukuran untuk tabel DetilTugas hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 4500 * (12+130) = 639.000 bytes
5 7 1 8 8 8 80 130
217 10. Pemasangan Tabel 3.75Penentuan Kapasitas untuk Tabel Pemasangan Atribut KdPemasangan TglPemasangan FotoHasil KdPemesanan
Tipe Data Char(7) Datetime Varchar(30) Char(7)
Tipe Indeks Primary
Ukuran Indeks 7
Ukuran
7 + 7 = 14 Secondary 21 Total Ukuran Estimasi ukuran untuk tabel Pemasangan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 900 * (21+52) = 65.700 bytes
7 8 30 7 52
11. DetilPemasangan Tabel 3.76Penentuan Kapasitas untuk Tabel DetilPemasangan Atribut KdKar KdPemasangan StatusPemasangan
Tipe Data Char(5) Char(7) Char(1)
Tipe Indeks Primary Primary
Ukuran Indeks 5 7
Ukuran 5 7 1 13
12 Total Ukuran Estimasi ukuran untuk tabel DetilPemasangan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 3000 * (12+13) = 750.000 bytes 12. RumusBahanBaku Tabel 3.77Penentuan Kapasitas untuk Tabel RumusBahanBaku Atribut KdRumus NamaRumus Gambar Deskripsi
Tipe Data Char(5) Varchar(40) Varchar(30) Varchar(100)
Tipe Indeks Primary
Ukuran Indeks 5
Ukuran
5 Total Ukuran Estimasi ukuran untuk tabel RumusBahanBaku hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 40 * (5+175) = 7.200 bytes
5 40 30 100 175
218 13. DetilRumus Tabel 3.78Penentuan Kapasitas untuk Tabel DetilRumus Atribut KdRumus KdBahanBaku SatuanRumus RumusUkuran
Tipe Data Char(5) Char(5) Char(1) Varchar(100)
Tipe Indeks Primary Primary
Ukuran Indeks
Ukuran 5 5
10 Total Ukuran Estimasi ukuran untuk tabel DetilRumus hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 100 * (10+111) = 111.000 bytes
5 5 1 100 111
14. Pembelian Tabel 3.79Penentuan Kapasitas untuk Tabel Pembelian Atribut KdPembelian TglPembelian StatusPembelian KdKar KdPengajuan KdPem
Tipe Data Char(7) Datetime Char(1) Char(5) Char(7) Char(5)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 7
7 8 1 5 7 5 33
7 + 7 = 14 Secondary Secondary 5 + 7 = 12 33 Total Ukuran Estimasi ukuran untuk tabel Pembelian hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 390 * (33+33) = 25.740 bytes
15. DetilPembelian Tabel 3.80Penentuan Kapasitas untuk Tabel DetilPembelian Atribut KdPembelian KdBahanBaku JumlahBeli HargaBeli
Tipe Data Char(7) Char(5) Small Integer Integer
Tipe Indeks Primary Primary
Ukuran Indeks
Ukuran 7 5
12 Total Ukuran Estimasi ukuran untuk tabel DetilPembelian hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 1600 * (12+18) = 48.000 bytes
7 5 2 4 18
219 16. PengajuanPembelian Tabel 3.81Penentuan Kapasitas untuk Tabel PengajuanPembelian Atribut KdPengajuan TglPengajuan StatusPengajuan KdKar
Tipe Data Char(7) Datetime Char(1) Char(5)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 7
7 8 1 5 21
5 + 7 = 12 Secondary 19 Total Ukuran Estimasi ukuran untuk tabel PengajuanPembelian hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 75 * (19+21) = 3.000 bytes
17. DetilPengajuanBeli Tabel 3.82Penentuan Kapasitas untuk Tabel DetilPengajuanBeli Atribut KdPengajuan KdBahanBaku JumlahAju
Tipe Data Char(7) Char(5) Small Integer
Tipe Indeks Primary Primary
Ukuran Indeks
Ukuran 7 5
7 5 2 14
12 Total Ukuran Estimasi ukuran untuk tabel DetilPengajuanBeli hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 1600 * (12+14) = 41.600 bytes
18. ReturPembelian Tabel 3.83Penentuan Kapasitas untuk Tabel DetilPembelian Atribut KdReturPemb TglRetur StatusRetur AlasanRetur KdKar KdPembelian
Tipe Data Char(7) Datetime Varchar(1) Varchar(40) Char(5) Char(7)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 7
5 + 7 = 12 Secondary 7 + 7 = 14 Secondary 33 Total Ukuran Estimasi ukuran untuk tabel ReturPembelian hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 10 * (33+68) = 1.010 bytes
7 8 1 40 5 7 68
220 19. DetilReturBeli Tabel 3.84Penentuan Kapasitas untuk Tabel DetilReturBeli Atribut KdReturPemb KdBahanBaku JumlahRetur
Tipe Data Char(7) Char(5) Small Integer
Tipe Indeks Primary Primary
Ukuran Indeks
Ukuran 7 5
7 5 2 14
12 Total Ukuran Estimasi ukuran untuk tabel DetilReturBeli hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 50 * (12+14) = 1.300 bytes
20. PengambilanBahanBaku Tabel 3.85Penentuan Kapasitas untuk Tabel PengambilanBahanBaku Atribut KdPengambilan TglPengambilan KdKar
Tipe Data Char(7) Datetime Char(5)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 7
7 8 5 20
5 + 7 =12 Secondary 19 Total Ukuran Estimasi ukuran untuk tabel PengambilanBahanBaku hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 1000 * (19+20) = 39.000 bytes
21. DetilPengambilanBahan Tabel 3.86Penentuan Kapasitas untuk Tabel DetilPengambilanBahan Atribut KdPengambilan KdBahanBaku JumlahAmbil
Tipe Data Char(7) Char(5) Small Integer
Tipe Indeks Primary Primary
Ukuran Indeks
Ukuran 7 5
12 Total Ukuran Estimasi ukuran untuk tabel DetilPengambilanBahan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 1100 * (12+12) = 26.400 bytes
7 5 2 14
221 22. TelpKayawan Tabel 3.87Penentuan Kapasitas untuk Tabel TelpKayawan Ukuran Indeks Tipe Indeks 15 Primary 5 + 15 = 20 Secondary 35 Total Ukuran Estimasi ukuran untuk tabel TelpKaryawan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 28 * (35+20) = 1.540 bytes Atribut TelpKar KdKar
Tipe Data Varchar(15) Char(5)
Ukuran 15 5 20
23. TelpPelanggan Tabel 3.88Penentuan Kapasitas untuk Tabel TelpPelanggan Ukuran Indeks Tipe Indeks Ukuran 15 Primary 15 5 + 15 = 20 Secondary 5 35 Total Ukuran 20 Estimasi ukuran untuk tabel TelpPelanggan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 550 * (35+20) = 30.250 bytes Atribut TelpPel KdPel
Tipe Data Varchar(15) Char(5)
24. TelpPemasok Tabel 3.89Penentuan Kapasitas untuk Tabel TelpPemasok Ukuran Indeks Tipe Indeks 15 Primary 5 + 15 = 20 Secondary 35 Total Ukuran Estimasi ukuran untuk tabel TelpPemasok hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 20 * (35+20) = 1.100 bytes Atribut TelpPem KdPem
Tipe Data Varchar(15) Char(5)
Ukuran 15 5 20
222 25. BahanBaku Tabel 3.90Penentuan Kapasitas untuk Tabel BahanBaku Atribut KdBahanBaku NamaBahanBaku KdTipeBahan KdSatuanBahan Harga Stok StokMin
Tipe Data Char(5) Varchar(40) Char(3) Char(3) Integer Small Integer Small Integer
Tipe Indeks Primary Secondary Secondary
Ukuran Indeks
Ukuran 5
5 40 3 3 4 2 2 59
5+3=8 5+3=8
21 Total Ukuran Estimasi ukuran untuk tabel BahanBaku hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 450 * (21+59) = 36.000 bytes
26. TipeBahan Tabel 3.91Penentuan Kapasitas untuk Tabel TipeBahan Atribut KdTipeBahan TipeBahanBaku
Tipe Data Char(3) Varchar(20)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 3
5 20 25
3 Total Ukuran Estimasi ukuran untuk tabel TipeBahan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 15 * (6+25) = 465 bytes
27. SatuanBahan Tabel 3.92Penentuan Kapasitas untuk Tabel SatuanBahan Atribut KdSatuanBahan SatuanBahanBaku
Tipe Data Char(3) Varchar(5)
Tipe Indeks Primary
Ukuran Indeks 3
3 Total Ukuran Estimasi ukuran untuk tabel SatuanBahan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 25 * (6+10) = 400 bytes
Ukuran 5 5 10
223 28. Produksi Tabel 3.93Penentuan Kapasitas untuk Tabel Produksi Atribut KdProduksi NamaBarang TglMulaiProduksi StatusProduksi Jumlah UkTinggi UkLebar HargaProduksi KdRumus KdPemesanan
Tipe Data Char(7) Varchar(40) Datetime Char(1) Small Integer Small Integer Small Integer Integer Char(5) Char(7)
Tipe Indeks Primary
Ukuran Indeks 7
Ukuran
5 + 7 = 12 Secondary 7 + 7 = 14 Secondary 33 Total Ukuran Estimasi ukuran untuk tabel Produksi hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 4500 * (33+78) = 499.500 bytes
7 40 8 1 2 2 2 4 5 7 78
29. TargetProduksi Tabel 3.94Penentuan Kapasitas untuk Tabel TargetProduksi Atribut TglPengiriman TglPemasangan Keterangan KdPemesanan
Tipe Data Date Date Varchar(100) Char(7)
Tipe Indeks Primary Primary
Ukuran Indeks 3 3
Ukuran
7 Primary 13 Total Ukuran Estimasi ukuran untuk tabel TargetProduksi hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 500 * (13+113 ) = 63.000 bytes
3 3 100 7 113
224 30. PembayaranPembelian Tabel 3.95Penentuan Kapasitas untuk Tabel PembayaranPembelian Atribut KdPembPembelian TglPembPembelian JumlahBayar KdPembelian KdKar
Tipe Data Char(7) Datetime Integer Char(7) Char(5)
Tipe Indeks Primary
Ukuran Indeks 7
Ukuran
7 + 7 = 14 Secondary 5 + 7 = 12 Secondary 33 Total Ukuran Estimasi ukuran untuk tabel PembayaranPembelian hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 90 * (33+23) = 5.760 bytes
7 8 4 7 5 31
31. BarangJadi Tabel 3.96Penentuan Kapasitas untuk Tabel BarangJadi Atribut KdBarangJadi TglBarangMasuk StatusBarangJadi KdPengiriman KdProduksi
Tipe Data Char(7) Datetime Char(1) Char(7) Char(7)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 7
7 + 7 = 14 Secondary 7 + 7 = 14 Secondary 35 Total Ukuran Estimasi ukuran untuk tabel BarangJadi hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 4500 * (35+30) = 292.500 bytes
7 8 1 7 7 30
32. Pengiriman Tabel 3.97Penentuan Kapasitas untuk Tabel Pengiriman Atribut KdPengiriman TglPengiriman StatusPengiriman KdPemesanan KdKar
Tipe Data Char(7) Datetime Char(1) Char(7) Char(5)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 7
7 + 7 = 14 Secondary 5 + 7 = 12 Secondary 33 Total Ukuran Estimasi ukuran untuk tabel Pengiriman hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 700 * (33+28) = 42.700 bytes
7 8 1 7 5 28
225 33. Kontrak Tabel 3.98Penentuan Kapasitas untuk Tabel Kontrak Atribut KdKontrak Spesifikasi Keterangan Diskon TglKontrak StatusKontrak KdKar KdPemesanan
Tipe Data Char(7) Varchar(200) Varchar(200) Tiny Integer Datetime Char(1) Char(5) Char(7)
Tipe Indeks Primary
Ukuran Indeks
Ukuran 7
5 + 7 = 12 Secondary 7 + 7 = 14 Secondary 33 Total Ukuran Estimasi ukuran untuk tabel Kontrak hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 1000 * (33+429) = 462.000 bytes
7 200 200 1 8 1 5 7 429
34. Pemesanan Tabel 3.99Penentuan Kapasitas untuk Tabel Pemesanan Atribut KdPemesanan TglPemesanan TglPengPemesanan GmbPengPemesanan StatusPengPemesanan NamaProyek AlamatPemesanan KdPel KdKar KdPosPemesanan
Tipe Data Char(7) Datetime Datetime Varchar(30) Char(1) Varchar(40) Varchar(100) Char(5) Char(5) Char(5)
Tipe Indeks Primary
Ukuran Indeks 7
Ukuran
5 + 7 = 12 Secondary 5 + 7 = 12 Secondary 5 + 7 = 12 Secondary 43 Total Ukuran Estimasi ukuran untuk tabel Pemesanan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 500 * (43+209) = 126.000 bytes
7 8 8 30 1 40 100 5 5 5 209
226 35. PosPemesanan Tabel 3.100Penentuan Kapasitas untuk Tabel PosPemesanan Atribut KdPosPemesanan KotaPemesanan KecPemesanan KelPemesanan
Tipe Data Char(5) Varchar(40) Varchar(40) Varchar(40)
Tipe Indeks Primary
Ukuran Indeks 5
Ukuran 5 40 40 40 125
5 Total Ukuran Estimasi ukuran untuk tabel PosPemesanan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 430 * (5+125) = 55.900 bytes
36. RancanganKusen Tabel 3.101Penentuan Kapasitas untuk Tabel RancanganKusen Atribut KdRancangan TglRancangan GmbRancangan StatusRancangan UkLubang UkJendela Keterangan KdPemesanan
Tipe Data Char(7) Datetime Varchar(30) Char(1) Small Integer Small Integer Varchar(100) Char(7)
Tipe Indeks Primary
Ukuran Indeks 7
Ukuran
7 + 7 = 14 Secondary 21 Total Ukuran Estimasi ukuran untuk tabel RancanganKusen hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 700 * (21+161) = 127.400 bytes
7 8 30 5 2 2 100 7 161
227 37. PembayaranPemesanan Tabel 3.102Penentuan Kapasitas untuk Tabel PembayaranPemesanan Atribut KdPembPemesanan TglPembPemesanan JumlahBayar KdKar KdPemesanan
Tipe Data Char(7) Datetime Integer Char(5) Char(7)
Tipe Indeks Primary
Ukuran Indeks 7
Ukuran
5 + 7 = 12 Secondary 7 + 7 = 14 Secondary Total Ukuran 33 Estimasi ukuran untuk tabel PembayaranPemesanan hingga satu tahun ke depan yaitu: Total Baris * (Total Ukuran Indeks + Total Ukuran) = 1200 * (33+ 31) = 76.800 bytes
7 8 4 5 7 31
Dari perhitungan di atas bisa didapat kesimpulan bahwa total ukuran data sekarang hingga satu tahun ke depan yang perlu disimpan yaitu sebanyak 3.920.031 bytes, setara dengan 3,74 MB.
3.3.4.3. Merancang User Views Tujuannya
untuk
merancang
pandangan
pengguna
yang
telah
diidentifikasikan selama tahap Requirements Collection and Analysisdari Database System Development Lifecyle. Views adalah sekumpulan query yang dibentuk untuk menampilkan sejumlah hasil yang diinginkan, sedangkan StoredProcedures adalah sekumpulan query yang dibentuk untuk memasukkan data baru atau mengubah data-data yang ada. Menurut Indrajani (2011:160) dan Anonim2, kelebihan-kelebihan dari views meliputi: 1. Keamanan, view dapat menghasilkan performa yang diinginkan pengguna tanpa mengakses langsung pada database sehingga konsistensidatabase lebih terjaga. 2. Kenyamanan, views merupakan sekumpulan query yang dibuat terlebih dahulu sehingga memungkinkan penggunaan berulang kali untuk pemanggilan query yang sama. 3. Ketepatan, karena views merupakan query-query yang kebenarannya sudah dipastikan sebelum dibuat sehingga hasil yang ditampilkan selalu tepat.
228 4. Kompleksitas, views memberikan kemudahan bagi seseorang untuk memahami query-query yang ada Menurut Indrajani (2011:160) dan Anonim3, kelebihan-kelebihan dari stored procedures meliputi: 1. Keamanan,
stored
procedures
mengenkapsulasi
query-query
dengan
menggabungkan logika akses data ke dalam satu tempat, sehingga mudah untuk dioptimisasi tanpa mengakses langsung pada database sehingga konsistensi database lebih terjaga dan dapat mencegah terjadinya SQL injection 2. Kenyamanan, stored procedures merupakan sekumpulan query yang dibuat terlebih dahulu sehingga memungkinkan penggunaan berulang kali untuk pemanggilan query yang sama. 3. Ketepatan, karena stored procedure merupakan query-query yang kebenarannya sudah dipastikan sebelum dibuat sehingga hasil yang dijalankan selalu tepat. 4. Kecepatan, stored procedure mempercepat waktu eksekusi dan mengurangi lalulintas jaringan Berikut terdapat perintah mengenai views dan procedures yang sudah dibuat.
229 Tabel 3.103User Views 1. Menampilkan pengajuan pemesanan berdasarkan identitas pelanggan CREATE VIEW PengPemesananPel AS SELECT Pel.KdPel, NamaPel, EmailPel, TelpPel, Pem.KdPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, Pos.KdPosPemesanan, KotaPemesanan FROM Pelanggan Pel JOIN TelpPelanggan Tel ON Pel.KdPel = Tel.KdPel JOIN Pemesanan Pem ON Pem.KdPel = Pel.KdPel JOIN PosPemesanan Pos ON Pos.KdPosPemesanan = Pem.KdPosPemesanan
WHERE StatusPengPemesanan!=’0’ 2. Menampilkan data bahan baku berdasarkan rumus bahan baku CREATE VIEW BahanBakuRumus AS SELECT Rum.KdRumus, NamaRumus, Gambar, Deskripsi, SatuanRumus, Bak.KdBahanBaku, NamaBahanBaku, TipeBahanBaku, SatuanBahanbaku FROM RumusBahanBaku Rum JOIN DetilRumus Det ON Det.KdRumus = Rum.KdRumus JOIN BahanBaku Bak ON Bak.KdBahanBaku = Det.KdBahanBaku JOIN TipeBahan Tip ON Tip.KdTipeBahan = Bak.KdTipeBahan JOIN SatuanBahan Sat ON Sat.KdSatuanBahan = Bak.KdSatuanBahan
RumusUkuran,
WHERE Rum.Status!=’0’ 3. Menampilkan data produksi berdasarkan nomor pengajuan pemesanan CREATE VIEW ProduksiPemesanan AS SELECT Prod.KdProduksi, NamaBarang, Uktinggi,uklebar, JumlahProduksi, HargaJual, (JumlahProduksi*HargaJual) AS TotalHargaProduksi, Pem.KdPemesanan, TglPengPemesanan, NamaProyek, AlamatPemesanan, Diskon FROM Produksi Prod JOIN Pemesanan Pem ON Pem.KdPemesanan = Prod.KdPemesanan
JOIN Kontrak kon ON kon.KdPemesanan = Pem.KdPemesanan WHERE StatusProduksi !=’0’ 4. Menampilkan rancangan kusen pintu jendela berdasarkan nomor pengajuan pemesanan CREATE VIEW RancanganKusenPemesanan AS SELECT Ran.KdRancangan, TglRancangan, GmbRancangan, StatusRancangan, UkLubang, UkJendela, Keterangan, Pem.KdPemesanan, TglPemesanan, NamaProyek, GmbPengPemesanan FROM RancanganKusen Ran JOIN Pemesanan Pem ON Pem.KdPemesanan = Ran.KdPemesanan
230 WHERE StatusRancangan != ‘0’ 5. Menampilkan kontrak sesuai dengan nomor pemesanan CREATE VIEW KontrakPemesanan AS SELECT KdKontrak, Spesifikasi, Keterangan, TglKontrak, StatusKontrak, Pel.KdPel, NamaPel, AlamatPel, Pos.KdPosPel, KotaPel, KecPel, KelPel, TelpPel, Pem.KdPemesanan, NamaProyek, AlamatPemesanan, Pos2.KdPosPemesanan, KotaPemesanan, KecPemesanan, KelPemesanan FROM Kontrak Kon JOIN Pemesanan Pem ON Pem.KdPemesanan = Kon.KdPemesanan JOIN PosPemesanan Pos2 ON Pos2.KdPosPemesanan = Pem.KdPosPemesanan JOIN Pelanggan Pel ON Pel.KdPel = Pem.KdPel JOIN TelpPelanggan Tel ON Tel.KdPel = Pel.KdPel JOIN PosPelanggan Pos ON Pos.KdPosPel = Pel.KdPosPel
WHERE StatusKontrak!=’0’ 6. Menampilkan pemesanan yang dibuat oleh karyawan CREATE VIEW PemesananKar AS SELECT Kar.KdKar, NamaKar, EmailKar, TelpKar, KdPemesanan, TglPemesanan, NamaProyek, StatusPengPemesanan FROM Karyawan Kar JOIN Pemesanan Pem ON Pem.KdKar = Kar.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar
WHERE StatusPengPemesanan != ‘0‘ 7. Menampilkan target produksi berdasarkan nomor pengajuan pemesanan CREATE VIEW TargetProduksiPemesanan AS SELECT TglPengiriman, TglPemasangan, Keterangan, Pem.KdPemesanan, TglPemesanan, NamaProyek, StatusPengPemesanan, AlamatPemesanan,Pos. KdPosPemesanan FROM TargetProduksi Tar JOIN Pemesanan Pem ON Pem.KdPemesanan = Tar.KdPemesanan JOIN PosPemesanan Pos ON Pos.KdPosPemesanan = Pem.KdPosPemesanan
WHERE Tar.Status != ‘0’ 8. Menampilkan data tugas produksi dan nama karyawan yang terlibat didalamnya CREATE VIEW TugasProduksiKaryawan AS SELECT Prod.KdProduksi, NamaBarang, JumlahProduksi, TglMulaiProduksi, Tug.KdTugas, Keterangan, Deadline, StatusTugas, Kar.KdKar, NamaKar, TelpKar FROM TugasProduksi Tug JOIN Produksi Prod ON Prod.KdProduksi = Tug.KdProduksi
231 JOIN DetilTugas Det ON Det.KdTugas = Tug.KdTugas JOIN Karyawan Kar ON Kar.KdKar = Det.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar
WHERE Tug.Status != ‘0’ 9. Menampilkan data pengambilan bahan baku berdasarkan nama karyawan CREATE VIEW PengambilanBahanKaryawan AS SELECT KdPengambilan, TglPengambilan, Kar.KdKar, NamaKar, EmailKar, TelpKar FROM PengambilanBahanBaku Peng JOIN Karyawan Kar ON Kar.KdKar = Peng.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar
WHERE Peng.Status != ‘0’ 10. Menampilkan data barang jadi berdasarkan kode produksi CREATE VIEW BarangJadiProduksi AS SELECT KdBarangJadi, TglBarangMasuk, StatusBarangJadi, Prod.KdProduksi, JumlahProduksi FROM BarangJadi Bar JOIN Produksi Prod ON Prod.KdProduksi = Bar.KdProduksi
NamaBarang,
WHERE StatusBarangJadi!=’0’ 11. Menampilkan data pembelian berdasarkan nomor pengajuan pembelian CREATE VIEW PembelianPengajuan AS SELECT Peng.KdPengajuan, TglPengajuan, StatusPengajuan, KdPembelian, StatusPembelian FROM PengajuanPembelian Peng JOIN Pembelian Pem ON Pem.KdPengajuan = Peng.KdPengajuan
TglPembelian,
WHERE StatusPembelian != ‘0’ 12. Menampilkan data retur pembelian berdasarkan nomor pembelian CREATE VIEW ReturPembelianv AS SELECT KdReturPemb , TglRetur, StatusRetur, AlasanRetur, Ret.KdKar, Pem.KdPembelian, Psok.KdPem, NamaPem, TelpPem, AlamatPem, Pos.KdPosPem, KotaPem, KecPem, KelPem FROM ReturPembelian Ret JOIN Pembelian Pem ON Pem.KdPembelian = Ret.KdReturPemb JOIN Pemasok Psok ON Psok.KdPem = Pem.KdPem JOIN TelpPemasok Telp ON Telp.KdPem = Psok.KdPem JOIN PosPemasok Pos ON Pos.KdPosPem = Psok.KdPosPem
WHERE StatusRetur != ‘0’
232 13. Menampilkan data pengiriman berdasarkan nomor pengajuan pemesanan CREATE VIEW PengirimanPemesanan AS SELECT KdPengiriman, TglPengiriman, StatusPengiriman, Kar.KdKar, NamaKar, TelpKar, Pem.KdPemesanan, NamaProyek, AlamatPemesanan, Pos.KdPosPemesanan, KotaPemesanan, KecPemesanan, KelPemesanan,Pel.KdPel, NamaPel, TelpPel FROM Pengiriman Peng JOIN Karyawan Kar ON Kar.KdKar = Peng.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar JOIN Pemesanan Pem ON Pem.KdPemesanan = Peng.KdPemesanan JOIN PosPemesanan Pos ON Pos.KdPosPemesanan = Pem.KdPosPemesanan JOIN Pelanggan Pel ON Pel.KdPel = Pem.KdPel JOIN TelpPelanggan Telp1 ON Telp1.KdPel = Pel.KdPel
WHERE StatusPengiriman != ‘0’ 14. Menampilkan data pemasangan berdasarkan nomor pengajuan pemesanan CREATE VIEW PemasanganPemesanan AS SELECT KdPemasangan, TglPemasangan, Fotohasil, Pem.KdPemesanan, NamaProyek, AlamatPemesanan, Pos.KdPosPemesanan, KotaPemesanan, KecPemesanan, KelPemesanan FROM Pemasangan Peng JOIN Pemesanan Pem ON Pem.KdPemesanan = Peng.KdPemesanan JOIN PosPemesanan Pos ON Pos.KdPosPemesanan = Pem.KdPosPemesanan
WHERE Peng.Status !=’0’ 15. Menampilkan detil pengajuan pemesanan yang dibuat berdasarkan data karyawan CREATE VIEW PengPemesananKaryawan AS SELECT KdPemesanan, TglPengPemesanan, GmbPengPemesanan, NamaProyek, Kar.KdKar, NamaKar, TelpKar FROM Pemesanan Pem JOIN Karyawan Kar ON Kar.KdKar = Pem.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar
WHERE StatusPengPemesanan != ‘0’ 16. Menampilkan kontrak yang diurus oleh karyawan CREATE VIEW KontrakKar AS SELECT KdKontrak, TglKontrak, StatusKontrak, KdPemesanan, Kar.KdKar, NamaKar, TelpKar FROM Kontrak Kon JOIN Karyawan Kar ON Kar.KdKar = Kon.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar
WHERE StatusKontrak != ‘0’
233 17. Menampilkan data pengajuan pembelian yang diajukan oleh karyawan CREATE VIEW PengPembelianKar AS SELECT KdPengajuan, TglPengajuan, StatusPengajuan, Kar.KdKar, NamaKar, EmailKar, TelpKar FROM PengajuanPembelian Peng JOIN Karyawan Kar ON Kar.KdKar = Peng.KdKarJOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar
WHERE StatusPengajuan != ‘0’ 18. Menampilkan data pembelian yang dibuat oleh karyawan CREATE VIEW PembelianKaryawan AS SELECT KdPembelian, TglPembelian, StatusPembelian, KdPengajuan, Pem.KdPem, NamaPem, AlamatPem, Pos.KdPosPem, TelpPem, Kar.KdKar, NamaKar, EmailKar, TelpKar FROM Pembelian Pemb JOIN Pemasok Pem ON Pem.KdPem = Pemb.KdPemb JOIN PosPemasok Pos ON Pos.KdPem = Pem.KdPos JOIN TelpPemasok Telp ON Telp.KdPem = Pem.KdPem JOIN Karyawan Kar ON Kar.KdKar = Pemb.KdKar OIN TelpKaryawan Telp1 ON Telp1.KdKar = Kar.KdKar
WHERE StatusPembelian != ‘0’ 19. Menampilkan data retur pembelian yang diurus oleh karyawan CREATE VIEW ReturPembKaryawan AS SELECT KdReturPemb, TglRetur, StatusRetur, AlasanRetur, KdPembelian, Kar.KdKar, NamaKar, TelpKar FROM ReturPembelian Ret JOIN Karyawan Kar ON Kar.KdKar = Ret.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar
WHERE StatusRetur != ‘0’ 20. Menampilkan data pengiriman dan karyawan yang terlibat di dalamnya CREATE VIEW PengirimanaKar AS SELECT KdPengiriman, TglPengiriman, StatusPengiriman, KdPemesanan, Kar.KdKar, NamaKar, TelpKar FROM Pengiriman Peng JOIN Karyawan Kar ON Kar.KdKar = Peng.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar
WHERE StatusPengiriman != ‘0’ 21. Menampilkan data pemasangan yang dilakukan oleh karyawan CREATE VIEW PemasanganKar AS SELECT
234 Pems.KdPemasangan, TglPemasangan, fotohasil, KdPemesanan, StatusPemasangan, Kar.KdKar, NamaKar, TelpKar FROM Pemasangan Pems JOIN DetilPemasangan Det ON Det.KdPemasangan = Pems.KdPemasangan JOIN Karyawan Kar ON Kar.KdKar = Det.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar
WHERE StatusPemasangan != ‘0’ 22. Menampilkan data barang jadi yang dikirim CREATE VIEW BarangJadiKirim AS SELECT Peng.KdPengiriman, TglPengiriman, StatusPengiriman, Peng.KdPemesanan, KdBarangJadi, StatusBarangJadi, Bar.KdProduksi, NamaBarang, JumlahProduksi FROM Pengiriman Peng JOIN BarangJadi Bar ON Bar.KdPengiriman = Peng.KdPengiriman JOIN Produksi Prod ON Prod.KdProduksi = Bar.KdProduksi
WHERE StatusPengiriman != ‘0’ 23. Menampilkan rumus yang digunakan untuk produksi CREATE VIEW RumusProduksi AS SELECT Rum.KdRumus, NamaRumus, Gambar, Deskripsi, JumlahProduksi, UkTinggi, UkLebar, KdPemesanan FROM RumusBahanBaku Rum JOIN Produksi Prod ON Prod.KdRumus = Rum.KdRumus
KdProduksi,
NamaBarang,
WHERE Rum.Status!=’0’ 24. Menampilkan tugas produksi sesuai nomor produksi CREATE VIEW TugasProduksiV AS SELECT KdTugas, Keterangan, Prod.KdProduksi, NamaBarang, TglMulaiProduksi, JumlahProduksi, UkLebar, Uktinggi, KdPemesanan FROM TugasProduksi Tug JOIN Produksi Prod ON Prod.KdProduksi = Tug.KdProduksi
WHERE Tug.Status != ‘0’ 25. Menampilkan bahan baku yang dibeli melalui pembelian CREATE VIEW BahanBakuPembelian AS SELECT Pemb.KdPembelian, TglPembelian, Pem.KdPem, NamaPem, Bah.KdBahanBaku, NamaBahanBaku, TipeBahanBaku, HargaBeli, JumlahBeli, (HargaBeli*JumlahBeli) TotalBeli FROM Pembelian Pemb JOIN Pemasok Pem ON Pem.KdPem = Pemb.KdPem
235 JOIN DetilPembelian Det ON Det.KdPembelian = Pemb.KdPembelian JOIN BahanBaku Bah ON Bah.KdBahanBaku = Det.KdBahanBaku JOIN TipeBahan Tip ON Tip.KdTipeBahan = Bah.KdTipeBahan
WHERE StatusPembelian != ‘0’ 26. Menampilkan pembelian berdasarkan nama pemasok CREATE VIEW PembelianPemasok AS SELECT Pem.KdPemasok, NamaPem, AlamatPem, EmailPem, FaxPem, TelpPem, KdPosPem, KotaPem, KecPem, KelPem, KdPembelian, TglPembelian, StatusPembelian, KdPengajuan FROM Pemasok Pem JOIN Pembelian Pemb ON Pemb.KdPem =Pem.KdPem JOIN TelpPemasok Telp ON Telp.KdPem = Pem.KdPem JOIN PosPemasok Pos ON Pos.KdPosPem = Pem.KdPosPemasok
WHERE StatusPembelian != ‘0’ 27. Menampilkan daftar bahan baku dalam pengajuan pembelian CREATE VIEW BahanBakuAju AS SELECT Peng.KdPengajuan,TglPengajuan, Bah.KdBahanBaku, NamaBahanBaku, TipeBahanBaku, SatuanBahanBaku, JumlahAju FROM PengajuanPembelian Peng JOIN DetilPengajuanBeli Det ON Det.KdPengajuan = Peng.KdPengajuan JOIN BahanBaku Bah ON Bah.KdBahanBaku = Det.KdBahanBaku JOIN TipeBahan Tip ON Tip.KdTipeBahan = Bah.KdTipeBahan JOIN SatuanBahan Sat ON Sat.KdSatuanBahan = Bah.KdSatuanBahan
WHERE StatusPengajuan != ‘0’ 28. Menampilkan daftar bahan baku dalam retur pembelian CREATE VIEW BahanBakuRetur AS SELECT Ret.KdReturPemb, TglRetur, AlasanRetur, KdPembelian, Bah.KdBahanBaku, NamaBahanBaku, TipeBahanBaku, SatuanBahanBaku, JumlahRetur FROM ReturPembelian Ret JOIN DetilReturBeli Det ON Det.KdReturPemb = Ret. KdReturPemb JOIN BahanBaku Bah ON Bah.KdBahanBaku = Det.KdBahanBaku JOIN TipeBahan Tip ON Tip.KdTipeBahan = Bah.KdTipeBahan JOIN SatuanBahan Sat ON Sat.KdSatuanBahan = Bah.KdSatuanBahan
WHERE StatusRetur != ‘0’ 29. Menampilkan daftar bahan baku dalam pengambilan bahan baku CREATE VIEW BahanBakuAmbil AS SELECT Peng.KdPengambilan, TglPengambilan, KdKar, Bah.KdBahanBaku, NamaBahanBaku, TipeBahanBaku, SatuanBahanBaku , JumlahAmbil
236 FROM PengambilanBahanBaku Peng JOIN DetilPengambilanBahan Det ON Det.KdPengambilan = Peng.KdPengambilan JOIN BahanBaku Bah ON Bah.KdBahanBaku = Det.KdBahanBaku JOIN TipeBahan Tip ON Tip.KdTipeBahan = Bah.KdTipeBahan JOIN SatuanBahan Sat ON Sat.KdSatuanBahan = Bah.KdSatuanBahan
WHERE Peng.Status != ‘0’ 30. Menampilkan data pembayaran pemesanan berdasarkan nama karyawan yang mengurusnya dan nomor pemesanan CREATE VIEW PembayaranPemesananV AS SELECT KdPembPemesanan, TglPembPemesanan, Kar.KdKar, NamaKar, TelpKar, Pem.KdPemesanan, TglPemesanan, Diskon, Pel.KdPel, NamaPel, TelpPel FROM PembayaranPemesanan Pemb JOIN Karyawan Kar ON Kar.KdKar = Pemb.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar JOIN Pemesanan Pem ON Pem.KdPemesanan = Pemb.KdPemesanan JOIN Pelanggan Pel ON Pel.KdPel = Pem.KdPel
JOIN TelpPelanggan Telp1 ON Telp1.KdPel = Pel.KdPel JOIN Kontrak Kon ON Kon.KdPemesanan = Pem.KdPemesanan WHERE Pemb.Status != '0' 31. Menampilkan data pembayaran pembelian berdasarkan nama karyawan yang mengurusnya dan nomor pembelian CREATE VIEW AS PembayaranPembelianV AS SELECT KdPembPembelian, TglPembPembelian, Kar.KdKar, NamaKar, TelpKar, Pem.KdPembelian, TglPembelian, StatusPembelian, Pems.KdPem, NamaPem, TelpPem FROM PembayaranPembelian Pemb JOIN Karyawan Kar ON Kar.KdKar = Pemb.KdKar JOIN TelpKaryawan Telp ON Telp.KdKar = Kar.KdKar JOIN Pembelian Pem ON Pem.KdPembelian = Pemb.KdPembelian JOIN Pemasok Pems ON Pems.KdPem = Pem.KdPem JOIN TelpPemasok Telp1 ON Telp1.KdPem = Pems.KdPem
WHERE Pemb.Status != ‘0’
237 Tabel 3.104Stored Procedures 1. Memasukkan dan mengubah data pengajuan pemesanan CREATE PROCEDURE SaveOrUpdatePengPemesanan (IN KdPem CHAR(7), IN TglPeng DATETIME,IN TglPem Datetime, IN Dsn tinyint ,IN GmbPeng VARCHAR(20), IN StatusPeng CHAR(1), IN NamProy VARCHAR(40), IN AlamatPem VARCHAR(100), IN KdPosPem CHAR(5), IN KotaPem VARCHAR(40), IN KecPem VARCHAR(40), IN KelPem VARCHAR(40), IN PelKd CHAR(5) , IN KarKd CHAR(5)) BEGIN IF NOT EXISTS ( SELECT KdPosPemesanan FROM PosPemesanan WHERE KdPosPemesanan = KdPosPem ) THEN INSERT INTO PosPemesanan (KdPosPemesanan, KotaPemesanan, KecPemesanan, KelPemesanan) VALUES (KdPosPem, KotaPem, KecPem, KelPem); END IF; IF NOT EXISTS ( SELECT KdPemesanan FROM Pemesanan WHERE KdPemesanan = KdPem) THEN INSERT INTO Pemesanan (kdPemesanan,TglPemesanan,Diskon,KdPel,KdKar,TglPengPemesanan,GmbPengPemesa nan,StatusPengPemesanan,NamaProyek,AlamatPemesanan,KdposPemesanan) VALUES (KdPem,TglPem,Dsn,PelKd,KarKd,TglPeng,GmbPeng,StatusPeng,NamProy,AlamatPem, KdPosPem); ELSE UPDATE Pemesanan set kdPemesanan=KdPem,TglPemesanan=TglPem,Diskon=Dsn,KdPel=PelKd,KdKar=KarKd, TglPengPemesanan=TglPeng ,GmbPengPemesanan=GmbPeng,StatusPengPemesanan=Stat usPeng,NamaProyek=NamProy,AlamatPemesanan=AlamatPem,KdposPemesanan=KdPos Pem WHERE KdPemesanan=KdPem; END IF; END
2. Memasukkan dan mengubah data pelanggan CREATE PROCEDURE SaveOrUpdatePelanggan (IN PelKd CHAR(5), IN PelNama VARCHAR(40), IN PelAlamat VARCHAR(100), IN PelEmail VARCHAR(50), IN PelTelp VARCHAR(15), IN KdPosP CHAR(5), IN KotaP VARCHAR(20), IN KecP VARCHAR(20), IN KelP VARCHAR(20), IN PelFax VARCHAR (15) ) BEGIN IF NOT EXISTS ( SELECT KdPosPelanggan FROM PosPelanggan WHERE KdPosPel=KdPosP ) THEN INSERT INTO PosPelanggan (KdPosPel, KotaPel, KecPel, KelPel) VALUES (KdPosP, KotaP, KecP, KelP); END IF; INSERT INTO TelpPelanggan (KdPel, TelpPel) VALUES (PelKd, PelTelp); IF NOT EXISTS (SELECT KdPel FROM Pelanggan WHERE KdPel = PelKd ) THEN INSERT INTO TelpPelanggan (KdPel, TelpPel) VALUES (PelKd, PelTelp);
238 INSERT INTO Pelanggan (KdPel, NamaPel, AlamatPel, KdPosPel, FaxPel, EmailPel) VALUES (PelKd, PelNama, PelAlamat, KdPosP, PelFax, PelEmail); ELSE UPDATE TelpPelanggan SET TelpPel = PelTelp WHERE KdPel = PelKd; UPDATE Pelanggan SET KdPel= PelKd, NamaPel= PelNama, AlamatPel= PelAlamat, KdPosPel= KdPosP, FaxPel =PelFax, EmailPel= PelEmail WHERE KdPel = PelKd; END IF; END
3. Memasukkan dan mengubah data rumus bahan baku CREATE PROCEDURE SaveOrUpdateRumusBahanBaku (IN KdRum Char(5) , IN NamaRum VARCHAR (40), IN Gamb VARCHAR(20), IN Des VARCHAR(100)) BEGIN IF EXISTS( SELECT KdRumus FROM RumusBahanBaku WHERE KdRumus = KdRum )THEN update RumusBahanbaku set KdRumus=KdRum, NamaRumus=NamaRum, Gambar= Gamb, Deskripsi=Des where KdRumus=KdRum; ELSE INSERT INTO RumusBahanBaku ( KdRumus ,NamaRumus, Gambar,Deskripsi) Values (KdRum, NamaRum, Gamb, Des); END IF; END
4. Memasukkan dan mengubah data produksi CREATE PROCEDURE SaveOrUpdateProduksi (IN KdPro Char (7), IN NamaBar VARCHAR(40) ,IN TglMulPro DATETIME, IN StatPro CHAR(1), IN Jum INT, IN UkTin INT, IN UkLeb INT, IN HarPro INT,IN KdRum Char(5), IN KdPeme Char(7)) BEGIN IF EXISTS( SELECT KdProduksi FROM Produksi WHERE KdProduksi=KdPro ) THEN Update Produksi set KdProduksi=KdPro, NamaBarang=NamaBar, TglMulaiProduksi=TglMulPro, StatusProduksi=StatPro, JumlahProduksi=Jum, UkTinggi=UkTin, UkLebar=UkLeb, HargaJual=Harpro,KdRumus=KdRum,KdPemesanan=KdPeme where KdProduksi=KdPro; ELSE INSERT INTO Produksi (KdProduksi, NamaBarang, TglMulaiProduksi, StatusProduksi, JumlahProduksi, UkTinggi, UkLebar, HargaJual, KdRumus, KdPemesanan) VALUES (KdPro, NamaBar, TglMulPro, StatPro, Jum, UkTin, UkLeb, HarPro, KdRum, KdPeme); END IF; END
239 5. Memasukkan dan mengubah data kontrak CREATE PROCEDURE SaveOrUpdateKontrak( IN KdKon Char(7),IN Spes VARCHAR(200) , IN Ket VARCHAR(200), IN TglKon DATETIME, IN StatKon Char(1), IN Dsn TinyInt, IN KdeKar Char(5), IN KdePeme Char(7)) BEGIN IF EXISTS ( SELECT KdKontrak FROM Kontrak WHERE KdKontrak=KdKon ) THEN UPDATE Kontrak SET KdKontrak = KdKon, Spesifikasi=Spes, Keterangan=Ket, TglKontrak=TglKon, StatusKontrak=StatKon, Diskon=Dsn, KdKar=KdeKar, KdPemesanan=KdePeme WHERE KdKontrak=KdKon; ELSE INSERT INTO Kontrak (KdKontrak, Spesifikasi , Keterangan, TglKontrak, StatusKontrak,Diskon,KdKar,KdPemesanan) VALUES (KdKon, Spes, Ket, TglKon, StatKon, Dsn, KdeKar, KdePeme); END IF; END
6. Memasukkan dan mengubah data rancangan kusen pintu jendela CREATE PROCEDURE SaveOrUpdateRancanganKusen (IN KdRan CHAR(7), IN TglRan DATETIME, IN GmbRan VARCHAR(20), IN StatusRan CHAR(1), IN UkLub INT, IN UkJen INT, IN Ket VARCHAR(100), IN KdPem CHAR(7)) BEGIN IF EXISTS( SELECT KdRancangan FROM RancanganKusen WHERE KdRancangan=KdRan ) THEN UPDATE RancanganKusen SET KdRancangan=KdRan, TglRancangan=TglRan, GmbRancangan=GmbRan, StatusRancangan=StatusRan, UkLubang=Uklub, UkJendela=UkJen, Keterangan=Ket, KdPemesanan=KdPem WHERE KdRancangan=KdRan; ELSE INSERT INTO RancanganKusen (KdRancangan, TglRancangan, GmbRancangan, StatusRancangan, UkLubang, UkJendela, Keterangan, KdPemesanan) VALUES (KdRan, TglRan, GmbRan, StatusRan, UkLub, UkJen, Ket, KdPem); END IF; END
7. Memasukkan dan mengubah data pemesanan (dihapus kata HER) CREATE PROCEDURE SaveOrUpdatePemesanan (IN KdPem CHAR(7), IN TglPem DATETIME, IN Disc INT) BEGIN UPDATE Pemesanan SET TglPemesanan = TglPem , Diskon = Disc WHERE KdPemesanan = KdPem; END
240 8. Memasukkan dan mengubah data target produksi CREATE PROCEDURE SaveOrUpdateTargetProduksi (IN KdPem CHAR(7), IN TglPeng DATE, IN TglPem DATE, IN Ket VARCHAR(100)) BEGIN IF EXISTS ( SELECT KdPemesanan FROM TargetProduksi WHERE Kdpemesanan=KdPem ) THEN UPDATE TargetProduksi SET TglPengiriman=TglPeng, TglPemasangan=TglPem, Keterangan=Ket, KdPemesanan=KdPem WHERE Kdpemesanan=KdPem; ELSE INSERT INTO TargetProduksi (TglPengiriman, TglPemasangan, Keterangan, KdPemesanan) VALUES (TglPeng, TglPem, Ket, KdPem); END IF; END
9. Memasukkan dan mengubah data tugas produksi CREATE PROCEDURE SaveOrUpdateTugasProduksi (IN KdTug CHAR(7), IN Ket VARCHAR(100), IN KdPro CHAR(7)) BEGIN IF EXISTS ( SELECT KdTugas FROM TugasProduksi WHERE KdTugas = KdTug ) THEN UPDATE TugasProduksi SET KdTugas= KdTug, Keterangan= Ket, KdProduksi= KdPro WHERE KdTugas = KdTug; ELSE INSERT INTO TugasProduksi (KdTugas, Keterangan, KdProduksi) VALUES (KdTug, Ket, KdPro); END IF; END
10. Memasukkan dan mengubah data pengambilan bahan baku CREATE PROCEDURE SaveOrUpdatePengambilanBahanBaku (IN KdPeng CHAR(7), IN TglPeng DATETIME, IN KdeKar CHAR(5)) BEGIN IF EXISTS ( SELECT KdPengambilan FROM PengambilanBahanBaku WHERE KdPengambilan=Kdpeng ) THEN UPDATE PengambilanBahanBaku SET KdPengambilan=KdPeng, TglPengambilan=TglPeng, KdKar=KdeKar WHERE KdPengambilan=Kdpeng; ELSE INSERT INTO PengambilanBahanBaku (KdPengambilan,TglPengambilan,KdKar) VALUES (KdPeng,TglPeng,KdeKar); END IF; END
241 11. Memasukkan dan mengubah data barang jadi CREATE PROCEDURE SaveOrUpdateBarangJadi (IN KdBarJad Char(7), IN TglBarMas DATETIME, IN StatBarJadi CHAR(1), IN KdPeng CHAR(7), IN KdProd CHAR(7) ) BEGIN IF EXISTS ( SELECT KdBarangjadi FROM BarangJadi WHERE KdBarangjadi = KdBarJad ) THEN UPDATE BarangJadi SET KdBarangjadi= KdBarJad, TglBarangMasuk= TglBarMas, StatusBarangJadi= StatBarJadi, KdPengiriman= KdPeng, KdProduksi= KdProd WHERE KdBarangjadi = KdBarJad; ELSE INSERT INTO BarangJadi (KdBarangjadi, TglBarangMasuk, StatusBarangJadi, KdPengiriman, KdProduksi) VALUES (KdBarJad, TglBarMas, StatBarJadi, KdPeng, KdProd); END IF; END
12. Memasukkan dan mengubah data bahan baku CREATE PROCEDURE SaveOrUpdateBahanBaku (IN KdBaBaku Char(5), IN NmBBaku VARCHAR(40), IN KdTipBa CHAR(5), IN KdSatBa CHAR(5), IN Har INT, IN Stk INT, IN StkMn INT) BEGIN IF EXISTS ( SELECT KdBahanBaku FROM BahanBaku WHERE KdBahanBaku = KdBaBaku ) THEN UPDATE BahanBaku SET KdBahanBaku=KdBaBaku ,NamaBahanBaku=NmBBaku, KdTipeBahan=KdTipBa, KdSatuanBahan=KdSatBa, Harga=Har, Stok=Stk, StokMin=StkMn Where KdBahanBaku = KdBaBaku; ELSE INSERT INTO BahanBaku (KdBahanBaku ,NamaBahanBaku, KdTipeBahan, KdSatuanBahan, Harga, Stok, StokMin) VALUES (KdBaBaku, NmBBaku, KdTipBa, KdSatBa, Har, Stk, StkMn); END IF; END
13. Memasukkan dan mengubah data pemasok CREATE PROCEDURE SaveOrUpdatePemasok (IN PemKd CHAR(5), IN PemNama VARCHAR(40), IN PemAlamat VARCHAR(10), IN PemEmail Varchar(50), IN KdPosP CHAR(5), IN KotaP VARCHAR(20), IN KecP VARCHAR(20), IN KelP VARCHAR(20), IN PemTelp VARCHAR(15), IN PemFax VARCHAR(15)) BEGIN IF NOT EXISTS ( SELECT KdPosPem FROM PosPemasok WHERE KdPosPem = KdPosP ) THEN INSERT INTO PosPemasok (KdPosPem, KotaPem, KecPem, KelPem) VALUES (KdPosP, KotaP, KecP, KelP); END IF;
242 IF NOT EXISTS (SELECT KdPem FROM Pemasok WHERE KdPem = PemKd ) THEN INSERT INTO TelpPemasok (KdPem, TelpPem) VALUES (PemKd, PemTelp); INSERT INTO Pemasok (KdPem, NamaPem, AlamatPem, KdPosPem, FaxPem, EmailPem) VALUES (PemKd, PemNama, PemAlamat, KdPosP, PemFax, PemEmail); ELSE UPDATE TelpPemasok SET TelpPem = PemTelp WHERE KdPem = PemKd; UPDATE Pemasok SET KdPem= PemKd, NamaPem=PemNama, AlamatPem= PemAlamat, KdPosPem= KdPosP, FaxPem= PemFax, EmailPem= PemEmail WHERE KdPem = PemKd ; END IF;
END 14. Memasukkan dan mengubah data pengajuan pembelian CREATE PROCEDURE SaveOrUpdatePengajuanPembelian (IN KdePeng CHAR(7), IN TglPeng DATETIME, IN StatPeng CHAR(1), IN KdeKar CHAR(5)) BEGIN IF EXISTS ( SELECT KdPengajuan FROM PengajuanPembelian WHERE KdPengajuan = KdePeng ) THEN UPDATE PengajuanPembelian SET KdPengajuan= KdePeng, TglPengajuan= TglPeng, StatusPengajuan= StatPeng, KdKar= KdeKar WHERE KdPengajuan = KdePeng; ELSE INSERT INTO PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, KdKar) VALUES(KdePeng, TglPeng, StatPeng, KdeKar); END IF; END
15. Memasukkan dan mengubah data pembelian CREATE PROCEDURE SaveOrUpdatePembelian (IN KdPemb CHAR(7), IN TglPemb DATETIME, IN StatPemb CHAR(1), IN KdeKar CHAR(5), IN KdePeng CHAR(7), IN KdePem CHAR(5)) BEGIN IF EXISTS ( SELECT KdPembelian FROM Pembelian WHERE KdPembelian = KdPemb) THEN UPDATE Pembelian SET KdPembelian= KdPemb, TglPembelian= TglPemb, StatusPembelian= StatPemb, KdKar= KdeKar, KdPengajuan= KdePeng, KdPem= KdePem WHERE KdPembelian = KdPemb; ELSE INSERT INTO Pembelian (KdPembelian, TglPembelian, StatusPembelian, KdKar, KdPengajuan, KdPem) VALUES(KdPemb, TglPemb, StatPemb, KdeKar, KdePeng, KdePem); END IF; END
243
16. Memasukkan dan mengubah data retur pembelian CREATE PROCEDURE SaveOrUpdateReturPembelian (IN KdRet CHAR(7), IN TglRet DATETIME, IN StaRet CHAR(1), IN AlasR VARCHAR(20), IN KdeKar Char(5), IN KdePemb CHAR(7)) BEGIN IF EXISTS ( SELECT KdReturPemb FROM ReturPembelian WHERE KdReturPemb = KdRet ) THEN UPDATE ReturPembelian SET KdReturPemb=KdRet, TglRetur=TglRet, StatusRetur=StaRet, AlasanRetur=AlasR, KdKar=KdeKar, KdPembelian=KdePemb WHERE KdReturPemb = KdRet; ELSE INSERT INTO ReturPembelian (KdReturPemb, TglRetur, StatusRetur, AlasanRetur, KdKar, KdPembelian) VALUES (KdRet,TglRet,StaRet,AlasR,KdeKar,KdePemb); END IF; END
17. Memasukkan dan mengubah data pengiriman CREATE PROCEDURE SaveOrUpdatePengiriman(IN KdPeng CHAR(7), IN TglPeng DATETIME, IN StatPeng CHAR(1), IN KdePeme CHAR(7), IN KdeKar CHAR(5)) BEGIN IF EXISTS ( SELECT KdPengiriman FROM pengiriman WHERE KdPengiriman = KdPeng ) THEN UPDATE pengiriman SET KdPengiriman=KdPeng, TglPengiriman=TglPeng, StatusPengiriman= StatPeng, KdPemesanan= KdePeme, KdKar= KdeKar WHERE KdPengiriman = KdPeng; ELSE INSERT INTO pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman, KdPemesanan, KdKar) VALUES (KdPeng, TglPeng, StatPeng, KdePeme, KdeKar); END IF; END
18. Memasukkan dan mengubah data pemasangan CREATE PROCEDURE SaveOrUpdatePemasangan (IN KdePema CHAR(7), IN TglPema DATETIME, IN Gamb VARCHAR(20), IN KdPeme CHAR(7)) BEGIN IF EXISTS ( SELECT KdPemasangan FROM Pemasangan WHERE KdPemasangan = KdePema ) THEN UPDATE Pemasangan SET KdPemasangan= KdePema, TglPemasangan= TglPema, Gambar= Gamb, KdPemesanan= KdPeme WHERE KdPemasangan = KdePema; ELSE INSERT INTO Pemasangan (KdPemasangan, TglPemasangan, Gambar, KdPemesanan) VALUES (KdePema, TglPema, Gamb, KdPeme);
244 END IF; END
19. Memasukkan dan mengubah data karyawan CREATE PROCEDURE SaveOrUpdateKaryawan (IN KarKd CHAR(5), IN KarNama VARCHAR(40), IN KarAlamat VARCHAR(10), IN KdPosK CHAR(5), IN KotaK VARCHAR(20), IN KecK VARCHAR(20), IN KelK VARCHAR(20), IN KarTelp VARCHAR(15), IN JenisKel CHAR(1), IN FotoKar VARCHAR(20), IN PosisiKd CHAR(3), IN KarEmail VARCHAR(50)) BEGIN IF NOT EXISTS ( SELECT KdPosKar FROM PosKaryawan WHERE KdPosKar= KdPosK ) THEN INSERT INTO PosKaryawan (KdPosKar, KotaKar, KecKar, KelKar) VALUES (KdPosK, KotaK, KecK, KelK); END IF; IF NOT EXISTS ( SELECT KdKar FROM Karyawan WHERE KdKar = KarKd ) THEN INSERT INTO TelpKaryawan (KdKar, TelpKar) VALUES (KarKd, KarTelp); INSERT INTO Karyawan (KdKar, NamaKar, AlamatKar, KdPosKar, EmailKar, KdPosisi, FotoKar, JenisKelamin) VALUES (KarKd, KarNama, KarAlamat, KdPosK, KarEmail, PosisiKd, KarFoto, JenisKel); ELSE UPDATE TelpKaryawan SET TelpKar = KarTelp WHERE KdKar = KarKd; UPDATE Karyawan SET KdKar= KarKd, NamaKar= KarNama, AlamatKar= KarAlamat, KdPosKar= KdPosK, EmailKar= KarEmail, KdPosisi= PosisiKd, FotoKar= KarFoto, JenisKelamin= JenisKel; END IF; END
20. Memasukkan dan mengubah data pembayaran pemesanan CREATE PROCEDURE SaveOrUpdatePembayaranPemesanan (IN KdPPeme CHAR(7), IN TglPPeme DATETIME, IN Jbyar INT, IN KdeKar CHAR(5), IN KdePeme CHAR(7)) BEGIN IF EXISTS ( SELECT Kd PembPemesanan FROM PembayaranPemesanan WHERE KdPembPemesanan = KdPPeme ) THEN UPDATE PembayaranPemesanan SET KdPembPemesanan= KdPPeme, TglPembPemesanan=TglPPeme, JumlahBayar=Jbyar, KdKar=KdeKar, KdPemesanan= KdePeme WHERE KdPembPemesanan = KdPPeme; ELSE INSERT INTO PembayaranPemesanan (KdPembPemesanan, TglPembPemesanan, JumlahBayar, KdKar, KdPemesanan) VALUES (KdPPeme, TglPPeme, Jbyar, KdeKar,KdePeme); END IF; END
245
21. Memasukkan dan mengubah data pembayaran pembelian CREATE PROCEDURE SaveOrUpdatePembayaranPembelian (IN KdPPemb CHAR(7), IN TglPPemb DATETIME, IN KdPemb CHAR(7), IN KdeKar CHAR(5), IN Jbyar INT) BEGIN IF EXISTS ( SELECT KdPembPembelian FROM PembayaranPembelian WHERE KdPembPembelian = KdPPemb ) THEN UPDATE PembayaranPembelian SET KdPembPembelian= KdPPemb, TglPembPembelian= TglPPemb, KdPembelian= KdPemb, KdKar= KdeKar, JumlahBayar=Jbyar WHERE KdPembPembelian = KdPPemb; ELSE INSERT INTO PembayaranPembelian (KdPembPembelian, TglPembPembelian, KdPembelian, KdKar, JumlahBayar) VALUES ( KdPPemb, TglPPemb, KdPemb, KdeKar, Jbyar); END IF; END
3.3.4.4. Merancang Mekanisme Keamanan Tujuannya untuk merancang mekanisme keamaman untuk basis data yang ditentukan oleh pengguna selama tahap Requirements andCollection dari Database System Development Lifecyle. Berikut terdapat perancangan mekanisme keamanan mengenai hak akses bagi pihak-pihak yang terlibat dalam sistem basis data:
246 Tabel 3.105Pemberian Hak Akses 1
Transaction / Relation Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
I
R
Wakil Direktur U D I R U D
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Direktur
I
R U D
Pembelian
I
R U D
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X X
Pemasaran
X
X X
X
X
X
X X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X X X
X X
X
X
X
X
247 Tabel 3.106Pemberian Hak Akses 2 Transaction / Relation
Karyawan PosisiKaryawan PosKaryawan Pelanggan PosPelanggan Pemasok PosPemasok TugasProduksi DetilTugas Pemasangan DetilPemasangan RumusBahanBaku DetilRumus Pembelian DetilPembelian PengajuanPembelian DetilPengajuanBeli ReturPembelian DetilReturBeli PengambilanBahanBaku DetilPengambilanBahan TelpKaryawan TelpPelanggan TelpPemasok BahanBaku TipeBahan SatuanBahan Produksi TargetProduksi PembayaranPembelian BarangJadi Pengiriman Kontrak Pemesanan PosPemesanan RancanganKusen PembayaranPemesanan
Gudang I
R
U
Produksi D
I
R
U
Admin D
I
R
U
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X X X
X
X
X
X
X
X
X
X
X
X
X
D
248 1.
Direktur Tabel 3.107Hak Akses bagi Direktur GRANT SELECT, INSERT, UPDATE ON Karyawan TO Direktur GRANT SELECT, INSERT, UPDATE ON PosisiKaryawan TO Direktur GRANT SELECT, INSERT, UPDATE ON PosKaryawan TO Direktur GRANT SELECT, INSERT, UPDATE ON TelpKaryawan TO Direktur GRANT SELECT ON Pelanggan TO Direktur GRANT SELECT ON PosPelanggan TO Direktur GRANT SELECT ON Pemasok TO Direktur GRANT SELECT ON PosPemasok TO Direktur GRANT SELECT ON TugasProduksi TO Direktur GRANT SELECT ON DetilTugas TO Direktur GRANT SELECT ON Pemasangan TO Direktur GRANT SELECT ON DetilPemasangan TO Direktur GRANT SELECT ON RumusBahanBaku TO Direktur GRANT SELECT ON DetilRumus TO Direktur GRANT SELECT ON Pembelian TO Direktur GRANT SELECT ON DetilPembelian TO Direktur GRANT SELECT ON PengajuanPembelian TO Direktur GRANT SELECT ON DetilPengajuanBeli TO Direktur GRANT SELECT ON PengambilanBahanBaku TO Direktur GRANT SELECT ON DetilPengambilanBahan TO Direktur GRANT SELECT ON TelpPelanggan TO Direktur GRANT SELECT ON TelpPemasok TO Direktur GRANT SELECT ON BahanBaku TO Direktur GRANT SELECT ON TipeBahan TO Direktur GRANT SELECT ON SatuanBahan TO Direktur GRANT SELECT ON Produksi TO Direktur GRANT SELECT ON TargetProduksi TO Direktur GRANT SELECT ON PembayaranPembelian TO Direktur GRANT SELECT ON BarangJadi TO Direktur GRANT SELECT ON Pengiriman TO Direktur GRANT SELECT ON Kontrak TO Direktur GRANT SELECT ON Pemesanan TO Direktur GRANT SELECT ON PosPemesanan TO Direktur GRANT SELECT ON RancanganKusen TO Direktur GRANT SELECT ON PembayaranPemesanan TO Direktur
249 2.
Wakil Direktur Tabel 3.108 Hak Akses bagi Wakil Direktur GRANT SELECT, INSERT, UPDATE ON Karyawan TO Wakil Direktur GRANT SELECT, INSERT, UPDATE ON PosisiKaryawan TO Wakil Direktur GRANT SELECT, INSERT, UPDATE ON PosKaryawan TO Wakil Direktur GRANT SELECT, INSERT, UPDATE ON TelpKaryawan TO Wakil Direktur GRANT SELECT ON Pelanggan TO Wakil Direktur GRANT SELECT ON PosPelanggan TO Wakil Direktur GRANT SELECT ON Pemasok TO Wakil Direktur GRANT SELECT ON PosPemasok TO Wakil Direktur GRANT SELECT ON TugasProduksi TO Wakil Direktur GRANT SELECT ON DetilTugas TO Wakil Direktur GRANT SELECT ON Pemasangan TO Wakil Direktur GRANT SELECT ON DetilPemasangan TO Wakil Direktur GRANT SELECT ON RumusBahanBaku TO Wakil Direktur GRANT SELECT ON DetilRumus TO Wakil Direktur GRANT SELECT ON Pembelian TO Wakil Direktur GRANT SELECT ON DetilPembelian TO Wakil Direktur GRANT SELECT ON PengajuanPembelian TO Wakil Direktur GRANT SELECT ON DetilPengajuanBeli TO Wakil Direktur GRANT SELECT ON PengambilanBahanBaku TO Wakil Direktur GRANT SELECT ON DetilPengambilanBahan TO Wakil Direktur GRANT SELECT ON TelpPelanggan TO Wakil Direktur GRANT SELECT ON TelpPemasok TO Wakil Direktur GRANT SELECT ON BahanBaku TO Wakil Direktur GRANT SELECT ON TipeBahan TO Wakil Direktur GRANT SELECT ON SatuanBahan TO Wakil Direktur GRANT SELECT ON Produksi TO Wakil Direktur GRANT SELECT ON TargetProduksi TO Wakil Direktur GRANT SELECT ON PembayaranPembelian TO Wakil Direktur GRANT SELECT ON BarangJadi TO Wakil Direktur GRANT SELECT ON Pengiriman TO Wakil Direktur GRANT SELECT ON Kontrak TO Wakil Direktur GRANT SELECT ON Pemesanan TO Wakil Direktur GRANT SELECT ON PosPemesanan TO Wakil Direktur GRANT SELECT ON RancanganKusen TO Wakil Direktur GRANT SELECT ON PembayaranPemesanan TO Wakil Direktur
250 3.
Pemasaran Tabel 3.109Hak Akses bagi Divisi Pemasaran GRANT SELECT, INSERT, UPDATE ON Pelanggan TO Pemasaran GRANT SELECT, INSERT, UPDATE ON PosPelanggan TO Pemasaran GRANT SELECT, INSERT, UPDATE ON TelpPelanggan TO Pemasaran GRANT SELECT, INSERT, UPDATE ON Pemasangan TO Pemasaran GRANT SELECT, INSERT, UPDATE ON DetilPemasangan TO Pemasaran GRANT SELECT, INSERT, UPDATE ON Pengiriman TO Pemasaran GRANT SELECT, INSERT, UPDATE ON Kontrak TO Pemasaran GRANT SELECT, INSERT, UPDATE ON Pemesanan TO Pemasaran GRANT SELECT, INSERT, UPDATE ON PosPemesanan TO Pemasaran GRANT SELECT, INSERT, UPDATE ON PembayaranPemesanan TO Pemasaran GRANT SELECT ON Karyawan TO Pemasaran GRANT SELECT ON PosisiKaryawan TO Pemasaran GRANT SELECT ON TelpKaryawan TO Pemasaran GRANT SELECT ON TargetProduksi TO Pemasaran GRANT SELECT ON BarangJadi TO Pemasaran GRANT SELECT ON RancanganKusen TO Pemasaran
4.
Pembelian Tabel 3.110Hak Akses bagi Divisi Pembelian GRANT SELECT, INSERT, UPDATE ON Pemasok TO Pembelian GRANT SELECT, INSERT, UPDATE ON PosPemasok TO Pembelian GRANT SELECT, INSERT, UPDATE ON Pembelian TO Pembelian GRANT SELECT, INSERT, UPDATE ON DetilPembelian TO Pembelian GRANT SELECT, INSERT, UPDATE ON ReturPembelian TO Pembelian GRANT SELECT, INSERT, UPDATE ON DetilReturBeli TO Pembelian GRANT SELECT, INSERT, UPDATE ON TelpPemasok TO Pembelian GRANT SELECT, INSERT, UPDATE ON PembayaranPembelian TO Pembelian GRANT SELECT ON Karyawan TO Pembelian GRANT SELECT ON PosisiKaryawan TO Pembelian GRANT SELECT ON TelpKaryawan TO Pembelian GRANT SELECT ON BahanBaku TO Pembelian GRANT SELECT ON TipeBahan TO Pembelian GRANT SELECT ON SatuanBahan TO Pembelian
251 5.
Gudang Tabel 3.111Hak Akses bagi Bagian Gudang GRANT SELECT, INSERT, UPDATE ON PengajuanPembelian TO Gudang GRANT SELECT, INSERT, UPDATE ON DetilPengajuanBeli TO Gudang GRANT SELECT, INSERT, UPDATE ON BahanBaku TO Gudang GRANT SELECT, INSERT, UPDATE ON TipeBahan TO Gudang GRANT SELECT, INSERT, UPDATE ON SatuanBahan TO Gudang GRANT SELECT, INSERT, UPDATE ON BarangJadi TO Gudang GRANT SELECT ON Karyawan TO Gudang GRANT SELECT ON PosisiKaryawan TO Gudang GRANT SELECT ON TelpKaryawan TO Gudang GRANT SELECT ON Pelanggan TO Gudang GRANT SELECT ON TelpPelanggan TO Gudang GRANT SELECT ON Karyawan TO Gudang GRANT SELECT ON PosisiKaryawan TO Gudang GRANT SELECT ON TelpKaryawan TO Gudang GRANT SELECT ON PosPelanggan TO Gudang GRANT SELECT ON Pengiriman TO Gudang
6.
Produksi Tabel 3.112Hak Akses bagi Divisi Produksi GRANT SELECT, INSERT, UPDATE ON TugasProduksi TO Produksi GRANT SELECT, INSERT, UPDATE ON DetilTugas TO Produksi GRANT SELECT, INSERT, UPDATE ON RumusBahanBaku TO Produksi GRANT SELECT, INSERT, UPDATE ON DetilRumus TO Produksi GRANT SELECT, INSERT, UPDATE ON PengambilanBahanBaku TO Produksi GRANT SELECT, INSERT, UPDATE ON DetilPengambilanBahan TO Produksi GRANT SELECT, INSERT, UPDATE ON Produksi TO Produksi GRANT SELECT, INSERT, UPDATE ON TargetProduksi TO Produksi GRANT SELECT, INSERT, UPDATE ON RancanganKusen TO Produksi GRANT SELECT ON Karyawan TO Produksi GRANT SELECT ON PosisiKaryawan TO Produksi GRANT SELECT ON TelpKaryawan TO Produksi GRANT SELECT ON Pelanggan TO Produksi GRANT SELECT ON PosPelanggan TO Produksi GRANT SELECT ON TelpPelanggan TO Produksi GRANT SELECT ON Pemasangan TO Produksi GRANT SELECT ON DetilPemasangan TO Produksi GRANT SELECT ON BahanBaku TO Produksi
252 GRANT SELECT ON TipeBahan TO Produksi GRANT SELECT ON SatuanBahan TO Produksi GRANT SELECT ON BarangJadi TO Produksi GRANT SELECT ON Pengiriman TO Produksi GRANT SELECT ON Pemesanan TO Produksi GRANT SELECT ON PosPemesanan TO Produksi
7.
Admin Tabel 3.113Hak Akses bagi Admin GRANT SELECT, INSERT, UPDATE ON Karyawan TO Admin GRANT SELECT, INSERT, UPDATE ON PosisiKaryawan TO Admin GRANT SELECT, INSERT, UPDATE ON PosKaryawan TO Admin GRANT SELECT, INSERT, UPDATE ON TelpKaryawan TO Admin GRANT SELECT, INSERT, UPDATE ON Pelanggan TO Admin GRANT SELECT, INSERT, UPDATE ON PosPelanggan TO Admin GRANT SELECT, INSERT, UPDATE ON Pemasok TO Admin GRANT SELECT, INSERT, UPDATE ON PosPemasok TO Admin GRANT SELECT, INSERT, UPDATE ON TugasProduksi TO Admin GRANT SELECT, INSERT, UPDATE ON DetilTugas TO Admin GRANT SELECT, INSERT, UPDATE ON Pemasangan TO Admin GRANT SELECT, INSERT, UPDATE ON DetilPemasangan TO Admin GRANT SELECT, INSERT, UPDATE ON RumusBahanBaku TO Admin GRANT SELECT, INSERT, UPDATE ON DetilRumus TO Admin GRANT SELECT, INSERT, UPDATE ON Pembelian TO Admin GRANT SELECT, INSERT, UPDATE ON DetilPembelian TO Admin GRANT SELECT, INSERT, UPDATE ON PengajuanPembelian TO Admin GRANT SELECT, INSERT, UPDATE ON DetilPengajuanBeli TO Admin GRANT SELECT, INSERT, UPDATE ON PengambilanBahanBaku TO Admin GRANT SELECT, INSERT, UPDATE ON DetilPengambilanBahan TO Admin GRANT SELECT, INSERT, UPDATE ON TelpPelanggan TO Admin GRANT SELECT, INSERT, UPDATE ON TelpPemasok TO Admin GRANT SELECT, INSERT, UPDATE ON BahanBaku TO Admin GRANT SELECT, INSERT, UPDATE ON TipeBahan TO Admin GRANT SELECT, INSERT, UPDATE ON SatuanBahan TO Admin GRANT SELECT, INSERT, UPDATE ON Produksi TO Admin GRANT SELECT, INSERT, UPDATE ON TargetProduksi TO Admin GRANT SELECT, INSERT, UPDATE ON PembayaranPembelian TO Admin GRANT SELECT, INSERT, UPDATE ON BarangJadi TO Admin GRANT SELECT, INSERT, UPDATE ON Pengiriman TO Admin GRANT SELECT, INSERT, UPDATE ON Kontrak TO Admin GRANT SELECT, INSERT, UPDATE ON Pemesanan TO Admin
253 GRANT SELECT, INSERT, UPDATE ON PosPemesanan TO Admin GRANT SELECT, INSERT, UPDATE ON RancanganKusen TO Admin GRANT SELECT, INSERT, UPDATE ON PembayaranPemesanan TO Admin
3.3.4.5. Mempertimbangkan Pengenalan Redundasi Terkontrol Tujuannya untuk menentukan apakah memperkenalkan redundasi dengan cara terkontrol dan mengendurkan aturan normalisasi akan meningkatkan kinerja sistem. Tahapan ini merupakan penentuan denormalisasi.Menurut Connoly dan Begg (2010:546) denormalisasi digunakan untuk penyempurnaan skema relasional. Tahapan ini tidak dilakukan dengan pertimbangan berikut: a.
tidak ada kondisi kritis yang memerlukan denormalisasi
b.
denormalisasi menyebabkan implementasi menjadi lebih rumit
c.
denormalisasi mengorbankan fleksibilitas
3.3.4.6. Mengawasi dan Mengendalikan Sistem Operasional Tujuannya untuk mengawasi sistem operasional dan meningkatkan performa dari sistem untuk membenarkan keputusan desain yang tidak tepat atau perubahan kebutuhan. Tahapan ini akan dibahas secara lebih detil pada Bab 4.1.
3.4. Perancangan Layar Aplikasi Peracangan layar aplikasi terdiri dari: 3.4.1. Perancangan Struktur Menu Berikut terdapat rancangan struktur menu aplikasi basis data PT Luxus Indo Prima untuk Direktur dan Wakil Direktur, serta berbagai divisi yang terlibat:
254
1.
Struktur Menu Pemasaran
Gambar 3.24Struktur Menu Pemasaran 2.
Struktur Menu Produksi
Gambar 3.25Struktur Menu Produksi
255 3.
Struktur Menu Gudang
Gambar 3.26Struktur Menu Gudang 4.
Struktur Menu Pembelian
Gambar 3.27Struktur Menu Pembelian
256 5.
Struktur Menu Keuangan
Gambar 3.28Struktur Menu Keuangan
6.
Struktur Menu Direktur dan Wakil Direktur
Gambar 3.29Struktur Menu Direktur dan Wakil Direktur
257 3.4.2. Perancangan State Transition Diagram Berikut terdapat rancangan State Transition Diagram aplikasi basis data PT Luxus Indo Prima untuk Direktur dan Wakil Direktur, serta berbagai divisi yang terlibat:
1.
STD untuk Divisi Pemasaran
Gambar 3.30STD Halaman Menu Utama Pemasaran
Gambar 3.31STD Halaman Menu Pelanggan
258
Gambar 3.32STD Halaman Tambah Pelanggan
Gambar 3.33STD Halaman Menu Pemesanan
Gambar 3.34STD Halaman Daftar Pemesanan
259
Gambar 3.35STD Halaman Tambah Pemesanan
Gambar 3.36STD Halaman Cetak Faktur
Gambar 3.37STD Halaman Rancangan Kusen
260
Gambar 3.38 STD Halaman Menu Kontrak
Gambar 3.39STD Halaman Menu Jadwal Target
Gambar 3.40 STD Halaman Menu Pemasangan
261
Gambar 3.41STD Halaman Menu Pengiriman 2.
STD untuk Divisi Produksi
Gambar 3.42STD Halaman Menu Utama Produksi
Gambar 3.43STD Halaman Menu Bahan Baku
262
Gambar 3.44STD Halaman Daftar Bahan Baku
Gambar 3.45STD Halaman Pengambilan Bahan Baku
Gambar 3.46STD Halaman Menu Rumus
263
Gambar 3.47STD Halaman Daftar Rumus
Gambar 3.48STD Halaman Tambah Rumus
Gambar 3.49STD Halaman Menu Pemesanan
264
Gambar 3.50 STD Halaman Menu Pembelian
Gambar 3.52STD Halaman Menu Produksi
Gambar 3.51STD Halaman Daftar Produksi
265
Gambar 3.53STD Halaman Estimasi Harga
Gambar 3.54STD Halaman Tugas Produksi
Gambar 3.55STD Halaman Barang Jadi
266
Gambar 3.56STD Halaman Rancangan Kusen
Gambar 3.57STD Halaman Menu Pemasangan
267 3.
STD untuk Divisi Gudang
Gambar 3.58STD Halaman Menu Utama Gudang
Gambar 3.59STD Halaman Menu Bahan Baku
Gambar 3.60STD Halaman Bahan Baku
268
Gambar 3.61STD Halaman Tipe Bahan Baku
Gambar 3.62STD Halaman Satuan Bahan Baku
Gambar 3.63STD Halaman Menu Barang Jadi
269
Gambar 3.64STD Halaman Daftar Barang Jadi
Gambar 3.65STD Halaman Pengiriman
Gambar 3.66STD Halaman Menu Pengajuan Pembelian
270
Gambar 3.67STD Halaman Pengajuan Pembelian
Gambar 3.68STD Halaman Menu Pembelian
Gambar 3.69STD Halaman Retur Pembelian
271 4.
STD untuk Divisi Pembelian
Gambar 3.70STD Halaman Menu Utama Pembelian
Gambar 3.71STD Halaman Menu Pemasok
Gambar 3.72STD Halaman Daftar Pemasok
272
Gambar 3.73STD Halaman Tambah Pemasok
Gambar 3.74STD Halaman Menu Pembelian
Gambar 3.75STD Halaman Pengajuan Pembelian
273
Gambar 3.76STD Halaman Pembelian
Gambar 3.77STD Halaman Menu Retur Pembelian 5.
STD untuk Divisi Keuangan
Gambar 3.78STD Halaman Menu Utama Keuangan
274
Gambar 3.79STD Halaman Menu Pembayaran Pemesanan
Gambar 3.80STD Halaman Menu Pembayaran Pembelian
275 6.
STD untuk Direktur dan Wakil Direktur
Gambar 3.81STD Halaman Menu Utama Direktur dan Wakil Direktur
Gambar 3.82STD Halaman Laporan
Gambar 3.83STD Halaman Pengaturan Pengguna
276
Gambar 3.84STD Halaman Menu Karyawan
3.4.3. Perancangan Input Berikut ini terdapat perancangan tampilan halaman dalam aplikasi basis data PT Luxus Indo Prima.
277
Gambar 3.85Perancangan Halaman Log In
1.
Perancangan Tamplilan untuk Divisi Pemasaran
Gambar 3.86Perancangan Halaman Menu Utama Pemasaran
278
Gambar 3.87Perancangan Halaman Daftar Pelanggan
Gambar 3.88Perancangan Halaman Tambah Pelanggan
279
Gambar 3.89Perancangan Halaman Daftar Pemesanan
Gambar 3.90Perancangan Halaman Tambah Pemesanan
280
Gambar 3.91Perancangan Halaman Daftar Rancangan Kusen
Gambar 3.92Perancangan Halaman Cetak Faktur
281
Gambar 3.93Perancangan Halaman Daftar Produksi
Gambar 3.94Perancangan Halaman Daftar Kontrak
282
Gambar 3.95Perancangan Modal-boxBuat Kontrak
Gambar 3.96Perancangan Halaman Daftar Jadwal Target
283
Gambar 3.97Perancangan Modal-boxTambah Target
Gambar 3.98Perancangan Halaman Daftar Pemasangan
284
Gambar 3.99Perancangan Halaman Daftar Pengiriman
2.
Perancangan Tamplilan untuk Divisi Produksi
Gambar 3.100Perancangan Halaman Menu Utama Produksi
285
Gambar 3.101Perancangan Halaman Bahan Baku Produksi
Gambar 3.102Perancangan Halaman Daftar Pengambilan Bahan Baku
286
Gambar 3.103Perancangan Modal-box Tambah Pengambilan Bahan Baku
Gambar 3.104Perancangan Halaman Daftar Rumus
287
Gambar 3.105Perancangan Halaman Buat Rumus
Gambar 3.106Perancangan Halaman Daftar Pemesanan Produksi
288
Gambar 3.107Perancangan Halaman Jadwal Target Produksi
Gambar 3.108Perancangan Halaman Daftar Produksi
289
Gambar 3.109Perancangan Halaman Daftar Estimasi Harga
Gambar 3.110Perancangan Modal-boxTambah Estimasi
290
Gambar 3.111Perancangan Halaman Daftar Rancangan Kusen Produksi
Gambar 3.112Perancangan Modal-box Tambah Rancangan Kusen
291
Gambar 3.113Perancangan Halaman Tugas Produksi
Gambar 3.114Perancangan Modal-box Tambah Tugas Produksi
292
Gambar 3.115Perancangan Halaman Barang Jadi Produksi
Gambar 3.116Perancangan Modal-box Tambah Barang Jadi
293
Gambar 3.117Perancangan Halaman Pemasangan Produksi
Gambar 3.118Perancangan Modal-box Tambah Pemasangan
294 3.
Perancangan Tamplilan untuk Divisi Gudang
Gambar 3.119Perancangan Halaman Menu Utama Gudang
Gambar 3.120Perancangan Halaman Bahan Baku Gudang
295
Gambar 3.121Perancangan Modal-box Tambah Bahan Baku
Gambar 3.122Perancangan Halaman Tipe Bahan Baku
296
Gambar 3.123Perancangan Halaman Satuan Bahan Baku
Gambar 3.124Perancangan Halaman Barang Jadi Gudang
297
Gambar 3.125Perancangan Halaman Pengiriman Gudang
Gambar 3.126Perancangan Modal-box Tambah Pengiriman
298
Gambar 3.127Perancangan Halaman Pengajuan Pembelian Gudang
Gambar 3.128Perancangan Modal-box Tambah Pengajuan Pembelian
299
Gambar 3.129Perancangan Halaman Pembelian Gudang
Gambar 3.130Perancangan Halaman Retur Pembelian Gudang
300
Gambar 3.131Perancangan Modal-box Tambah Retur Pembelian 4.
Perancangan Tamplilan untuk Divisi Pembelian
Gambar 3.132Perancangan Halaman Menu Utama Pembelian
301
Gambar 3.133Perancangan Halaman Daftar Pemasok
Gambar 3.134Perancangan Halaman Tambah Pemasok
302
Gambar 3.135Perancangan Halaman Pengajuan Pembelian
Gambar 3.136Perancangan Halaman Pembelian
303
Gambar 3.137Perancangan Modal-box Tambah Pembelian
Gambar 3.138 Perancangan HalamanReturPembelian
304 5.
Perancangan Tamplilan untuk Divisi Keuangan
Gambar 3.139Perancangan Halaman Utama Keuangan
Gambar 3.140Perancangan Halaman Daftar Pembayaran Pemesanan
305
Gambar 3.141Perancangan Modal-box Buat Pembayaran Pemesanan
Gambar 3.142Perancangan Halaman Daftar Pembayaran Pembelian
306
Gambar 3.143Perancangan Modal-box Buat Pembayaran Pembelian
6.
Perancangan Tamplilan untuk Direktur dan Wakil Direktur
Gambar 3.144Perancangan Halaman Utama Direktur
307
Gambar 3.145Perancangan Halaman Daftar Karyawan
Gambar 3.146Perancangan Halaman Tambah Karyawan
308
Gambar 3.147Perancangan Halaman Posisi Karyawan
Gambar 3.148Perancangan Halaman Laporan
309
Gambar 3.149Perancangan Halaman Pengaturan Pengguna
Gambar 3.150Perancangan Modal-boxTambah Pengguna
310 3.4.4. Perancangan Output
Gambar 3.151Perancangan Faktur Pemesanan
311
Gambar 3.152Perancangan Surat Kontrak
312
Gambar 3.153Perancangan Surat Pengiriman
313
Gambar 3.154Surat Persetujuan Rancangan
314
Gambar 3.155Perancangan Surat Pemasangan
315
Gambar 3.156Perancangan Bukti Pembayaran Pemesanan
316
Gambar 3.157Perancangan Laporan Pemesanan Pelanggan
317
Gambar 3.158Surat Retur Pembelian
318
Gambar 3.159Perancangan Laporan Pembayaran Pemesanan
319
Gambar 3.160Perancangan Laporan Pembayaran Pembelian
320
Gambar 3.161Perancangan Laporan Pengambilan Bahan Baku
321
Gambar 3.162Perancangan Laporan Pengiriman
322
Gambar 3.163Perancangan Laporan Pemasangan