#Basis Data: Pengenalan, ER Model, Konversi ER ke Basis Data Relational, Normalisasi
Assalamu’alaikum :)
Ini
UAS loh. Kalo biasanya UAS itu di kelas, duduk, ngerjain soal, sekarang beda.
UAS kali ini tuh take home alias dibawa ke rumah. Selain bermanfaat buat diri
sendiri, bermanfaat buat orang lain juga, InsyaAllah. Oke, selamat bertambah
ilmu!
Sebelum
mengenal Basis Data, kita harus terlebih dahulu mengetahui pengertian dari Data
dan Informasi.
Data adalah respresentasi untuk mewakili nilai fakta dunia nyata yang dapat berupa nilai numerik, alphanumerik, gambar, suara, video, dan lain-lain. Fakta dunia nyata dapat berupa barang, kejadian, aktivitas, perasaan dan semua tentang dunia nyata.
Informasi adalah data yang telah dikelola dalam bentuk tertentu untuk memberikan makna bagi penerimanya.
Data adalah respresentasi untuk mewakili nilai fakta dunia nyata yang dapat berupa nilai numerik, alphanumerik, gambar, suara, video, dan lain-lain. Fakta dunia nyata dapat berupa barang, kejadian, aktivitas, perasaan dan semua tentang dunia nyata.
Informasi adalah data yang telah dikelola dalam bentuk tertentu untuk memberikan makna bagi penerimanya.
Data dan informasi akan saling berkesinambungan sehingga membentuk
suatu siklus yang namanya information cycle (siklus informasi).
Gambar
1. Siklus Informasi
Setelah
mengetahui perbedaan Data dan Informasi, kita akan memasuki materi utama,yaitu
apa itu Basis Data?
Basis
Data terdiri dari dua kata, Basis dan Data. Basis dapat diartikan sebagai
markas tempat berkumpul. Sedangkan data adalah representasi fakta dunia nyata
yang mewakili suatu objek. Jadi, Basis Data adalah kumpulan informasi yang disimpan di
dalam komputer secara
sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk
memperoleh informasi dari basis data tersebut.
Sebagai
pengguna yang baik,tentunya harus tau juga tujuan dibangunnya Basis Data ini,
yaitu:
1.
Kecepatan dan
kemudahan (speed).
2.
Kebersamaan pemakai.
3.
Pemusatan control
data.
4.
Efesiensi ruang
penyimpanan (space).
5.
Keakuratan (Accuracy).
6.
Ketersediaan (availability).
7.
Keamanan (Security).
8.
Kemudahan dalam
pembuatan program aplikasi baru.
9.
Pemakaian secara
langsung.
10.
Kebebasan data (Data
Independence)
11.
User view.
Dan
lebih baik lagi mengetahui perkembangannya.
Gambar 2. Perkembangan Sistem Basis
Data
Nah,
untuk mengelola dan memanggil kueri (query) basis data, digunakan sebuah
perangkat lunak yang disebut sistem manajemen basis data (Database
Management System, DBMS). DBMS memiliki karakteristik sebagai berikut:
·
Software program
·
Supplements operating sistem
·
Manages data
·
Queries data and generates reports
·
Data security
Kelebihan-kelebihan DBMS:
·
Data berdiri sendiri (Data
Independence)
·
Pengaksesan data efisien (Efficient
data access)
·
Integritas data dan keamanan
terjamin (Data integrity and security)
·
Administrasi data (Data
administration)
·
Dapat diakses bersamaan (Concurrent
access )
·
Recovery saat
terjadi kegagalan (Crash recovery)
·
Mengurangi waktu pembangunan aplikasi
(Reduced application development time)
Gambar 3.
Komponen DBMS
Basis Data juga memiliki banyak model, seperti yang terlihat pada
gambar berikut:
Gambar
4. Model Basis Data
Gambarnya
terlalu rumit? Tenang saja, akan dijelaskan di bawah ini:
a.
Relational
Model ini direpresentasikan dalam
tabel dua dimensi, tabel-tabel tersebut memiliki hubungan yang disebut dengan
relasi. Model ini memiliki fleksibilitas dan kecepatan yang tinggi.
b. Hierarchical
Memiliki struktur pohon dimana field
hanya memiliki satu buah induk (parent), masing-masing parent memiliki
banyak child (anak). Model ini memiliki kecepatan yang baik.
c. Network
Relationship dibuat
menggunakan linked list (pointer). Berbeda dengan model hierarchical satu
anak dapat memiliki beberapa induk. Model ini memiliki fleksibilitas yang
tinggi.
d. Object
oriented
Object Oriented Database adalah
sebuah sistem database yang menggabungkan semua konsep object
oriented seperti pewarisan, abstraksi, enkapsulasi, dll. Model ini dapat
berinteraksi dengan baik dengan bahasa pemrograman berorientasi objek seperti
java dan C++.
Dalam basis data, bahasa yang digunakan tidak sama seperti bahasa
manusia. Inilah macam-macam bahasa Basis Data.
1.
Data
Definition Language (DDL)
Dengan bahasa ini kita dapat
membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur
penyimpanan tabel dsb.
2.
Data
Manipulation Language (DML)
Berguna untuk melakukan manipulasi
dan pegambilan data pada suatu basis data.
Dalam Basis Data, kita akan sering menemukan yang namanya ERD(Entity
Relationship Diagram). Sebelum mempelajarinya, kita harus mengetahui dulu
komponen-komponen Model ER. Komponen utama Model ER adalah:
1.
Entitas
2.
Relasi
3.
Atribut
4.
Konstrain-konstrain (batasan-batasan)
Entitas adalah objek yang dirasa penting di sistem tersebut, yg bisa berupa :
·
Objek
Konkrit Contoh : Orang, Mobil, Buku
·
Objek
Abstrak Contoh : Penjualan, Jadwal, Pinjaman, Tabungan
Himpunan Entitas adalah
sekelompok entitas
yang sejenis dan berada dalam lingkup yang sama. Entitas menunjuk kepada pada individu suatu objek sedangkan
himpunan entitas menunjuk pada rumpun
(family) dari individu tersebut.
Gambar 5.
Entitas dan Himpunan Entitas
Setiap entitas pasti memiliki atribut yang mendeskripsikan karakteristik (property) dari entitas tersebut. Penentuan / pemilihan atribut-atribut yang
relevan bagi sebuah entitas merupakan hal penting lainnya dalam pembentukan
model ER. Contoh: nim, nama, alamat,
kode. ER
menggambarkan entitas-entitas dengan atributnya yang saling berelasi. Relasi
menggambarkan hubungan antara entitas satu dengan entitas yang lain sesuai
dengan proses bisnisnya. Notasi relasi didalam diagram ER digambarkan dengan notasi belah ketupat.
Kumpulan semua relasi diantara entitas-entitas yang terdapat pada
himpunan entitas-himpuan entitas tersebut membentuk himpunan
relasi (relationship sets).
1.
Unary (Hanya me-relasi-kan 1 entitas)
Relasi di atas menggambarkan entitas employee yang
ber-relasi dengan entitas employee. Entitas karyawan bisa merupakan
supervise biasa tetapi bisa juga merupakan supervisor.
2.
Binary (Me-relasi-kan 2 entitas)
Relasi di atas menggambarkan entitas pelangan
yang ber-relasi dengan entitas pinjaman. 1 pelanggan bisa mempunyai banyak
nomor pinjaman, dan 1 nomor pinjaman hanya untuk 1 pelanggan.
3. Ternary (Me-relasi-kan 3 entitas)
Relasi di atas menggambarkan entitas
employee yang ber-relasi dengan
entitas brunch dan entitas job
melalui relasi work_on. 1
employee bekerja di sebuah title tertentu dan juga bekerja di sebuah
brunch_name tertentu. Ada 3 entitas yang terlibat dari relasi di atas.
ER
juga memiliki kardinalitas, di antaranya:
·
Satu ke Satu
·
Satu ke Banyak
·
Banyak ke Satu
·
Banyak ke Banyak
Untuk
membedakan suatu entitas didalam himpunan entitas dengan entitas lain,
digunakan Key. Key adalah satu atau gabungan dari beberapa atribut yang
dapat membedakan semua row dalam relasi secara unik. Macam key
dibedakan jadi 3 = super key, candidate key, primary key.
Ada juga entitas yang tidak memiliki primary key. Yaitu entitas
lemah. Entitas ini selalu bergantung pada entitas lain. Notasi entitas lemah digambarkan dengan double persegi panjang, sedangkan relasi untuk himpunan entitas lemah digambarkan dengan double diamond.
Berikut ini adalah notasi-notasi simbol di ER:
Setelah
memahami materi di atas, kita lihat contoh ERD beserta penjelasannya.
Keterangan
:
•
Entity dosen mempunya dua atribut,
yaitu kode dosen (kd_dos) yang berfungsi sebagai primary key, dan nama
dosen (nm_dos).
•
Entity mahasiswa juga mempunyai
dua atribut, yaitu No. Buku Pokok (nobp) sebagai primary key dan nama
mahasiswa (nm_mhs).
•
Hubungan antara kedua entitas tersebut
dinyatakan dalam entitas mengajar, yang mempunyai 4 atribut, yaitu kode dosen (kd_dos)
dan No.Buku Pokok mahasiswa (nobp) yang berfungsi sebagai foreign key
pada entitas mengajar serta atribut waktu mengajar (waktu) dan tempat
mengajar (lokal).
•
Derajat relasi dinyatakan dengan M
: N, yang menandakan bahwa hubungan antar entitas adalah banyak ke banyak,
seperti terlihat pada gambar diatas.
Semangat kawan, satu bahasan lagi nih,
mengenai normalisasi. Normalisasi sangat penting dipelajari, karena normalisasi
ini bertujuan untuk menghilangkan kerangkapan data, mengurangi kompleksitas, dan mempermudah pemodifikasian data. Ada beberapa tahap dalam
normalisasi:
Bentuk Tidak Normal
Menghilangkan
perulangan grup
Bentuk Normal Pertama (1NF)
Menghilangkan Ketergantungan Parsial
Bentuk Normal Kedua (2NF)
Menghilangkan Ketergantungan Transitif
Bentuk Normal Ketiga (3NF)
Menghilangkan anomali-anomali hasil
dari ketergantungan fungsional
Bentuk normal Boyce-Codd (BCNF)
Menghilangkan ketergantungan
Multivalue
Bentuk Normal Keempat (4NF)
Menghilangkan anomali-anomali yang
tersisa
Bentuk Normal Kelima
Tapi yang wajib kita lakukan hanya
sampai bentuk normal ketiga saja (3NF), karena dalam bentuk normal ketiga, data
sudah dapat dikatakan ‘normal’. Tunggu, memang data seperti apa yang dikatakan
tidak normal? Langsung saja kita mulai normalisasi data.
Id_mhs
|
Nama_mhs
|
Hobi_mhs
|
1301111
|
Iko
|
Tidur, memancing
|
1302222
|
Ibo
|
Makan, menabung
|
Data dala tabel di atas disebut tidak
normal karena memiliki perulangan grup. Untuk mencapai bentuk 1NF, maka harus
dihilangkan perulangan tersebut, dengan cara dekomposisi seperti ini:
Id_mhs
|
Nama_mhs
|
1301111
|
Iko
|
1302222
|
Ibo
|
Id_mhs
|
Nama_mhs
|
1301111
|
Tidur
|
1301111
|
Memancing
|
1302222
|
Makan
|
1302222
|
Menabung
|
Kemudian, perhatikan tabel berikutnya:
nim
|
Nama_mhs
|
Alamat_mhs
|
Id_mk
|
Nama_mk
|
sks
|
Nilai
|
Pada tabel di atas, syarat untuk mencapai bentuk
1NF terpenuhi, namun tidak untuk bentuk 2NF. Kenapa? Karena nama_mhs dan
alamat_mhs bergantung pada nim, sedangkan nama_mk dan sks bergantung pada
id_mk. Artinya, di sana masih ada ketergantungan parsial. Ada dua primary key. Tabel di atas perlu
didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF:
·
Tabel Nilai
nim
|
Id_mk
|
nilai
|
·
Tabel Mahasiswa
nim
|
Nama_mhs
|
Alamat_mhs
|
·
Tabel Mata Kuliah
Id_mk
|
Nama_mk
|
sks
|
Terakhir,
bentuk normal yang ketiga (3NF). Dimana letak ke-tidak-normal-an-nya adalah
adanya ketergantungan transitif. Biar jelas, perhatikan tabel di bawah ini:
nim
|
nama
|
Alamat_jalan
|
Alamat_kota
|
Alamat_provinsi
|
Kode_pos
|
Tabel
di atas memenuhi syarat 2NF, namun belum memenuhi bentuk 3NF. Terdapat
ketergantungan transitif, yaitu bergantungnya alamat_kota dan alamat_provinsi
(yang keduanya bukan primary key) kepada kode_pos (yang juga bukan primary
key). Sehingga tabel
tersebut perlu didekomposisi menjadi:
·
Tabel Mahasiswa
nim
|
nama
|
Alamat_jalan
|
Kode_pos
|
·
Tabel Kode Pos
Kode_pos
|
Alamat_kota
|
Alamat_provinsi
|
Selesaaaai, kini data yang
kita miliki sudah normal. Semoga ilmu dari atas sanaaaa sampai bawah sini bisa
bermanfaat yah. Maaf jika ada penjelasan yang kurang jelas. Wassalamu’alaikum :)
Sumber: Diktat IK 330 Basis Data
Dosen : Budi Laksono Putro
Komentar
Posting Komentar
komentar anda, semangat saya :)))