BAB 3 ANALIS IS DAN PERANCANGAN S IS TEM 3.1 3.1.1 Analisis Riwayat Perusahaan Pada tahun 1890 Joseph BOBST mendirikan toko supplier percetakan di Lausanna, Swiss. Seiring dengan berjalannya waktu, toko ini mulai dikenal oleh masyarakat yang pada akhirnya menjadi sebuah perusahaan yang bergerak dibidang penjualan mesin percetakan yang dinamakan BOBST SA. Perusahaan ini terus berkembang sampai sekarang ini dan membeli beberapa perusahaan lain dan berubah nama menjadi BOBST Group SA. Pada tahun 1994 BOBST Group SA membuat kantor perwakilan di Indonesia. Kantor perwakilan ini bertugas mempromosikan produk-produk BOBST untuk wilayah Indonesia dan sebagai perantara antara pelanggan dengan kantor BOBST Group SA. Pada tahun 2004 BOBST Group SA membeli group perusahaan Valmet yang salah satu cabangnya berada di Indonesia. Perusahaan Valmet memiliki beberapa orang teknisi, karena kebijakan yang mengharuskan kantor perwakilan tidak boleh memiliki teknisi, maka pada akhirnya BOBST Group SA memutuskan untuk mendirikan kantor distributor yang berada di Indonesia. Kantor ini dinamakan PT. BOBST Group Indonesia. Dengan didirikan PT. BOBST Group Indonesia, pelanggan menjadi semakin mudah dalam melakukan transaksi dan pemesanan produk-produk BOBST. 63 3.1.2 S truktur Organisasi Sumber : PT. BOBST Group Indonesia Gambar 3.1 S truktur Organisasi 64 3.1.3 Pembagian Tugas dan Tanggung Jawab Berdasarkan struktur organisasi yang ada maka pembagian tugas, wewenang, dan tanggung jawab perusahaan adalah sebagai berikut : 1. Komisaris Tugas dan tanggung jawab komisaris adalah sebagai berikut : • Pemberi modal pada PT. BOBST Group Indonesia. • Pemegang saham tertinggi pada PT. BOBST Group Indonesia. • M elakukan pengawasan terhadap kebijakan direksi dalam melaksanakan pengurusan perusahaan. 2. Direktur Tugas dan tanggung jawab direktur adalah sebagai berikut : • M eningkatkan profesionalisme dan kompetensi dari sumber daya manusia perusahaan. • Bertanggung jawab dalam pengembangan dan pengelolaan perusahaan secara keseluruhan. • M enetapkan kebijakan perusahaan dan strategi operasional dalam pengembangan perusahaan. • M engkoordinasikan seluruh sistem kerja dan mengadakan perubahanperubahan untuk mencapai tujuan yang sudah direncanakan. • M enentukan pengambilan keputusan akhir untuk intern perusahaan. • M enilai dan menganalisis semua laporan yang diterima. • M emeriksa rencana kegiatan dan anggaran perusahaan. • M enyetujui rencana kegiatan dan anggaran perusahaan. 65 3. Manager Service Flexible Material Tugas dan tanggung jawab manager service flexible material adalah sebagai berikut : • M engatur dan mengepalai para teknisi flexible material. • Bertanggung jawab atas jadwal dan pekerjaan teknisi flexible material. • Bertanggung jawab kepada direksi atas semua hasil kerja bagiannya. 4. Manager Service Folding Carton Tugas dan tanggung jawab manager service folding carton adalah sebagai berikut : • M engatur dan mengepalai para teknisi folding carton. • Bertanggung jawab atas jadwal dan pekerjaan teknisi folding carton. • Bertanggung jawab kepada direksi atas semua hasil kerja bagiannya. 5. Manager Service Champlain Tugas dan tanggung jawab manager service champlain adalah sebagai berikut : • M engatur dan mengepalai para teknisi champlain. • Bertanggung jawab atas jadwal dan pekerjaan teknisi champlain. • Bertanggung jawab kepada direksi atas semua hasil kerja bagiannya. 6. Teknisi Regional Flexible Material Tugas dan tanggung jawab teknisi regional flexible material adalah sebagai berikut : • M elakukan instalasi / pemasangan mesin flexible material. • M elakukan perbaikan / service mesin flexible material. 66 7. Teknisi Senior Folding Carton Tugas dan tanggung jawab teknisi senior folding carton adalah sebagai berikut : • M elakukan instalasi / pemasangan mesin folding carton di wilayah Asia Tenggara. • M elakukan perbaikan / service mesin folding carton di wilayah Asia Tenggara. 8. Teknisi Regional Champlain Tugas dan tanggung jawab teknisi regional champlain adalah sebagai berikut : • M elakukan instalasi / pemasangan mesin champlain. • M elakukan perbaikan / service mesin champlain. 9. Administrasi Tugas dan tanggung jawab administrasi adalah sebagai berikut : • M enerima dan memproses pesanan barang dari pelanggan. • M emberikan surat pemesanan kepada BOBST Group SA. • M enerima dan memproses surat pemesanan dari BOBST Group SA. • M emberikan harga pesanan barang kepada pelanggan. • M enerima dan memproses persetujuan pesanan barang dari pelanggan. • M emberikan surat pemesanan kepada BOBST Group SA. • M enerima dan memproses barang pesanan beserta invoice dari BOBST Group SA • M emberikan invoice untuk pelanggan. • Bertanggung jawab kepada direksi atas tugas administrasi kantor. 67 • M emberikan laporan pemesanan dan penjualan kepada direksi. • Bertanggung jawab kepada direksi dalam menjalankan kegiatan keuangan perusahaan seperti pembayaran gaji, pembayaran hutang pemasok dan penagihan piutang kepada pelanggan. • M engepalai asisten administrasi dan supir. 10. Asisten Administrasi Tugas dan tanggung jawab asisten administrasi adalah sebagai berikut : • M embantu tugas administrasi seperti fotocopy, mengetik dan lain sebagainya. • M elayani pemesanan barang dari pelanggan. • M engirimkan faksimile ke pelanggan maupun ke BOBST Group SA. 11. Supir Tugas dan tanggung jawab supir adalah sebagai berikut : • M engantarkan karyawan. • M engantarkan keperluan kantor. 68 3.1.4 3.1.4.1 Sistem yang Sedang Berjalan Prosedur yang Sedang Berjalan Gambar 3.2 Proses Bisnis PT. BOBS T Group Indonesia 69 Sistem kerja perusahaan ini mencakup kegiatan-kegiatan pemesanan, pembelian dan penjualan barang. Berikut ini merupakan uraian tentang sistem yang sedang berjalan pada PT. BOBST Group Indonesia : • Prosedur pemesanan barang Proses pemesanan barang dilakukan dalam beberapa tahap sebagai berikut : • Pelanggan memesan barang melalui telepon, fax atau kunjungan teknisi. • Admin menerima dan memproses pemesanan barang dari pelanggan. • Admin memberikan pesanan tersebut ke kantor pusat (BOBST Group SA) yang berada di Swiss. • Kantor pusat menerima pesanan dari PT. BOBST Group Indonesia dan membuat dan mengirimkan harga pesanan untuk kantor PT. BOBST Group Indonesia melalui fax. • • PT. BOBST Group Indonesia memberikan harga pesanan ke pelanggan. Prosedur pejualan barang : Proses penjualan barang dilakukan dalam beberapa tahap sebagai berikut : • Apabila pelanggan menyetujui penawaran harga pesanan dari PT. BOBST Group Indonesia, maka pelanggan mengkonfirmasi pemesanan ke PT. BOBST Group Indonesia melalui fax. • PT. BOBST menerima invoice dan barang beserta surat konfirmasi pengiriman dari kantor pusat. • PT. BOBST Group Indonesia memberikan invoice ke pelanggan sebagai tanda bukti pembelian dan mengirimkan barang yang telah dipesan 70 beserta surat pengiriman. • Prosedur pembelian barang : Proses pembelian barang dilakukan dalam beberapa tahap sebagai berikut : • PT. BOBST Group Indonesia menerima konfirmasi pemesanan dari pelanggan • PT. BOBST Group Indonesia memberikan konfirmasi pemesanan ke kantor pusat yang berada di Swiss. • Dari pesanan tersebut kantor pusat memproses konfirmasi pemesanan dan memberikan invoice kepada PT. BOBST Group Indonesia dan mengirim barang beserta surat pengiriman barang yang telah di pesan ke PT. BOBST Group Indonesia. 71 3.1.4.2 Diagram Alir Dokumen 3.1.4.2.1 Prosedur Pemesanan Barang Gambar 3.3 Diagram Alir Dokumen Proses Pemesanan 72 3.1.4.2.2 Prosedur Penjualan Barang Gambar 3.4 Diagram Alir Dokumen Proses Penjualan 73 3.1.4.2.3 Prosedur Pembelian Barang Gambar 3.5 Diagram Alir Dokumen Proses Pembelian 74 3.1.4.3 3.1.4.3.1 Kebutuhan Pengguna Kebutuhan Informasi Tabel 3.1 Kebutuhan Informasi No. Informasi 1. Informasi Pemesanan Pengguna Pelanggan, Karyawan, Pemasok Waktu digunakan • Pada saat proses pemesanan dilakukan sampai penawaran harga barang pesanan diterima oleh pelanggan. 2. Informasi Pembelian Karyawan, Pemasok • Pada saat proses konfirmasi pemesanan oleh PT. Bobst Group Indonesia kepada pemasok sampai tagihan diterima oleh PT. Bobst Group Indonesia dari pemasok. 3. Informasi Penjualan Karyawan, Pelanggan • Pada saat proses konfirmasi pemesanan oleh pelanggan dilakukan sampai tagihan diterima oleh pelanggan. 4. Informasi Pelanggan Karyawan, Pemasok • Pada saat proses pemesanan dilakukan sampai penawaran harga barang pesanan diterima oleh pelanggan. Pada saat proses konfirmasi pemesanan oleh PT. Bobst Group Indonesia kepada pemasok sampai tagihan diterima oleh PT. Bobst Group Indonesia dari pemasok. Pada saat proses konfirmasi pemesanan oleh pelanggan dilakukan sampai tagihan diterima oleh pelanggan.Pada saat pembuatan penawaran harga pesanan oleh pemasok. • • 5. Informasi Barang Pelanggan, Karyawan, Pemasok • Pada saat proses pemesanan dilakukan sampai penawaran harga barang pesanan diterima oleh pelanggan. 75 No. Informasi 6. Informasi Karyawan Pengguna Waktu digunakan • Pada saat proses konfirmasi pemesanan oleh PT. Bobst Group Indonesia kepada pemasok sampai tagihan diterima oleh PT. Bobst Group Indonesia dari pemasok. • Pada saat proses konfirmasi pemesanan oleh pelanggan dilakukan sampai tagihan diterima oleh pelanggan.Pada saat pembuatan penawaran harga pesanan oleh pemasok. Pelanggan, Pemasok • • • • 7. Informasi Pemasok 3.1.4.3.2 Karyawan • Pada saat karyawan pemesanan ke pemasok. Pada saat pembuatan penawaran harga pesanan untuk pelanggan. Pada saat pembuatan konfirmasi pemesanan kepada pemasok. Pada saat pembuatan tagihan penjualan untuk pelanggan. Pada saat proses konfirmasi pemesanan oleh PT. Bobst Group Indonesia kepada pemasok sampai tagihan diterima oleh PT. Bobst Group Indonesia dari pemasok. Kebutuhan Keamanan Data Tabel 3.2 Kebutuhan Keamanan Data No. Keamanan Data 1. Keamanan Data Pelanggan Pengguna Pelanggan Waktu digunakan Pada saat pelanggan : • M elakukan pemesanan barang kepada PT. Bobst Group Indonesia. • M enerima penawaran harga pesanan dari PT. Bobst Group Indonesia. 76 No. Keamanan Data Pengguna Waktu digunakan • M embuat konfirmasi pemesanan PT. Bobst Group Indonesia. • M enerima tagihan dari PT. Bobst Group Indonesia. 2. Keamanan Data Karyawan Karyawan Pada saat karyawan : • M enerima pesanan barang dari pelanggan. • M elakukan pemesanan kepada pemasok. • M enerima penawaran harga dari pemasok. • M embuat penawaran harga untuk pelanggan. • M enerima konfirmasi pemesanan dari pelanggan. • M embuat konfirmasi pemesanan kepada pemasok. • M enerima tagihan dari pemasok. • M embuat tagihan untuk pelanggan. 3. Keamanan Data Pemasok Pemasok Pada saat pemasok : • M enerima pesanan dari PT. Bobst Group Indonesia. • M embuat penawaran harga untuk PT. Bobst Group Indonesia. • M enerima konfirmasi pemesanan dari PT. Bobst Group Indonesia. • M embuat tagihan untuk PT. Bobst Group Indonesia. 77 3.1.4.3.3 Kebutuhan Kecepatan Akses Data Tabel 3.3 Kebutuhan Kecepatan Akses Data No. Kecepatan Akses Data 1. Kecepatan Akses Data Pelanggan Pengguna Pelanggan Waktu digunakan Pada saat pelanggan : • M elakukan pemesanan kepada PT. Bobst Group Indonesia. • M enerima penawaran harga dari PT. Bobst Group Indonesia. • M embuat konfirmasi pemesanan pembelian barang kepada PT. Bobst Group Indonesia. • M enerima tagihan dari PT. Bobst Group Indonesia 2. Kecepatan Akses Data Karyawan Karyawan Pada saat karyawan : • M enerima pesanan barang dari pelanggan. • M elakukan pemesanan kepada pemasok. • M enerima penawaran harga dari pemasok. • M embuat penawaran harga untuk pelanggan. • M enerima konfirmasi pemesanan dari pelanggan. • M embuat konfirmasi pemesanan kepada pemasok. • M enerima tagihan dari pemasok. • M embuat tagihan untuk pelanggan. 3. Kecepatan Akses Data Pemasok Pemasok Pada saat pemasok : • M enerima pesanan dari PT. Bobst Group Indonesia. • M embuat penawaran harga untuk PT. Bobst Group Indonesia. • M enerima konfirmasi pemesanan dari PT. Bobst Group Indonesia. 78 No. Kecepatan Akses Data 3.1.4.3.4 Pengguna Waktu digunakan • M embuat tagihan untuk PT. Bobst Group Indonesia. Kebutuhan Transaksi Tabel 3.4 Kebutuhan Transaksi No. Transaksi 1. Transaksi Pemesanan Pengguna Pelanggan, Karyawan, Pemasok Waktu digunakan • Pada saat proses pemesanan dilakukan sampai penawaran harga barang pesanan diterima oleh pelanggan. 2. Transaksi Penjualan Pelanggan, Karyawan, Pemasok • Pada saat proses konfirmasi pemesanan oleh PT. Bobst Group Indonesia kepada pemasok sampai tagihan diterima oleh PT. Bobst Group Indonesia dari pemasok. 3. Transaksi Pembelian Pelanggan, Karyawan, Pemasok • Pada saat proses konfirmasi pemesanan oleh pelanggan dilakukan sampai tagihan diterima oleh pelanggan. 3.1.4.4 Permasalahan yang dihadapi Permasalahan yang dihadapi oleh sistem yang sedang berjalan sekarang ini adalah : 1. Kesulitan dalam pemesanan oleh pelanggan Pelanggan kesulitan dalam melakukan pemesanan barang karena kurangnya informasi barang yang ingin dipesan. 2. Kesulitan dalam pencarian transaksi-transaksi yang telah dilakukan Perusahaan menyimpan berkas dan dokumen transaksi yang telah dilakukannya, sehingga semakin lama berkas tersebut akan semakin banyak 79 sehingga akan terjadi kesulitan dalam pencarian suatu dokumen untuk diproses kembali, misalnya untuk pembuatan laporan bulanan. 3. Kesalahan pendataan transaksi oleh karyawan Pendataan secara manual oleh karyawan dapat menyebabkan terjadinya kesalahan dalam pendataan suatu transaksi. 3.1.4.5 Usulan pemecahan masalah Berdasarkan analisis permasalahan yang telah dilakukan terhadap sistem yang berjalan perusahaan, maka diusulkan pemecahan masalah yang terbaik untuk mengganti sistem manual yang dipakai saat ini dengan membuat sebuah basis data untuk mendukung proses pemesanan, pembelian, penjualan dan memberikan informasi yang dibutuhkan oleh perusahaan. Hal diharapkan dapat memenuhi kebutuhan informasi yang sebelumnya tersebar di berbagai sistem informasi konvensional yang belum terkoordinasi dan terintegrasi dengan baik. Selain itu akan dikembangkan juga program aplikasi web yang dapat mengakses basis data. Program ini akan memvalidasi input dari user sehingga diharapkan dapat mengurangi kesalahan yang terjadi dengan sistem manual. Perancangan aplikasi basis data ini dimaksudkan agar informasi mengenai pelanggan, barang dan pemesanan dapat selalu akurat. Waktu yang digunakan dalam pengaksesan data dalam basis data diharapkan akan lebih singkat dan tepat guna. Aplikasi web ini memudahkan pelanggan dalam memesan barang yang diinginkan. Pesanan akan terupdate secara otomatis sesuai dengan pesanan dari pelanggan. Di dalam aplikasi web ini juga akan tersedia fasilitas yang menghasilkan laporan, dimana laporan tersebut sesuai dengan standar dan 80 kebutuhan direksi. Dengan demikian diharapkan aplikasi web basis data ini dapat meningkatkan efis iensi dan efektivitas kerja perusahaan secara menyeluruh. 3.2 Perancangan 3.2.1 Perancangan Basis Data Konseptual 3.2.1.1 Mengidentifikasi Tipe-Tipe Entitas Berdasarkan analisis sistem dan kebutuhan informasi dapat ditentukan kamus dan entity seperti terlihat pada tabel berikut ini : Tabel 3.5 Kamus Data Entitas No 1 Nama Entitas Pelanggan Deskripsi M erupakan entitas yang memberikan informasi mengenai pelanggan. Alias Kejadian Customer Setiap pelanggan dapat memesan daftar harga dan memesan barang 2 Karyawan M erupakan entitas yang memberikan informasi mengenai orang-orang yang bekerja pada PT. BOBST Group Indonesia. Employee Setiap transaksi pemesanan, pembelian, pembuatan surat dan penjualan yang dilakukan oleh karyawan 3 Pemasok M erupakan Entitas yang berisi informasi dari pemasok dalam hal ini adalah kantor pusat. Supplier Pemasok dapat memasok dan memberikan list harga lebih dari satu jenis 81 No 4 Nama Entitas Barang Deskripsi M erupakan entitas yang memberikan informasi mengenai barang dan jenis barang yang tersedia. Alias Item Kejadian Setiap jenis barang yang dapat dipasok dan dapat dipesan oleh beberapa pelanggan 5 Pemesanan M erupakaan entitas yang memberikan informasi mengenai pemesanan dari pelanggan. 6 Penjualan M erupakan entitas yang memberikan informasi mengenai penjualan kepada pelanggan. Sales Setiap transaksi pemesanan jual yang dipesan oleh pelanggan untuk karyawan 7 Pembelian M erupakan entitas yang memberikan informasi mengenai pembelian kepada pemasok. Purchase Setiap transaksi pemesanan beli barang yang telah di pesan dilakukan oleh karyawan untuk kantor pusat 8 Penerimaan_Barang M erupakan entitas yang memberikan informasi penerimaan barang beserta laporan tagihan pembelian dari pemasok ke karyawan Barang yang telah di beli dari pemasok di terima penerimaan barang beserta tagihannya 10. Pengiriman_Barang M erupakan entitas yang memberikan informasi tentang pengiriman barang beserta laporan tagihan penjualan dari karyawan untuk pelanggan Pengiriman barang dari karyawan ke pelanggan beserta tagihannya Setiap permintaan harga yang dapat dipesan oleh beberapa pelanggan 82 3.2.1.2 Mengidentifikasi Tipe-Tipe Relasi Berikut adalah representasi data yang digunakan untuk menentukan relationship pada entity-entity : • Representasi data pelanggan dengan pemesanan (M elakukan) • Representasi data pelanggan dengan penjualan (M elakukan) • Representasi data pelanggan dengan pembelian (Dalam) • Representasi data karyawan dengan pemesanan (M enerima) • Representasi data karyawan dengan penjualan (M elakukan) 83 • Representasi data karyawan dengan pembelian (M elakukan) • Representasi data pemasok dengan barang (M emproses) • Representasi data barang dengan pemesanan (Dalam) • Representasi data barang dengan pemesanan (Dalam) • Representasi data barang dengan pemesanan (Dalam) • Representasi data penjualan dengan pengiriman (M enghasilkan) 84 • Representasi data pembelian dengan penerimaan (M enghasilkan) Berikut adalah kamus data relationship pada entity-entity yang telah ditentukan sebelumnya : Tabel 3.6 Kamus Data Relationship No Nama Entitas 1 Pelanggan 2 Karyawan 3 4 Pemasok Barang 5 6 Penjualan Pembelian Multiplicity Relationship Nama Entitas Multiplicity M elakukan 1..1 Pemesanan 1..* M elakukan 1..1 Penjualan 1..* Dalam 1..1 Pembelian 1..1 M enerima 1..1 Pemesanan 1..* M elakukan 1..1 Penjualan 1..* M elakukan 1..1 Pembelian 1..* M emproses 1..1 Barang 1..* Dalam 1..* Pembelian 1..* Dalam 1..* Pemesanan 1..* Dalam 1..* Penjualan 1..* M enghasilkan 1..1 Pengiriman_Barang 1..1 M enghasilkan 1..1 Penerimaan_Barang 1..1 Hubungan antar tiap entity dapat kita gambarkan dalam ERD seperti terlihat pada gambar 3.5 85 Gambar 3.6 Model Konseptual ERD Relationship 86 3.2.1.3 Mengidentifikasi Tipe-Tipe Atribut Nama Entitas : Barang Tabel 3.7 Tabel Entitas Barang Atribut Kd_Barang Kd_M esin Kd_Pemasok Nama_Barang Nama_M esin Gambar Deskripsi Berat Tgl_Update Tipe data dan panjang Nomor induk setiap barang Char(10) Nomor induk setiap mesin Char(9) Nomor induk setiap pemasok yang unik Char(6) Nama setiap barang Varchar(20) Nama setiap mesin Varchar(20) Nama gambar setiap barang Varchar(20) Deskripsi setiap barang Varchar(50) Berat setiap barang (Kg) Decimal Tanggal update barang, masukan Datetime barang dan update harga Deskripsi Null Multivalue NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO Nama Entitas : Pelanggan Tabel 3.8 Tabel Entitas Pelanggan Atribut Deskripsi Kd_Pelanggan UserIDP Nama_Pelanggan Nama_Perusahaan Jabatan_Pelanggan Alamat_Pelanggan Kdpos_Pelanggan Kota_Pelanggan Telepon_Pelanggan Fax_Pelanggan Email_Pelanggan PasswordP Nomor induk pelanggan yang unik Nama ID pelanggan yang unik Nama setiap pelanggan Nama setiap perusahaan pelanggan Jabatan setiap pelanggan Alamat setiap pelanggan Kode pos setiap pelanggan Kota setiap pelanggan Telepon setiap pelanggan Fax setiap pelanggan Email setiap pelanggan Password pelanggan untuk masuk ke halaman-halaman web Tipe data dan panjang Char(8) Varchar(20) Varchar(20) Varchar(50) Varchar(20) Varchar(50) Char(5) Varchar(20) Varchar(20) Varchar(20) Varchar(20) Varchar(20) Null Multivalue NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES NO NO 87 Nama Entitas : Karyawan Tabel 3.9 Tabel Entitas Karyawan Atribut Deskripsi Kd_Karyawan UserIDK Nama_Karyawan Jabatan_Karyawan Alamat_Karyawan Telepon_Karyawan Email_Karyawan Kota_Karyawan PasswordK Nomor induk karyawan yang unik Nama ID karyawan yang unik Nama setiap karyawan Jabatan setiap karyawan Alamat setiap karyawan Telepon setiap karyawan Alamat email setiap karyawan Nama kota dari alamat karyawan Password yang digunakan untuk memasuki halaman karyawan Tipe data dan panjang Char(6) Varchar(20) Varchar(20) Varchar(20) Varchar(50) Varchar(20) Varchar(20) Varchar(20) Varchar(20) Null Multivalue NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO Null Multivalue NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES NO NO NO Nama Entitas : Pemasok Tabel 3.10 Tabel Entitas Pemasok Atribut Kd_Pemasok Deskripsi Nomor induk setiap pemasok yang unik UserIDS Nama ID pemasok yang unik Nama_Pemasok Nama setiap pemasok Alamat_Pemasok Alamat setiap pemasok Telepon_Pemasok Telepon setiap pemasok Fax_Pemasok Fax setiap pemasok Email_Pemasok Email setiap pemasok Website Website pemasok PasswordS Pasword yang digunakan untuk memasuki halaman Pemasok Tipe data dan panjang Char(6) Varchar(20) Varchar(20) Varchar(50) Varchar(20) Varchar(20) Varchar(20) Varchar(20) Varchar(20) 88 Nama Entitas : Pemesanan Tabel 3.11 Tabel Entitas Pemesanan Atribut Deskripsi Kd_Pemesanan Nama_Pelanggan Nama_Karyawan Nama_Barang Qty_Pemesanan Nomor induk setiap pemesanan Nama setiap pelanggan Nama setiap karyawan Nama setiap barang Jumlah barang dalam suatu pemesanan Tanggal pemesanan Harga beli barang Harga jual barang Tgl_Pemesanan Harga_Beli Harga_Jual Tipe data dan panjang Char(11) Varchar(20) Varchar(20) Varchar(20) Int Null Multivalue NO NO NO NO NO NO NO NO NO NO Datetime Int Int YES YES YES NO NO NO Null Multivalue NO NO NO NO NO NO YES NO NO NO NO NO NO NO Nama Entitas : Penjualan Tabel 3.12 Tabel Entitas Penjualan Atribut Deskripsi Kd_Jual Nama_Pelanggan Nama_Karyawan Nama_Barang Qty_Jual Tgl_Jual Harga_Jual Nomor induk penjualan yang unik Nama setiap pelanggan Nama setiap karyawan Nama setiap barang Jumlah barang masing-masing tanggal order jual Harga jual barang Tipe data dan panjang Char(11) Varchar(20) Varchar(20) Varchar(20) Int Datetime Int 89 Nama Entitas : Pembelian Tabel 3.13 Tabel Entitas Pembelian Atribut Kd_Beli Nama_Pelanggan Nama_Karyawan Kd_Barang Nama_Barang Qty_Beli Tgl_Beli Harga_Beli Tipe data dan panjang Nomor induk setiap pembelian yang Char(11) unik Nama setiap pelanggan Varchar(20) Nama setiap karyawan Varchar(20) Nomor induk setiap barang Char(10) Nama setiap barang Varchar(20) Jumlah masing-masing barang yang Int di beli Tanggal order beli Datetime Harga beli barang Int Deskripsi Null Multivalue NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO Nama Entitas : Penerimaan_Barang Tabel 3.14 Tabel Entitas Penerimaan Barang Atribut Deskripsi Kd_Penerimaan Nomor induk setiap penerimaan yang unik Tgl_Kirimpemasok Tanggal kirim pemasok Tgl_Terimakaryawan Tanggal Penerimaan karyawan Tipe data dan panjang Char(11) Datetime Datetime Null Multivalue NO NO NO YES NO NO Null Multivalue NO NO NO YES NO NO Nama Entitas : Pengiriman_Barang Tabel 3.15 Tabel Entitas Pengiriman Barang Atribut Kd_Pengiriman Deskripsi Nomor induk pengiriman yang unik Tgl_Kirimkaryawan Tanggal kirim karyawan Tgl_Terimapelanggan Tanggal penerimaan pelanggan Tipe data dan panjang Char(11) Datetime Datetime 90 3.2.1.4 Menentukan Domain Atribut Tabel 3.16 Tabel Domain Atribut Atribut Alamat_Karyawan Alamat_Pelanggan Alamat_Pemasok Gambar Deskripsi Berat Email_Karyawan Email_Pelanggan Email_Pemasok Fax_Pelanggan Fax_Pemasok Harga_Jual Harga_Beli Jabatan_Karyawan Jabatan_Pelanggan Kd_Barang Kd_Beli Kd_Jual Kd_Karyawan Kd_M esin Kd_Pelanggan Kd_Pemasok Kd_Penerimaan Kd_Pemesanan Kd_Pengiriman Kdpos_Pelanggan Kota_Pelanggan Kota_Karyawan Nama_Barang Nama_Karyawan Nama_M esin Nama_Pelanggan Domain Atribut Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value 0.000 – 999.999 Format email standar Format email standar Format email standar Range Value 0000000000 - 9999999999 Range Value 0000000000 - 9999999999 Range Value 0 – 99999999999 Range Value 0 – 99999999999 Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value 0000000000 - 9999999999 Range Value B0000000000 - B9999999999 Range Value J0000000000 - J9999999999 Range Value K00000 – K99999 Range Value 000000000 – 999999999 Range Value P0000000 – P9999999 Range Value BSA000 – BSA999 Range Value R0000000000 – R9999999999 Range Value C0000000000 – C9999999999 Range Value S0000000000 – S9999999999 Range Value 00000 – 99999 Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," 91 Atribut Nama_Pemasok Nama_Perusahaan UserIDP UserIDK UserIDS PasswordP PasswordK PasswordS Qty_Beli Qty_Jual Qty_Penerimaan Qty_Pemesanan Qty_Pengiriman Telepon_Pelanggan Telepon_Pemasok Telepon_Karyawan Tgl_Beli Tgl_Jual Tgl_Pemesanan Tgl_Kirimpemasok Tgl_Terimakaryawan Tgl_Kirimkaryawan Tgl_Terimapelanggan Website 3.2.1.5 Domain Atribut Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9, ".", "," Range Value A-Z, a-z, 1-9 Range Value A-Z, a-z, 1-9 Range Value A-Z, a-z, 1-9 Range Value A-Z, a-z, 1-9 Range Value A-Z, a-z, 1-9 Range Value A-Z, a-z, 1-9 Range Value 0 - 999999 Range Value 0 - 999999 Range Value 0 - 999999 Range Value 0 - 999999 Range Value 0 - 999999 Range Value 0 – 9 , (,) , Range Value 0 – 9 , (,) , Range Value 0 – 9 , (,) , Range Value 0 – 9 , '/' Range Value 0 – 9 , '/' Range Value 0 – 9 , '/' Range Value 0 – 9 , '/' Range Value 0 – 9 , '/' Range Value 0 – 9 , '/' Range Value 0 – 9 , '/' Range Value A-Z, a-z, 1-9, ".", "," Menentukan Atribut Primary Key dan Candidate Key Tabel 3.17 Tabel Primary dan Candidate Key Entitas Barang Pelanggan Karyawan Pemasok Pemesanan Canditate key Kd_Barang,Kd_mesin Kd_Pelanggan Kd_Karyawan Kd_Pemasok Kd_Pemesanan Primary Key Kd_Barang Kd_Pelanggan Kd_Karyawan Kd_Pemasok Kd_Pemesanan 92 Entitas Penjualan Pembelian Penerimaan_Barang Pengiriman_Barang Candidate key Kd_Jual Kd_Beli Kd_Penerimaan Kd_Pengiriman Primary Key Kd_Jual Kd_Beli Kd_Penerimaan Kd_Pengiriman 93 Gambar 3.7 Entity Relationship Diagram Model Konseptual dengan Primary Key 94 3.2.1.6 Validasi Model Konseptual Lokal dengan Transaksi Pengguna Gambar 3.8 Entity Relationship Diagram Model Konseptual terhadap Transaksi Pelanggan dengan Pathways 95 Keterangan : a) M asukan/ubah/hapus data Pelanggan b) M asukan/ubah/hapus data Karyawan c) M asukan/ubah/hapus data Pemasok d) M asukan data Pemesanan e) Tampilkan query Pemesanan f) M asukan data Penjualan g) Tampilkan query Penjualan h) M asukan data Pembelian i) Tampilkan query Pembelian j) M asukan data Penerimaan Barang k) Tampilkan query Penerimaan Barang l) M asukan data Pengiriman Barang m) Tampilkan query Pengiriman Barang n) M asukan/ubah/hapus data barang o) Tampilkan query barang 96 3.2.2 Pemilihan DBMS Pemilihan DBM S merupakan hal yang harus dilakukan untuk menentukan DBM S apa yang nanti akan digunakan dalam perusahaan. DBM S yang menjadi pertimbangan kami adalah : M icrosoft SQL Server, M ySQL dan Oracle 9i. Tabel 3.18 Tabel Perbandingan Platform DBMS Keterangan Tipe DBMS Biaya Perangkat Keras Microsoft SQL Server MySQL 2000 Transactional Relational Database relational database Server (Transactional server dengan Driver InnoDB) $1,489 - $4,999 $0 (lisensi Umum) atau (Profesional Edition) $ 395 (lisensi komersial) ‐ Procesor Pentium 166M hz atau lebih ‐ M emory 32M B RAM (M inimal untuk Desktop Engine), 64M B RAM (M inimal untuk semua edisi), 128 M B RAM atau lebih ‐ Harddisk space M inimal 95 M B Piranti Lunak Windows 2000 server atau Windows .NET server 2003, internet explore 5.0 ‐ Procesor Windows : Pentium 166M hz atau lebih Linux : Intel 32bit,64bit, S/390 9672 generation atau lebih ‐ M emory M inimum 128M B ‐ Harddisk space M inimum 100M B Linux, M ac OS, Windows Oracle 9i Transactional relational database server $1,500 - $15,000 ‐ Procesor Windows : Pentium 166M hz atau lebih Linux : Intel 32bit atau 64bit ‐ M emory RAM minimum 128M B ‐ Harddisk space 140M B pada system drive, minimum 2,8 GB untuk Oracle Home Drive, Untuk instalasi minimum 350 MB Windows, Solaris 8, AIX, TRU64 UNIX 97 Microsoft SQL Server 2000 1 Exabyte Keterangan Maksimum Table Size MySQL Oracle 9i 4 Gigabyte Tidak dibatasi Dengan pertimbangan dari sudut pandang perusahaan, maka kami membagi poin-poin penilaian : Tabel 3.19 Tabel Penilaian Biaya 30% M aksimum Table Size 15% Perangkat Lunak 20% Tipe DBM S 15% Perangkat Keras 20% SQL Server 2000 Tabel 3.20 Tabel SQL S erver 2000 Tipe Presentase Rating S core Biaya M aksimum Table Size Tipe DBM S Piranti Lunak Perangkat Keras TOTAL 30% 15% 15% 20% 20% 100% 4 6 8 3 6 27 1,2 0,9 1,2 0,6 1,2 5,1 MySQL Tabel 3.21 Tabel MySQL Tipe Biaya M aksimum Table Size Tipe DBM S Piranti Lunak Perangkat Keras TOTAL Presentase 30% 15% 15% 20% 20% 100% Rating 8 4 6 6 6 30 S core 2,4 0,6 0,9 1,2 1,2 6,3 98 Oracle 9i Tabel 3.22 Tabel Oracle 9i Tipe Biaya M aksimum Table Size Tipe DBM S Piranti Lunak Perangkat Keras TOTAL Presentase 30% 15% 15% 20% 20% 100% Rating 2 8 8 6 6 30 S core 0,6 1,2 1,2 1,2 1,2 5,4 Hasil Penilaian Tabel 3.23 Hasil Penilaian DBMS SQL Server 2000 5,1 MySQL 6,3 Oracle 9i 5,4 Dari berbagai pertimbangan diatas, kami memutuskan menggunakan MySQL sebagai DBM S yang akan kami gunakan dalam sistem yang akan dibuat. 3.2.3 Perancangan Basis Data Logikal M embuat sebuah model data logikal lokal dari sebuah model data konseptual lokal yang menggambarkan fakta-fakta perusahaan dan memvalidasikan untuk meyakinkan struktur itu benar dan mendukung permintaan transaksi. Berikut ini adalah tahapan-tahapan dalam membangun basis data logikal : 3.2.3.1 Menghilangkan Fitur-Fitur yang Tidak Sesuai dengan Model Relational M enghilangkan model data konseptual lokal untuk memindahkan fiturfitur yang tidak kompatibel dengan model relasional. 99 a. Menghilangkan Tipe Relasi Biner many-to-many (*) • Relasi antara entity Pemesanan dan Barang membentuk suatu entity baru yaitu Detail_Pemesanan, dimana atribut Primary Key dari masingmasing entity yaitu Kd_Pemesanan dan Kd_Barang diberikan pada Detail_Pemesanan. Keterangan : (a) Kondisi Awal (b) Kondisi Akhir Gambar 3.9 Relasi many-to-many Pemesanan dengan Barang • Relasi antara entity Penjualan dan Barang membentuk suatu entity baru yaitu Detail_Jual, dimana atribut Primary Key dari masing-masing entity yaitu Kd_Jual dan Kd_Barang diberikan pada Detail_Jual. Keterangan : (a) Kondisi Awal (b) Kondisi Akhir Gambar 3.10 Relasi many-to-many Penjualan dengan Barang 100 • Relasi antara entity Pembelian dan Barang membentuk suatu entity baru yaitu Detail_Beli, dimana atribut Primary Key dari masing-masing entity yaitu Kd_Beli dan Kd_Barang diberikan pada Detail_Beli. Keterangan : (a) Kondisi Awal (b) Kondisi Akhir Gambar 3.11 Relasi many-to-many Pembelian dengan Barang b. Menghilangkan Atribut Multivalue 1. Atribut Multivalue Telepon_Pelanggan pada entitas Pelanggan dihilangkan dengan menghasilkan entitas baru bernama Telppelg Telppelg Gambar 3.12 Atribut Multivalue Telepon_Pelanggan pada Pelanggan 2. Atribut Multivalue Fax_Pelanggan pada entitas Pelanggan dihilangkan dengan menghasilkan entitas baru bernama Faxpelg Faxpelg 101 Gambar 3.13 Atribut Multivalue Fax_Pelanggan pada Pelanggan 3. Atribut Multivalue Telepon_Karyawan pada entitas Karyawan dihilangkan dengan menghasilkan entitas baru bernama Telpkary Telpkary Gambar 3.14 Atribut Multivalue Telepon_Karyawan pada Karyawan 4. Atribut Multivalue Telepon_Pemasok pada entitas Pemasok dihilangkan dengan menghasilkan entitas baru bernama Telppemasok Telppemasok Gambar 3.15 Atribut Multivalue Telepon_Pemasok pada Pemasok 5. Atribut Multivalue Fax_Pemasok pada entitas Pemasok dihilangkan dengan menghasilkan entitas baru bernama Faxpemasok Faxpemasok Gambar 3.16 Atribut Multivalue Fax_Pemasok pada Pemasok 102 3.2.3.2 Menghilangkan Relasi untuk Model Data Logikal a. Strong Entity Barang (Kd_barang, Kd_M esin, Kd_Pemasok, Nama_Barang, Nama_M esin, Gambar, Deskripsi, Berat, Tgl_Update) Primary Key Kd_barang Pelanggan (Kd_Pelanggan, USerIDP, Nama_Pelanggan, Nama_Perusahaan, Jabatan_Pelanggan, Alamat_Pelanggan, Kdpos_Pelanggan, Kota_Pelanggan, PasswordP) Primary Key Kd_Pelanggan Karyawan (Kd_Karyawan, UserIDK, Nama_Karyawan, Jabatan_Karyawan, Alamat_karyawan, Telepon_Karyawan, email_karyawan, Kota_karyawan, PasswordK) Primary Key Kd_Karyawan Pemasok (Kd_Pemasok, UserIDS, Nama_Pemasok, Alamat_Pemasok, email_Pemasok, website, PasswordS) Primary Key Kd_Pemasok Pemesanan(Kd_Pemesanan, Kd_Pelanggan, Kd_Karyawan, Nama_Pelanggan, Nama_Karyawan, Tgl_Pemesanan) Primary Key Kd_Pemesanan Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelangan) 103 Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) Penjualan (Kd_Jual, Kd_Pelanggan, Kd_Karyawan, Nama_Pelanggan, Nama_Karyawan, Tgl_Jual) Primary Key Kd_Jual Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelangan) Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) Pembelian (Kd_Beli, Kd_Pelanggan,Kd_Karyawan, Nama_Pelanggan, Nama_Karyawan, Tgl_Beli) Primary Key Kd_Beli Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelangan) Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) Pengiriman_Barang (Kd_Pengiriman, Kd_Jual, Tgl_Kirimkaryawan, Tgl_Terimapelanggan) Primary Key Kd_Pengiriman Foreign Key Kd_Jual references Penjualan (Kd_Jual) Penerimaan_Barang(Kd_Penerimaan, Kd_Beli, Tgl_Kirimpemasok, Tgl_Terimakaryawan) Primary Key Kd_Penerimaan Foreign Key Kd_Beli references Pembelian (Kd_Beli) 104 b. Weak Entity Detail_Pemesanan(Kd_Pemesanan, Kd_Barang, Qty_Pemesanan, Harga_Beli, Harga_Jual) Primary Key Kd_Pemesanan, Kd_Barang Foreign Key Kd_Pemesanan references Pengecekan (Kd_Pemesanan) Foreign Key Kd_Barang references Barang (Kd_Barang) Detail_Jual (Kd_Jual, Kd_Barang, Qty_Jual, Harga_Jual) Primary Key Kd_Jual, Kd_Barang Foreign Key Kd_Jual references Penjualan (Kd_Jual) Foreign Key Kd_Barang references Barang (Kd_Barang) Detail_Beli (Kd_Beli, Kd_Barang, Qty_Beli, Harga_Beli ) Primary Key Kd_Beli Kd_Barang Foreign Key Kd_Beli references Pembelian (Kd_Beli) Foreign Key Kd_Barang references Barang (Kd_Barang) Telppelg (Kd_Pelanggan, Telepon_Pelanggan) Primary Key Telepon_Pelanggan, Kd_Pelanggan Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) Faxpelg (Kd_Pelanggan, Fax_Pelanggan) Primary Key Fax_Pelanggan, Kd_Pelanggan Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) 105 Telpkary (Kd_Karyawan Telepon_Karyawan) Primary Key Telepon_Karyawan, Kd_Karyawan Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) Telppemasok (Kd_Pemasok, Telepon_Pemasok) Primary Key Telepon_Pemasok, Kd_Pemasok Foreign Key Kd_Pemasok references Pemasok (Kd_Pemasok) Faxpemasok (Kd_Pemasok, Fax_Pemasok) Primary Key Fax_Pemasok, Kd_Pemasok Foreign Key Kd_Pemasok references Pemasok (Kd_Pemasok) c. Identifikasi Tipe Relasi Biner one-to-many (1:*) 106 Post Kd_Pelanggan ke dalam Pembelian untuk model 1:* relasi Dalam Pelanggan (Kd_Pelanggan, UserIDP, Nama_Pelanggan, Nama_Perusahaan, Jabatan_Pelanggan, Alamat_Pelanggan, Kdpos_Pelanggan, Kota_Pelanggan, PasswordP) Primary key Kd_Pelanggan Pembelian (Kd_Beli, Kd_Pelanggan, Kd_Karyawan, Nama_Pelanggan, Nama_Karyawan, Tgl_Beli) Primary key Kd_Beli Foreign key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) Foreign key Kd_Karyawan references Karyawan (Kd_Karyawan) 107 108 d. Identifikasi Tipe Relasi Biner one-to-one (1:1) Post Kd_Beli ke dalam Penerimaan_Barang untuk model 1:1 relasi Dalam Pembelian (Kd_Beli, Kd_Pelanggan, Kd_Karyawan, Nama_Pelanggan, Nama_Karyawan, Tgl_Beli) Primary key Kd_Beli Foreign key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) Foreign key Kd_Karyawan references Karyawan (Kd_Karyawan) Penerimaan_Barang (Kd_Penerimaan, Kd_Beli, Tgl_Kirimkaryawan, Tgl_Terimapelanggan) Primary key Kd_Pengiriman Foreign key Kd_Beli references Pembelian (Kd_Beli) e. Identifikasi Tipe Relasi Biner many-to-many (*:*) 109 110 f. Identifikasi Tipe Relasi Biner Multivalued 111 Post Kd_Pemasok ke dalam Telppemasok untuk model multi valued relasi Mempunyai Pemasok (Kd_Pemasok, Nama_Pemasok, Alamat_Pemasok, Email_Pemasok, Website, PasswordPm) Primary key Kd_Pemasok 3.2.3.3 Telppemasok (Kd_Pemasok, Telepon_Pemasok) Primary Key Telepon_Pemasok, Kd_Pemasok Foreign Key Kd_Pemasok references Pemasok (Kd_Pemasok) Validasi Relasi dengan Normalisasi Sistem sudah dalam bentuk normalisasi pertama karena sistem sudah ditentukan Primary Key-nya pada perancangan konseptual dan pada fitur yang tidak kompatibel telah dihilangkan atribut multivalue. M aka pada tahap selanjutnya adalah menghilangkan ketergantungan parsial sehingga memenuhi aturan 2NF dan menhilangkan ketergantungan transitif sehingga memenuhi aturan 3NF. 112 Entitas Pemesanan Kd_Pemesanan Kd_Pelanggan Kd_Karyawan Nama_Pelanggan Nama_Karyawan Tgl_Pemesanan fd1 fd2 fd3 fd1 : Kd_Pemesanan > Kd_Pelanggan, Kd_Karyawan , Tgl_Pemesanan (Primary Key) fd2 : Kd_Pelanggan > Nama_Pelanggan (Terdapat ketergantungan Transitive) fd3 : Kd_Karyawan > Nama_Karyawan (Terdapat ketergantungan Transitive) 2NF : Sudah memenuhi karena tidak ada ketergantungan Partial (Partial Depedencies) 3NF : • Pemesanan (Kd_Pemesanan, Kd_Pelanggan, Kd_Karyawan, Tgl_Pemesanan, Tgl_Approve) Primary Key Kd_Pemesanan Foreign key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) Foreign key Kd_Karyawan references Karyawan (Kd_Karyawan) • Detail_Pemesanan (Kd_Pemesanan) Primary Key Kd_Pemesanan Foreign Key Kd_Pemesanan references Pemesanan (Kd_Pemesanan) 113 • Pelanggan (Kd_Pelanggan , Nama_Pelanggan) Primary Key (Kd_Pelanggan) • Karyawan ( Kd_Karyawan, Nama_Karyawan) Primary Key (Kd_Karyawan) Entitas Penjualan Kd_Jual Kd_Pelanggan Kd_Karyawan Nama_Pelanggan Nama_Karyawan Tgl_Jual fd1 fd2 fd3 fd1 : Kd_Jual > Kd_Pelanggan, Kd_Karyawan, Tgl_Jual (Primary Key) fd2 : Kd_Pelanggan > Nama_Pelanggan (Terdapat ketergantungan Transitive) fd3 : Kd_Karyawan > Nama_Karyawan (Terdapat ketergantungan Transitive) 2NF : Sudah memenuhi karena tidak ada ketergantungan Partial (Partial Depedencies) 3NF : • Penjualan (Kd_Jual , Kd_Pelanggan, Kd_Karyawan, Tgl_Jual) Primary Key Kd_Jual Foreign key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) Foreign key Kd_Karyawan references Karyawan (Kd_Karyawan) 114 • Detail_Jual (Kd_Jual) Primary Key Kd_Jual Foreign Key Kd_Jual references Penjualan (Kd_Jual) • Pelanggan (Kd_Pelanggan , Nama_Pelanggan) Primary Key (Kd_Pelanggan) • Karyawan ( Kd_Karyawan, Nama_Karyawan) Primary Key (Kd_Karyawan) Entitas Pembelian Kd_Beli Kd_Pelanggan Kd_Karyawan Nama_Pelanggan Nama_Karyawan Tgl_Beli fd1 fd2 fd3 fd1 : Kd_Beli > Kd_Pelanggan, Kd_Karyawan , Kd_Pemasok, Tgl_Beli (Primary Key) fd2 : Kd_Pelanggan > Nama_Pelanggan (Terdapat ketergantungan Transitive) fd3 : Kd_Karyawan > Nama_Karyawan (Terdapat ketergantungan Transitive) 2NF : Sudah memenuhi karena tidak ada ketergantungan Partial (Partial Depedencies) 3NF : • Pembelian (Kd_Beli , Kd_Pelanggan, Kd_Karyawan, 115 Kd_Pemasok, Tgl_Beli) Primary Key Kd_Beli Foreign key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) Foreign key Kd_Karyawan references Karyawan (Kd_Karyawan) • Detail_Beli (Kd_Beli) Primary Key Kd_Beli Foreign Key Kd_Beli references Pembelian (Kd_Beli) • Pelanggan (Kd_Pelanggan , Nama_Pelanggan) Primary Key (Kd_Pelanggan) • Karyawan ( Kd_Karyawan, Nama_Karyawan) Primary Key (Kd_Karyawan) Entitas Penerimaan_Barang Kd_Penerimaan Kd_Beli Tgl_Kirimpemasok Tgl_Terimakaryawan fd1 fd2 fd1 : Kd_Penerimaan > Kd_Beli, Kd_Karyawan, Tgl_Kirimpemasok, Tgl_Terimakaryawan (Primary Key) fd2 : Kd_Beli 2NF : • Penerimaan_Barang (Kd_Penerimaan, Kd_Beli, Tgl_Kirimpemasok, Tgl_Terimakaryawan) 116 Primary Key (Kd_Penerimaan) Foreign key Kd_Beli references Pembelian (Kd_Beli) Foreign key Kd_Karyawan references Karyawan (Kd_Karyawan) • Pembelian (Kd_Beli) Primary Key (Kd_Beli) 3NF : Sudah memenuhi karena tidak ada ketergantungan Transitive (Transitive Depedencies) Entitas Pengiriman_Barang Kd_Pengiriman Kd_Jual Tgl_Kirimkaryawan Tgl_Terimapelanggan fd1 fd2 fd1 : Kd_Pengiriman > Kd_Jual, Tgl_Kirimkaryawan, Tgl_Terimapelanggan fd2 : Kd_Jual (Terdapat ketergantungan Partial) 2NF : • Pengiriman_Barang (Kd_Pengiriman, Kd_Jual, Tgl_Kirimkaryawan, Tgl_Terimapelanggan) Primary Key Kd_Pengiriman Foreign key Kd_Jual references Penjualan (Kd_Jual) • Penjualan (Kd_Jual) Primary Key Kd_Jual 3NF : Sudah memenuhi karena tidak ada ketergantungan Transitive (Transitive Depedencies) 117 Entitas Barang Kd_Barang Kd_M esin Kd_Pemasok Nama_Barang Nama_M esin Gambar Deskripsi Berat Tgl_Update Jumlah_Barang fd1 fd2 fd3 fd1 : Kd_Barang > Nama_Barang, Gambar, Deskripsi, Tgl_Update (Primary Key) fd2 : Kd_M esin > Nama_M esin (Terdapat ketergantungan Transitive) Fd3 : Kd_Pemasok (Terdapat ketergantungan Transitive) 2NF : Sudah memenuhi karena tidak ada ketergantungan Partial (Partial Depedencies) 3NF : • Barang (Kd_Barang, Kd_M esin, Kd_Pemasok, Nama_Barang, Gambar, Deskripsi, Berat, Tgl_Update) Primary Key (Kd_Barang) • Mesin (Kd_M esin, Nama_M esin) Primary Key (Kd_M esin) • Pemasok (Kd_Pemasok) Primary Key (Kd_Pemasok) 118 Berikut ini adalah entitas-entitas lainnya yang sudah ternormalisasi sampai dengan bentuk 3NF : • Pelanggan (Kd_Pelanggan, UserIDP, Nama_Pelanggan, Nama_Perusahaan, Jabatan_Pelanggan, Alamat_Pelanggan, Kdpos_Pelanggan, Kota_Pelanggan, Telepon_Pelanggan, Fax_Pelanggan, PasswordP) Primary Key Kd_Pelanggan • Karyawan (Kd_Karyawan, UserIDK, Nama_Karyawan, Jabatan_Karyawan, Alamat_Karyawan, Telepon_Karyawan, Email_Karyawan, Kota_Karyawan, PasswordK) • Pemasok (Kd_Pemasok, UserIDS, Nama_Pemasok, Alamat_Pemasok, Telepon_Pemasok, Fax_Pemasok, Email_Pemasok, Website, PasswordS) Primary Key Kd_Pemasok • Detail_Pemesanan (Kd_Pemesanan, Kd_Barang, Qty_Pemesanan, Harga_Jual, Harga_Beli) Primary Key Kd_Pemesanan, Kd_Barang Foreign Key Kd_Pemesanan references Pemesanan (Kd_Pemesanan) Foreign Key Kd_Barang references Barang (Kd_Barang) • Detail_Jual (Kd_Jual, Kd_Barang, Qty_Jual, Harga_Jual) Primary Key Kd_Jual, Kd_Barang Foreign Key Kd_Jual references Penjualan (Kd_Jual) 119 Foreign Key Kd_Barang references Barang (Kd_Barang) • Detail_Beli (Kd_Beli, Kd_Barang, Qty_Beli, Harga_Beli) Primary Key Kd_Beli Kd_Barang Foreign Key Kd_Beli references Pembelian (Kd_Beli) Foreign Key Kd_Barang references Barang (Kd_Barang) • Telppelg (Kd_Pelanggan, Telepon_Pelanggan) Primary Key Telepon_Pelanggan, Kd_Pelanggan Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) • Faxpelg (Kd_Pelanggan, Fax_Pelanggan) Primary Key Fax_Pelanggan, Kd_Pelanggan Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) • Telpkary (Kd_Karyawan Telepon_Karyawan) Primary Key Telepon_Karyawan, Kd_Karyawan Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) • Telppemasok (Kd_Pemasok, Telepon_Pemasok) Primary Key Telepon_Pemasok, Kd_Pemasok Foreign Key Kd_Pemasok references Pemasok (Kd_Pemasok) • Faxpemasok (Kd_Pemasok, Fax_Pemasok) Primary Key Fax_Pemasok, Kd_Pemasok Foreign Key Kd_Pemasok references Pemasok (Kd_Pemasok) 120 Me sin Kd_ Mes in 1. .1 Mel akuka n De tai l_P eme san an P eme san an 1.. * 1.. 1 1..* Terdi ri da ri Dal am 1.. * Mempunyai Kd _Pe me san an Kd _Ba ran g Kd _Pe mes an an 1.. * 1. .1 1..* Te rdiri dari De ta il _Ju al Da lam 1.. * Kd_ Jua l Kd_ Bara ng Te lp pe lg 1..* Kd _Ba ra ng 1.. 1 Kd_ Pel an gg an Te le po n_ Pel an gg an 1. .* M elakukan M empunyai M emproses Dal am 1. .1 Kd_ Pel an gg an 1. .1 1.. 1 1. .1 Pe la ng ga n 1.. 1 1..1 Me lakukan 1..* Pen ju ala n 1..1 1.. * Me nerima Kd_ Jua l 1.. 1 Ka ryaw an 1. .1 Kd_ Kary aw an 1..1 1. .1 Me lakukan 1..* Pe mbe li an 1. .1 Te rdiri dari 1.. * Kd _Be li 1.. * D eta il_ Be li 1..* Kd _Be li Kd _Ba ran g 1.. 1 1.. 1 M empunyai Fa xpe ma sok Dal am Fa xpe lg Kd _Pe la ngg an Fax_ Pel an gg an 1.. * Bara ng 1.. 1 Menghasil ka n M empunyai Me nghasi lkan Kd_ Pem aso k Fa x_P ema sok 1.. * Mempunyai 1.. 1 Pema sok Kd _Pe ma sok 1..1 1. .* 1.. 1 Pen gi rim an_ Ba ran g Kd _Pe ng iri man 1.. * Te lp kary Kd_ Ka ryaw an Tele po n_ Ka ryaw an M empunyai 1. .1 Pen eri maa n_ Ba ran g Kd_ Pe ne rima an 1..* Telp pe ma sok Kd_ Pem aso k Te le po n_ Pem eso k Gambar 3.17 ERD Model Logikal dengan Primary Key 121 3.2.3.4 Validasi Relasi Melalui Transaksi Pengguna Me sin Kd_ Mes in 1. .1 (d ),(e ) Mel akuka n De tai l_P eme san an P eme san an 1.. * 1.. 1 1..* Terdi ri da ri Dal am 1.. * Me mpunya i Kd _Pe me san an Kd _Ba ran g Kd _Pe mes an an 1.. * ( n),(o) 1..* Te rdiri dari De ta il _Ju al Da lam 1.. * Kd_ Jua l Kd_ Bara ng Te lp pe lg 1..* 1. .1 Kd _Ba ra ng 1.. 1 Kd_ Pel an gg an Te le po n_ Pel an gg an 1. .* M elakukan M empunyai M emproses Dal am (a) 1. .1 (f),(g) 1.. 1 1. .1 Pe la ng ga n 1..1 Me lakukan 1..* Kd_ Pel an gg an 1. .1 Pen ju ala n (b) 1.. * Me nerima Kd_ Jua l (h ),( i) 1..1 Ka ryaw an 1. .1 Kd_ Kary aw an 1..1 1.. 1 1.. 1 Me lakukan 1..* Pe mbe li an 1. .1 Te rdiri dari 1.. * Kd _Be li 1. .1 1.. * D eta il_ Be li 1..* Kd _Be li Kd _Ba ran g 1.. 1 (c ) M empunyai Fa xpe ma sok Dal am Fa xpe lg Kd _Pe la ngg an Fax_ Pel an gg an 1.. * Bara ng 1.. 1 Menghasil ka n Me nghasi lkan M empunyai Kd_ Pem aso k Fa x_P ema sok 1.. * Mempunyai 1.. 1 1.. 1 Pema sok Kd _Pe ma sok 1..1 1. .* (l),(m) 1.. 1 Pen gi rim an_ Ba ran g Kd _Pe ng iri man 1.. * Te lp kary Kd_ Ka ryaw an Tele po n_ Ka ryaw an (j ),( k) M empunyai 1. .1 Pen eri maa n_ Ba ran g Kd_ Pe ne rima an 1..* Telp pe ma sok Kd_ Pem aso k Te le po n_ Pem eso k Gambar 3.18 Validasi Relasi Melalui Transaksi Pengguna (Model Logikal) 122 a) M asukan/ubah/hapus Kd_Pelanggan, UserIDP, Nama_Pelanggan, Nama_Perusahaan, Jabatan_Pelanggan, Alamat_Pelanggan, Kdpos_Pelanggan, Kota_Pelanggan, PasswordP dari entitas Pelanggan yang terhubung dengan entitas Telppelg dimana entitas Pelanggan memiliki Kd_Pelanggan yang sama dengan entitas Telppelg yang terhubung dengan entitas Faxpelg dimana entitas Pelanggan memiliki Kd_Pelanggan yang sama dengan entitas FaxPelg. b) M asukan/ubah/hapus Kd_Karyawan, UserIDK, Nama_Karyawan, Jabatan_Karyawan, Alamat_Karyawan, Email_Karyawan, Kota_Karyawan, PasswordK dari entitas Karyawan yang terhubung dengan entitas Telpkary dimana entitas Karyawan memiliki Kd_Karyawan yang sama dengan entitas Telpkary c) M asukan/ubah/hapus Kd_Pemasok, UserIDS, Nama_Pemasok, Alamat_Pemasok, Email_Pemasok, Website, PasswordS dari entitas Pemasok yang terhubung dengan entitas Telppemasok dimana entitas Pemasok memiliki Kd_Pemasok yang sama dengan entitas Telppemasok yang terhubung dengan entitas Faxpemasok dimana entitas Pemasok memiliki Kd_Pemasok yang sama dengan entitas Faxpemasok d) M asukan data Kd_Pemesanan, Kd_Pelanggan, Kd_Karyawan, Tgl_Pemesanan, Tgl_Approve dari entitas Pemesanan yang terhubung dengan entitas Pelanggan dimana entitas Pemesanan memiliki Kd_Pelanggan yang sama dengan entitas Pelanggan yang terhubung dengan entitas Karyawan dimana entitas Pemesanan memiliki Kd_Karyawan yang sama dengan entitas Karyawan 123 e) Tampilkan laporan Kd_Pemesanan, Kd_Pelanggan, Kd_Karyawan, Tgl_Pemesanan, Tgl_Approve dari entitas Pemesanan yang terhubung dengan entitas Pelanggan dimana entitas Pemesanan memiliki Kd_Pelanggan yang sama dengan entitas Pelanggan yang terhubung dengan entitas Karyawan dimana entitas Pengecekan memiliki Kd_Karyawan yang sama dengan entitas Karyawan f) Tampilkan laporan Kd_Jual, Kd_Pelanggan, Kd_Karyawan, Tgl_Jual dari entitas Penjualan yang terhubung dengan entitas Pelanggan dimana entitas Penjualan memiliki Kd_Pelanggan yang sama dengan entitas Pelanggan yang terhubung dengan entitas Karyawan dimana entitas Penjualan memiliki Kd_Karyawan yang sama dengan entitas Karyawan g) Tampilkan laporan Kd_Jual, Kd_Pelanggan, Kd_Karyawan, Tgl_Jual dari entitas Penjualan yang terhubung dengan entitas Pelanggan dimana entitas Penjualan memiliki Kd_Pelanggan yang sama dengan entitas Pelanggan yang terhubung dengan entitas Karyawan dimana entitas Penjualan memiliki Kd_Karyawan yang sama dengan entitas Karyawan h) M asukan data Kd_Beli, Kd_Pelanggan,Kd_Karyawan, Kd_Pemasok, Tgl_Beli dari entitas Pembelian yang terhubung dengan entitas Pelanggan dimana entitas Pembelian memiliki Kd_Pelanggan yang sama dengan entitas Pelanggan yang terhubung dengan entitas Karyawan dimana entitas Pembelian memiliki Kd_Karyawan yang sama dengan entitas Karyawan yang terhubung dengan entitas Pemasok dimana Pembelian memiliki Kd_Pemasok yang sama dengan entitas Pemasok i) Tampilkan laporan Kd_Beli, Kd_Pelanggan, Kd_Karyawan, Kd_Pemasok, 124 Tgl_Beli dari entitas Pembelian yang terhubung dengan entitas Pelanggan dimana entitas Pembelian memiliki Kd_Pelanggan yang sama dengan entitas Pelanggan yang terhubung dengan entitas Karyawan dimana entitas Pembelian memiliki Kd_Karyawan yang sama dengan entitas Karyawan yang terhubung dengan entitas Pemasok dimana Pembelian memiliki Kd_Pemasok yang sama dengan entitas Pemasok. j) M asukan data Kd_Penerimaan, Kd_Beli, Tgl_Kirimpemasok, Tgl_Terimakaryawan dari entitas Penerimaan_Barang yang terhubung dengan entitas Pembelian dimana Penerimaan_Barang memiliki Kd_Beli yang sama dengan entitas Pembelian k) Tampilkan laporan Kd_Penerimaan, Kd_Beli, Tgl_Kirimpemasok, Tgl_Terimakaryawan dari entitas Penerimaan_Barang yang terhubung dengan entitas Pembelian dimana entitas Penerimaan_Barang memiliki Kd_Beli yang sama dengan entitas Pembelian l) M asukan data Kd_Pengiriman, Kd_Jual, Tgl_Kirimkaryawan, Tgl_Terimapelanggan dari entitas Pengiriman_Barang yang terhubung dengan entitas Penjualan dimana entitas Pengiriman_Barang memiliki Kd_Jual yang sama dengan entitas Penjualan m) Tampilkan laporan Kd_Pengiriman, Kd_Jual, Kd_Pelanggan, Kd_Karyawan, Tgl_Kirimkaryawan, Tgl_Terimapelanggan dari entitas Pengiriman_Barang yang terhubung dengan entitas Penjualan dimana Pengiriman_Barang memiliki Kd_Jual yang sama dengan entitas Penjualan n) M asukan/ubah/hapus Kd_Barang, Kd_M esin, Kd_Pemasok, Nama_Barang, Nama_M esin, Gambar, Deskripsi, Berat, Tgl_Update, dari entitas Barang 125 o) Tampilkan barang Kd_Barang, Kd_M esin, Kd_Pemasok, Nama_Barang, Nama_M esin, Gambar, Deskripsi, Berat, Tgl_Update dari entitas Barang yang terhubung dengan entitas Pemasok dimana entitas barang memiliki Kd_Pemasok yang sama dengan entitas Pemasok yang terhubung dengan entitas M esin dimana entitas barang memiliki Kd_M esin yang sama dengan entitas M esin yang sudah titik recorder 3.2.3.5 Definisi Integrity Constraint Barang (Kd_Barang, Kd_M esin, Kd_Pemasok, Nama_Barang, Gambar, Deskripsi, Berat, Tgl_Update) Primary Key Kd_Barang Mesin (Kd_M esin, Nama_M esin) Primary Key Kd_M esin Pelanggan (Kd_Pelanggan, Nama_Pelanggan, Nama_Perusahaan, Jabatan_Pelanggan, Alamat_Pelanggan, Kdpos_Pelanggan, Kota_Pelanggan, PasswordP) Primary Key Kd_Pelanggan Karyawan (Kd_Karyawan, Nama_Karyawan, Jabatan_Karyawan, Alamat_Karyawan, Email_Karyawan, Kota_Karyawan, PasswordK) Primary Key Kd_Karyawan 126 Pemasok (Kd_Pemasok, Nama_Pemasok, Alamat_Pemasok, Email_Pemasok, Website, PasswordS) Primary Key Kd_Pemasok Pemesanan (Kd_Pemesanan, Kd_Pelanggan, Kd_Karyawan, Tgl_Pemesanan, Tgl_Approve) Primary Key Kd_Pemesanan Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION Penjualan (Kd_Jual, Kd_Pelanggan, Kd_Karyawan, Tgl_Jual) Primary Key Kd_Jual Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION Pembelian (Kd_Beli, Kd_Pelanggan,Kd_Karyawan, Kd_Pemasok, Tgl_Beli) Primary Key Kd_Beli Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON 127 UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Pemasok references Pemasok (Kd_Pemasok) ON UPDATE CASCADE ON DELETE NO ACTION Penerimaan_Barang(Kd_Penerimaan, Kd_Beli, Tgl_Kirimpemasok, Tgl_Terimakaryawan) Primary Key Kd_Penerimaan Foreign Key Kd_Beli references Pembelian (Kd_Beli) ON UPDATE CASCADE ON DELETE NO ACTION Pengiriman_Barang (Kd_Pengiriman, Kd_Jual, Tgl_Kirimkaryawan, Tgl_Terimapelanggan) Primary Key Kd_Pengiriman Foreign Key Kd_Jual references Penjualan (Kd_Jual) ON UPDATE CASCADE ON DELETE NO ACTION Detail_Pemesanan (Kd_Pemesanan, Kd_Barang, Qty_Pemesanan) Primary Key Kd_Pemesanan, Kd_Barang Foreign Key Kd_Pemesanan references Pemesanan (Kd_Pemesanan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Barang references Barang (Kd_Barang) ON UPDATE CASCADE ON DELETE NO ACTION Detail_Jual (Kd_Jual, Kd_Barang, Qty_Jual, Harga_Jual) 128 Primary Key Kd_Jual, Kd_Barang Foreign Key Kd_Jual references Penjualan (Kd_Jual) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Barang references Barang (Kd_Barang) ON UPDATE CASCADE ON DELETE NO ACTION Detail_Beli (Kd_Beli, Kd_Barang, Qty_Beli, Harga_Beli) Primary Key Kd_Beli Kd_Barang Foreign Key Kd_Beli references Pembelian (Kd_Beli) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Kd_Barang references Barang (Kd_Barang) ON UPDATE CASCADE ON DELETE NO ACTION Telppelg (Kd_Pelanggan, Telepon_Pelanggan) Primary Key Telepon_Pelanggan, Kd_Pelanggan Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION Faxpelg (Kd_Pelanggan, Fax_Pelanggan) Primary Key Fax_Pelanggan, Kd_Pelanggan Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION Telpkary (Kd_Karyawan, Telepon_Karyawan) 129 Primary Key Telepon_Karyawan, Kd_Karyawan Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION Telppemasok (Kd_Pemasok, Telepon_Pemasok) Primary Key Telepon_Pemasok, Kd_Pemasok Foreign Key Kd_Pemasok references Pemasok (Kd_Pemasok) ON UPDATE CASCADE ON DELETE NO ACTION Faxpemasok (Kd_Pemasok, Fax_Pemasok) Primary Key Fax_Pemasok, Kd_Pemasok Foreign Key Kd_Pemasok references Pemasok (Kd_Pemasok) ON UPDATE CASCADE ON DELETE NO ACTION 3.2.4 Perancangan Basis Data Fisikal 3.2.4.1 Penerjemahan Model Data Logikal Global untuk DBMS Target Tujuan dari tahap ini adalah untuk mengidentifikasi basis data relasional dalam model data logikal global yang digunakan dalam DBM S dengan menggunakan DBDL (Database Design Language). DBDL yang digunakan adalah sebagai berikut : 3.2.4.1.1 Perancangan Relasi Dasar 1. Barang Domain Kd_Barang : character string, length 10 130 Domain Kd_M esin : character string, length 9 Domain Kd_Pemasok: character string, length 6 Domain Nama_Barang : variable length character string, length 20 Domain Gambar : variable length character string, length 20 Domain Deskripsi : variable length character string, length 50 Domain Gambar : Decimal Domain Tgl_Update : variable length character datetime Barang ( Kd_Barang Kd_Barang NOT NULL, Kd_M esin Kd_M esin NOT NULL, Kd_Pemasok Kd_Pemasok NOT NULL, Nama_Barang Nama_Barang NOT NULL, Gambar Gambar NOT NULL, Deskripsi Deskripsi NOT NULL, Berat Berat NOT NULL, Tgl_Update Tgl_Update NOT NULL PRIM ARY KEY (Kd_Barang)); 2. M esin Domain Kd_M esin : character string, length 9 Domain Nama_M esin : variable length character string, length 20 Barang ( Kd_M esin Kd_M esin NOT NULL, Nama_M esin Nama_M esin NOT NULL, 131 PRIM ARY KEY (Kd_Barang)); 3. Pelanggan Domain Kd_Pelanggan : character string, length 8 Domain UserIDP : variable length character string, length 20 Domain Nama_Pelanggan : variable length character string, length 20 Domain Nama_Perusahaan : variable length character string, length 50 Domain Jabatan_Pelanggan : variable length character string, length 20 Domain Alamat_Pelanggan : variable length character string, length 50 Domain Kdpos_Pelanggan : character string, length 5 Domain Kota_Pelanggan : variable length character string, length 20 Domain Email_Pelanggan : variable length character string, length 20 Domain PasswordP : variable length character string, length 20 Pelanggan ( Kd_Pelanggan Kd_Pelanggan NOT NULL, UserIDP UserIDP NOT NULL, Nama_Pelanggan Nama_Pelanggan NOT NULL, Nama_Perusahaan Nama_Perusahaan NOT NULL, Jabatan_Pelanggan Jabatan_Pelanggan NOT NULL, Alamat_Pelanggan Alamat_Pelanggan NOT NULL, Kdpos_Pelanggan Kdpos_Pelanggan NOT NULL, Kota_Pelanggan Kota_Pelanggan NOT NULL, Email_Pelanggan Email_Pelanggan NOT NULL, PasswordP PasswordP NOT NULL 132 PRIM ARY KEY (Kd_Pelanggan)); 4. Karyawan Domain Kd_Karyawan : character string, length 6 Domain UserIDK : variable length character string, length 20 Domain Nama_Karyawan : variable length character string, length 20 Domain Jabatan_Karyawan : variable length character string, length 20 Domain Alamat_Karyawan : variable length character string, length 50 Domain Email_Karyawan : variable length character string, length 20 Domain Kota_Karyawan : variable length character string, length 20 Domain PasswordK : variable length character string, length 20 Karyawan ( Kd_Karyawan Kd_Karyawan NOT NULL, UserIDK UserIDK NOT NULL, Nama_Karyawan Nama_Karyawan NOT NULL, Jabatan_Karyawan Jabatan_Karyawan NOT NULL, Alamat_Karyawan Jabatan_Karyawan NOT_NULL, Email_Karyawan Email_Karyawan NOT NULL, PasswordK PasswordK NOT NULL PRIM ARY KEY (Kd_Karyawan)); 5. Pemasok Domain Kd_Pemasok : character string, length 6 Domain UserIDS : variable length character string, length 20 133 Domain Nama_Pemasok : variable length character string, length 20 Domain Alamat_Pemasok : variable length character string, length 50 Domain Email_Pemasok : variable length character string, length 20 Domain Website : variable length character string, length 20 Domain PasswordS : variable length character string, length 20 Pemasok ( Kd_Pemasok Kd_Pemasok NOT NULL, UserIDS UserIDS NOT NULL, Nama_Pemasok Nama_Pemasok NOT NULL, Alamat_Pemasok Alamat_Pemasok NOT NULL, Email_Pemasok Email_Pemasok NOT NULL, Website Website NOT NULL, PasswordS PasswordS NOT NULL PRIM ARY KEY (Kd_Pemasok)); 6. Pemesanan Domain Kd_Pemesanan : character string, length 11 Domain Kd_Pelanggan : character string, length 8 Domain Kd_Karyawan : character string, length 6 Domain Tgl_Pemesanan : variable length character datetime Domain Tgl_Approve : variable length character datetime Pemesanan ( Kd_Pemesanan Kd_Pemesanan NOT NULL, Kd_Pelanggan Kd_Pelanggan NOT NULL, 134 Kd_Karyawan Kd_Karyawan NOT NULL, Tgl_Pemesanan Tgl_Pemesanan NULLABLE Tgl_Approve Tgl_Approve NULLABLE PRIM ARY KEY (Kd_Pemesanan), FOREIGN KEY Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION 7. Penjualan Domain Kd_Jual : character string, length 11 Domain Kd_Pelanggan : character string, length 8 Domain Kd_Karyawan : character string, length 6 Domain Tgl_Jual : variable length character datetime Penjualan ( Kd_Jual Kd_Jual NOT NULL, Kd_Pelanggan Kd_Pelanggan NOT NULL, Kd_Karyawan Kd_Karyawan NOT NULL, Tgl_Jual Tgl_Jual NOT NULL PRIM ARY KEY (Kd_Jual), FOREIGN KEY Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION 135 8. Pembelian Domain Kd_Beli : character string, length 11 Domain Kd_Pelanggan : character string, length 8 Domain Kd_Karyawan : character string, length 6 Domain Tgl_Beli : variable length character datetime Pembelian ( Kd_Beli Kd_Beli NOT NULL, Kd_Pelanggan Kd_Pelanggan NOT NULL, Kd_Karyawan Kd_Karyawan NOT NULL Tgl_Beli Tgl_Beli NOT NULL PRIM ARY KEY (Kd_Beli), FOREIGN KEY Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION 9. Penerimaan_Barang Domain Kd_Penerimaan : character string, length 11 Domain Kd_Beli : character string, length 11 Domain Tgl_Kirimpemasok : variable length character datetime Domain Tgl_Terimakaryawan: variable length character datetime Penerimaan_Barang ( Kd_Penerimaan Kd_Penerimaan NOT NULL, Kd_Beli Kd_Beli NOT NULL, 136 Tgl_Kirimpemasok Tgl_Kirimpemasok NOT NULL, Tgl_Terimakaryawan Tgl_Terimakaryawan NULLABLE PRIM ARY KEY (Kd_Penerimaan), FOREIGN KEY Kd_Beli references Pembelian (Kd_Beli) ON UPDATE CASCADE ON DELETE NO ACTION; 10. Pengiriman_Barang Domain Kd_Pengiriman : character string, length 11 Domain Kd_Jual : character string, length 11 Domain Tgl_Kirimkaryawan : variable length character datetime Domain Tgl_Terimapelanggan : variable length character datetime Pengiriman_Barang ( Kd_Pengiriman Kd_Pengiriman NOT NULL, Kd_Jual Kd_Jual NOT NULL, Tgl_Kirimkaryawan Tgl_Kirimpemasok NOT NULL, Tgl_Terimapelanggan Tgl_Terimakaryawan NULLABLE PRIM ARY KEY (Kd_Pengiriman), FOREIGN KEY Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY Kd_Jual references Penjualan (Kd_Jual) On UPDATE CASCADE ON DELETE NO ACTION); 11. Detail_Pemesanan Domain Kd_Pemesanan : character string, length 11 137 Domain Kd_Barang : character string, length 10 Domai Qty_Pemesanan : Int Detail_Pemesanan( Kd_Pemesanan Kd_Pemesanan NOT NULL, Kd_Barang Kd_Barang NOT NULL, Qty_Pemesanan Qty_Pemesanan NOT NULL, Harga_Jual Harga_Jual NULLABLE, Harga_Beli Harga_Beli NULLABLE, PRIM ARY KEY (Kd_Pemesanan, Kd_Barang), FOREIGN KEY Kd_Pemesanan references Pengecekan (Kd_Pemesanan) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY Kd_Barang references Barang (Kd_Barang) ON UPDATE CASCADE ON DELETE NO ACTION); 12. Detail_Jual Domain Kd_Jual : character string, length 11 Domain Kd_Barang : character string, length 10 Domain Qty_Jual : Int Domain Harga_Jual : Int Detail_Jual ( Kd_Jual Kd_Jual NOT NULL, Kd_Barang Kd_Barang NOT NULL, Qty_Jual Qty_Jual NOT NULL, Harga_Jual Harga_Jual NULLABLE, 138 PRIM ARY KEY (Kd_Jual, Kd_Barang), FOREIGN KEY Kd_Jual references Penjualan (Kd_Jual) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY Kd_Barang references Barang (Kd_Barang) ON UPDATE CASCADE ON DELETE NO ACTION); 13. Detail_Beli Domain Kd_Beli : character string, length 11 Domain Kd_Barang : character string, length 10 Domai Qty_Beli : Int Domain Harga_Beli : Int Detail_Beli ( Kd_Beli Kd_Beli NOT NULL, Kd_Barang Kd_Barang NOT NULL, Qty_Beli Qty_Beli NOT NULL, Harga_Beli Harga_Beli NULLABLE, PRIM ARY KEY (Kd_Beli, Kd_Barang), FOREIGN KEY Kd_Beli references Pembelian (Kd_Beli) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY Kd_Barang references Barang (Kd_Barang) ON UPDATE CASCADE ON DELETE NO ACTION); 14. Telppelg Domain Kd_Pelanggan : character string, length 8 139 Domain Telepon_Pelanggan : variable length character string, length 20 Telppelg ( Kd_Pelanggan Kd_Pelanggan NOT NULL, Telepon_Pelanggan Telepon_Pelanggan NOT NULL, PRIM ARY KEY (Telepon_Pelanggan), FOREIGN KEY Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION); 15. Faxpelg Domain Kd_Pelanggan : character string, length 8 Domain Fax_Pelanggan : variable length character string, length 20 Faxpelg ( Kd_Pelanggan Kd_Pelanggan NOT NULL, Fax_Pelanggan Fax_Pelanggan NOT NULL, PRIM ARY KEY (Fax_Pelanggan), FOREIGN KEY Kd_Pelanggan references Pelanggan (Kd_Pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION); 16. Telpkary Domain Kd_Karyawan : character string, length 6 Domain Telepon_Karyawan : variable length character string, length 20 Telpkary ( Kd_Karyawan Kd_Karyawan NOT NULL, Telepon_Karyawan Telepon_Karyawan NOT NULL, 140 PRIM ARY KEY (Telepon_Karyawan), FOREIGN KEY Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION); 17. Telppemasok Domain Kd_Pemasok : character string, length 6 Domain Telepon_Pemasok : variable length character string, length 20 Telppemasok ( Kd_Pemasok Kd_Pemasok NOT NULL, Telepon_Pemasok Telepon_Pemasok NOT NULL, PRIM ARY KEY (Telepon_Pemasok), FOREIGN KEY Kd_Pemasok references Pemasok (Kd_Pemasok) ON UPDATE CASCADE ON DELETE NO ACTION); 18. Faxpemasok Domain Kd_Pemasok : character string, length 6 Domain Fax_Pemasok : variable length character string, length 20 Faxpemasok ( Kd_Pemasok Kd_Pemasok NOT NULL, Fax_Pemasok Fax_Pemasok NOT NULL, PRIM ARY KEY (Fax_Pemasok), Foreign Key Kd_Pemasok references Pemasok (Kd_Pemasok) ON UPDATE CASCADE ON DELETE NO ACTION); 141 3.2.4.1.2 Perancangan Enterprise Constraint Tujuan dari langkah ini adalah untuk merancang constraint perusahaan dalam DBM S. Constraint yang digunakan adalah sebagai berikut : 1. Qty_Pemesanan harus tidak boleh kurang dari angka 0 CONSTRAINT cekqtypengecekan Check (Qty_Pemesanan >=0) 2. Qty_Jual harus tidak boleh kurang dari angka 0 CONSTRAINT cekqtyjual Check (Qty_Jual >= 0) 3. Qty_Beli harus tidak boleh kurang dari angka 0 CONSTRAINT cekqtybeli Check (Qty_Beli >= 0) 4. Kd_M esin harus 9 digit CONSTRAINT cekkdmesin Check (Kd_M esin = [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] ) 5. Kd_Pelanggan harus dimulai dengan huruf P CONSTRAINT cekkdpelanggan Check (Kd_Pelanggan = P[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] ) 6. Kd_Karyawan harus dimulai dengan huruf K CONSTRAINT cekkdkaryawan Check (Kd_Karyawan = K[0-9] [0-9] [0-9] [0-9] [0-9] ) 7. Kd_Pemasok harus dimulai dengan BSA CONSTRAINT cekkdpemasok Check (Kd_Pemasok = BSA [0-9] [0-9] [0-9] ) 142 8. Kd_Pemesanan harus dimulai dengan huruf C CONSTRAINT cekkdpengecekan Check (Kd_Pemesanan = C [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] ) 9. Kd_Jual harus dimulai dengan huruf J CONSTRAINT cekkdjual Check (Kd_Jual = J[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [09] ) 10. Kd_Beli harus dimulai dengan huruf B CONSTRAINT cekkdbeli Check (Kd_Beli = B[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [09] ) 11. Kd_Penerimaan harus dimulai denga huruf R CONSTRAINT cekkdpenerimaan Check (Kd_Penerimaan = R[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] ) 12. Kd_Pengiriman harus dimulai dengan huruf K CONSTRAINT cekkdpengiriman Check (Kd_Pengiriman = K[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] ) 143 3.2.4.2 3.2.4.2.1 Perancangan Representasi Fisikal Analisa Transaksi Tabel 3.24 Tabel Analisa Transaksi 1 (A) Transaksi Relasi I R U D I Barang X M esin X Pelanggan X Karyawan X Pemasok X Pemesanan X X X Penjualan X Pembelian Penerimaan_Barang Pengiriman_Barang Detail_Pemesanan X X X Detail_Jual X Detail_Beli Telppelg Faxpelg Telpkary Telppemasok Faxpemasok I = Insert; R =Read; U = Update; D = Delete (B) R U X X X X D I X X X (C) R U X X X X X X X X X X X X X X X X D (A) Prosedur pemesanan harga barang, karyawan meminta harga barang ke pemasok (B) Prosedur penjualan, karyawan menjual barang ke pelanggan (C) Prosedur pembelian, karyawan membeli barang dari pemasok 144 Tabel 3.25 Tabel Analisa Transaksi 2 Transaksi (A) Relasi I R U D I Barang X M esin X Pelanggan X Karyawan X Pemasok X Pemesanan Penjualan Pembelian X Penerimaan_Barang X X X Pengiriman_Barang X Detail_Pengecekan Detail_Jual Detail_Beli X Telppelg Faxpelg Telpkary Telppemasok Faxpemasok I = Insert; R =Read; U = Update; D = Delete (B) R U X X X X X D I X X (C) R U X X X X D X X X X X X (A) Prosedur penerimaan barang, karyawan menerima barang yang telah di beli (B) Prosedur pengiriman barang, karyawan mengirim barang ke pelanggan (C) Prosedur detail barang 145 Tabel 3.26 Tabel Analisa Transaksi 3 (A) (B) Transaksi Relasi I R U D I R U Barang M esin Pelanggan X X X X Karyawan X X X Pemasok Pengecekan Penjualan Pembelian Penerimaan_Barang Pengiriman_Barang Detail_Pengecekan Detail_Jual Detail_Beli Telppelg X X X X Faxpelg X X X X Telpkary X X X Telppemasok Faxpemasok I = Insert; R =Read; U = Update; D = Delete D I (C) R U D X X X X X X X X X X X X X X (A) Prosedur detail pelanggan (B) Prosedur detail karyawan (C) Prosedur detail pemasok 3.2.4.2.2 Penerapan View dan Procedure View 1. View Barang CREATE DEFINER = 'root'@'localhost' VIEW `viewbarang` ( `Kd_Barang`, 146 `Kd_M esin`, `Kd_pemasok`, `Nama_Barang`, `Gambar`, `Deskripsi`, `Berat`, `Tgl_Update`, `Nama_M esin` ) AS (select `a`.`Kd_Barang` AS `Kd_Barang`, `a`.`Kd_M esin` AS `Kd_M esin`, `a`.`Kd_pemasok` AS `Kd_pemasok`, `a`.`Nama_Barang` AS `Nama_Barang`, `a`.`Gambar` AS `Gambar`, `a`.`Deskripsi` AS `Deskripsi`, `a`.`Berat` AS `Berat`, `a`.`Tgl_Update` AS `Tgl_Update`, `b`.`Nama_M esin` AS `Nama_M esin` from (`bsa`.`barang` `a` join `bsa`.`mesin` `b` on ( (`b`.`Kd_M esin` = `a`.`Kd_M esin`) 147 ))); 2. View Pemesanan CREATE DEFINER = 'root'@'localhost' VIEW `viewpemesanan` ( `Kd_Pemesanan`, `Kd_Pelanggan`, `Kd_Karyawan`, `Nama_Pelanggan`, `Nama_Perusahaan`, `Jabatan_Pelanggan`, `Alamat_Pelanggan`, `Kdpos_Pelanggan`, `Kota_Pelanggan`, `Nama_Karyawan`, `Jabatan_Karyawan`, `Tgl_Pemesanan`, `Tgl_Approve` ) AS (select `a`.`Kd_Pemesanan` AS `Kd_Pemesanan`, `a`.`Kd_Pelanggan` AS `Kd_Pelanggan`, `a`.`Kd_Karyawan` AS `Kd_Karyawan`, 148 `b`.`Nama_Pelanggan` AS `Nama_Pelanggan`, `b`.`Nama_Perusahaan` A S `Nama_Perusahaan`, `b`.`Jabatan_Pelanggan` AS `Jabatan_Pelanggan`, `b`.`Alamat_Pelanggan` A S `Alamat_Pelanggan`, `b`.`Kdpos_Pelanggan` A S `Kdpos_Pelanggan`, `b`.`Kota_Pelanggan` A S `Kota_Pelanggan`, `e`.`Nama_Karyawan` AS `Nama_Karyawan`, `e`.`Jabatan_Karyawan` AS `Jabatan_Karyawan`, date_format(`a`.`Tgl_Pemesanan`,_utf8'%M %D,%Y') AS `Tgl_Pemesanan`, date_format(`a`.`Tgl_Approve`,_utf8'%M %D,%Y') AS `Tgl_Approve` from ((`bsa`.`pemesanan` `a` join `bsa`.`pelanggan` `b` on ( (`b`.`Kd_Pelanggan` = `a`.`Kd_Pelanggan`) )) join `bsa`.`karyawan` `e` on ( (`e`.`Kd_Karyawan` = `a`.`Kd_Karyawan`) )) order by date_format(`a`.`Tgl_Pemesanan`,_utf8'%M %D,%Y') desc); 149 3. View Penjualan CREATE DEFINER = 'root'@'localhost' VIEW `viewpenjualan` ( `Kd_Jual`, `Kd_Pelanggan`, `Kd_Karyawan`, `Nama_Pelanggan`, `Nama_Perusahaan`, `Jabatan_Pelanggan`, `Alamat_Pelanggan`, `Kdpos_Pelanggan`, `Kota_Pelanggan`, `Nama_Karyawan`, `Jabatan_Karyawan`, `Tgl_Jual`, `Kd_Pengiriman` ) AS (select `a`.`Kd_Jual` AS `Kd_Jual`, `a`.`Kd_Pelanggan` AS `Kd_Pelanggan`, `a`.`Kd_Karyawan` AS `Kd_Karyawan`, `b`.`Nama_Pelanggan` AS `Nama_Pelanggan`, `b`.`Nama_Perusahaan` A S `Nama_Perusahaan`, 150 `b`.`Jabatan_Pelanggan` AS `Jabatan_Pelanggan`, `b`.`Alamat_Pelanggan` A S `Alamat_Pelanggan`, `b`.`Kdpos_Pelanggan` A S `Kdpos_Pelanggan`, `b`.`Kota_Pelanggan` A S `Kota_Pelanggan`, `e`.`Nama_Karyawan` AS `Nama_Karyawan`, `e`.`Jabatan_Karyawan` AS `Jabatan_Karyawan`, date_format(`a`.`Tgl_Jual`,_utf8'%M %D,%Y') AS `Tgl_Jual`, `c`.`Kd_Pengiriman` A S `Kd_Pengiriman` from (((`bsa`.`penjualan` `a` join `bsa`.`pelanggan` `b` on ( (`b`.`Kd_Pelanggan` = `a`.`Kd_Pelanggan`) )) left join `bsa`.`pengiriman_barang` `c` on ( (`c`.`Kd_Jual` = `a`.`Kd_Jual`) )) join `bsa`.`karyawan` `e` on ( (`e`.`Kd_Karyawan` = `a`.`Kd_Karyawan`) ))); 4. View Pembelian CREATE DEFINER = 'root'@'localhost' VIEW `viewpembelian` 151 ( `Kd_Beli`, `Kd_Pelanggan`, `Kd_Karyawan`, `Nama_Pelanggan`, `Nama_Perusahaan`, `Jabatan_Pelanggan`, `Alamat_Pelanggan`, `Kdpos_Pelanggan`, `Kota_Pelanggan`, `Nama_Karyawan`, `Jabatan_Karyawan`, `Tgl_Beli`, `Kd_Penerimaan` ) AS (select `a`.`Kd_Beli` AS `Kd_Beli`, `a`.`Kd_Pelanggan` AS `Kd_Pelanggan`, `a`.`Kd_Karyawan` AS `Kd_Karyawan`, `b`.`Nama_Pelanggan` AS `Nama_Pelanggan`, `b`.`Nama_Perusahaan` A S `Nama_Perusahaan`, `b`.`Jabatan_Pelanggan` AS `Jabatan_Pelanggan`, `b`.`Alamat_Pelanggan` A S `Alamat_Pelanggan`, 152 `b`.`Kdpos_Pelanggan` A S `Kdpos_Pelanggan`, `b`.`Kota_Pelanggan` A S `Kota_Pelanggan`, `e`.`Nama_Karyawan` AS `Nama_Karyawan`, `e`.`Jabatan_Karyawan` AS `Jabatan_Karyawan`, date_format(`a`.`Tgl_Beli`,_utf8'%M %D,%Y') AS `Tgl_Beli`, `c`.`Kd_Penerimaan` AS `Kd_Penerimaan` from (((`bsa`.`pembelian` `a` join `bsa`.`pelanggan` `b` on ( (`b`.`Kd_Pelanggan` = `a`.`Kd_Pelanggan`) )) left join `bsa`.`penerimaan_barang` `c` on ( (`c`.`Kd_Beli` = `a`.`Kd_Beli`) )) join `bsa`.`karyawan` `e` on ( (`e`.`Kd_Karyawan` = `a`.`Kd_Karyawan`) )) order by date_format(`a`.`Tgl_Beli`,_utf8'%M %D,%Y') desc); 5. View Penerimaan Barang CREATE DEFINER = 'root'@'localhost' VIEW 153 `viewpenerimaan_barang` ( `Kd_Penerimaan`, `Kd_Beli`, `Kd_Pelanggan`, `Kd_Karyawan`, `Nama_Pelanggan`, `Nama_Perusahaan`, `Jabatan_Pelanggan`, `Alamat_Pelanggan`, `Kdpos_Pelanggan`, `Kota_Pelanggan`, `Nama_Karyawan`, `Jabatan_Karyawan`, `Tgl_Kirimpemasok`, `Tgl_Terimakaryawan` ) AS (select `a`.`Kd_Penerimaan` AS `Kd_Penerimaan`, `a`.`Kd_Beli` AS `Kd_Beli`, `b`.`Kd_Pelanggan` AS `Kd_Pelanggan`, `b`.`Kd_Karyawan` AS `Kd_Karyawan`, `c`.`Nama_Pelanggan` AS `Nama_Pelanggan`, 154 `c`.`Nama_Perusahaan` AS `Nama_Perusahaan`, `c`.`Jabatan_Pelanggan` A S `Jabatan_Pelanggan`, `c`.`Alamat_Pelanggan` AS `Alamat_Pelanggan`, `c`.`Kdpos_Pelanggan` AS `Kdpos_Pelanggan`, `c`.`Kota_Pelanggan` AS `Kota_Pelanggan`, `f`.`Nama_Karyawan` AS `Nama_Karyawan`, `f`.`Jabatan_Karyawan` AS `Jabatan_Karyawan`, date_format(`a`.`Tgl_Kirimpemasok`,_utf8'%M %D,%Y') AS `Tgl_Kirimpemasok`, date_format(`a`.`Tgl_Terimakaryawan`,_utf8'%M %D,%Y') AS `Tgl_Terimakaryawan` from (((`bsa`.`penerimaan_barang` `a` join `bsa`.`pembelian` `b` on ( (`b`.`Kd_Beli` = `a`.`Kd_Beli`) )) join `bsa`.`pelanggan` `c` on ( (`c`.`Kd_Pelanggan` = `b`.`Kd_Pelanggan`) )) join `bsa`.`karyawan` `f` on ( (`f`.`Kd_Karyawan` = `b`.`Kd_Karyawan`) ))); 155 6. View Pengiriman Barang CREATE DEFINER = 'root'@'localhost' VIEW `viewpengiriman_barang` ( `Kd_Pengiriman`, `Kd_Jual`, `Kd_Pelanggan`, `Kd_Karyawan`, `Nama_Pelanggan`, `Nama_Perusahaan`, `Jabatan_Pelanggan`, `Alamat_Pelanggan`, `Kdpos_Pelanggan`, `Kota_Pelanggan`, `Nama_Karyawan`, `Jabatan_Karyawan`, `Tgl_Kirimkaryawan`, `Tgl_Terimapelanggan` ) AS (select `a`.`Kd_Pengiriman` A S `Kd_Pengiriman`, `a`.`Kd_Jual` AS `Kd_Jual`, `b`.`Kd_Pelanggan` AS `Kd_Pelanggan`, `b`.`Kd_Karyawan` AS `Kd_Karyawan`, 156 `c`.`Nama_Pelanggan` AS `Nama_Pelanggan`, `c`.`Nama_Perusahaan` AS `Nama_Perusahaan`, `c`.`Jabatan_Pelanggan` A S `Jabatan_Pelanggan`, `c`.`Alamat_Pelanggan` AS `Alamat_Pelanggan`, `c`.`Kdpos_Pelanggan` AS `Kdpos_Pelanggan`, `c`.`Kota_Pelanggan` AS `Kota_Pelanggan`, `f`.`Nama_Karyawan` AS `Nama_Karyawan`, `f`.`Jabatan_Karyawan` AS `Jabatan_Karyawan`, date_format(`a`.`Tgl_Kirimkaryawan`,_utf8'%M %D,%Y') AS `Tgl_Kirimkaryawan`, date_format(`a`.`Tgl_terimapelanggan`,_utf8'%M %D,%Y') AS `Tgl_Terimapelanggan` from (((`bsa`.`pengiriman_barang` `a` join `bsa`.`penjualan` `b` on ( (`b`.`Kd_Jual` = `a`.`Kd_Jual`) )) join `bsa`.`pelanggan` `c` on ( (`c`.`Kd_Pelanggan` = `b`.`Kd_Pelanggan`) )) join `bsa`.`karyawan` `f` on ( (`f`.`Kd_Karyawan` = `b`.`Kd_Karyawan`) 157 ))); 7. View Detail Pemesanan CREATE DEFINER = 'root'@'localhost' VIEW `viewdetailpemesanan` ( `Kd_Pemesanan`, `Kd_Barang`, `Qty_Pemesanan`, `Nama_Barang`, `Berat`, `Kd_M esin`, `Nama_M esin`, `Harga_Beli`, `Harga_Jual` ) AS (select `a`.`Kd_Pemesanan` AS `Kd_Pemesanan`, `a`.`Kd_Barang` AS `Kd_Barang`, `a`.`Qty_Pemesanan` AS `Qty_Pemesanan`, `b`.`Nama_Barang` A S `Nama_Barang`, `b`.`Berat` AS `Berat`, `b`.`Kd_M esin` AS `Kd_M esin`, `c`.`Nama_M esin` AS `Nama_M esin`, 158 `a`.`Harga_Beli` AS `Harga_Beli`, `a`.`Harga_Jual` AS `Harga_Jual` from ((`bsa`.`detail_pemesanan` `a` join `bsa`.`barang` `b` on ( (`b`.`Kd_Barang` = `a`.`Kd_Barang`) )) join `bsa`.`mesin` `c` on ( (`c`.`Kd_M esin` = `b`.`Kd_M esin`) ))); 8. View Detail Penjualan CREATE DEFINER = 'root'@'localhost' VIEW `viewdetailjual` ( `Kd_Jual`, `Kd_Barang`, `Harga_Jual`, `Qty_Jual`, `Nama_Barang`, `Kd_M esin`, `Nama_M esin`, `Berat` ) 159 AS (select `a`.`Kd_Jual` AS `Kd_Jual`, `a`.`Kd_Barang` AS `Kd_Barang`, `a`.`Harga_Jual` AS `Harga_Jual`, `a`.`Qty_Jual` AS `Qty_Jual`, `b`.`Nama_Barang` A S `Nama_Barang`, `b`.`Kd_M esin` AS `Kd_M esin`, `c`.`Nama_M esin` AS `Nama_M esin`, `b`.`Berat` AS `Berat` from ((`bsa`.`detail_jual` `a` join `bsa`.`barang` `b` on ( (`b`.`Kd_Barang` = `a`.`Kd_Barang`) )) join `bsa`.`mesin` `c` on ( (`c`.`Kd_M esin` = `b`.`Kd_M esin`) ))); 9. View Detail Pembelian CREATE DEFINER = 'root'@'localhost' VIEW `viewdetailbeli` ( `Kd_Beli`, 160 `Kd_Barang`, `Harga_Beli`, `Qty_Beli`, `Nama_Barang`, `Kd_M esin`, `Nama_M esin`, `Berat` ) AS (select `a`.`Kd_Beli` AS `Kd_Beli`, `a`.`Kd_Barang` AS `Kd_Barang`, `a`.`Harga_Beli` AS `Harga_Beli`, `a`.`Qty_Beli` AS `Qty_Beli`, `b`.`Nama_Barang` A S `Nama_Barang`, `b`.`Kd_M esin` AS `Kd_M esin`, `c`.`Nama_M esin` AS `Nama_M esin`, `b`.`Berat` AS `Berat` from ((`bsa`.`detail_beli` `a` join `bsa`.`barang` `b` on ( (`b`.`Kd_Barang` = `a`.`Kd_Barang`) )) join `bsa`.`mesin` `c` on 161 ( (`c`.`Kd_M esin` = `b`.`Kd_M esin`) ))); Procedure 1. Procedure Insert Barang CREATE PROCEDURE `insertbarang` ( IN `kb` char(10), IN `km` char(9), IN `kp` char(6), IN `nb` varchar(20), IN `gambar` varchar(20), IN `d` varchar(50), IN `berat` decimal(10,4) ) BEGIN INSERT INTO barang VALUES (kb,km,kp,nb,gambar,d,berat,NOW()); END 2. Procedure Insert Pelanggan CREATE PROCEDURE `insertpelanggan` ( IN `user` varchar(20), 162 IN `np` varchar(20), IN `npu` varchar(50), IN `jp` varchar(20), IN `ap` varchar(50), IN `kdpos` char(5), IN `kp` varchar(20), IN `ep` varchar(20), IN `pass` varchar(20) ) BEGIN DECLARE x char(8); DECLARE y int; select cast(RIGHT(Kd_Pelanggan,5) as UNSIGNED) from Pelanggan order by Kd_Pelanggan Desc limit 1 into y; IF y < 9 THEN SET X = CONCAT( 'P', '000000', y+1); ELSEIF y < 99 THEN SET X = CONCAT( 'P', '00000', y+1); ELSEIF y < 999 THEN SET X = CONCAT( 'P', '0000', y+1); ELSEIF y < 9999 THEN SET X = CONCAT( 'P','000', y+1); ELSE SET x = 'P0000001'; END IF; INSERT INTO pelanggan VALUES (x,user,np,npu,jp,ap,kdpos,kp,ep,pass); END 163 3. Procedure Insert Telepon Pelanggan CREATE PROCEDURE `inserttelppelg` ( IN `kp` char(8), IN `telp` varchar(20) ) BEGIN insert into telppelg values(kp,telp); END 4. Procedure Insert Fax Pelanggan CREATE PROCEDURE `insertfaxpelg` ( IN `kp` char(8), IN `fax` varchar(20) ) BEGIN insert into faxpelg values(kp,fax); END 5. Procedure Insert Pemesanan CREATE PROCEDURE `insertpemesanan` ( IN `kpel` char(8), 164 IN `kk` char(6) ) BEGIN DECLARE x char(11); DECLARE y int; select cast(RIGHT(Kd_Pemesanan,10) as UNSIGNED) from Pemesanan order by Kd_Pemesanan Desc limit 1 into y; IF y < 9 THEN SET X = CONCAT( 'C', '000000000', y+1); ELSEIF y < 99 THEN SET X = CONCAT( 'C', '00000000', y+1); ELSEIF y < 999 THEN SET X = CONCAT( 'C', '0000000', y+1); ELSEIF y < 9999 THEN SET X = CONCAT( 'C', '000000', y+1); ELSEIF y < 99999 THEN SET X = CONCAT( 'C','00000', y+1); ELSEIF y < 999999 THEN SET X = CONCAT( 'C','0000', y+1); ELSEIF y < 9999999 THEN SET X = CONCAT( 'C','000', y+1); ELSE SET x = 'C0000000001'; END IF; INSERT INTO pemesanan VALUES (x ,kpel,kk,NULL,NULL); END 6. Procedure Insert Penjualan CREATE PROCEDURE `insertpenjualan` ( IN `kd` char(11), IN `kpel` char(8), 165 IN `kk` char(6) ) BEGIN DECLARE x char(11); DECLARE y char(11); select RIGHT(kd,10) as `kode` into y; SET x = CONCAT( 'J', y); INSERT INTO penjualan VALUES (x ,kpel,kk,NOW()); END 7. Procedure Insert Pembelian CREATE PROCEDURE `insertpembelian` ( IN `kd` char(11), IN `kpel` char(8), IN `kk` char(6) ) BEGIN DECLARE x char(11); DECLARE y char(11); select RIGHT(kd,10) as `kode` into y; SET x = CONCAT( 'B', y); INSERT INTO pembelian VALUES (x,kpel,kk,NOW()); END 166 8. Procedure Insert Penerimaan Barang CREATE PROCEDURE `insertpenerimaan` ( IN `kb` char(11) ) BEGIN DECLARE x char(11); DECLARE y char(11); select RIGHT(kb,10) as `kode` into y; SET x = CONCAT( 'R', y); INSERT INTO penerimaan_barang VALUES (x ,kb,NOW(),NULL); END 9. Procedure Insert Pengiriman Barang CREATE PROCEDURE `insertpengiriman` ( IN `kj` char(11) ) BEGIN DECLARE x char(11); DECLARE y char(11); select RIGHT(kj,10) as `kode` into y; SET x = CONCAT( 'S', y); INSERT INTO pengiriman_barang VALUES (x ,kj,NOW(),NULL); 167 END 10. Procedure Insert Detail Pemesanan CREATE PROCEDURE `insertdetailpemesanan` ( IN `kp` char(11), IN `kb` char(10), IN `hb` int, IN `hj` int, IN `qty` int ) BEGIN IF qty > 0 THEN insert into detail_pemesanan values(kp,kb,hb,hj,qty); END IF; END 11. Procedure Insert Detail Penjualan CREATE PROCEDURE `insertdetailjual` ( IN `kp` char(11), IN `kb` char(10), IN `harga` int, IN `qty` int 168 ) BEGIN IF qty > 0 THEN insert into detail_jual values(kp,kb,harga,qty); END IF; END 12. Procedure Insert Detail Pembelian CREATE PROCEDURE `insertdetailbeli` ( IN `kp` char(11), IN `kb` char(10), IN `harga` int, IN `qty` int ) BEGIN IF qty > 0 THEN insert into detail_beli values(kp,kb,harga,qty); END IF; END 13. Procedure Update Barang CREATE PROCEDURE `updatebarang` ( 169 IN `kb` char(10), IN `kbl` char(10), IN `km` char(9), IN `nb` varchar(20), IN `gambar` varchar(20), IN `d` varchar(50), IN `berat` decimal(10,4) ) BEGIN UPDATE `barang` SET `Kd_Barang` = kb, `Kd_M esin` = km, `Nama_Barang` = nb, `Gambar` = gambar, `Deskripsi` = d, `Berat` = berat, `Tgl_Update` = NOW( ) WHERE `barang`.`Kd_Barang` = kbl LIM IT 1 ; END 14. Procedure Update Pelanggan CREATE PROCEDURE `updatepelanggan` ( IN `kd` char(8), IN `jp` varchar(20), 170 IN `ap` varchar(50), IN `kdpos` char(5), IN `kp` varchar(20), IN `ep` varchar(20), IN `pass` varchar(20) ) BEGIN UPDATE `bsa`.`pelanggan` SET `Jabatan_Pelanggan` = jp, `Alamat_Pelanggan` = ap, `Kdpos_Pelanggan` = kdpos, `Kota_Pelanggan` = kp, `Email_Pelanggan` = ep, `PasswordP` = pass WHERE Kd_Pelanggan = kd LIM IT 1 ; END 15. Procedure Update Qty Pemesanan CREATE PROCEDURE `updateqtypemesanan` ( IN `Kd` char(11), IN `Kb` char(10), IN `qty` int ) BEGIN 171 IF qty > 0 THEN UPDATE detail_pemesanan SET `Qty_Pemesanan` = qty WHERE Kd_Pemesanan = Kd AND Kd_Barang = Kb LIM IT 1 ; END IF; END 16. Procedure Update Harga Beli Detail Pemesanan CREATE PROCEDURE `updatedetailhargabeli` ( IN `kp` char(11), IN `kb` char(10), IN `hb` int ) BEGIN UPDATE `bsa`.`detail_pemesanan` SET `Harga_Beli` = hb WHERE `detail_pemesanan`.`Kd_Pemesanan` = kp AND `detail_pemesanan`.`Kd_Barang` = kb LIM IT 1 ; END 17. Procedure Update Harga Jual Detail Pemesanan CREATE PROCEDURE `updatedetailhargajual` ( IN `kp` char(11), IN `kb` char(10), 172 IN `hj` int ) BEGIN UPDATE `bsa`.`detail_pemesanan` SET `Harga_Jual` = hj WHERE `detail_pemesanan`.`Kd_Pemesanan` = kp AND `detail_pemesanan`.`Kd_Barang` = kb LIM IT 1 ; END 18. Procedure Update Tgl Pemesanan CREATE PROCEDURE `updatetglpemesanan` ( IN `Kd` char(11) ) BEGIN UPDATE pemesanan SET `Tgl_Pemesanan` = NOW() WHERE Kd_Pemesanan = Kd; END 19. Procedure Update Tgl Approve CREATE PROCEDURE `updatetglapp` ( IN `Kd` char(11) ) BEGIN 173 UPDATE pemesanan SET `Tgl_Approve` = NOW() WHERE Kd_Pemesanan = Kd; END 20. Procedure Update Tanggal Terima Karyawan CREATE PROCEDURE `updatetglterimakaryawan` ( IN `kd` char(11) ) BEGIN UPDATE penerimaan_Barang SET Tgl_Terimakaryawan = NOW( ) WHERE Kd_Penerimaan = kd LIM IT 1 ; END 21. Procedure Update Tanggal Terima Pelanggan CREATE PROCEDURE `updatetglterimapelanggan` ( IN `kd` char(11) ) BEGIN UPDATE pengiriman_barang SET Tgl_Terimapelanggan = NOW( ) WHERE Kd_Pengiriman = kd LIM IT 1 ; END 174 22. Procedure Hapus Telepon Pelanggan CREATE PROCEDURE `hapustelppelg` ( IN `Kd` char(8), IN `telp` varchar(20) ) BEGIN DELETE FROM telppelg WHERE Kd_Pelanggan = Kd AND Telepon_Pelanggan = telp ; END 23. Procedure Hapus Fax Pelanggan CREATE PROCEDURE `hapusfaxpelg` ( IN `Kd` char(8), IN `fax` varchar(20) ) BEGIN DELETE FROM faxpelg WHERE Kd_Pelanggan = Kd AND Fax_Pelanggan = fax LIM IT 1 ; END 24. Procedure Hapus Pemesanan CREATE PROCEDURE `hapuspemesanan` 175 ( IN `Kd` char(11) ) BEGIN DELETE FROM detail_pemesanan WHERE Kd_Pemesanan = Kd; DELETE FROM pemesanan WHERE Kd_Pemesanan = Kd; END 25. Procedure Hapus Detail Pemesanan CREATE PROCEDURE `hapusdetailpemesanan` ( IN `Kd` char(11), IN `Kb` char(10) ) BEGIN DELETE FROM detail_pemesanan WHERE Kd_Pemesanan = kd AND Kd_Barang = kb LIM IT 1; END 176 3.2.4.2.3 Pemilihan Index Tabel 3.27 Tabel Pemilihan Index dan Cluster/Non-Cluster Deskripsi Indeks Barang Kd_Barang PK_Barang Cluster Kd_M esin barang_ibfk1 Non-Cluster Tgl_Update barang_ibfk2 Non-Cluster Karyawan Kd_Karyawan PK_Karyawan Cluster UserIDK Userkaryawan Non-Cluster Pelanggan Kd_Pelanggan PK_Pelanggan Cluster UserIDP Userpelanggan Non-Cluster Pemasok Kd_Pemasok PK_Pemasok Cluster UserIDS Userpemasok Non-Cluster M esin Kd_M esin PK_M esin Cluster Pemesanan Kd_Pemesanan PK_Pemesanan Cluster Kd_Pelanggan pengecekan_ibfk_1 Non-Cluster Kd_Karyawan pengecekan_ibfk_2 Non-Cluster Tgl_Pemesanan pengecekan_in_3 Non-Cluster Penjualan Kd_Jual PK_Penjualan Cluster Kd_Pelanggan penjualan_ibfk_1 Non-Cluster Kd_Karyawan penjualan_ibfk_2 Non-Cluster Tgl_Jual penjualan_ibfk_3 Non-Cluster Pembelian Kd_Beli PK_Pembelian Cluster Kd_Pelanggan pembelian_ibfk_1 Non-Cluster Kd_Karyawan pembelian_ibfk_2 Non-Cluster Tgl_Beli pembelian_in_3 Non-Cluster Penerimaan_Barang Kd_Penerimaan PK_Penerimaan_Barang Cluster Kd_Beli penerimaan_barang_ibfk_1 Non-Cluster Tgl_Kirimpemasok penerimaan_barang_in_2 Non-Cluster Tgl_Terimakaryawan penerimaan_barang_in_3 Non-Cluster Pengiriman_Barang Kd_Pengiriman PK_Pengiriman_Barang Cluster Kd_Jual pengiriman_barang_ibfk_1 Non-Cluster Tgl_Kirimkaryawan pengiriman_barang_in_2 Non-Cluster Tgl_Terimapelanggan pengiriman_barang_in_3 Non-Cluster Detail_Pemesanan PK_Detail_Pengecekan Kd_Pemesanan Cluster Kd_Barang Non-Cluster Nama Entiti Indeks Key Nama Indeks 177 Nama Entiti Indeks Key Nama Indeks Detail_Beli Kd_Beli Kd_Barang Kd_Jual Kd_Barang Telepon_Pelanggan Fax_Pelanggan Telepon_Karyawan Telepon_Pemasok Fax_Pemasok PK_Detail_Beli Detail_Jual Telppelg Faxpelg Telpkary Telppemasok Faxpemasok 3.2.4.2.4 PK_Detail_Jual PK_Telppelg PK_Faxpelg PK_Telpkary PK_Telppemasok PK_FaxPemasok Deskripsi Indeks Cluster Non-Cluster Cluster Non-Cluster Cluster Cluster Cluster Cluster Cluster Estimasi Kebutuhan Media Penyimpanan Perkiraan kebutuhan ini dilakukan dengan menghitung besar kapasitas media penyimpanan yang terpakai untuk setiap tabel/entiti dengan atributatribut yang ada di dalamnya dan tipe data yang digunakan adalah : Barang Tabel 3.28 Estimasi Ukuran Entitas Barang Tabel/Entity Barang Atribut Kd_Barang Kd_M esin Kd_Pemasok Nama_Barang Gambar Deskripsi Berat Tgl_Update Tipedata Ukuran(Byte) Char 10 Char 9 Char 6 Varchar 20 Varchar 20 Varchar 50 Decimal 8 Datetime 8 Jumlah 131 178 Mesin Tabel 3.29 Estimasi Ukuran Entitas Mesin Tabel/Entity M esin Atribut Kd_M esin Nama_M esin Tipedata Ukuran(Byte) Char 9 Varchar 20 Jumlah 29 Pelanggan Tabel 3.30 Estimasi Ukuran Entitas Pelanggan Tabel/Entity Pelanggan Atribut Kd_Pelanggan UserIDP Nama_Pelanggan Nama_Perusahaan Jabatan_Pelanggan Alamat_Pelanggan Kdpos_Pelanggan Kota_Pelanggan email_Pelanggan PasswordP Tipedata Ukuran(Byte) Char 8 Varchar 20 Varchar 20 Varchar 50 Varchar 20 Varchar 50 Char 5 Varchar 20 Varchar 20 Varchar 20 Jumlah 233 Karyawan Tabel 3.31 Estimasi Ukuran Entitas Karyawan Tabel/Entity Karyawan Atribut Kd_Karyawan UserIDK Nama_Karyawan Jabatan_Karyawan Alamat_Karyawan email_Karyawan Kota_Karyawan PasswordK Tipedata Ukuran(Byte) Char 6 Varchar 20 Varchar 20 Varchar 20 Varchar 50 Varchar 20 Varchar 20 Varchar 20 Jumlah 176 179 Pemasok Tabel 3.32 Estimasi Ukuran Entitas Pemasok Tabel/Entity Pemasok Atribut Kd_Pemasok UserIDS Nama_Pemasok Alamat_Pemasok Email_Pemasok Website PasswordS Tipedata Ukuran(Byte) Char 6 Varchar 20 Varchar 20 Varchar 50 Varchar 20 Varchar 20 Varchar 20 Jumlah 156 Pemesanan Tabel 3.33 Estimasi Ukuran Entitas Pemesanan Tabel/Entity Pengecekan Atribut Kd_Pemesanan Kd_Pelanggan Kd_Karyawan Tgl_Pemesanan Tgl_Approve Tipedata Ukuran(Byte) Char 11 Char 8 Char 6 Datetime 8 Datetime 8 Jumlah 41 Penjualan Tabel 3.34 Estimasi Ukuran Entitas Penjualan Tabel/Entity Penjualan Atribut Kd_Jual Kd_Pelanggan Kd_Karyawan Tgl_Jual Tipedata Ukuran(Byte) Char 11 Char 8 Char 6 Datetime 8 Jumlah 33 180 Pembelian Tabel 3.35 Estimasi Ukuran Entitas Pembelian Tabel/Entity Pembelian Atribut Kd_Beli Kd_Pelanggan Kd_Karyawan Kd_Pemasok Tgl_Beli Tipedata Ukuran(Byte) Char 11 Char 8 Char 6 Char 6 Datetime 8 Jumlah 39 Penerimaan_Barang Tabel 3.36 Estimasi Ukuran Entitas Penerimaan_Barang Tabel/Entity Atribut Penerimaan_Barang Kd_Penerimaan Kd_Beli Tgl_Kirimpemasok Tgl_Terimakaryawan Tipedata Ukuran(Byte) Char 11 Char 11 Datetime 8 Datetime 8 Jumlah 38 Pengiriman_Barang Tabel 3.37 Estimasi Ukuran Entitas Pengiriman_Barang Tabel/Entity Atribut Pengiriman_Barang Kd_Pengiriman Kd_Jual Tgl_Kirimkaryawan Tgl_Terimapelanggan Tipedata Ukuran(Byte) Char 11 Char 11 Datetime 8 Datetime 8 Jumlah 38 Detail_Pemesanan Tabel 3.38 Estimasi Ukuran Entitas Detail_Pemesanan Tabel/Entity Atribut Detail_Pengecekan Kd_Pemesanan Kd_Barang Qty_Pemesanan Harga_Jual Harga_Beli Tipedata Ukuran(Byte) Char 11 Char 10 Int 4 Int 4 Int 4 Jumlah 33 181 Detail_Jual Tabel 3.39 Estimasi Ukuran Entitas Detail_Jual Tabel/Entity Detail_Jual Atribut Kd_Jual Kd_Barang Qty_Jual Harga_Jual Tipedata Ukuran(Byte) Char 11 Char 10 Int 4 Int 4 Jumlah 29 Detail_Beli Tabel 3.40 Estimasi Ukuran Entitas Detail_Beli Tabel/Entity Detail_Beli Atribut Kd_Beli Kd_Barang Qty_Beli Harga_Beli Tipedata Ukuran(Byte) Char 11 Char 10 Int 4 Int 4 Jumlah 29 Telppelg Tabel 3.41 Estimasi Ukuran Entitas Telppelg Tabel/Entity Telppelg Atribut Kd_Pelanggan Telepon_Pelanggan Tipedata Ukuran(Byte) Char 8 Varchar 20 Jumlah 28 Faxpelg Tabel 3.42 Estimasi Ukuran Entitas Faxpelg Tabel/Entity Faxpelg Atribut Kd_Pelanggan Fax_Pelanggan Tipedata Ukuran(Byte) Char 8 Varchar 20 Jumlah 28 182 Telpkary Tabel 3.43 Estimasi Ukuran Entitas Telpkary Tabel/Entity Telpkary Atribut Kd_Karyawan Telepon_Karyawan Tipedata Ukuran(Byte) Char 6 Varchar 20 Jumlah 26 Telppemasok Tabel 3.44 Estimasi Ukuran Entitas Telppemasok Tabel/Entity Telppemasok Atribut Kd_Pemasok Telepon_Pemasok Tipedata Ukuran(Byte) Char 6 Varchar 20 Jumlah 26 Faxpemasok Tabel 3.45 Estimasi Ukuran Entitas Faxpemasok Tabel/Entity Faxpemasok Atribut Kd_Pemasok Fax_Pemasok Tipedata Ukuran(Byte) Char 6 Varchar 20 Jumlah 26 Dari tabel di atas telah didapat jumlah ukuran satu record dari masingmasing tabel, maka dapat diperkirakan besar ukuran record yang digunakan untuk transaksi yang dilakukan setiap harinya (ukuran record per hari) adalah seperti tabel di bawah ini. Tabel 3.46 Tabel Estimasi Total Ukuran Entitas Perhari Tabel/Entiti Barang M esin Pelanggan Karyawan Ukuran 1 Record (Byte) 131 29 233 176 Estimasi Jumlah Ukuran Perhari 3 2 1 1 Ukuran record Perhari (Byte) 393 58 233 176 183 Tabel/Entiti Ukuran 1 Record Estimasi Jumlah Ukuran record (Byte) Ukuran Perhari Perhari (Byte) Pemasok 156 1 156 Pemesanan 41 1 41 Penjualan 33 1 33 Pembelian 39 1 39 Penerimaan_Barang 38 1 38 Pengiriman_Barang 38 1 38 Detail_Pemesanan 33 1 33 Detail_Jual 29 1 29 Detail_Beli 29 1 29 Telppelg 28 1 28 Faxpelg 28 1 28 Telpkary 26 1 26 Telppemasok 26 1 26 Faxpemasok 26 1 26 T OT A L 1430 Perkiraan kebutuhan kapasitas disk untuk transaksi sebesar Byte/hari untuk 1 minggunya adalah : 1430 x 5 = 7150 Byte Perkiraan kebutuhan kapasitas disk untuk transaksi sebesar Byte/hari untuk 1 tahunnya adalah : 7150 x 52 = 371800 Byte = 363.09 KB = 0.354 MB 184 3.2.4.3 Perancangan Mekanisme Pengamanan Data Basis Data merupakan informasi yang penting perusahaan dan bersifat rahasia. Untuk itu, basis data tidak dapat diakses oleh sembarang orang. Jadi setiap user dibatasi hak-nya untuk mengakses data tersebut. Tabel 3.47 Tabel Mekanisme Keamanan User Entitas S ystem Admin Customer Direktur Adminitra si Supplier Barang IRUD R R IRUD IRUD M esin IRUD R R IRUD IRUD Pelanggan IRUD IRUD R R - Karyawan IRUD R IRUD IRUD R Pemasok IRUD - R R IRUD Pemesanan IRUD IRUD R IRUD IRUD Penjualan IRUD IRUD R IRUD - Pembelian IRUD - R IRUD IRUD Penerimaan_Barang IRUD - R R IRUD Pengiriman_Barang IRUD R R IRUD - Detail_Pemesanan IRUD IRUD R IRUD IRUD Detail_Jual IRUD IRUD R IRUD - Detail_Beli IRUD - R IRUD IRUD Telppelg IRUD IRUD R R - Faxpelg IRUD IRUD R R - Telpkary IRUD R IRUD IRUD R Telppemasok IRUD - R R IRUD Faxpemasok IRUD - R R IRUD Berikut adalah perancangan mekanisme keamanan yang meliputi pembuatan user dengan syntax SQL untuk memberikan pengaksesan data sesuai dengan jabatan, sebagai berikut : 185 • Membuat User CREATE USER 'SystemAdmin'@'localhost'; GRANT USAGE ON *.* TO 'SystemAdmin'@'localhost' IDENTIFIED BY 'adm01'; CREATE USER 'Supplier'@'localhost'; GRANT USAGE ON *.* TO 'Supplier'@'localhost' IDENTIFIED BY 'sup'; CREATE USER 'Direktur'@'localhost'; GRANT USAGE ON *.* TO 'Direktur'@'localhost' IDENTIFIED BY 'dir'; CREATE USER 'Customer'@'localhost'; GRANT USAGE ON *.* TO 'Customer'@'localhost' IDENTIFIED BY 'cust'; CREATE USER 'Administrasi'@'localhost'; GRANT USAGE ON *.* TO 'Administrasi'@'localhost' 186 IDENTIFIED BY 'afg'; • Pemberian Hak Akses Tabel Barang GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `barang` TO 'Administrasi'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `barang` TO 'Customer'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `barang` TO 'Direktur'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `barang` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `barang` 187 TO 'SystemAdmin'@'localhost'; Tabel Mesin GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `mesin` TO 'Administrasi'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `mesin` TO 'Customer'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `mesin` TO 'Direktur'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `mesin` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `mesin` TO 'SystemAdmin'@'localhost'; 188 Tabel Pelanggan GRANT SELECT, SHOW VIEW ON TABLE `pelanggan` TO 'Administrasi'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `pelanggan` TO 'Customer'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `pelanggan` TO 'Direktur'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `pelanggan` TO 'SystemAdmin'@'localhost'; Tabel Karyawan GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `karyawan` TO 'Administrasi'@'localhost'; GRANT SELECT, SHOW VIEW 189 ON TABLE `karyawan` TO 'Customer'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `karyawan` TO 'Direktur'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `karyawan` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `karyawan` TO 'SystemAdmin'@'localhost'; Tabel Pemasok GRANT SELECT, SHOW VIEW ON TABLE `pemasok` TO 'Administrasi'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `pemasok` TO 'Direktur'@'localhost'; 190 GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `pemasok` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `pemasok` TO 'SystemAdmin'@'localhost'; Tabel Pemesanan GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `pemesanan` TO 'Administrasi'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `pemesanan` TO 'Customer'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `pemesanan` TO 'Direktur'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `pemesanan` 191 TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `pemesanan` TO 'SystemAdmin'@'localhost'; Tabel Penjualan GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `penjualan` TO 'Administrasi'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `penjualan` TO 'Customer'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `penjualan` TO 'Direktur'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `penjualan` TO 'SystemAdmin'@'localhost'; 192 Tabel Pembelian GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `pembelian` TO 'Administrasi'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `pembelian` TO 'Direktur'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `pembelian` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `pembelian` TO 'SystemAdmin'@'localhost'; Tabel Penerimaan_Barang GRANT SELECT, SHOW VIEW ON TABLE `penerimaan_barang` TO 'Administrasi'@'localhost'; 193 GRANT SELECT, SHOW VIEW ON TABLE `penerimaan_barang` TO 'Direktur'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `penerimaan_barang` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `penerimaan_barang` TO 'SystemAdmin'@'localhost'; Tabel Pengiriman_Barang GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `pengiriman_barang` TO 'Administrasi'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `pengiriman_barang` TO 'Customer'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `pengiriman_barang` 194 TO 'Direktur'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `pengiriman_barang` TO 'SystemAdmin'@'localhost'; Tabel Detail_Pemesanan GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `detail_pemesanan` TO 'Administrasi'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `detail_pemesanan` TO 'Customer'@'localhost'; GRANT SELECT ON TABLE `detail_pemesanan` TO 'Direktur'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `detail_pemesanan` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, 195 GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `detail_pemesanan` TO 'SystemAdmin'@'localhost'; Tabel Detail_Jual GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `detail_jual` TO 'Administrasi'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `detail_jual` TO 'Customer'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `detail_jual` TO 'Direktur'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `detail_jual` TO 'SystemAdmin'@'localhost'; Tabel Detail_Beli GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW 196 ON TABLE `detail_beli` TO 'Administrasi'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `detail_beli` TO 'Direktur'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `detail_beli` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `detail_beli` TO 'SystemAdmin'@'localhost'; Tabel Telppelg GRANT SELECT, SHOW VIEW ON TABLE `telppelg` TO 'Administrasi'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `telppelg` TO 'Customer'@'localhost'; 197 GRANT SELECT, SHOW VIEW ON TABLE `telppelg` TO 'Direktur'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `telppelg` TO 'SystemAdmin'@'localhost'; Tabel Faxpelg GRANT SELECT, SHOW VIEW ON TABLE `faxpelg` TO 'Administrasi'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `faxpelg` TO 'Customer'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `faxpelg` TO 'Direktur'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, 198 GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `faxpelg` TO 'SystemAdmin'@'localhost'; Tabel Telpkary GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `telpkary` TO 'Administrasi'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `telpkary` TO 'Customer'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `telpkary` TO 'Direktur'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `telpkary` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `telpkary` 199 TO 'SystemAdmin'@'localhost'; Tabel Telppemasok GRANT SELECT, SHOW VIEW ON TABLE `telppemasok` TO 'Administrasi'@'localhost'; GRANT SELECT, SHOW VIEW ON TABLE `telppemasok` TO 'Direktur'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `telppemasok` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `telppemasok` TO 'SystemAdmin'@'localhost'; Tabel Faxpemasok GRANT SELECT, SHOW VIEW ON TABLE `faxpemasok` TO 'Administrasi'@'localhost'; 200 GRANT SELECT, SHOW VIEW ON TABLE `faxpemasok` TO 'Direktur'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ON TABLE `faxpemasok` TO 'Supplier'@'localhost'; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, GRANT OPTION, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON TABLE `faxpemasok` TO 'SystemAdmin'@'localhost'; 201 3.2.5 3.2.5.1 Perancangan Program Aplikasi S truktur Menu Gambar 3.19 S truktur Menu 202 3.2.5.2 S TD Gambar 3.20 S TD Menu Utama Gambar 3.21 S TD Registrasi Pelanggan 203 Gambar 3.22 S TD Produk Gambar 3.23 S TD Halaman About us 204 Halaman Home Login Invalid T ampilkan pesan kesalahan dan kembali home Masukkan Username dan Password Klik Button Login Lakukan Validasi Valid asi Usern ame dan Passw ord Login Berhasil Tam pilkan Halaman sesu ai deng an sta tus Halaman Hom e Pelang gan Halaman Home Pemasok Halaman H ome Administrasi H alam an Home Direktur Gambar 3.24 S TD Login Gambar 3.25 S TD Menu Utama (Pelanggan) 205 Gambar 3.26 S TD Update Profile (Pelanggan) 206 Gambar 3.27 S TD Produk (Pelanggan) 207 Gambar 3.28 S TD Pemesanan (Pelanggan) 208 Gambar 3.29 S TD Penawaran Harga (Pelanggan) 209 Gambar 3.30 S TD S tatus Barang (Pelanggan) Gambar 3.31 S TD Menu Utama (Administrasi) 210 Gambar 3.32 S TD Pemesanan (Administrasi) 211 Gambar 3.33 S TD Penjualan (Administrasi) 212 Gambar 3.34 S TD Pembelian (Administrasi) 213 Hala man Home Hala man Home Admin istra si Kli k “Sal e” Tampi lkan Ha laman Pe njua lan Hal aman Penju alan Kli k “Order” Tampil ka n Hala man Pe sanan Hala man Pesanan Kl ik “Pu rch ased” Ta mpilka n H alama n Pembe lian Hal aman Pembel ian Kli k “Na ma Me sin” Ta mpilka n Hala man Produ k Kli k “Ho me “ Ta mp ilka n Hala ma n H ome Ad mi nistrasi Klik “Logo ut” Tamp ilkan H alaman Ho me Ha laman Prod uk (Mesi n) Kli k “Produ ct” Tampil kan Hal aman Produk Mesin Ha laman Prod uk Kl ik “Ba ck” Tampil ka n Hal aman De tai l Prod uk Klik “Detail ” Tampil kan Hala man Detail Prod uk Ha laman De tai l Produk Kl ik “Ed it” Tampi lkan Ha laman Edit Produk Klik “Ba ck” Kembali Ke Hal aman Detai l Pro duk Hala ma n Ed it Produk Klik “Back” Kemb ali ke Ha laman Pro duk Hal aman Insert Pro duk Kl ik Tomb ol “Add” Lakuka n Valid asi Va lida si Se mua Fie ld Data In valid Ta mp ilkan Pesan Kesala han dan Kembal i ke Hala man Edit Produ k Klik tomb ol “Upd ate” L akukan Val idasi Val ida si se mu a fi eld Kembal i Ke Ha laman De ta il Barang Klik “In sert Ne w Prod uct” Ta mp ilkan H alama n Inse rt Produ k D ata Inval id Tampi lkan Pe san Ke sa laha n dan Kembal i Ke Ha laman Insert Pro duk D ata Vali d Insert D ata To Tabl e Ba rang Kemb ali Ke Hala ma n Produ k Data Val id U pdate Sele cted Data on ta ble Barang Gambar 3.35 S TD Produk (Administrasi) 214 Gambar 3.36 S TD Menu Utama (Direktur) Gambar 3.37 S TD Karyawan (Direktur) 215 Gambar 3.38 S TD Produk (Direktur) Gambar 3.39 S TD Data Pemesanan (Direktur) 216 Gambar 3.40 S TD Data Pembelian (Direktur) Gambar 3.41 S TD Data Penjualan (Direktur) 217 Gambar 3.42 S TD Menu Utama (Pemasok) 218 Gambar 3.43 S TD Produk (Pemasok) 219 Gambar 3.44 S TD Cek Pemesanan (Pemasok) 220 Gambar 3.45 S TD Pembelian (Pemasok) 221 3.2.5.3 Perancangan Layar Gambar 3.46 Rancangan Layar Home (Sebelum Login) Gambar 3.47 Rancangan Layar Registrasi 222 Gambar 3.48 Rancangan Layar Produk Mesin (Sebelum Login) 223 Gambar 3.49 Rancangan Layar Produk (Sebelum Login) Gambar 3.50 Rancangan Layar Detail Produk (Sebelum Login) 224 Gambar 3.51 Rancangan Layar About Us Gambar 3.52 Rancangan Layar Home (Pelanggan) 225 Gambar 3.53 Rancangan Layar Produk Mesin (Pelanggan) 226 Gambar 3.54 Rancangan Layar Produk (Pelanggan) Gambar 3.55 Rancangan Layar Detail Produk (Pelanggan) 227 Gambar 3.56 Rancangan Layar Order (Pelanggan) Gambar 3.57 Rancangan Layar Add Product (Pelanggan) 228 Gambar 3.58 Rancangan Layar Order S tep 1 (Pelanggan) 229 Gambar 3.59 Rancangan Layar Order S tep 2 (Pelanggan) Gambar 3.60 Rancangan Layar Order S tep 3 (Pelanggan) 230 Gambar 3.61 Rancangan Layar Edit Product Order (Pelanggan) Gambar 3.62 Rancangan Layar Update Profile (Pelanggan) 231 Gambar 3.63 Rancangan Layar Update Telepon (Pelanggan) Gambar 3.64 Rancangan Layar Update Fax (Pelanggan) 232 Gambar 3.65 Rancangan Layar Quotation List (Pelanggan) Gambar 3.66 Rancangan Layar Order Detail (Pelanggan) 233 Gambar 3.67 Rancangan Layar Order S tatus (Pelanggan) Gambar 3.68 Rancangan Layar In voice (Pelanggan) 234 Gambar 3.69 Rancangan Layar S hipping Detail (Pelanggan) Gambar 3.70 Rancangan Layar Home (Direktur) 235 Gambar 3.71 Rancangan Layar S taff (Direktur) Gambar 3.72 Rancangan Layar Detail S taff (Direktur) 236 Gambar 3.73 Rancangan Layar Detail Telepon (Direktur) Gambar 3.74 Rancangan Layar Order Data (Direktur) 237 Gambar 3.75 Rancangan Layar Detail Order (Direktur) Gambar 3.76 Rancangan Layar Purchased Data (Direktur) 238 Gambar 3.77 Rancangan Layar Detail Purchased (Direktur) Gambar 3.78 Rancangan Layar S ale Data (Direktur) 239 Gambar 3.79 Rancangan Layar Detail S ale (Direktur) 240 Gambar 3.80 Rancangan Layar Produk Mesin (Direktur) 241 Gambar 3.81 Rancangan Layar Produk (Direktur) Gambar 3.82 Rancangan Layar Detail Produk (Direktur) 242 Gambar 3.83 Rancangan Layar Home (Pemasok) Gambar 3.84 Rancangan Layar Produk Mesin (Pemasok) 243 Gambar 3.85 Rancangan Layar Produk (Pemasok) Gambar 3.86 Rancangan Layar Detail Produk (Pemasok) 244 Gambar 3.87 Rancangan Layar Edit Detail Produk (Pemasok) Gambar 3.88 Rancangan Layar Insert Produk (Pemasok) 245 Gambar 3.89 Rancangan Layar Cek Order (Pemasok) Gambar 3.90 Rancangan Layar Detail Cek Order (Pemasok) 246 Gambar 3.91 Rancangan Layar Insert Harga (Pemasok) Gambar 3.92 Rancangan Layar Order S tatus (Pemasok) 247 Gambar 3.93 Rancangan Layar Detail Order (Pemasok) Gambar 3.94 Rancangan Layar Home (Administrasi) 248 Gambar 3.95 Rancangan Layar Order (Administrasi) Gambar 3.96 Rancangan Layar Detail Order (Administrasi) 249 Gambar 3.97 Rancangan Layar Insert Harga (Administrasi) Gambar 3.98 Rancangan Layar Penjualan (Administrasi) 250 Gambar 3.99 Rancangan Layar Detail Penjualan (Administrasi) Gambar 3.100 Rancangan Layar Detail Pengiriman (Administrasi) 251 Gambar 3.101 Rancangan Layar Pembelian (Administrasi) Gambar 3.102 Rancangan Layar Detail Pembelian (Administrasi) 252 Gambar 3.103 Rancangan Layar Detail Penerimaan (Administrasi) 253 Gambar 3.104 Rancangan Layar Produk Mesin (Administrasi) 254 Gambar 3.105 Rancangan Layar Produk (Administrasi) Gambar 3.106 Rancangan Layar Detail Produk (Administrasi) 255 Gambar 3.107 Rancangan Layar Edit Produk (Administrasi) Gambar 3.108 Rancangan Layar Insert Produk (Administrasi) 256 3.2.5.4 Perancangan Laporan Laporan Pemesanan Gambar 3.109 Rancangan Layar Laporan Pemesanan 257 Laporan Pembelian Gambar 3.110 Rancangan Layar Laporan Pembelian 258 Laporan Penjualan Gambar 3.111 Rancangan Layar Laporan Penjualan 259 Laporan Penerimaan Barang Gambar 3.112 Rancangan Layar Laporan Penerimaan Barang 260 Laporan Pengiriman Barang Gambar 3.113 Rancangan Layar Laporan Pengiriman Barang 261 3.2.5.5 S pesifikasi Proses Berikut ini adalah spesifikasi proses yang telah dirancang pada aplikasi basis data PT Bobst Group Indonesia. Modul Home Utama ( Sebelum Login) M ulai Tampilkan Halaman Home Utama Lakukan Jika Link Registration ditekan Tampilkan Halaman Registrasi Akhir jika Jika Link Product ditekan Tampilkan Halaman Produk M esin Akhir Jika Jika Link About Us ditekan Tampilkan Halaman About Us Akhir Jika Jika Tombol login ditekan maka Jika username kosong atau password kosong Tampilkan Pesan Kesalahan Akhir jika Selain itu Buka koneksi ke database bsa Cek username dan password 262 Jika username dan password cocok maka Tampilkan Halaman Home Validasi user untuk mengatur hak akses Selain itu Tampilkan Pesan Kesalahan Akhir jika Akhir Jika Akhir Lakukan Selesai Modul Registrasi (Sebelum Login) M ulai Tampilkan Halaman Registrasi Lakukan Jika Link Home ditekan Tampilkan Halaman Home Utama Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin Akhir Jika Jika Link About Us ditekan Tampilkan Halaman About Us Akhir Jika Jika Tombol Reset ditekan 263 Hapus semua isi dari textfield yang ada Akhir Jika Jika tombol submit ditekan maka Jika username kosong / password kosong / confirmpassword kosong / name kosong / company kosong / occupation kosong / address kosong / zipcode kosong / telephonenumber kosong / faxnumber kosong / email kosong Berikan simbol * pada field yang kosong Tampilkan Pesan Kesalahan Akhir Jika Jika Email tidak sesuai ketentuan Tampilkan Pesan Kesalahan Akhir Jika Jika name mengandung angka Tampilkan Pesan Kesalahan Akhir Jika Jika Zip Code bukan Angka Tampilkan Pesan Kesalahan Akhir Jika Jika Telephone Number bukan Angka Tampilkan Pesan Kesalahan Akhir Jika Jika Fax Number bukan Angka 264 Tampilkan Pesan Kesalahan Akhir Jika Jika Confirm Password tidak sama dengan Password Tampilkan Pesan Kesalahan Akhir Jika Selain itu Buka koneksi ke database bsa Jika Username sudah ada di database bsa Tampilkan Pesan Kesalahan Selain itu Gunakan perintah store procedure yang ada di SQL, yaitu : Procedure “InsertPelanggan” Kembali Ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Produk Mesin (Sebelum Login) M ulai Tampilkan Halaman Produk M esin Buka Koneksi ke Database BSA Tampilkan Data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * 265 Dari M esin Lakukan Jika Data kosong Tampilkan Pesan “Data not availabe” Akhir Jika Jika Link Home ditekan Tampilkan Halaman Home Utama Akhir Jika Jika Link Registration ditekan Tampilkan Halaman Registrasi Akhir Jika Jika Link About Us ditekan Tampilkan Halaman About Us Akhir Jika Jika Nama M esin ditekan Tampilkan Halaman Produk Akhir Jika Akhir Lakukan Selesai Modul Produk (S ebelum Login) M ulai Tampilkan Halaman Produk Buka koneksi ke database bsa 266 Tampilkan Data Produk dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana Nama_M esin = “Nama Link M esin yang ditekan” Lakukan Jika Link Home ditekan Tampilkan Halaman Home Utama Akhir Jika Jika Link Registration ditekan Tampilkan Halaman Registrasi Akhir Jika Jika Link Product/Back ditekan Tampilkan Halaman Produk M esin Akhir Jika Jika Link About Us ditekan Tampilkan Halaman About Us Akhir Jika Jika tombol Go ditekan maka Jika search kosong Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa Jika data yang dicari tidak ada Tampilkan Pesan Kesalahan Selain itu 267 Tampilkan data yang dicari dengan menggunakan view SQL, yaitu View “viewbarang” Dimana (Nama_Barang “”%textfield.text%”” “”%textfield.text%”” or or = Kd_Barang = deskripsi = “”%textfield.text%””) and (nama_mesin = “nama link yang ditekan” or nama_mesin = “nama di listmenu) Akhir Jika Akhir Jika Jika listmenu ditekan maka Tampilkan Data Produk Dimana nama_mesin = mesin yang ada di list menu Akhir jika Jika Link Detail ditekan Tampilkan Halaman Detail Produk Akhir Jika Jika Link pada page ditekan Tampilkan data barang pada halaman tersebut Akhir Jika Akhir Lakukan Selesai 268 Modul Detail Produk (sebelum login) M ulai Tampilkan Halaman Detail Produk Buka koneksi ke database bsa Tampilkan Data Produk dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana kd_barang = “kd_barang link detail yang ditekan” Lakukan Jika Link Back ditekan Kembali Ke Halaman Produk Akhir Jika Akhir Lakukan Selesai Modul About Us (Sebelum Login) M ulai Tampilkan Halaman About Us Lakukan Jika Link Home ditekan Tampilkan Halaman Home Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin Akhir Jika 269 Jika Link Registration ditekan Tampilkan Halaman Registrasi Akhir Jika Akhir Lakukan Selesai Modul Home (Pelanggan) M ulai Tampilkan Halaman Home Pelanggan Buka Koneksi ke database bsa Lakukan Jika Link Product ditekan Tampilkan Halaman Produk M esin (Pelanggan) Akhir Jika Jika Link Order ditekan Tampilkan Halaman Order Akhir Jika Jika Link Quotation ditekan Tampilkan Halaman Quatation List Akhir Jika Jika Link Invoice ditekan Tampilkan Halaman Order Status Akhir Jika Jika Link Update Profile ditekan 270 Tampilkan Halaman Update Profile Akhir Jika Jika Link Logout ditekan Hapus session dan cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Produk Mesin (Pelanggan) M ulai Tampilkan Halaman Produk M esin (Pelanggan) Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * Dari barang Lakukan Jika Data Kosong Tampilkan Pesan “Data Not Available” Akhir Jika Jika Link Home ditekan Tampilkan Halaman Home (Pelanggan) Akhir Jika 271 Jika Link Order ditekan Tampilkan Halaman Order Akhir Jika Jika Link Quotation ditekan Tampilkan Halaman Quotation List Akhir Jika Jika Link Invoice ditekan Tampilkan Halaman Order Status Akhir Jika Jika Link Update Profile ditekan Tampilkan Halaman Update Profile Akhir Jika Jika Nama M esin ditekan Tampilkan Halaman Produk (Pelanggan) Akhir Jika Jika Link Logout ditekan Hapus session dan cookies Kembali ke halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Produk (Pelanggan) M ulai 272 Tampilkan Halaman Produk (Pelanggan) Buka Koneksi ke database bsa Tampilkan Data Produk dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana Nama_M esin = “Nama Link M esin yang ditekan” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Pelanggan) Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin (Pelanggan) Akhir Jika Jika Link Order ditekan Tampilkan Halaman Order Akhir Jika Jika Link Quotation ditekan Tampilkan Halaman Quotation List Akhir Jika Jika Link Invoice ditekan Tampilkan Halaman Order Status Akhir Jika Jika Link Update Profile ditekan Tampilkan Halaman Update Profile Akhir Jika 273 Jika tombol Go ditekan maka Jika search kosong Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa Jika data yang dicari tidak ada Tampilkan Pesan Kesalahan Selain itu Tampilkan Data yang dicari dengan view “viewbarang” Dimana (Nama_Barang “”%textfield.text%”” “”%textfield.text%”” or or = Kd_Barang = deskripsi = “”%textfield.text%””) and (nama_mesin = “nama link yang ditekan” or nama_mesin = “nama di listmenu) Akhir Jika Akhir Jika Akhir Jika Jika listmenu ditekan maka Tampilkan Data Produk Dimana nama_mesin = “nama yang ada di listmenu” Akhir jika Jika Nomor Page ditekan 274 Tampilkan Halaman sesuai nomor halaman yang ditekan Akhir Jika Jika Link Detail ditekan Tampilkan Halaman Detail Produk Akhir Jika Jika Link Logout ditekan Hapus session dan cookies Kembali ke halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Detail Produk (Pelanggan) M ulai Tampilkan Halaman Detail Produk (Pelanggan) Buka koneksi ke database bsa Tampilkan Data Produk dengan menggunakan view pada SQL, yaitu View “viewbarang: Dimana kd_barang = “kd_barang link detail yang ditekan” Lakukan Jika Link back ditekan Kembali Ke Halaman Produk (Pelanggan) Akhir Jika Akhir Lakukan 275 Selesai Modul Order (Pelanggan) M ulai Tampilkan Halaman Order Buka Koneksi ke database bsa Tampilkan Data Halaman Order dengan menggunakan view pada SQL, yaitu View “viewpemesanan” Dimana nama_pelanggan = “nama_pelanggan yang login” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Pelanggan) Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin (Pelanggan) Akhir Jika Jika Link Quotation ditekan Tampilkan Halaman Quotation List Akhir Jika Jika Link Invoice ditekan Tampilkan Halaman Order Status Akhir Jika Jika Link Update Profile ditekan 276 Tampilkan Halaman Update Profile Akhir Jika Jika tombol “add order” ditekan maka Insert data dengan menggunakan Procedure pada SQL, yaitu Procedure “insertpemesanan” Refresh Halamann Order Akhir jika Jika Link detail ditekan Tampilkan Halaman Add Product Akhir jika Jika Link Logout ditekan Hapus session dan cookies Tampilkan Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Add Product (Pelanggan) M ulai Tampilkan Halaman Add Product Buka koneksi ke database bsa Tampilkan Data Halaman Add Product dengan menggunakan view pada SQL, yaitu 277 View “viewpemesanan” Dimana kd_pemesanan = “kd_pemesanan yang ditekan” Lakukan Jika link Home ditekan Tampilkan Halaman Home (Pelanggan) Akhir jika Jika link Product ditekan Tampilkan Halaman Produk M esin (Pelanggan) Akhir Jika Jika Link Order ditekan Tampilkan Halaman Order Akhir Jika Jika Link Quotation ditekan Tampilkan Halaman Quotation List Akhir Jika Jika Link Invoice ditekan Tampilkan Halaman Invoice Akhir Jika Cek Jika tgl_pemesanan null maka Tampilkan link edit, link delete, tombol “add product” dan tombol “ok” Jika data pemesanan masih kosong Tampilkan Pesan “Please add your Cart” 278 Akhir jika Jika tombol “add product” ditekan Tampilkan halaman order step 1 Akhir Jika Jika link edit ditekan Tampilkan halaman Edit Product Order Akhir Jika Jika Link Delete ditekan Hapus data dengan menggunakan procedure pada SQL, yaitu Procedure “hapusdetailpemesanan” Dimana kd_barang = kd_barang link delete yang ditekan Akhir Jika Jika tombol “Ok” ditekan Update tgl_pemesanan dengan menggunakan procedure yang ada di SQL, yaitu Procedure "updatetglpemesanan” Kembali Ke Halaman Order Akhir Jika Selain itu Hilangkan link edit, link delete, tombol “add product” dan tombol “ok” 279 Akhir cek Akhir Lakukan Selesai Modul Order step 1 (Pelanggan) M ulai Tampilkan Halaman Order Step 1 Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * Dari M esin Lakukan Jika Data Kosong Tampilkan Pesan “Data not available” Akhir Jika Jika Nama M esin ditekan Tampilkan halaman order step 2 Akhir Jika Jika Link Back ditekan Kembali ke Halaman Add Product Akhir Jika Akhir Lakukan Selesai 280 Modul Order step 2 (Pelanggan) M ulai Tampilkan Halaman order step 2 Buka koneksi ke database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewbarang” Where nama_mesin = “nama link mesin yang ditekan” Lakukan Jika Link Back ditekan Tampilkan Halaman Order Step 1 Akhir Jika Jika link detail ditekan Tampilkan Halaman Order Step 3 Akhir Jika Jika link nomor page ditekan Tampilkan Halaman page, nomor yang ditekan Akhir jika Jika tombol go ditekan maka Jika textfield search kosong Fungsi mencari tidak dilakukan Selain itu Cari Data dari database bsa Jika Data yang dicari tidak ada 281 Tampilkan Pesan Kesalahan Selain itu Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana (Nama_Barang “”%textfield.text%”” “”%textfield.text%”” or or = Kd_Barang = deskripsi = “”%textfield.text%””) and (nama_mesin = “nama link yang ditekan” or nama_mesin = “nama di listmenu”) Akhir Jika Akhir Jika Jika listmenu ditekan Tampilkan data Produk Dimana nama_mesin = nama_mesin yang ada di list menu Akhir jika Akhir Lakukan Selesai Modul Order S tep 3 (Pelanggan) M ulai Tampilkan Halaman Order Step 3 Buka Koneksi ke database bsa 282 Tampilkan data dengan mengunakan view bahasa SQL, yaitu View “viewbarang” Dimana kd_barang = kd_barang dari link yang ditekan Lakukan Jika link back ditekan Kembali ke Halaman Order Step 2 Akhir Jika Jika tombol “add” ditekan maka Jika qty kosong Tampilkan Pesan Kesalahan Akhir jika Jika qty bukan angka Tampilkan Pesan Kesalahan Akhir Jika Selain itu Insert data dengan menggunakan procedure pada SQL, yaitu Procedure “insertdetailpemesanan” Kembali ke Halaman Add Product Akhir jika Akhir Lakukan Selesai Modul Edit Product Order (Pelanggan) 283 M ulai Tampilkan Halaman Edit Product Order Buka Koneksi ke database bsa Gunakan view yang terdapat dalam SQL, yaitu View “detailpemesanan” Lakukan Jika link back ditekan Tampilkan Halaman Add Product Akhir Jika Jika tombol edit ditekan maka Jika qty kosong Tampilkan Pesan Kesalahan Akhir jika Jika qty bukan angka Tampilkan Pesan “Qty must number” Akhir jika Selain itu Update qty menggunakan procedure yang ada di SQL, yaitu Procedure “updateqtypemesanan” Kembali ke halaman Add Product Akhir Jika Akhir lakukan Selesai 284 Modul Update Profile (Pelanggan) M ulai Tampilkan Halaman Update Profile Buka koneksi ke database bsa Tampilkan data menggunakan bahasa SQL, yaitu “Select” Select * Dari Pelanggan Dimana nama_pelanggan = “nama pelanggan yang login” Lakukan Jika link Home ditekan Tampilkan Halaman Home (Pelanggan) Akhir jika Jika link Product ditekan Tampilkan Halaman Produk M esin (Pelanggan) Akhir Jika Jika Link Order ditekan Tampilkan Halaman Order Akhir Jika Jika Link Quotation ditekan Tampilkan Halaman Quotation List Akhir Jika Jika Link Invoice ditekan Tampilkan Halaman Order Status 285 Akhir Jika Jika link detail pada telephone number ditekan Tampilkan Halaman Update Telephone Number Akhir Jika Jika link detail pada pada fax number ditekan Tampilkan Halaman Update fax number Akhir Jika Jika tombol update ditekan maka Jika password kosong / confirmpassword kosong / occupation kosong / address kosong / zipcode kosong / email kosong Berikan simbol * pada field yang kosong Tampilkan Pesan Kesalahan Akhir Jika Jika Email tidak sesuai ketentuan Tampilkan Pesan Kesalahan Akhir Jika Jika Zip Code bukan Angka Tampilkan Pesan Kesalahan Akhir Jika Jika Confirm Password tidak sama dengan Password Tampilkan Pesan Kesalahan Akhir Jika Selain itu 286 Update data dengan menggunakan Procedure bahasa SQL, yaitu Procedure “updatepelanggan” Kembali ke Halaman Home Pelanggan Akhir jika Jika link logout ditekan Hapus session dan cookies Kembali ke Halaman Home Utama Akhir jika Akhir lakukan Selesai Modul Update Telephone (Pelanggan) M ulai Tampilkan Halaman Update Telephone Buka Koneksi ke database bsa Tampilkan data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * Dari telppelg Dimana Kd_Pelanggan = “Kd_Pelanggan yang login” Lakukan Jika Link Back ditekan Kembali ke halaman update profile Akhir jika 287 Jika link delete ditekan Hapus data dengan menggunakan procedure pada SQL, yaitu Procedure “hapustelppelg” Akhir jika Jika tombol add ditekan maka Jika insert new number kosong Tampilkan Pesan Kesalahan Akhir jika Jika insert new number bukan angka Tampilkan Pesan Kesalahan Akhir jika Selain itu Insert data dengan menggunakan procedure pada SQL, yaitu Procedure “inserttelppelg” Refresh halaman update telepon Akhir jika Akhir Lakukan Selesai Modul Update Fax (Pelanggan) M ulai Tampilkan Halaman Update Fax 288 Buka Koneksi ke database bsa Tampilkan data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * From faxpelg Dimana Kd_Pelanggan = “Kd_Pelanggan yang login” Lakukan Jika Link Back ditekan Kembali ke halaman update profile Akhir jika Jika link delete ditekan Hapus data dengan menggunakan procedure yang ada di SQL, yaitu Procedure “hapusfaxpelg” Akhir jika Jika tombol add ditekan maka Jika insert new number kosong Tampilkan Pesan Kesalahan Akhir jika Jika insert new number bukan angka Tampilkan Pesan Kesalahan Akhir jika Selain itu Insert data to data dengan menggunakan procedure pada SQL, yaitu 289 Procedure “insertfaxpelg” Refresh halaman update fax Akhir jika Akhir Lakukan Selesai Modul Quotation List (Pelanggan) M ulai Tampilkan Halaman Quotation List Buka Koneksi ke database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “pemesanan” Dimana kd_pelanggan = (”kd_pelanggan yang login”) Lakukan Jika kd_pemesanan masih kosong Tampilkan pesan Akhir Jika Jika link Home ditekan Tampilkan Halaman Home (Pelanggan) Akhir Jika Jika link Product ditekan Tampilkan Halaman Produk M esin (Pelanggan) Akhir Jika Jika Link Order ditekan 290 Tampilkan Halaman Order Akhir Jika Jika Link Invoice ditekan Tampilkan Halaman Order Status Akhir Jika Jika Link Update Profile ditekan Tampilkan Halaman Update Profile Akhir Jika Jika Link Detail ditekan Tampilkan Halaman Konfirmasi Order Akhir Jika Jika Link Logout ditekan Hapus session dan cookies Kembali ke Halaman Utama Akhir Jika Akhir Lakukan Selesai Modul Konfirmasi Order (Pelanggan) M ulai Tampilkan Halaman Konfirmasi Order Buka Koneksi ke database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewpemesanan” 291 Dimana kd_pemesanan = link detail kd_pemesanan yang ditekan Lakukan Jika Link Back ditekan Kembali ke Halaman Penawaran Harga Akhir Jika Jika tombol approve ditekan maka Jika harga masih ada yang kosong Tampilkan pesan Kesalahan Selain itu Insert data dengan menggunakan procedure pada SQL, yaitu Procedure “updatetglapp” dan Procedure “insertpenjualan” Kembali ke Halaman Quotation List Akhir Jika Akhir Jika Jika tombol disapprove ditekan Delete data dengan menggunakan procedure pada SQL, yaitu Procedure “hapuspemesanan” Kembali ke Halaman Quotation List Akhir Jika Akhir Lakukan Selesai 292 Modul Order S tatus (Pelanggan) M ulai Tampilkan Halaman Order Status Buka koneksi ke database bsa Tampilkan Data dengan menggunakan View pada SQL, yaitu View “viewpenjualan” dan View “viewdetailjual” Dimana Kd_pelanggan = Kd_Pelanggan yang login Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Pelanggan) Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin (Pelanggan) Akhir Jika Jika Link Order ditekan Tampilkan Halaman Order Akhir Jika Jika Link Quotation ditekan Tampilkan Halaman Quotation List Akhir Jika Jika Link Update Profile ditekan Tampilkan Halaman Update Profile Akhir Jika 293 Jika Link Detail pada invoice ditekan Tampilkan Halaman Invoice Akhir Jika Jika Link Detail pada shipping ditekan Tampilkan Halaman Shipping Akhir Jika Jika Link Logout ditekan Hapus session dan cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Invoice (Pelanggan) M ulai Tampilkan Halaman Invoice Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewjual” dan view “viewdetailjual” Dimana Kd_Jual = Kd_Jual, Link Detail Invoice yang ditekan Lakukan Jika Link View Report Ditekan Buat Laporan Penjualan Akhir Jika 294 Jika Link Back Ditekan Kembali Ke Halaman Order Status Akhir Jika Akhir Lakukan Selesai Modul Shipping (Pelanggan) M ulai Tampilkan Halaman Shipping Buka Koneksi ke database bsa Tampilkan Data Dengan M enggunakan View pada SQL, yaitu View “viewdetailjual” dan view “viewpengiriman_barang” Dimana kd_jual = link detail kd_jual yang ditekan Lakukan Cek Jika tgl_terimapelanggan null maka Tampilkan tombol “confirm” Jika Tombol Confirm ditekan Update data dengan menggunakan procedure pada SQL, yaitu Procedure “updatetglterimapelanggan” Akhir Jika Jika Link Back Ditekan Kembali ke Halaman Order Status 295 Akhir Jika Selain itu Tampilkan Link “view report” Jika Link Report ditekan Buat Laporan Pengiriman Akhir Jika Jika Link Back Ditekan Kembali Ke Halaman Order Status Akhir Jika Akhir Cek Akhir Lakukan Selesai Modul Home (Direktur) M ulai Tampilkan Halaman Home (Direktur) Buka koneksi ke database bsa Lakukan Jika Link Staff ditekan Tampilkan Halaman Staff Akhir Jika Jika Link Order Data ditekan Tampilkan Halaman Data Pemesanan Akhir Jika 296 Jika Link Sale Data ditekan Tampilkan Halaman Data Penjualan Akhir Jika Jika Link Purchased Data ditekan Tampilkan Halaman Data Pembelian Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin (Direktur) Akhir Jika Jika Link Logout ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul S taff (Direktur) M ulai Tampilkan Halaman Staff Buka koneksi ke database bsa Tampilkan data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * Dari Karyawan 297 Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Direktur) Akhir Jika Jika Link Order Data ditekan Tampilkan Halaman Data Pemesanan Akhir Jika Jika Link Sale Data ditekan Tampilkan Halaman Data Penjualan Akhir Jika Jika Link Purchased Data ditekan Tampilkan Halaman Data Pembelian Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin (Direktur) Akhir Jika Jika tombol Go ditekan maka Jika textfield pada search kosong Fungsi mencari tidak dilaksanakan Selain itu Cari data di database bsa Jika data tidak ditemukan Tampilkan pesan Kesalahan Selain itu 298 Tampilkan data staff Dimana (Nama_Karyawan “”%textfield.text%”” or “”%textfield.text%””) Akhir jika Akhir Jika Akhir Jika Jika link detail ditekan Tampilkan Halaman Detail Staff Akhir Jika Jika Link Logout ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Detail Staff (Direktur) M ulai Tampilkan Halaman Detail Staff Buka koneksi ke database bsa Tampilkan data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * Jabatan = = 299 Dari Karyawan Dimana kd_karyawan = link kd_karyawan yang ditekan Lakukan Jika Link Back Ditekan Tampilkan Halaman Staff Akhir Jika Jika Link Detail Ditekan Tampilkan Halaman Detail Telepon Staff Akhir Jika Akhir Lakukan Selesai Modul Detail Telepon S taff (Direktur) M ulai Tampilkan Halaman Detail Telepon Staff Buka koneksi ke database bsa Tampilkan data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * Dari telpkary Dimana kd_karyawan = detail telepon kd_karyawan yang ditekan Lakukan Jika data kosong Tampilkan Pesan 300 Akhir Jika Jika link Back ditekan Tampilkan Ke halaman detail staff Akhir Jika Akhir Lakukan Selesai Modul Data Pemesanan (Direktur) M ulai Tampilkan Halaman Data Pemesanan Buka koneksi ke database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewpemesanan” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Direktur) Akhir Jika Jika Link Staff ditekan Tampilkan Halaman Staff Akhir Jika Jika Link Sale Data ditekan Tampilkan Halaman Data Penjualan Akhir Jika Jika Link Purchased Data ditekan 301 Tampilkan Halaman Data Pembelian Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin (Direktur) Akhir Jika Jika tombol Go ditekan maka Jika textfield pada search kosong Fungsi mencari tidak dilaksanakan Selain itu Cari data dari database bsa Jika Data tidak ditemukan Tampilkan Pesan Kesalahan Selain itu Tampilkan Data Pemesanan Dimana (Kd_Pemesanan = “”%textfield.text%”” or Nama_Pelanggan = “”%textfield.text%”” or Tgl_Pemesanan = “”%textfield.text%””) Akhir jika Akhir Jika Akhir Jika Jika link Detail ditekan Tampilkan Halaman Detail Data Pemesanan Akhir Jika 302 Jika Link Page Ditekan Tampilkan Halaman Sesuai Nomor Page Akhir Jika Jika Link Logout ditekan Hapus Session dan Cookies Kembali ke Halaman Utama Akhir Jika Akhir Lakukan Selesai Modul Detail Data Pemesanan (Direktur) M ulai Tampilkan Halaman Detail Data Pemesanan Buka koneksi ke database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewdetailpemesanan” dan View “viewpemesanan” Dimana kd_pemesanan = kd_pemesanan link yang ditekan Lakukan Jika Link Back Ditekan Kembali ke Halaman Data Pemesanan Akhir Jika Jika Link view report ditekan Buat Laporan Pemesanan Akhir Jika 303 Akhir Lakukan Selesai Modul Data Pembelian (Direktur) M ulai Tampilkan Halaman Data Pembelian Buka Koneksi ke database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewpembelian” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Direktur) Akhir Jika Jika Link Staff ditekan Tampilkan Halaman Staff Akhir Jika Jika Link Sale Data ditekan Tampilkan Halaman Data Penjualan Akhir Jika Jika Link Order Data ditekan Tampilkan Halaman Data Pemesanan Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin (Direktur) 304 Akhir Jika Jika tombol Go ditekan maka Jika textfield pada search kosong Fungsi mencari tidak dilaksanakan Selain itu Cari data dari database bsa Jika data tidak ditemukan Tampilkan Pesan “Data Not M atch” Selain itu Tampilkan Data Pembelian Dimana (Kd_Beli = “”%textfield.text%”” or Nama_Pelanggan = “”%textfield.text%”” or Tgl_Beli = “”%textfield.text%””) Akhir Jika Akhir jika Jika Link Detail ditekan Tampilkan Halaman Detail Data Pembelian Akhir Jika Jika Link Page Ditekan Tampilkan Halaman Sesuai Nomor Page Akhir Jika 305 Jika Link Logout ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Detail Data Pembelian (Direktur) M ulai Tampilkan Halaman Detail Data Pembelian Buka Koneksi ke Database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewpembelian” dan View “viewdetailpembelian” Dimana kd_beli = kd_beli link yang ditekan Lakukan Jika Link Back Ditekan Kembali ke Halaman Data Pembelian Akhir Jika Jika Link view report ditekan Buat Laporan Pembelian Akhir Jika Akhir Lakukan Selesai 306 Modul Data Penjualan (Direktur) M ulai Tampilkan Halaman Data Penjualan Buka Koneksi ke database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewpenjualan” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Direktur) Akhir Jika Jika Link Staff ditekan Tampilkan Halaman Staff Akhir Jika Jika Link Purchased Data ditekan Tampilkan Halaman Data Pembelian Akhir Jika Jika Link Order Data ditekan Tampilkan Halaman Data Pemesanan Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin (Direktur) Akhir Jika Jika tombol Go ditekan maka Jika textfield pada search kosong 307 Fungsi mencari tidak dilaksanakan Selain itu Cari data dari database bsa Jika data tidak ditemukan Tampilkan Pesan Kesalahan Selain itu Tampilkan Data Penjualan Dimana (Kd_Jual = “”%textfield.text%”” or Nama_Pelanggan = “”%textfield.text%”” or Tgl_Jual = “”%textfield.text%””) Akhir Jika Akhir jika Jika Link Detail ditekan Tampilkan Halaman Detail Data Penjualan Akhir Jika Jika Link Logout ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai 308 Modul Detail Data Penjualan (Direktur) M ulai Tampilkan Halaman Detail Penjualan Buka Koneksi ke Database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewpenjualan” dan View “viewdetailpenjualan” Dimana kd_jual = kd_jual link yang ditekan Lakukan Jika Link Back Ditekan Kembali ke Halaman Data Penjualan Akhir Jika Jika Link view report ditekan Buat Laporan Penjualan Akhir Jika Akhir Lakukan Selesai Modul Produk Mesin (Direktur) M ulai Tampilkan Halaman Produk M esin (Direktur) Buka Koneksi ke Database bsa Tampilkan Data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * 309 Dari M esin Lakukan Jika Data kosong Tampilkan Pesan “Data not availabe” Akhir Jika Jika Link Home ditekan Tampilkan Halaman Home (Direktur) Akhir Jika Jika Link Staff ditekan Tampilkan Halaman Staff Akhir Jika Jika Link Purchased Data ditekan Tampilkan Halaman Data Pembelian Akhir Jika Jika Link Order Data ditekan Tampilkan Halaman Data Pemesanan Akhir Jika Jika Link Sale Data ditekan Tampilkan Halaman Data Penjualan Akhir Jika Jika Nama M esin ditekan Tampilkan Halaman Produk (Direktur) Akhir Jika Akhir Lakukan 310 Selesai Modul Produk (Direktur) M ulai Tampilkan Halaman Produk (Direktur) Buka koneksi ke database bsa Tampilkan data barang dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana Nama_M esin = “Nama Link M esin yang ditekan” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Direktur) Akhir Jika Jika Link Staff ditekan Tampilkan Halaman Staff Akhir Jika Jika Link Product/Back ditekan Tampilkan Halaman Produk M esin (Direktur) Akhir Jika Jika Link Order Data ditekan Tampilkan Halaman Data Pemesanan Akhir Jika Jika Link Sale Data ditekan Tampilkan Halaman Data Penjualan 311 Akhir Jika Jika Link Purchased Data ditekan Tampilkan Halaman Data Pembelian Akhir Jika Jika tombol Go ditekan maka Jika search kosong Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa Jika data yang dicari tidak ada Tampilkan Pesan “Data Not M atch” Selain itu Tampilkan data yang dicari dengan view “viewbarang” Dimana (Nama_Barang “”%textfield.text%”” “”%textfield.text%”” or or = Kd_Barang = deskripsi = “”%textfield.text%””) and (nama_mesin = “nama link yang ditekan” or nama_mesin = “nama di listmenu) Akhir Jika Akhir Jika Jika listmenu ditekan maka Tampilkan data product 312 Dimana nama_mesin = mesin yang ada di list menu Akhir jika Jika Link Detail ditekan Tampilkan Halaman Detail Produk Akhir Jika Jika Link pada page ditekan Tampilkan data barang pada halaman tersebut Akhir Jika Akhir Lakukan Selesai Modul Detail Produk (Direktur) M ulai Tampilkan Halaman Detail Produk (Direktur) Buka koneksi ke database bsa Tampilkan data barang dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana kd_barang = “kd_barang link detail yang ditekan” Lakukan Jika Link Back ditekan Kembali Ke Halaman Barang (Direktur) Akhir Jika Akhir Lakukan Selesai 313 Modul Home (Pemasok) M ulai Tampilkan Halaman Home (Pemasok) Buka Koneksi ke Database bsa Lakukan Jika Link Product Ditekan Tampilkan Halaman Produk M esin (Pemasok) Akhir Jika Jika Link Check Order Ditekan Tampilkan Halaman Cek Order Akhir Jika Jika Link Order Status Ditekan Tampilkan Halaman Order Status Akhir Jika Jika Link Logout Ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Produk Mesin (Pemasok) M ulai Tampilkan Halaman Produk M esin (Pemasok) 314 Buka Koneksi ke Database bsa Tampilkan Data dengan menggunakan bahasa SQL, yaitu “SELECT” SELECT * Dari M esin Lakukan Jika Data Kosong Tampilkan Pesan “Data Not Available” Akhir Jika Jika Link Home Ditekan Tampilkan Halaman Home (Pemasok) Akhir Jika Jika Link Check Order Ditekan Tampilkan Halaman Cek Order Akhir Jika Jika Link Order Status Ditekan Tampilkan Halaman Order Status Akhir Jika Jika Nama M esin Ditekan Tampilkan Halaman Produk (Pemasok) Akhir Jika Jika Link Logout Ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama 315 Akhir Jika Akhir Lakukan Selesai Modul Produk (Pemasok) M ulai Tampilkan Halaman Produk (Pemasok) Buka Koneksi ke Database bsa Tampilkan data barang dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana Nama_M esin = “Nama Link M esin yang ditekan” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Pemasok) Akhir Jika Jika Link Product / Back ditekan Tampilkan Halaman Produk M esin (Pemasok) Akhir Jika Jika Link Check Order ditekan Tampilkan Halaman Cek Order Akhir Jika Jika Link Order Status Ditekan Tampilkan Halaman Order Status Akhir Jika 316 Jika tombol Go ditekan maka Jika search kosong Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa Jika data yang dicari tidak ada Tampilkan Pesan Kesalahan Selain itu Tampilkan data yang dicari dengan menggunakan view SQL, yaitu View “viewbarang” Dimana (Nama_Barang “”%textfield.text%”” “”%textfield.text%”” or or = Kd_Barang = deskripsi = “”%textfield.text%””) and (nama_mesin = “nama link yang ditekan” or nama_mesin = “nama di listmenu) Akhir Jika Akhir Jika Jika listmenu ditekan maka Tampilkan data barang Dimana nama_mesin = mesin yang ada di list menu Akhir Jika Jika Link Detail ditekan 317 Tampilkan Halaman Detail Produk (Pemasok) Akhir Jika Jika Link pada page ditekan Tampilkan data barang pada halaman tersebut Akhir Jika Jika Link Insert New Product Ditekan Tampilkan Halaman Insert Produk Akhir Jika Jika Link Logout Ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Detail Produk (Pemasok) M ulai Tampilkan Halaman Detail Produk (Pemasok) Buka Koneksi ke Database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana Kd_Barang = Link Kd_Barang yang ditekan Lakukan Jika Link Back Ditekan 318 Tampilkan Halaman Produk (Pemasok) Akhir Jika Jika Link Edit Ditekan Tampilkan Halaman Edit Produk Akhir Jika Akhir Lakukan Selesai Modul Insert Produk (Pemasok) M ulai Tampilkan Halaman Insert Produk Buka Koneksi ke Database bsa Lakukan Jika Link Back ditekan Kembali ke Halaman Produk (Pemasok) Akhir Jika Jika tombol add ditekan maka Jika Product_Name Kosong / Product_Code Kosong / Deskripsi Kosong / Weight Kosong Berikan simbol * Pada Field yang kosong Tampilkan Pesan Kesalahan Akhir Jika Jika Weight bukan Angka Tampilkan Pesan Kesalahan 319 Akhir Jika Jika Gambar bukan tipe yang didukung Tampilkan Pesan Kesalahan Akhir Jika Jika Ukuran Gambar diatas 2M B Tampilkan Pesan Kesalahan Akhir Jika Selain Itu Insert Product Dengan M enggunakan Procedure pada SQL, yaitu Procedure “insertbarang” Kembali ke Halaman Produk M esin (Pemasok) Akhir Jika Akhir Lakukan Selesai Modul Edit Produk (Pemasok) M ulai Tampilkan Halaman Edit Produk Buka Koneksi ke Database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana kd_mesin = Detail kd_mesin yang ingin diedit Lakukan 320 Jika Tombol Update ditekan maka Jika Product_Name Kosong / Product_Code Kosong / Deskripsi Kosong / Weight Kosong Berikan simbol * Pada Field yang kosong Tampilkan Pesan Kesalahan Akhir Jika Jika Weight bukan Angka Tampilkan Pesan Kesalahan Akhir Jika Jika Gambar bukan tipe yang didukung Tampilkan Pesan Kesalahan Akhir Jika Jika Ukuran Gambar diatas 2M B Tampilkan Pesan Kesalahan Akhir Jika Selain itu Update data dengan menggunakan Procedure pada SQL, yaitu Procedure “updatebarang” Kembali ke Halaman Detail Barang (Pemasok) Akhir Jika Jika Link Back Ditekan Tampilkan Halaman Detail Barang (Pemasok) Akhir Jika 321 Akhir Lakukan Selesai Modul Cek Order (Pemasok) M ulai Tampilkan Halaman Cek Order Buka Koneksi ke Database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewpemesanan” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Pemasok) Akhir Jika Jika Link Product / Back ditekan Tampilkan Halaman Produk M esin (Pemasok) Akhir Jika Jika Link Order Status ditekan Tampilkan Halaman Order Status Akhir Jika Jika tombol Go ditekan maka Jika search kosong Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa 322 Jika data yang dicari tidak ada Tampilkan Pesan Kesalahan Selain itu Tampilkan data yang dicari dengan menggunakan view SQL, yaitu View “viewbarang” Dimana (Kd_Pemesanan = “”%textfield.text%”” or Nama_Pelanggan = “”%textfield.text%”” or Tgl_Pemesanan = “”%textfield.text%””) Akhir Jika Akhir Jika Jika Link Detail Ditekan Tampilkan Halaman Detail Order Akhir Jika Jika Link pada page ditekan Tampilkan data barang pada halaman tersebut Akhir Jika Jika Link Logout Ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai 323 Modul Detail Order (Pemasok) M ulai Tampilkan Halaman Detail Order Buka Koneksi ke Database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewdetailpemesanan” Dimana Kd_Pemesanan = Detail Kd_Pemesanan yang ditekan Lakukan Jika Link Back Ditekan Tampilkan Halaman Cek Order Akhir Jika Jika Link Insert Ditekan Tampilkan Halaman Insert Harga Akhir Jika Akhir Lakukan Selesai Modul Insert Harga (Pemasok) M ulai Tampilkan Halaman Harga Buka Koneksi ke database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewdetailpemesanan” 324 Dimana Kd_Pemesanan = Detail Kd_Pemesanan yang ditekan dan Kd_Barang = Detail Kd_Barang yang ditekan Lakukan Jika Link Back Ditekan Kembali ke Halaman Detail Order Akhir Jika Jika tombol Ok Ditekan maka Jika Price Kosong Tampilkan Pesan Kesalahan Akhir Jika Jika Price bukan Angka Tampilkan Pesan Kesalahan Akhir Jika Selain itu Update Harga dengan menggunakan Procedure pada SQL, yaitu Procedure “updatedetailhargabeli” Kembali ke Halaman Detail Cek Pemesanan Akhir Jika Akhir Lakukan Selesai Modul Order S tatus (Pemasok) M ulai 325 Tampilkan Halaman Order Status Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewpembelian” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Pemasok) Akhir Jika Jika Link Product ditekan Tampilkan Halaman Produk M esin (Pemasok) Akhir Jika Jika Link Check Order ditekan Tampilkan Halaman Cek Order Akhir Jika Jika tombol Go ditekan maka Jika search kosong Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa Jika data yang dicari tidak ada Tampilkan Pesan Kesalahan Selain itu Tampilkan data yang dicari menggunakan view SQL, yaitu dengan 326 View “viewbarang” Dimana (Kd_Beli = “”%textfield.text%”” or Nama_Pelanggan = “”%textfield.text%”” or Tgl_Beli = “”%textfield.text%””) Akhir Jika Akhir Jika Jika Link Detail Ditekan Tampilkan Halaman Order Status Detail Akhir Jika Jika Link pada page ditekan Tampilkan data pembelian pada halaman tersebut Akhir Jika Jika Link Logout Ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Order S tatus Detail (Pemasok) M ulai Tampilkan Halaman Order Status Detail Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu 327 View “viewdetailbeli” Lakukan Cek Jika tgl_kirim pada penerimaan_barang masih null maka Tampilkan Tombol Sent Jika Tombol Sent ditekan Insert data dengan menggunakan Procedure pada SQL, yaitu Procedure “insertpenerimaan” Akhir Jika Jika Link Back ditekan Tampilkan Halaman Status Pembelian Akhir Jika Selain itu Tampilkan Pesan “This Packets have been sent” Jika Link Back ditekan Tampilkan Halaman Pembelian Akhir Jika Akhir Jika Akhir Cek Akhir Lakukan 328 Selesai Modul Home (Administrasi) M ulai Tampilkan Halaman Home (Administrasi) Buka Koneksi ke database bsa Lakukan Jika Link Order Ditekan Tampilkan Halaman Pemesanan Akhir Jika Jika Link Sale Ditekan Tampilkan Halaman Penjualan Akhir Jika Jika Link Purchased Ditekan Tampilkan Halaman Pembelian Akhir Jika Jika Link Product Ditekan Tampilkan Halaman Produk M esin (Administrasi) Akhir Jika Jika Link Logout ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan 329 Selesai Modul Pemesanan (Administrasi) M ulai Tampilkan Halaman Pemesanan Buka Koneksi ke database bsa Tampilkan Dara dengan menggunakan view pada SQL, yaitu View “viewpemesanan” Dimana tgl_pemesanan not null Lakukan Jika Link Home Ditekan Tampilkan Halaman Home (Administrasi) Akhir Jika Jika Link Sale Ditekan Tampilkan Halaman Penjualan Akhir Jika Jika Link Purchased Ditekan Tampilkan Halaman Pembelian Akhir Jika Jika Link Product Ditekan Tampilkan Halaman Produk M esin (Administrasi) Akhir Jika Jika tombol Go ditekan maka Jika search kosong 330 Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa Jika data yang dicari tidak ada Tampilkan Pesan “Data Not M atch” Selain itu Tampilkan data yang dicari dengan menggunakan view SQL, yaitu View “viewpemesanan” Dimana (Kd_Pemesanan = “”%textfield.text%”” or Nama_Pelanggan = “”%textfield.text%”” or Tgl_Pemesanan = “”%textfield.text%””) Akhir Jika Akhir Jika Cek Jika di detail_pemesanan ada harga_jual yang masih null Tampilkan Pesan “Please Insert All Price” pada status di tabel pemesanan Akhir Jika Akhir Cek Jika Link Detail Ditekan Tampilkan Halaman Detail Pemesanan 331 Akhir Jika Jika Link pada page ditekan Tampilkan data pemesanan pada halaman tersebut Akhir Jika Jika Link Logout Ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Detail Pemesanan (Administrasi) M ulai Tampilkan Halaman Detail Pemesanan Buka Koneksi ke Database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewdetailpemesanan” Dimana Kd_Pemesanan = Detail Kd_Pemesanan yang ditekan Lakukan Jika Link Back Ditekan Tampilkan Halaman Pemesanan Akhir Jika Jika Purchase Price kosong Tampilkan Pesan “Purchased Price is empty” 332 Akhir Jika Jika Sale Price Kosong Tampilkan Pesan “Please Insert Price” Akhir Jika Jika Link Insert Ditekan Tampilkan Halaman Insert Harga (Administrasi) Akhir Jika Akhir Lakukan Selesai Modul Insert Price (Administrasi) M ulai Tampilkan Halaman Insert Price (Administrasi) Buka Koneksi ke database bsa Tampilkan data dengan menggunakan view pada SQL, yaitu View “viewdetailpemesanan” Dimana Kd_Pemesanan = Detail Kd_Pemesanan yang ditekan dan Kd_Barang = Detail Kd_Barang yang ditekan Lakukan Jika Link Back Ditekan Kembali ke Halaman Detail Pemesanan Akhir Jika Jika tombol Ok Ditekan maka Jika Price Kosong 333 Tampilkan Pesan Kesalahan Akhir Jika Jika Price bukan Angka Tampilkan Pesan Kesalahan Akhir Jika Jika Cost Kosong Tampilkan Pesan Kesalahan Akhir Jika Jika Cost bukan Angka Tampilkan Pesan Kesalahan Akhir Jika Selain itu Update Harga dengan menggunakan Procedure pada SQL, yaitu Procedure “updatedetailhargajual” Kembali ke Halaman Detail Pemesanan Akhir Jika Akhir Lakukan Selesai Modul Penjualan (Administrasi) M ulai Tampilkan Halaman Penjualan Buka Koneksi ke database bsa 334 Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewpenjualan” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Administrasi) Akhir Jika Jika Link Order ditekan Tampilkan Halaman Pemesanan Akhir Jika Jika Link Purchased ditekan Tampilkan Halaman Pembelian Akhir Jika Jika Link Product Ditekan Tampilkan Halaman Produk M esin (Administrasi) Akhir Jika Jika tombol Go ditekan maka Jika search kosong Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa Jika data yang dicari tidak ada Tampilkan Pesan Kesalahan Selain itu 335 Tampilkan data yang dicari dengan menggunakan view SQL, yaitu View “viewpenjualan” Dimana (Kd_Jual = “”%textfield.text%”” or Nama_Pelanggan = “”%textfield.text%”” or Tgl_Jual = “”%textfield.text%””) Akhir Jika Akhir Jika Jika Link Detail Pada Sale Detail Ditekan Tampilkan Halaman Detail Penjualan Akhir Jika Jika Link pada page ditekan Tampilkan data penjualan pada halaman tersebut Akhir Jika Cek View “viewpenerimaanbarang” Jika Tgl_Terimakaryawan not null Tampilkan Link Detail pada Shipping Detail Jika Link Detail Pada Shipping Detail Ditekan Tampilkan Halaman Detail Pengiriman Akhir Jika Selain itu 336 Tampilkan Pesan “No Shipping” di tabel Shipping Detail Akhir Jika Akhir Cek Jika Link Logout Ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Detail Penjualan (Administrasi) M ulai Tampilkan Halaman Detail Penjualan Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewdetailjual” Dimana Kd_Jual = Detail Kd_Jual yang ditekan Lakukan Jika Link Back Ditekan Tampilkan Halaman Penjualan Akhir Jika Cek View “viewpembelian” 337 Jika Right(Kd_Jual) tidak sama dengan Right(Kd_Beli) Tampilkan Tombol Approve Jika Tombol Approve ditekan Jalankan Procedure “inserpembelian dan procedure “insertdetailbeli” Kembali ke Halaman Penjualan Akhir Jika Selain itu Tampilkan Pesan “Sale has been Approve” Akhir Jika Akhir Cek Akhir Lakukan Selesai Modul Detail Pengiriman (Administrasi) M ulai Tampilkan Halaman Detail Pengiriman Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewdetailbeli” Dimana right(kd_beli)=right(kd_jual) Lakukan Jika Link Back Ditekan 338 Tampilkan Halaman Penjualan Akhir Jika Cek View “viewpengiriman_barang” Jika Data Kosong dalam pengiriman_barang Tampilkan Tombol Sent Jika Tombol Sent ditekan Jalankan Procedure “insertpengiriman” Kembali ke Halaman Penjualan Akhir Jika Selain itu Tampilkan Pesan “This Packet Have Been Sent” Akhir Jika Akhir Cek Akhir Lakukan Selesai Modul Pembelian (Administrasi) M ulai Tampilkan Halaman Pembelian Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewpembelian” 339 Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Administrasi) Akhir Jika Jika Link Order ditekan Tampilkan Halaman Pemesanan Akhir Jika Jika Link Sale ditekan Tampilkan Halaman Penjualan Akhir Jika Jika Link Product Ditekan Tampilkan Halaman Produk M esin (Administrasi) Akhir Jika Jika tombol Go ditekan maka Jika search kosong Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa Jika data yang dicari tidak ada Tampilkan Pesan “Data Not M atch” Selain itu Tampilkan data yang dicari menggunakan view SQL, yaitu View “viewpembelian” dengan 340 Dimana (Kd_Beli = “”%textfield.text%”” or Nama_Pelanggan = “”%textfield.text%”” or Tgl_Beli = “”%textfield.text%””) Akhir Jika Akhir Jika Jika Link Detail Pada Purchased Detail Ditekan Tampilkan Halaman Detail Pembelian Akhir Jika Jika Link pada page ditekan Tampilkan data pembelian pada halaman tersebut Akhir Jika Cek Jika kd_Penerimaan null Tampilkan Pesan “Note Yet Send” Pada Shipping Detail Akhir Jika Akhir Cek Jika Link Detail Pada Shipping Detail Ditekan Tampilkan Halaman Detail Pengiriman Akhir Jika Jika Link Logout Ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika 341 Akhir Lakukan Selesai Modul Detail Pembelian (Administrasi) M ulai Tampilkan Halaman Detail Pembelian Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewdetailbeli” dan View “viewpembelian” Dimana Kd_beli = Detail Kd_beli yang ditekan Lakukan Jika Link Back Ditekan Tampilkan Halaman Pembelian Akhir Jika Akhir Lakukan Selesai Modul Detail Penerimaan (Administrasi) M ulai Tampilkan Halaman Detail Penerimaan Buka Koneksi ke database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewpembelian” Dimana Kd_Beli = Detail Kd_Beli yang ditekan 342 Lakukan Jika Link Back Ditekan Tampilkan Halaman Pembelian Akhir Jika Cek View “viewpenerimaan_barang” Jika Tgl_Terimakaryawan Null Tampilkan Tombol Arrive Tampilkan Pesan “If the packet have been arrive please click the sent button above” Jika Tombol Arrive ditekan Jalankan “updatetglterimakaryawan” Kembali ke Halaman Pembelian Akhir Jika Akhir Jika Akhir Cek Akhir Lakukan Selesai Modul Produk Mesin (Administrasi) Tampilkan Halaman Produk M esin (Administrasi) Buka Koneksi ke Database bsa Tampilkan Data dengan menggunakan bahasa SQL, yaitu Procedure 343 “SELECT” SELECT * Dari M esin Lakukan Jika Data Kosong Tampilkan Pesan “Data Not Available” Akhir Jika Jika Link Home Ditekan Tampilkan Halaman Home (Administrasi) Akhir Jika Jika Link Order Ditekan Tampilkan Halaman Pemesanan Akhir Jika Jika Link Sale Ditekan Tampilkan Halaman Penjualan Akhir Jika Jika Link Purchased Ditekan Tampilkan Halaman Pembelian Akhir Jika Jika Nama M esin Ditekan Tampilkan Halaman Produk (Administrasi) Akhir Jika Jika Link Logout Ditekan Hapus Session dan Cookies 344 Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Produk (Administrasi) M ulai Tampilkan Halaman Produk (Administrasi) Buka Koneksi ke Database bsa Tampilkan data barang dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana Nama_M esin = “Nama Link M esin yang ditekan” Lakukan Jika Link Home ditekan Tampilkan Halaman Home (Administrasi) Akhir Jika Jika Link Product / Back ditekan Tampilkan Halaman Produk M esin (Administrasi) Akhir Jika Jika Link Sale ditekan Tampilkan Halaman Penjualan Akhir Jika Jika Link Order Ditekan Tampilkan Halaman Pemesanan 345 Akhir Jika Jika Link Purchased Ditekan Tampilkan Halaman Pembelian Akhir Jika Jika tombol Go ditekan maka Jika search kosong Fungsi mencari data tidak dijalankan Selain itu Cari data dari database bsa Jika data yang dicari tidak ada Tampilkan Pesan “Data Not M atch” Selain itu Tampilkan data yang dicari dengan menggunakan view SQL, yaitu View “viewbarang” Dimana (Nama_Barang “”%textfield.text%”” “”%textfield.text%”” or or = Kd_Barang = deskripsi = “”%textfield.text%””) and (nama_mesin = “nama link yang ditekan” or nama_mesin = “nama di listmenu) Akhir Jika Akhir Jika Jika listmenu ditekan maka 346 Tampilkan data barang Dimana nama_mesin = mesin yang ada di list menu Akhir Jika Jika Link Detail ditekan Tampilkan Halaman Detail Produk (Administrasi) Akhir Jika Jika Link pada page ditekan Tampilkan data barang pada halaman tersebut Akhir Jika Jika Link Insert New Product Ditekan Tampilkan Halaman Insert Produk Akhir Jika Jika Link Logout Ditekan Hapus Session dan Cookies Kembali ke Halaman Home Utama Akhir Jika Akhir Lakukan Selesai Modul Detail Produk (Administrasi) M ulai Tampilkan Halaman Detail Produk (Administrasi) Buka Koneksi ke Database bsa Tampilkan Data dengan menggunakan view pada SQL, yaitu 347 View “viewbarang” Dimana Kd_Barang = Link Kd_Barang yang ditekan Lakukan Jika Link Back Ditekan Tampilkan Halaman Produk (Administrasi) Akhir Jika Jika Link Edit Ditekan Tampilkan Halaman Edit Produk Akhir Jika Akhir Lakukan Selesai Modul Insert Produk (Administrasi) M ulai Tampilkan Halaman Insert Produk Buka Koneksi ke Database bsa Lakukan Jika Tombol Back Ditekan Kembali ke Halaman Produk (Administrasi) Akhir Jika Jika tombol add ditekan maka Jika Product_Name Kosong / Product_Code Kosong / Deskripsi Kosong / Weight Kosong Berikan simbol * Pada Field yang kosong 348 Tampilkan Pesan Kesalahan Akhir Jika Jika Weight bukan Angka Tampilkan Pesan Kesalahan Akhir Jika Jika Gambar bukan tipe yang didukung Tampilkan Pesan Kesalahan Akhir Jika Jika Ukuran Gambar diatas 2M B Tampilkan Pesan Kesalahan Akhir Jika Selain Itu Insert Product Dengan M enggunakan Procedure pada SQL, yaitu Procedure “insertbarang” Kembali ke Halaman Produk M esin (Administrasi) Akhir Jika Akhir Lakukan Selesai Modul Edit Produk (Administrasi) M ulai Tampilkan Halaman Edit Produk Buka Koneksi ke Database bsa 349 Tampilkan Data dengan menggunakan view pada SQL, yaitu View “viewbarang” Dimana kd_mesin = Detail kd_mesin yang ingin diedit Lakukan Jika Tombol Update ditekan maka Jika Product_Name Kosong / Product_Code Kosong / Deskripsi Kosong / Weight Kosong Berikan simbol * Pada Field yang kosong Tampilkan Pesan Kesalahan Akhir Jika Jika Weight bukan Angka Tampilkan Pesan Kesalahan Akhir Jika Jika Gambar bukan tipe yang didukung Tampilkan Pesan Kesalahan Akhir Jika Jika Ukuran Gambar diatas 2M B Tampilkan Pesan Kesalahan Akhir Jika Selain itu Update data dengan menggunakan Procedure pada SQL, yaitu Procedure “updatebarang” Kembali ke Halaman Produk M esin (Administrasi) 350 Akhir Jika Jika Link Back Ditekan Tampilkan Halaman Detail Produk (Administrasi) Akhir Jika Akhir Lakukan Selesai Modul Laporan Pembelian M ulai Tampilkan form Laporan Pembelian Buka Koneksi ke database bsa Tampilkan Data dari view “viewpembelian” Selesai Modul Laporan Pemesanan M ulai Tampilkan form Laporan Pemesanan Buka Koneksi ke database bsa Tampilkan Data dari view “viewpemesanan” dan view “viewdetailpemesanan” Selesai Modul Laporan Penjualan M ulai 351 Tampilkan form Laporan Penjualan Buka Koneksi ke database bsa Tampilkan Data dari view “viewpenjualan” dan view “viewdetailpenjualan” Selesai Modul Laporan Pengiriman M ulai Tampilkan form Laporan Pengiriman Buka Koneksi ke database bsa Tampilkan Data dari view “viewpengiriman” Selesai Modul Laporan Penerimaan M ulai Tampilkan form Laporan Penerimaan Buka Koneksi ke database bsa Tampilkan Data dari view “viewpenerimaan” Selesai