4. Flowchart Pengiriman dan Pemasangan
3.3. Perancangan Basis Data
3.3.1. Perancangan Basis Data Konseptual
3.3.1.9. Meninjau Kembali Model Data Konseptual denganPengguna
Tujuannyauntukmeninjau kembali model data konseptual dengan pengguna untuk memastikan bahwa model tersebut merupakan representasi dari keperluan data perusahaan.
Setelah melakukan pembahasan kembali dengan pengguna, model tersebut sudah memenuhi keperluan dan permintaan dari pengguna.
3.3.2. Pemilihan Database Management System
Tujuannya untuk memilih Database Management System yang tepat dan bisa mendukung sistem basis data.
Berikut merupakan perbandingan dari tiga DBMS yang ditemukan, yaitu MySql, MicrosoftSQLServer, dan Microsoft Access.
Tabel 3.47Perbandingan DBMS
Perbandingan MySql Microsoft SQL
Server Ms Access
Sistem operasi Windows, Mac
OS, Linux, UNIX Windows
Windows, Mac OS
Lisensi Gratis Berbayar Berbayar
Ukuran maksimal
blob atau clob 4GB 2GB 64KB
Ukuran maksimal
basis data Tidak terbatas 524,258 TB 2GB
Ukuran maksimal
nama kolom 64 karakter 128 karakter Tidak diketahui
Ukuran maksimal
baris 64KB Tidak terbatas 16MB
Maksimal kolom per
baris 4096 kolom 30000 kolom 255 kolom
Ukuran maksimal
tipe data number 64 bits 126bits 32bits
Ukuran maksimal
Setelah melakukan perbandingan antar ketiga DBMS tersebut, dapat disimpulkan bahwaMySql merupakan DBMS yang paling cocok untuk aplikasi basis data PT Luxus Indo Prima karena memiliki kapasitas penyimpanan yang memadai dan berlisensi gratis.
Selain itu, MySQL juga mendukung tahapan normalisasi yang akan diidentifikasikan berikutnya. Normalisasi dapat mengatasi masalah redundansi sehingga dapat mengurangi penggunaan ruang penyimpanan, memungkinkan data agar dapat disimpan dengan lebih baik dan memudahkan pencarian, serta dapat meningkatkan integritas data.Hal ini dapat menjawab masalah penyimpanan dan integritas data yang dialami oleh PT Luxus Indo Prima.
Engine yang dipilih dari MySQL yaitu innoDB karena innoDB mendukung foreign key constraint, serta dapat menjalakan perintah commit dan rollback.Selain itu, innoDB juga memungkinkan pemulihan dari kerusakan yang terjadi. Pemulihan bisa dilakukan dengan menjalankan ulang (restart) MySQL, kemudian innoDB akan melakukan pemeriksaan terhadap logs dan kembali pada kondisi ketika transaksi yang terakhir belum dijalankan. Selama proses pemulihan, MySQL akan menampilkan perintah seperti ini:
InnoDB: Database was not shut down normally. InnoDB: Starting recovery from log files... InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 13674004
InnoDB: Doing recovery: scanned up to log sequence number 0 13739520
InnoDB: Doing recovery: scanned up to log sequence number 0 13805056
InnoDB: Doing recovery: scanned up to log sequence number 0 13870592
InnoDB: Doing recovery: scanned up to log sequence number 0 13936128
...
InnoDB: Doing recovery: scanned up to log sequence number 0 20555264
InnoDB: Doing recovery: scanned up to log sequence number 0 20620800
InnoDB: Doing recovery: scanned up to log sequence number 0 20664692
InnoDB: 1 uncommitted transaction(s) which must be rolled back
InnoDB: Rolling back trx no 16745
InnoDB: Rolling back of trx no 16745 completed
InnoDB: Rollback of uncommitted transactions completed InnoDB: Starting an apply batch of log records to the database...
InnoDB: Apply batch completed InnoDB: Started
mysqld: ready for connections
3.3.3. Perancangan Basis Data Logikal
Perancangan basis data logikal yaitu proses menerjemahkan model data konseptual ke dalam model data logikal dan memvalidasi model ini untuk mengecek bahwa bentuk strukturalnya sudah benar, serta mampu mendukung transaksi yang diperlukan.
Hal-hal yang perlu dilakukan dalam tahap ini yaitu membangun dan memvalidasi model data logikal yang meliputi langkah-langkah:
1. Menurunkan hubungan untuk model data logikal
2. Memvalidasi relasi dengan menggunakan normalisasi
3. Memvalidasi relasi dengan user transaction
4. Memeriksa integrity constraints
5. Review model data logikal dengan user
6. Menggabungkan model data logikal ke dalam model global
7. Mempertimbangkan perkembangan di masa depan
3.3.3.1.Menurunkan Relasi untuk Model Data Logikal
Tujuannya untuk menciptakan relasi-relasi untuk model data logikal yang merepresentasikan entitas, relasi, dan atribut yang sudah ditentukan. Hal-hal yang akan muncul dan perlu diidentifikasikan dari yaitu:
1. Strong Entity
1. Pelanggan (KdPel, NamaPel, AlamatPel, KotaPel, KecPel, KelPel, KdPosPel, EmailPel, TelpPel, FaxPel)
2. Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar,
KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar,
JenisKelamin, FotoKar) PrimaryKey (KdKar)
3. Pemasok (KdPem, NamaPem, AlamatPem, KotaPem, KecPem,
KelPem,KdPosPem, EmailPem, TelpPem, FaxPem) PrimaryKey (KdPem)
4. RumusBahanBaku (KdRumus, NamaRumus, SatuanRumus,
RumusUkuran, Gambar, Deskripsi) PrimaryKey (KdRumus)
5. BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan,
TipeBahanBaku, KdSatuanBahan, SatuanBahanBaku, Harga, Stok, StokMin)
PrimaryKey (KdBahanBaku)
6. Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan,
GmbPengPemesanan, StatusPengPemesanan, NamaProyek,
AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan)
PrimaryKey (KdPemesanan)
7. PembayaranPemesanan(KdPembPemesanan, TglPembPemesnan,
JumlahBayar)
PrimaryKey (KdPembPemesanan)
8. RancanganKusen (KdRancangan, TglRancangan, GmbRancangan,
StatusRancangan, UkLubang, UkJendela, Keterangan) PrimaryKey (KdRancangan)
9. Produksi (KdProduksi, NamaBarang, TglMulaiProduksi,
StatusProduksi, JumlahProduksi, UkTinggi, UkLebar, HargaProduksi) PrimaryKey (KdProduksi)
10. BarangJadi (KdBarangJadi, TglBarangMasuk, StatusBarangJadi)
11. Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman) PrimaryKey (KdPengiriman)
12. Pemasangan (KdPemasangan, TglPemasangan, FotoHasil,
StatusPemasangan)
PrimaryKey (KdPemasangan)
13. Kontrak (KdKontrak, Spesifikasi, Keterangan, Diskon, TglKontrak, StatusKontrak)
PrimaryKey (KdKontrak)
14. TugasProduksi (KdTugas, Keterangan, Deadline, StatusTugas,
TglMulai, TglSelesai, DeskTugas) PrimaryKey (KdTugas)
15. PengambilanBahanBaku (KdPengambilan, TglPengambilan,
JumlahAmbil)
PrimaryKey (KdPengambilan)
16. PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan,
JumlahAju)
PrimaryKey (KdPengajuan)
17. Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli)
PrimaryKey (KdPembelian)
18. PembayaranPembelian (KdPembPembelian, TglPembPembelian,
JumlahBayar)
PrimaryKey (KdPembPembelian)
19. ReturPembelian (KdReturPemb, TglRetur, StatusRetur, AlasanRetur,
JumlahRetur)
PrimaryKey (KdReturPemb)
2. Weak Entity
3. Tipe relasi binary one to many (1:*)
Relasi ini diatasi dengan menempatkan atribut primary key dari entitas parent ke dalam entitas child untuk berfungsi sebagai foreign key. Berikut merupakan hasil dari relasi binary one to many (1:*):
MenempatkanKdPel ke Pemesanan untuk model 1:* relasi Memesan
MenempatkanKdKar ke Pemesanan untuk model 1:* relasiMelayani
MenempatkanKdKar ke Kontrak untuk model 1:* relasiMengurus Pelanggan (KdPel, NamaPel, AlamatPel,
KotaPel, KecPel, KelPel, KdPosPel, EmailPel, TelpPel, FaxPel)
PrimaryKey (KdPel) Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan, KdPel) PrimaryKey (KdPemesanan) ForeignKeyKdPelreferences Pelanggan (KdPel)
Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar) Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan, KdKar) PrimaryKey (KdPemesanan) ForeignKeyKdKarreferences Karyawan(KdKar)
Karyawan (KdKar, NamaKar,KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar)
PrimaryKey (KdKar)
Kontrak (KdKontrak, Spesifikasi,
Keterangan, Diskon, TglKontrak,
StatusKontrak, KdKar) PrimaryKey (KdKontrak)
ForeignKeyKdKarreferences Karyawan
MenempatkanKdKar ke PengambilanBahanBaku untuk model 1:* relasi Melakukan
MenempatkanKdKar ke PengajuanPembelian untuk model 1:* relasiMengajukan
Menempatkan KdKar ke Pembelian untuk model 1:* relasiMembuat
MenempatkanKdKar ke ReturPembelian untuk model 1:* relasiMengurus Karyawan (KdKar, NamaKar, KdPosisi,
PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar) PengambilanBahanBaku (KdPengambilan, TglPengambilan, JumlahAmbil, KdKar) PrimaryKey (KdPengambilan) ForeignKeyKdKarreferences Karyawan (KdKar)
Karyawan (KdKar, NamaKar,
KdPosisi, PosisiKar, AlamatKar,
KotaKar, KecKar, KelKar,KdPosKar,
EmailKar, TelpKar, JenisKelamin,
FotoKar) PrimaryKey (KdKar) PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, JumlahAju, KdKar) PrimaryKey (KdPengajuan) ForeignKeyKdKarreferences Karyawan (KdKar)
Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar)
PrimaryKey (KdKar)
Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli, KdKar)
PrimaryKey (KdPembelian)
ForeignKeyKdKarreferences Karyawan
(KdKar)
Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar)
PrimaryKey (KdKar)
ReturPembelian (KdReturPemb,
TglRetur, StatusRetur, AlasanRetur,
JumlahRetur , KdKar) PrimaryKey (KdReturPemb)
ForeignKeyKdKarreferences Karyawan (KdKar)
MenempatkanKdKar ke Pengiriman untuk model 1:* relasiMelakukan
MenempatkanKdKar ke PembayaranPembelian untuk model 1:* relasiMengurus
MenempatkanKdKar ke PembayaranPemesanan untuk model 1:* relasi Mengurus
MenempatkanKdPemesanan ke Kontrak untuk model 1:* relasiMempunyai Karyawan (KdKar, NamaKar, KdPosisi,
PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar) Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman, KdKar) PrimaryKey (KdPengiriman) ForeignKeyKdKarreferences Karyawan (KdKar)
Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar) PembayaranPembelian (KdPembPembelian, TglPembPembelian, JumlahBayar, KdKar) PrimaryKey (KdPembPembelian) ForeignKeyKdKarreferences Karyawan (KdKar)
Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar) PembayaranPemesanan (KdPembPemesanan, TglPembPemesanan, JumlahBayar, KdKar) PrimaryKey (KdPembPemesanan) ForeignKeyKdKarreferences Karyawan (KdKar) Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan)
Kontrak (KdKontrak, Spesifikasi,
Keterangan, Diskon, TglKontrak,
StatusKontrak, KdPemesanan) PrimaryKey (KdKontrak)
ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
MenempatkanKdPemesanan ke TargetProduksi untuk model 1:* relasiMemiliki
MenempatkanKdPemesanan ke Produksi untuk model 1:* relasiMemproduksi
MenempatkanKdPemesanan ke RancanganKusen untuk model 1:* relasi Menghasilkan Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan) TargetProduksi (TglPengiriman, TglPemasangan, Keterangan, KdPemesanan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan)
Produksi (KdProduksi, NamaBarang,
TglMulaiProduksi, StatusProduksi,
JumlahProduksi, UkTinggi, UkLebar, HargaProduksi, KdPemesanan) PrimaryKey (KdProduksi) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan) RancanganKusen (KdRancangan, TglRancangan, GmbRancangan,
StatusRancangan, UkLubang, UkJendela, Keterangan, KdPemesanan)
PrimaryKey (KdRancangan)
ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
MenempatkanKdPemesanan ke Pengiriman untuk model 1:* relasiMemiliki
MenempatkanKdPemesanan ke Pemasangan untuk model 1:* relasiMemiliki
MenempatkanKdPengiriman ke BarangJadi untuk model 1:* relasiMengirim
MenempatkanKdRumus ke Produksi untuk model 1:* relasi Menghasilkan
Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan) Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman, KdPemesanan) PrimaryKey (KdPengiriman) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan) Pemasangan (KdPemasangan, TglPemasangan, FotoHasil, StatusPemasangan, KdPemesanan) PrimaryKey (KdPemasangan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman) PrimaryKey (KdPengiriman) BarangJadi (KdBarangJadi, TglBarangMasuk, StatusBarangJadi, KdPengiriman) PrimaryKey (KdBarangJadi) ForeignKeyKdPengiriman references Pengiriman(KdPengiriman) RumusBahanBaku (KdRumus, NamaRumus, SatuanRumus,
RumusUkuran, Gambar, Deskripsi) PrimaryKey (KdRumus)
Produksi (KdProduksi, NamaBarang,
TglMulaiProduksi, StatusProduksi,
JumlahProduksi, UkTinggi, UkLebar,
HargaProduksi, KdRumus) PrimaryKey (KdProduksi) ForeignKeyKdRumusreferences RumusBahanBaku(KdRumus)
MenempatkanKdProduksi ke TugasProduksi untuk model 1:* relasiMembagi
MenempatkanKdProduksi ke BarangJadi untuk model 1:* relasiMenghasilkan
MenempatkanKdPembelian ke PembayaranPembelian untuk model 1:* relasi Memiliki
Produksi (KdProduksi, NamaBarang,
TglMulaiProduksi, StatusProduksi,
JumlahProduksi, UkTinggi, UkLebar, HargaProduksi)
PrimaryKey (KdProduksi)
TugasProduksi (KdTugas, Keterangan,
Deadline, StatusTugas, , TglMulai,
TglSelesai, DeskTugas, KdProduksi) PrimaryKey (KdTugas)
ForeignKeyKdProduksireferences Produksi(KdProduksi)
Produksi (KdProduksi, NamaBarang,
TglMulaiProduksi, StatusProduksi,
JumlahProduksi, UkTinggi, UkLebar, HargaProduksi) PrimaryKey (KdProduksi) BarangJadi (KdBarangJadi, TglBarangMasuk, StatusBarangJadi, KdProduksi) PrimaryKey (KdBarangJadi) ForeignKeyKdProduksireferences Produksi(KdProduksi) Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli) PrimaryKey (KdPembelian) PembayaranPembelian (KdPembPembelian, TglPembPembelian, JumlahBayar, KdPembelian) PrimaryKey (KdPembPembelian) ForeignKeyKdPembelianreferences Pembelian(KdPembelian)
MenempatkanKdPem ke Pembelian untuk model 1:* relasi Memenuhi
MenempatkanKdPemesanan ke PembayaranPemesanan untuk model 1:* relasiMemiliki
MenempatkanKdPengajuan ke Pembelian untuk model 1:* relasiMenyebabkan
4. Tipe relasi binary one to one (1:1)
Untuk relasi binary one to one (1:1) berikut dapat diatasi dengan menempatkan atribut primary key dari entitas parent ke dalam entitas child untuk berfungsi sebagai foreign key. Berikut merupakan hasil dari relasi binary one to one (1:1):
Pemasok (KdPem, NamaPem,
AlamatPem, KotaPem, KecPem,
KelPem,KdPosPem, EmailPem,
TelpPem, FaxPem) PrimaryKey (KdPem)
Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli, KdPem) PrimaryKey (KdPembelian) ForeignKeyKdPemreferences Pemasok(KdPem) Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek, AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan) PrimaryKey (KdPemesanan) PembayaranPemesanan (KdPembPemesanan, TglPembPemesanan, JumlahBayar, KdPemesanan) PrimaryKey (KdPembPemesanan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, JumlahAju) PrimaryKey (KdPengajuan)
Pembelian (KdPembelian, TglPembelian, StatusPembelian, HargaBeli, JumlahBeli, KdPengajuan)
PrimaryKey (KdPembelian)
ForeignKeyKdPengajuan references
MenempatkanKdPembelian ke ReturPembelian untuk model 1:1 relasiMenimbulkan
5. Tipe relasi recursive one to one (1:1)
Pada perancangan basis data konseptual ini tidak ditemukan tip relasi recursive (1:1) sehingga tahap ini tidak perlu dilakukan.
6. Tipe relasi superclass atau subclass
Pada perancangan basis data konseptual ini tidak ditemukan tipe relasi superclass atau subclass sehingga tahap ini tidak perlu dilakukan.
7. Tipe relasi binary many to many (*:*)
Untuk relasi binary many to many (*:*)dapat diatasi dengan menciptakan sebuah relasi dan memindahkan atribut ke yang bersangkutan ke dalam relasi tersebut. Kemudian menempatkan atribut primary key dari entitas-entitasparent ke dalam relasi baruuntuk berfungsi sebagai foreign key. Satu atau kedua dari foreign key tersebut juga akan menjadi primary key. Berikut merupakan hasil dari relasi many to many (*:*):
Pembelian (KdPembelian,
TglPembelian, StatusPembelian,
HargaBeli, JumlahBeli, KdKar,
KdPengajuan, KdPemasok) PrimaryKey (KdPembelian) ForeignKeyKdKar references Karyawan (KdKar) ForeignKeyKdPengajuan references PengajuanPembelian(KdPengajuan) ForeignKeyKdPemasok references Pemasok(KdPemasok) ReturPembelian(KdReturPemb,
TglRetur, StatusRetur, AlasanRetur,
JumlahRetur, KdKar, Kd ) PrimaryKey (KdReturPemb)
ForeignKeyKdKar references Karyawan (KdKar)
ForeignKeyKdPembelian references
Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar)
PrimaryKey (KdKar)
TugasProduksi (KdTugas, Keterangan, KdProduksi)
PrimaryKey (KdTugas)
ForeignKeyKdProduksireferences Produksi(KdProduksi)
DetilTugas (KdKar, KdTugas, StatusTugas, TglMulai, TglSelesai, DeskTugas, Deadline)
PrimaryKeyKdKar, KdTugas
ForeignKeyKdKar referencesKaryawan(KdKar)
ForeignKeyKdTugas referencesTugasProduksi(KdTugas)
Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar) PrimaryKey (KdKar) Pemasangan (KdPemasangan, TglPemasangan, FotoHasil, KdPemesanan) PrimaryKey (KdPemasangan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
DetilPemasangan (KdKar, KdPemasangan, StatusPemasangan) PrimaryKeyKdKar, KdPemasangan
ForeignKeyKdKar referencesKaryawan(KdKar)
RumusBahanBaku (KdRumus, NamaRumus, Gambar, Deskripsi)
PrimaryKey (KdRumus
BahanBaku (KdBahanBaku,
NamaBahanBaku, KdTipeBahan,
TipeBahanBaku, KdSatuanBahan,
SatuanBahanBaku, Harga, Stok,
StokMin)
PrimaryKey (KdBahanBaku)
DetilRumus (KdRumus, KdBahanBaku, SatuanRumus, RumusUkuran) Primary Key KdRumus, KdBahanBaku
ForeignKeyKdRumusreferencesRumusBahanBaku(KdRumus) ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku)
Pembelian (KdPembelian, TglPembelian, StatusPembelian, KdKar, KdPengajuan, KdPem) PrimaryKey (KdPembelian) ForeignKeyKdKary references Karyawan(KdKar) ForeignKeyKdPengajuanreferences PengajuanPembelian(KdPengajuan) ForeignKeyKdPemreferences Pemasok(KdPem) BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, TipeBahanBaku, KdSatuanBahan,
SatuanBahanBaku, Harga, Stok,
StokMin)
PrimaryKey (KdBahanBaku)
DetilPembelian (KdPembelian, KdBahanBaku,HargaBeli, JumlahBeli) PrimaryKeyKdPembelian, KdBahanBaku
ForeignKeyKdPembelianreferencesPembelian(KdPembelian) ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku)
PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, KdKar) PrimaryKey (KdPengajuan) ForeignKeyKdKar references Karyawan(KdKar) BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, TipeBahanBaku, KdSatuanBahan,
SatuanBahanBaku, Harga, Stok,
StokMin)
PrimaryKey (KdBahanBaku)
DetilPengajuanBeli (KdPengajuan, KdBahanBaku, JumlahAju) PrimaryKeyKdPengajuan, KdBahanBaku
ForeignKeyKdPengajuanreferencesPengajuanPembelian(KdPengajuan) ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku)
DetilReturBeli (KdReturPemb, KdBahanBaku, JumlahRetur) PrimaryKeyKdReturPemb, KdBahanBaku
ForeignKeyKdReturPemb referencesReturPembelian(KdReturPemb) ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku)
ReturPembelian (KdReturPemb,
TglRetur, StatusRetur, AlasanRetur,
KdKar, KdPembelian) PrimaryKey (KdReturPemb) ForeignKeyKdKarreferences Karyawan(KdKar) ForeignKeyKdPembelianreferences Pembelian(KdPembelian) BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, TipeBahanBaku, KdSatuanBahan,
SatuanBahanBaku, Harga, Stok,
StokMin)
DetilPengambilanBahan (KdPengambilan, KdBahanBaku, JumlahAmbil) PrimaryKeyKdPengambilan, KdBahanBaku
ForeignKeydPengambilanreferences PengambilanBahanBaku (KdPengambilan)
ForeignKeyKdBahanBakureferencesBahanBaku(KdBahanBaku)
8. Tipe relasi kompleks
Pada peracangan basis data konseptual ini tidak ditemukan tipe relasi kompleks sehingga tahap ini tidak perlu dilakukan.
9. Atribut-atribut multi-valued
Atribut multi-valued dapat diatasi dengan menciptakan relasi baru untuk merepresentasikan atribut multi-valued dan memberikan primarikey dari entitas ke dalam relasi baru untuk berfungsi sebagai foreignkey. Berikut merupakan hasil dari atribut multi-valued: PengambilanBahanBaku (KdPengambilan, TglPengambilan, JumlahAmbil , KdKar) PrimaryKey (KdPengambilan) ForeignKeyKdKar references Karyawan(KdKar) BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, TipeBahanBaku, KdSatuanBahan,
SatuanBahanBaku, Harga, Stok,
StokMin)
Menempatkan KdKar ke TelpKaryawan
Menempatkan KdPel ke TelpPelanggan
Menempatkan KdPem ke TelpPemasok
Berikut merupakan hasil akhir dari tahapan menurunkan hubungan untuk model data logikal:
Tabel 3.48Hasil dari Menurunkan Hubungan untuk Model Data Logikal
Karyawan (KdKar, NamaKar, KdPosisi, PosisiKar, AlamatKar, KotaKar, KecKar, KelKar,KdPosKar, EmailKar, TelpKar, JenisKelamin, FotoKar)
PrimaryKey (KdKar)
Pelanggan (KdPel, NamaPel, AlamatPel, KotaPel, KecPel, KelPel, KdPosPel, EmailPel, TelpPel, FaxPel)
PrimaryKey (KdPel)
Pemasok (KdPem, NamaPem, AlamatPem, KotaPem, KecPem, KelPem,KdPosPem, EmailPem, TelpPem, FaxPem)
PrimaryKey (KdPem)
Karyawan (KdKar, NamaKar,
KdPosisi, PosisiKar, AlamatKar,
KotaKar, KecKar, KelKar,KdPosKar, EmailKar, JenisKelamin, FotoKar) PrimaryKey (KdKaryawan)
TelpKaryawan(KdKar,TelpKar) PrimaryKey TelpKar
ForeignKey KdKar references
Karyawan(KdKar)
Pelanggan (KdPel, NamaPel,
AlamatPel, KotaPel, KecPel, KelPel, KdPosPel, EmailPel, TelpPel, FaxPel) PrimaryKey (KdPel)
TelpPelanggan( KdPel ,TelpPel) PrimaryKey TelpPel
ForeignKeyKdPelreferences Pelanggan(KdPel)
Pemasok (KdPem, NamaPem,
AlamatPem, KotaPem, KecPem,
KelPem, KdPosPem, EmailPem,
FaxPem, KategoriPem) PrimaryKey (KdPem)
TelpPemasok( KdPem ,TelpPem) PrimaryKey TelpPem
ForeignKey KdPemreferences
TugasProduksi (KdTugas, Keterangan, KdProduksi) PrimaryKey (KdTugas)
ForeignKeyKdProduksireferences Produksi(KdProduksi)
DetilTugas (KdKar, KdTugas, StatusTugas, TglMulai, TglSelesai, DeskTugas, Deadline) PrimaryKey (KdKar, KdTugas)
ForeignKeyKdKar references Karyawan(KdKar)
ForeignKeyKdTugas references TugasProduksi(KdTugas)
Pemasangan (KdPemasangan, TglPemasangan, FotoHasil, KdPemesanan) PrimaryKey (KdPemasangan)
ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan) DetilPemasangan (KdKar, KdPemasangan, StatusPemasangan) PrimaryKey (KdKar, KdPemasangan)
ForeignKeyKdKar references Karyawan(KdKar)
ForeignKeyKdPemasanganreferences Pemasangan(KdPemasangan) RumusBahanBaku (KdRumus, NamaRumus, Gambar, Deskripsi) PrimaryKey (KdRumus)
DetilRumus (KdRumus, KdBahanBaku, SatuanRumus, RumusUkuran ) Primary Key (KdRumus, KdBahanBaku)
ForeignKeyKdRumusreferences RumusBahanBaku(KdRumus) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku)
Pembelian (KdPembelian, TglPembelian, StatusPembelian, KdKar, KdPengajuan, KdPem) PrimaryKey (KdPembelian)
ForeignKeyKdKar references Karyawan(KdKar)
ForeignKeyKdPengajuanreferences PengajuanPembelian(KdPengajuan) ForeignKeyKdPemreferences Pemasok(KdPem)
DetilPembelian (KdPembelian, KdBahanBaku,HargaBeli, JumlahBeli) PrimaryKey (KdPembelian, KdBahanBaku)
ForeignKeyKdPembelianreferences Pembelian(KdPembelian) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku)
PengajuanPembelian (KdPengajuan, TglPengajuan, StatusPengajuan, KdKar) PrimaryKey (KdPengajuan)
ForeignKeyKdKar references Karyawan(KdKar)
DetilPengajuanBeli (KdPengajuan, KdBahanBaku, JumlahAju) PrimaryKey (KdPengajuan, KdBahanBaku)
ForeignKeyKdPengajuanreferences PengajuanPembelian(KdPengajuan) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku)
ReturPembelian (KdReturPemb, TglRetur, StatusRetur, AlasanRetur, KdKar, KdPembelian) PrimaryKey(KdReturPemb)
ForeignKeyKdKar references Karyawan (KdKar)
ForeignKeyKdPembelian references Pembelian (KdPembelian) DetilReturBeli (KdReturPemb, KdBahanBaku, JumlahRetur) PrimaryKey (KdReturPemb, KdBahanBaku)
ForeignKeyKdReturPemb references ReturPembelian(KdReturPemb) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku)
PengambilanBahanBaku (KdPengambilan, TglPengambilan, KdKar) PrimaryKey (KdPengambilan)
ForeignKeyKdKar references Karyawan(KdKar)
DetilPengambilanBahan (KdPengambilan, KdBahanBaku, JumlahAmbil) PrimaryKey (KdPengambilan, KdBahanBaku)
ForeignKeyKdPengambilanreferences PengambilanBahanBaku(KdPengambilan) ForeignKeyKdBahanBakureferences BahanBaku(KdBahanBaku)
TelpKaryawan (KdKar,TelpKar) PrimaryKey (TelpKar)
ForeignKeyKdKar references Karyawan (KdKar) TelpPelanggan (KdPel ,TelpPel)
PrimaryKey (TelpPel)
ForeignKeyKdPelreferences Pelanggan(KdPel) TelpPemasok (KdPem ,TelpPem)
PrimaryKey (TelpPem)
ForeignKeyKdPemreferences Pemasok (KdPem)
BahanBaku (KdBahanBaku, NamaBahanBaku, KdTipeBahan, TipeBahanBaku, KdSatuanBahan, SatuanBahanBaku, Harga, Stok, StokMin)
PrimaryKey (KdBahanBaku)
Produksi (KdProduksi, NamaBarang TelpPem, TglMulaiProduksi, StatusProduksi, JumlahProduksi, UkTinggi, UkLebar, HargaProduksi, KdRumus, KdPemesanan)
PrimaryKey (KdProduksi)
ForeignKeyKdRumusreferences RumusBahanBaku(KdRumus) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
TargetProduksi (TglPengiriman, TglPemasangan, Keterangan, KdPemesanan) ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
PembayaranPembelian (KdPembPembelian, TglPembPembelian, JumlahBayar, KdPembelian, KdKar)
PrimaryKey (KdPembPembelian)
ForeignKeyKdPembelianreferences Pembelian(KdPembelian) ForeignKeyKdKar references Karyawan (KdKar)
BarangJadi (KdBarangJadi, TglBarangMasuk, StatusBarangJadi, KdPengiriman, KdProduksi) PrimaryKey (KdBarangJadi)
ForeignKeyKdPengiriman references Pengiriman(KdPengiriman) ForeignKeyKdProduksireferences Produksi(KdProduksi)
Pengiriman (KdPengiriman, TglPengiriman, StatusPengiriman, KdPemesanan, KdKar) PrimaryKey (KdPengiriman)
ForeignKeyKdKarreferences Karyawan (KdKar)
ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
Kontrak (KdKontrak, Spesifikasi, Keterangan, Diskon, TglKontrak, StatusKontrak, KdKar, KdPemesanan)
PrimaryKey (KdKontrak)
ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
Pemesanan (KdPemesanan, TglPemesanan, TglPengPemesanan, GmbPengPemesanan, StatusPengPemesanan, NamaProyek,AlamatPemesanan, KdPosPemesanan, KotaPemesanan, KelPemesanan, KecPemesanan KdPel, KdKar)
PrimaryKey (KdPemesanan)
ForeignKeyKdPel references Pelanggan(KdPel) ForeignKeyKdKar references Karyawan (KdKar)
RancanganKusen (KdRancangan, TglRancangan, GmbRancangan, StatusRancangan, UkLubang, UkJendela, Keterangan, KdPemesanan)
PrimaryKey (KdRancangan)
ForeignKeyKdPemesananreferences Pemesanan(KdPemesanan)
PembayaranPemesanan (KdPembPemesanan, TglPembPemesanan, JumlahBayar, KdKar, KdPemesanan)
PrimaryKey (KdPembPemesanan)
ForeignKeyKdKar references Karyawan (KdKar)
fd1(Primary Key) fd2(TransitiveDependency) fd3(TransitiveDependency)
fd1(Primary Key) fd2(TransitiveDependency)
3.3.3.2.Memvalidasi Relasi dengan Menggunakan Normalisasi
Tujuannya untuk memvalidasi relasi-relasi dalam model data logikal dengam normalisasi.Berikut ini merupakan hasil dari normalisasi:
1. Karyawan
(1NF)
Sudah memuhi aturan normalisasi 1NF karena tidak ditemukan grup yang berulang dan hasil perhitungan.
(2NF)
Sudah memenuhi aturan normalisasi 2NF karena tidak ditemukan ketergantungan parsial.
(3NF)
Karyawan = KdKar, NamaKar, AlamatKar, EmailKar,
JenisKelamin, FotoKar, KdPosKar, KdPosisi PosisiKaryawan =KdPosisi, PosisiKar
PosKaryawan = KdPosKar, KotaKar, KecKar, KelKar
2. Pelanggan
(1NF)
Sudah memuhi aturan normalisasi 1NF karena tidak ditemukan grup yang berulang dan hasil perhitungan.
Kd Kar Nama Kar Kd Posisi Posisi Kar Alamat Kar Kota Kar Kec Kar Kel Kar KdPos Kar Email Kar Jenis Kelamin Foto Kar Kd Pel Nama Pel Alamat Pel Kota Pel Kec Pel Kel Pel KdPos Pel Email Pel Fax Pel
fd1(Primary Key) fd2(TransitiveDependency)
fd1(Primary Key) (2NF)
Sudah memenuhi aturan normalisasi 2NF karena tidak ditemukan ketergantungan parsial.
(3NF)
Pelanggan = KdPel, NamaPel, AlamatPel, EmailPel, FaxPel,
KdPosPel
PosPelanggan = KdPosPel, KotaPel, KecPel, KelPel
3. Pemasok
(1NF)
Sudah memuhi aturan normalisasi 1NF karena tidak ditemukan grup yang berulang dan hasil perhitungan.
(2NF)
Sudah memenuhi aturan normalisasi 2NF karena tidak ditemukan ketergantungan parsial.
(3NF)
Pemasok = KdPem, NamaPem, AlamatPem, EmailPem, FaxPem,
KdPosPem
PosPemasok = KdPosPem, KotaPem, KecPem, KelPem
4. TugasProduksi
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
KdPem NamaPem AlamatPem KotaPem KecPem KelPem KdPosPem EmailPem FaxPem
fd1(Primary Key)
fd1(Primary Key)
fd1(Primary Key) TugasProduksi = KdTugas, Keterangan, KdProduksi
5. DetilTugas
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
DetilProduksi = KdKar, KdTugas, StatusTugas, TglMulai, TglSelesai, DeskTugas, Deadline
6. Pemasangan
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
Pemasangan = KdPemasangan, TglPemasangan, FotoHasil,
KdPemesanan
7. DetilPemasangan
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
DetilPemasangan = KdKar, KdPemasangan, StatusPemasangan
KdKar KdTugas StatusTugas TglMulai TglSelesai DeskTugas Deadline
KdPemasagan TglPemasangan FotoHasil KdPemesanan
fd1(Primary Key)
fd1(Primary Key)
fd1(Primary Key)
8. RumusBahanBaku
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
RumusBahanBaku = KdRumus, NamaRumus, Gambar, Deskripsi
9. DetilRumus
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
DetilRumus = KdRumus, KdBahanBaku, SatuanRumus,RumusUkuran
10. Pembelian
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
Pembelian = KdPembelian, TglPembelian, StatusPembelian,
KdKaryawan, KdPengajuan, KdPem KdRumus NamaRumus Gambar Deskripsi
KdRumus KdBahanBaku SatuanRumus RumusUkuran
fd1(Primary Key)
fd1(Primary Key)
fd1(Primary Key)
11. DetilPembelian
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
DetilPembelian = KdPembelian, KdBahanBaku, HargaBeli, JumlahBeli
12. PengajuanPembelian
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
PengajuanPembelian = KdPengajuan, TglPengajuan, StatusPengajuan, KdKar
13. DetilPengajuanBeli
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
DetilPengajuanBeli = KdPengajuan, KdBahanBaku, JumlahAju
KdPembelian KdBahanBaku HargaBeli JumlahBeli
KdPengajuan TglPengajuan StatusPengajuan KdKar
fd1(Primary Key)
fd1(Primary Key)
fd1(Primary Key)
14. ReturPembelian
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
ReturPembelian = KdReturPemb, TglRetur, StatusRetur,
AlasanRetur, KdKar, KdPembelian
15. DetilReturBeli
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
DetilReturBeli = KdReturPemb, KdBahanBaku, JumlahRetur
16. PengambilanBahanBaku
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
PengambilanBahanBaku = KdPengambilan, TglPengambilan, KdKar KdReturPemb TglRetur StatusRetur AlasanRetur KdKar KdPembelian
KdReturPemb KdBahanBaku JumlahRetur
fd1(Primary Key)
fd1(Primary Key)
fd1(Primary Key)
17. DetilPengambilanBahan
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak
ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
DetilPengambilanBahan = KdPengambilan, KdBahanBaku, JumlahAmbil
18. TelpKayawan
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
TelpKaryawan = KdKar, TelpKar
19. TelpPelanggan
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
TelpPelanggan = KdPel, TelpPel
KdPengambilan KdBahanBaku JumlahAmbil
TelpKar KdKar
fd1(Primary Key)
fd1(Primary Key) fd3(Transitive Dependecy) fd2(Transitive Dependecy)
20. TelpPemasok
Sudah memuhi aturan normalisasi 1NF, 2NF, dan 3NF karena tidak ditemukan grup yang berulang dan hasil perhitungan, serta ketergantungan parsial dan transitif.
TelpPemasok = KdPem, TelpPem
21. BahanBaku
(1NF)
Sudah memuhi aturan normalisasi 1NF karena tidak ditemukan grup yang berulang dan hasil perhitungan.
(2NF)
Sudah memenuhi aturan normalisasi 2NF karena tidak ditemukan