BAB 3
ANALISIS DAN PERANCANGAN
3.1 Riwayat Perusahaan
Perusahaan Trijaya Multi Pratama didirikan di Jakarta pada tahun 1996 beralamat di Gunung Sahari XII Blok B no 1 Komplek Gunung Sahari Megah, Jakarta Pusat dengan bentuk toko dan bergerak pada bidang penjualan dan reparasi komputer. Perusahaan ini menjalankan usahanya dengan membeli dari perusahaan-perusahaan yang menjual hardware dan software lalu menjualnya kembali perusahaan-perusahaan lain yang membutuhkan komputer.
Pada tahun 1998, toko Trijaya Multi Pratama berubah bentuk menjadi PT. Trijaya Multi Pratama. Perubahan ini dilakukan untuk penyesuaian dengan skala usahanya yang semakin membesar
PT. Trijaya Multi Pratama mempunyai visi utama yaitu menjadi perusahaan yang dikenal dan diakui baik di Indonesia dan mampu bersaing di dalam pangsa pasar nasional.
PT. Trijaya Multi Pratama hendak melakukan perubahan sistem yang sedang berjalan untuk meningkatkan kinerja perusahaan dengan menggunakan teknologi informasi khususnya sistem basis data.
3.2 Struktur Organisasi Perusahaan 3.2.1 Struktur Organisasi
Sebagai bagian dari fungsi manajemen, setiap perusahaan membuat suatu struktur organisasi agar operasional perusahaan berjalan dengan baik dan setiap bagian menjalankan fungsinya sesuai tugas dan tanggung jawab yang dimiliki oleh bagian tersebut.
Berikut ini adalah struktur organisasi dari PT. Trijaya Multi Pratama :
Gambar 3.1 Struktur Organisasi PT. Trijaya Multi Pratama Board of Director Direktur Operasional Direktur Pemasaran Direktur Keuangan & Administrasi Manajer Operasional Manajer Pemasaran Manajer Keuangan & Administrasi
3.2.2 Wewenang dan Tanggung Jawab
Di bawah ini akan dijelaskan mengenai tugas dan tanggung jawab dari masing-masing bagian pada PT. Trijaya Multi Pratama seperti yang tertera pada diagram diatas.
1. Board of Director
a. Menentukan dan mengatur kebijakan perusahaan. b. Bertindak sebagai puncak pimpinan perusahaan. c. Menentukan tujuan dari perusahaan..
d. Menerima hasil laporan kerja dari general manajer. 2. Direktur Pemasaran
a. Menentukan dan mengatur kebijakan pemasaran perusahaan. b. Bertindak sebagai pimpinan pemasaran perusahaan.
c. Menerima hasil laporan kerja dari manajer pemasaran 3. Direktur Operasional
a. Menentukan dan mengatur kebijakan operasional perusahaan. b. Bertindak sebagai pimpinan operasional perusahaan.
c. Memastikan kebenaran jalannya operasinal perusahaan. d. Menerima hasil laporan kerja dari manajer operasional. 4. Direktur Keuangan dan Administrasi
a. Menentukan dan mengatur kebijakan administrasi dan keuangan perusahaan.
b. Bertindak sebagai pimpinan keuangan dan administrasi perusahaan.
c. Memastikan kebenaran jalannya administrasi dan keuangan perusahaan.
d. Menerima hasil laporan kerja dari manajer keuangan dan administrasi.
5. Manajer Pemasaran
a. Mengkoordinir jadwal dan tugas sales sehari-hari
b. Menentukan dan membuat jadwal pertemuan terhadap klien dan mitra usaha.
c. Mewakili direktur dalam mengawasi kegiatan pemasaran sehari-hari.
d. Menjalankan kebijakan pemasaran perusahaan untuk dapat mencapai tujuan perusahaan.
e. Memberikan laporan kerja kepada direktur pemasaran. 6. Manajer Operasional
a. Mengkoordinir jadwal dan tugas teknisi dan kurir sehari-hari b. Menentukan dan membuat jadwal pengiriman barang dan penagihan kurir.
c. Menentukan dan membuat jadwal perakitan dan service teknisi. d. Mewakili direktur dalam mengawasi kegiatan operasional sehari-hari.
e. Menjalankan kebijakan operasional perusahaan untuk dapat mencapai tujuan perusahaan.
f. Memberikan laporan kerja kepada direktur operasional. 7. Manajer Keuangan dan Administrasi
a. Mengkoordinir jadwal dan tugas staff sehari-hari
b. Mewakili direktur dalam mengawasi kegiatan keuangan dan administrasi sehari-hari.
c. Menjalankan kebijakan operasional perusahaan untuk dapat mencapai tujuan perusahaan.
d. Memberikan laporan kerja kepada direktur keuangan dan administrasi.
8. Bagian Pemasaran
a. Mengadakan negosiasi dengan konsumen. b. Mencari konsumen baru.
c. Mencari rekan kerja baru
9. Staff Keuangan dan Administrasi
a. Bertanggung jawab terhadap investasi perusahaan.
b. Menetapkan kebijakan yang berhubungan dengan keuangan. c. Menganalisa seluruh laporan keuangan dan mengatasi semua anomali dalam laporan keuangan.
d. Bertanggung jawab terhadap pembayaran gaji karyawan. e. Bertanggung jawab terhadap keakuratan laporan keuangan. f. Menganalisa segmen pasar yang baru..
g. Membuat pembukuan bagi perusahaan cabang. 10. Teknisi
Bertanggung jawab terhadap reparasi dan perakitan komputer. 11. Kurir
a. Bertanggung jawab terhadap penarikan dan pengiriman barang. b. Bertanggung jawab terhadap penagihan hutang.
3.3 Proses Bisnis
3.3.1 Proses Penjualan
Pelanggan dapat melakukan pembelian secara langsung di tempat atau melalui telepon/fax/email. Pelanggan yang sudah pernah melakukan pembelian secara otomatis terdaftar sebagai pelanggan perusahaan.
Admin mencatat sales order berdasar pesanan pelanggan. Pesanan dari pelanggan kemudian diberikan ke bagian gudang untuk disiapkan barangnya.
Apabila barang tidak tersedia maka bagian gudang akan membeli dari supplier. Barang yang sudah tersedia dapat dikirim bersama-sama dengan barang pesanan..
Sebelum barang dikirim admin akan mencetak Invoice, Delivery Order, dan Faktur Pajak Standar untuk diberikan kepada kurir yang akan mengirim barang ke pelanggan.
Dalam invoice tertera kurs mata uang dan batas waktu pembayaran sesuai dengan kesepakatan, batas waktu pembayaran dicatat
juga dalam tagihan. Dimana tertera jumlah uang yang harus ditagih. Pembayaran dapat dilakukan dengan tunai/cek/giro/transfer. Jika admin belum menerima pembayaran dan sudah jatuh tempo maka admin akan memerintahkan kurir untuk melakukan penagihan kepada pelanggan.
3.3.2 Proses Pembayaran
Pelanggan yang telah membayar akan menerima kuitansi berupa rangkap pertama dari invoice. Pembayaran dapat berupa tunai/cek/giro/bukti transfer. Jika melalui transfer akan tercatat rekening bank yang di transfer. Kurir akan menyerahkan tunai/cek/giro/bukti transfer kepada admin. Admin akan mencatatnya ke dalam bukti penerimaan.
3.3.3 Proses Retur
Barang yang sudah dibeli dapat diretur apabila barang rusak/tidak sesuai dengan pesanan. Pelanggan dapat mengembalikan barang dengan membawa sendiri barang yang rusak atau menghubungi perusahaan agar mengirim kurir untuk mengambil barang. Perusahaan akan mencetak retur dan mengirim kurir untuk mengambil barang. Barang yang diretur akan diserahkan kurir ke admin untuk di cek. Setelah disetujui maka akan diserahkan ke gudang untuk diberikan barang yang rusak dan ditukar. Dan kemudian barang akan diserahkan ke pelanggan beserta surat retur.
Jika pelanggan menginginkan barang diuangkan, maka admin akan mengurus pembayaran.
3.3.4 Proses Reparasi
Untuk mereparasi, pelanggan dapat datang langsung atau menghubungi perusahaan untuk pengambilan barang yang akan direparasi. Ketika barang ditangani akan dicatat data pelanggan, barang, perlengkapan, kerusakan, dan sparepart. Data itu akan dicatat dalam voucher Work Order (WO). Admin akan mencatat isi WO. Setelah selesai direparasi maka admin akan mengirim kurir untuk mengirim barang atau memberi tahu pelanggan yang akan mengambil sendiri. Sebelum barang dikirim/diambil akan dicetak invoice. Barang yang masih garansi tidak dikenakan biaya.
3.3.5 Diagram Alir Dokumen
Diagram alir dokumen yang terdapat pada PT Trijaya Multi Pratama adalah sebgai berikut:
3.3.5.1 Diagram Alir Dokumen Penjualan
Berikut ini adalah alir dokumen proses penjualan pada PT.Trijaya Multi Pratama adalah sebagai berikut:
Mulai Terima Order Membuat Sales Order 4 3 2 Sales 1 Oder Bagian
Penjualan Bagian Gudang
3 Siapkan Brang Serahkan Barang Kartu Gudang Bersama dengan Barang N 2 Sales 1 Order Bagian Admisi Kurir Bagian Accounting 3 2 Sales 1 Order N 1 2 Cek barang y ang dipesan ada Menghubungi bagian pembelian tidak ada
Proses yang terjadi pada bagian penjualan yaitu: 1. Menerima order dari pelanggan.
2. Membuat sales order yang kemudian didistribusikan. Sales order rangkap 1, 2 dan 3 diserahkan ke bagian gudang, sales order rangkap 4 disimpan sebagai record.
Proses yang terjadi pada bagian gudang yaitu:
1. Menerima sales order rangkap 1 , 2 , dan 3 dari bagian penjualan. 2. Mengecek barang yang diminta apakah tersedia di gudang.
3. Jika tidak tersedia, bagian gudang akan menghubungi bagian pembelian. 4. Jika tersedia, bagian gudang akan segera menyiapkan barang yang
diminta.
5. Menyerahkan barang beserta sales order rangkap 2 ke kurir. 6. Mencatat barang yang keluar ke dalam kartu gudang. 7. Menyerahkan sales order rangkap 1 ke bagian administrasi.
Bagian
Penjualan GudangBagian Bagian
Admisi Kurir Bagian Accounting 1 Membuat invoice Sales Order Membuat faktur pajak Membuat DO 4 3 2 1 Faktur Pajak 4 3 2 1 DO 4 3 2 1 Invoice 4 3 N
Proses yang terjadi pada bagian administrasi yaitu: 1. Menerima sales order rangkap 1 dari bagian gudang. 2. Membuat invoice.
3. Membuat delivery order(DO). 4. Membuat faktur pajak.
5. Menyerahkan invoice, DO , dan faktur pajak rangkap 2 ke bagian kurir. 6. Invoice, DO , dan faktur pajak rangkap 4 disimpan sebagai record.
Proses yang terjadi pada kurir yaitu:
1. Menerima barang yang telah disiapkan oleh bagian gudang
2. Menerima invoice , DO, dan faktur pajak rangkap 2 dari bagian admisi
3. Mengecek barang yang diterima dari bagian gudang apakah sama dengan yang tertera di invoice.
4. Mengantarkan barang ke pelanggan. 5. Menyerahkan barang ke pelanggan.
6. Invoice, faktur pajak, dan DO rangkap 2 diserahkan ke pelanggan beserta dengan barang.
Proses yang terjadi pada bagian accounting yaitu:
1. Invoice dan faktur pajak dimasukkan ke dalam jurnal penjualan . 2. Invoice rangkap 3 disimpan sebagai record.
3. Invoice rangkap 1 akan diberikan kepada pelanggan apabila sudah membayar
I. Accou~lting menerima pembayaran dari pelanggan secara cash atau bukti pembayaran @&ti transfer, cek giro)
2. Accounting membuat bukti penerimaan
3 . Accounting menyerahkan invoice rangkap 1 sebagai bukti bahwa pelmggan sadah mentbayar
Proses yang terjadi pada bagian penjualan yaitu:
1. Bagian penjualan menerima invoice beserta barang yang diretur dari pelanggan
2. Mengecek apakah barang yang akan diretur sama dengan yang tertera di invoice
3. Membuat dokumen retur yang kemudian didistribusikan ke bagian accounting
4. Mengecek apakah pelanggan ingin menukarkan barang yang diretur dengan barang lain
5. Jika ya, membuat sales order yang kemudian didistribusikan. Sales order rangkap 1, 2 , dan 3 diberikan ke bagian gudang. 6. Sales order rangkap 4 disimpan sebagai record
Proses yang terjadi pada bagian gudang yaitu:
1. Menerima sales order rangkap 1 , 2 , dan 3 dari bagian penjualan. 2. Mengecek barang yang diminta apakah tersedia di gudang. 3. Jika tidak tersedia, bagian gudang akan menghubungi bagian pembelian.
4. Jika tersedia, bagian gudang akan segera menyiapkan barang yang diminta
5. Menyerahkan barang beserta sales order rangkap 2 ke kurir. 6. Mencatat barang yang keluar ke dalam kartu gudang. 7. Menyerahkan sales order rangkap 1 ke bagian administrasi.
Proses yang terjadi pada bagian administrasi yaitu: 1. Menerima sales order rangkap 1 dari bagian gudang. 2. Membuat invoice.
3. Membuat delivery order(DO). 4. Membuat faktur pajak.
5. Menyerahkan invoice, DO , dan faktur pajak rangkap 2 ke bagian kurir.
6. Invoice, DO , dan faktur pajak rangkap 4 disimpan sebagai record. 7. Invoice, dan faktur pajak rangkap 1 dan 3 diserahkan ke bagian accounting.
Proses yang terjadi pada kurir yaitu:
1. Menerima barang yang telah disiapkan oleh bagian gudang
2. Menerima invoice , DO, dan faktur pajak rangkap 2 dari bagian admisi 3. Mengecek barang yang diterima dari bagian gudang apakah sama dengan
yang tertera di invoice.
4. Mengantarkan barang ke pelanggan. 5. Menyerahkan barang ke pelanggan.
6. Invoice, faktur pajak, dan DO rangkap 2 diserahkan ke pelanggan beserta dengan barang.
Proses yang terjadi pada bagian accounting yaitu:
1. Invoice dan faktur pajak dimasukkan ke dalam jurnal penjualan . 2. Invoice rangkap 3 disimpan sebagai record.
3. Invoice rangkap 1 akan diberikan kepada pelanggan apabila sudah membayar
Proses yang terjadi pada bagian penjualan: 1. Menerima barang yang rusak
2. Membuat work order(WO)
3. Mendistribusikan work order. Work order rangkap 1, 2 , dan 3 diserahkan kepada bagian teknisi beserta barang yang rusak. Work order 4 disimpan sebagai record
Proses yang terjadi pada bagian teknisi:
1. Menerima work order dari bagian penjualan beserta barang yang rusak
2. Mereparasi barang yang rusak
3. Menyerahkan work order rangkap 1 dan 2 ke bagian admisi. 4. Menempelkan work order 3 pada barang yang sudah direparasi
Proses yang terjadi pada bagian admisi:
1. Menerima WO rangkap 1 dan 2 dari bagian teknisi.
2. Mengecek apakah barang yang direparasi masih garansi atau tidak.
3. Jika masih garansi, barang langsung diserahkan ke pelanggan 4. Jika masa garansi sudah habis atau barang tersebut tidak ada
garansinya, admisi membuat invoice kemudian didistribusikan. Invoice rangkap 2 diserahkan kepada pelanggan beserta barang yang sudah direparasi, sedangkan invoice rangkap 1 dan 3 diserahkan ke bagian accounting.
5. Menyimpan invoice rangkap 4 sebagai record.
Proses yang terjadi pada bagian accounting: 1. Menerima invoice rangkap 1 dan 3
2. Mencatat invoice ke dalam jurnal penjualan 3. Invoice rangkap 3 disimpan sebagai arsip
4. Invoice rangkap 1 diserahkan ke pelanggan apabila pelanggan sudah membayar.
Proses yang terjadi pada bagian kurir yaitu:
1. Menerima invoice rangkap 2 beserta dengan barang yang sudah diperbaiki dari bagian admisi
2. Mengantarkan barang yang sudah diperbaiki beserta invoice rangkap 2 kepada pelanggan
3.4 Kebutuhan Informasi
Bertujuan untuk mengetahui informasi yang dibutuhkan oleh user / pengguna Pengguna Informasi Direktur Pemasaran Direktur Operational Direktur Keuangan & Administrasi Manager Pemasaran Manager Operational Manager Keuangan & Administrasi Bagian gudang Laporan Pemesanan X X Laporan Penjualan X X X X Persediaan barang X X X Laporan Pengiriman X X Laporan Retur X X X X
Pengguna Informasi Direktur Pemasaran Direktur Operational Direktur Keuangan & Administrasi Manager Pemasaran Manager Operational Manager Keuangan & Administrasi Bagian gudang Laporan Reparasi X X X X X X Laporan Pembelian X X X X Laporan Pajak X X Tagihan jatuh tempo X X Pembayaran X X
3.5 Permasalahan Yang Dihadapi
Masalah-masalah yang dihadapi dalam sistem penjualan PT.Trijaya Multi Pratama adalah sebagai berikut:
o Data pada bagian penjualan seringkali hilang atau error. Hal ini disebabkan karena proses pencatatan bukti transaksi penjualan dan penyimpanan data-data yang berhubungan dengan transaksi penjualan masih dilakukan secara manual. o Semakin banyaknya transaksi yang terjadi setiap harinya membuat karyawan
bagian administrasi seringkali lambat dalam menangani transaksi dengan pelanggan, terutama yang berhubungan dengan penjualan, retur, dan reparasi sehingga sering mendapat keluhan dari pelanggan. Yang menyebabkan terjadinya hal ini adalah pencarian data-data transaksi masih dilakukan secara manual.
o Data persediaan barang antara bagian gudang dengan bagian administrasi kadang kala tidak sama. Hal ini disebabkan karena kesalahan-kesalahan yang berhubungan dengan human error
3.6 Usulan Pemecahan Masalah
Usulan pemecahan masalah yang kami ajukan pada PT.Trijaya Multi Pratama adalah sebagai berikut:
o Penggunaan sistem basis data relasional untuk menyimpan data-data yang berhubungan dengan transaksi penjualan. Perancangan sistem basis data ini menggunakan aplikasi database Microsoft SQL Server.
o Penggunaan aplikasi yang memungkinkan karyawan untuk menyimpan , menghapus, meng-update, dan mencari data-data transaksi dengan lebih cepat. Aplikasi ini juga memungkinkan karyawan untuk mencetak faktur penjualan dan bukti transaksi
o Setiap data transaksi penjualan akan disimpan dalam sistem basisdata dimana akan meng-update jumlah persediaan barang secara otomatis ketika transaksi dilakukan..
3.7 Perancangan Basis Data
3.7.1 Perancangan Konseptual 3.7.1.1 Identifikasi Tipe Entitas
Berikut ini adalah tabel identifikasi entitas yang menjadi kebutuhan dari perusahaan.
Nama entitas Deskripsi Alias Occurance
Pelanggan Mendeskripsikan semua orang yang
membeli barang/jasa di perusahaan
Customer Ketika memesan barang
Karyawan Mendeskripsikan semua orang yang
bekerja di perusahaan
Staff Ketika orang mulai
bekerja di perusahaan
Pemesanan Mendeskripsikan barang yang dipesan
oleh pelanggan
Pemesanan barang Ketika pelanggan memesan barang Penjualan Mendeskripsikan segala transaksi penjualan yang dilakukan perusahaan
Penjualan barang Ketika pelanggan membeli barang
Nama entitas Deskripsi Alias Occurance
Barang Mendeskripsikan semua barang yang
diperdagangkan oleh perusahaan
Item Ketika barang dibeli dari supplier Pembelian Mendeskripsikan transaksi pembelian ke Supplier yang dilakukan oleh perusahaan.
Pembelian barang Ketika terjadi pembelian barang dari supplier Supplier Mendeskripsikan semua orang/perusahaan yang memasok barang dagangan ke perusahaan.
Pemasok Barang Ketika perusahaan memesan barang.
Jenis barang Mendeskripsikan jenis-jenis barang yang
diperdagangkan di perusahaan
Kelompok barang Ketika perusahaan membeli jenis barang yang baru
Nama entitas Deskripsi Alias Occurance
Pengiriman Mendeskripsikan data barang yang dikirim ke pelanggan.
Pengiriman barang Ketika adanya pengiriman barang
Pajak Mendeskripsikan data barang yang
dikenakan pajak beserta besaran pajak yang dikenakan
Pajak barang Ketika terjadi penjualan barang yang dikenakan pajak
Kurs Mendeskripsikan perbandingan mata
uang asing terhadap rupiah
Valuta Adanya penggunaan
mata uang yang berbeda.
Tagihan Mendeskripsikan pembayaran yang
harus dibayar oleh pembeli.
Bill Ketika terjadi penjualan barang
Pembayaran Mendeskripsikan jenis dan jumlah
pembayaran yang dilakukan pembeli
Payment Ketika pelanggan melakukan
Nama entitas Deskripsi Alias Occurance
Retur Mendeskripsikan pengembalian
barang oleh pembeli
Pengembalian barang Ketika pelanggan mengembalikan barang Reparasi Mendeskripsikan perbaikan terhadap
barang yang rusak
Perbaikan barang Ketika pelanggan melakukan perbaikan barang Bank Mendeskripsikan bank dimana perusahaan menjadi nasabah di bank tersebut Ketika terjadi transaksi pembayaran yang melibatkan bank
3.7.1.2 Identifikasi Tipe Relasi
Pada tahapan ini ditentukan multiplicity dari relasi tiap entiti yang telah diidentifikasi pada tahap sebelumnya
Entity Name Multiplicity Relationship Entity Name Multiplicity
1..1 Melakukan Pemesanan 1..* 1..1 Melakukan Reparasi 1..* 1..1 Dilakukan Penjualan 1..* 1..1 Dilakukan Pengiriman 1..* Pelanggan 1..1 Dikenai Pajak 1..* 1..1 Mengatur Pemesanan 0..* 1..1 Mengatur Penjualan 0..* 1..1 Mengatur Pengiriman 0..* 1..1 Mengatur Pajak 0..* 1..1 Mengatur Retur 0..* 1..1 Mengatur Reparasi 0..* Karyawan 1..1 Mengatur Pembelian 0..* 1..* Dilakukan Pemesanan 1..* 1..* Dilakukan Pembelian 1..* 1..* Dilakukan Penjualan 1..* 1..* Dilakukan Pengiriman 1..* 1..* Dikenai Pajak 1..* Barang 1..* Dilakukan Retur 1..*
Entity Name Multiplicity Relationship Entity Name Multiplicity
Barang 1..* Dilakukan Reparasi 1..*
Supplier 1..1 Memasok Pembelian 1..*
Bank 0..1 Menerima Pembayaran 1..*
Kurs 1..1 Dipunyai Penjualan 1..*
Pemesanan 1..1 Menyebabkan Penjualan 1..1
1..1 Menyebabkan Pengiriman 1..1 1..1 Menyebabkan Pajak 1..1 1..1 Mempunyai Retur 0..* 1..1 Dipunyai Reparasi 0..1 Penjualan 1..1 Mempunyai Tagihan 0..1
Tagihan 1..1 Dilakukan Pembayaran 1..*
Jenis barang 1..1 Mempunyai Barang 1..*
Tabel 3.3 Tabel Relasi Tiap Entitas
3.7.1.3 Entity Relationship Diagram dengan Entitas dan Hubungan
Berikut ini adalah ERD konseptual yang dibuat, memuat nama entitas serta hubungan atau relasinya
Pelanggan Barang Supplier Bank Kurs Pemesanan Penjualan Tagihan Karyawan Jenis_barang Pengiriman Retur Pajak Pembelian Pembayaran Reparasi Melakukan Å 1..1 1..* 1. .1 1. .1 1..1 1..1 1..1 1..1 1. .1 1..1 1. .1 1. .1 1. .1 0 ..* 0..* 0..* 1..* 1..* 0. .* 0..* 0. .* 0..* Melakukan Æ M e ngat ur Å M e ny e b ab k a n Æ Mengatur Å Me mp u n ya i Æ M e ngat ur Å Mengatur Æ M e n g at ur Æ M e n gat ur Å Mengat u r Å 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* Dilakukan Æ Dilakukan Å Dilakukan Æ Dikenai Å D ila ku ka n Æ Me ma s o k Å 1 ..* 1 ..* 1..* Di la k u k a n Æ Di la k u k a n Æ 0..1 1..* Menerima Æ 1..1 1 ..* D ipuny ai Å 1..1 Meny ebabkan Å 1..1 1..1 M e ny e b abk an Å 1..1 1 ..1 Me mp u n y a i Æ Mempuny ai Æ 1..1 0..* 1. .1 0..1 1..1 1..* Dilakukan Å 1..* 1..1 Di la k u k a n Æ 1..1 1..1 1..* Di k e n a i Æ 1. .* Di la k u k a n Æ D ipuny ai Æ 1. .1 0..1 1..*
3.7.1.4 Identifikasi dan Hubungan Atribut dengan Entitas atau Tipe Relasi dan Domain Atribut
Pada tahap ini diidentifikasi atribut-atribut dan menghubungkannya dengan entiti yang sesuai sekaligus menentukan domain atribut.
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multivalue
Kd_pelanggan Secara unik mendeskripsikan seorang
pelanggan
Integer Tidak Tidak
Nama Nama lengkap
pelanggan / perusahaan
Char [30] Tidak Tidak
Alamat Alamat pelanggan
Char[50] Tidak Tidak
Kota Kota dari alamat pelanggan
Char[20] Tidak Tidak Pelanggan
Kode_pos Kode pos dari alamat
pelanggan
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang Null Multivalue Telepon Telepon pelanggan Char[15] Tidak Ya Email Email pelanggan Char[30] Ya Tidak Fax Fax pelanggan Char[15] Ya Tidak Contact_person Nama orang yang dihubungi
Char[30] Tidak Tidak Pelanggan NPWP Nomor Wajib Pajak pelanggan Char[20] [00.000.000.0-000.000] – [99.999.999.9-999.999] Ya Tidak
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multivalue
Kd_supplier Secara unik mendeskripsikan seorang supplier
Integer Tidak Tidak
Nama Nama lengkap
supplier
Char[30] Tidak Tidak
Alamat Alamat supplier Char[50] Tidak Tidak Kota Kota dari alamat
supplier
Char[20] Tidak Tidak
Kode_pos Kode pos dari alamat supplier
Char[5] Ya Tidak
Telepon Telepon supplier Char[15] Tidak Ya
Email Email dari
supplier
Char[30] Ya Tidak
Fax Fax supplier Char[15] Ya Tidak
Supplier
Contact_person Nama orang yang dihubungi
Char[30] Tidak Tidak
Nama Entitas
Atribut Deskripsi Tipe Data dan
Panjang
Null Multivalue
Kd_karyawan Secara unik mendeskripsikan karyawan Char[4] [K000-K999] Tidak Tidak
Nama Nama karyawan Char[30] Tidak Tidak Tanggal_lahir Tanggal lahir
karyawan
Datetime Tidak Tidak
Jenis_kelamin Jenis kelamin karyawan
Char[10] Tidak Tidak
Mulai_kerja Tanggal dimana karyawan
pertama kali bekerja
Datetime Tidak Tidak
Jabatan Jabatan karyawan
Char[20] Tidak Tidak
Alamat Alamat karyawan
Char[50] Tidak Tidak
Telepon Telepon karyawan
Char[15] Tidak Ya Karyawan
Kota Kota dari alamat karyawan
Nama Entitas
Atribut Deskripsi Tipe Data dan
Panjang
Null Multivalue
Kode_pos Kode pos dari alamat karyawan Char[5] [00000]-[99999] Ya Tidak Karyawan
Gaji Gaji yang diterima karyawan
Numeric[10] Tidak Tidak
Tabel 3.6 Tabel Identifikasi Atribut Karyawan
Nama Entitas
Atribut Deskripsi Tipe Data dan
Panjang
Null Multivalue
Kd_barang Secara unik mendeskripsikan barang yang diperdagangkan di perusahaan
Integer Tidak Tidak Barang
Nama Entitas
Atribut Deskripsi Tipe Data dan
Panjang
Null Multivalue
Harga_beli Harga barang ketika dibeli dari supplier
Numeric[10] Tidak Tidak
Harga_jual Harga barang ketika dijual
Numeric[10] Tidak Tidak
Mata_uang Mata uang harga beli dan harga jual
Char[3] Tidak Tidak
Satuan Satuan barang Char[5] Tidak Tidak Stock_aktif Stock barang
yang ada saat ini
Integer Tidak Tidak
Assembly Mendeskripsikan termasuk barang rakitan atau tidak
Char[1] Tidak Tidak Barang
Keterangan Informasi tambahan
mengenai barang
Char[50] Ya Tidak
Nama Entitas
Atribut Deskripsi Tipe Data dan
Panjang
Null Multivalue
Kd_jenis Mendeskripsikan jenis barang
Integer Tidak Tidak Jenis_barang
Nama_jenis Nama jenis barang
Char[10] Tidak Tidak
Tabel 3.8 Tabel Identifikasi Atribut Jenis_barang
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang Null Multivalue No_rekening No rekening bank yang didiskripsikan secara unik
Char[10] Tidak Tidak Bank
Nama_bank Nama bank dimana perusahaan menjadi nasabah
Nama Entitas
Atribut Deskripsi Tipe Data dan
Panjang
Null Multivalue
Alamat Alamat bank Char[50] Tidak Tidak Bank
Kota Kota bank Char[20] Tidak Tidak
Tabel 3.9 Tabel Identifikasi Atribut Bank
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang Null Multivalue Kd_kurs Mendeskripsika n secara unik perbandingan mata uang rupiah dan dollar
Datetime Tidak Tidak Kurs Rupiah_haria n Nilai rupiah terhadap dollar setiap hari
Numeric[6] Tidak Tidak
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
Kd_pemesanan Secara unik mendeskripsikan kode pemesanan Char[10] [SO00000000] – [SO99999999] Tidak Tidak Pemesanan Tanggal_pemesa nan Tanggal dimana dilakukan pemesanan
datetime Tidak Tidak
Tabel 3.11 Tabel Identifikasi Atribut Pemesanan
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
Kd_penjualan Secara unik mendeskripsikan kode penjualan Char[11] [TMP00000000}-[TMP99999999] Tidak Tidak
Tanggal_penjualan Tanggal dimana dilakukan
penjualan
datetime Tidak Tidak
Penjualan
Nama Entitas
Atribut Deskripsi Tipe Data
dan Panjang
Null Multivalue
Tanggal_pembayaran Tanggal untuk membayar / jatuh tempo
Datetime Tidak Tidak Penjualan
Total_harga Total harga yang dijual
Numeric[1 2]
Tidak Tidak
Tabel 3.12 Tabel Identifikasi Atribut Penjualan
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
Kd_penagihan Secara unik mendeskripsikan kode penagihan Char[10] [TG00000000] – [TG99999999] Tidak Tidak Tanggal_penagiha n Tanggal untuk membayar/jatuh tempo
Datetime Tidak Tidak Tagihan
Total_pembayara n
Jumlah pembayaran
Numeric[12] Tidak Tidak
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
Kd_pembayaran Secara unik mendeskripsikan kode pembayaran Char[8] [BR000000]-[BR999999] Tidak Tidak Jenis_pembayara n Jenis pembayaran yang dilakukan , melalui cek, giro, cash, transfer
char [10] Tidak Tidak
Tanggal_bayar Tanggal dimana dilakukan
pembayaran oleh pelanggan
Datetime Tidak Tidak
Pembayaran
Jumlah_uang Jumlah uang yang dibayarkan
Numeric[12] Tidak Tidak
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
No_pajak Mendeskripsikan secara unik nomor
seri pajak Char[17] 026-0000000] – [EPEJ-026-9999999] Tidak Tidak Tanggal_pajak Tanggal keluarnya pajak.
Datetime Tidak Tidak
Pajak
PPN Besaran pajak
yang dikenakan
Numeric[10] Tidak Tidak
Tabel 3.15 Tabel Identifikasi Atribut Pajak
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
Kd_pengiriman Secara unik mendeskripsikan pengiriman Char[10] [DO00000000}-[DO99999999] Tidak Tidak Pengiriman Tanggal_pengirim an Tanggal dikirim barang
Datetime Tidak Tidak
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
Kd_reparasi Secara unik mendeskripsikan kode reparasi Char[10] [WO00000000}-[WO99999999] Tidak Tidak
Nama_barang Nama barang yang direparasi
Char[15] Tidak Tidak
Garansi Garansi barang Char[15] Ya Tidak Model Model barang Char[20] Tidak Tidak
Jenis_garansi Jenis garansi Char[30] Ya Tidak Merk Merk barang Char[20] Tidak Tidak Serial_number Nomor serial
barang
Char[15] Tidak Tidak
Kerusakan Kerusakan yang terjadi pada
barang
Char[50] Tidak Tidak
Perlengkapan Perlengkapan barang
Char[50] Tidak Tidak
Reparasi
Tanggal_repara si
Datetime Tidak Tidak
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
Kd_pembelian Secara unik mendeskripsika n kode pembelian Char[11] [PMB00000000]-[PMB99999999] Tidak Tidak Tanggal_pemb elian Tanggal ketika barang dibeli
Datetime Tidak Tidak
PPN Besaran pajak
yang dikenakan
Currrency Tidak Tidak
Pembelian
Total_harga Total harga yang dibeli
Numeric[12] Tidak Tidak
Tabel 3.18 Tabel Identifikasi Atribut Pembelian
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
Kd_retur Secara unik mendeskripsikan kode retur Char[7] [RT00000]-[RT99999] Tidak Tidak Retur Keterangan Alasan pengembalian barang Char[50] Ya Tidak
Nama Entitas
Atribut Deskripsi Tipe Data dan Panjang
Null Multi value
Tanggal_retur Tanggal ketika barang diretur
Datetime Tidak Tidak Retur
Total_harga Total harga yang diretur
Numeric[12] Tidak Tidak
Tabel 3.19 Tabel Identifikasi Atribut Retur
3.7.1.5 Menentukan atribut candidate dan primary key
Langkah berikutnya adalah menentukan candidate key dan menentukan primary key tiap entiti tersebut :
Nama Entitas Candidate key Primary key
Pelanggan Kd_pelanggan NPWP
Kd_pelanggan
Supplier Kd_supplier Kd_supplier
Karyawan Kd_karyawan Kd_karyawan
Barang Kd_barang Kd_barang
Jenis_barang Kd_jenis Kd_jenis
Bank No_rekening No_rekening
Kurs Kd_kurs Kd_kurs
Penjualan Kd_penjualan Kd_penjualan
Tagihan Kd_penagihan Kd_penagihan
Pembayaran Kd_pembayaran Kd_pembayaran
Pajak No_pajak No_pajak
Pengiriman Kd_pengiriman Kd_pengiriman
Reparasi Kd_reparasi Kd_reparasi
Retur Kd_retur Kd_retur
Pembelian Kd_pembelian Kd_pembelian
Melakukan Å 1..1 1..* 1. .1 1. .1 1..1 1..1 1..1 1..1 1. .1 1..1 1. .1 1 ..1 1. .1 0. .* 0..* 1..* 1..* 0. .* 0..* 0. .* 0..* Melakukan Æ M e ng at ur Å M e ny e bab k a n Æ Mengatur Å Me mp u n ya i Æ M e n gat ur Å Mengatur Æ M eng at ur Æ M e ng at ur Å Meng at ur Å 1 ..* 1..* 1..* 1. .* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1. .* Dilakukan Æ Dilakukan Å Dilakukan Æ Dikenai Å D ila ku ka n Æ Me ma so k Å 1. .* 0..* 1 ..* D ila k u k a n Æ D ila k u k a n Æ 0..1 1..* Menerima Æ 1..1 1 ..* D ipu ny a i Å 1..1 Meny ebabkan Å 1..1 1..1 M e ny eba bk a n Å 1..1 1 ..1 Me mp u n ya i Æ Mempuny ai Æ 1..1 0..* 1. .1 0..1 1..1 1..* Dilakukan Å Pemesanan Kd_pemesanan Pelanggan Kd_pelanggan Reparasi Kd_reparasi Jenis_barang Kd_jenis Barang Kd_barang Pembelian Kd_pembelian Supplier Kd_supplier Karyaw an Kd_karyaw an Pengiriman Kd_pengiriman Penjualan Kd_penjualan Retur Kd_retur Pajak No_pajak Kurs Kd_kurs Tagihan Kd_tagihan Pembayaran Kd_pembayaran Bank No_rekening 1. .1 1..1 1..1 1..* Di k e n a i Æ Di la ku ka n Æ Di la ku ka n Æ 1..* 1. .* D ipu ny a i Æ 1 ..1 0..1 1..*
3.7.1.6 Mengecek model dari perulangan
Dalam tahap ini dilakukan pengecekan atas semua perulangan dalam model
• Menghilangkan relasi berulang
Sebuah relasi yang berulang adalah jika informasi yang sama mampu didapatkan melalui relasi lain. Dalam hal ini relasi yang berulang tidak diperlukan dan harus dihilangkan.
Dalam hal ini menghilangkan :
Entity Name Multiplicity Relationship Entity Name Multiplicity
1..1 Dilakukan Penjualan 1..*
1..1 Dilakukan Pengiriman 1..*
Pelanggan
1..1 Dikenai Pajak 1..*
Dimana pelanggan yang melakukan pemesanan adalah sama dengan pelanggan yang dilakukan penjualan, dilakukan pengiriman dan dikenai pajak. Sehingga relasi itu harus dihilangkan.
Pelanggan Barang Supplier Bank Kurs Pemesanan Penjualan Tagihan Karyawan Jenis_barang Pengiriman Retur Pajak Pembelian Pembayaran Reparasi Melakukan Å 1..1 1..* 1. .1 1. .1 1..1 1..1 1..1 1..1 1. .1 1..1 1. .1 1. .1 1. .1 0. .* 0..* 0..* 1..* 1..* 0. .* 0..* 0. .* 0..* Melakukan Æ M engat u r Å M e ny ebabk an Æ Mengatur Å Me m p u n y a i Æ M engat ur Å Mengatur Æ M e ngat ur Æ M engat u r Å Mengat ur Å 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* 1..* Dilakukan Æ Dilakukan Å Dilakukan Æ Dikenai Å D ila ku ka n Æ Me m a so k Å 1. .* 1. .* D ila k u k a n Æ D ila k u k a n Æ 0..1 1..* Menerima Æ 1..1 1. .* D ipuny ai Å 1..1 Meny ebabkan Å 1..1 1..1 M eny ebabk an Å 1..1 1. .1 M e m puny a i Æ Mempuny ai Æ 1..1 0..* 1. .1 0..1 1..1 1..* Dilakukan Å D ipuny ai Æ 1. .1 0..1 1..*
Gambar 3.13 Entity Relationship Diagram (ERD) Konseptual setelah pengecekan perulangan
3.7.1.7 Memvalidasi model konseptual lokal terhadap transaksi user Dalam tahap ini, memastikan bahwa model konseptual lokal mendukung transaksi yang dibutuhkan.
Pelanggan Barang Supplier Bank Kurs Pemesanan Penjualan Tagihan Karyawan Jenis_barang Pengiriman Retur Pajak Pembelian Pembayaran Reparasi Melakukan Å Melakukan Æ M eng at u r Å M e ny eba bk a n Æ Mengatur Å Mempu n y a i Æ M enga tu r Å Mengatur Æ Me n g a tu r Æ Me n g a tu r Å Men gat ur Å Dilakukan Æ Dilakukan Å Dilakukan Æ Dikenai Å D ila k u k a n Æ Me ma s o k Å D ila k u k a n Æ Dila k u k a n Æ Menerima Æ D ip uny ai Å Meny ebabkan Å M eny ebab k a n Å Me mp u n y a i Æ Mempuny ai Æ Dilakukan Å (1) (2) (13) (10) (16) (14) (11) (12) (18) (7) (8) (4) (6) (20) (22) (5) (9) (17) (15) (21) (3) (23) (24) (25) (26) (27) (28) (30) (29) Di p u n y a i --> (19)
Gambar 3.14 Entity Relationship Diagram (ERD) Konseptual menggunakan pathway
Deskripsi dari transaksi :
1. Mengecek pelanggan melakukan pemesanan 2. Mengecek pelanggan melakukan reparasi 3. Mengecek karyawan yang dilakukan pemesanan 4. Mengecek karyawan yang melakukan penjualan 5. Mengecek karyawan yang melakukan pengiriman 6. Mengecek karyawan yang mengatur pajak
7. Mengecek karyawan yang mengatur retur 8. Mengecek karyawan yang melakukan reparasi 9. Mengecek karyawan yang melakukan pembelian 10. Mengecek barang yang dipesan
11. Mengecek barang yang dikirim 12. Mengecek barang yang dikenai pajak 13. Mengecek barang yang direparasi 14. Mengecek barang yang dibeli 15. Mengecek barang yang dijual 16. Mengecek barang yang diretur 17. Mengecek pembelian oleh supplier
18. Mengecek barang berdasarkan jenis barang 19. Mengecek tagihan berdasarkan penjualan 20. Mengecek kurs
21. Mengecek pembayaran berdasarkan tagihan 22. Mengecek pembayaran ke bank
23. Mengecek retur berdasarkan penjualan 24. Mengecek pengiriman berdasarkan penjualan
25. Kegiatan untuk menambah, mengedit, menghapus record pada tabel Bank
26. Kegiatan untuk menambah, mengedit, menghapus record pada tabel kurs
27. Kegiatan untuk menambah, mengedit, menghapus record pada tabel Supplier
28. Kegiatan untuk menambah, mengedit, menghapus record pada tabel Karyawan
29. Kegiatan untuk menambah, mengedit, menghapus record pada tabel Barang
30. Kegiatan untuk menambah, mengedit, menghapus record pada tabel Pelanggan
31. Kegiatan untuk menambah, mengedit, menghapus record pada tabel User
3.7.2 Perancangan Logikal
3.7.2.1 Menghilangkan fitur yang tidak sesuai dengan model relasional
Dalam tahap ini, untuk menyaring model data lokal konseptual untuk menghilangkan fitur yang tidak sesuai dengan model relasional
3.7.2.1.1 Remove mny-to-many
(*:*I
bi~lkly rePabionsP.r@ @pes.
.
MernpunyaiK:u-Cet*.
Mempunyai
3
Gambar 3.16 Remove muI~-valued a&ibuk
3.7.2.2 Derive relations for local logical data model
Meilciptakan relasi Iokal IogikaP data model untuk rnerepresentasikan entitas; hubungan dan afribut yang telah diidentifikasi
3.7.2.2.1 Strong Entity
Mengidentifikasi strong entity dalam model data dan menyangkut semua atribut-atribut sederharna dari entitas tersebut. Strong entity adalah entitas yang keberadaannya tidak bergantung pada entitas lain
Pelanggan (Kd_pelanggan, Nama, Alamat, Kota, Kode_pos, Email, Fax, Contact_person, NPWP)
Primary Key Æ Kd_pelanggan
Supplier (Kd_supplier, Nama, Alamat, Kota, Kode_pos, Email, Fax, Contact_person)
Primary Key Æ Kd_supplier
Karyawan (Kd_karyawan, Nama, Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota, Kode_pos, Gaji)
Primary Key Æ Kd_Karyawan
Barang (Kd_barang, Nama_barang, Harga_beli, Harga_jual, Mata_uang, Satuan, Stock_aktif, Assembly, Keterangan)
Primary Key Æ Kd_barang
Primary Key ÆKd_jenis
Bank (No_rekening, Nama_bank, Alamat, Kota)
Primary Key Æ No_rekening
Kurs (Kd_kurs, Rupiah_harian, Rupiah_mingguan)
Primary Key Æ Kd_kurs
Pemesanan (Kd_pemesanan, Tanggal_pemesanan)
Primary Key Æ Kd_pemesanan
Penjualan (Kd_penjualan, Tanggal_penjualan, Discount, Tanggal_pembayaran, Total_harga)
Primary KeyÆ Kd_penjualan
Tagihan (Kd_penagihan, Tanggal_penagihan, Total_pembayaran)
Primary KeyÆ Kd_penagihan
Pembayaran (Kd_pembayaran, Jenis_pembayaran, Tanggal_bayar, Jumlah_uang)
Pajak (No_pajak, Tanggal_pajak, PPN)
Primary Key Æ No_pajak
Pengiriman (Kd_pengiriman, Tanggal_pengiriman)
Primary KeyÆ Kd_pengiriman
Reparasi (Kd_reparasi, Nama_barang, Garansi, Model, Jenis_garansi, Merk, Serial_number, Kerusakan, Perlengkapan,Tanggal_reparasi)
Primary KeyÆ Kd_reparasi
Pembelian (Kd_pembelian, Tanggal_pembelian, Total_harga)
Primary KeyÆ Kd_pembelian
Retur (Kd_retur, Keterangan, Tanggal_retur, Total_harga)
3.7.2.2.2 Weak entity
Mengidentifikasi weak entity dalam model data dan menyangkut semua atribut-atribut sederharna dari entitas tersebut. Weak entity adalah entitas yang keberadaannya bergantung pada entitas lainnya.
Detil_penjualan (Qty, Harga_jual)
Primary KeyÆ None
Detil_pemesanan (Qty, Harga_jual)
Primary KeyÆ None
Spare_part ( )
Primay KeyÆ None
Detil_pembelian (Qty , Harga_beli)
PrimaryKeyÆ None
Detil_retur (Qty, Harga_barang)
Primay KeyÆ None
Detil_pengiriman (Qty, Satuan)
Detil_pajak (Qty, Harga_jual)
Primary KeyÆ None
Telepon_pelanggan (No_telepon, Kd_pelanggan)
Primary KeyÆ No_telepon, Kd_pelanggan
Foreign Key Æ Kd_pelanggan references Pelanggan (Kd_pelanggan)
Telepon_supplier (No_telepon)
Primary Key Æ No_telepon, Kd_supplier
Foreign Key ÆKd_supplier references Supplier (Kd_supplier)
Telepon_karyawan (No_telepon)
Primary KeyÆ No_telepon, Kd_karyawan
Foreign Key Æ Kd_karyawan references Karyawan (Kd_karyawan)
3.7.2.2.3 One-to-many (1:*) binary relationship types
Entitas di “one side” dari relasi didesain sebagai entitas parent dan entitas di “many side” didesain sebagai entitas child. Dimana primary key dari parent dicopy ke dalam child dan menjadi foreign key
Post Kd_pelanggan ke Pemesanan dalam model 1:* relationship
Pelanggan (Kd_pelanggan, Nama, Alamat, Kota, Kode_pos, Email, Fax, Contact_person, NPWP)
Primary Key Æ Kd_pelanggan
Pemesanan (Kd_pemesanan,
Tanggal_pemesanan, Kd_pelanggan)
Primary Key Æ Kd_pemesanan
Foreign Key Æ Kd_pelanggan references Pelanggan (Kd_pelanggan)
Post Kd_pelanggan ke Reparasi dalam model 1:* relationship
Pelanggan (Kd_pelanggan, Nama, Alamat, Kota, Kode_pos, Email, Fax, Contact_person, NPWP)
Primary Key Æ Kd_pelanggan
Reparasi (Kd_reparasi, Nama_barang, Garansi, Model, Jenis_garansi, Merk, Serial_number, Kerusakan,
Perlengkapan,Tanggal_reparasi, Kd_pelanggan)
Primary KeyÆ Kd_reparasi
Foreign KeyÆ Kd_pelanggan
Post Kd_karyawan ke Pemesanan dalam model 1:* relationship
Karyawan (Kd_karyawan, Nama,
Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota,
Kode_pos, Gaji)
Primary Key Æ Kd_Karyawan
Pemesanan (Kd_pemesanan,
Tanggal_pemesanan, Kd_pelanggan, Kd_karyawan)
Primary Key Æ Kd_pemesanan
ForeignKey Æ Kd_pelanggan references Pelanggan(Kd_pelanggan)
Kd_karyawan references Karyawan (Kd_karyawan)
Post Kd_karyawan ke Penjualan dalam model 1:* relationship
Karyawan (Kd_karyawan, Nama,
Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota,
Kode_pos, Gaji)
Primary Key Æ Kd_Karyawan
Penjualan (Kd_penjualan, Tanggal_penjualan, Discount, Tanggal_pembayaran, Total_harga, Kd_karyawan)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_karyawan references Karyawan (Kd_karyawan)
Post Kd_karyawan ke Pengiriman dalam model 1:* relationship
Karyawan (Kd_karyawan, Nama,
Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota,
Kode_pos, Gaji)
Primary Key Æ Kd_Karyawan
Pengiriman (Kd_pengiriman, Tanggal_pengiriman, Kd_karyawan)
Primary KeyÆ Kd_pengiriman
Foreign KeyÆ Kd_karyawan references Karyawan (Kd_karyawan)
Post Kd_karyawan ke Pajak dalam model 1:* relationship
Karyawan (Kd_karyawan, Nama,
Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota,
Kode_pos, Gaji)
Primary Key Æ Kd_Karyawan
Pajak (No_pajak, Tanggal_pajak, PPN, Kd_karyawan)
Primary Key Æ No_pajak
Foreign Key Æ Kd_karyawan references Karyawan (Kd_karyawan)
Post Kd_karyawan ke Retur dalam model 1:* relationship
Karyawan (Kd_karyawan, Nama,
Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota,
Kode_pos, Gaji)
Primary Key Æ Kd_Karyawan
Retur (Kd_retur, Keterangan, Tanggal_retur, Total_harga, Kd_karyawan)
Primary KeyÆ Kd_retur
Foreign keyÆ Kd_karyawan references Karyawan (Kd_karyawan)
Post Kd_karyawan ke Reparasi dalam model 1:* relationship
Karyawan (Kd_karyawan, Nama,
Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota,
Kode_pos, Gaji)
Primary Key Æ Kd_Karyawan
Reparasi (Kd_reparasi, Nama_barang, Garansi, Model, Jenis_garansi, Merk, Serial_number, Kerusakan, Perlengkapan,
Tanggal_reparasi, Kd_pelanggan, Kd_karyawan)
Primary KeyÆ Kd_reparasi
Foreign Key Æ Kd_karyawan references Karyawan (Kd_karyawan)
Kd_pelanggan references Pelanggan (Kd_pelanggan)
Post Kd_karyawan ke Pembelian dalam model 1:* relationship
Karyawan (Kd_karyawan, Nama,
Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota,
Kode_pos, Gaji)
Primary Key Æ Kd_Karyawan
Pembelian (Kd_pembelian, Tanggal_pembelian, Total_harga, Kd_karyawan)
Primary KeyÆ Kd_pembelian
Foreign keyÆ Kd_karyawan references Karyawan (Kd_karyawan)
Post No_rekening ke Pembayaran dalam model 1:* relationship
Bank (No_rekening, Nama_bank, Alamat, Kota)
Primary Key Æ No_rekening
Pembayaran (Kd_pembayaran, Jenis_pembayaran, Tanggal_bayar, Jumlah_uang, No_rekening)
Primary KeyÆ Kd_pembayaran
Foreign Key Æ No_rekening references Bank (No_rekening)
Post Kd_supplier ke Pembelian dalam model 1:* relationship
Supplier (Kd_supplier, Nama, Alamat, Kota, Kode_pos, Email, Fax, Contact_person)
Primary Key Æ Kd_supplier
Pembelian (Kd_pembelian, Tanggal_pembelian, Total_harga, Kd_karyawan, Kd_supplier)
Primary KeyÆ Kd_pembelian
Foreign key Æ Kd_karyawan references Karyawan (Kd_karyawan)
Kd_supplier references Supplier (Kd_supplier)
Post Kd_kurs ke Penjualan dalam model 1:* relationship
Kurs (Kd_kurs, Rupiah_harian, Rupiah_mingguan)
Primary Key Æ Kd_kurs
Penjualan (Kd_penjualan,
Tanggal_penjualan, Discount, Tanggal_pembayaran, Total_harga, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_karyawan references Karyawan (Kd_karyawan)
Post Kd_penjualan ke Retur dalam model 1:* relationship
Penjualan (Kd_penjualan,
Tanggal_penjualan, Discount, Tanggal_pembayaran, Total_harga, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_karyawan references Karyawan (Kd_karyawan)
Kd_kurs references Kurs (Kd_kurs)
Retur (Kd_retur, Keterangan,
Tanggal_retur, Total_harga, Kd_karyawan, Kd_penjualan)
Primary KeyÆ Kd_retur
Foreign KeyÆ Kd_penjualan references Penjualan (Kd_penjualan)
Kd_karyawan references Karyawan (Kd_karyawan)
Post Kd_penagihan ke Pembayaran dalam model 1:* relationship
Tagihan (Kd_penagihan, Tanggal_penagihan, Total_pembayaran)
Primary KeyÆ Kd_penagihan
Pembayaran (Kd_pembayaran, Jenis_pembayaran, Tanggal_bayar,
Jumlah_uang, No_rekening, Kd_penagihan)
Primary KeyÆ Kd_pembayaran
Foreign Key Æ Kd_penagihan references Tagihan (Kd_penagihan)
No_rekening references Bank (No_rekening)
Post Kd_jenis ke Barang dalam model 1:* relationship
Jenis_barang (Kd_jenis, Nama_jenis)
Primary Key ÆKd_jenis
Barang (Kd_barang, Nama_barang, Harga_beli, Harga_jual, Mata_uang, Satuan, Stock_aktif, Assembly, Keterangan, Kd_jenis)
Primary Key Æ Kd_barang
Foreign KeyÆ Kd_jenis references Jenis_barang (Kd_jenis)
3.7.2.2.4 One-to-one (1:1) binary relationship types Mandatory participation on both sides of 1:1 relationship
Dalam tahap ini dilakukan penggabungan entitas ke dalam satu relasi dan memilih salah satu atribut menjadi primary key salah satu entitas agar menjadi primary key dari entitas yang baru. Sementara primary key yang tidak terpakai menjadi alternatif key. Jika terdapat atribut lain maka atribut ini juga termasuk dalam relasi yang baru.
Pemesanan (Kd_pemesanan, Tanggal_pemesanan, Kd_pelanggan, Kd_karyawan)
Primary Key Æ Kd_pemesanan
Kd_karyawan references Karyawan (Kd_karyawan)
Penjualan (Kd_penjualan, Tanggal_penjualan, Discount, Tanggal_pembayaran, Total_harga, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_pemesanan references Pemesanan (Kd_pemesanan) Kd_karyawan references Karyawan (Kd_karyawan) Kd_kurs references Kurs (Kd_kurs)
Mengalami penggabungan (merged) dimana atribut dari Pemesanan menjadi atribut dari relasi baru yang bernama Penjualan. Primary key dari relasi yang baru adalah Kd_penjualan yang berasal dari Penjualan.
Penjualan (Kd_penjualan, Tanggal_penjualan, Kd_pemesanan, Tanggal_pemesanan, Discount, Tanggal_pembayaran, Total_harga, Kd_pelanggan, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_Pelanggan references Pelanggan (Kd_pelanggan) Kd_karyawan references Karyawan (Kd_karyawan) Kd_kurs references Kurs (Kd_kurs)
Antara Penjualan dan pengiriman terdapat mandatory participation on both side of 1:1 relationship
Penjualan (Kd_penjualan, Tanggal_penjualan, Kd_pemesanan, Discount, Tanggal_pembayaran, Total_harga, Kd_pelanggan, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_pelanggan references Pelanggan (Kd_pelanggan) Kd_karyawan references Karyawan (Kd_karyawan) Kd_kurs references Kurs (Kd_kurs)
Pengiriman (Kd_pengiriman, Tanggal_pengiriman, Kd_karyawan)
Primary KeyÆ Kd_pengiriman
Foreign KeyÆ Kd_karyawan references Karyawan (Kd_karyawan)
Mengalami penggabungan (merged) dimana atribut dari Pengiriman menjadi atribut dari relasi baru yang bernama Penjualan. Primary key dari relasi yang baru adalah Kd_penjualan yang berasal dari Penjualan.
Penjualan (Kd_penjualan, Tanggal_penjualan, Kd_pemesanan, Tanggal_pemesanan, Discount, Tanggal_pembayaran, Total_harga, Kd_pengiriman, Tanggal_pengiriman, Kd_pelanggan, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_pelanggan references Pelanggan (Kd_pelanggan) Kd_karyawan references Karyawan (Kd_karyawan) Kd_kurs references Kurs (Kd_kurs)
Antara Penjualan dan pajak terdapat mandatory participation on both side of 1:1 relationship
Penjualan (Kd_penjualan, Tanggal_penjualan, Kd_pemesanan, Tanggal_pemesanan, Discount, Tanggal_pembayaran, Total_harga, Kd_pengiriman, Tanggal_pengiriman, Kd_pelanggan, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_pelanggan references Pelanggan (Kd_pelanggan) Kd_karyawan references Karyawan (Kd_karyawan) Kd_kurs references Kurs (Kd_kurs)
Pajak (No_pajak, Tanggal_pajak, PPN, Kd_karyawan)
Primary Key Æ No_pajak
Foreign Key Æ Kd_karyawan references Karyawan (Kd_karyawan)
Mengalami penggabungan (merged) dimana atribut dari Pengiriman menjadi atribut dari relasi baru yang bernama Penjualan. Primary key dari relasi yang baru adalah Kd_penjualan yang berasal dari Penjualan.
Penjualan (Kd_penjualan, Tanggal_penjualan, Kd_pemesanan, Tanggal_pemesanan, Discount, Tanggal_pembayaran, Total_harga, Kd_pengiriman, Tanggal_pengiriman, No_pajak, Tanggal_pajak, PPN, Kd_pelanggan, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_pelanggan references Pelanggan (Kd_pelanggan) Kd_karyawan references Karyawan (Kd_karyawan)
Kd_kurs references Kurs (Kd_kurs)
Mandatory participation on one side of a 1:1 relationship
Post Kd_penjualan ke Reparasi dalam Mandatory participation on one side of a 1:1 relationship
Penjualan (Kd_penjualan, Tanggal_penjualan, Kd_pemesanan, Tanggal_pemesanan, Discount, Tanggal_pembayaran, Total_harga, Kd_pengiriman, Tanggal_pengiriman, No_pajak, Tanggal_pajak, PPN, Kd_pelanggan, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_pelanggan references Pelanggan (Kd_pelanggan)
Kd_karyawan references Karyawan (Kd_karyawan)
Kd_kurs references Kurs (Kd_kurs)
Reparasi (Kd_reparasi, Nama_barang, Garansi, Model, Jenis_garansi, Merk,
Serial_number, Kerusakan, Perlengkapan,Tanggal_reparasi,
Kd_pelanggan, Kd_karyawan, Kd_penjualan)
Primary KeyÆ Kd_reparasi
Foreign Key Æ Kd_penjualan references Penjualan (Kd_penjualan)
Kd_karyawan references Karyawan (Kd_karyawan)
Kd_pelanggan references Pelanggan (Kd_pelanggan)
Post Kd_penjualan ke Tagihan dalam Mandatory participation on one side of a 1:1 relationship
Penjualan (Kd_penjualan, Tanggal_penjualan, Kd_pemesanan, Tanggal_pemesanan, Discount, Tanggal_pembayaran, Total_harga, Kd_pengiriman, Tanggal_pengiriman, No_pajak, Tanggal_pajak, PPN, Kd_pelanggan, Kd_karyawan, Kd_kurs)
Primary KeyÆ Kd_penjualan
Foreign KeyÆ Kd_pelanggan references Pelanggan (Kd_pelanggan)
Kd_karyawan references Karyawan (Kd_karyawan)
Kd_kurs references Kurs (Kd_kurs)
Tagihan (Kd_penagihan, Tanggal_penagihan, Total_pembayaran, Kd_penjualan)
Primary KeyÆ Kd_penagihan
Foreign Key Æ Kd_penjualan references Penjualan (Kd_penjualan)
3.7.2.2.5 Many-to-many (*:*) binary relationship types
Untuk tiap *:* binary relatinship menciptakan sebuah relasi untuk merepresentasikan relasi dan meliputi semua atribut yang menjadi bagian dari relasi. Atribut Primary key dari entitas yang berpartisipasi di copy ke dalam relasi baru, sebagai foreign key. Foreign key ini juga sebagai primary key di relasi yang baru.
Penjualan (Kd_penjualan, Tanggal_penjualan, Kd_pemesanan, Tanggal_pemesanan, Discount, Tanggal_pembayaran, Total_harga, Kd_pengiriman, Tanggal_pengiriman, No_pajak, Tanggal_pajak, PPN, Kd_pelanggan, Kd_karyawan, Kd_kurs)
Foreign KeyÆ Kd_pelanggan references Pelanggan (Kd_pelanggan)
Kd_karyawan references Karyawan (Kd_karyawan)
Kd_kurs references Kurs (Kd_kurs)
Primary KeyÆ Kd_penjualan
Barang (Kd_barang, Nama_barang, Harga_beli, Harga_jual, Mata_uang, Satuan, Stock_aktif, Assembly, Keterangan, Kd_jenis)
Foreign KeyÆ Kd_jenis references Jenis_barang (Kd_jenis)
Primary Key Æ Kd_barang
Detil_penjualan (Kd_penjualan, Kd_barang, Qty, Harga_jual)
Primary KeyÆ Kd_penjualan, Kd_barang
Foreign KeyÆ Kd_penjualan references Penjualan (Kd_penjualan) Kd_barang references Barang (Kd_barang)
Retur (Kd_retur, Keterangan,
Tanggal_retur, Total_harga, Kd_karyawan, Kd_penjualan)
Foreign KeyÆ Kd_penjualan references Penjualan (Kd_penjualan)
Kd_karyawan references Karyawan (Kd_karyawan)
Primary KeyÆ Kd_retur
Barang (Kd_barang, Nama_barang, Harga_beli, Harga_jual, Mata_uang, Satuan, Stock_aktif, Assembly, Keterangan, Kd_jenis)
Foreign KeyÆ Kd_jenis references Jenis_barang (Kd_jenis)
Primary Key Æ Kd_barang
Detil_retur (Kd_retur, Kd_barang, Qty, Harga_barang)
Primary KeyÆ Kd_retur, Kd_barang
Foreign KeyÆ Kd_retur references Retur (Kd_retur) Kd_barang references Barang (Kd_barang)
Reparasi (Kd_reparasi, Nama_barang, Garansi, Model, Jenis_garansi, Merk,
Serial_number, Kerusakan, Perlengkapan,Tanggal_reparasi,
Kd_penjualan, Kd_pelanggan, Kd_karyawan)
Foreign Key Æ Kd_penjualan references Penjualan (Kd_penjualan)
Kd_karyawan references Karyawan (Kd_karyawan)
Kd_pelanggan references Pelanggan (Kd_pelanggan)
Primary KeyÆ Kd_reparasi
Barang (Kd_barang, Nama_barang, Harga_beli, Harga_jual, Mata_uang, Satuan, Stock_aktif, Assembly, Keterangan, Kd_jenis)
Foreign KeyÆ Kd_jenis references Jenis_barang (Kd_jenis)
Primary Key Æ Kd_barang
Spare_part (Kd_reparasi, Kd_barang)
Primary KeyÆ Kd_reparasi, Kd_barang
Foreign KeyÆ Kd_reparasi references Reparasi (Kd_reparasi) Kd_barang references Barang (Kd_barang)
Pembelian (Kd_pembelian, Tanggal_pembelian, Total_harga, Kd_karyawan, Kd_supplier)
Foreign key Æ Kd_karyawan references Karyawan (Kd_karyawan)
Kd_supplier references Supplier (Kd_supplier)
Primary KeyÆ Kd_pembelian
Barang (Kd_barang, Nama_barang, Harga_beli, Harga_jual, Mata_uang, Satuan, Stock_aktif, Assembly, Keterangan, Kd_jenis)
Foreign KeyÆ Kd_jenis references Jenis_barang (Kd_jenis)
Primary Key Æ Kd_barang
Detil_pembelian (Kd_pembelian, Kd_barang, Qty, Harga_beli)
Primary KeyÆ Kd_pembelian, Kd_barang
Foreign KeyÆ Kd_pembelian references Pembelian (Kd_pembelian) Kd_barang references Barang (Kd_barang)
3.7.2.2.6 Multi-valued attributes Post Kd_pelanggan ke Telepon_pelanggan
Pelanggan (Kd_pelanggan, Nama, Alamat, Kota, Kode_pos, Email, Fax, Contact_person, NPWP)
Telepon_pelanggan (No_telepon, Kd_pelanggan)
Primary Key Æ Kd_pelanggan Kd_pelanggan
Foreign KeyÆ Kd_pelanggan references Pelanggan (Kd_pelanggan)
Post Kd_supplier ke Telepon_supplier
Supplier (Kd_supplier, Nama, Alamat, Kota, Kode_pos, Email, Fax, Contact_person)
Primary Key Æ Kd_supplier
Telepon_supplier (No_telepon, Kd_supplier)
Primary KeyÆ No_telepon, Kd_supplier
Foreign KeyÆ Kd_supplier references Supplier (Kd_supplier)
Post Kd_karyawan ke Telepon_karyawan
Karyawan (Kd_karyawan, Nama,
Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota,
Kode_pos, Gaji)
Primary Key Æ Kd_Karyawan
Telepon_karyawan (No_telepon, Kd_karyawan)
Primary KeyÆ No_telepon, Kd_karyawan
Foreign KeyÆ Kd_karyawan references Karyawan (Kd_karyawan)
3.7.2.3 Validate Relations Using Normalization
Dalam tahap ini, untuk menvalidasi relasi dalam local logical data model menggunakan teknik normalisasi
Karyawan 2NF
Karyawan (@Kd_karyawan, Nama, Status, Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota, Propinsi, Kode_pos, Gaji, Keterangan)
3NF
Karyawan (@Kd_karyawan, Nama, Status, Tanggal_lahir, Jenis_kelamin, Mulai_kerja, Jabatan, Alamat, Kota, Propinsi, Kode_pos, Gaji, Keterangan)
Jabatan (@Jabatan, Nama_jabatan)
Penjualan 1NF
Penjualan (@Kd_penjualan, Tanggal_penjualan, Kd_pemesanan, Tanggal_pemesanan, Discount,
Tanggal_pembayaran, Kd_pengiriman, Tanggal_pengiriman, No_pajak, Tanggal_pajak ,
Retur 1NF
Retur (@Kd_retur, Keterangan, Tanggal_retur, Kd_karyawan, Kd_penjualan)
Pembelian 1NF
Pembelian (@Kd_pembelian, Tanggal_pembelian, Kd_karyawan, Kd_supplier)
3.7.3 Pemilihan DBMS
Pemilihan DBMS dipengaruhi beberapa faktor berikut ini : 1. Kemudahan dalam penggunaan
Kemudahan DBMS untuk dipergunakan oleh pengguna. 2. Kehandalan
Kemampuan DBMS dalam mengamankan data apabila terjadi kegagalan piranti lunak ataupun keras.
3. Biaya
Biaya DBMS tidak melebihi anggaran yang diperkirakan oleh perusahaan.
4. Keamanan
DBMS dapat membedakan dan memilih di antara berbagai tingkat pengguna dari yang tidak memiliki hak akses.
5. Compatibility
DBMS dapat bekerja dengan komponen piranti keras dan lunak lainnya dengan baik.
6. Persyaratan minimum
DBMS mampu bekerja pada platform komputer yang minimum.
DBMS yang dipilih adalah SQL Server 2000 hal ini didasarkan pada data berikut :
Biaya $1,489 - $4,999 (Professional Edition)
Kebutuhan piranti keras Intel Pentium II atau AMD k6-II processor, 64 MB RAM, 380 MB hard drive space
Kebutuhan piranti lunak Window 2000 Server atau Window .NET Server 2003, Internet Explorer 5.0
Kelebihan Mendukung kehandalan dan kemanan tingkat enterprise dapat menjalankan berbagai basis data dalam satu server Kehandalan Mendukung failover clusters, pemulihan point in time,
dapat melakukan restart jika terhenti
Kemanan Menggunakan authentikasi pengguna dengan pilihan untuk menyatukan kemanan basis data dengan keamanan Windows 2000
3.7.4 Perancangan physical
3.7.4.1 Mendesain base relations
Untuk memutuskan bagaimana membuat base relations yang diidentifikasikan dalam global data model ke target DBMS
DBDL Pelanggan
Domain kodePelanggan integer, in the range 1 - 20000
Domain namaPelanggan variable length character string, length 30 Domain alamatPelanggan variable length character string, length 50 Domain kota variable length character string, length 20
Domain kodePos variable length character string, length 5, in the range 00000 - 99999
Domain email variable length character string, length 30 Domain fax variable length character string, length 15
Domain contactPerson variable length character string, length 30 Domain npwp variable length character string, length 20
Pelanggan (
Kd_pelanggan kodePelanggan NOT NULL, Nama namaPelanggan NOT NULL, Alamat alamatPelanggan NOT NULL,
Kota kota NOT NULL,
Kode_pos kodePos,
Email email,
Contact_person contactPerson NOT NULL,
NPWP npwp,
PRIMARY KEY (Kd_pelanggan) );
DBDL Supplier
Domain kodeSupplier integer, in the range 1 - 9999
Domain namaSupplier variable length character string, length 30 Domain alamatSupplier variable length character string, length 50 Domain kota variable length character string, length 20
Domain kodePos variable length character string, length 5, in the range 00000 - 99999
Domain email variable length character string, length 30 Domain fax variable length character string, length 15
Domain contactPerson variable length character string, length 30 Supplier (
Kd_supplier kodeSupplier NOT NULL, Nama namaSupplier NOT NULL, Alamat alamatSupplier NOT NULL,
Kota kota NOT NULL,
Kode_pos kodePos,
Email email,
Fax fax,