• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA Sejarah Organisasi

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA Sejarah Organisasi"

Copied!
219
0
0

Teks penuh

(1)

BAB 3

ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA

3.1 Analisis Kebutuhan

3.1.1 Riwayat Perusahaan 3.1.1.1 Sejarah Organisasi

PT Cavenzi Indonesia cabang Plaza Meubel Cawang didirikan pada tanggal 18 Januari 2007 oleh Bapak Adrian Haryono Mulyoharjono dan Bapak Alwi Koty, yang disahkan oleh Bapak Rusnaldy, S.H. selaku notarisnya. Perusahaan yang bergerak dalam industri meubel dan beralamat di Jl. Otista Raya No. 82a Cawang Jakarta Timur ini selain memproduksi barang – barang meubel, juga mengambil barang – barang meubel dari supplier – supplier untuk dijual. PT Cavenzi Indonesia bekerja sama dengan perusahaan – perusahaan lain, dimana PT Cavenzi Indonesia menyediakan barang – barang meubel bagi perusahaan – perusahaan tersebut.

3.1.1.2 Visi dan Misi

Visi dari perusahaan adalah menjadi salah satu perusahaan meubel yang dapat memenuhi permintaan konsumen dan kebutuhan pasar terhadap meubel.

(2)

• Meningkatkan kualitas, baik pelayanan kepada pelanggan (Meningkatkan kinerja karyawan pada setiap bagian), maupun barang – barang yang dijual

• Menjalin kerja sama yang baik dengan supplier – supplier.

3.1.2 Struktur Organisasi

Struktur organisasi suatu perusahaan memegang peranan penting, karena dapat menggambarkan dengan jelas fungsi-fungsi dan pembagian tugas dalam organisasi. Dalam struktur organisasi akan digambarkan tata hubungan kerja, wewenang, dan tanggung jawab dari tiap-tiap bagian yang ada dalam organisasi. Struktur organisasi bertujuan membantu perusahaan dalam penyelesaian tugas secara efektif dan efisien agar tercipta suatu kelancaran kerja, guna mencapai tujuan perusahaan yang telah ditetapkan.

Struktur organisasi PT Cavenzi Indonesia adalah struktur organisasi garis, karena tugas dan perintah mengalir dari pimpinan melalui garis vertikal sampai pada tingkat yang terbawah. Struktur ini menjelaskan bahwa setiap bawahan menerima perintah langsung dari satu atasan dan bertanggung jawab penuh terhadap atasannya.

Struktur organisasi PT Cavenzi Indonesia dapat dilihat pada gambar berikut ini :

(3)

Gambar 3.1 Struktur Organisasi PT Cavenzi Indonesia RUPS DEWAN KOMISARIS DIREKTUR UTAMA MANAGER PEMASARAN MANAGER KEUANGAN WAKIL MANAGER KEUANGAN BAGIAN PERSEDIAAN BARANG SALES PROMOTION GIRLS OFFICE BOY DAN SOPIR STAFF ADMINISTRASI

(4)

3.1.3 Pembagian Tugas dan Tanggung Jawab

Uraian tugas dari masing-masing posisi pada struktur organisasi PT Cavenzi Indonesia adalah sebagai berikut :

a. RUPS (Rapat Umum Pemegang Saham).

1) Pemegang kekuasaan tertinggi dalam pengambilan keputusan. 2) Memilih dan mengangkat dewan komisaris dan direktur.

3) Mengawasi dan menerima pertanggungjawaban pelaksanaan kegiatan perusahaan dari dewan komisaris.

b. Dewan Komisaris.

1) Mengawasi pelaksanaan kegiatan perusahaan dalam pencapaian tujuan yang telah ditetapkan.

2) Menentukan kebijakan dan tujuan perusahaan secara keseluruhan. 3) Bertanggungjawab kepada RUPS atas seluruh kegiatan

perusahaan. c. Direktur Utama.

1) Merumuskan, menyusun dan menetapkan kegiatan operasional perusahaan.

2) Mengawasi, mengkoordinir dan mengevaluasi kegiatan dari masing-masing manager dalam menjalankan aktivitas perusahaan. 3) Memberikan pengarahan umum serta menetapkan tugas,

(5)

5) Memiliki hak / wewenang untuk memberhentikan dan menerima karyawan.

d. Manager Keuangan

1) Memeriksa laporan keuangan per bulan yang disusun oleh Wakil Manager Keuangan.

e. Manager Pemasaran

1) Memantau arus penjualan barang ke pelanggan, yang meliputi pesanan penjualan barang, pembayaran pelanggan, pengiriman barang ke pelanggan, dan retur penjualan dengan memeriksa laporan penjualan yang telah disusun oleh staff administrasi. 2) Memantau arus persediaan barang dari supplier / vendor, yang

meliputi pembelian barang jadi ke supplier dan retur pembelian dengan memeriksa laporan pembelian dan laporan persediaan yang telah disusun oleh bagian persediaan barang.

f. Wakil Manager Keuangan

1) Menyusun laporan keuangan per bulan berdasarkan laporan penjualan, pembelian, dan persediaan.

g. Bagian Persediaan Barang

1) Mengatur persediaan barang dari supplier, yang meliputi pembelian barang jadi ke supplier dan retur pembelian.

2) Mencatat barang masuk dan keluar.

3) Menyusun laporan pembelian dan persediaan per bulan. h. Staff Administrasi

(6)

1) Mengatur penjualan barang ke pelanggan, yang meliputi pesanan penjualan barang, pembayaran pelanggan, pengiriman barang ke pelanggan, dan retur penjualan

2) Membuat kwitansi, faktur, dan surat jalan (untuk pelanggan). 3) Mendokumentasikan faktur, tanda terima, bukti surat jalan, dan

data retur penjualan.

4) Menyusun laporan penjualan per bulan. i. Sales Promotion Girls

1) Melayani dan melakukan penawaran barang kepada pelanggan. j. Office Boy dan Sopir

1) Membersihkan showroom tiap hari. 2) Merakit meubel.

3) Pesuruh.

4) Mengirimkan barang pesanan pelanggan

3.1.4 Sistem yang Sedang Berjalan 3.1.4.1 Diagram Aliran Dokumen

(7)

Mulai Sales Promotion Girls Pelanggan Sesuai dengan yang dibutuhkan? Selesai Staff Administrasi Ya Bagian Persediaan Barang Sopir Melakukan penawaran barang Menerima informasi penawaran Mengeluarkan daftar harga Daftar harga Tidak Apakah harga sesuai? Tidak Memesan barang Ya Membuat faktur Menawar harga 4 3 2 Membayar 50% dari harga beli Membuat surat jalan 2 Surat jalan Packing barang Kirim barang Ada barang yang rusak? Tidak Melunasi pembayaran Faktur Memberikan faktur (bukti pelunasan) dan surat jalan

Faktur dan surat jalan Ya Memproses retur penjualan Mendokumen tasikan faktur Ordner Mendokumen tasikan surat jalan Ordner Membuat kwitansi Kwitansi Menerima surat jalan Menerima faktur Wakil Manager Keuangan Menerima faktur Menerima faktur Membuat laporan penjualan Mencatat barang keluar

(8)

3.1.4.1.2 DAD Sistem Persediaan

(9)

3.1.4.2 Kebutuhan pengguna

Analisis kebutuhan sistem pada PT Cavenzi Indonesia digambarkan dalam tabel berikut :

Tabel 3.1 Informasi Kebutuhan Pengguna

Informasi Pengguna

Barang Bagian persediaan barang

Supplier Bagian persediaan barang

Customer Staff administrasi

Pesanan customer Staff administrasi Pembayaran customer Staff administrasi Pengiriman barang ke customer Staff administrasi

Pembelian barang ke supplier Bagian persediaan barang Retur penjualan Staff administrasi

Retur pembelian Bagian persediaan barang Laporan penjualan Staff administrasi

Laporan pembelian Bagian persediaan barang Laporan persediaan Bagian persediaan barang

(10)

3.1.5 Permasalahan yang Dihadapi

Dari analisis sistem yang berlaku ditemukan permasalahan yaitu penjualan dan persediaan masih dilakukan secara manual dengan menggunakan kertas, sehingga membutuhkan waktu, biaya dan tenaga yang cukup besar. Melihat permasalahan yang ada, maka PT Cavenzi Indonesia memutuskan untuk menggunakan sistem penjualan dan persediaan yang baru dan alternatif yang lain untuk mengatasi permasalahan yang ada.

Sistem penjualan dan persediaan ini dibuat lebih karena adanya arahan dari pihak manajemen PT Cavenzi Indonesia untuk lebih meningkatkan penjualan dan dapat memantau persediaan yang ada.

3.1.6 Usulan Pemecahan Masalah

Dengan melihat permasalahan yang ada, maka usulan atas masalah yang dihadapi adalah dengan mengubah sistem penjualan dan persediaan yang manual menjadi sistem penjualan dan persediaan yang dapat dilakukan dengan menggunakan aplikasi berbasis web dan merancang sistem basis data untuk menyimpan data penjualan dan persediaan tersebut.

Dengan adanya sistem ini, pengguna diberikan kemudahan dalam melakukan kegiatan penjualan dan persediaan, sehingga akan lebih

(11)

persediaan yang akurat dan konsisten, yang mana dapat meningkatkan kinerja PT Cavenzi Indonesia dalam mengolah data – data tersebut.

3.2 Perancangan Sistem Basis Data

Perancangan basis data dilakukan berdasarkan kebutuhan informasi yang telah diidentifikasi pada PT Cavenzi Indonesia dan terbagi dalam tiga tahap, yaitu:

• Perancangan basis data konseptual • Perancangan basis data logical • Perancangan basis data fisikal

3.2.1 Perancangan Basis Data Konseptual 3.2.1.1 Identifikasi Tipe Entity

Tabel 3.2 Identifikasi Tipe Entity

Nama Entity Deskripsi Alias Kejadian

MsBarang Barang – barang yang dijual di PT Cavenzi Indonesia

Barang Memiliki beberapa macam, seperti sofa, lemari, meja, dll. MsSupplier Perusahaan – perusahaan yang menyediakan barang untuk PT Cavenzi Indonesia

Supplier Supplier memasok barang – barang yang akan dijual ke pelanggan

(12)

Nama Entity Deskripsi Alias Kejadian MsKaryawan Karyawan yang bekerja

pada PT Cavenzi Indonesia

Pegawai Bekerja di PT Cavenzi

MsCustomer Pelanggan yang hendak membeli suatu barang

Customer Melakukan transaksi pembelian barang

TrPemesanan Berisi informasi

mengenai pemesanan barang dari pelanggan

Pemesanan Pelanggan memesan barang

TrPembayaran Berisi informasi

mengenai pembayaran pelanggan atas pesanannya Pembayaran Pelanggan membayar barang – barang yang dipesannya

TrPengiriman Berisi informasi

mengenai pengiriman barang – barang ke pelanggan

Pengiriman Barang – barang dikirim setelah pelanggan

melakukan pembayaran

TrPembelian Berisi informasi

mengenai pembelian barang ke supplier

Pembelian PT Cavenzi

Indonesia membeli barang dari supplier

(13)

Nama Entity Deskripsi Alias Kejadian TrReturPenjualan Informasi mengenai

retur barang – barang yang dijual ke pelanggan

Retur Penjualan

Jika ada barang rusak dikirim, maka pelanggan akan meretur barang itu

TrReturPembelian Informasi mengenai retur barang – barang yang dibeli dari supplier

Retur Pembelian

Jika ada barang rusak dikirim

supplier ke

perusahaan, maka perusahaan akan meretur barang itu

CustomerTalk Saran dan kritik customer Saran dan Kritik Setiap customer berhak untuk mengeluarkan saran dan kritik, demi kemajuan

perusahaan

3.2.1.2 Identifikasi Tipe Relationship

Tabel 3.3 Identifikasi Tipe Relationship

Nama Entity Multipicity Relational Multipicity Nama Entitas MsBarang 1..1 1..* Dimiliki Dimiliki 1..* 1..* TrPemesanan TrPembelian

(14)

Nama Entity Multipicity Relational Multipicity Nama Entitas

MsSupplier 1..1 Dimiliki 1..* TrPembelian

MsKaryawan 1..1 1..1 1..1 1..1 Melakukan Melayani Melayani Melakukan 1..* 1..* 1..* 1..* TrPembelian TrPemesanan TrPembayaran TrPengiriman MsCustomer 1..1 1..1 Melakukan Memberikan 1..* 1..* TrPemesanan CustomerTalk

TrPemesanan 1..1 Dimiliki 1..1 TrPembayaran

TrPembayaran 1..1 Melakukan 1..1 TrPengiriman

TrPengiriman 1..1 Memiliki 0..1 TrReturPenjualan

(15)
(16)

3.2.1.3 Identifikasi dan Asosiasi Atribut dengan Entity atau Tipe

Relationship

Tabel 3.4 Entity MsBarang Entity : MsBarang

Atribut Deskripsi Tipe Data Null Multi value KdBarang NamaBarang JenisBarang Harga Stok Kode Barang Nama Barang Jenis Barang Harga Persediaan Barang Char(5) Varchar(30) Varchar(30) Varchar(20) Int Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak

Tabel 3.5 Entity MsSupplier Entity : MsSupplier

Atribut Deskripsi Tipe Data Null Multi value KdSupplier NamaSupplier AlamatSupplier TelpSupplier EmailSupplier Kode Supplier Nama Supplier Alamat Supplier Telepon Supplier Email Supplier Char(5) Varchar(30) Text Varchar(20) Varchar(50) Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Ya Ya

(17)

Tabel 3.6 Entity MsKaryawan Entity : MsKaryawan

Atribut Deskripsi Tipe Data Null Multi value KdKaryawan NamaKaryawan AlamatKaryawan TelpKaryawan EmailKaryawan Jabatan Username Password Kode Karyawan Nama Karyawan Alamat Karyawan Telepon Karyawan Email Karyawan Jabatan Karyawan Username Karyawan Password Karyawan Char(5) Varchar(30) Text Varchar(20) Varchar(50) Varchar(30) Varchar(20) Varchar(35) Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Ya Ya Tidak Tidak Tidak

Tabel 3.7 Entity MsCustomer Entity : MsCustomer

Atribut Deskripsi Tipe Data Null Multi value KdCust NamaCust AlamatCust KdPos TelpCust EmailCust NoRekCust Username Kode Customer Nama Customer Alamat Customer Kode Pos Customer Telepon Customer Email Customer

Nomor Rekening Customer Username Customer Int Varchar(30) Text Char(5) Varchar(20) Varchar(50) Varchar(20) Varchar(20) Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Ya Ya Ya Tidak

(18)

Password Password Customer Varchar(35) Tidak Tidak

Tabel 3.8 Entity TrPemesanan Entity : TrPemesanan

Atribut Deskripsi Tipe Data Null Multi value KdPemesanan KdBarang HargaJual Qty TglPesan Kode Pemesanan Kode Barang Harga Jual Satuan Jumlah Barang Tanggal Pemesanan Char(6) Char(5) Varchar(20) Int Datetime Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak

Tabel 3.9 Entity TrPembayaran Entity : TrPembayaran

Atribut Deskripsi Tipe Data Null Multi value KdPembayaran TglBayar Kode Penjualan Tanggal Pembayaran Char(6) Datetime Tidak Tidak Tidak Tidak

Tabel 3.10 Entity TrPengiriman Entity : TrPengiriman

Atribut Deskripsi Tipe Data Null Multi value KdPengiriman Kode Pengiriman Char(6) Tidak Tidak

(19)

Tabel 3.11 Entity TrPembelian Entity : TrPembelian

Atribut Deskripsi Tipe Data Null Multi value KdPembelian KdBarang HargaBeli Qty TglBeli Kode Pembelian Kode Barang Harga Beli Satuan Banyak Barang Tanggal Beli Char(6) Char(5) Varchar(20) Int Datetime Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak Tidak

Tabel 3.12 Entity TrReturPenjualan Entity : TrReturPenjualan

Atribut Deskripsi Tipe Data Null Multi value KdRtrPenjualan

Qty

TglPengembalian

Kode Retur Penjualan Banyak Barang Tanggal Pengembalian Char(6) Int Datetime Tidak Tidak Tidak Tidak Tidak Tidak

Tabel 3.13 Entity TrReturPembelian Entity : TrReturPembelian

Atribut Deskripsi Tipe Data Null Multi value KdRtrPembelian

Qty

TglPengembalian

Kode Retur Pembelian Banyak Barang Tanggal Pengembalian Char(6) Int Datetime Tidak Tidak Tidak Tidak Tidak Tidak

(20)

Tabel 3.14 Entity CustomerTalk Entity : CustomerTalk

Atribut Deskripsi Tipe Data Null Multi value KdCust

Talk Tgl

Kode Customer Isi saran dan kritik Tanggal pengiriman Char(5) Text Datetime Tidak Tidak Tidak Tidak Tidak Tidak

3.2.1.4 Menentukan Atribut Domain

Tabel 3.15 Atribut Domain Entity MsBarang Entity : MsBarang

Atribut Atribut Domain

KdBarang

NamaBarang

JenisBarang

Harga

Harus diawali dengan ‘KB’, sisa karakter berupa angka dan harus 5 karakter

Diisi dengan karakter, maksimal 30 karakter

Diisi dengan karakter, maksimal 30 karakter

Diisi dengan karakter, maksimal 20 karakter

(21)

Tabel 3.16 Atribut Domain Entity MsSupplier Entity : MsSupplier

Tabel 3.17 Atribut Domain Entity MsKaryawan Entity : MsKaryawan

Atribut Atribut Domain

KdSupplier

NamaSupplier

AlamatSupplier TelpSupplier

EmailSupplier

Harus diawali dengan ‘KS’, sisa karakter berupa angka dan harus 5 karakter

Diisi dengan karakter, maksimal 30 karakter

Diisi dengan karakter

Diisi karakter berupa angka, maksimal 20 karakter

Diisi dengan karakter, maksimal 50 karakter

Atribut Atribut Domain

KdKaryawan

NamaKaryawan

Harus diawali dengan ‘KK’, sisa karakter berupa angka dan harus 5 karakter

Diisi dengan karakter, maksimal 30 karakter

(22)

Tabel 3.18 Atribut Domain Entity MsCustomer Entity : MsCustomer AlamatKaryawan TelpKaryawan EmailKaryawan Jabatan Username Password

Diisi dengan karakter

Diisi karakter berupa angka, maksimal 20 karakter

Diisi dengan karakter, maksimal 50 karakter

Diisi dengan karakter, maksimal 30 karakter

Diisi dengan karakter, maksimal 20 karakter

Diisi dengan karakter, maksimal 35 karakter

Atribut Atribut Domain

KdCust NamaCust

AlamatCust KdPos

Diisi dengan angka

Diisi dengan karakter, maksimal 30 karakter

Diisi dengan karakter

(23)

T

Tabel 3.19 Atribut Domain Entity TrPemesanan Entity : TrPemesanan EmailCust NoRekCust Username Password 20 karakter

Diisi dengan karakter, maksimal 50 karakter

Diisi karakter berupa angka, maksimal 20 karakter

Diisi dengan karakter, maksimal 20 karakter

Diisi dengan karakter, maksimal 35 karakter

Atribut Atribut Domain

KdPemesanan

KdBarang

HargaJual

Qty

Harus diawali dengan ‘KPB sisa karakter berupa angka dan harus 6 karakter

Harus diawali dengan ‘KB’, sisa karakter berupa angka dan harus 5 karakter

Diisi dengan karakter, maksimal 20 karakter

(24)

Tabel 3.20 Atribut Domain Entity TrPembayaran Entity : TrPembayaran

Tabel 3.21 Atribut Domain Entity TrPengiriman Entity : TrPengiriman

TglPesan Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss

Atribut Atribut Domain

KdPembayaran

TglBayar

Harus diawali dengan ‘KBB’, sisa karakter berupa angka dan harus 6 karakter

Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss

Atribut Atribut Domain

KdPengiriman

TglKirim

Harus diawali dengan ‘KKB’, sisa karakter berupa angka dan harus 6 karakter

(25)

Tabel 3.22 Atribut Domain Entity TrPembelian Entity : TrPembelian

Tabel 3.23 Atribut Domain Entity TrReturPenjualan Entity : TrReturPenjualan

Atribut Atribut Domain

KdPembelian

KdBarang

HargaBeli

Qty TglBeli

Harus diawali dengan ‘KBI’, sisa karakter berupa angka dan harus 6 karakter

Harus diawali dengan ‘KB’, sisa karakter berupa angka dan harus 5 karakter

Diisi dengan karakter, maksimal 20 karakter

Diisi dengan angka

Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss

Atribut Atribut Domain

KdRtrPenjualan

Qty

Harus diawali dengan ‘KRJ’, sisa karakter berupa angka dan harus 6 karakter

(26)

Tabel 3.24 Atribut Domain Entity TrReturPembelian Entity : TrReturPembelian

TglPengembalian Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss

Atribut Atribut Domain

KdRtrPembelian

Qty

TglPengembalian

Harus diawali dengan ‘KRB’, sisa karakter berupa angka dan harus 6 karakter

Diisi dengan angka

Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss

(27)

Tabel 3.25 Atribut Domain Entity CustomerTalk Entity : Customer Talk

3.2.1.5 Menentukan Atribut Candidate Key dan Primary Key Setiap

Entity

Tabel 3.26 Identifikasi Candidate Key dan Primary Key

Entity Candidate Key Primary Key

MsBarang KdBarang KdBarang

MsSupplier KdSupplier KdSupplier

MsKaryawan KdKaryawan KdKaryawan

MsCustomer KdCust KdCust TrPemesanan KdPemesanan

KdBarang

KdPemesanan KdBarang

TrPembayaran KdPembayaran KdPembayaran

TrPengiriman KdPengiriman KdPengiriman

Atribut Atribut Domain

KdCust

Talk Tgl

Harus diawali dengan ‘KC’, sisa karakter berupa angka dan harus 5 karakter

Diisi dengan karakter

Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss

(28)

Entity Candidate Key Primary Key TrPembelian KdPembelian

KdBarang

KdPembelian KdBarang

TrReturPenjualan KdRtrPenjualan KdRtrPenjualan TrReturPembelian KdRtrPembelian KdRtrPembelian

(29)
(30)

3.2.1.6 Mempertimbangkan Penggunaan Konsep Pemodelan Enhanced

Tidak terdapat entity dengan konsep enhanced modeling, seperti spesialisasi, generalisasi, penggabungan (aggregation) dan komposisi (composition).

3.2.1.7 Cek Redudansi

Pada langkah ini, dilakukan pengecekan untuk menghilangkan redudansi. Terdapat 3 aktivitas pada langkah ini yaitu :

1. Mengecek relasi one-to-one (1:1)

Tujuannya supaya tidak ada dua atau lebih tipe entitas yang merepresentasikan objek yang sama dalam perusahaan. Adapun 1:1 relationship (1:1) yang diuji antara lain :

Gambar 3.6 Hubungan one to one (1:1) antara TrPemesanan dan TrPembayaran

(31)

Gambar 3.7 Hubungan one to one (1:1) antara TrPembayaran dan TrPengiriman

Gambar 3.8 Hubungan one to one (1:1) antara TrPengiriman dan TrPemesanan

Dari hasil pengujian tersebut ternyata tidak ditemukan adanya dua atau lebih entitas yang merepresentasikan objek yang sama dalam perusahaan.

2. Menghilangkan relasi yang redundan.

Pada relasi-relasi entity yang ada, tidak ada relasi yang redundan yang perlu dihilangkan.

3. Mempertimbangkan dimensi waktu.

Tidak ada relasi yang berhubungan dengan dimensi waktu. Oleh karena itu langkah ini tidak dilakukan.

(32)

3.2.1.8 Validasi Model Konseptual Terhadap Transaksi User

Validasi model data konseptual diuji untuk memastikan model konseptual lokal mendukung dan menjalankan transaksi yang dibutuhkan oleh pengguna.

(33)
(34)

Keterangan :

(A) Barang dimiliki transaksi pemesanan (B) Barang dimiliki transaksi pembelian

(C) Supplier dimiliki transaksi pembelian barang (D) Karyawan melakukan transaksi pembelian (E) Karyawan melayani transaksi pemesanan (F) Karyawan melayani transaksi pembayaran (G) Karyawan melakukan transaksi pengiriman (H) Customer melakukan pemesanan barang

(I) Customer memberikan saran dan kritik (Customer Talk) (J) Transaksi pemesanan dimiliki transaksi pembayaran (K) Transaksi pembayaran melakukan transaksi pengiriman (L) Pengiriman memiliki retur penjualan

(M) Pembelian memiliki retur pembelian

3.2.1.9 Melakukan Review Model Data Konseptual dengan User Model data konseptual merupakan representasi yang sebenarnya dari transaksi pengguna. Setelah ditinjau secara bersama-sama dengan penggunaannya, rancangan basis data konseptual yang dirancang sampai tahap ini dianggap mampu mewakili keinginan pengguna sistem di PT Cavenzi Indonesia.

(35)

3.2.2 Pemilihan DBMS

Berikut ini memperlihatkan perbandingan DBMS MySQL Server 2000 standard edition dengan Oracle 9i standard edition :

Tabel 3.27 Tabel perbandingan MySQL Server 2000 Standard Edition dengan Oracle Standard edition

Kriteria Feasibility Faktor Pemberat

MySQL Oracle 9i

Operational Feasibility

menjelaskan sebaik apa sistem akan bekerja dan juga penerimaan solusi yang ditawarkan 25% MySQL mendukung user akan mudah mengoperasikan sistem ini.Karena aplikasi PHP 4.0 berbasis web interface seperti ini mungkin sangat familiar bagi user yang biasa surfing di internet dan akan mengurangi

terjadinya human error

Dari segi keamanan oracle memang memberikan fungsionalitas yang tinggi, tetapi di lain pihak Oracle lebih umum digunakan pada perusahaan dengan basis data yang sangat besar, sehingga perusahaan dengan basis data yang tidak besar akan lebih memilih DBMS lain dan tidak

(36)

Kriteria Feasibility Faktor Pemberat MySQL Oracle 9i Nilai : 85 Nilai : 80 Technical Feasibility menilai kematangan teknologi, tingkat keahlian teknis yang dibutuhkan untuk mengembangkan, mengoperasikan, dan mengelola DBMS 25% Membuat aplikasi web-based, khususnya PHP 4.0 sangat mudah dikuasai oleh programmer, atau

yang baru ingin menguasainya

dapat menjadi ahli dalam waktu singkat. MySQL adalah DBMS yang mudah digunakan dan dioperasikan.

Secara teknis oracle membutuhkan

keahlian yang lebih daripada SQL Server. Namun oracle ini mendukung semua platform, tidak hanya

platform yang berbasis windows saja. Fitur yang mendukung adalah PL/SQL, dimana PL/SQL memiliki fitur: Indexes: B-Tree indexes, Bitmap indexes,

(37)

Kriteria Feasibility Faktor Pemberat MySQL Oracle 9i indexes, Domain indexes Tables: BEFORE trigger, AFTER trigger, INSTEAD OF trigger Procedures : PL/SQL statements, Java methods, Third- Generation Language (3GL) routines

Array : Mendukung Nilai : 80 Nilai : 85

Economic Feasibility Berapa besar biaya yang dibutuhkan untuk menerapkan solusi 40% MySQL Free Processor : Pentium 166 MHz Memory : 64 MB RAM

Hard disk Space: 145 MB, 380 MB (typical)

Oracle 9i Enterprise Edition dihargai US$ 40.000 namun belum meliputi fitur-fitur manajemen manapun OLAP dan data mining. Bila ingin menginstal fitur-fitur

(38)

Kriteria Feasibility Faktor Pemberat MySQL Oracle 9i Dilihat dari kebutuhan piranti lunak: Microsoft Windows, Dreamweaver Mx

tersebut, maka harus mengeluarkan biaya tambahan lagi dan ada

biaya tambahan untuk pelatihan karena keahlian yang tinggi. Dilihat dari kebutuhan

piranti keras (minimum): Processor : Pentium 166 MHz Memory : 128 MB RAM

Hard disk Space: 140 MB pada system Drive ditambah 4.5 GB untuk Oracle Home

(39)

Kriteria Feasibility Faktor Pemberat MySQL Oracle 9i 9i mendukung semua platform termasuk platform berbasis windows, AIX-Based system, Compaq Tru64 UNIX, HP, LINUX, Intel,

Sun Solaris, dan sebagainya

Nilai : 90 Nilai : 80 Schedule Feasibility

Berapa lama yang diperlukan untuk merancang dan mengimplementasikan solusi 10% Karena tidak memerlukan keahlian teknis yang tinggi maka solusi dapat diimplementasikan

dalam waktu 5-7 bulan

Butuh waktu sekitar 9-12 bulan untuk mengimplementasikan solusi

Nilai : 75 Nilai : 70

(40)

Dari hasil analisis diatas diambil keputusan bahwa DBMS yang akan digunakan adalah MySQL. Hal ini berdasarkan dari nilai tertinggi MySQL memperoleh nilai 84,75. MySQL juga gratis dan gampang diimplementasikan.

Karakteristik DBMS MySQL 5.0.20 yang digunakan dalam perancangan fisikal ini :

Tabel 3.28 Karakteristik MySQL 5.0.20 MySQL 5.0.20

Tipe DBMS Transactional relational database server Kebutuhan Piranti Keras Processor : Pentium 166 MHz (minimum)

Memory : 64 MB RAM (minimum)

Hard disk Space: 145 MB (minimum), 380 MB (typical)

Kebutuhan Piranti Lunak Membutuhkan software Apache2Triad versi 1.5.4 untuk Windows versi 2000 ke atas.

Membutuhkan software updated phpMyAdmin to 2.7.0

Portability Dapat berjalan di atas berbagai macam OS.

Open Source Karena bersifat open source, maka tidak ada biaya license.

(41)

MySQL 5.0.20

Security Mempunyai beberapa lapisan keamanan seperti level subnetmask, nama host, user permission, dan password ter-enkripsi.

Scalability & Limits Dapat menangani jumlah records lebih dari 50 juta dan jumlah tabel 60 ribu

Graphical user interface Dapat menggunakan software sebagai antarmuka grafis dengan user, sehingga mudah digunakan.

3.2.3 Perancangan Basis Data Logikal

3.2.3.1 Menghilangkan Fitur yang Tidak Kompatibel dengan Model Relasional

Berikut ini adalah tahap-tahap dalam menghilangkan fitur-fitur yang tidak kompatibel dengan model relasional

1. Menghilangkan Many-To-Many (*:*) Binary Relationship a.Relasi Many-To-Many (*:*) pada entitas TrPembelian dan

MsBarang akan menghasilkan entitas baru yaitu entitas TrDetailPembelian

(42)

Gambar 3.10 Pemecahan menjadi dua relationship 1:* antara entity TrPembelian dan MsBarang

2. Hilangkan tipe relasi Many-To-Many (*:*) rekursif

(43)

Gambar 3.12 Relasi *:* rekursif MsKaryawan

3. Hilangkan atribut Multi-Value

a. Atribute Multi-Value TeleponSupplier pada entitas MsSupplier dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas TeleponSupplier

Gambar 3.13 Atribute Multi- Value TeleponSupplier

b.Atribute Multi-Value EmailSupplier pada entitas MsSupplier dihilangkan dengan menghasilkan sebuah

(44)

Gambar 3.14 Atribute Multi-Value EmailSupplier

c.Atribute Multi-Value TeleponKaryawan pada entitas MsKaryawan dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas TeleponKaryawan

Gambar 3.15 Atribute Multi-Value TeleponKaryawan

d.Atribute Multi-Value EmailKaryawan pada entitas MsKaryawan dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas EmailKaryawan

(45)

e.Atribute Multi-Value TeleponCustomer pada entitas MsCustomer dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas TeleponCustomer

Gambar 3.17 Atribute Multi-Value TeleponCustomer

f.Atribute Multi-Value EmailCustomer pada entitas MsCustomer dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas EmailCustomer

(46)

g.Atribute Multi-Value NoRekCustomer pada entitas MsCustomer dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas EmailCustomer

Gambar 3.19 Atribute Multi-Value NoRekeningCustomer

3.2.3.2 Membuat relasi untuk model data logikal lokal 1. Tipe entity kuat

- MsJenisBarang (KdJenisBarang, JenisBarang) Primary Key : KdJenisBarang

- MsSupplier (KdSupplier, NamaSupplier, AlamatSupplier) Primary Key : KdSupplier.

- MsJenisKaryawan (KdJenisKaryawan, Jabatan) Primary Key : KdJenisKaryawan

- MsCustomer (KdCust, NamaCust, AlamatCust, KdPos, Username, Password)

Primary Key : KdCust

(47)

- TrPengiriman (KdPengiriman, TglKirim) Primary Key : KdPengiriman

- TrPembelian (KdPembelian, KdBarang, HargaBeli, Qty, TglBeli)

Primary Key : KdPembelian

- TrReturPenjualan (KdRtrPenjualan, Qty, TglPengembalian)

Primary Key : KdRtrPenjualan

- TrReturPembelian (KdRtrPembelian, Qty, TglPengembalian)

Primary Key : KdRtrPembelian

2. Tipe Entity lemah

- MsBarang (KdBarang, KdJenisBarang, NamaBarang, JenisBarang, Harga, Stok)

Primary Key : MsBarang

Foreign Key : KdJenisBarang references MsJenisBarang

- MsKaryawan (KdKaryawan, KdJenisKaryawan, NamaKaryawan, AlamatKaryawan, Username, Password)

Primary Key : KdKaryawan

Foreign Key : KdJenisKaryawan references MsJenisKaryawan

(48)

Primary Key : KdPembelian, KdBarang Foreign Key :

KdPembelian references TrPembelian KdBarang references MsBarang

- TeleponSupplier (TelpSupplier, KdSupplier) Primary Key : TelpSupplier

Foreign Key : KdSupplier references MsSupplier - EmailSupplier (EmailSupplier, KdSupplier)

Primary Key : EmailSupplier

Foreign Key : KdSupplier references MsSupplier - TeleponKaryawan (TelpKaryawan, KdKaryawan)

Primary Key : TelpKaryawan

Foreign Key : KdKaryawan references MsKaryawan - EmailKaryawan (EmailKaryawan, KdKaryawan)

Primary Key : EmailKaryawan

Foreign Key : KdKaryawan references MsKaryawan - TeleponCustomer (TelpCust, KdCust)

Primary Key : TelpCust

Foreign Key : KdCust references MsCustomer - EmailCustomer (EmailCust, KdCust)

(49)

Foreign Key : KdCust references MsCustomer

3. Mengidentifikasi relasi One-To-Many (1:*) a. Hubungan MsSupplier dengan TrPembelian

b. Hubungan MsKaryawan dengan TrPembelian

(50)

d. Hubungan MsKaryawan dengan TrPembayaran

e. Hubungan MsKaryawan dengan TrPengiriman

f. Hubungan MsCustomer dengan TrPemesanan

(51)

4. Mengidentifikasi relasi One-To-One (1:1) a. Hubungan TrPemesanan dengan TrPembayaran

b. Hubungan TrPembayaran dengan TrPengiriman

(52)

d. Hubungan TrPengiriman dengan TrRtrPenjualan

e. Hubungan TrPembelian dengan TrRtrPembelian

5. Mengidentifikasi relasi Many-To-Many (*;*) a.

(53)

6. Mengidentifikasi atribut Multi-Value

a. Hubungan KdSupplier dengan TeleponSupplier untuk model relasi Multi-Value mempunyai

b. Hubungan KdSupplier dengan EmailSupplier untuk model relasi Multi-Value mempunyai

c. Hubungan KdKaryawan dengan TeleponKaryawan untuk model relasi Multi-Value mempunyai

(54)

d. Hubungan KdKaryawan dengan EmailKaryawan untuk model relasi Multi-Value mempunyai

e. Hubungan KdCustomer dengan TeleponCustomer untuk model relasi Multi-Value mempunyai

f. Hubungan KdCustomer dengan EmailCustomer untuk model relasi Multi-Value mempunyai

(55)

3.2.3.3 Memvalidasi relasi menggunakan normalisasi

• MsBarang (KdBarang, KdJenisBarang, NamaBarang, JenisBarang, Harga, Stok)

Primary Key : KdBarang

Foreign Key : KdJenisBarang references MsJenisBarang (KdJenisBarang)

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

MsBarang (KdBarang, KdJenisBarang, NamaBarang, JenisBarang, Harga, Stok)

Primary key : KdBarang

Foreign Key : KdJenisBarang references MsJenisBarang (KdJenisBarang)

• MsJenisBarang (KdJenisBarang, JenisBarang) Primary Key : KdJenisBarang

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

(56)

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

MsJenisBarang (KdJenisBarang, JenisBarang) Primary key : KdJenisBarang

• MsSupplier (KdSupplier, NamaSupplier, AlamatSupplier) Primary Key : KdSupplier

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

MsSupplier (KdSupplier, NamaSupplier, AlamatSupplier) Primary key : KdSupplier

(57)

Foreign Key : KdJenisKaryawan references MsJenisKaryawan (KdJenisKaryawan) 1NF : Sudah memenuhi 1NF karena mempunyai primary key

dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

MsKaryawan (KdKaryawan, KdJenisKaryawan,

NamaKaryawan, AlamatKaryawan, Username, Password) Primary key : KdKaryawan

Foreign Key : KdJenisKaryawan references MsJenisKaryawan (KdJenisKaryawan)

• MsJenisKaryawan (KdJenisKaryawan, Jabatan) Primary Key : KdJenisKaryawan

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

(58)

MsJenisKaryawan (KdJenisKaryawan, Jabatan) Primary key : KdJenisKaryawan

• MsCustomer (KdCust, NamaCust, AlamatCust, KdPos, Username,Password)

Primary Key : KdCust

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

MsCustomer (KdCust, NamaCust, AlamatCust, KdPos, Username, Password)

Primary key : KdCust

• TrPemesanan (KdPemesanan, TglPesan) Primary Key : KdPemesanan

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

(59)

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TrPemesanan (KdPemesanan, TglPesan) Primary Key : KdPemesanan

• TrPembayaran (KdPembayaran, TglBayar) Primary Key : KdPembayaran

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TrPembayaran (KdPembayaran, TglBayar) Primary Key : KdPembayaran

• TrPengiriman (KdPengiriman, TglKirim) Primary Key : KdPengiriman

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

(60)

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TrPengiriman (KdPengiriman, TglKirim) Primary Key : KdPengiriman

• TrPembelian (KdPembelian, Qty, TglBeli, HargaBeli) Primary Key : KdPembelian

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TrPembelian (KdPembelian, Qty, TglBeli, HargaBeli) Primary Key : KdPembelian

(61)

• TrReturPenjualan (KdRtrPenjualan, Qty, TglPengembalian) Primary Key : KdRtrPenjualan

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TrReturPenjualan (KdRtrPenjualan, Qty, TglPengembalian) Primary Key : KdRtrPenjualan

• TrReturPembelian (KdRtrPembelian, Qty,TglPengembalian) Primary Key : KdRtrPembelian

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TrReturPembelian (KdRtrPembelian, Qty,TglPengembalian) Primary Key : KdRtrPembelian

(62)

• TrDetailPembelian (KdPembelian, Qty, TglBeli, HargaBeli, KdBarang, NamaBarang, JenisBarang)

Primary Key : KdPembelian, KdBarang

Foreign Key : KdPembelian references TrPembelian(KdPembelian)

Foreign Key : KdBarang references MsBarang (KdBarang) 1NF : Sudah memenuhi 1NF karena mempunyai primary key

dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TrDetailPembelian (KdPembelian, Qty, TglBeli, HargaBeli, KdBarang, NamaBarang, JenisBarang)

Primary Key : KdPembelian, KdBarang

Foreign Key : KdPembelian references TrPembelian(KdPembelian)

Foreign Key : KdBarang references MsBarang (KdBarang)

(63)

Foreign Key : KdSupplier references MsSupplier (KdSupplier)

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TeleponSupplier (TelpSupplier, KdSupplier) Primary Key : TelpSupplier

Foreign Key : KdSupplier references MsSupplier (KdSupplier)

• EmailSupplier (EmailSupplier, KdSupplier) Primary Key : EmailSupplier

Foreign Key : KdSupplier references MsSupplier (KdSupplier)

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

(64)

Hasil validasi normalisasi :

EmailSupplier (EmailSupplier, KdSupplier) Primary Key : EmailSupplier

Foreign Key : KdSupplier references MsSupplier (KdSupplier)

• TeleponKaryawan (TelpKaryawan, KdKaryawan) Primary Key : TelpKaryawan

Foreign Key : KdKaryawan references MsKaryawan (KdKaryawan)

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TeleponKaryawan (TelpKaryawan, KdKaryawan) Primary Key : TelpKaryawan

Foreign Key : KdKaryawan references MsKaryawan (KdKaryawan)

(65)

• EmailKaryawan (EmailKaryawan, KdKaryawan) Primary Key : EmailKaryawan

Foreign Key : KdKaryawan references MsKaryawan (KdKaryawan)

1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

EmailKaryawan (EmailKaryawan, KdKaryawan) Primary Key : EmailKaryawan

Foreign Key : KdKaryawan references MsKaryawan (KdKaryawan)

• TeleponCustomer (TelpCust, KdCust) Primary Key : TelpCust

Foreign Key : KdCust references MsCustomer (KdCust) 1NF : Sudah memenuhi 1NF karena mempunyai primary key

dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

(66)

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

TeleponCustomer (TelpCust, KdCust) Primary Key : TelpCust

Foreign Key : KdCust references MsCustomer (KdCust)

• EmailCustomer (EmailCust, KdCust) Primary Key : EmailCust

Foreign Key : KdCust references MsCustomer (KdCust) 1NF : Sudah memenuhi 1NF karena mempunyai primary key

dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

EmailCustomer (EmailCust, KdCust) Primary Key : EmailCust

(67)

• NoRekeningCustomer (NoRekCust, KdCust) Primary Key : NoRekCust

Foreign Key : KdCust references MsCustomer (KdCust) 1NF : Sudah memenuhi 1NF karena mempunyai primary key

dan tidak ada lagi repeating group.

2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.

3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency

Hasil validasi normalisasi :

NoRekeningCustomer (NoRekCust, KdCust) Primary Key : NoRekCust

Foreign Key : KdCust references MsCustomer (KdCust)

3.2.3.4 Validasi relasi pada transaksi user

Semua transaksi pengguna seperti yang telah didefinisikan pada tahap konseptual diperiksa kembali terhadap relasi yang ada untuk memastikan relasi sudah benar dan dapat memenuhi transaksi-transaksi yang dibutuhkan pengguna.

(68)

3.2.3.5 Mendefinisikan integrity constraint • Required data

Beberapa atribut harus selalu berisi data yang sah sehingga atribut tersebut tidak diperbolehkan menerima null. Batasan seperti ini telah diidentifikasikan dalam kamus data atribut. • Attribute domain constrains

Setiap atribut mempunyai domain yang merupakan sekumpulan nilai yang sah. Batasan ini telah diidentifiikasikan pada saat menentukan domain atribut untuk model data. • Entity integrity

Primary key dari sebuah entity tidak dapat menerima null. Batasan ini telah dipertimbangkan pada saat mengidentifikasi primary key pada kamus data entitas.

• Referential integrity

MsBarang (KdBarang, KdJenisBarang, NamaBarang, JenisBarang, Harga, Stok)

Primary key : KdBarang

Foreign Key KdJenisBarang references MsJenisBarang ON UPDATE CASCADE ON DELETE NO ACTION

(69)

MsKaryawan (KdKaryawan, KdJenisKaryawan, NamaKaryawan, AlamatKaryawan, Username, Password)

Primary key : KdKaryawan

Foreign Key KdJenisKaryawan references MsJenisKaryawan (KdJenisKaryawan)

MsCustomer (KdCust, NamaCust, AlamatCust, KdPos, Username, Password)

Primary Key : KdCust

TrPemesanan (KdPemesanan, TglPesan) Primary Key : KdPemesanan

TrPembayaran (KdPembayaran, TglBayar) Primary Key : KdPembayaran

TrPengiriman (KdPengiriman, TglKirim) Primary Key : KdPengiriman

TrPembelian (KdPembelian, Qty, TglBeli, HargaBeli) Primary Key : KdPembelian

TrReturPenjualan (KdRtrPenjualan, Qty, TglPengembalian) Primary Key : KdRtrPenjualan

(70)

TrReturPembelian (KdRtrPembelian, Qty, TglPengembalian)

Primary Key : KdRtrPembelian

TrDetailPembelian (KdPembelian, Qty, TglBeli, HargaBeli, KdBarang, NamaBarang, JenisBarang)

Primary Key : KdPembelian, KdBarang

Foreign Key KdPembelian references TrPembelian (KdPembelian)

Foreign Key KdBarang references MsBarang (KdBarang) ON UPDATE CASCADE ON DELETE NO ACTION

TeleponSupplier (TelpSupplier, KdSupplier) Primary Key : TelpSupplier

Foreign Key KdSupplier references MsSupplier (KdSupplier)

ON UPDATE CASCADE ON DELETE NO ACTION

EmailSupplier (EmailSupplier, KdSupplier) Primary Key : EmailSupplier

Foreign Key KdSupplier references MsSupplier (KdSupplier)

(71)

TeleponKaryawan (TelpKaryawan, KdKaryawan) Primary Key : TelpKaryawan

Foreign Key KdKaryawan references MsKaryawan (KdKaryawan)

ON UPDATE CASCADE ON DELETE NO ACTION

EmailKaryawan (EmailKaryawan, KdKaryawan) Primary Key : EmailKaryawan

Foreign Key KdKaryawan references MsKaryawan (KdKaryawan)

ON UPDATE CASCADE ON DELETE NO ACTION

TeleponCustomer (TelpCust, KdCust) Primary Key : TelpCust

Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION

EmailCustomer (EmailCust, KdCust) Primary Key : EmailCust

Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION

(72)

NoRekeningCustomer (NoRekCust, KdCust) Primary Key : NoRekCust

Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION

• Enterprise constrains

Merupakan aturan tambahan yang dibuat oleh user atau seorang database administrator dari basis data tersebut. Batasan ini telah diidentifikasikan dalam tabel atribut domain.

(73)

MsBarang PK KdBarang FK1 KdJenisBarang NamaBarang Harga Stok TrDetailPembelian PK KdPembelian FK1 KdBarang Qty TglBeli HargaBeli NamaBarang JenisBarang TrReturPenjualan PK KdRtrPenjualan FK1 KdPengiriman Qty TglPengembalian TrPembelian PK KdPembelian FK1 KdBarang FK2 KdSupplier Qty TglBeli HargaBeli TrReturPembelian PK KdRtrPembelian FK1 KdPembelian Qty TglPengembalian MsCustomer PK KdCust NamaCust AlamatCust KdPos Username Password MsSupplier PK KdSupplier NamaSupplier AlamatSupplier TeleponSupplier PK TelpSupplier FK1 KdSupplier EmailSupplier PK EmailSupplier FK1 KdSupplier MsKaryawan PK KdKaryawan FK1 KdJenisKaryawan NamaKaryawan AlamatKaryawan Username Password TeleponKaryawan PK TeleponKaryawan FK1 KdKaryawan EmailKaryawan PK EmailKaryawan FK1 KdKaryawan TeleponCustomer PK TelpCust FK1 KdCust EmailCustomer PK EmailCust FK1 KdCust MsJenisBarang PK KdJenisBarang JenisBarang MsJenisKaryawan PK KdJenisKaryawan Jabatan NoRekeningCustomer PK NoRekCust FK1 KdCust TrPemesanan PK KdPemesanan FK1 KdCust TglPesan TrPembayaran PK KdPembayaran FK1 KdPemesanan TglBayar TrPengiriman PK KdPengiriman FK1 KdPembayaran TglKirim FK2 KdKaryawan CustomerTalk PK,FK1 KdCust Talk Tgl

(74)

3.2.4 Perancangan Basis Data Fisikal

Pada perancangan basis data fisikal terdapat pembahasan perancangan Database Design Language (DBDL) untuk setiap entitas, perancangan constraint setiap entitas, analisis transaksi, pembuatan indeks, serta perancangan mekanisme keamanan data.

3.2.4.1 Menerjemahkan Model Data Logikal kedalam Target DBMS Bertujuan untuk membuat suatu skema basis data relasional dari model data logikal yang dapat diimplementasikan ke DBMS yang dituju.

3.2.4.1.1 Merancang Relasi Dasar

Tujuan dari tahap ini adalah untuk merepresentasikan relasi dasar yang diidentifikasi pada model data logikal global ke dalam sasaran DBMS dengan menggunakan DBDL (Database Design Language). DBDL yang digunakan adalah sebagai berikut:

1. DBDL untuk MsBarang

Domain KdBarang : char, length 5 Domain KdJenisBarang : char, length 6

Domain NamaBarang : variable length char string, length 20

(75)

MsBarang (

KdBarang Kode Barang NOT NULL, KdJenisBarang Kode Jenis Barang NOT NULL, NamaBarang Nama Barang NOT NULL,

Harga Harga NOT NULL,

Stok Persediaan Barang NOT NULL Primary Key KdBarang

Foreign Key KdJenisBarang references MsBarang (KdJenisBarang) ON UPDATE CASCADE ON DELETE NO ACTION

2. DBDL untuk MsJenisBarang

Domain KdJenisBarang : char, length 5

Domain JenisBarang : variable length char string, length 20

MsJenisBarang(

KdJenisBarang Kode Jenis Barang NOT NULL, JenisBarang Jenis Barang NOT NULL Primary Key KdJenisBarang

(76)

3. DBDL untuk MsSupplier

Domain KdSupplier : char, length 5

Domain NamaSupplier : variable length char string, length 20

Domain AlamatSupplier : text

MsSupplier (

KdSupplier Kode Supplier NOT NULL, NamaSupplier Nama Supplier NOT NULL, AlamatSupplier Alamat Supplier NOT NULL, Primary Key KdSupplier

4. DBDL untuk TeleponSupplier Domain KdSupplier : char, length 5

Domain TelpSupplier : variable length char string, length 20

TeleponSupplier (

KdSupplier Kode Supplier NOT NULL, TelpSupplier Telepon Supplier NOTNULL Primary Key TelpSupplier

(77)

5. DBDL untuk EmailSupplier

Domain EmailSupplier : variable length char string, length 50

Domain KdSupplier : char, length 5

EmailSupplier (

EmailSupplier Email Supplier NOTNULL, KdSupplier Kode Supplier NOT NULL Primary Key EmailSupplier

Foreign Key KdSupplier references MsSupplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION

6. DBDL untuk MsKaryawan

Domain KdKaryawan : char, length 5 Domain KdJenisKaryawan : char, length 6

Domain NamaKaryawan : variable length char string, length 50

Domain AlamatKaryawan : text

Domain Username : variable length char string, length 20

Domain Password : variable length char string, length 35

(78)

MsKaryawan (

KdKaryawan Kode Karyawan NOT NULL, KdJenisKaryawan Kode Jenis Karyawan NOT

NULL,

NamaKaryawan Nama Karyawan NOT NULL, AlamatKaryawan Alamat Karyawan NOT NULL, Username Username Karyawan NOT NULL, Password Password Karyawan NOT NULL Primary Key KdKaryawan

Foreign Key KdJenisKaryawan references

MsJenisKaryawan (KdJenisKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION

7. DBDL untuk MsJenisKaryawan

Domain KdJenisKaryawan : char, length 6

Domain JabatanKaryawan : variable length char string, length 30

MsJenisKaryawan (

KdJenisKaryawan Kode Jenis Karyawan NOT NULL,

(79)

8. DBDL untuk TeleponKaryawan

Domain TelpKaryawan : variable length char string, length 20

Domain KdKaryawan : char, length 5 TeleponKaryawan (

TelpKaryawan Telepon Karyawan NOTNULL KdKaryawan Kode Karyawan NOT NULL, Primary Key TelpKaryawan

Foreign Key KdKaryawan references MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION,

9. DBDL untuk EmailKaryawan

Domain EmailKaryawan : variable length char string, length 50

Domain KdKaryawan : char, length 5

EmailKaryawan (

TelpKaryawan Email Karyawan NOTNULL KdKaryawan Kode Karyawan NOT NULL, Primary Key EmailKaryawan

Foreign Key KdKaryawan references MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON

(80)

10. DBDL untuk MsCustomer Domain KdCust : integer

Domain NamaCust : variable length char string, length 50

Domain AlamatCust : text

Domain Kdpos : char, length 5

Domain Username : variable length char string, length 20

Domain Password : variable length char string, length 35

MsCustomer (

KdCust Kode Customer NOT NULL, NamaCust Nama Customer NOT NULL, AlamatCust Alamat Customer NOT NULL, Kdpos Kode Pos dari Customer NOT NULL, Username Username Customer NOT NULL, Password Password Customer NOT NULL Primary Key KdCust

(81)

TeleponCustomer (

TelpCust Telepon Customer NOTNULL KdCust Kode Customer NOT NULL, Primary Key TelpCust

Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION,

12. DBDL untuk EmailCustomer

Domain EmailCust : variable length char string, length 50

Domain KdCust : char, length 5

EmailCustomer (

TelpCust Email Customer NOTNULL, KdCust Kode Customer NOT NULL Primary Key EmailCust

Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION

13. DBDL untuk NoRekeningCustomer

(82)

Domain KdCust : char, length 5

NoRekeningCustomer (

NoRekCust Email Customer NOTNULL, KdCust Kode Customer NOT NULL Primary Key NoRekCust

Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION

14. DBDL untuk TrPemesanan

Domain KdPemesanan : char, length 6 Domain KdCust : char, length 5 Domain TglPesan : datetime

TrPemesanan (

KdPemesanan Kode Pemesanan NOT NULL, KdCust Kode Customer NOTNULL,

TglPesan Tanggal pemesanan NOT NULL Primary Key KdPemesanan

(83)

15. DBDL untuk TrPembayaran

Domain KdPembayaran : char, length 6 Domain KdPemesanan : char, length 6 Domain KdKaryawan : char, lenght 5

Domain TglBayar : datetime

TrPembayaran (

KdPembayaran Kode Pembayaran NOT NULL, KdPemesanan Kode Pemesanan NOTNULL,

KdKaryawan Kode Karyawan NOT NULL, TglBayar Tanggal pembayaran NOT NULL Primary Key KdPembayaran

Foreign Key KdPemesanan references TrPemesanan (KdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION

Foreign Key KdKaryawan references MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION

);

16. DBDL untuk TrPengiriman

Domain KdPengiriman : char, length 6 Domain KdPembayaran : char, length 6

(84)

Domain TglKirim : datetime

TrPengiriman (

KdPengiriman Kode Pengiriman NOT NULL, KdPembayaran Kode Pembayaran NOTNULL,

KdKaryawan Kode Karyawan NOT NULL, TglKirim Tanggal pembayaran NOT NULL Primary Key KdPengiriman

Foreign Key KdPembayaran references TrPembayaran (KdPembayaran) ON UPDATE CASCADE ON DELETE NO ACTION

Foreign Key KdKaryawan references MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION

);

17. DBDL untuk TrPembelian

Domain KdPembelian : char, length 6 Domain KdSupplier : char, lenght 5 Domain TglBeli : datetime TrPembelian (

(85)

Primary Key KdPembelian

Foreign Key KdSupplier references MsSupplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION,

);

18. DBDL untuk TrDetailPembelian Domain KdPembelian : char, length 6 Domain KdBarang : char, length 6

Domain HargaBeli : variable length char string, length 20

Domain Qty : integer

TrDetailPembelian (

KdPembelian Kode Pembelian NOT NULL, KdBarang Kode Barang NOT NULL, HargaBeli Harga Beli Satuan NOT NULL, Qty Banyaknya barang NOT NULL, Primary Key KdPembelian

Foreign Key KdBarang references MsBrang (KdBarang) ON UPDATE CASCADE ON DELETE NO ACTION

(86)

19. DBDL untuk TrReturPenjualan Domain KdRtrPenjualan: char, length 6 Domain KdPenjualan : char, length 6 Domain Qty : integer Domain TglPengembalian : Datetime

TrReturPenjualan (

KdRtrPenjualan Kode Retur Penjualan NOT NULL,

KdPenjualan Kode penjualan NOT NULL,

Qty Banyaknya barang NOT

NULL,

TglPengembalian Tanggal Pengembalian NOT NULL

Primary Key KdRtrPenjualan

Foreign Key KdPenjualan references TrlPenjualan (KdPenjualan) ON UPDATE CASCADE ON DELETE NO ACTION

(87)

Domain Qty : integer Domain TglPengembalian : Datetime

TrReturPembelian (

KdRtrPembelian Kode Retur Pembelian NOT NULL,

KdPembelian Kode Pembelian NOT NULL, Qty Banyaknya barang NOT NULL, TglPengembalian Tanggal Pengembalian NOT NULL

Primary Key KdRtrPembelian

Foreign Key KdPembelian references

TrHeaderlPembelian (KdPembelian) ON UPDATE CASCADE ON DELETE NO ACTION

);

21. DBDL untuk CustomerTalk Domain KdCust : char, length 6 Domain Talk : Text

Domain Tgl : datetime CustomerTalk (

KdCust Kode Customer NOT NULL,

(88)

Primary Key KdCust

Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION

);

3.2.4.1.2 Merancang Representasi Dari Data Turunan

Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan suatu data turunan pada model data logikal global pada DBMS yang dipakai. Pada model data logikal global yang telah dibuat tidak terdapat data turunan, jadi langkah ini tidak dilakukan

3.2.4.1.3 Merancang Enterprise Constraints

Berikut ini merupakan perancangan constraints yang terdapat dalam suatu entitas, antara lain:

1. Constraint untuk MsBarang CREATE TABLE MsBarang (

KdBarang CHAR(5), KdJenisBarang VARCHAR(30),

(89)

CONSTRAINT PK MsBarang PRIMARY KEY (KdBarang),

CONSTRAINT FK MsBarang FOREIGN KEY (KdJenisBarang) REFERENCES MsJenisBarang (KdJenisBarang) ON UPDATE CASCADE ON DELETE NO ACTION

)

2. Constraint untuk MsJenisBarang

CREATE TABLE MsJenisBarang (

KdJenisBarang VARCHAR(30), JenisBarang VARCHAR(30),

CONSTRAINT PK MsjenisBarang PRIMARY KEY (KdJenisBarang),

)

3. Constraint untuk MsSupplier

CREATE TABLE MsSupplier (

KdSupplier CHAR(5), NamaSupplier VARCHAR(20), AlamatSupplier TEXT,

(90)

CONSTRAINT PK MsSupplier PRIMARY KEY (KdSupplier)

)

4. Constraint untuk TeleponSupplier

CREATE TABLE TeleponSupplier (

TelpSupplier VARCHAR(20), KdSupplier CHAR(5),

CONSTRAINT PK TeleponSupplier PRIMARY KEY (TelpSupplier)

CONSTRAINT FK TeleponSupplier FOREIGN KEY (KdSupplier) REFERENCES MsSupplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION

)

5. Constraint untuk EmailSupplier

CREATE TABLE EmailSupplier (

(91)

CONSTRAINT FK EmailSupplier FOREIGN KEY (KdSupplier) REFERENCES MsSupplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION

)

6. Constraint untuk MsKaryawan

CREATE TABLE MsKaryawan ( KdKaryawan CHAR(5), KdJenisKaryawan CHAR(6), NamaKaryawan VARCHAR(20), AlamatKaryawan TEXT, Username VARCHAR (20), Password VARCHAR (10),

CONSTRAINT PK MsKaryawan PRIMARY KEY (KdKaryawan),

CONSTRAINT FK MsKaryawan FOREIGN KEY (KdJenisKaryawan) REFERENCES MsJenisKaryawan(KdJenisKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION

(92)

7. Constraint untuk MsJenisKaryawan

CREATE TABLE MsJenisKaryawan (

KdJenisKaryawan CHAR(6),

Jabatan VARCHAR(30),

CONSTRAINT PK MsJenisKaryawan PRIMARY KEY (KdJenisKaryawan)

)

8. Constraint untuk TeleponKaryawan

CREATE TABLE TeleponKaryawan (

TelpKaryawan VARCHAR(20), KdKaryawan CHAR(5),

CONSTRAINT PK TeleponKaryawan PRIMARY KEY (TelpKaryawan)

CONSTRAINT FK TeleponKaryawan FOREIGN KEY (KdKaryawan) REFERENCES MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION

(93)

9. Constraint untuk EmailKaryawan

CREATE TABLE EmailKaryawan (

EmailKaryawan VARCHAR(20), KdKaryawan CHAR(5),

CONSTRAINT PK EmailKaryawan PRIMARY KEY (EmailKaryawan)

CONSTRAINT FK EmailKaryawan FOREIGN KEY (KdKaryawan) REFERENCES MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION

)

10. Constraint untuk MsCustomer CREATE TABLE MsCustomer ( KdCust INT(5), KdJenisCust CHAR(6), NamaCust VARCHAR(50), AlamatCust TEXT, KdPos VARCHAR(6), Username VARCHAR (20), Password VARCHAR (10),

(94)

CONSTRAINT PK MsCustomer PRIMARY KEY (KdCust),

CONSTRAINT FK MsCustomer FOREIGN KEY (KdJenisCust) REFERENCES MsJenisCustomer(KdJenisCust) ON UPDATE CASCADE ON DELETE NO ACTION

)

11. Constraint untuk TeleponCustomer CREATE TABLE TeleponCustomer (

TelpCust VARCHAR(20), KdCust CHAR(5),

CONSTRAINT PK TeleponCustomer PRIMARY KEY (TelpCust)

CONSTRAINT FK TeleponCustomer FOREIGN KEY (KdCust) REFERENCES MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION

Gambar

Gambar 3.4 ER Diagram Konseptual
Tabel 3.18 Atribut Domain Entity MsCustomer  Entity : MsCustomer AlamatKaryawan TelpKaryawan EmailKaryawan Jabatan Username Password
Tabel 3.19 Atribut Domain Entity TrPemesanan  Entity : TrPemesanan EmailCust NoRekCust Username Password  20 karakter
Gambar 3.5 ER Diagram Konseptual dengan Primary Key
+7

Referensi

Dokumen terkait

 jelaskan peraturan dan ketentuan yang berlaku dengan tegas tapi tetap bersikap menghargai (tidak memandang rendah atau mengejek).  hargai perasaannya, namun tidak

Indofood CBP Sukses Makmur Tbk Cabang Palembang yang berlokasi di Jl.H.B.R Motik KM.8 Sukarami Palembang dan sebagai sampel yang akan diteliti adalah mahasiswa

[r]

Perkembangan dunia otomotif yang semakin pesat telah membawa perubahan pada gaya hidup masyarakat Indonesia, otomotif menjadi hobi dari berbagai kalangan baik tua

[r]

Judul Skripsi : Pemberitaan Kemenangan Pasangan Gatot Pujo Nugroho – Tengku Erry Nuradi (Ganteng) Dalam Hasil Hitung Cepat Pemilukada Sumatera Utara 2013 Pada

dapat disimpulkan bahwa pada saat menggunakan timing pengapian modifikasi – 1 (20 0 ) untuk nilai daya tertinggi dari berbagai variasi jarum skep terjadi pada putaran 7000

Mastitis tuberkulosis seharusnya dicurigai terjadi jika terdapat benjolan atau area indurasi, dengan sinus yang mengeluarkan cairan secara kronis atau discharging sinus ( Gambar