Mohon tunggu...
YAYAN GISNAYUDASTI
YAYAN GISNAYUDASTI Mohon Tunggu... Lainnya - MAHASISWA

computer science

Selanjutnya

Tutup

Artificial intelligence

Normalisasi database nota pembelian

26 Desember 2024   13:09 Diperbarui: 26 Desember 2024   13:09 33
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Bagikan ide kreativitasmu dalam bentuk konten di Kompasiana | Sumber gambar: Freepik

Normalisasi adalah proses penting dalam desain basis data untuk mengurangi redundansi data (pengulangan) dan mencegah anomali (ketidakkonsistenan). Dengan normalisasi, struktur basis data menjadi lebih efisien, terorganisir, dan mudah dikelola. Tanpa normalisasi, sistem basis data dapat menghadapi tiga jenis anomali utama:

  1. INSERT Anomali: Kesulitan dalam menambahkan data tertentu ke dalam database.
  2. UPDATE Anomali: Perubahan data yang mengakibatkan ketidakkonsistenan.
  3. DELETE Anomali: Penghapusan data yang tak diinginkan, sehingga data penting ikut terhapus.

Hasil akhir dari normalisasi adalah membentuk data dalam normal form (bentuk normal), memastikan kualitas data lebih baik dan struktur tabel lebih optimal.

Tahapan Normalisasi Database

Proses normalisasi dilakukan secara bertahap untuk memastikan hasil yang maksimal. Berikut adalah tahapannya:

1. Unnormalized Form (UNF)

Pada tahap ini, data belum diatur dengan baik dan masih mengandung duplikasi serta inkonsistensi, data yang masih menatah biasanya yersimpan dalam satu tabel besar yang belum terpecah kedalam tabel-tabel yang lebih kecil. Tujuan normalisasi adalah memperbaiki keadaan ini.

2. First Normal Form (1NF)

"Suatu tabel dikatakan 1NF jika dan hanya jika setiap atribut dari data tersebut hanya memiliki nilai tunggal dalam satu baris."

Tahap pertama normalisasi database (1NF) memastikan bahwa setiap kolom tabel hanya mengandung satu nilai data dan setiap baris tabel unik. Paada taha ini, tabel terpecah, sehingga tidak ada set data terulang dalam satu kolom.

Selain itu, semua nilai di setiap kolom harus bersifat atomic, artinya tidak boleh ada kolom yang berisi Kumpulan nilai, satu kolom hanya boleh berisi satu nilai, tidak boleh lebih.

Pada tahap ini, seluruh data harus diatur sedemikian rupa sehingga setiap kolom hanya berisi nilai atomik (nilai tunggal), dan tidak ada kolom yang mengandung daftar atau himpunan data.

Berdasarkan data yang diberikan, setiap kolom sudah berisi nilai tunggal, seperti nama pembeli, nama penjual, nomor pesanan, produk, dan lain sebagainya. Dengan demikian, data tersebut telah memenuhi syarat 1NF.

3. Second Normal Form (2NF)

"Syarat 2NF adalah tidak diperkenankan adanya partial "functional dependency" kepada primary key dalam sebuah tabel."

Pada tahap 2NF, tabel tabel dipisahkan lebih lanjut berdasarkan hubungan antar data. Table harus memenuhi syarat 1NF dan semua atribut non-kunci harus bergantunf seccara penuh pada kunci premier.

Artinya, jika ada kolom yang tidak sepenuhnya bergantung pada kunci primer, maka kolom tersebut harus dipindahkan pada tabel baru.pasca 2NF, maka kita mendapatkan struktur database yang semakin rapi dan terorganisir.

Pada tahap ini, seluruh dependensi parsial harus dihilangkan. Artinya, semua atribut non-primer harus bergantung sepenuhnya pada kunci utama tabel, bukan hanya sebagian dari kunci utama.

  1. Identifikasi Kunci Utama:
    Dalam data awal, kunci utama adalah kombinasi dari kolom no_pesanan dan produk.
  2. Identifikasi Dependensi Parsial:
    • Atribut seperti nama_pembeli, alamat_pembeli, dan no_hp hanya bergantung pada no_pesanan, bukan pada kombinasi no_pesanan dan produk.
    • Atribut seperti nama_penjual bergantung pada produk, bukan pada kunci utama gabungan.
  3. Pisahkan Tabel Berdasarkan Dependensi:
    • Tabel Pembeli: Berisi informasi terkait pembeli seperti nama, alamat, dan nomor telepon.
    • Tabel Penjual: Berisi data penjual seperti nama penjual.
    • Tabel Pesanan: Berisi data utama pesanan seperti nomor pesanan, waktu pembayaran, metode pembayaran, dan jasa kirim.
    • Tabel Produk: Berisi informasi produk seperti nama produk, harga, dan penjual.
    • Tabel Detil Pesanan: Berisi hubungan antara pesanan dan produk, mencakup nomor pesanan, produk, dan kuantitas.

Dengan memisahkan tabel-tabel tersebut, seluruh dependensi parsial berhasil dihilangkan, dan data memenuhi syarat 2NF.

4. Third Normal Form (3NF)

"Pada 3NF tidak diperkenankan adanya partial "transitive dependency" dalam sebuah tabel."

Tahap normalisasi database 3NF adalah Langkah lanjutan untuk memastikan bahwa setiap kolom non-kunci tidak tergantung pada kolom non-kunci lainnya. Dengan kata lain, semua kolom non-kunci hanya bergantung pada kunci primer, sehingga tdak ada ketergantungan transitif di dalam tabel,

Hal ini mengurangi reddudansi lebih lanjut dan menjaga konsistensi data. Selain itu, hubungan antar-data pun menjadi lebih terarah, sehingga memudahkan perawatan data dikemudian hari.

Langkah 3: Bentuk 3NF (Third Normal Form)

Pada tahap ini, seluruh dependensi transitif harus dihilangkan. Artinya, atribut non-primer tidak boleh bergantung pada atribut non-primer lainnya, melainkan hanya pada kunci utama.

  1. Identifikasi Dependensi Transitif:
    • Atribut metode_pembayaran dan jasa_kirim tidak secara langsung bergantung pada kunci utama no_pesanan.
    • Dependensi transitif ini harus dipecah menjadi tabel terpisah.
  2. Pisahkan Data ke Tabel Baru:
    • Tabel Metode Pembayaran: Berisi daftar metode pembayaran yang digunakan, seperti "Bank BNI (Dicek Otomatis)".
    • Tabel Jasa Kirim: Berisi daftar jasa pengiriman yang digunakan, seperti "J&T Express".
  3. Hubungkan dengan Referensi:
    Tabel Pesanan kini akan menyimpan referensi ke tabel Metode Pembayaran dan Jasa Kirim melalui kunci asing (foreign key), bukan langsung menyimpan nilai teksnya

    Untuk memahami lebih jelas proses normalisasi database mulai dari tahap UNF hingga 3NF, Anda dapat menyaksikan video tutorial berikut di YouTube:

Follow Instagram @kompasianacom juga Tiktok @kompasiana biar nggak ketinggalan event seru komunitas dan tips dapat cuan dari Kompasiana
Baca juga cerita inspiratif langsung dari smartphone kamu dengan bergabung di WhatsApp Channel Kompasiana di SINI

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

Lihat Konten Artificial intelligence Selengkapnya
Lihat Artificial intelligence 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