58
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Latar Belakang Perusahaan
3.1.1 Sejarah Berdirinya PT. Ekadharma International Tbk.
Perseroan ini didirikan pada tahun 1981 dengan nama PT. Ekadharma Widya Grafika. Di tahun 2006, nama perusahaan diubah menjadi PT. Ekadharma International Tbk. Perseroan telah menjadi perusahaan publik sejak 1990 yang sahamnya dicatat di Bursa Efek Jakarta.
Sejak tahun 1983, Perseroan mengembangkan usahanya ke bidang industri pita perekat dalam rangka memenuhi kebutuhan pasar di Indonesia. Seiring dengan permintaan pasar yang berkembang pesat di seluruh Indonesia maka sejak tahun 1991, perseroan mulai membuka kantor cabang penjualan dan fasilitas pendukung lainnya yang sampai saat ini telah mencapai delapan kantor cabang dan sembilan stock point yang tersebar di seluruh Indonesia.
Dengan berjalannya waktu serta kerja keras, perseroan telah menjadi salah satu pemimpin pasar di bidangnya dengan melakukan berbagai terobosan – terobosan baru baik dalam produksi maupun pemasaran hasil produk.
Berbagai peristiwa penting dalam perjalanan Ekadharma dari sejak pendiriannya hingga kini adalah :
59
Tabel 3. 1 Perkembangan Perusahaan
Tahun Keterangan 1981 Ekadharma didirikan dengan nama "PT Ekadharma Widya
Grafika" dan bergerak dalam bidang produksi kertas. 1983 Ekadharma mengembangkan usahanya ke bidang industri
pita perekat.
1984 Ekadharma mengadakan kerja sama dengan Nashua Corporation USA untuk memproduksi pita perekat merek "NASHUA" untuk pasar Indonesia.
1986 Ekadharma mengekspor produknya ke luar negeri, terutama untuk pasar di kawasan Asia.
1990 Nama Ekadharma diubah menjadi PT. Ekadharma Tape Industries. Ekadharma menjual sebagian sahamnya ke publik.
1991 Ekadharma mulai mengadakan perluasan pabrik dan membuka kantor cabang di Medan dan Surabaya.
1992 Ekadharma membuka kantor cabang di Semarang.
1993 Produksi komersial dari pabrik perluasan dimulai, sehingga total kapasitas produksi Ekadharma mencapai 114,5 juta m2 per tahun.
1995 Ekadharma membuka kantor cabang di Bandung dan mengembangkan jaringan distribusi ke wilayah Bali, Ujung Pandang dan Balikpapan.
60
2001 Ekadharma membuka stock point di Tangerang, Kawasan Industri Jababeka, dan daerah Cengkareng-Jakarta Barat. 2002 Ekadharma membuka stock point di Yogyakarta - Jawa
Tengah, Purwakarta - Jawa Barat dan Pandaan - Jawa Timur.
2006 Ekadharma berubah nama menjadi PT Ekadharma International.
2007 Ekadharma membuka kantor cabang di Makassar.
3.1.2 Visi Perusahaan
Menjadi salah satu perusahaan terbaik dan terbesar di bidang pita perekat di Indonesia.
3.1.3 Misi Perusahaan
Perseroan yang bergerak dalam bidang produsen pita perekat ini telah bertekad untuk berperan aktif dalam mensukseskan pembangunan Indonesia. Dilandasi oleh konsep dasar pemikiran inilah, perseroan terus berupaya mengembangkan usahanya dengan menekuni keahlian yang dimiliki serta mengambil hikmah dari berbagai pengalaman yang didapat sepanjang perjalanannya.
Hubungan baik dengan berbagai pihak adalah salah satu prinsip kerja yang selalu dianut dan merupakan kunci sukses yang mengantar PT.
61
Ekadharma International Tbk. Sebagai salah satu perusahaan terbaik di bidang pita perekat di Indonesia.
3.1.4 Struktur Organisasi
Sejak didirikannya pada tahun 1981, PT. Ekadharma International Tbk telah mengalami berbagai macam tantangan dan masalah yang mungkin menyebabkan pergantian struktur organisasi. Berikut adalah struktur organisasi PT. Ekadharma saat ini :
PT. Ekadharma International Tbk.
Dewan Komisaris / Board ofCommissioners
Presiden Direktur / President Director
Internal Auditor
Direktur Pemasaran & Operasional / Marketing
& Operation Director
Direktur Keuangan / Finance Director Manajer Pemasaran / Marketing Manager Manajer operasional / Operation Manager
Manajer Keuangan & Akuntansi / Finance & Accounting Manager Sekretaris
Perusahaan / Corporate Secretary
Gambar 3. 1 Struktur Organisasi Dasar
62 3.1.5 Informasi Perseroan
Dewan Komisaris
Presiden Komisaris : Tjiptono Darmadji
Komisaris : Ronny Kusuma Moentoro Komisaris : Rudy Kurniawan Leornadi Komite Audit
Ketua : Ronny Kusuma Moentoro
Anggota : Emil Bachtiar
Anggota : Edward Tanujaya
Direksi
Presiden Direktur : Judi Widjaja Leonardi
Direktur : Christian Tedjawidjaja
Direktur : Lie Phing
Akuntan Publik : Tjahjadi, Pradhono, & Teramihardja Biro Administrasi Efek : PT.Adimitra Transferindo
Alamat Perseroan
Kantor Pusat & Pabrik / Head Office & Factory Kawasan Industri Pasar Kemis Blok C-1
Jalan Raya Pasar Kemis, Tangerang 15560 Kantor Perwakilan / Representative Office Kedoya Elok Plaza Blok DD No 71
Jalan Panjang, Kedoya, Jakarta 11520 Kantor Jakarta / Jakarta Office
63
Jalan Raya Pantai Indah Kapuk, Jakarta 14460 Kantor Cabang
Tabel 3. 2 Kantor Cabang PT Ekadharma International Tbk Jakarta Kawasan Industri Sunter Agung
Jalan Agung Timur 2 Blok O-1 No 71, Jakarta 14350 Bandung Komplek Singgasana Pradana
Jalan Singgasana Raya Ruko No 23 dan 25, Bandung 40236
Bali Ruko Dewata Square No B-1
Jalan Letda Tantular No 1, Denpasar 80234 Surabaya Kawasan Industri Berbek
Jalan Berbek Industri V No 11, Sidoarjo, Surabaya 61256 Medan Kompleks MIEL Nusantara II
Jalan Pulau Sumbawa I No 9 Lot 10 B, Kawasan Industri Medan II, 20371
Makassar Jalan Ir. Sutami No 38
Komp. Pergudangan Parangloe Indah Blok D2 No 25, Makassar 90224
Semarang Kompleks Puri Anjasmoro Blok EE 2 No 2, 50144 Cikarang Jalan Jababeka VII G Blok R-I D
64 Stock Point
Tabel 3. 3 Stock Point PT Ekadharma International Tbk Cengkareng Ruko Daan Mogot Prima Blok B2 No 10
Jalan Daan Mogot Km 12.8, Jakarta Barat 11740 Yogyakarta Ruko Griya Alvita Blok A1 No 4
Jalan Wates Km 3, Yogyakarta Pekanbaru Jalan Arengka II No 36 (Ring Road)
Simpang Baru, Tampan, Riau 28293 Pasar Kemis Kawasan Industri Pasar Kemis Blok C-1
Jalan Raya Pasar Kemis, Tangerang 15560 Bogor Jalan Raya Tajur No 162
Ruko 1, Bogor
Banjarmasin Jalan Yos Sudarso, Komplek Airmatan No 11C, RT/RW 29/09
Telaga Biru, Banjarmasn Barat 70119 Purwakarta Kampung Cilame, No NK 1
Cibening – Bungursari, Purwakarta 41181 Balikpapan Jalan Soekarno Hatta Km 6, Balikpapan
Lampung Jalan Pulau Legundi No 7C
65 3.1.6 Anak Perusahaan
Berikut adalah dua perusahaan yang merupakan anak perusahaan dari PT. Ekadharma International Tbk. yaitu :
PT. Dunia Catridge Indonesia
Pendirian : PT. Dunia Catridge Indonesia didirikan berdasarkan akta no 2 pada tanggal 2 Desember 2005 oleh Notaris Singgih di Jakarta. Anggaran dasar perusahaan telah disahkan oleh Menteri Hukum dan Hak Asasi Manusia Republik Indonesia dalam surat keputusan No C-01808 HT.01.01.TH.2006.
Bidang Usaha : Isi ulang tinta untuk cartridge printer inkjet dan laser dengan sistem waralaba.
Profile : Cartridge World adalah pemimpin dunia dalam isi ulang cartridge tinta dan laser. Mereka adalah sebuah toko serba ada untuk semua perlengkapan printer inkjet, laser, fax, dan mesin fotokopi. Mereka mengisi ulang cartridge, menjual cartridge baru dan serangkaian aksesoris printer. Di awal tahun 2006 Cartridge World telah menunjuk PT. Dunia Cartridge Indonesia untuk menjadi Master Franchise Indonesia, yang berkantor pusat di Jakarta. Peranan kami sebagai Master Franchise di Indonesia adalah untuk mengembangkan jaringan dan mendampingi perkembangan franchise, memberikan training dan secara berkesinambungan mendorong persatuan dagang. Kami juga memiliki Pusat Training Cartridge World yang berpusat di Jakarta untuk seluruh Indonesia, dan memiliki pusat
66
logistik dan distribusi di beberapa kota besar di Indonesia untuk memberikan pelayanan kepada konsumen.
Visko Industries SDN.BHD
Pendirian : Visko Industries SDN.BHD didirikan berdasarkan akta no 780459-U pada tanggal 11 Juli 2007 di Malaysia. Akte perusahaan ini telah didaftarkan di Suruhanjaya Syarikat Malaysia.
Bidang Usaha : Menjalankan usaha pabrikan di bidang industri pita perekat. Profile : Perusahaan ini berkomitmen untuk memberikan produk
berkualitas tinggi yang konsisten melalui Tim Research dan Development dan Laboratorium pengendalian kualitas sesuai standar internasional, dan akan mengimplementasikan Sistem Quality Control secara Internasional. Perusahaan berinvestasi di mesin produksi terbaru untuk menjamin efisiensi yang tinggi dan spesifikasi produk yang tepat. Otomasi dan sistem informasi yang diterapkan di seluruh proses produksi, untuk mengaktifkan pelacakan real-time produksi dan persediaan, dan meminimalkan pekerjaan secara manual.
3.2 Analisis Permasalahan
3.2.1 Sistem Yang Sedang Berjalan
Sistem yang sedang berjalan pada PT. Ekadharma International Tbk. hingga saat ini adalah dengan menggunakan sistem manual, setiap proses
67
transaksi penjualan terjadi dengan berkomunikasi langsung ke sales masing - masing perusahaan dan proses pemesanan dilakukan melalui proses pencatatan.
PT. Ekadharma International Tbk. menyimpan setiap data customer dan histori dari transaksi dalam database, tetapi database tersebut tidak terhubung ke sistem manapun, sehingga hanya merupakan database yang berdiri sendiri.
Berikut adalah prosedur penjualan yang sedang berjalan pada kantor cabang PT. Ekadharma International Tbk. :
1. Customer melakukan pesanan produk yang diinginkan kepada sales yang bertugas menangani customer tersebut dengan mengirimkan atau memberikan surat purchase order.
2. Sales mengkonfirmasi surat purchase order tersebut agar customer mengetahui bahwa permintaan pesanannya telah diterima, lalu akan diproses lebih lanjut dengan mengirimkan surat perintah pengiriman produk ke gudang / warehouse berdasarkan purchase order dari customer.
3. Warehouse menerima surat perintah pengiriman produk dari sales dan membuat surat jalan untuk dikirimkan bersama produk yang diminta ke lokasi sesuai alamat yang tertera pada purchase order.
4. Warehouse memberi fotokopi surat jalan kepada sales untuk keperluan pembuatan faktur.
5. Sales membuat faktur untuk penagihan kepada customer. Waktu jatuh tempo pembayaran adalah 30 hari setelah tanggal pembuatan surat jalan.
68
6. Pada tanggal jatuh tempo, sales akan memberi collector faktur transaksi untuk dilakukan proses penagihan ke customer.
7. Sales menerima bukti pembayaran dari collector setelah proses penagihan dilakukan dan mengkonfirmasi pembayarannya dari nomor transfer bank.
Berikut adalah prosedur persediaan yang sedang berjalan pada kantor cabang PT. Ekadharma International Tbk. :
1. Warehouse / gudang melakukan proses pengecekan produk yang ada melalui dokumen stok produk setiap harinya untuk menghindari kosongnya stok produk atau terlalu sedikitnya stok produk.
2. Jika produk berjumlah sedikit, warehouse akan membuat surat permintaan produk ke pabrik.
3. Jika pada saat terjadi perintah pengiriman produk dari sales dan ternyata stok yang ada pada warehouse tidak memadai, warehouse akan memberitahu sales bahwa produk tertentu yang diminta tidak memadai jumlahnya sehingga sales dapat sesegera mungkin memberi kabar kepada customer untuk menunggu beberapa hari. Kemudian warehouse akan membuat surat permintaan produk ke pabrik.
4. Jika produk dari pabrik tiba, pekerja warehouse akan menghitung kembali jumlah produk tersebut dan melaporkannya ke manajer warehouse untuk dimasukkan ke dalam dokumen stok produk. Lalu manajer warehouse segera membuat surat jalan untuk dikirimkan bersama produk ke customer.
69
3.2.2 Flowchart Dari Sistem Yang Sedang Berjalan
Berikut merupakan tampilan diagram aliran dari sistem yang sedang berjalan:
Gambar 3. 2 Flowchart Sistem Persediaan
70
Gambar 3. 3 Flowchart Sistem Penjualan
71 Proses Penjualan (Lanjutan)
Sales Warehouse Collector
Customer
Tidak
Ya Menunggu hingga
30 hari dari tanggal surat jalan
30 hari Terima faktur penjualan Kirim faktur penjualan Melakukan penagihan ke customer Faktur Penjualan Sudah melakukan pembayaran 1 2 Tidak Melakukan proses pembayaran Ya Beri bukti pembayaran Terima bukti pembayar an Dapat bukti pembayaran Kirim bukti pembayaran ke sales Terima bukti pembayaran Selesai Gambar 3. 4 Flowchart Sistem Penjualan (Lanjutan)
72 3.2.3 Permasalahan Yang Dihadapi
Setelah melakukan proses wawancara mengenai sistem yang sedang berjalan, maka ditemukan beberapa masalah yang terjadi pada perusahaan tersebut, yaitu :
1. Sistem transaksi penjualan yang dilakukan kantor cabang PT. Ekadharma International Tbk. ini secara keseluruhan masih menggunakan sistem semi manual. Yang dimaksud dengan semi manual adalah proses transaksi menggunakan pesan email atau telepon secara langsung ke sales perwakilan dari pelanggan tersebut sehingga manajemen informasi kurang optimal. 2. Proses pencatatan transaksi – transaksi penjualan cukup merepotkan Sales
Administration, salah satunya dikarenakan Sales Administration diharuskan mengecek setiap surat purchase order yang ada.
3. Proses pembuatan surat – surat yang terlibat dalam suatu transaksi seperti surat jalan, surat permintaan produk, dan faktur masih dibuat manual dengan menulis / mengetik sesuai dengan surat purchase order yang dikirimkan.
3.2.4 Usulan Pemecahan Masalah
Setelah diketahui masalah – masalah yang dihadapi oleh perusahaan, maka akan dibentuk dan diterapkan suatu sistem web basis data yang dapat menggantikan sistem manual yang sedang berjalan saat ini. Hasil dari perancangan web ini dapat membantu mencatat setiap hasil transaksi secara otomatis ke dalam database, dapat menyediakan informasi yang berkaitan dengan transaksi dengan lebih cepat dan akurat, dan dapat mempermudah pelanggan untuk melakukan proses pemesanan tanpa mengenal waktu, serta
73
dapat mempermudah sales untuk melihat pesanan barang dari setiap perusahaan yang ia tangani. Selain itu web ini juga dilengkapi dengan fitur message sehingga sales dan customer dapat saling berinteraksi untuk kesepakatan bisnis, seperti mengkonfirmasi pesanan produk yang telah diterima, untuk menginformasikan mengenai keterlambatan datangnya produk pesanan, atau hal lainnya. Manajer dapat melihat laporan – laporan seperti laporan jumlah pembelian oleh customer, laporan jumlah penjualan dari sales, laporan jumlah produk yang dijual pada jangka waktu tertentu, dan laporan performa dari sales dalam melakukan konfirmasi suatu transaksi. Web ini juga dilengkapi fitur untuk mencetak surat – surat yang diperlukan dalam suatu transaksi. Dengan demikian diharapkan web basis data ini dapat meningkatkan efisiensi dan efektivitas kerja perusahaan lebih maksimal, khususnya dalam bidang penjualan.
74 3.2.4.1 Diagram Konteks
Berikut adalah gambar diagram konteks dari web basis data yang diusulkan :
Gambar 3. 5 Diagram Konteks web basis data
Keterangan :
75
C. Nomor PO dan PO detail D. Username dan Password Sales E. Data Transaksi Customer dari Sales F. Username dan Password Admin G. Data Transaksi Customer dari Admin H. Add Customer Baru dari Sales I. Add Customer Baru dari Admin J. Add Sales Baru
K. Status dari Sales L. Status dari Admin
M. Message Konfirmasi PO telah diterima N. Username dan Password Warehouse O. Data Transaksi yang akan dikirim P. Data Stok Produk
Q. Jumlah Stok Produk yang dibutuhkan R. Delivery Status S. Nomor Polisi Kendaraan T. No. Surat Jalan
V. Payment Status W. Message Customer
X. Message Customer untuk Sales Y. Message Customer untuk Admin
Z. Feedback Sales A1. Feedback Admin
B1. Feedback untuk Customer C1. Stok Produk Baru D1. Nomor Transfer
76 3.2.4.2 Data Flow Diagram Level Nol
Di bawah ini digambarkan diagram aliran data level nol yang mendeskripsikan sistem yang berjalan pada web basis data yang diusulkan :
Gambar 3. 6 DFD Tingkat 0
77 Keterangan :
A. Username dan Password Customer B. Daftar Produk
C. Nomor PO dan PO detail D. Username dan Password Sales E. Data Transaksi Customer dari Sales F. Username dan Password Admin G. Data Transaksi Customer dari Admin H. Add Customer Baru dari Sales I. Add Customer Baru dari Admin J. Add Sales Baru
K. Status dari Sales L. Status dari Admin
M. Message KonfirmasiPO telah diterima N. Username dan Password Warehouse O. Data Transaksi yang akan dikirim P. Data Stok Produk
Q. Jumlah Stok Produk yang dibutuhkan R. Delivery Status S. Nomor Polisi Kendaraan T. No. Surat Jalan
V. Payment Status W. Message Customer
X. Message Customer untuk Sales Y. Message Customer untuk Admin
Z. Feedback Sales A1. Feedback Admin
B1. Feedback untuk Customer C1. Stok Produk Baru
D1. Nomor Transfer E1. Konfirmasi Password Customer F1. Status Login Customer G1. Data Produk
H1. Data Purchase Order I1. Konfirmasi Password Sales J1. Status Login Sales K1. Hasil Transaksi Customer L1. Konfirmasi Password Admin M1. Status Login Admin N1. Data Customer Baru dari Sales O1. Data Customer Baru P1. Data Customer Baru dari Admin Q1. Data Sales Baru
78
T1. Konfirmasi Password Warehouse U1. Status Login Warehouse V1. Data Transaksi W1. Data Jumlah Produk X1. Jumlah Permintaan Produk Y1. Status untuk Delivery Z1. Indeks Nomor Polisi Kendaraan A2. Message Baru
B2. Jumlah Produk yang Datang C2. Data No.Surat Jalan D2. Data No. Transfer
79 3.2.4.3 Data Flow Diagram Level Satu
Di bawah ini digambarkan diagram aliran data level satu yang mendeskripsikan sistem yang berjalan pada web basis data yang diusulkan :
80 Keterangan :
A. Username dan Password Customer B. Daftar Produk
C. Nomor PO dan PO detail D. Username dan Password Sales E. Data Transaksi Customer dari Sales F. Username dan Password Admin G. Data Transaksi Customer dari Admin H. Add Customer Baru dari Sales I. Add Customer Baru dari Admin J. Add Sales Baru
K. Status dari Sales L. Status dari Admin M. Message KonfirmasiPO telah diterima R. Delivery Status T. No. Surat Jalan V. Payment Status
W. Message Customer X. Message Customer untuk Sales Y. Message Customer untuk Admin Z. Feedback Sales
A1. Feedback Admin B1. Feedback untuk Customer D1. Nomor Transfer E1. Konfirmasi Password Customer F1. Status Login Customer G1. Data Produk
H1. Data Purchase Order I1. Konfirmasi Password Sales J1. Status Login Sales K1. Hasil Transaksi Customer L1. Konfirmasi Password Admin M1. Status Login Admin N1. Data Customer Baru dari Sales O1. Data Customer Baru P1. Data Customer Baru dari Admin Q1. Data Sales Baru
R1. Status Confirm S1. Message Konfirmasi diterima A2. Message Baru C2. Data No.Surat Jalan
D2. Data No. Transfer E2. Status Konfirmasi Payment
81 Warehouse 2.1 Login Warehouse 2.2 Konfirmasi Produk yang akan dikirim 2.3 Menetapkan Kendaraan Warehouse N T1 U1 Transaction V1 O Z1 Vehicle S F2 Gambar 3. 8 DFD Tingkat Satu 2.0
Keterangan :
N. Username dan Password Warehouse O. Data Transaksi yang akan dikirim S. Nomor Polisi Kendaraan T1. Konfirmasi Password Warehouse U1. Status Login Warehouse V1. Data Transaksi
Z1. Indeks Nomor Polisi Kendaraan F2. Login Permission Warehouse
82
Gambar 3. 9 DFD Tingkat Satu 3.0
Keterangan :
P. Data Stok Produk Q. Jumlah Stok Produk yang dibutuhkan C1. Data Stok Produk baru W1. Data Jumlah Produk
X1. Jumlah Permintaan Produk B2. Jumlah Produk yang Datang
3.3 Perancangan Basis Data Konseptual 3.3.1 Identifikasi Tipe Entitas
Pada tahap awal ini, kami akan menentukan entitas – entitas apa saja yang diperlukan di dalam sistem yang akan dibentuk. Berikut adalah tabel yang menunjukkan entitas – entitas yang dibutuhkan untuk bagian penjualan PT. Ekadharma International Tbk. :
Tabel 3. 4 Kamus Data Entitas
Nama Entitas Deskripsi Kejadian
83
Nama Entitas Deskripsi Kejadian
berisi informasi tentang karyawan yang bekerja pada divisi marketing di perusahaan.
jabatannya masing – masing dan bekerja dalam satu kantor cabang.
Customer Merupakan entitas yang berisi informasi tentang perusahaan yang menjadi pelanggan / rekanan dari PT. Ekadharma
Setiap pelanggan memiliki password masing – masing. Selain itu juga memiliki satu sales dari PT. Ekadharma yang menjadi perwakilan dari pelanggan tersebut untuk melakukan proses transaksi pembelian produk dan untuk membuat kesepakatan – kesepakatan tertentu.
Setiap perusahaan / pelanggan memiliki seorang karyawan yang akan dihubungi oleh PT. Ekadharma apabila terjadi hal – hal darurat atau yang tidak diinginkan. Input Merupakan entitas yang
berisikan informasi tentang sales yang menjadi perwakilan dari
Setiap pelanggan hanya mempunyai satu sales yang menangani semua kegiatan transaksi pembelian produk dari
84
Nama Entitas Deskripsi Kejadian
sebuah perusahaan pelanggan.
perusahaan tersebut.
Transaction Merupakan entitas yang berisi informasi tentang
seluruh transaksi penjualan yang dilakukan
PT. Ekadharma ke perusahaan – perusahaan pelanggan.
Setiap transaksi terdapat seorang sales yang bertanggungjawab terhadap penjualan produk hingga produk tersebut sampai pada alamat yang dituju. Pada setiap transaksi terdapat tanggal jatuh tempo yang ditetapkan perusahaan atau yang telah ditetapkan atas kesepakatan pelanggan dengan sales.
Product Merupakan entitas yang berisi informasi tentang produk – produk yang dijual dan deskripsi dari produk tersebut.
Setiap produk memiliki tipe produk dan memiliki gambar yang berguna mendeskripsikan produk tersebut ke pelanggan.
Message Merupakan entitas yang berisi informasi tentang pesan yang ditinggalkan oleh pelanggan / customer ke sales.
Setiap pesan merupakan proses interaksi antara sebuah perusahaan pelanggan dengan sales perwakilannya pada PT. Ekadharma.
85
Nama Entitas Deskripsi Kejadian
berisi informasi tentang surat pembelian produk yang dibuat oleh pelanggan.
dicatat bersama dengan nama sales yang bertanggung jawab dan tanggal surat tersebut dikeluarkan.
Delivery Merupakan entitas yang berisi informasi tentang surat jalan yang telah dikeluarkan gudang / warehouse.
Setiap surat jalan yang dibuat merupakan hasil akhir ketika permintaan produk dari sales telah tercukupi.
Warehouse Merupakan entitas yang berisi informasi tentang gudang / warehouse yang dimiliki oleh kantor cabang.
Gudang memiliki penanggung jawabnya tersendiri yang merupakan karyawan dari kantor cabang yang berasal dari gudang yang bersangkutan. Gudang memiliki password untuk memeriksa persediaan produk.
Vehicle Merupakan entitas yang berisi informasi tentang kendaraan – kendaraan pengantar yang dimiliki gudang.
Setiap kendaraan memiliki nomor polisi yang menjadi tanda pengenal dari kendaraan tersebut.
86
Nama Entitas Deskripsi Kejadian
berisi informasi tentang permintaan produk dari gudang yang akan diajukan ke pabrik pusat.
dibuat disertakan gudang yang melakukan permintaan dan data waktu permintaan tersebut dibuat.
3.3.2 Identifikasi Tipe Relasional
Tahap ini bertujuan untuk mengidentifikasi hubungan – hubungan yang dimiliki antar entitas. Berikut merupakan relasi – relasi yang telah diidentifikasikan :
Tabel 3. 5 Kamus Data Relasional
Nama Entitas Multiplicity Relationship Multiplicity Nama Entitas PurchaseOrder 1..* Is created by 1..1 Customer
1..* Is created to 1..1 Employee Message 0..* Is responded by 1..1 Employee 0..* Is created by 1..1 Customer
Transaction 1..1 Has 1..1 PurchaseOrder
1..* Is managed by 1..1 Employee
1..1 Has 1..1 Delivery
1..* Has 1..* Product
Input 1..1 Appoint 1..1 Customer
1..* Is registered by 1..1 Employee Delivery 1..* Is declared by 1..1 Warehouse
87
Nama Entitas Multiplicity Relationship Multiplicity Nama Entitas 1..* Is transported
by
1..1 Vehicle
Vehicle 1..* Is owned by 1..1 Warehouse Request 1..* Is created by 1..1 Warehouse
1..* Consist of 1..* Product
Hubungan tiap entitas dapat dilihat pada ERD sebagai berikut:
Gambar 3. 10 Entity Relationship Diagram Konseptual
88
3.3.3 Identifikasi dan Asosiasi Atribut dengan Entitas – Entitas dan Relationship
Tujuan tahap ini untuk menentukan atribut – atribut yang dibutuhkan dalam setiap entitas. Berikut adalah kamus data atribut dari entitas yang telah diidentifikasi :
Tabel 3. 6 Kamus Data Atribut Employee
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value EmployeeID Identifikasi unik dari
sebuah member dari Employee
Char (6) No No
EmployeeName Nama dari karyawan Varchar (50) No No EmployeeAdd Alamat dari karyawan Varchar
(100)
Yes No
EmployeePhone No telepon dari karyawan Varchar (20) No No EmployeePass Password karyawan
untuk masuk ke dalam web
Varchar (20) No No
Position Jabatan dari seorang karyawan Varchar (30) No No
89
Tabel 3. 7 Kamus Data Atribut Customer
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value CustomerID Identifikasi unik dari
sebuah member dari Customer
Char (5) No No
CustomerName Nama perusahaan yang menjadi pelanggan
Varchar (50) No No
CustomerAdd Alamat perusahaan pelanggan
Varchar (100)
No No
CustomerTaxNo Nomor pajak dari perusahaan pelanggan
Char (16) No No
CustomerPhone Nomor telepon perusahaan pelanggan
Varchar (20) No No
CustomerFax Nomor faximile dari pelanggan
Varchar (20) No No
CustomerCP Nama dari karyawan kepercayaan perusahaan
pelanggan yang menangani pembelian produk yang dapat dihubungi oleh sales sebagai Contact Person
90
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value CustomerPass Kode Password yang
dimiliki pelanggan untuk dapat melakukan proses pembelian barang pada web
Varchar (20) No No
DestinationAdd Alamat pengiriman produk yang dituju
Varchar (100)
No No
Tabel 3. 8 Kamus Data Atribut Message
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value MessageID Identifikasi unik dari
sebuah member dari Message
Char (8) No No
Topic Topik pesan yang
dikirimkan dan ingin dibahas
Varchar (100)
No No
MessageTime Waktu pesan dibuat DateTime No No MessagePost Nama seseorang yang
membuat pesan
Varchar (50) No No
91
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value Customer atau Sales (200)
CommentPost Nama seseorang yang menuliskan Comment
Varchar (50) No No
CommentTime Waktu pada saat Comment dibuat
DateTime No No
Tabel 3. 9 Kamus Data Atribut Product
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value ProductID Identifikasi unik dari
sebuah member dari Product
Char (10) No No
ProductName Nama produk Varchar (50) No No ProductPrice Harga dari produk Int (11) No No ProductSize Ukuran dari produk Varchar (20) No No ProductImage Gambar dari produk Varchar (30) No No Stock Jumlah produk dalam
gudang
Int (11) No No
92
Tabel 3. 10 Kamus Data Atribut Transaction
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value DocumentNo Identifikasi unik dari
sebuah member dari Transaction
Char (5) No No
MaturityDate Tanggal jatuh tempo pembayaran
Date No No
Status Status apakah transaksi sudah dilihat oleh sales (Confirm / Not Confirmed)
Tiny Int No No
DeliveryStatus Status apakah transaksi tersedia dan siap untuk dikirim ke pelanggan (Pending / Ready)
Tiny Int No No
PaymentStatus Status apakah transaksi yang telah terjadi sudah dibayar sepenuhnya
Tiny Int No No
TransferNo Nomor transfer dari pembayaran yang dilakukan oleh pelanggan
93
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value SalesConfirmDate Tanggal transaksi telah
dikonfirmasi oleh sales
Date No No
TransactionDate Tanggal transaksi telah dikonfirmasi oleh warehouse dan siap dikirim
Date No No
Qty Jumlah produk yang
terlibat dalam transaksi
Int (11) No No
Tabel 3. 11 Kamus Data Atribut Input
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value EmployeeID Identifikasi unik dari
sebuah member dari Employee
Char (6) No No
CustomerID Identifikasi unik dari sebuah member dari Customer
Char (5) No No
InputDate Tanggal data pelanggan diinput
94
Tabel 3. 12 Kamus Data Atribut PurchaseOrder
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value Purchase
OrderID
Nomor purchase order
yang ditetapkan perusahaan pelanggan Varchar (30) No No Purchase OrderDate Tanggal pembuatan purchase order Date No No
Tabel 3. 13 Kamus Data Atribut Delivery
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value DeliveryID Nomor surat jalan yang
telah ditetapkan oleh pihak gudang
Varchar (20) No No
DeliveryDate Tanggal surat jalan dikeluarkan
Date No No
Tabel 3. 14 Kamus Data Atribut Warehouse
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value WarehouseID Identifikasi unik dari
sebuah member dari Warehouse
95
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value WarehouseName Nama gudang Varchar (50) No No WarehouseAdd Alamat dari gudang Varchar
(100)
No No
WarehousePhone Nomor telepon dari gudang
Varchar (20) No No
WarehouseFax Nomor faximile dari gudang
Varchar (20) No No
WarehousePass Kode password yang dimiliki Warehouse
Varchar (20) No No
VerPass Kode yang dimiliki Warehouse yang digunakan untuk proses penghapusan produk
Varchar (30) No No
Tabel 3. 15 Kamus Data Atribut Vehicle
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value VehicleID Nomor polisi kendaraan
gudang
Varchar (9) No No
96
Tabel 3. 16 Kamus Data Atribut Request
Atribut Deskripsi Tipe Data
dan Panjang
Nulls Multi Value RequestID Nomor surat permintaan
produk ke pabrik
Char (4) No No
RequestDate Tanggal pembuatan surat Date No No
Qty Jumlah produk yang
diminta
Int (11) No No
3.3.4 Menentukan Atribut Domain
Tahap ini bertujuan untuk menentukan domain dari suatu atribut, yaitu tipe data dan panjang dari atribut tersebut. Dari hasil penentuan atribut, maka didapat atribut domain sebagai berikut :
Tabel 3. 17 Atribut Domain
Nama Entitas Atribut Domain Atribut Employee EmployeeID Char dengan panjang 6 karakter
EmployeeName Varchar dengan panjang 50 karakter EmployeeAdd Varchar dengan panjang 100 karakter EmployeePhone Varchar dengan panjang 20 karakter EmployeePass Varchar dengan panjang 20 karakter Position Varchar dengan panjang 30 karakter Customer CustomerID Char dengan panjang 5 karakter
97
Nama Entitas Atribut Domain Atribut
CustomerAdd Varchar dengan panjang 100 karakter CustomerTaxNo Char dengan panjang 16 karakter CustomerPhone Varchar dengan panjang 20 karakter CustomerFax Varchar dengan panjang 20 karakter CustomerCP Varchar dengan panjang 50 karakter CustomerPass Varchar dengan panjang 20 karakter DestinationAdd Varchar dengan panjang 100 karakter Message MessageID Char dengan panjang 8 karakter
Topic Varchar dengan panjang 100 karakter MessageTime DateTime
MessagePost Varchar dengan panjang 50 karakter Comment Varchar dengan panjang 200 karakter CommentPost Varchar dengan panjang 50 karakter CommentTime DateTime
Product ProductID Char dengan panjang 10 karakter ProductName Varchar dengan panjang 50 karakter ProductPrice Int dengan panjang 11
ProductSize Varchar dengan panjang 20 karakter ProductImage Varchar dengan panjang 30 karakter Stock Int dengan panjang 11
ProductType Varchar dengan panjang 20 karakter Transaction DocumentNo Char dengan panjang 5 karakter
98
Nama Entitas Atribut Domain Atribut MaturityDate Date
Status Tiny Int DeliveryStatus Tiny Int PaymentStatus Tiny Int
TransferNo Varchar dengan panjang 20 karakter SalesConfirmDate Date
TransactionDate Date
Qty Int dengan panjang 11
Input EmployeeID Char dengan panjang 6 karakter CustomerID Char dengan panjang 5 karakter InputDate Date
PurchaseOrder Purchase OrderID
Varchar dengan panjang 30 karakter
Purchase OrderDate
Date
Delivery DeliveryID Varchar dengan panjang 20 karakter DeliveryDate Date
Warehouse WarehouseID Char dengan panjang 4 karakter WarehouseName Varchar dengan panjang 50 karakter WarehouseAdd Varchar dengan panjang 100 karakter WarehousePhone Varchar dengan panjang 20 karakter WarehouseFax Varchar dengan panjang 20 karakter
99
Nama Entitas Atribut Domain Atribut
WarehousePass Varchar dengan panjang 20 karakter VerPass Varchar dengan panjang 30 karakter Vehicle VehicleID Varchar dengan panjang 9 karakter
VehicleName Varchar dengan panjang 50 karakter Request RequestID Char dengan panjang 4 karakter
RequestDate Date
Qty Int dengan panjang 11
3.3.5 Menentukan Candidate Key dan Primary Key
Pada tahap ini terjadi proses penentuan atribut – atribut yang berfungsi sebagai candidate key pada tiap entitas. Tujuan dari tahap ini adalah mengidentifikasi canditate key dan primary key dari setiap entitas.
Tabel 3. 18 Identifikasi Candidate Key dan Primary Key Nama Entitas Candidate Key Primary Key Customer CustomerID CustomerID
CustomerName CustomerTaxNo
Employee EmployeeID EmployeeID EmployeeName
Message MessageID MessageID Delivery DeliveryID DeliveryID
100
Nama Entitas Candidate Key Primary Key Warehouse WarehouseID WarehouseID Transaction DocumentNo DocumentNo Vehicle VehicleID VehicleID
Input EmployeeID EmployeeID
CustomerID CustomerID Request RequestID RequestID Product ProductID ProductID
ProductName ProductImage
Gambar 3. 11 ERD Konseptual dengan Primary Key
101 3.3.6 Periksa Model untuk Redundansi
Langkah ini bertujuan untuk mengecek / memeriksa kehadiran redundansi pada model konseptual. Di dalam perancangan database kami tidak ditemukan adanya hubungan redundansi antar entitas. Dua aktivitas yang dilakukan untuk mengecek redundansi yaitu :
1. Memeriksa kembali adanya hubungan one-to-one (1:1).
Dalam aktivitas ini diidentifikasi apakah terdapat dua entitas yang merepresentasikan sebuah objek yang sama dan pada aktivitas ini kami tidak menemukan adanya lebih dari satu entitas yang mewakili objek yang sama.
2. Menghilangkan hubungan – hubungan yang redundan.
Sebuah hubungan dikatakan redundan jika sebuah informasi dapat diperoleh dari hubungan lain. Tujuan dari perancangan ini adalah untuk mengembangkan sebuah data model yang minimum sehingga model yang memiliki satu hubungan yang sebenarnya tidak diperlukan dapat dihapus. Pada model kami tidak terdapat hubungan yang dapat dikatakan redundan, ada beberapa hubungan yang terlihat seperti redundan namun sebenarnya hubungan tersebut mempunyai tujuannya tersendiri yang tidak dapat dihapuskan.
102
3.3.7 Validasi Model Konseptual terhadap Transaksi – Transaksi yang Dilakukan Pengguna
Tahap ini bertujuan untuk memastikan bahwa model konseptual yang dibuat dapat mendukung transaksi – transaksi yang dibutuhkan oleh pengguna / pemakai.
Pada tahap ini kami menggunakan transaction pathways yang digambarkan pada diagram konseptual untuk memastikan bahwa model konseptual yang telah dibentuk dapat mendukung transaksi yang dibutuhkan pengguna. Transaksi – transaksi yang ada adalah sebagai berikut :
1. Data Entry / Insert
a) Memasukkan detail data untuk Customer baru
b) Memasukkan detail data untuk Message baru yang dibuat oleh Customer c) Memasukkan detail data untuk Transaction baru
d) Memasukkan detail data untuk balasan Message yang dilakukan oleh Employee
e) Memasukkan detail data untuk produk baru f) Memasukkan detail data untuk Employee baru g) Memasukkan detail data untuk posisi baru h) Memasukkan detail data untuk tipe produk baru i) Memasukkan detail data untuk kendaraan baru j) Memasukkan detail data untuk gudang
103 2. Data Update / Delete
a) Melakukan proses update / delete data pada Customer b) Melakukan proses delete data pada Message
c) Melakukan proses update / delete data pada pesan / comment tertentu d) Melakukan proses update / delete data pada Employee
e) Melakukan proses update / delete data pada Product f) Melakukan proses delete data pada Transaction
g) Melakukan proses update / delete data pada tipe produk h) Melakukan proses delete kendaraan
i) Melakukan proses update Warehouse 3. Data Query
A. Mengidentifikasi data transaksi pada waktu tertentu
B. Mencari informasi mengenai sales yang menangani suatu transaksi penjualan
C. Mengidentifikasi pelanggan yang melakukan transaksi tertentu
D. Mengetahui apakah seorang sales mempunyai sejumlah transaksi yang belum dikonfirmasikan
E. Mengetahui informasi tentang pelanggan
F. Mengetahui tanggal jatuh tempo dari sebuah transaksi
G. Mencari informasi mengenai produk – produk yang dibeli dalam sebuah transaksi
H. Mengidentifikasi surat jalan yang dikeluarkan untuk transaksi tertentu I. Mengetahui pesan – pesan yang telah dibuat oleh seorang Customer J. Mengetahui jumlah barang yang diminta gudang pada hari tertentu.
104
K. Mengidentifikasi nomor kendaraan yang digunakan untuk mengirimkan suatu transaksi.
Gambar 3. 12 Validasi Model Data Konseptual terhadap Transaksi Pengguna
3.3.8 Melakukan Review Model Data Konseptual dengan User
Setelah ditinjau berdasarkan kuesioner yang ada yang telah mewakili pengguna, hingga tahap ini rancangan konseptual kami dianggap mampu untuk memenuhi keinginan pengguna sistem dari PT. Ekadharma International Tbk.
105 3.4 Perancangan Basis Data Logikal
3.4.1 Menghilangkan Hal yang Tidak Cocok dengan Model Data Relational Logikal
Tahap ini dimaksudkan untuk menghasilkan relasi pada model data logikal untuk menampilkan entitas, relasi, dan atribut yang telah diidentifikasikan.
1. Menghilangkan tipe relasi binary many-to-many (*:*)
Gambar 3. 13 Entitas DetailTransaction yang Dihasilkan Setelah Menghilangkan Many-to-Many
Gambar 3. 14 Entitas RequestDetail yang Dihasilkan Setelah
Menghilangkan Many-to-Many 2. Menghilangkan atribut multivalue
Pada model data logikal yang telah kami bentuk tidak terdapat adanya atribut yang bernilai banyak atau multivalue.
106
3.4.2 Menentukan Relasi untuk Model Data Logikal
Tujuan dari tahap ini adalah membuat relasi model data logikal lokal untuk menampilkan kembali entitas, relational, dan atribut yang telah diidentifikasi.
3.4.2.1 Strong and Weak Entity Types
Pada model data kami yang merupakan strong entity types adalah sebagai berikut :
a) Employee (EmployeeID, EmployeeName, EmployeeAdd, EmployeePhone, EmployeePass, Position)
Primary Key : EmployeeID
b) Customer (CustomerID, CustomerName, CustomerAdd, CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass, DestinationAdd)
Primary Key : CustomerID
c) Delivery (DeliveryID, DeliveryDate, WarehouseID, VehicleID) Primary Key : DeliveryID
d) Transaction (DocumentNo, PurchaseOrderID, TransactionDate, MaturityDate, SalesConfirmDate, DeliveryID, EmployeeID, Status, DeliveryStatus, PaymentStatus, TransferNo)
Primary Key : DocumentNo
e) Product (ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductType, Stock)
Primary Key : ProductID
107 Primary Key : VehicleID
g) Warehouse (WarehouseID, WarehouseName, WarehouseAdd, WarehousePhone, WarehouseFax, WarehousePass, VerPass)
Primary Key : WarehouseID
h) Request (RequestID, RequestDate, WarehouseID) Primary Key : RequestID
i) PurchaseOrder (PurchaseOrderID, CustomerID, PurchaseOrderDate, EmployeeID)
Primary Key : PurchaseOrderID
Pada model data kami yang merupakan weak entity types adalah sebagai berikut :
a) Message (MessageID, Topic, MessageTime, MessagePost, CustomerID, EmployeeID, Comment, CommentPost, CommentTime)
Primary Key : MessageID
b) DetailTransaction (DocumentNo, ProductID, Qty, DetailDate) Primary Key : ProductID, DocumentNo
c) RequestDetail (RequestID, ProductID, Qty) Primary Key : RequestID, ProductID
d) Input (EmployeeID, CustomerID, InputDate) Primary Key : EmployeeID, CustomerID
108
3.4.2.2 One-to-Many Binary Relationship Types
Relasi 1:* memiliki 2 bagian, yaitu pada entitas yang bernilai 1 (one) disebut dengan istilah parent entity dan pada entitas yang bernilai * (many) disebut dengan istilah child entity. Berikut adalah relasi – relasi 1:* serta hasil posting dari entitas – entitas yang berhubungan satu dengan yang lainnya :
1. Relasi antara Employee dengan Input melakukan posting EmployeeID ke entitas Input.
Employee (EmployeeID,
EmployeeName, EmployeeAdd, EmployeePhone, EmployeePass, Position)
Primary Key (EmployeeID)
Input (EmployeeID, CustomerID, InputDate) Primary Key (EmployeeID, CustomerID)
Foreign Key (EmployeeID) references Employee
(EmployeeID)
Foreign Key (CustomerID) references Customer
109
2. Relasi antara Employee dengan Message melakukan posting EmployeeID ke entitas Message.
Employee (EmployeeID, EmployeeName,
EmployeeAdd, EmployeePhone,
EmployeePass, Position) Primary Key (EmployeeID)
Message (MessageID, Topic, MessageTime, MessagePost, CustomerID,
EmployeeID, Comment, CommentPost, CommentTime) Primary Key (MessageID) Foreign Key (EmployeeID)
references Employee (EmployeeID) Foreign Key (CustomerID)
110
3. Relasi antara Customer dengan Message melakukan posting CustomerID ke entitas Message.
Customer (CustomerID, CustomerName, CustomerAdd, CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass, DestinationAdd)
Primary Key (CustomerID)
Message (MessageID, Topic, MessageTime, MessagePost, CustomerID, EmployeeID, Comment, CommentPost, CommentTime)
Primary Key (MessageID) Foreign Key (EmployeeID)
references Employee (EmployeeID) Foreign Key (CustomerID)
111
4. Relasi antara Customer dengan PurchaseOrder melakukan posting CustomerID ke entitas PurchaseOrder.
Customer (CustomerID, CustomerName, CustomerAdd, CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass, DestinationAdd)
Primary Key (CustomerID)
PurchaseOrder (PurchaseOrderID, EmployeeID, CustomerID,
PurchaseOrderDate)
Primary Key (PurchaseOrderID) Foreign Key (CustomerID)
references Customer (CustomerID) Foreign Key (EmployeeID)
references Employee (EmployeeID)
5. Relasi antara Employee dengan PurchaseOrder melakukan posting EmployeeID ke entitas PurchaseOrder.
Employee (EmployeeID, EmployeeName,
EmployeeAdd, EmployeePhone,
EmployeePass, Position) Primary Key (EmployeeID)
PurchaseOrder (PurchaseOrderID, EmployeeID, CustomerID,
PurchaseOrderDate)
Primary Key (PurchaseOrderID) Foreign Key (CustomerID)
references Customer (CustomerID) Foreign Key (EmployeeID)
112
6. Relasi antara Employee dengan Transaction melakukan posting EmployeeID ke entitas Transaction.
Employee (EmployeeID, EmployeeName,
EmployeeAdd, EmployeePhone,
EmployeePass, Position) Primary Key (EmployeeID)
Transaction (DocumentNo, TransactionDate, MaturityDate, DeliveryID, TransferNo, PurchaseOrderID, EmployeeID, Status, DeliveryStatus, PaymentStatus) Primary Key (DocumentNo) Foreign Key (DeliveryID) references Delivery (DeliveryID) Foreign Key (EmployeeID) references Employee
(EmployeeID)
Foreign Key (PurchaseOrderID) references PurchaseOrder
113
7. Relasi antara Vehicle dengan Delivery melakukan posting VehicleID ke entitas Delivery.
Vehicle (VehicleID,
VehicleName, WarehouseID) Primary Key (VehicleID) Foreign Key (WarehouseID) references Warehouse (WarehouseID) Delivery (DeliveryID, WarehouseID, VehicleID, DeliveryDate)
Primary Key (DeliveryID) Foreign Key (VehicleID) references Vehicle (VehicleID) Foreign Key (WarehouseID) references Warehouse
(WarehouseID)
8. Relasi antara Warehouse dengan Delivery melakukan posting WarehouseID ke entitas Delivery.
Warehouse (WarehouseID, WarehouseName, WarehouseAdd, WarehousePhone, WarehouseFax, WarehousePass, VerPass) Primary Key (WarehouseID)
Delivery (DeliveryID, WarehouseID, VehicleID, DeliveryDate)
Primary Key (DeliveryID) Foreign Key (VehicleID) references Vehicle (VehicleID) Foreign Key (WarehouseID) references Warehouse
114
9. Relasi antara Warehouse dengan Vehicle melakukan posting WarehouseID ke entitas Vehicle.
Warehouse (WarehouseID, WarehouseName, WarehouseAdd, WarehousePhone, WarehouseFax, WarehousePass, VerPass) Primary Key (WarehouseID) Vehicle (VehicleID, VehicleName, WarehouseID) Primary Key (VehicleID) Foreign Key (WarehouseID) references Warehouse
115
10. Relasi antara Warehouse dengan Request melakukan posting WarehouseID ke entitas Request.
Warehouse (WarehouseID, WarehouseName, WarehouseAdd, WarehousePhone, WarehouseFax, WarehousePass, VerPass) Primary Key (WarehouseID)
Request (RequestID,
WarehouseID, RequestDate) Primary Key (RequestID) Foreign Key (WarehouseID) references Warehouse
(WarehouseID)
3.4.2.3 One-to-One Binary Relationship Types
Pada hubungan ini entitas yang terkait akan digabungkan menjadi satu entitas dan primary key akan dipilih dari salah satu entitas tersebut jika terbukti bahwa kedua entitas tersebut tidak mempunyai alasan yang tepat untuk tetap memiliki hubungan binary one-to-one. Pada model data kami ditemukan adanya tiga hubungan one-to-one dan setelah dipertimbangkan hubungan tersebut tidak perlu digabungkan.
3.4.2.4 Superclass / Subclass Relationship Types
Pada model data konseptual, tidak ditemukan adanya hubungan superclass maupun subclass.
116
3.4.2.5 Many-to-Many Binary Relationship Types Hubungan Product dengan Transaction Transaction (DocumentNo,
PurchaseOrderID,
TransactionDate, MaturityDate, DeliveryID, EmployeeID, Status, DeliveryStatus, PaymentStatus, TransferNo)
Primary Key (DocumentNo)
Foreign Key (DeliveryID) references Delivery (DeliveryID)
Foreign Key (EmployeeID) references Employee (EmployeeID)
Foreign Key (PurchaseOrderID) references PurchaseOrder (PurchaseOrderID)
Product (ProductID,
ProductName, ProductPrice, ProductSize, ProductImage, ProductType)
Primary Key (ProductID)
DetailTransaction (DocumentNo, ProductID, Qty, DetailDate) Primary Key (DocumentNo, ProductID)
Foreign Key (DocumentNo) references Transaction (DocumentNo)
117 Hubungan Product dengan Request Request (RequestID,
WarehouseID, RequestDate) Primary Key (RequestID) Foreign Key (WarehouseID) references Warehouse (WarehouseID) Product (ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductType)
Primary Key (ProductID)
RequestDetail (RequestID, ProductID, Qty) Primary Key (RequestID, ProductID)
Foreign Key (RequestID) references Request (RequestID) Foreign Key (ProductID) references Product (ProductID)
3.4.2.6 Multivalue Attribute
Multivalue attribute merupakan atribut yang memiliki nilai multiple / lebih dari satu. Dalam model data yang telah dibentuk, tidak ada entitas yang memiliki atribut demikian. Setiap atribut dibuat dengan hanya memiliki satu nilai.
Tabel 3. 19 Dokumentasi Relasi untuk Model Data Logikal
No Relation
1 Employee (EmployeeID, EmployeeName, EmployeeAdd, EmployeePhone, EmployeePass, Position)
118
No Relation
Primary Key : EmployeeID
2 Customer (CustomerID, CustomerName, CustomerAdd, CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass, DestinationAdd)
Primary Key : CustomerID
3 Message (MessageID, Topic, MessageTime, MessagePost, CustomerID, EmployeeID, Comment, CommentPost, CommentTime)
Primary Key : MessageID
Foreign Key : EmployeeID references Employee Foreign Key : CustomerID references Customer
4 Delivery (DeliveryID, DeliveryDate, WarehouseID, VehicleID) Primary Key : DeliveryID
Foreign Key : VehicleID references Vehicle Foreign Key : WarehouseID references Warehouse
5 Product (ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductType)
Primary Key : ProductID
6 Transaction (DocumentNo, PurchaseOrderID, TransactionDate, MaturityDate, SalesConfirmDate, DeliveryID, EmployeeID, Status, DeliveryStatus, PaymentStatus, TransferNo)
119
No Relation
Foreign Key : DeliveryID references Delivery
Foreign Key : PurchaseOrderID references PurchaseOrder Foreign Key : EmployeeID references Employee
7 DetailTransaction (DocumentNo, ProductID, Qty, DetailDate) Primary Key : DocumentNo, ProductID
Foreign Key : DocumentNo references Transaction Foreign Key : ProductID references Product
8 PurchaseOrder (PurchaseOrderID, CustomerID, EmployeeID, PurchaseOrderDate)
Primary Key : PurchaseOrderID
Foreign Key : CustomerID references Customer Foreign Key : EmployeeID references Employee 9 Input (EmployeeID, CustomerID, InputDate)
Primary Key : EmployeeID, CustomerID Foreign Key : EmployeeID references Employee Foreign Key : CustomerID references Customer 10 Vehicle (VehicleID, VehicleName, WarehouseID)
Primary Key : VehicleID
Foreign Key : WarehouseID references Warehouse
11 Warehouse (WarehouseID, WarehouseName, WarehouseAdd, WarehousePhone, WarehouseFax, WarehousePass, VerPass) Primary Key : WarehouseID
120
No Relation
12 Request (RequestID, WarehouseID, RequestDate) Primary Key : RequestID
Foreign Key : WarehouseID references Warehouse 13 RequestDetail (RequestID, ProductID, Qty)
Primary Key : RequestID, ProductID Foreign Key : RequestID references Request Foreign Key : ProductID references Product
Gambar 3. 15 ERD Logikal Awal
121 3.4.3 Validasi Relasi menggunakan Normalisasi
Tujuan dari langkah ini adalah untuk menghilangkan redundansi dan menghindari data yang tidak konsisten terutama bila dilakukan penambahan atau penghapusan data.
1. Employee (EmployeeID, EmployeeName, EmployeeAdd, EmployeePhone, EmployeePass, Position)
1NF : @EmployeeID, EmployeeName, EmployeeAdd, EmployeePhone, EmployeePass, Position
2NF : @EmployeeID, EmployeeName, EmployeeAdd, EmployeePhone, EmployeePass, Position
3NF : @EmployeeID, EmployeeName, EmployeeAdd, EmployeePhone, EmployeePass, PositionID
Position : @PositionID, Position
2. Customer (CustomerID, CustomerName, CustomerAdd, CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass, DeliveryAdd)
1NF : @CustomerID, CustomerName, CustomerAdd, CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass, DeliveryAdd
3. Message (MessageID, Topic, MessageTime, MessagePost, CustomerID, EmployeeID, Comment, CommentPost, CommentTime)
1NF : @MessageID, Topic, MessageTime, MessagePost, CustomerID, EmployeeID, Comment, CommentPost, CommentTime
122
2NF : @MessageID, Topic, MessageTime, MessagePost, CustomerID, EmployeeID
DetailMessage : @CommentTime, @MessageID, Comment, CommentPost
3NF : @MessageID, Topic, MessageTime, MessagePost, CustomerID, EmployeeID
DetailMessage : @CommentTime, @MessageID, Comment, CommentPost
Customer : @CustomerID, CustomerName, CustomerAdd,
CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass,
DeliveryAdd
Employee :@EmployeeID, EmployeeName,
EmployeeAdd, EmployeePhone, EmployeePass, PositionID
4. Delivery (DeliveryID, DeliveryDate, WarehouseID, VehicleID) 1NF : @ DeliveryID, DeliveryDate, WarehouseID, VehicleID 2NF : @ DeliveryID, DeliveryDate, WarehouseID, VehicleID 3NF : @ DeliveryID, DeliveryDate, WarehouseID, VehicleID
Warehouse :@WarehouseID, WarehouseName, WarehouseAdd, VerPass, WarehouseFax, WarehousePass, Warehouse Phone
123
5. Product (ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductType)
1NF : @ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductType
2NF : @ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductType
3NF : @ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductTypeID
ProductType : @ProductTypeID, ProductType
6. Transaction (DocumentNo, PurchaseOrderID, TransactionDate, MaturityDate, SalesConfirmDate, DeliveryID, EmployeeID, Status, DeliveryStatus, PaymentStatus, TransferNo)
1NF :@DocumentNo, PurchaseOrderID, TransactionDate, MaturityDate, SalesConfirmDate, DeliveryID, EmployeeID, Status, DeliveryStatus, PaymentStatus, TransferNo
2NF :@DocumentNo, PurchaseOrderID, TransactionDate, MaturityDate, SalesConfirmDate, DeliveryID, EmployeeID, Status, DeliveryStatus, PaymentStatus, TransferNo
3NF :@DocumentNo, PurchaseOrderID, TransactionDate, MaturityDate, SalesConfirmDate, DeliveryID, EmployeeID, Status, DeliveryStatus, PaymentStatus, TransferNo
Delivery : @DeliveryID, DeliveryDate, WarehouseID, VehicleID
124
PurchaseOrder :@PurchaseOrderID, PurchaseOrderDate, @CustomerID, EmployeeID
Employee :@EmployeeID, EmployeeName,
EmployeeAdd, EmployeePhone, EmployeePass, PositionID
7. DetailTransaction (DocumentNo, ProductID, Qty, DetailDate) 1NF : @ DocumentNo, @ProductID, Qty, DetailDate
2NF : @ DocumentNo, @ProductID, Qty, DetailDate 3NF : @ DocumentNo, @ProductID, Qty, DetailDate
Product : @ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductTypeID 8. PurchaseOrder (PurchaseOrderID, PurchaseOrderDate, CustomerID,
EmployeeID)
1NF :@PurchaseOrderID, PurchaseOrderDate, CustomerID, EmployeeID
2NF :@PurchaseOrderID, PurchaseOrderDate, CustomerID, EmployeeID
3NF :@PurchaseOrderID, PurchaseOrderDate, @CustomerID, EmployeeID
Customer : @CustomerID, CustomerName, CustomerAdd,
CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass,
125
Employee :@EmployeeID, EmployeeName,
EmployeeAdd, EmployeePhone, EmployeePass, PositionID
9. Input (CustomerID, EmployeeID, InputDate) 1NF :@CustomerID, @EmployeeID, InputDate 2NF :@CustomerID, @EmployeeID, InputDate 3NF :@CustomerID, @EmployeeID, InputDate
Customer : @CustomerID, CustomerName, CustomerAdd,
CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass,
DeliveryAdd
Employee :@EmployeeID, EmployeeName,
EmployeeAdd, EmployeePhone, EmployeePass, PositionID
10. Vehicle (VehicleID, WarehouseID, VehicleName) 1NF :@VehicleID, WarehouseID, VehicleName 2NF :@VehicleID, WarehouseID, VehicleName 3NF :@VehicleID, WarehouseID, VehicleName
Warehouse :@WarehouseID, WarehouseName, WarehouseAdd, VerPass, WarehouseFax, WarehousePass, WarehousePhone
11. Warehouse (WarehouseID, WarehouseName, WarehouseAdd, WarehousePhone, WarehouseFax, WarehousePass, VerPass)
126
1NF : @WarehouseID, WarehouseName, WarehouseAdd, VerPass, WarehouseFax, WarehousePass, WarehousePhone
12. Request (RequestID, RequestDate, WarehouseID) 1NF :@RequestID, RequestDate, WarehouseID 2NF :@RequestID, RequestDate, WarehouseID 3NF :@RequestID, RequestDate, WarehouseID
Warehouse :@WarehouseID, WarehouseName, WarehouseAdd, VerPass, WarehouseFax, WarehousePass, WarehousePhone
13. RequestDetail (RequestID, ProductID, Qty) 1NF :@RequestID, @ProductID, Qty 2NF :@RequestID, @ProductID, Qty 3NF :@RequestID, @ProductID, Qty
Product :@ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductTypeID
Tabel 3. 20 Dokumentasi Relasi Model Data Logikal Setelah Dilakukan Normalisasi
No Relation
1 Employee (EmployeeID, EmployeeName, EmployeeAdd, EmployeePhone, EmployeePass, PositionID)
Primary Key : EmployeeID
Foreign Key : PositionID references Position 2 Position (PositionID, Position)
127
No Relation
Primary Key : PositionID
3 Customer (CustomerID, CustomerName, CustomerAdd, CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass, DeliveryAdd)
Primary Key : CustomerID
4 Message (MessageID, Topic, MessageTime, MessagePost, CustomerID, EmployeeID)
Primary Key : MessageID
Foreign Key : EmployeeID references Employee Foreign Key : CustomerID references Customer 5 DetailMessage (MessageID, Comment, CommentPost,
CommentTime)
Primary Key : MessageID, CommentTime Foreign Key : MessageID references Message
6 Delivery (DeliveryID, DeliveryDate, WarehouseID, VehicleID) Primary Key : DeliveryID
Foreign Key : WarehouseID references Warehouse Foreign Key : VehicleID references Vehicle
7 Product (ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductTypeID)
Primary Key : ProductID
128
No Relation
8 ProductType (ProductTypeID, ProductType) Primary Key : ProductTypeID
9 Transaction (DocumentNo, CustomerID, PurchaseOrderID, TransactionDate, MaturityDate, SalesConfirmDate, DeliveryID, EmployeeID, Status, DeliveryStatus, PaymentStatus, TransferNo) Primary Key : DocumentNo
Foreign Key : CustomerID references PurchaseOrder Foreign Key : PurchaseOrder ID references PurchaseOrder Foreign Key : DeliveryID references Delivery
Foreign Key : EmployeeID references Employee
10 DetailTransaction (DocumentNo, ProductID, Qty, DetailDate) Primary Key : DocumentNo, ProductID
Foreign Key : DocumentNo references Transaction Foreign Key : ProductID references Product
11 PurchaseOrder (PurchaseOrderID, PurchaseOrderDate, CustomerID, EmployeeID)
Primary Key : PurchaseOrderID
Foreign Key : CustomerID references Customer Foreign Key : EmployeeID references Employee 12 Input (CustomerID, EmployeeID, InputDate)
Primary Key : CustomerID, EmployeeID Foreign Key : CustomerID references Customer
129
No Relation
Foreign Key : EmployeeID references Employee 13 Vehicle (VehicleID, WarehouseID, VehicleName)
Primary Key : VehicleID
Foreign Key : WarehouseID references Warehouse
14 Warehouse (WarehouseID, WarehouseName, WarehouseAdd, WarehousePhone, WarehouseFax, WarehousePass, VerPass) Primary Key : WarehouseID
15 Request (RequestID, RequestDate, WarehouseID) Primary Key : RequestID
Foreign Key : WarehouseID references Warehouse 16 RequestDetail (RequestID, ProductID, Qty)
Primary Key : RequestID, ProductID
Foreign Key : RequestID references Request Foreign Key : ProductID references Product
130
Gambar 3. 16 ERD Logikal setelah dilakukan Normalisasi
3.4.4 Validasi Relasi Terhadap Transaksi User
Tahap ini bertujuan untuk melihat apakah model data logikal mendukung transaksi yang diperlukan perusahaan.
1. Data Entry / Insert
a) Memasukkan detail data untuk Customer baru
b) Memasukkan detail data untuk Message baru yang dibuat oleh Customer
c) Memasukkan detail data untuk Transaction baru
d) Memasukkan detail data untuk balasan Message yang dilakukan oleh Employee