Kali ini saya ingin
menjelaskan bagaimana cara membuat ERD (Entity Relational Diagram) dalam
database. Sebelum kita membuat ERD ada baiknya kita berkenalan dulu dengan
segala sesuatu yang berhubungan dengan ERD. Untuk membuat ERD kita memerlukan
Entitas/Entity, Relasi/Relationship, dan Atribut/Attribute.
ERD
adalah pemodelan data utama yang membantu mengorganisasikan data dalam suatu
proyek ke dalam entitas-entitas dan menentukan hubungan antar entitas.
Entitas/Entity
adalah suatu tempat atau objek untuk menyimpan data. Contoh: Entitas buku untuk
menyimpan atribut mengenai buku (judul buku, kode buku, pengarang, dsb). Entity
digambarkan dengan Persegi dalam ERD.
Relasi/Relationship
adalah hubungan yang terjadi antara entitas atau lebih. Contoh: Entitas buku
dan Entitas Pengarang memiliki hubungan “ditulis”, yang artinya, pengarang
menulis buku, dan buku ditulis pengarang. Selain itu, terdapat relasi “one to
one”, “one to many”, dan “many to many” dalam entity. Relasi ini digambarkan
dengan garis dalam ERD.
Atribut/Attribute
adalah ciri umum semua entitas atau semua yang ada dalam entitas. Contoh:
Entitas pengarang memiliki atribut nama, alamat, no telpon, dsb. Atribut
digambarkan dengan lingkaran memanjang dalam ERD tapi jarang sekali dalam ERD
atribut ikut digambarkan. Atribut juga sering disebut dengan field atau kolom
dalam suatu ERD.
Dalam membuat ERD, ada
beberapa hal yang perlu kita waspadai, selain itu kita juga dituntut untuk
lebih teliti dalam menentuka entity, relasi, atribut, menghindarkan terjadinya
relasi “many to many” dan lain sebagainya. Untuk itu lihat beberapa langkah
berikut agar kita bisa membuat ERD dengan baik:
1.
Menentukan Entity
Disini kita dituntut untuk menentukan dengan cermat
sebuah entity yang ada dalam suatu proyek atau masalah. Entity berguna untuk
menentukan peran, kejadian, lokasi, hal nyata dan konsep penggunaan untuk
database
2.
Menentukan Relasi
Setelah kita berhasil membuat Entity, langkah
selanjutnya adalah menentukan relasi antar entity. Relasi apa yang terdapat
antara Entity A dan B, apakah entity A dan B memiliki relasi “one to one”, “one
to many”, atau “many to many”.
3.
Gambar ERD sementara
Jika sudah mengetahui Entity beserta Relasinya,
sekarang kita buat dulu gambar ERD sementara. Entity digambarkan dengan
persegi, relasi digambarkan dengan garis.
4.
Isi kardinalitas
Kardinalitas menentukan jumlah kejadian satu entitas
untuk sebuah kejadian pada entitas yang berhubungan. Contohnya antara Entitas
Buku, Distributor dan Pengarang, kardinalitas yang ada berupa:
a.
Satu pengarang dapat menulis banyak buku
b.
Satu buku ditulis satu pengarang
c.
Banyak buku di distribusikan oleh satu
distributor.
Dari sini kita bisa
mengetahui harus memberi relasi apa. One to one kah?, dsb.
5.
Tentukan Primary Key (Kunci Utama)
Menentukan Primary Key pada masing-masing entity.
Primary Key adalah atribut pada entity yang bersifat unik. Jadi setiap entity
hanya memiliki satu Primary Key saja. Contoh: Entity Buku memiliki Primary Key
bernama kode buku. Kode Buku ini bersifat unik, karena masing-masing buku
memiliki kode yang berbeda-beda.
Tentukan pula Foreign Key (Kunci Tamu) pada
masing-masing Entity. Foreign Key adalah Primary Key yang ada dalam Entity yang
lain. Contoh pada Entity Pengarang misalnya terdapat atribut kode buku, yang
mana, kode buku merupakan Primary Key dari Entity buku.
6.
Gambar ERD berdasarkan Primary Key
Menghilangkan relasi “many to many” dan memasukkan
Primary dan Foreign Key pada masing-masing entitas. Relasi many to many antar
entity perlu dihilangkan dengan cara menambah atribut baru antara 2 entity yang
memiliki relasi many to many.
7.
Menentukan Atribut
Jika sudah melakukan step diatas, sekarang saatnya
menentukan atribut pada masing-masing Entitas. Telitilah dalam menentukan
atribut.
8.
Pemetaan Atribut
Apabila atribut telah ditentukan, sekarang pasang
atribut dengan entitas yang sesuai.
9.
Gambar ERD dengan Atribut
Mengatur ERD seperti langkah 6 dengan menambahkan
atribut dan relasi yang ditemukan.
10. Periksa
Hasil
Periksa lagi ERD, apakah ERD sudah menggambarkan
system yang akan dibangun? Jika belum, check kembali dari awal.
Notasi yang digunakan
dalam ERD adalah :
Entitas dapat merupakan
:
·
Sebuah elemen lingkungan dari
perusahaan , seperti customer atau supplier
·
Suatu sumber daya , seperti
suatu piutang dagang, suatu produk, atau suatu penjual
·
Suatu arus informasi , seperti
suatu penjualan pemesanan atau suatu faktur
Di dalam sebuah entitas
terdapat beberapa atribut. Atribut merupakan gambaran karakteristik dari sebuah
entitas atau himpunan entitas.
contoh:
Penggunaan key merupakan
cara untuk membedakan suatu entitas didalam himpunan entitas dengan entitas
lain. Key dipilih karena unik, untuk setiap entitas sehingga bisa di
bedakan dari entitas yang lain. Kita bisa mendefinisikan key sebagai
satu atau gabungan dari beberapa atribut yang dapat membedakan
semua row dalam relasi secara unik.
Jika sebuah primary key terhubung ke table/entity lain, maka keberadaan primary key pada entity tersebut di sebut sebagai foreign key ( kunci tamu ).
Ada 3 macam key :
1. Super Key
Superkey yaitu satu atau lebih atribut (kumpulan atribut) yang dapat membedakan satiap baris data dalam sebuah relasi secara unik.
Contoh super key yaitu :
id_kereta, nama_kereta, kapasitas, harga
id_kereta, nama_kereta, kapasitas
id_kereta, nama_kereta
id_kereta
2. Candidat Key
Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik.
Contoh : id_kereta
3. Primary Key
Primary key merupakan salah satu dari candidate key yang terpilih. Alasan pemilihan primary key :
a. Lebih sering di jadikan acuan
b. Lebih ringkas
c. Jaminan keunikan key lebih baik
Contoh dari primary key adalah id_kereta.
Jika sebuah primary key terhubung ke table/entity lain, maka keberadaan primary key pada entity tersebut di sebut sebagai foreign key ( kunci tamu ).
Misal : Primary Key id_kereta
dari entity kereta_api digunakan juga pada field entity penumpang, maka
keberadaan field id_kereta pada entity penumpang disebut sebagai foreign key.
Dalam ERD, hubungan
(relasi) dapat terdiri dari sejumlah entitas yang disebut dengan derajad
relasi. Derajad relasi maksimum disebut dengan kardinalitas sedangkan derajad
minimum disebut dengan modalitas. Jadi kardinalitas relasi
menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas
pada himpunan entitas lain. Kardinalitas relasi yang terjadi diantara dua
himpunan entitas (misalnya A dan B) dapat berupa :
1.
Satu
ke satu (one to one/ 1-1)
Setiap entitas pada
himpunan entitas A dapat berelasi dengan paling banyak satu entitas pada
himpunan entitas B, demikian juga sebaliknya.
1.
Satu
ke banyak (one to many/ 1- N ) / N-1
Setiap entitas pada himpunan entitas A dapat
berelasi dengan banyak entitas pada himpunan entitas B, tetapi tidak
sebaliknya. Atau Setiap entitas pada himpunan entitas A hanya dapat berelasi
dengan satu entitas pada himpunan entitas B, tetapi tidak sebaliknya.
1.
Banyak
ke banyak (many to many/ N –N)
Setiap entitas pada himpunan entitas A dapat
berelasi dengan banyak entitas pada himpunan entitas B, demikian juga
sebaliknya.
Berikut ini adalah
tahapan yang saya lakukan dalam pembuatan ERD pada " Sistem Informasi
Pemesanan Tiket Kereta Online" .
1. Penentuan Entities
Keterangan :
a.
penumpang
·
id_penumpang (Primary Key)
·
nama_penumpang
·
id_kereta (Foreign Key)
·
alamat
·
tanggal_keberangkatan
·
tanggal_lahir
·
no_identitas
b.
bank
·
kode_bank (Primary Key)
·
nama_bank
c.
kereta_api
·
id_kereta (Primary Key)
·
nama_kereta
·
kelas_ kereta
·
harga
·
kapasitas
·
jam_keberangkatan
·
stasiun_asal
·
stasiun_tujuan
d.
tiket
·
id_tiket (Primary Key)
·
id_penumpang (Foreign Key)
·
harga
·
id_kereta (Foreign Key)
·
no_kursi
·
no_gerbong
·
kode_pemesanan (Foreign Key)
e.
bukti_pemesanan
·
kode_pemesanan (Primary Key)
·
nama_pemesan
·
id_kereta (Foreign Key)
·
jumlah_penumpang
·
tanggal_pemesanan
f.
tanda_pembayaran
·
kode_pembayaran (Primary Key)
·
kode_pemesanan (Foreign Key)
·
tanggal_pembayaran
·
waktu
·
kode_bank (Foreign Key)
·
nama_pembayar
2.
Penentuan
Atribut
3. Penentuan Kardinalitas
Relasi
4.
Pembuatan
ERD
Sumber : http://mybroadcaster.blogspot.com