Anda di halaman 1dari 19

Step by Step Design Database Showroom Mobil Bekas

Sistem Basis Data

Disusun oleh: Boas Kamarudin Kapitan (1182018)


Fakultas

Teknik Informasi
Jurusan

(Sistem informasi) UNIVERSITAS ADVENT INDONESIA 2013

Database showroom mobil bekas Step by Step Design Fakultas Teknologi Informasi UNAI

Struktur organisasi Showroom mobil :


Pimpinan

Pembelian

Penjualan

Keuangan

Pemasaran

Pembelian

1. Penjelasan Organisasi Perusahaan shorum mobil merupakan perusahaan yang bergerak dalam jual belih mobil bekas hasil penjualan ini di tujukan dalam pasaran dalam negeri. Showroom mobil ini di dirikan dalam dua tujuan yaitu tujuan jangka pendek dan jangka panjang.Tujuannya adalah untuk mencapai target penjualan yang ditetapkan setiap bulan dan mencapai keuntungan dengan mengimbangi biaya operasional shorum. Bagian-bagian dari Showroom Mobil bekas : Bisnis organisasi : Jual beli mobil bekas dan bekerja sama dengan showroom mobil baru untuk menjual dan menampung mobil bekas dari showroom mobil baru. Produk/jasa yang dijual : mobil bekas Strategi bisnis organisasi : bekerja sama dengan showroom mobil baru menampung setiap mobil bekas yang dikembalikan oleh pelanggan karena tidak sanggup melanjutkan kredit mobil. Visi misi organisasi : Visi : Menyediakan informasi yang selalu up-to-date Misi : Dapat memenuhi target penjualan yang besar. Hal-hal unik yang membedakan organisasi dengan organisasi sejenis : adalah organisasi ini telah memakai sistem komputerisasi jadi setiap barang yang di tawarkan selalu melalui website yang selalu ter up- to date

2. System Definition Database ini dibangun untuk digunakan sebagai database pada sistem informasi sebuah Showroom mobil bekas. Aplikasi database yang akan dibangun haruslah bisa menangani proses bisnis yang ada di Showroom mobil tersebut, yang antara lain: 1. Proses bisnis penjualan mobil bekas 2. Proses bisnis pengiriman mobil bekas kepada pelanggan Batasan sistem dapat juga ditentukan dengan menentukan siapa saja user yang ingin dilayani oleh sistem dan apa saja view bagi masing-masing user: Misalnya: 1. User 1 : Direktur - Menampilkan data penjualan seluruh cabang - Menampilkan data semua pegawai. - Menampilkan data semua pelanggan seluruh cabang

2. User 2 : Manager

Menampilkan penjualan di cabang yang dipimpin Menampilkan pelanggan di cabang yang dipimpin Menampilkan pembayaran di cabang yang dipimpin.

3. User 3 : Pegawai - Menampilkan halaman home dari website - Menampilkan data-data mobil bekas yang akan dijual - Menampilkan pesanan dari pelanggan - Menampilkan data pelanggan - dll 4. Requirements collection and analysis Pada bagian ini, identifikasi semua kebutuhan data pada masing-masing proses bisnis. Identifikasi kebutuhan data juga dapat dilakukan dengan mengidentifikasi kebutuhan data untuk masing-masing user. Dibawah ini ditunjukkan cara mengidentifikasi kebutuhan data berdasarkan proses bisnis. Beberapa hal yang perlu diperhatikan, sistem harus dapat mencatat semua data-data sehingga tidak ada terjadi resiko-resiko bisnis seperti: 1. Hilangnya data pelanggan sehingga terjadi kesulitan pada saat mengirimkan barang. 2. Pengiriman barang yang tidak sesuai dengan pesanan pelanggan. 3. Kesalahan pencatatan pembayaran yang dilakukan oleh pelanggan.

Kebutuhan akan data untuk aplikasi database yang akan dibangun antara lain: 1. Proses bisnis penjualan mobil Nama pelanggan Alamat Telepon Merek Mobil Harga Warna Cara pembayaran Jumlah pembayaran

2. Proses pengiriman mobil kepada pelanggan Merek Mobil Tipe Warna Nama Pelanggan Alamat Telepon Pegawai

Conceptual Database Design 4.1 Mengidentifikasi entity type Entity type yang ada adalah sebagai berikut:

Mobil

Pelanggan

Penjualan

Pemilik

Pegawai Pembayaran Pengiriman

4.2 Relasi antar entity

Pelanggan

Pegawai

Pembayaran

Penjualan Pemilik

Pengiriman

Mobil

Logical Database Design 1.1 Menentukan cardinality untuk setiap relasi entity
1. Pelanggan dan Penjualan melibatkan
(1, 1) Pelanggan (0, *) Penjualan

2. Pengiriman dan Pelanggan


(0, *) Pengiriman

melibatkan
(1, 1) Pelanggan

3. Pegawai dan Penjualan melibatkan


(1, 1) Pegawai (0, *) Penjualan

4. Pegawai dan Pengiriman melakukan


(1, 1) Pegawai (0, *) Pengiriman

5. Penjualan dan Mobil


(0, 1) Penjualan

melibatkan
(1, 1) Mobil

6. Mobil dan Pengiriman


(1, 1) Mobil

melibatkan
(1, 1) Pengiriman

7. Pelanggan dan Pembayaran melibatkan


(1, 1) Pelanggan (0, *) Pembayaran

8. Pemilik dan mobil


(1, 1) Pemilik

melibatkan
(0, *) Mobil

Menurunkan tabel dari relasi antar entity


1. Pelanggan dan Penjualan
(1, 1) Pelanggan (0, *) Penjualan

Tabel untuk entity di atas: tblPelanggan : IDPelanggan tblPenjualan : IDPenjualan, [IDPelanggan]

2. Pengiriman dan Pelanggan


(0, *) Pengiriman (1, 1) Pelanggan

Tabel untuk entity di atas: tblPelanggan : IDPelanggan tblPengiriman : IDPengiriman, [IDPelanggan]

3. Pegawai dan Penjualan


(1, 1) Pegawai (0, *) Penjualan

Tabel untuk entity di atas: tblPegawai : IDPegawai tblPenjualan : IDPenjualan, [IDPegawai]

4. Pegawai dan Pengiriman


(1, 1) Pegawai (0, *) Pengiriman

Tabel untuk entity di atas: tblPegawai : IDPegawai tblPengiriman : IDPengiriman, [IDPegawai] 5. Penjualan dan Mobil
(0, 1) Penjualan (1, 1) Mobil

Tabel untuk entity di atas: tblMobil : IDMobil, tblPenjualan : IDPenjualan, [IDMobil]

6. Mobil dan Pengiriman


(1, 1) Mobil (1, 1) Pengiriman

Tabel untuk entity di atas: tblMobil : IDMobil, tblPengiriman : IDPengiriman, [IDMobil] 7. Pelanggan dan Pembayaran
(1, 1) Pelanggan (0, *) Penjualan

Tabel untuk entity di atas: tblPelanggan : IDPelanggan tblPenjualan : IDPembayaran, [IDPembayaran] 8. Pemilik dan Mobil
(1, 1) Pemilik (0, *) Mobil

Tabel untuk entity di atas: tblPelanggan : IDPemilik tblPenjualan : IDMobil, [IDMobil]

Dari hasil penurunan tabel dari relasi entity yang ada, maka diperoleh tabel-tabel yang dihasilkan adalah sebagai berikut: tblPenjualan IDPelanggan IDMobil IDPegawai tblPembayaran IDPembayaran IDPegawai IDMobil

tblMobil IDMobil

tblPemilik IDPegawai

tblPelanggan IDPelanggan

tblPegawai IDPegawai

tblPengiriman IDPengiriman IDPelanggan IDPegawai IDMobil

Menambahkan atribute yang lain ke dalam tabel


Menambakan atribute lain ke dalam tabel adalah menambahkan atribute-atribute yang ada pada masing-masing entity yang belum terdapat di tabel ke dalam tabel-tabel yang bersesuaian. Kemudian setelah atribute-atribute yang lain ditambahkan ke dalam tabeltabel, maka diperoleh hasil tabel menjadi seperti di bawah ini.

tblPenjualan IDMobil IDPelanggan Tipe pembayaran TglPenjualan TglPembayaran Cara Pembayaran Jumlah bayar IDPegawai

tblMobil IDMobil Tipe Warna Spesifikasi Jumlah HargaJual JlhStock

tblPemilik IDPegawai Nama Alamat Tlp

tblPembayaran No Faktur TglPembayaran Cara Pembayaran Jumlah bayar

tblPegawai IDPegawai Nama L/P TglLahir Alamat

tblPengiriman IDPengiriman TglPengiriman IDMobil IDPelanggan IDPegawai

Pelanggan IDPelanggan Nama Alamat Telepon TglLahir L/P Pekerjaan

Tabel-tabel yang dihasilkan di atas, kemudian diperiksa apakah mempunyai field-field yang bersifat multivalued attribute dan composite attribute. Dan hasilnya adalah sebagai berikut:

1. Tabel tblPegawai, tblPelanggan, Tabel tblPegawai, tblPelanggan, tblSupplier, memiliki field yang bersifat composite attribute yaitu: Alamat. Maka field tersebut dipecah menjadi field: NmJalan, Kota dan Kode Pos (KP). tblPegawai IDPegawai Nama L/P TglLahir NmJalan Kota KP Pelanggan IDPelanggan Nama NmJalan Kota KP Telepon TglLahir L/P Pekerjaan

2. Tabel tblPenjualan Pada tabel tblPenjualan, pembayaran dilakukan oleh pelanggan bisa saja terjadi beberapa kali. Misalnya pelanggan membayar uang muka terlebih dahulu, baru kemudian melakukan pembayaran. Akibatnya field: TglPembayaran, CaraPembayaran dan JumlahBayar menjadi field yang bersifat multivalued attribute. Sebagai solusinya, maka tblPenjualan harus dipecah menjadi tabel tblPenjualan dan tblPembayaran. tblPenjualan No Faktur IDMobil IDPelanggan Tipe pembayaran TglPenjualan IDPegawai tblPembayaran No Faktur TglPembayaran Cara Pembayaran Jumlah bayar

3. Tabel tblMobil Tabel mobil mempunyai field Spesifikasi yang bersifat composite attribute, maka field tersebut harus dipecah menjadi seperti di bawah ini: tblMobil IDMobil Tipe Warna Rem depan Rem belakang Tipe mesin DayaMaks TorsiMaks Kopling Starter Sistem Pengapian Jumlah HargaJual JlhStock

1.2 Memvalidasi tabel-tabel dengan melakukan normalisasi


Normalisasi dilakukan dengan cara menguji aturan-aturan normalisasi yang ada. Pada kasus ini, aturan normalisasi yang digunakan hanya aturan normalisasi yang pertama sampai yang ketiga (1NF, 2NF dan 3NF). 1. Tidak ada kelompok data yang berulang Pada setiap tabel, tidak ditemukan lagi kelompok data yang berulang. Semua tabel sudah memenuhi aturan nomalisasi pertama (1NF). 2. Tidak ada non primary key yang bergantung pada non primary key yang lain. Tabel mobil masih memiliki field non primary key yang bergantung pada non primary key yang lain, yaitu field Spesifikasi, yang bergantung pada field Tipe. Karena itu, sebagai solusinya, field-field tersebut harus ditempatkan di tabel tersendiri. Maka tabel tblMobil harus dipecah menjadi tabel tblMobildan tblSpesifikasi. tblMobil IDMobil IDTipe Warna Jumlah HargaJual JlhStock tblSpesifikasi IDTipe Tipe Kapasitas tangki Rem depan Rem belakang Tipe mesin DayaMaks TorsiMaks Kopling Starter Sistem Pengapian

3. Semua non primary harus bergantung pada primary key. Semua tabel sudah memenuhi aturan dari normalisasi ketiga (3NF). Setelah melakukan normalisasi, maka tabel-tabel yang ada di database adalah sebagai berikut: tblPelanggan IDPelanggan Nama NmJalan Kota KP Telepon TglLahir L/P Pekerjaan tblPembayaran No Faktur TglPembayaran Cara Pembayaran Jumlah bayar

tblPegawai IDPegawai Nama L/P TglLahir NmJalan Kota KP

tblPemilik IDPegawai Nama NamaJalan Kota KP Tlp

tblMobil IDMobil Tipe Warna Jumlah HargaJual JlhStock

tblSpesifikasi Tipe Kapasitas tangki Rem depan Rem belakang Tipe mesin DayaMaks Kopling Starter Sistem Pengapian

tblPenjualan No Faktur IDMobil IDPelanggan Tipe pembayaran TglPenjualan IDPegawai

tblPengiriman IDPengiriman TglPengiriman IDMobil IDPelanggan IDPegawai

1.3 Memvalidasi tabel dengan transaksi-transaksi user


Dari validasi yang dilakukan, maka tabel-tabel yang ada sudah memenuhi kebutuhan transaksi yang dilakukan oleh user.

1.4Membangun relasi antar tabel


Relasi antar tabel-tabel yang ada di database adalah seperti yang ditunjukkan di bawah ini.

1.5 Mendefinisikan integrity constraint


Beberapa integrity constaint yang harus dipenuhi oleh sistem, antara lain: 1. Data di tabel tblMobil, tblPelanggan, dan tblPegawai tidak dapat dihapus karena akan merusak referential integrity. 2. Pembayaran dengan transfer bank hanya dapat diterima jika dana sudah masuk ke rekening Showroom Mobil Bekas.

Menentukan domain dari attribute


1. Pelanggan Field IDPelanggan Nama NamaJalan Kota Telepon Tipe Data Numberik AutoNumber Text Text Text Text Domain Numerik 0 9 (6 digit) Teks 50 karakter Teks 50 karakter Text 50 karakter 14 digit

TglLahir L/P KodePos Pekerjaan 2. Pegawai Field IDPegawai Nama NamaJalan Telepon TglLahir L/P Kota KodePos Pekerjaan 3. Mobil Field IDMobil IDTipe Warna Jumlah HargaJual JumlahStock 4. Pemilik Field IDMobil Nama NamaJalan Tlp Kota KodePos

Date Text Text Text

L dan P Text 30 karakter Teks 30 karakter

Tipe Data Numberik AutoNumber Text Text Text Date Text Text Text Text

Domain Numerik 0 9 (6 digit) Teks 50 karakter Teks 50 karakter 14 digit L dan P Text 50 karakter 14 digit Teks 30 karakter

Tipe Data O + Numberik Text Text Text Text Text

Domain Huruf O + Numerik 0 9 (6 digit) Huruf O + Numerik 0 9 (6 digit) Teks 50 karakter Teks 50 karakter Teks 50 karakter Teks 50 karakter

Tipe Data O + Numberik Text Text Text Text Text

Domain Huruf O + Numerik 0 9 (6 digit) Teks 50 karakter Teks 50 karakter 14 digit Teks 50 karakter Teks 30 karakter

5. Spesifikasi Field IDTipe RemDepan RemBelakang TipeMesin DayaMaks Kopling Starter SistemPengapian

Tipe Data O + Numberik Text Text Text Text Text Text Text

Domain Huruf O + Numerik 0 9 (6 digit) Teks 50 karakter Teks 50 karakter Teks 50 karakter Teks 50 karakter Teks 50 karakter Teks 50 karakter Teks 50 karakter

6. Penjualan Field No Faktur TglPenjualan Tipe Pembayaran Tanggal Pembayaran Cara pembayaran IDMobil IDPelanggan IDPegawai Jumlah Bayar 7. Pengiriman Field IDPengiriman TglPengiriman IDMobil IDPelanggan IDPegawai 8. Pembayaran Field No Faktur Tipe Pembayaran Tanggal Pembayaran Cara pembayaran Jumlah Bayar Tipe Data P + Numberik Date Kode numerik Date Teks O + Numberik O + Numberik O + Numberik Currency Domain Huruf P + Numerik 0 9 (6 digit) 1 = Cash, 2 = Kredit Tunai, Transfer, kartu kredit Huruf O + Numerik 0 9 (6 digit) Huruf O + Numerik 0 9 (6 digit) Huruf O + Numerik 0 9 (6 digit)

Tipe Data O + Numberik Date O + Numberik O + Numberik O + Numberik

Domain Huruf O + Numerik 0 9 (6 digit) Huruf O + Numerik 0 9 (6 digit) Huruf O + Numerik 0 9 (6 digit) Huruf O + Numerik 0 9 (6 digit)

Tipe Data P + Numberik Kode numerik Date Teks Currency

Domain Huruf P + Numerik 0 9 (6 digit) 1 = Cash, 2 = Kredit Tunai, Transfer, kartu kredit

9. Implementation
Membuat DDL untuk masing-masing tabel??? Contoh untuk tabel tblPelanggan di atas:
Create table tblPelanggan (IDPelanggan Number (5) Primary Key, Nama Varchar(50) Not Null, NmJalan Varchar (50) Not Null, Kota Varchar(50) Not Null, KP Varchar(5), Telp Varchar(15), TglLahir Date Not Null, L/P Char(1) Check (L/P IN (L, P))

Pekerjaan Varchar (50) Not Null) Create table tblPenjualan (NoFaktur P + Numberik 0-9(6 digit) Tgl Penjualan Date, Tipe Pembayaran Kode numerikl, Carah Pembayarn Text (Tunai, transfer,kartu kredit) Not Null ID Mobil O + Numberik (huruf O + Numberik 0-9) (IDPelanggan Number (5) Primary key, ID Pegawai (15), Jumlah Bayar Currency Create table tblPegawai (IDPegawai Number (5) Primary Key, Nama Varchar(50) Not Null, NmJalan Varchar (50) Not Null, Kota Varchar(50) Not Null, KP Varchar(5), Telp Varchar(15), TglLahir Date Not Null, L/P Char(1) Check (L/P IN (L, P ) Kota Text (50) Kode Pos text (14) Pekerjaan Varchar (50) Not Null) Create table tblMobil (IDMobil Number (5) Primary Key, IDTipe Text (huruf O + Numberik 0-9) Warna Text(50) Not Null, Jumlah Text Text 50 karakter Harga Jual Text 50 karakter NmJalan Varchar (50) Not Null, Jumlah Stock text (text 50 karakter) Create table tblPemilik (IDPemilik Number (5) Primary Key, Nama Varchar(50) Not Null, NmJalan Varchar (50) Not Null, Kota Varchar(50) Not Null, Telp Varchar(15), Kota Text (50) Kode Pos text (14) Create table tblSpesifikasi (IDTipe Number (5) Primary Key, Rem Depan Varchar(50) Not Null, Rem Belakang Varchar (50) Not Null, Tipe Mesin Varchar(50) Not Null, Daya Maks varchar (15), Kopling Text (50) Starter text (50) Sistem Pengapian Text (50)

Create table tblPengiriman IDPengiriman number ) + Numberik primary key TglPengiriman Date, ID Mobil O + Numberik (huruf O + Numberik 0-9) (IDPelanggan Number (5) Primary key, ID Pegawai (15), Create table tblPembayaran No Faktur P + Numberik (0-9) Tipe Pembayaran vachar Kode numerik 1 = cash 2 = kredit Tanggal Pembayaran Date Carah pembayaran text (tunai,transfer,kartu kredit) Jumlah bayar vachar (Currency)