Tampilkan postingan dengan label Basis Data. Tampilkan semua postingan
Tampilkan postingan dengan label Basis Data. Tampilkan semua postingan

Selasa, 16 November 2010

Perancangan Database

DATA  & INFORMASI

Menurut Turban, Aronson dan Liang (2005) data dan informasi didefinisikan sebagai berikut :
  • Data, merupakan sesuatu yang menyangkut barang, kejadian, aktivitas, dan transaksi yang telah tercatat, diklasifikasikanm dan disimpan namun belum memiliki makna. Data dapat berupa nilai numerik, alphanumeric, gambar dan suara.
  • Informasi, adalah data yang telah dikelola dalam bentuk tertentu untuk memberikan makna atau arti bagi penerimanya.
PENTINGNYA DATA & INFORMASI
  • Data dan informasi sebagai sebuah asset penting perusahaan/organisasi
  • Informasi yang benar dapat menjadikan suatu perusahaan/organisasi memperoleh margin untuk melakukan aksi
  • Data dan informasi sebagai salah satu parameter kemajuan perusahaan/organisasi (maturity level)

SISTEM BASIS DATA & SISTEM FILE

Pada sebuah institusi, data merupakan salah satu hal yang sangat penting. Setiap bagian/divisi dari institusi memiliki data sendiri-sendiri. Tapi setiap bagian membutuhkan sebagai data dari bagian yang lain. Hal ini yang biasa dikenal sebagai “shared data”. Setiap divisi memiliki aplikasi sendiri-sendiri dalam melakukan manipulasi dan pengambilan data tersebut. Setiap aplikasi memiliki file-file dalam system operasi yang digunakan untuk menyimpan data-data. Seiring dengan berkembangnya institusi, bertambahnya bagian/divisi, bertambah pula data dan aplikasi yang digunakan. Bertambahnya aplikasi, bertambah pula file-file yang dibuat.
Gaya system pemrosesan-file tersebut menyebabkan setiap data disimpan dalam bentuk record dalam berbagai macam file, dan diperlukan aplikasi yang berbeda dalam melakukan pengambilan record dari, dan penambahan record ke dalam file. Hal ini berlaku pada masa sebelum adanya Sistem Basis Data (DBMS).

Kekurangan Sistem File :

1. Data Redundancy & inconsistency
Dikarenakan programmer yang berbeda membuat file dan aplikasi masing-masing , menyebabkan beragam format dan aplikasi yang dibuat, karena aplikasi dibuat menggunakan bahas pemrograman yang berbeda-beda. Lebih jauh lagi, data atau informasi yang sama bias terdapat dalam beberapa file yang berbeda. Ini disebut dengan redundancy. Redundancy data akan menyebabkan inconsistency data.
2. Kesulitan dalam pengaksesan data
Dikarenakan setiap aplikasi memiliki file tersendiri untuk penyimpanan dan pengambilan data, maka jika suatu bagian dari institusi membutuhkan data dari bagian lain, akan menemui kesulitan. Hal ini dikarenakan aplikasi yang dimiliki bagian tersebut, tidak dapat membaca file yang terdapat dibagian lain.

3. Isolasi data
Dikarenakan data tersebar dalam berbagai macam file dan file tersebut dalam beragam format, pembuatan aplikasi baru akan terasa sulit ketika harus membaca format dari masing-masing file tersebut.

4. Masalah Integritas
Data yang disimpan harus memenuhi hal yang dinamakan dengan consistency constraint. Jika sebuah constraint berubah, maka seluruh aplikasi yang digunakan harus mengakomodasinya. Masalah akan muncul, jika constraint melibatkan beberapa data dari file yang berbeda-beda.

5. Masalah Keamanan
Tidak semua pengguna dari basis data dapat mengakses semua data. Hal ini akan sulit dilakukan jika menggunakan gaya penyimpanan data dalam file.


DEFINISI BASIS DATA & SISTEM BASIS DATA (DBMS)

Basis data adalah penyimpanan kumpulan informasi secara sistematik dalam sebuah computer sehingga dapat diperiksa menggunakan suatu program computer untuk memperoleh informasi dari basis data tersebut.

Perangkat lunak yang digunakan untuk mengelola dan memanggil query basis data disebut sistem manajemen basis data (Database Management System – DBMS).

Kelebihan DBMS:

1.    Data berdiri sendiri (data independence)
2.    Pengaksesan data efisien (efficient data access)
3.    Integritas data dan keamanan jaringan (data integrity and security)
4.    Administrasi data (data administration)
5.    Dapat diakses bersamaan (Concurrent access)
6.    Recovery saat terjadi kegagalan (crash recovery)
7.    Mengurangi waktu pembangunan aplikasi (reduced application development time)

Komponen DBMS :

•    Perangkat keras
•    Sistem operasi
•    Basis data
•    DBMS
•    Pemakai
•    Aplikasi lain

ABSTRAKSI DATA

Tujuan utama  sistem basis data : menyediakan fasilitas view data secara abstrak bagi penggunanya. Abstraksi data merupakan level dalam bagaimana melihat data dalam sebuah sistem basis data. Tiga level abstraksi data :

1. Level Fisik
Merupakan level terendah pada abstraksi data yang menunjukkan bagaimana sesungguhnya data disimpan. Pada level ini pemakai melihat data sebagai gabungan dari struktur dan datanya sendiri.

2. Level Logik
Merupakan level berikutnya dari abstraksi data, menggambarkan data apa yang disimpan pada basis data dan hubungan apa saja yang ada di antara data tersebut.

3. Level View
Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis data. Banyak user dalam sistem basis data tidak akan terlibat dengan semua data atau informasi yang ada atau yang disimpan. Para user umumnya hanya membutuhkan sebagian data atau informasi dalam basis data yang kemunculannya di mata user diatur oleh aplikasi end user.


MODEL BASIS DATA


• 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.

• Network
Relationship dibuat menggunakan linked list (pointer). Berbeda dengan model hierarchical satu anak dapat memiliki beberapa induk. Model ini memiliki fleksibilitas yang tinggi.

• 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.

• Object Oriented
Object Oriented Database adalah sebuah system database yang menggabungkan semua konsep object oriented seperti pewarisan, abstraksi, enkapsulasi, dll. Model ini dapat berinteraksi dengan baik  dengan bahasa pemrograman berorientasi objek sepeti Java dan C++.


E-R MODEL (Lanjutan)

SINGLE-VALUED ATTRIBUTE (Atribut Bernilai Tunggal)Atribut Bernilai Tunggal ditujukan pada atribut-atribut yang memiliki paling banyak satu nilai untuk setiap baris data.

Contoh:
Pada tabel Mahasiswa, NIM, NmMhs (Nama Mahasiswa) dan AlmtMhs (Alamat Mahasiswa), merupakan atribut bernilai tunggal, karena atribut-atribut tersebut hanya dapat berisikan satu nilai.

MULTI-VALUED ATTRIBUTE (Atribut Bernilai Banyak)
Atribut bernilai banyak ditujukan pada atribut-atribut yang dapat kita isi dengan lebih dari satu nilai, tetapi jenisnya sama.

Contoh:
Atribut hobby pada tabel Mahasiswa, termasuk atribut bernilai banyak, karena kecenderungan seorang mahasiswa memiliki lebih dari satu hobby.


Tabel MAHASISWA


DERIVED ATTRIBUTE (Atribut Turunan)
Atribut Turunan adalah atribut yang nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut atau tabel lain yang berhubungan.


CATATAN: Angkatan sebenarnya dapat diambil dari NIM, karakter ke 3 dan 4.


SIMPLE ATTRIBUTE (Atribut Sederhana) dan COMPOSITE ATTRIBUTE (Atribut Komposit)
Atribut Sederhana adalah atribut atomik yang tidak dapat dipilah lagi, sedangkan atribut komposit merupakan atribut yang masih dapat diuraikan lagi menjadi sub-sub atribut yang masing-masing memiliki makna.





CATATAN: penggunaan atribut komposit, biasanya didasarkan pada pengolahan data pada tabel

Membangun Diagram ERD


Entity Relationship Diagram merupakan suatu alat utama pemodelan data dan membantu menggambarkan data ke dalam entitas dan hubungan antar entitas. Proses ini telah terbukti memungkinkan seorang analis untuk menghasilkan suatu struktur database yang baik, sehingga data dapat disimpan dan dimunculkan kembali secara efisien.

Cara membuat atau mendesign Entity Relationship Diagram:

1. Identifikasi EntitasIdentifikasi peran, kejadian/kegiatan, lokasi, hal abstrak/konsep yang datanya disimpan oleh end-user
2. Tentukan Relationship      Tentukan hubungan antara sepasang entitas menggunakan relationship matriks.
3. Gambar “KASAR” ERDGambarkan entitas-entitas dan relationship diantara entitas untuk menghubungkannya.
4. Tentukan kardinalitasTentukan kardinalitas (pemunculan sutau entitas di entitas lainnya yang berhubungan)
5. Tentukan Primary KeyIdentifikasi atribut data yang secara “unik” mengidentifikasi setiap entitas
6. Gambar ERD berdasar atribut kunciSertakan primary key di setiap entitas
7. Identifikasi atribut lainnyaKumpulkan informasi detil yang penting dalam sistem yang sedang di kembangkan.
8. Petakan atributUntuk setiap atribut, letakkan dalam satu entitas yang tepat. Cari juga atribut yang ada dalam relationship.
9. Gambarkan ERD lengkap dengan atribut   Sesuaikan ERD hasil langkah 6 dengan entitas atau relationship hasil langkah 8
10. Periksa hasilApakah Entity Relationship Diagram akhir telah secara tepat mencerminkan data sistem ?


Contoh Kasus:

Sebuah perusahaan memiliki beberapa departemen. Setiap departemen terdiri dari seorang supervisor dan paling sedikit satu orang pegawai.
Pegawai dapat bekerja paling tidak di satu departemen, tapi mungkin juga lebih dari satu departemen.
Sedikitnya satu orang pegawai diikutsertakan dalam sebuah proyek, seorang pegawai mungkin berlibur dan tidak diikutsertakan dalam proyek apapun. Field data yang penting adalah nama departemen, proyek, supervisor, dan pegawai, serta no.supervisor, no.pegawai, dan no.proyek sebagai key.


Langkah penciptaan ERD:

1. Identifikasi Entitas
    Entitas dalam sistem ini adalah Departemen, Pegawai, Supervisor dan Proyek. Seseorang mungkin saja membuat Perusahaan sebagai sebuah entitas, tetapi ini adalah entitas yang salah, karena hannya memiliki satu instance dalam permasalahan ini. Entitas yang benar harus memiliki lebih dari satu instance.

2. Tentukan Relationship
    Matriks Relasi Entitas:



3. Gambar “KASAR” ERD
    Kita menghubungkan entitas yang mempunyai relasi seperti yang ditunjukkan pada matriks relasi entitas.


4.  Tentukan Kardinalitas
      Berdasarkan deskripsi permasalahan, dapat diketahui bahwa:
  • Setiap Departemen dipimpin oleh satu Supervisor
  • Seorang Supervisor hanya memimpin satu Departemen
  • Setiap Departemen memiliki paling sedikit satu Pegawai 
  • Setiap Pegawai bekerja paling sedikit pada satu Departemen
  • Setiap Proyek paling sedikit melibatkan satu orang Pegawai
  • Seorang Pegawai dapat terlibat dalam beberapa Proyek atau bahkan tidak sama sekali.


5. Tentukan Kunci utama (Primary-Keys)
Kunci utama (primary keys) adalah Nama Departemen (NmDept), Nomor Supervisor (NoSpv), Nomor Pegawai (NoPeg)  dan Nomor Proyek (NoPryk)

6. Gambar ERD berdasarkan kunci




7. Menentukan  Atribut
Atribut yang diperlukan adalah Nama Departemen, Nama Proyek, Nama Supervisor, Nama Pegawai selain Primary Keys.


8. Pemetaan  Atribut


9. Gambar ERD dengan Atribut


Jika ada suatu relationship (hubungan antara 2 entitas) yang tidak digambarkan atributnya, hal ini berarti relationship tersebut hanya memiliki atribut minimal, yaitu atribut yang berasal dari key atribut 2 entitas yang dihubungkannya.

Contoh:

Dalam contoh tersebut tidak digambarkan adanya atribut dalam relationship “mendapat”. Hal ini berarti relationship “mendapat” hanya memiliki atribut minimal, yaitu NIP dan NoSK.

10. Periksa Hasil
Lakukan pemeriksaan terhadap ERD, bila tidak ada koreksi maka ERD akhir yang ada telah dapat memodelkan data dalam sistem dengan baik.

ENTITY RELATIONSHIP DIAGRAM (ERD)

Penyusunan basis data (database) selalu didahului dengan pekerjaan pemodelan data. ERD adalah suatu model jaringan yang menggunakan susunan data yang disimpan dalam sistem secara abstrak. Model data E-R (Entity Relationship) didasarkan pada persepsi terhadap dunia nyata yang tersusun atas kumpulan objek-objek dasar yang disebut entitas dan relasi.

Diagram hubungan entitas (model E-R) tidak menyatakan bagaimana memanfaatkan data, membuat data, menghapus data dan mengubah data.

Elemen-elemen ERD:

1. Entity (Entitas)
Entity (entitas) adalah sesuatu apa saja yang ada di dalam sistem, nyata maupun abstrak di mana data tersimpan atau di mana terdapat data.

Entitas diberi nama dengan kata benda dan dapat dikelompokkan dalam 4 (empat) kelas, yaitu: role (peran), events (kejadian), locations (lokasi), tangible things / concepts (sesuatu yang tidak nyata / konsep). Contoh: pegawai, pembelian, kampus, buku, pembayaran. Contoh detil dari suatu entity (entitas) disebut instance. Contoh: pegawai bernama Dodo, Noni, Citra, dll…

2. Relationship
Relationship adalah hubungan alamiah yang terjadi antara entitas. Contohnya: Entitas Mahasiswa dengan NIM = “14534” dan NamaMhs = “Dodo” yang mempunyai relasi dengan Entitas Kuliah dengan KodeKul = “SI-140” dan NamaMK = “Basis Data”, sehingga struktur data dari Relasi ini bahwa mahasiswa tersebut mengambil mata kuliah pada suatu perguruan tinggi.

Hubungan antara entitas akan menyangkut dua komponen yang menyatakan jalinan ikatan yang terjadi, yaitu: derajat (kardinalitas) dan partisipasi hubungan.

3. Atribut
Deskripsi kelompok data yang mempunyai karakteristik yang sama (data yang mendeksripsikan entity dan relationship), merupakan field yang akan disimpan.



Notasi Entity – Relationship


























Contoh :















KARDINALITAS & PARTISIPASI

1. Cardinality (kardinalitas) menyatakan jumlah anggota entitas yang terlibat di dalam relasi yang terjadi. Dalam hal ini relasi yang terjadi akan membentuk relasi hubungan (relationship instances).  Contoh:

  • Seorang dosen paling banyak mengepalai satu jurusan, tetapi ada dosen yang tidak menjadi ketua jurusan -> relasi one to one (relasi 1:1)
  • Seorang dosen bisa menerima honor beberapa kali, tetapi mungkin juga tidak menerima honor jika ia tidak mengajar -> relasi one to many (relasi 1:M)
  • Seorang customer dapat membeli beberapa barang dan sebuah barang dapat dibeli oleh beberapa customer -> relasi many to many (relasi M:N)


Pasangan antara anggota entitas A dan B dapat dilakukan sesuai dengan derajat hubungannya, yaitu relasi 1:1, 1:M atau relasi M:N


A. Derajat hubungan 1:1
Derajat hubungan 1:1 terjadi bila setiap anggota entitas A hanya boleh berpasangan dengan satu anggota dari entitas B, dan sebaliknya tiap anggota entitas B hanya boleh berpasangan dengan satu anggota dari entitas A.



E-R diagram antara entitas A dan B dengan derajat hubungan 1:1 dilukiskan dengan mencantumkan pada garis hubungan. Sedangkan instance hubungan antar anggota entitas yang terjadi adalah pasangan a2 – b1, a3 – b2 dan a4 – b5. Sedangkan a1, a5, b3 dan b4 masing-masing tidak mempunyai pasangan. Dengan demikian dapat dikatakan bahwa derajat hubungan 1:1 mencakup juga 1:0 dan 0:1


B. Derajat hubungan 1: M
Derajat hubungan ini terjadi bila tiap anggota entitas A boleh berpasangan dengan lebih dari satu anggota entitas B. Sebaliknya tiap anggota entitas B hanya boleh berpasangan dengan satu anggota entitas A.






C. Derajat hubungan M : N
Derajat hubungan antar entitas m:n terjadi bila tiap anggota entitas A dapat berpasangan dengan lebih dari satu anggota entitas B. Sebaliknya setiap anggota entitas B juga dapat berpasangan dengan lebih dari satu anggota entitas A.


2. Partisipasi hubungan (participation) menyatakan sifat keterlibatan tiap anggota entitas dalam relasi terjadinya hubungan. Partisipasi atau keterlibatan tiap anggota entitas dalam membentuk instance hubungan dapat bersifat wajib (mandatory) dan tidak wajib (non mandatory). Dalam pemodelan data, interpretasi jenis partisipasi hubungan dituliskan dalam aturan data. Contoh misal hubungan antara entitas DOSEN dan MATA KULIAH (MK) dengan aturan data sebagai berikut:

  • Setiap dosen harus mengajar satu mata kuliah. Tiap mata kuliah harus diajarkan oleh seorang dosen.

Diagram instance hubungan antar entitas DOSEN dan MK berdasarkan aturan di atas dapat dilukiskan seperti:



Dari diagram di atas dapat dilihat bahwa derajat hubungan antar entitas DOSEN dan MK adalah 1:1. Sedang partisipasi tiap anggota entitas dalam hubungan adalah wajib, baik untuk anggota entitas DOSEN ataupun entitas MK. Gambar digaram E-R nya:


 atau



  • Setiap dosen harus mengajar satu mata kuliah. Tiap mata kuliah mungkin diajarkan oleh seorang dosen dan mungkin belum ada yang mengajar.

atau


  • Seorang dosen harus boleh mengajar satu mata kuliah dan seorang dosen boleh tidak mengajar. Tiap mata kuliah harus diajarkan oleh seorang dosen.

atau

  • Seorang dosen hanya boleh mengajar satu mata kuliah dan boleh tidak mengajar. Tiap mata kuliah hanya boleh diajarkan oleh seorang dosen dan mungkin belum ada yang mengajar.

atau



DIAGRAM E-R

Definisi
Entitas adalah “kata benda” yang merepresentasikan bentuk nyata, misalnya “Nasabah”, “Buku”,  “Penjual”, “pemilik”, “penerbit”, atau sebagai abstraksi seperti “Pesanan”, “rincian pesanan” dan lainnya dalam terminologi software engineering.

Contoh 2 buah entitas yang dinyakan dalam sebuah kotak (boks)







Entitas seperti “karyawan” mempunyai banyak atribut seperti nama, alamat, umur dan sebagainya.

Hubungan  antar  entitas (relationship)
Hubungan antar entitas dinyatakan dalam bentuk 2 arah.

Hubungan apa yang dapat terjadi antara “karyawan” dan “mobil” ?

Antara lain adalah:
- karyawan  mempunyai mobil 
- mobil dimiliki oleh karyawan 
Hubungan tersebut dapat digambarkan sebagai berikut:






KARDINALITAS
Kardinalitas adalah batasan untuk relationship yang menyatakan “berapa banyak” entitas mempunyai relasi satu dengan lainnya.

Kata “berapa banyak” ini diartikan:
0          - bisa tidak ada
1          - Satu
N         - banyak

Diartikan pada 2 entitas diatas adalah sebagai berikut:
  • Karyawan bisa tidak mempunyai mobil (secara matematis mempunyai mobil sebanyak 0 buah)
  • Karyawan mempunyai 1 mobil
  • Karyawan mempunyai lebih dari 1 mobil (banyak)

Untuk menggambarkan sifat dari diagram ER tergantung atas kondisi nyata yang disebut juga sebagai “aturan bisnis” yang ada. Umumnya dapat dijawab dengan pertanyaan sebagai berikut:
  • Haruskah setiap karyawan mempunyai mobil ?
  • Bolehkah seorang karyawan mempunyai lebih dari 1 mobil ?
Pertanyaan di atas melahirkan kerdinalitas minimum dan maksimum pada relasi 2 entitas.








Gambar berikut mengekspresikan:
Seorang karyawan memiliki 0 mobil. Seorang karyawan memiliki banyak mobil




Setiap mobil dimiliki oleh satu orang saja (min=1, max=1)

 

Dapat juga memiliki hubungan:

Setiap karyawan memiliki minimal 1 buah mobil. Setiap mobil dimiliki oleh 1 karyawan

 

Selanjutnya model relationship ini akan diterjemahkan ke dalam schema database (physical).

Atribut merepresentasikan elemen data dari entitas. Menentukan atribut adalah dengan menjabarkan entitas dalam bentuk alur data (data flow) yang didefinisikan melalui DFD (data flow diagram).

Melalui kardinalitas dapat diketahui bahwa setiap atribut mempunyai minimum kardinalitas yaitu 0 atau 1 dan maksimum kardinalitas yaitu 1 atau banyak.

MINIMUM:
0 -> atribut tersebut adalah optional, boleh ada boleh tidak
1 -> atribut tersebut harus ada (NOT NULL)

MAKSIMUM:
1  -> atribut normal   
N -> atribut tersebut melakukan pengulangan (repeating), sehingga proses normalisasi dapat segera
        dilakukan.


Entitas Mobil:
      

NoPolisi
1:1
NamaPemilik
1:1
Tipe
0:1
Manufaktur
0:1
Warna0:1
NoChasis0:1
TglService0:N
BiayaService0:N