---
**Analisis ERD dan Normalisasi untuk Sistem Pemesanan E-Commerce**
**Pendahuluan**
Entity Relationship Diagram (ERD) merupakan alat penting dalam perancangan basis data, yang membantu kita memodelkan hubungan antar entitas dalam suatu sistem. Artikel ini akan membahas tentang ERD dari sistem pemesanan e-commerce, khususnya dalam konteks normalisasi data. Normalisasi bertujuan untuk menyusun tabel-tabel dalam basis data agar data yang tersimpan lebih terstruktur, meminimalkan redundansi, dan mencegah inkonsistensi.
**Pembahasan Diagram ERD**
Gambar yang diunggah adalah sebuah ERD yang menggambarkan sistem pemesanan e-commerce. Diagram ini terdiri dari beberapa entitas utama berikut:
1. **Penjual**
  - Atribut: `penjual_id`, `nama_penjual`
  - Menyediakan produk kepada sistem dan dikaitkan dengan entitas **Pesanan** melalui hubungan "menyediakan".
2. **Pembeli**
  - Atribut: `no_hp_pembeli`, `alamat_pembeli`, `nama_pembeli`
  - Melakukan transaksi di sistem dan terkait dengan entitas **Pesanan**.
3. **Barang**
  - Atribut: `barang_id`, `produk`
  - Merupakan produk yang disediakan penjual untuk dijual kepada pembeli. Tabel barang terkait dengan **Rincian Pesanan**.
4. **Pesanan**
  - Atribut: `no_pesanan`, `metode_pembayaran`, `waktu_pembayaran`, `jasa_kirim`
  - Entitas utama yang menghubungkan pembeli dengan produk yang dipesan. Pesanan juga terkait dengan rincian tambahan seperti biaya pengiriman, biaya penanganan, dan total pembayaran.
5. **Rincian Pesanan**
  - Atribut: `rincian_id`, `kuantitas`, `variasi`
  - Menyimpan detail dari produk yang dibeli dalam suatu pesanan, termasuk kuantitas dan variasi produk.
6. **Biaya Tambah**
  - Atribut: `biaya_id`, `biaya_pengiriman`, `biaya_penanganan`, `biaya_layanan`, `total_pembayaran`
  - Menyimpan informasi biaya tambahan untuk setiap pesanan, yang meliputi biaya pengiriman, penanganan, dan layanan.
**Normalisasi Database**
Normalisasi adalah proses mengatur tabel dalam basis data untuk menghilangkan redundansi data. Proses normalisasi biasanya terdiri dari beberapa tahap, yaitu bentuk normal pertama (1NF), bentuk normal kedua (2NF), dan bentuk normal ketiga (3NF). Berikut adalah proses normalisasi dari diagram di atas:
1. **Bentuk Normal Pertama (1NF)**
  Dalam bentuk normal pertama, kita memastikan bahwa setiap kolom hanya berisi satu nilai (atomicity). Berdasarkan ERD, setiap entitas sudah memenuhi 1NF karena semua atributnya bersifat atomic atau hanya mengandung satu nilai untuk setiap kolom.
2. **Bentuk Normal Kedua (2NF)**
  Bentuk normal kedua memastikan bahwa tabel berada dalam 1NF dan semua atribut bukan kunci hanya bergantung pada kunci utama (tidak ada dependensi parsial). Setiap entitas dalam ERD di atas memiliki kunci utama yang unik:
 Â
  - **Penjual**: `penjual_id`
  - **Pembeli**: `no_hp_pembeli`
  - **Barang**: `barang_id`
  - **Pesanan**: `no_pesanan`
  - **Rincian Pesanan**: `rincian_id`
  - **Biaya Tambah**: `biaya_id`
  Karena setiap tabel sudah memiliki kunci utama dan atribut lainnya bergantung secara penuh pada kunci tersebut, semua entitas sudah memenuhi 2NF.
3. **Bentuk Normal Ketiga (3NF)**
  Bentuk normal ketiga memastikan bahwa tabel berada dalam 2NF dan tidak ada dependensi transitif (di mana atribut bukan kunci utama tidak boleh bergantung pada atribut bukan kunci lainnya). Berdasarkan ERD ini:
 Â
  - Semua atribut dalam setiap entitas bergantung sepenuhnya pada kunci utama masing-masing tabel.
  - Tidak ada atribut yang bergantung transitif pada atribut bukan kunci, sehingga memenuhi kriteria 3NF.
**Relasi Antar Entitas**
Berdasarkan ERD di atas, berikut adalah beberapa relasi antara entitas:
1. **Pembeli dan Pesanan**
  - Relasi ini menunjukkan bahwa seorang pembeli dapat melakukan beberapa pesanan, namun satu pesanan hanya dilakukan oleh satu pembeli.
2. **Penjual dan Pesanan**
  - Relasi ini menggambarkan bahwa seorang penjual dapat menyediakan banyak pesanan, tetapi satu pesanan hanya memiliki satu penjual.
3. **Pesanan dan Rincian Pesanan**
  - Setiap pesanan dapat memiliki beberapa rincian pesanan, tetapi satu rincian pesanan hanya terkait dengan satu pesanan.
4. **Barang dan Rincian Pesanan**
  - Satu barang dapat termasuk dalam beberapa rincian pesanan (misalnya, barang yang sama dipesan beberapa kali dengan variasi atau kuantitas berbeda), tetapi satu rincian pesanan hanya mengacu pada satu barang.
5. **Pesanan dan Biaya Tambah**
  - Satu pesanan memiliki satu biaya tambah, yang mencakup detail biaya pengiriman, biaya penanganan, dan biaya layanan untuk setiap transaksi.
**Kesimpulan**
Melalui ERD ini, kita dapat melihat bahwa sistem pemesanan ini dirancang dengan baik sesuai dengan prinsip-prinsip normalisasi, mencapai bentuk normal ketiga (3NF). Hal ini memastikan bahwa data yang tersimpan dalam basis data lebih efisien, minim duplikasi, dan mudah dikelola. Relasi antar entitas menunjukkan alur proses pemesanan secara keseluruhan, dari pembeli yang melakukan pesanan, pemilihan produk yang disediakan oleh penjual, hingga perhitungan biaya yang dibutuhkan untuk menyelesaikan transaksi.
Normalisasi yang baik tidak hanya membantu menghindari redundansi data, tetapi juga memudahkan dalam pemeliharaan data dan pengambilan informasi yang akurat di masa depan.
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H