Skip to main content

Mengenali Bentuk Normal Pertama atau First Normal Form (1NF) di Sebuah Tabel

Tahap awal normalisasi, disebut juga betuk normal pertama, jika sebuah tabel memenuhi persyaratan berikut ini:

Dalam sebuah tabel, setiap field hanya boleh terisi oleh satu nilai saja, tidak boleh berisi sekelompok data yang sama atau berulang, dan tabel itu mempunyai primary key.

Sebuah tabel adalah objek penyimpanan dua dimensi. Setiap field yang ada di tabel itu hanya boleh menyimpan satu nilai. Bila satu field terdiri dari dua nilai atau lebih, maka tabel itu memunculkan dimensi ke tiga yang terdapat pada field itu.

Sebagai contoh, perhatikan Datasheet View dari tblBioDataSebelum1NF1 pada Gambar 1, kolom atau field Pendidikan Terakhir. Dari persepsi awam, kolom Pendidikan Terakhir itu tampak tidak bermasalah, karena nilai yang ada di kolom itu mudah dimengerti. Dari perspektif pengembang database, kolom ini menjadi masalah karena mempunyai dua nilai. Nilai pertama adalah jenjang pendidikan. Dalam Gambar 1 pada kolom Pendidikan Terakhir, nilai jenjang pendidikan itu adalah Sarjana dan D-3. Di sisi lain, kolom itu juga mempunyai nilai yang menunjukkan jurusan studi, seperti Akuntansi, Manajemen, Teknik Elektro, dan lain-lain. Menyimpan jenis jenjang pendidikan dan jurusan studi seperti di atas jelas melanggar aturan pertama dari bentuk normal pertama, yaitu setiap field dalam sebuah tabel hanya boleh terisi oleh satu nilai saja.

Keberadaan dua nilai pada Pendidikan Terakhir akan menyulitkan kita dalam proses pencarian data dan pembuatan laporan yang berhubungan dengan jenjang pendidikan. Misalnya saja, saat direksi ingin mengetahui berapa banyak pegawai yang mempunyai latar belakang pendidikan Sarjana. Kalau menggunakan tblBioDataSebelum1NF1 seperti di atas, kita akan mengalami kesulitan dalam menghitung berapa jumlah sarjana.

Gambar 1 Datasheet view dari tblBioDataSebelum1NF1 yang memerlukan normalisasi pada kolom Pendidikan Terakhir

Pada kasus dua nilai dalam satu field seperti Pendidikan Terakhir ini, maka solusinya adalah dengan membuat field baru, lalu mengeluarkan nilai jurusan studi (Sarjana atau D-3), dan memindahkannya ke field yang baru itu. Jadi, misalnya nama field baru adalah jurusan studi, maka nilai jurusan studi dipindahkan ke sini. Dengan demikian, nilai pada kolom pendidikan terakhir hanya ada Sarjana dan D-3. Dalam hal ini, kita bisa menambahkan nilai lainnya seperti Master, D-1, SMA, SMK dan seterusnya. Selanjutnya, nilai dari jurusan studi bisa diisi Akuntansi, Manajemen, Teknik Elektro, dan sebagainya. Hasil penambahan field dapat dilihat pada Gambar 2 di bawah ini.

Gambar 2 Datasheet view dari tblBioDataSetelah1NF1 yang telah memenuhi syarat pertama
Syarat kedua untuk bentuk normal pertama adalah tidak boleh ada sekelompok data yang sama atau berulang. Contohnya seperti ini, tabel tblBioDataSebelum1NF2 pada Gambar 3 di bawah menampilkan sekelompok data yang mempunyai nilai yang sama dan berulang.

Lima kolom terakhir: JHT Perusahaan, JHT Pegawai, JHT Total, JKK, dan JKM, adalah sekelompok data yang mempunyai banyak nilai yang sama dan berulang Kolom itu merupakan besaran nilai persentase asuransi/jaminan sosial menurut lembaga jaminan sosial BPJS.

Gambar 3 Datasheet view dari tblBioDataSebelum1NF2 yang memerlukan normalisasi karena ada sekelompok data dengan nilai sama
Contohnya, JHT Perusahaan (nilai 3.7%), JHT Pegawai (2%), JHT Total (5.7%), JKK (0.24%), dan JKM (0.3%) diulang hampir di setiap baris. Demikian pula, JHT Perusahaan (nilai 3.7%), JHT Pegawai (2%), JHT Total (5.7%), JKK (0.54%), dan JKM (0.3%) juga terjadi pengulangan. Banyak record yang ada di dalam tabel itu berisi sekelompok data dengan nilai yang sama.

Supaya tidak terjadi pengulangan, maka kita harus memecah tblBioDataSebelum1NF2 menjadi 2 tabel. Yang pertama, sebuah tabel dengan masing-masing field hanya mempunyai satu nilai saja, tidak boleh ada pengulangan. Untuk itu, kita harus mengeluarkan kolom JHT Perusahaan, JHT Pegawai, JHT Total, JKK, dan JKM, dengan menempatkannya pada sebuah tabel tersendiri. Dengan kolom JHT Perusahaan, JHT Pegawai, JHT Total, JKK, dan JKM, kita membuat sebuah tabel yang diberi nama tblBPJS. Yang kedua, menempatkan dua field yang ada di tblBioDataSebelum1NF2, yaitu Nama Lengkap dan Nama Panggilan ke dalam tabel lainnya, yang kita beri nama tblBioDataSetelah1NF2.
Gambar 4 Datasheet view dari tblBioDataSetelah1NF2 yang telah memenuhi syarat kedua
Supaya kedua tabel itu terhubung, maka kita harus menambahkan field lain yang berfungsi sebagai primary key di satu tabel dan referensi ke primary key ini di tabel lainnya. Field itu adalah skemaBPJS yang ditambahkan di kedua tabel. Field skemaBPJS pada tblBPJS digunakan sebagai primary key, sedangkan pada tabel tblBioDataSetelah1NF2 digunakan sebagai referensi ke primary key di tblBPJS. Selain itu, kita juga harus menambahkan satu field lagi di tabel tblBioDataSetelah1NF2, yaitu field NIP, yang merupakan primary key. Hasil akhir dari proses normalisasi bentuk normal pertama (1NF) adalah seperti Gambar 4. Tabel tblBioDataSebelum1NF2 dipecah menjadi dua, tabel tblBPJS dan tblBioDataSetelah1NF2. Dengan memecah tabel menjadi dua semacam ini, maka tabel setelah melalui proses normalisasi menjadi lebih sederhana, efisien dalam penyimpanan data, dan mudah untuk dikelola.

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access