1. Membuat ERD
     Deskripsi Umum DiagramDiagram ERD ini menggambarkan sistem pemesanan yang melibatkan beberapa entitas utama, yaitu pembeli, produk, pesanan, penjual, dan kurir. Setiap entitas memiliki atribut khusus yang relevan dengan operasinya, dan terdapat hubungan antar entitas yang menjelaskan bagaimana data terkait satu sama lain dalam sistem pemesanan.
1. Entitas Pembeli
- Atribut:
- id_pembeli: Merupakan kunci utama yang unik untuk mengidentifikasi setiap pembeli.
- nama: Nama dari pembeli.
- alamat: Alamat pembeli untuk keperluan pengiriman.
- no_telp: Nomor telepon pembeli untuk komunikasi.
- Hubungan:
- Pembeli melakukan pesanan. Hal ini menunjukkan bahwa pembeli bisa membuat pesanan dalam sistem.
2. Entitas Produk
- Atribut:
- kode_produk: Kode unik yang berfungsi sebagai kunci utama untuk mengidentifikasi produk.
- nama_produk: Nama dari produk.
- harga: Harga dari produk.
- Hubungan:
- Produk memiliki hubungan memesan dengan pesanan, yang berarti produk dipesan oleh pembeli melalui pesanan.
- Produk juga memiliki hubungan memproses dengan penjual, yang menunjukkan bahwa produk disediakan atau dikelola oleh penjual.
3. Entitas Pesanan
- Atribut:
- no_pesanan: Nomor unik pesanan sebagai kunci utama.
- metode: Metode pembayaran yang digunakan oleh pembeli (misalnya transfer bank, kartu kredit).
- waktu: Waktu saat pesanan dilakukan.
- total: Total harga dari seluruh item dalam pesanan.
- Hubungan:
- Pesanan memproses kurir, yang berarti kurir ditugaskan untuk mengantarkan pesanan.
- Pesanan juga memesan produk, yang berarti setiap pesanan mencakup produk yang dibeli oleh pembeli.
4. Entitas Penjual
- Atribut:
- id_penjual: Identifikasi unik penjual sebagai kunci utama.
- nama: Nama dari penjual.
- Hubungan:
- Penjual memproses produk, menunjukkan bahwa setiap produk yang ada di sistem dikelola oleh penjual tertentu.
5. Entitas Kurir
- Atribut:
- id_kurir: Identifikasi unik kurir sebagai kunci utama.
- nama_kurir: Nama kurir yang mengantarkan pesanan.
- Hubungan:
- Kurir memproses pesanan, yang berarti kurir bertanggung jawab untuk mengantarkan pesanan ke pembeli.
Hubungan Antar Entitas
- Melakukan: Hubungan ini menghubungkan pembeli dengan pesanan, mengindikasikan bahwa pembeli membuat pesanan dalam sistem.
- Memesan: Hubungan antara pesanan dengan produk, menandakan bahwa setiap pesanan terdiri dari produk yang dipesan oleh pembeli.
- Memproses (Penjual): Hubungan antara penjual dengan produk, menunjukkan bahwa produk disediakan atau dijual oleh penjual tertentu.
- Memproses (Kurir): Hubungan antara kurir dengan pesanan, menunjukkan kurir bertugas untuk mengantarkan pesanan ke pembeli.
Kesimpulan
Diagram ERD ini menggambarkan aliran informasi dalam sistem pemesanan yang melibatkan pembeli, produk, pesanan, penjual, dan kurir. Setiap entitas berperan penting dalam memastikan proses pemesanan berjalan lancar dari pembeli hingga produk sampai ke tangan pembeli. Dengan adanya diagram ini, proses bisnis dalam sistem pemesanan dapat dijelaskan dengan lebih jelas dan terstruktur.
2. Membuat NormalisasiÂ
Normalisasi adalah proses pengaturan struktur data dalam tabel untuk mengurangi redundansi (pengulangan) dan memastikan integritas data. Dalam proses ini, data diatur dalam beberapa bentuk normalisasi (normal forms), mulai dari 1NF (First Normal Form) hingga 3NF (Third Normal Form). Berikut penjelasan mengenai normalisasi dari 1NF hingga 3NF, serta syarat-syarat untuk mencapai setiap bentuk normal tersebut.
a. 1NF (First Normal Form)
1NF adalah bentuk normalisasi paling dasar. Dalam 1NF, tabel harus memenuhi beberapa syarat:
- Setiap kolom dalam tabel hanya mengandung nilai atom (nilai tunggal) atau tidak boleh ada kelompok nilai.
- Setiap kolom hanya memiliki satu jenis atribut atau tipe data yang konsisten.
Contoh tabel sebelum 1NF:
- Tabel yang mengandung kolom dengan beberapa nilai dalam satu sel, misalnya kolom produk berisi lebih dari satu nama produk dalam satu pesanan.
Contoh tabel setelah 1NF:
- Setiap produk dalam pesanan memiliki baris tersendiri, sehingga setiap kolom hanya berisi satu nilai tunggal.
b. 2NF (Second Normal Form)
Setelah tabel memenuhi syarat 1NF, langkah berikutnya adalah memastikan bahwa tabel memenuhi syarat 2NF. Syarat untuk mencapai 2NF adalah:
- Tabel sudah dalam bentuk 1NF.
- Semua atribut non-kunci harus bergantung secara penuh pada kunci utama (tidak ada ketergantungan parsial).
Ketergantungan parsial terjadi ketika atribut non-kunci hanya bergantung pada sebagian dari kunci gabungan (kunci primer yang terdiri dari lebih dari satu kolom). Dalam 2NF, kita menghilangkan ketergantungan parsial dengan memisahkan data yang tergantung pada sebagian kunci ke dalam tabel tersendiri.
Struktur Tabel untuk 2NF dalam Database Pesanan Shopee:Untuk memenuhi 2NF, kita dapat membagi tabel menjadi beberapa tabel yang terpisah berdasarkan entitas utama dalam sistem, yaitu:
- Tabel Pesanan: menyimpan informasi pesanan (no_pesanan, metode_pembayaran, waktu, total_bayar).
- Tabel Pembeli: menyimpan data pembeli (id_pembeli, nama_pembeli, alamat_pembeli, no_hp).
- Tabel Penjual: menyimpan data penjual (id_penjual, nama_penjual).
- Tabel Kurir: menyimpan informasi kurir (id_kurir, kurir).
- Tabel Produk: menyimpan informasi produk (kode_produk, nama_produk, harga).
Dengan pembagian ini, setiap tabel hanya menyimpan data yang relevan, dan tidak ada atribut non-kunci yang bergantung secara parsial pada kunci utama.
c. 3NF (Third Normal Form)
Langkah terakhir adalah memastikan tabel memenuhi syarat 3NF. Syarat untuk mencapai 3NF adalah:
- Tabel sudah dalam bentuk 2NF.
- Tidak ada ketergantungan transitif antara atribut non-kunci dengan kunci utama.
Ketergantungan transitif terjadi jika atribut non-kunci bergantung pada atribut non-kunci lainnya, bukan langsung pada kunci utama. Untuk menghilangkan ketergantungan transitif, kita bisa memindahkan data yang bergantung transitif ke tabel terpisah.
Struktur Tabel untuk 3NF dalam Database Pesanan Shopee:Untuk memenuhi 3NF, kita menambahkan satu tabel lagi yang berfungsi sebagai Tabel Detail Pesanan, yang menyimpan hubungan antara pesanan dengan produk yang dipesan. Tabel ini akan memiliki kolom:
- no_pesanan: nomor pesanan yang mereferensikan tabel Pesanan.
- kode_produk: kode produk yang mereferensikan tabel Produk.
- kuantitas: jumlah produk yang dipesan dalam setiap pesanan.
Dengan adanya tabel Detail Pesanan ini, ketergantungan transitif dapat dihilangkan, dan database menjadi lebih efisien serta mudah diakses.
Struktur Database Setelah Normalisasi (1NF hingga 3NF)
Tabel Pesanan:
- Kolom: no_pesanan, metode_pembayaran, waktu, total_bayar.
Tabel Pembeli:
- Kolom: id_pembeli, nama_pembeli, alamat_pembeli, no_hp.
Tabel Penjual:
- Kolom: id_penjual, nama_penjual.
Tabel Kurir:
- Kolom: id_kurir, kurir.
Tabel Produk:
- Kolom: kode_produk, nama_produk, harga.
Tabel Detail Pesanan (baru di 3NF):
- Kolom: no_pesanan, kode_produk, kuantitas.
Dengan struktur tabel ini, kita dapat menjaga integritas data dan menghindari redundansi dalam database pesanan di Shopee. Pembagian tabel ini juga mempermudah pengelolaan dan pengambilan data di masa depan.
Untuk memahami lebih lanjut langkah-langkah pembuatan ERD dan Normalisasi dapat menyaksikan video berikut :
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H