Dalam membangun sistem penyewaan mobil yang efisien, desain basis data yang tepat sangat penting. Artikel ini akan membahas diagram Entity-Relationship (ER) dan Enhanced Entity-Relationship (EER) dari sistem penyewaan mobil, yang mencakup entitas seperti customer, mobil, penyewa, dan sewa.
Analisis Diagram ERD
Diagram ERD yang ditampilkan menunjukkan hubungan antara entitas kunci:
- Customer: Entitas ini memiliki atribut 'no_ktp' (sebagai primary key), 'nama', 'alamat', dan 'no_telepon'. Hubungannya dengan entitas lain ditunjukkan dengan relasi 'menyewa'.
- Mobil: Entitas ini memiliki atribut 'kode_mobil' (sebagai primary key), 'jenis_mobil', 'tahun_mobil', dan 'harga_sewa'. Relasi 'menyewa' menunjukkan bahwa mobil dapat disewakan oleh customer.
- Penyewa: Relasi ini menunjukkan hubungan antara entitas 'customer' dan 'mobil'. Relasi ini digunakan untuk mencatat data sewa dari customer terhadap mobil tertentu.
- Sewa: Entitas ini berisi atribut 'no_sewa' (sebagai primary key), 'tgl_sewa', 'tgl_kembali', dan 'denda'. Relasi 'registrasi' menghubungkan entitas 'penyewa' dengan entitas 'sewa', menunjukkan bahwa penyewa mendaftarkan transaksi sewa tertentu.
Gambar 1.2 EERD rental mobil
Gambar 1.2 EERD rental mobil / dokpri
Analisis Diagram EERD
Diagram EERD memperjelas hubungan relasional dengan penambahan detail:
- Customer memiliki relasi ke tabel 'penyewa' melalui atribut 'no_ktp'.
- Mobil terhubung dengan entitas 'penyewa' melalui atribut 'kode_mobil'.
- Sewa memiliki relasi dengan entitas 'penyewa' melalui atribut 'customer_no_ktp' dan 'mobil_kode_mobil' sebagai foreign key.
Model Relasional Basis Data
Berikut adalah representasi tabel dalam model relasional:
- Tabel customer: Memuat data 'no_ktp' (INT, primary key), 'nama' (VARCHAR), 'alamat' (TEXT), dan 'no_telepon' (VARCHAR).
- Tabel mobil: Menyimpan 'kode_mobil' (INT, primary key), 'jenis_mobil' (VARCHAR), 'tahun_mobil' (INT), dan 'harga_sewa' (DECIMAL).
- Tabel penyewa: Menghubungkan 'customer_no_ktp' (foreign key) dan 'mobil_kode_mobil' (foreign key) untuk menunjukkan relasi sewa antara customer dan mobil.
- Tabel sewa: Berisi informasi 'no_sewa' (INT, primary key), 'tgl_sewa', 'tgl_kembali', 'denda', serta foreign key 'penyewa_customer_no_ktp' dan 'penyewa_mobil_kode_mobil' untuk merujuk pada tabel 'penyewa'.