Minggu, 01 Juni 2014

Yuk Belajar BASIS DATA!

Pada kesempatan kali ini saya akan menjelaskan apa itu Basis Data dan apa saja yang dipelajari dalam Basis Data.

A.   PENGENALAN BASIS DATA

1.       Pengertian Basis Data
Sebelum berbicara pengertian Basis Data kita perlu tahu dulu apa definisi-definisi dalam Basis Data.
·         Data
Data adalah representasi untuk mewakili fakta di dunia nyata. Representasi dapat berupa nilai numerik, alphabet, suara, video dll. Fakta di dunia nyata dapat berupa barang, kejadian, aktivitas dan semua kejadian yang ada di dunia nyata.
·         Informasi
Informasi adalah data yang dikelola dalam bentuk tertentu untuk memberikan makna atau arti bagi penerimannya.
·         Basis
Basis adalah sebuah sistem dimana sistem tersebut meliputi input -> proses -> output
·         Basis Data
Basis data sendiri dapat di definisikan dalam sejumlah sudut pandang
seperti :
a.       Himpunan kelompok data/arsip yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat & mudah.
b.      Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan/penumpukan (redundansi), untuk memenuhi berbagai kebutuhan.
c.       Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis.
2.       Tujuan dibangunnya Basis Data
Tujuan dibangunnya basis data adalah sebagai berikut :
•  Kecepatan & kemudahan (speed)
•  Efisiensi ruang penyimpanan (space)
•  Keakuratan (accuracy)
•  Ketersediaan (availability)
•  Kelengkapan (completeness)
•  Keamanan (security)
•  Kebersamaan pemakaian (sharability)
3.       Sistem Basis Data (DBMS)
Perangkat lunak  yang digunakan untuk mengelola dan memanggil query basis data 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
Sistem basis data adalah sistem yang terdiri atas kumpulan file-file yang saling berhubungan dan dikelola oleh  program (DBMS) yang memungkinkan beberapa pemakai dan atau program lain yang memiliki otoritas untuk mengakses dan memanipulasi data tersebut.  Kelebihan pemakaian 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)
4.       Basis Data Relasional
Model Relasional merupakan model yang paling sederhana sehingga mudah digunakan dan dipahami oleh pengguna. Model ini menggunakan sekumpulan tabel berdimensi dua ( yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut. DBMS yang bermodelkan relasional biasa disebut RDBMS (Relational Data Base Management System). Model database ini dikemukakan pertamakali oleh EF codd, seorang pakar basisdata.  Model ini sering disebut juga dengan database relasi.
5.       Bahasa Basis Data
Terdapata beberapa bahasa Basis Data sebagai berikut :
·         Data Definition Language (DDL)
DDL adalah perintah-perintah yang biasa digunakan oleh pengguna basis
data untuk mendefinisikan skema ke DBMS. 
·         Interactive Data Manipulation Language (DML)
DML adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan mengambil data pada basis data.
·         Transaction control
Transaction control  adalah bahasa basis data yang mengatur transaksi yang dilakukan oleh Data Manipulation Language (DML).
·         Embedded and Dinamic SQL, contoh C,C++,Java, Cobol, Pascal, etc.

·         Authorization, untuk mendefinisikan hak akses spesifik terhadap objekobjek basis data.

A.   ENTITY RELATIONSHIP MODEL
1.       Pengertian
Model Entity-Relationship adalah model data konseptual tingkat tinggi untuk perancangan basis data. Model data konseptual adalah himpunan konsep yang mendeskripsikan struktur basis data, transaksi pengambilan dan pembaruan basis data.
2.       Komponen-Komponen Utama ER
Komponen-komponen utama ER adalah :
·         Entitas
Entity  merupakan  objek  yang  dapat  dibedakan  dengan  yang  lain  dalam  dunia  nyata  . Dalam entity ada yang disebut sebagai Entity set yaitu kumpulan dari entity yang sejenis.

Contoh: tempat (ruangan , kantor, rumah, dll),kendaraan (mobi, motor, becak, dll)
Entitas baisa direpresentasikan dalam bentuk persegi panjang.
Misal :
-  Entitas Mobil



·         Atribut
Atribut adalah karakteristik dari entity  atau  relationship,  yang menyediakan  penjelasan detail  tentang  entiy  atau  relationship  tersebut  .  atribut  dalam  ERD  digambarkan  dalam bentuk oval.
Jenis Key :
-  Super Key
-  Candidat Key
-  Primary Key


·         Relasi
Relasi adalah hubungan yang terjadi antara satu atau lebih entity. Relasi pada ERD biasa digambarkan dalam bentuk belah ketupat.

Misal :


·         Kardinalitas
Kardinalitas  relasi  menunjukkan  jumlah  maksimum  entitas  yang  dapat  berelasi dengan  entitas pada himpunan entitas lain.


Hubungan Kardinalitas dengan transformasi ERD ke tabel serta foreign key
Ø  Foreign Key
Foreign  Key adalah  Sebuah  kumpulan  field  dalam  satu  relasi  yang  digunakan untuk  me“refer”  (menunjuk)  ke  suatu  baris  (tuple)  pada  relasi  yang  lain  (harus berkorespondensi dengan primary key pada relasi yang kedua).Foreign Key  Akan terjadi pada suatu relasi yang memiliki kardinalitas one to many atau many to many.
Ø  Transformasi ERD ke Tabel
Model   Entity  Relationship   (ER)  yang  disajikan  dengan  Diagram  ER  (biasa disebut  dengan  ERD)  bukanlah  sebuah  basis  data  relasional.  Karena  itu,  maka diperlukan  proses  transformasi  dari  sebuah  ERD  menjadi  suatu   basis  data relasional  lengkap  dengan  tabel-tabel  (atau  relasi).  Rancangan  basis  data relasional  hasil  transformasi  sendiri  bergantung  kepada  desain  awal  ERD  yang telah dibuat. Pada ERD terdapat 3 jenis kardinalitas,  yaitu One To One, One To Many, dan Many To Many.

a.       One to one
Relasi tabel one-to-one (satu-satu) adalah relasi 2 tabel dengan primary key (pk) dan foreign key(fk). Ini dilakukan dengan meletakkan kolom one-to-one ke  tabel  baru.  Sebetulnya  relasi  ini  jarang  digunakan.  Namun  ada  beberapa alasan relasi ini digunakan :
-          Memindahkan data ke tabel lain memungkinkan untuk membuat query yang lebih cepat.
-          Mengisolasi dan menghindarkan nilai NULL pada tabel utama.
-          Membuat sebagian data susah diakses


Contoh :



Maka apabila di transformasikan ke dalam tabel sebagai berikut :
Dosen : id_dosen, id_matkul,kode_dosen, nama_dosen.
MataKuliah : id_matkul, id_dosen, kode_matkul, nama_matkul.
Keterangan : Tambahkan primary key pada setiap entitas ke setiap pasangan.
b.      One to many
Relasi  One  to  Many  (satu  ke  banyak)  terjadi  apabila  sebuah  data  yang  ada pada tabel pertama memiliki beberapa data yang sama pada tabel kedua. Pada relasi ini hanya diizinkan sebuah data pada tabel pertama dan tabel kedua boleh memiliki beberapa data yang sama dengan tabel pertama.
Contoh :


Maka, apabila ditransformasi ke tabel menjadi :
Pegawai : id_pegawaai, nama , jabatan
Mobil : plat_nomor, jenis, merk ,warna

Keterangan :
Primary key pada tabel One (Pegawai) akan  menjadi foreign key pada tabel Many (Mobil).
Foreign key adalah sebuah kumpulan field dalam satu relasi  yang digunakan untuk  me“refer”  (menunjuk)  ke  suatu  baris  (tuple)  pada  relasi  yang  lain (harus berkorespondensi dengan primary key pada relasi yang kedua).
c.       Many to many
Relasi many to many (banyak ke banyak) terjadi apabila sebuah data yang ada pada tabel pertama memiliki beberapa data yang sama pada tabel kedua, dan sebuah  data  yang  ada  pada  tabel  kedua  juga  memiliki  beberapa  data  yang sama pada tabel pertama. Pada relasi ini, tabel pertama dan kedua diizinkan memiliki beberapa data yang sama dengan kedua tabel tersebut.
Contoh :


Maka, apabila ditransformasikan pada tabel adalah sebagai berikut :
Mahasiswa : id_mahasiswa, nim, nama
Mata_Kuliah: id_matkul,kode_matkul, nama_matkul, kode_dosen
Mengambil : id_mahasiswa, id_matkul

Keterangan :
Pada  relasi  Many  To  Many  ini  tabel  relasi  akan  dibuat  menjadi  tabel  dan atributnya  adalah  primary  key  dari  masing-masing  tabel  yang  berelasi.
Primary key pada tabel relasi akan menjadi foreign key.
3.       Diagram ER
Merupakan diagram model konseptual untuk menggambarkan struktur logis dari basisdata berbasis grafis.


Notasi yang digunakan di Diagram ER adalah :
Garis    : Link yang menghubungkan atara Entitas dengan atribut, dan entitas dengan relasi atau entitas
Elips dobel   : Menunjukkan atribut yang multivalued
Elips dengan garis terputus : Menunjukkan atribut turunan

4.       Tahapan Pembuatan ER Diagram
Dapat disimpulkan untuk membuat ER Diagram, dapat mengikuti urutan tahapan berikut:
1.  Mengidentifikasikan dan menetapkan seluruh himpunan entity yang akan terlibat.
2.  Menentukan atribut-atribut dari setiap entity.
3.  Menentukan atribut primary key dari setiap entity.
4.  Menentukan relationship antar entity.
5.  Menentukan atribut-atribut dari setiap relationship (jika ada).
6.  Menentukan Cardinality Rasio.
7.  Menentukan Participation Constraint.

C.    KONVERSI ER KE BASIS DATA REALTIONAL
1.       Entitas Lemah
Secara umum, Himpunan Entitas Lemah tidak memiliki primary key dan selalu bergantung pada entitas lain. Notasi entitas lemah digambarkan dengan double persegi panjang, sedangkan relasi untuk himpunan entitas lemah digambarkan dengan double diamond. Diskriminator / key parsial adalah atribut – atribut yg dpt membedakan entitas – entitas yang terdapat di himpunan entitas lemah.
                Contoh Entitas Lemah :
          




2.       Spesialisasi dan Generalisasi
Spesialisasi  merupakan proses desain  top-down  dengan mendesain subgrouping didalam didalam himpunan entitas yang berbeda dari himpunan entitas.

Contoh Spesialisasi :








Generalisasi  merupakan proses desain  bottom-up  dengan mengkombinasikan jumla himpunan entitas yang digunakan secara bersama sama. Spesialisasi dan generalisasi sama-sama digambarkan dengan notasi IS, A, yang membedakan adalah sudut pandangnya saja. Jika Spesialisasi kita mendefinisikan entitas secara umum kemudian mencari subgroup dari entitas tersebut, tetapi generalisasi memandang sebaliknya, dari adanya subgroup-subgroup  yang berbeda kemudian di cari entitas umum yang mewakili 2 himpunan entitas tersebut.
3.       Agregasi
Agregasi adalah enkapsulasi dari entitas entitas yang berelasi (*n-n). Pada umumnya terbentuk dari kardinalitas relasi banyak ke banyak. Didalam konsep  agregasi  terdapat istilah enkapsulasi relasi dari kedua entitas. Enkapsulasi di perlukan karena kedua himpunan entitas yang ber-relasi tersebut merupakan 1 kesatuan yang tidak bisa di pisah. Notasi agregasi di gambarkan dengan gambar persegi panjang yang membungkus himpunan entitas yang saling ber-relasi.
                







               
4.       Ringkasan notasi simbol di ER













5.       Skema ER ke Tabel
Penurunan skema dimaksudkan untuk mengubah sebuah konsep hubungan entitas dan relasi kedalam bentuk fisik tabel tabel yang berelasi.  Inti dari Entity Relationship adalah menggambarkan hubungan di dunia nyata kedalam bentuk entitas entitas yang saling ber-relasi, dari diagram ini bisa di buat kedalam bentuk tabel yang langsung di implementasikan kedalam basis data.
Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai berikut :
•  Setiap himpunan entitas menjadi Tabel (* baik himpunan entitas kuat
atau lemah)
•  Setiap atribut menjadi kolom di tabel
•  Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk (*
akan di bahas di bawah lebih detail)
6.       Representasi Atribut menjadi  Kolom













7.       Representasi Himpunan Entitas sebagai Tabel








Himpunan entitas lemah akan menjadi tabel tersendiri yang didalamnya ada kolom primary key yang merupakan identifikasi dari himpunan entitas kuat. Contoh di bawah menggambarkan himpunan entitas lemah di turunkan kedalam tabel.

















8.       Representasi Relasi (* pada kardinalitas N to N)











Hubungan kardinalitas dengan tabel yang terbentuk
Kardinalitas relasi dari Himpunan Entitas yang saling ber-relasi akan menentukan banyaknya tabel yang bisa di buat. Adapun aturannya sebagai berikut :
•  1 ke 1
Pilih primary key di 1 himpunan entitas untuk menjadi foreign key bagi himpunan entitas yang lain.
•  1 ke banyak / banyak ke 1
Primary key pada Tabel berkardinalitas sedikit menjadi foreign key pada tabel berkardinalitas banyak.
•  Banyak ke banyak
Digambarkan pada bab 3.7.1

9.       Representasi Agregasi
Untuk merepresentasikan agregasi, buatlah tabel yang terdiri dari :
– Foreign key dari himpunan entitas yang berhubungan.
– Setiap atribut deskriptif.
– Atribut baru untuk primary key di tabel relasi.


















D.   NORMALISASI
1.       Pengertian
Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi). Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.
2.       Tujuan Normalisasi
·         Untuk menghilang kerangkapan data.
·         Untuk mengurangi kompleksitas.
·         Untuk mempermudah pemodifikasian data.
3.       Tahap Normalisasi













4.       Bentuk-Bentuk Normal
·         Bentuk Normal Tahap Pertama (1st Normal Form / 1NF).
·         Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF).
·         Bentuk Normal Tahap (3rd Normal Form / 3NF).
·         Boyce-Code Normal Form (BCNF).
·         Bentuk Normal Tahap (4th Normal Form / 4NF).
·         Bentuk Normal Tahap (5th Normal Form / 5NF)
5.       Normal Pertama (1st Normal Form)
Aturan :
ü  Tidak adanya atribut multi-value, atribut komposit atau kombinasinya.
ü  Mendefinisikan atribut kunci.
ü  Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi).
Contoh 1 :
Misal data mahasiswa sbb:






                Atau :

                



                Tabel-tabel di atas tidak memenuhi syarat 1NF
                Didekomposisi menjadi:
·         Tabel Mahasiswa


·         Tabel Hobi


                Contoh 2 :
JadwalKuliah
Kodekul 
NamaKul
Dosen
Kelas
Jadwal
               
               

Ø  Dimana nilai pada atribut jadwal berisi gabungan antara Hari dan Jam.
Ø  Jika asumsi hari dan jam memegang peranan penting dalam sistem basis data, maka atribut Jadwal perlu dipisah sehingga menjadi JadwalHari dan JadwalJam sbb:


6.       Normalisasi Kedua (2nd Normal Form)
Aturan :
ü  Sudah memenuhi dalam bentuk normal kesatu (1NF).
ü  Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci.
ü  Jika ada ketergantungan  parsial maka atribut tersebut harus dipisah pada tabel yang lain.
ü  Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi.
Contoh :
                Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
                

Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan:
                {Mhs_nrp, mk_kode}       à/      mhs_nama
                {Mhs_nrp, mk_kode}    à/         mhs_alamat
                {Mhs_nrp, mk_kode}    à/         mk_nama
                {Mhs_nrp, mk_kode}   à/          mk_sks
                {Mhs_nrp, mk_kode}       à        nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Functional dependencynya sbb:
{Mhs_nrp, mk_kode}  à    nihuruf                               (fd1)
Mhs_nrp                        à    {mhs_nama, mhs_alamat}      (fd2)
Mk_kode                       à    {mk_nama, mk_sks}          (fd3)

fd1         (mhs_nrp, mk_kode, nihuruf)                   à Tabel Nilai
fd2         (Mhs_nrp, mhs_nama, mhs_alamat)      à Tabel Mahasiswa
fd3         (mk_kode, mk_nama, mk_sks) à Tabel MataKuliah
7.       Normalisasi Ketiga (3rd Normal Form)
Aturan :
ü    Sudah berada dalam bentuk normal  kedua (2NF)
ü   Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung  pada atribut bukan kunci lainnya).
Contoh :
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa


Karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos) :


Sehingga tabel tersebut perlu didekomposisi menjadi :
Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
Kodepos (alm_kodepos, alm_provinsi, alm_kota)


Mungkin segini saja pembahasan Basis Data semoga menjadi bermanfaat dan terimakasih J

Referensi :
- DIKTAT KULIAH IK 330 - BASIS DATA. Budi Laksono Putro. Ilmu Komputer-Universitas Pendidikan Indonesia.
- Modul Basis Data : DDL dan ERD. Tim Asisten Basis Data 2014. Ilmu Komputer-Universitas Pendidikan Indonesia.
- Modul Basis Data : Normalisasi. Tim Asisten Basis Data 2014. Ilmu Komputer-Universitas Pendidikan Indonesia.

Link Address :
http://budi.staf.upi.edu/
http://cs.upi.edu