• Tidak ada hasil yang ditemukan

Meninjau Kembali Model Data Konseptual denganPengguna

Dalam dokumen BAB 3 METODOLOGI Metodologi (Halaman 82-116)

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

Dalam dokumen BAB 3 METODOLOGI Metodologi (Halaman 82-116)

Dokumen terkait