Mohon tunggu...
GUSTI KRISNA PRANATA
GUSTI KRISNA PRANATA Mohon Tunggu... Freelancer - Mahasiswa

Fullstak Mobile Developer

Selanjutnya

Tutup

Pendidikan

Merancang Database dengan Metode Normalisasi dan ERD ( Entity Relationship Diagram ) : Studi Kasus Nota Pesanan

27 Desember 2024   19:52 Diperbarui: 27 Desember 2024   19:52 36
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Gambar 1. Nota Pesanan. Dok. Pribadi

Dalam pengembangan aplikasi berbasis data seperti Shopee, salah satu aspek terpenting adalah perancangan database yang efektif dan efisien. Artikel ini membahas langkah-langkah merancang database dengan metode normalisasi dan Entity-Relationship Diagram (ERD) menggunakan studi kasus nota pesanan.

Studi Kasus:

Berikut ini adalah nota pesanan yang akan dijadikan studi kasus:

Dari nota pesanan tersebut akan dibuatkan sebuah basis data dengan 2 metode, yaitu normalisasi dan ERD ( Entity relationship diagram )

1. Normalisasi

Normalisasi adalah proses mengorganisasi data dalam database untuk mengurangi redundansi dan memastikan integritas data. Berikut adalah tahapannya:

1. Membuat Tabel Universal dan 1 NF Karna Tabel Sudah Memenuhi Syarat  1NF

Apa Itu Tabel Universal? Tabel Universal adalah tabel awal yang belum dinormalisasi. Semua informasi dari data atau nota disatukan dalam satu tabel tanpa pengorganisasian lebih lanjut.

Berikut adalah ciri-ciri tabel universal berdasarkan data di atas:
1. RedundansiData:
* Informasi yang sama, seperti nama pembeli, nomor HP, alamat, dan nama penjual, diulang pada setiap baris untuk setiap produk. 2. TidakTerstruktur:
* Semua data, baik pembeli, penjual, dan produk, dicampur dalam satu tabel tanpa ada pemisahan entitas yang jelas.
3. RepetisiGrupData:
* Jika ada lebih dari satu produk dalam satu pesanan, setiap produk dicatat dalam baris yang berbeda, meskipun pesanan dan pembeli         tetap sama.

 4. RentanterhadapAnomali:
  * Anomali Insert: Tidak bisa menambahkan data penjual atau pembeli baru tanpa ada pesanan.
  * Anomali Update: Jika nomor HP pembeli berubah, maka harus diperbarui di semua baris yang terkait dengan pembeli tersebut.
  * Anomali Delete: Jika sebuah pesanan dihapus, informasi pembeli atau penjual juga bisa hilang, meskipun masih relevan untuk    pesanan lain.

Berikut adalah tabel universal dan 1NF dari nota diatas:

Gambar 2. Tabel 1 NF dan 1NF. Dok. Pribadi
Gambar 2. Tabel 1 NF dan 1NF. Dok. Pribadi
2. Normalisasi 2NF

Second Normal Form (2NF) adalah tahap kedua dalam normalisasi, yang memiliki kriteria berikut:
1. SudahMemenuhi1NF:TabelharusterlebihdahulumemenuhikriteriaFirstNormalForm(1NF).
2. TidakAdaKetergantunganParsial:Setiapatributnon-prime(atributyangbukanbagiandari primary key) harus bergantung sepenuhnya pada primary key, bukan hanya sebagian dari
primary key (ketergantungan parsial).

Masalah di Tabel 1NF yang Harus Diperbaiki untuk 2NF: Dalam tabel 1NF, terdapat masalah ketergantungan parsial.
Contohnya:

1.  o nama_pembeli, no_hp, dan alamat bergantung pada id_pesanan, bukan pada keseluruhan kombinasi primary key (id_pesanan + nama_produk).
2. o nama_penjual hanya bergantung pada id_pesanan, bukan pada keseluruhan kombinasi
primary key.


Solusi untuk Menjadi 2NF:
1. PisahkanDatakedalamTabelTerpisahBerdasarkanEntitas:
2. Buat tabel Pembeli dengan atribut yang hanya bergantung pada id_pembeli. o Buat tabel Penjual dengan atribut yang hanya bergantung pada id_penjual.
3. Buat tabel Pesanan dengan atribut yang hanya bergantung pada id_pesanan. o Buat tabel Detail Pesanan untuk mencatat informasi produk terkait pesanan.
4. HilangkanKetergantunganParsial:
5. Pastikan setiap atribut hanya bergantung pada primary key di tabelnya masing-masing.

Gambar 3. Hasil 2NF. Dok Pribadi
Gambar 3. Hasil 2NF. Dok Pribadi
3. Normalisasi 3Nf

Third Normal Form (3NF) adalah tahap ketiga dalam normalisasi, dengan kriteria sebagai berikut:
1. SudahMemenuhi2NF: TabelharusterlebihdahulumemenuhiSecondNormalForm(2NF).
2. TidakAdaKetergantunganTransitif:Setiapatributnon-prime(atributyangbukanbagiandari primary key) harus hanya bergantung pada primary key, bukan pada atribut non-prime lainnya.


Masalah di Tabel 2NF yang Harus Diperbaiki untuk 3NF
Pada tabel 2NF, mungkin terdapat ketergantungan transitif, yaitu atribut non-prime bergantung pada atribut non-prime lainnya.
Contoh ketergantungan transitif: Dalam tabel Pesanan, kolom seperti jasa_kirim dan metode_pembayaran mungkin
dianggap tidak langsung bergantung pada primary key id_pesanan tetapi pada entitas lain yang lebih spesifik, seperti jasa pengiriman atau metode pembayaran.


Solusi untuk Menjadi 3NF
1. Pisahkan Atribut yang Tidak Langsung Bergantung pada Primary Key ke Tabel Baru:

- Buat tabel Metode Pembayaran untuk menyimpan data tentang metode pembayaran.

- Buat tabel Jasa Pengiriman untuk menyimpan data tentang jasa pengiriman.


2. HubungkanTabelBarudenganForeignKey:
- Hubungkan tabel Pesanan dengan tabel Metode Pembayaran dan Jasa Pengiriman menggunakan foreign key.

Gambar 3. Hasil normalisasi 3NF. Dok. Pribadi
Gambar 3. Hasil normalisasi 3NF. Dok. Pribadi
Apakah Perlu Normalisasi ke 4NF? 
Berdasarkan data yang ada dan bagaimana struktur tabel-tabelnya sudah terpisah dengan baik, tidak ada indikasi multi-valued dependency yang membutuhkan normalisasi lebih lanjut ke 4NF.

Kesimpulan:
 * Tidak perlu lanjut ke 4NF, karena tidak ada multi-valued dependency yang terlihat di tabel yang sudah di-normalisasi.
 * 3NF sudah cukup, karena kita sudah mengatasi redundansi dan ketergantungan transitif.

2. ERD ( Entity Relationship Diagram )

Gambar 4. ERD Nota Pesanan. Dok.Pribadi 
Gambar 4. ERD Nota Pesanan. Dok.Pribadi 

Berikut penjelasan elemen-elemen dalam ERD tersebut:
Entitas dan Atribut:
1. Penjual:
Atribut: id_penjual (PK), nama_penjual.
Pembeli:
Atribut: id_pembeli (PK), nama_pembeli, no_hp, alamat.


2. Produk:
Atribut: id_produk (PK), nama_produk, harga, variasi.

Hubungan (Relationship): 

1. Memesan: Menghubungkan entitas penjual dengan pembeli. Relasi ini menunjukkan bahwa pembeli memesan dari penjual.

2. Menjual: Menghubungkan entitas penjual dengan produk. Relasi ini menunjukkan bahwa penjual menjual produk.
3. Memilih: Menghubungkan entitas pembeli dengan produk. Relasi ini menunjukkan bahwa pembeli memilih produk tertentu.

Kardinalitas:
1. Hubungan memesan menunjukkan bahwa satu pembeli dapat memesan dari beberapa penjual, dan satu penjual dapat menerima pesanan dari beberapa pembeli.
Hubungan menjual menunjukkan bahwa satu penjual dapat menjual beberapa produk, tetapi satu produk hanya dijual oleh satu penjual.
2. Hubungan memilih menunjukkan bahwa satu pembeli dapat memilih beberapa produk, dan satu produk dapat dipilih oleh beberapa pembeli.

Kesimpulan:

Normalisasi hingga 3NF mengurangi redundansi, mencegah anomali, dan meningkatkan efisiensi database. ERD mempermudah pemahaman hubungan antar entitas, menjadikan database lebih optimal untuk aplikasi berbasis data seperti Shopee.


Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H

HALAMAN :
  1. 1
  2. 2
  3. 3
  4. 4
Mohon tunggu...

Lihat Konten Pendidikan Selengkapnya
Lihat Pendidikan Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun