PENGENALAN BASIS DATA, ENTITY RELATIONAL DIAGRAM (ERD), DAN NORMALISASI
Bismillahirrahmaanirrahim
Setelah sekian lama tidak nulis di blog (blog-nya aja jelek gini yaa, hehe....) akhirnya saya terpaksa menulis juga karena tuntutan UAS. Terakhir saya nulis di blog yaitu beberapa tahun yang lalu ketika saya masih SMP, dan sekarang udah di bangku kuliah, dan ini adalah kedua kalinya saya nulis di blog (kemana aja bung??? -___-”). Oke deh daripada curhat ga jelas, to do point aja pada pembahasan ini, saya akan mencoba menjelaskan mengenai basis data dan teman-temannya sesuai judul di atas. Cekidot !!!
1. BASIS
DATA
Jadi
gini, dalam dunia yg serba digital ini data dan informasi merupakan
hal yang sangat penting bagi kita. Nah, data dan informasi tadi,
dikelola oleh sistem yang namanya basis data. Lalu apa sih pengertian
data dan informasi???
-
Data →
adalah representasi fakta dunia nyata.
Bentuknya dapat berupa nilai numerik, alphanumerik, gambar,
suara, video, dan lain-lain.
-
Informasi → adalah
data yang telah diolah/dikelola dalam bentuk tertentu.
Nantinya informasi ini digunakan untuk mengembil suatu
keputusan, sehingga memberikan makna atau arti bagi penerimanya.
Proses
pengelolaan data untuk menjadi informasi tersebut dinamakan siklus
informasi. Kalau digambarkan, kurang lebih seperti ini siklusnya:
Data
dan Informasi tadi nilainya akan bertambah bila dikelola dengan “baik
dan semestinya”. Kualitas data dan informasi dipengaruhi oleh
hal-hal berikut ini:
• Benar
merepresentasikan dunia nyata, dan
• Tepat
waktu, dan
• Tepat
penggunaan.
Lalu apa
yang disebut dengan Basis Data ?? Kalau
data kan diatas udah dijelasin, yang belum Basis.
Basis →
merupakan markas / tempat
berkumpul.
Kita
tau kan, kalau suatu tempat berkumpul itu pasti diisi oleh banyak
hal, mau orang, benda, dan lain-lain. Nah hal yang banyak itu diatur
sama yang namanya SISTEM. Kenapa??? Ya supaya teratur, ngga
berantakan. Terus yang namanya sistem itu pasti saling berhubungan
satu sama lain dan saling melengkapi (kaya
apa aja ya saling melengkapi, ehm...ehm...),
untuk menuju satu tujuan yang sama.
Jadi
dari pengertian diatas, bisa ditarik kesimpulan kalau BASIS
DATA itu merupakan suatu kumpulan representasi fakta dunia nyata yang
terkumpul dalam suatu sistem yang saling berhubungan dan saling
melengkapi agar kelak dapat dimanfaatkan kembali dengan cepat &
mudah. Kurang lebih basis data
itu mirip dengan lemari arsip. Perbedaannya kalau lemari arsip
disimpan dalam suatu lemari, kalau basis data disimpan dalam media
penyimpanan elektronik.
Terus
untuk apa dibuat yang namanya Basis Data?? Kan udah ada lemari
arsip??
Jadi
begini, tujuan utama dari basis data ini untuk mempermudah
penggunanya. Bayangkan kalau disuruh nyari DATA A di lemari arsip
yang isinya bejibun, pasti
pusing kan. Tetapi dengan basis data, katakan tidak pada yang namanya
PUSING, hahahaha... Karena dengan basis data, kita akan mendapatkan:
•
Kecepatan
& kemudahan (speed)
•
Efisiensi
ruang penyimpanan (space)
•
Keakuratan
(accuracy)
•
Ketersediaan
(availability)
•
Kelengkapan
(completeness)
•
Keamanan
(security)
•
Kebersamaan
pemakaian (sharability)
Ya,
hal-hal diatas akan kita dapatkan dalam memproses data dan informasi
dengan menggunakan BASIS DATA, hebat kan...
Karena
basis data dikelola secara elektronis, maka diperlukan software yang
mengelolanya. Software atau alat yang digunakan dalam mengelola
sistem basis data disebut dengan DBMS (Database Management System
/ Sistem Manajemen Basis Data). DBMS sendiri memiliki
karkteristik yaitu:
•
Software program
•
Supplements operating sistem
•
Manages data
•
Queries data and generates reports
• Data
security
Lalu
kenapa harus pakai DBMS ??, ya tentunya karena mempunyai kelebihan
dibandingkan dengan apabila kita hanya menyimpan data dalam bentuk
file saja. Dengan DBMS, kita akan mendapatkan keuntungan dari
kelebihan DBMS ini, yaitu:
• 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)
Kalau
digambarkan dalam bentuk skema, sistem basis data terlihat seperti
ini:
Komponen-komponen
pada sebuah sistem basis data yang digambarkan diatas tadi terdiri
dari:
•
Perangkat keras
•
Sistem operasi
• Basis
data
• DBMS
(Database Management System)
•
Pemakai
•
Aplikasi lain
Balik
lagi ke DBMS, karena DBMS itu merupaka alat atau aplikasi, pasti ada
macamnya. Dibawah ini ada beberapa contoh produk DBMS terkenal yang
sering digunakan dalam mengelola suatu sistem basis data:
1. DB2
(IBM)
2.
Rdb/VMS (Digital Equipment Corporation)
3. Oracle
(Oracle Corporation)
4.
Informix (Informix Corporation)
5. Ingres
(ASK Group Inc)
6. Sybase
(Sybase Inc), dan masih banyak lagi.
Lalu
dalam basis data, ada yg namanya abstraksi data, yaitu merupakan
tingkatan lebel dalam melihat data dalam suatu basis data. Pusing kan
maksudnya apa.... Coba lihat gambar dibawah ini:
Jadi,
abstraksi data itu terbagi kedalam 3 level:
1. Level
fisik → Disini user/pemakai melihat data hanya sebagai kumpulan
dari struktur dan datanya sendiri.
2. Level
logic → Namanya jua logic. Disini user/pemakai dapat melihat ada
data apa saja yang disimpan di basis data, terus ada
hubungan/relasi apa yang terjadi antara data-data tersebut.
3. Level
view → Sesuai namanya, disini user/pemakai hanya melihat data yang
dibutuhkannya saja. Ini merupakan level yang umumnya dipakai,
soalnya ngga semua user butuh semua data yang ada di basis data
kan, jadi user hanya melihat sebagian data yang dibutuhkannya
saja.
2. ENTITY RELATIONAL DIAGRAM (ERD)
Dalam
basis data ada yang namanya pemodelan basis data. Untuk apa? Kita kan
tau kalau melihat kumpulan data, terus kita disuruh nyari satu buah
data
di kumpulan data tadi, pasti pusing kan. Oleh karena itu dengan
pemodelan basis data, data-data tadi bisa disimplifikasi
untuk dilihat, dikembangkan
dan dianalisis.
Nah, salah satu cara pemodelan basis data tersebut yaitu dengan ERD.
Entity
Relational Diagram
merupakan suatu
pemodelan struktur basis data
yang menggambarkan
relasi antar objek-objek data (entitas).
Dalam ERD
ada 4 konsep utama yang harus kita pahami, yaitu:
1.
Entitas/Entity/Tabel
Entitas → yaitu objek yang bisa dibedakan → lambangnya :
Entitas dibagi lagi menjadi 2 bagian, yaitu:
1. Entitas/Objek Konkrit → bisa dilihat dan diraba
Contohnya : Mahasiswa, Dosen, Guru, dan lain-lain
2. Entitas/Objek
Abstrak
→ tidak bisa dilihat dan
diraba
Contohnya
: Penjualan, Jadwal,
Pinjaman, Tabungan, dan lain-lain
2.
Atribut
Atribut → yaitu ciri yang melekat pada entitas → lambangnya :
Atribut juga terbagi lagi menjadi beberapa jenis, yaitu:
1. Atribut Key (Primary Key)
→ Atribut ini digunakan untuk menentukan suatu entity secara
unik.
Contohnya : nim, id_ruangkelas, kode_dosen, dan sebagainya.
2. Atribut Single Value / Simple
→ Atribut ini bernilai atomic, maksudnya hanya bernilai
tunggal, tidak bisa dibagi-bagi lagi.
Contohnya : jenis_kelamin, tgl_lahir, dan sebagainya.
3. Atribut Composite
→ Atribut ini dapat dibagi-bagi lagi menjadi beberapa bagian.
Contohnya : Atribut nama, karena nama bisa dibagi lagi menjadi
nama_depan, nama_tengah, dan nama_belakang.
4. Atribut Multivalued (Bernilai Ganda)
→ Kalau pada atribut tunggal hanya bisa diisi oleh satu
data/nilai saja, tetapi tidak pada atribut yang satu ini. Pada
atribut ini nilai/data bisa diisi lebih dari satu nilai.
Contohnya : Atribut hobi, karena setiap orang bisa punya banyak
hobi, misalnya memasak, menyanyi dan menari. Sehingga data hobi
tersebut termasuk ke dalam atribut multivalued
5. Atribut Derivatif
→ Atribut ini nilainya memiliki arti pada suatu entitas
apabila terdapat atribut lain yang menjadi ketergantungannya.
Contohnya
: Atribut IPK, karena IPK bergantung pada atribut lain yaitu nilai
dan sks. IPK bisa didapat dari penjumlahan nilai di bagi dengan
jumlah sks yang diambil.
Dibawah ini ada contoh dari
gabungan lambang tiap jenis atribut :
3.
Relationship
Relasi/relationship → yaitu hubungan yang terjadi antara satu
entitas dengan entitas lainnya → lambangnya :
Dalam sebuah ERD, entitas yang dihubungkan oleh relasi bisa berjumlah
lebih dari satu. Oleh karena itu, relasi yang menghubungkannya bisa
dibagi lagi menjadi 3 macam, yaitu:
1. Unary → hanya merelasikan 2 entitas
Contoh :
2. Binary → merelasikan 2 buah entitas
Contoh :
4.
Kardinalitas
Kardinalitas → yaitu gambaran banyaknya jumlah maksimum entitas
yang dapat ber-relasi dengan entitas yang lain. Kardinalitas juga
terbagi lagi menjadi 3 bagian:
1. Satu ke satu (1 : 1)
Maksudnya, satu entitas pada tipe entitas yang satu hanya dapat
berhubungan dengan
paling banyak satu entitas pada tipe entitas
lainnya, dan juga sebaliknya. Contohnya :
2. Satu ke banyak (1 : n), dan Banyak ke satu (n : 1)
Maksudnya, satu entitas pada tipe entitas yang satu dihubungkan
dengan banyak entitas pada tipe entitas lainnya. Contohnya :
3. Banyak ke banyak (n : n)
Maksudnya, setiap entitas di entitas yang satu dapat berhubungan
dengan banyak entitas di entitas yang lainnya, begitu pula
sebaliknya. Contohnya :
Selain 4 konsep utama diatas, dalam ERD juga ada beberapa hal lain
yang perlu dipahami. Hal-hal itu adalah:
1.
Entitas Lemah
Prinsip entitas lemah sama seperti atribut derivatif. Entitas lemah
ini merupakan entitas yang bergantung pada entitas lainnya, dan
entitas ini tidak mempunyai atribut primary key. Primary key pada
entitas lemah ada 2 yaitu:
- primary key pada entitas yang kuat
- diskriminator → (primary key-nya entitas lemah)
Lambang dari entitas lemah yaitu : double persegi panjang
2.
Spesialisasi dan Generalisasi
- Spesialisasi → proses top-down → membuat subgrouping dari satu
entitas, sehingga mempunyai
entitas dan atribut lain yang berbeda.
- Generalisasi → proses bottom-up → merupakan kebalikan
spesialisasi, dari adanya subgroup
subgroup yang berbeda kemudian di cari entitas umum yang mewakili 2
himpunan entitas tersebut.
Kedua hal ini dilambangkan dengan segitiga berlabel IS A :
Contohnya :
3.
Agregasi
Agregasi → yaitu membuat kardinalitas dari suatu ERD yang
entitasnya tidak bisa dibagi lagi. ERD tersebut dibungkus dengan
lambang kotak persegi panjang. Contohnya :
4.
Skema ER ke Tabel
Setelah kita bisa membuat yang namanya ERD, kita juga harus bisa
merubahnya kedalam sebuat tabel, agar data-data dari tiap entitas dan
atribut bisa dengan mudah dilihat oleh user. Syarat-syarat umumnya
yaitu :
- Setiap entitas (yang kuat maupun lemah) → akan menjadi tabel
- Setiap atribut → akan menjadi kolom dalam tiap tabel
- Kardinalitas relasi :
- apabila n:n → akan menjadi tabel dengan
adanya foreign key
- apabila 1:1/1:n/n:1 → tidak menjadi tabel
Contohnya seperti gambar dibawah ini :
3. NORMALISASI
Selain ERD, di dalam basis data ada yang namanya normalisasi. Kenapa
harus ada normalisasi ?? Soalnya,
dalam basis data ada kemungkinan data yang sama, jadi bisa disebut
data tersebut tidak normal, kurang lebih seperti itu. Jadi kita bisa
tau kan arti normalisasi apa??
Ya, Normalisasi
adalah proses pembentukan struktur basis data sehingga sebagian besar
ambiguitas data / kerangkapan data bisa dihilangkan.
Normalisasi dibuat dengan tujuan :
1. Menghilangkan kerangkapan data
2. Mengurangi kompleksitas
3. Mempermudah pemodifikasian data
Tahapan normalisasi ada enam, yaitu
: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 6NF
Tapi pada umumnya, tahap normalisasi cuma sampai tahap 3NF, jarang
banget yang sampai 5NF. Jadi di pembahasan yang terakhir ini, hanya
akan dibahas sampai 3NF aja ya.....
1. 1NF (setelah menghilangkan perulangan group)
Di normal ke 1 ini, syaratnya yaitu:
- tidak boleh ada atribut multivalued (tau kan atribut
multivalued?? kayak yang udah dijelasin diatas).
- tidak boleh ada atribut komposit (ini juga tau kan?? udah
dijelasin diatas juga, hehe)
- setiap atribut harus bernilai atomic (tidak dapat dibagi-bagi lagi)
Contoh atribut multivalued dan penormalannya :
Kolom hobi, nilainya lebih dari satu, jadi harus didekomposisi
menjadi :
- Tabel mahasiswa
- Tabel hobi
Contoh atribut komposit dan penormalannya :
KodeMK
|
NamaMK
|
Dosen
|
Kelas
|
Jadwal
|
Kolom jadwal bisa dipecah lagi kan, sehingga dinormalkan menjadi:
KodeMK
|
NamaMK
|
Dosen
|
Kelas
|
JadwalHari
|
JadwalJam
|
2. 2NF (setelah menghilangkan ketergantungan parsial)
Di normal ke 2 ini, syaratnya yaitu :
- sudah normal tahap 1
- tidak boleh ada ketergantungan parsial (ada atribut yang bergantung
hanya pada satu atribut kunci, tetapi di tabel tersebut ada lebih
dari satu atribut kunci, (nanti jadi bingung...makanya harus
dipisah))
- harus functional dependency (semua atribut yang bukan kunci hanya
boleh bergantung kepada atribut kunci aja, ga boleh bergantung sama
atribut non-kunci)
- harus ada tabel penghubung atau ada foreign key
bagi atribut-atribut yang telah dipisah tadi
Contoh penormalan tahap 2:
nim
|
mhs_nama
|
mhs_alamat
|
mk_kode
|
mk_nama
|
mk_sks
|
nilai
|
Tabel diatas terdapa 2 primary key (nim dan mk_kode) serta ada kolom
nilai yg harus dipisah dari semuanya. Jadi functional dependency-nya:
Tabel mahasiswa
nim
|
mhs_nama
|
mhs_alamat
|
Tabel mata_kuliah
mk_kode
|
mk_nama
|
mk_sks
|
Tabel nilai
nim
|
mk_kode
|
nilai
|
3. 3NF (setelah menghilangkan ketergantungan transitif)
Di normal ke 3 ini, syaratnya yaitu :
- sudah normal tahap 2
- tidak ada ketergantungan transitif (yaitu atribut
bukan kunci tergantung pada atribut
bukan kunci lainnya)
Contoh penormalan tahap 3:
nrp
|
nama
|
alm_jalan
|
alm_kota
|
alm_provinsi
|
alm_kodepos
|
Tabel diatas ada atribut non-primary key terhadap atribut non-primary
key lainnya yaitu alm_kodepos, jadi harus di dekomposisi menjadi:
Tabel mahasiswa
nrp
|
nama
|
alm_jalan
|
alm_kodepos
|
Tabel kodepos
alm_kodepos
|
alm_provinsi
|
alm_kota
|
Oke seperti itu mungkin pembahasan yang bisa saya jelasin... Biarin
blog-nya jelek, tapi insyaallah isinya ngga... (saolnya saya buat
dengan sepenuh hati nih..... hehe)
Sekian dulu ya dari
saya, semoga bisa bermanfaat untuk semua para pembaca. Jangan lupa
komen kalau ada kritik atau saran, ditunggu bro komennya!!!!
References :
1. Diktat IK 330 Basis Data oleh Dosen : Budi Laksono Putro (budi.staf.upi.edu)
2. Catatan dan tugas(ERD) pribadi dan kelompok basis data
3. Powerpoint normalisasi oleh Dosen : Budi Laksono Putro (budi.staf.upi.edu)
4. Catatan Kuliah Analisis dan Perancangan Sistem [ Ida Ayu Y. Primashanti] (http://datatik.files.wordpress.com/2010/01/materi-erd.pdf)
5. Website of Computer Science, Indonesian University of Education (cs.upi.edu)