PERANCANGAN DIAGRAM DAN NORMALISASI
1.1 Tujuan
1. Mahasiswa memahami permasalahan
dan dapat menentukan entitas - entitas dari permasalahan tersebut.
2. Mahasiswa dapat menentukan atribut – atribut dari suatu entitas.
3. Mahasiswa
dapat menentukan relasi antara masing-masing entitas.
4. Mahasiswa
memahami dan dapat merancang suatu
permasalahan yang diberikan berdasarkan teori yang telah dipelajari.
5. Mahasiswa
dapat melakukan proses normalisasi.
1.2 Kompetensi
Mampu
memecahkan permasalahan dengan menggunakan ERD dan Normalisasi.
1.3 Substansi Kajian
1.
Memecahkan masalah dengan menentukan entitas yang terlibat
2.
Membuat ERD beserta atributnya
3.
Membuat Normalisasi
1.4 Dasar Teori
1.4.1.
Elemen - elemen diagram ER
1.
Entitas
(Entity)
Entitas adalah suatu yang
dapat di identifikasi dalam lingkungan kerja user, sesuatu yang ingin user
telusuri. Entitas yang terdiri dari satu jenis tertentu disebut kelas entitan (entity
classes).[2]
Entitas merupakan objek
dalam dunia nyata yang bisa dibedakan dari objek lain. Entitas menunjukkan
obyek-obyek dasar yang terkait di dalam system. Obyek dasar dapat berupa
orang, benda atau hal yang keterangannya perlu disimpan di dalam basis data.
Untuk menggambarkan entitas dilakukan dengan mengikuti aturan sebagai berikut[3]
:
a. Entitas dinyatakan dengan simbol persegi panjang.
b. Nama entitas dituliskan di dalam simbol persegi
panjang.
c. Nama entitas berupa kata benda dan tunggal.
d. Nama entitas sedapat mungkin menggunakan nama yang
mudah dipahami dan dapat menyatakan maknanya dengan jelas.
2.
Atribut
(Atribute)
Atribut adalah gambaran karakteristik dari suatu entitas.[2] Secara
umum atribut adalah karakteristik dari entitas atau relasi yang menyediakan
penjelasan detail tentang entitas atau relasi tersebut. Atribut sering pula
disebut sebagai properti (property), merupakan keterangan-keterangan
yang terkait pada sebuah entitas yang perlu disimpan sebagai basis data.
Atribut berfungsi sebagai entitas penjelas.
Untuk menggambarkan atribut dilakukan dengan mengikuti
aturan sebagai berikut:
a. Atribut dinyatakan dengan simbol ellips.
b. Nama atribut dituliskan di dalam simbol ellips.
c. Nama atribut berupa kata benda dan tunggal.
d. Nama atribut sedapat mungkin menggunakan nama yang
mudah dipahami dan dapat menyatakan maknanya dengan jelas.
e. Atribut dihubungkan dengan entitas yang bersesuaian
dengan menggunakan sebuah garis (seyogyanya menggunakan garis lurus, namun
dalam kondisi yang tidak memungkinkan boleh tidak menggunakan garis lurus).
Terdapat beberapa atribut yang digunakan untuk
menggambarkan model ER Diagram, yaitu : [1]
-
Atribut Key
Atribut yang dipilih untuk identifikasi secara unik dalam suatu relasi.[1]
Contohnya nik, nim.
-
Atribut Simple
Atribut yang terdiri atas satu komponen tunggal. Contohnya nama, harga.
-
Atribut Multivalue
Atribut yang memiliki sekelompok nilai yang banyak.
Contohnya gelar, hobi.
-
Atribut Composite
Atribut yang terdiri atas beberapa komponen dimana masing-masing komponen memiliki keberadaan
yang idependen. Contohnya alamat,
waktu.
-
Atribut
Derivatif
Atribut yang dihasilkan dari beberapa atribut lain. Contoh: umur dari tanggal lahir.
3.
Relasi (Relationship)
Relasi antar entitas
mendefinisikan hubungan antar dua buah entitas. Nama relasi didefinisikan oleh himpunan pasangan atribut
dan nama domain.[1] Relasi
adalah kejadian atau transaksi yang terjadi di antara dua buah entitas yang
terjadi di antara dua buah entitas yang perlu disimpan di dalam basis data.
Aturan penggambaran relasi antar entitas adalah sebagai berikut:
a. Relasi dinyatakan dengan simbol
belah ketupat.
b. Nama relasi dituliskan di dalam simbol
belah ketupat.
c. Relasi menghubungkan dua entitas.
d. Nama relasi berupa kata kerja aktif dan tunggal.
e. Nama relasi sedapat mungkin menggunakan nama yang
mudah dipahami dan dapat menyatakan maknanya dengan jelas.
Kerelasian antar entitas dapat dikelompokkan dalam
3 jenis, yaitu[3]:
-
One-to-One
(1-1)
Mempunyai pengertian
"Setiap baris data
pada tabel pertama
dihubungkan hanya ke satu baris data pada tabel ke dua".
Contohnya relasi antara tabel mahasiswa dan tabel orang tua. Satu baris
mahasiswa hanya berhubungan dengan satu baris orang tua begitu juga sebaliknya.
-
One-to-Many
(1-N)
Mempunyai pengertian
"Setiap baris data dari tabel pertama dapat dihubungkan ke satu baris atau
lebih data pada tabel ke dua". Contohnya relasi perwalian antara tabel
dosen dan tabel mahasiswa. Satu baris dosen atau satu
dosen bisa berhubungan dengan satu baris atau lebih mahasiswa. Relasi jenis ini
terjadi jika kejadian atau transaksi di antara dua entitas yang berhubungan
hanya memungkinkan terjadi satu kali dalam entitas pertama dan dapat terjadi
lebih dari satu kali kejadian atau transaksi pada entitas kedua.
-
Many-to-Many
(N-M)
Mempunyai pengertian
"Satu baris atau lebih data pada tabel pertama bisa dihubungkan ke satu
atau lebih baris data pada tabel ke dua". Artinya ada banyak baris di
tabel satu dan tabel dua yang saling berhubungan satu sama lain. Contohnya relasi
antar tabel mahasiswa dan tabel
mata kuliah. Satu
baris mahasiswa bisa
berhubungan dengan banyak baris
mata kuliah begitu juga sebaliknya.
1.4.2.
Proses perancangan
diagram ER
Pada tahap yang pertama langkah-langkah teknis yang
dapat dilakukan untuk menghasilkan Diagram ER awal dalam mewujudkan perancangan
basis data, maka urutan penggambarannya adalah sebagai berikut :
a. Mengidentifikasi dan menetapkan seluruh himpunan
entitas yang akan terlibat.
b. Menentukan atribut-atribut key dari
masing-masing himpunan entitas.
c. Mengidentifikasi dan menetapkan seluruh himpunan
relasi di antara himpunan entitas-himpunan entitas yang ada beserta foreign
key-nya.
d. Menentukan derajat atau kardinalitas relasi untuk
setiap himpunan relasi.
e. Melengkapi himpunan entitas dan himpunan relasi
dengan atribut-atribut deskriptif (non key).
1.4.3.
Normalisasi
Normalisasi
merupakan teknik analisis data yang mengorganisasikan atribut-atribut data
dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksibel. Pada
dasarnya normalisasi dilakukan untuk memperbaiki desain tabel yang kurang baik
sehingga penyimpanan data menjadi lebih efisien dan bebas anomali data.[1]
Level normalisasi atau sering disebut sebagai
bentuk normal suatu relasi dijelaskan berdasarkan kriteria tertentu pada bentuk
normal. Bentuk normal yang dikenal hingga saat ini meliputi bentuk 1NF, 2NF,
3NF, BCNF, 4NF, 5NF, DKNF, RUNF. Level normalisasi yang sering digunakan pada
perancangan basis data, yaitu[1] :
a. Relasi bentuk normal pertama (1NF)
Merupakan sebuah relasi dimana setiap baris
dan kolom berisikan hanya satu nilai.
Proses normalisasi 1NF yaitu :
-
Tentukan
satu atau kumpulan atribut sebagai kunci untuk tabel yang belum normal.
-
Identifikasi
grup yang berulang dalam tabel yang tidak normal.
-
Hapus
grup yang berulang tersebut.
b. Bentuk normal kedua (2NF)
Merupakan sebuah relasi yang sudah dalam
bentuk 1NF dan setiap atribut non primary key bersifat berhubungan penuh
dengan primary key.
Proses normalisasi 2NF yaitu :
-
Identifikasi
primary key untuk relasi 1NF
-
Identifikasi
functional dependencies dalam relasi.
-
Jika
terdapat partial dependency terhadap primary key maka hapus
dengan menempatkan dalam relasi yang baru.
c. Bentuk normal ketiga (3NF)
Merupakan sebuah relasi dalam 1NF dan 2NF dan
dimana tidak terdapat atribut non primary key yang bersifat trasnsitif
pada primary key.
Proses normalisasi 3NF yaitu :
-
Identifikasi
primary key ke dalam 2NF.
-
Identifikasi FD dalam relasi.
-
Jika terdapat transitif terhadap primary key
maka hapus dengan menempatkan dalam relasi yang baru.
1.4.4.
Keuntungan normalisasi
dari permasalahan yang ada di dunia nyata
Dari permasalahan yang ada di dunia nyata terdapat
keuntungan normalisasi di antaranya sebagai berikut :
a. Meminimalkan ukuran penyimpanan yang diperlukan
untuk penyimpanan data.
b. Meminimalkan resiko kandungan inkonsistensi data
pada basis data.
c. Meminimalkan kemungkinan anomali pembaruan.
d. Memaksimalkan stabilitas struktur data.
e. Kinerja penelusuran yang lebih cepat.
f. Meningkatkan integritas data.
1.5 Kasus Kelompok
Ketika mahasiswa ingin mengikuti
kegiatan kkn, mahasiswa harus mendaftarkan id_kkn, nama, nim, fakultas dan sks
ke Lembaga Pengabdian Masyarakat. Pada LPM terdapat hubungan dengan dosen
pembimbing. Dimana dosen memiliki id_dosen pembimbing, nama, dan fakultas
dosen. Mahasiswa juga harus mencari Desa tempat mereka melakukan kkn dimana
terdapat id_desa, nama_desa, alamat. 1 desa hanya bisa dimasuki oleh 1 kelompok
kkn. Namun mahasiswa tidak memiliki hubungan langsung dengan kelurahan
melainkan dengan desa. Kelurahan yang akan memberikan data-data tentang desa.
Menjelang berakhirnya kkn, LPM akan memantau ke desa untuk mengambil nilai
mahasiswa di desa.
1.6 Kasus Modul
1. Melakukan
perancangan ERD serta menentukan kamus data yang dimiliki diagram tersebut. Buat ERD sebelum dinormalisasi,
jadi ERD yang dibuat masih belum baik.
2. Melakukan
normalisasi 1NF, 2NF, 3NF terhadap diagram yang telah dirancang sebelumnya.Buat ERD setelah dinormalisasi, jadi ERD nomor
1 dilakukan normalisasi dari 1NF sampai 3NF dan bahkan penjelasan atau alasan
tiap dilakukannya normalisasi.
1.7 Analisa Kasus
1.7.1.
ER Diagram Sebelum
Normalisasi
1.7.2.
Kamus Data Sebelum
Normalisasi
Kelompok_kkn = {id_kkn, nama_kelompok,
fakultas}
LPM = {kd_dosen,
nama_dosen, fakultas}
Kelurahan = {id_kelurahan,
nama}
Desa
={id_desa,
nama_desa,
alamat}
Nilai = {id_kkn, id_desa, id_dosen, nilai}
1.7.3.
Tabel
Sebelum Normalisasi
Tabel 1.1. Tabel kelompok_kkn.
Id_kkn
|
Nama_kelompok
|
fakultas
|
Tabel
kelompok_kkn merupakan daftar kelompok yang akan mengikuti kkn. Di dalam tabel kelompok kkn terdapat
atribut kunci yaitu id_kkn yang menjadi pembeda yang unik dari atribut lainnya pada
masing-masing entitas. Kemudian terdapat atribut nama_kelompok dan fakultas
yang merupakan atribut penjelas dari entitas kelompok_kkn. Atribut
nama_kelompok dan fakultas bergantung kepada atribut id_kkn.
Tabel 1.2. Tabel LPM.
Id_dosen
|
Nama_dosen
|
fakultas
|
Tabel 1.2. merupakan tabel LPM yang memiliki hubungan dengan
dosen pembimbing setiap kelompok kkn. Dosen pembimbing memiliki atribut kunci yaitu id_dosen
dan juga memiliki beberapa atribut lain yaitu atribut nama_dosen dan fakultas
sebagai atribut penjelas.
Dimana atribut penjelas seperti nama_dosen dan fakultas bergantung
sepenuhnya kepada id_dosen.
Tabel 1.3. Tabel kelurahan.
Id_kelurahan
|
Nama_kelurahan
|
Tabel kelurahan
ini menjadi informasi tambahan untuk sebuah desa. Di dalam sebuah kelurahan
terdapat banyak desa dengan id yang berbeda untuk setiap desanya. Begitu juga
dengan kelurahan yang memiliki atribut kunci berupa id_kelurahan dan atribut
penjelas berupa nama_kelurahan yang memberikan penjelasan tentang suatu
kelurahan.
Tabel 1.4. Tabel desa.
Id_desa
|
Nama_desa
|
alamat
|
Tabel desa ini merupakan
tempat yang akan dikunjungi oleh kelompok_kkn. Tabel Desa memiliki atribut
kunci yaitu id_desa sebagai pembeda karena pada suatu kelurahan terdapat banyak
desa sehingga setiap desa harus memiliki id yang berbeda. Disamping itu juga
hanya satu desa yang boleh dimasuki oleh kelompok_kkn sehingga perlu adanya
id_desa agar memudahkan dalam mencari desanya. Terdapat juga beberapa atribut
penjelas yaitu nama_desa dan alamat_desa.
Tabel 1.5. Tabel nilai.
Id_kkn
|
Id_desa
|
Id_dosen
|
nilai
|
Tabel nilai dibuat karna kardinalitas atau derajat relasi banyak ke banyak
dari relasi
yang menghubungkan antara entitas LPM
dan entitas Kelurahan.
Dimana tabel ini memiliki foreign key id_kkn, id_desa
dan id_dosen yang merupakan
atibut kunci yang dititipkan dari entitas kelompok_kkn, desa dan LPM. Atribut nilai bergantung kepada
ketiga foreign key tersebut.
1.7.4.
Tabel
Normalisasi
1.
Tabel normalisasi 1
NF
Gambar 1.9. Tabel normalisasi 1NF.
Gambar 1.9.
merupakan gabungan dari beberapa tabel yang sudah di normalisasi menjadi bentuk
1NF. Syarat sebuah tabel dapat dikatakan memenuhi bentuk 1NF apabila semua
atributnya bernilai tunggal dan tidak terdapat pengulangan atribut. Pada tabel
ini sudah jelas memenuhi 1NF karna semua atributnya bernilai tunggal dan juga
tidak terdapat pengulangan atribut di dalamnya.
2.
Tabel normalisasi 2 NF
Tabel
1.6. Tabel kelompok_kkn.
Id_kkn
|
Nama_kelompok
|
fakultas
|
Pada tabel 1.6 terdapat atribut kunci yaitu id_kkn dan terdapat
atribut nama_kelompok dan fakultas yang merupakan atribut penjelas dari entitas
kelompok_kkn. Tabel kelompok_kkn ini berisi daftar kelompok-kelompok kkn yang
akan melakukan kkn disuatu desa. Pada tabel kelompok_kkn ini sudah memenuhi
bentuk tabel normal baik dari 1NF, 2NF dan 3NF. Tabel tersebut memenuhi 1NF
karna pada tabel tersebut semua atributnya tunggal dan tidak terdapat
pengulangan atribut. Memenuhi 2NF karna tidak terdapat data yang parsial, semua
bergantung sepenuhnya kepada atribut kunci dan juga memenuhi 3NF karna tidak
terdapat data yang transitif, semua bergantung kepada atribut kunci dan tidak
kepada atribut yang bukan kunci.
Gambar 1.10. Tabel KKN.
Gambar 1.10.
merupakan tabel dari kegiatan kkn. Dimana terdapat id_kkn yang mempengaruhi
id_dosen, id_kelurahan serta id_desa. Pada tabel ini juga dilengkapi dengan
atribut penjelas dari id_dosen yaitu nama_dosen, atribut penjelas dari
id_kelurahan berupa nama_kelurahan, dan atribut penjelas dari id_desa yaitu
nama_desa dan alamat.
3.
Tabel normalisasi 3 NF
Tabel 1.7.
Tabel kelompok_kkn.
Id_kkn
|
Nama_kelompok
|
fakultas
|
Di dalam tabel kelompok kkn terdapat atribut kunci yaitu id_kkn dan
terdapat atribut nama_kelompok dan fakultas yang merupakan atribut penjelas
dari entitas kelompok_kkn. Tabel ini sudah memenuhi 1NF dimana semua atributnya
bernilai tunggal, memenuhi 2NF dimana tidak terdapat data yang parsial dan juga
memenuhi 3NF karna semua atribut bukan kunci bergantung sepenuhnya kepada
atribut kunci bukan ke sesama atribut yang bukan merupakan atribut kunci.
Tabel
1.8. Tabel LPM.
Id_dosen
|
Nama_dosen
|
fakultas
|
Tabel LPM memiliki hubungan dengan dosen
pembimbing sehingga didalamnya terdapat atribut kunci yaitu id_dosen. Dosen juga
memiliki beberapa atribut deskriptif yaitu atribut nama_dosen dan fakultas
sebagai atribut penjelas.
Tabel ini telah memenuhi syarat suatu tabel dikatakan normal yaitu dengan
memenuhi bentuk normalisasi 1NF, 2NF dan 3NF.
Tabel 1.9. Tabel Kelurahan.
Id_kelurahan
|
Nama_kelurahan
|
Tabel 1.9.
digunakan untuk memberikan informasi tentang kelurahan dari suatu desa. Entitas
kelurahan
memiliki atribut kunci yaitu id_kelurahan dan atribut penjelasnya berupa nama_kelurahan. Pada tabel
ini juga sudah memenuhi bentuk normalisasi 1NF dengan semua atributnya tunggal,
memenuhi 2NF karna atribut bukan kunci bergantung kepada atribut kunci dan juga
memenuhi 3NF dimana tidak ada data yang transitif didalamnya, semua atribut
bergantung sepenuhnya kepada atribut kunci.
Tabel
1.10. Tabel Desa.
Id_desa
|
Nama_desa
|
alamat
|
Id_kelurahan
|
Tabel Desa ini merupakan
tempat yang akan dikunjungi oleh kelompok_kkn. Tabel Desa memiliki atribut
kunci yaitu id_desa sebagai pembeda karena pada suatu kelurahan terdapat banyak
desa sehingga setiap desa memiliki id yang berbeda. Pada tabel ini terdapat foreign key yaitu id_kelurahan dan juga
beberapa atribut penjelas yaitu nama_desa dan alamat. Tabel ini sudah memenuhi
bentuk 3NF.
Tabel
1.11. Tabel nilai.
Id_kkn
|
Id_desa
|
Id_dosen
|
nilai
|
Tabel ini dibuat karna kardinalitas atau derajat relasi banyak ke banyak
dari relasi
yang menghubungkan antara entitas LPM
dan entitas kelurahan.
Dimana tabel ini memiliki atribut id_kkn, id_desa
dan id_dosen
yang bersifat foreign key, dan terdapat atribut nilai yang
bergantung pada ketiga atribut foreign
key tersebut. Tabel ini sudah memenuhi 3NF dimana tidak adanya atribut
bukan kunci yang bergantung kepada atribut bukan kunci lainnya.
1.8
Kesimpulan
1. Entitas merupakan obyek
dalam dunia nyata yang bisa dibedakan dari objek lain. Entitas menunjukkan
obyek-obyek dasar yang terkait di dalam system. Obyek dasar dapat berupa
orang, benda atau hal lain
yang keterangannya perlu
disimpan di dalam basis data.
2.
Secara umum atribut
adalah karakteristik dari entitas atau relasi yang menyediakan penjelasan
detail tentang entitas atau relasi tersebut. Atribut terdiri dari beberapa jenis yaitu atribut key,
atribut simple, atribut multivalue, atribut composite dan
atribut derivatif.
3.
Relasi antar entitas
mendefinisikan hubungan antar dua buah entitas. Relasi adalah kejadian atau
transaksi yang terjadi di antara dua buah entitas yang perlu disimpan di dalam
basis data. Kerelasian antar entitas dapat dikelompokkan
dalam 3 jenis, yaitu
satu ke satu (one to one), banyak ke satu (many to one) dan
banyak ke banyak (many to many).
4.
Perancangan ERD diawali dengan menentukan entitas-entitas
yang dibutuhkan. Setelah itu menentukan atribut key dari masing-masing entitas tersebut. Selanjutnya menghubungkan
entitas dengan relasi yang dilengkapi dengan kardinalitas atau derajat
relasinya. Terakhir menentukan semua atribut penjelas yang dibutuhkan pada
setiap himpunan entitas.
5.
Normalisasi merupakan sebuah teknik mengelompokkan
atribut dari suatu relasi sehingga membentuk struktur relasi yang baik tanpa adanya redundansi
data. Keuntungan dari normalisasi
ini dapat meminimalisasi redundansi atau pengulangan
data, meminimalisasi ukuran
penyimpanan data dan mencegah terjadinya anomali
pembaruan.
DAFTAR
PUSTAKA
[1] Indrajani. 2014. Database Systems. Jakarta : Gramedia.
[2] Kroenke, Dapid M. Database Processing Dasar-dasar, Desain, dan
Implementasi. Jakarta :
Erlangga.
[3] Yunus, Muh. 2016. Modul
Praktikum Sistem Basis Data. Mataram : STMIK Bumigora.