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. Ada 10 langkah atau tips yang dapat saya berikan untuk membuat ERD yang baik:
Metode pembuatan 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: Menentukan Entity o 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 Menentukan Relasi o 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. Gambar ERD sementara o Jika sudah mengetahui Entity beserta Relasinya, sekarang kita buat dulu gambar ERD sementara. Entity digambarkan dengan persegi, relasi digambarkan dengan garis. Isi kardinalitas o Kardinalitas menentukan jumlah kejadian satu entitas untuk sebuah kejadian pada entitas yang berhubungan. Contohnya antara Entitas Buku, Distributor dan Pengarang, kardinalitas yang ada berupa: Satu pengarang dapat menulis banyak buku Satu buku ditulis satu pengarang Banyak buku di distribusikan oleh satu distributor. o Dari sini kita bisa mengetahui harus memberi relasi apa. One to one kah?, dsb. Tentukan Primary Key (Kunci Utama) o 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. o 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. Gambar ERD berdasarkan Primary Key o 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. Menentukan Atribut o Jika sudah melakukan step diatas, sekarang saatnya menentukan atribut pada masing-masing Entitas. Telitilah dalam menentukan atribut. Pemetaan Atribut o Apabila atribut telah ditentukan, sekarang pasang atribut dengan entitas yang sesuai. Gambar ERD dengan Atribut o Mengatur ERD seperti langkah 6 dengan menambahkan atribut dan relasi yang ditemukan. Periksa Hasil o Periksa lagi ERD. Apakah ERD sudah menggambarkan system yang akan dibangun? Jika belum, check kembali dari awal.A. Teori ERD
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 : atribut untuk himpunan entitas mahasiswa adalah nim (PK), nama, program studi.
B. Tahapan Pembuatan ERD
Berikut ini adalah contoh tahapan dalam pembuatan ERD pada " Sistem Informasi Akademis " . Tahap 1: Penentuan Entities
Keterangan : Mahasiswa: nim: nomor induk mahasiswa (integer) PK nama_mhs: nama lengkap mahasiswa (string) alamat_mhs: alamat lengkap mahasiswa (string) Dosen: nip: nomor induk pegawai (integer) PK nama_dosen: nama lengkap dosen (string) alamat_dosen: alamat lengkap dosen (string) Mata_kuliah: kode_mk: kode untuk mata kuliah (integer) PK nama_mk: nama lengkap mata kuliah (string) deskripsi_mk: deskripsi singkat mengenai mata kuliah (string) Ruang: kode_ruang: kode untuk ruang kelas (string) PK lokasi_ruang: deskripsi singkat mengenai lokasi ruang kelas (string) kapasitas_ruang: banyaknya mahasiswa yang dapat ditampung (integer)
Tahap 2 : Penentuan Atribut
Tahap 3 : Penentuan Kardinalitas Relasi
Hubungan :a. ruang digunakan untuk mata_kuliah:
Tabel utama: ruang Tabel kedua: mata_kuliah Relationship: One-to-one (1:1) Attribute penghubung: kode_ruang (FK kode_ruang di mata_kuliah)
c. dosen membimbing mahasiswa: . Tabel utama: dosen Tabel kedua: mahasiswa . Relationship: One-to-many (1:n) . Attribute penghubung: nip (FK nip di mahasiswa) d. mahasiswa mengambil mata_kuliah: Tabel utama: mahasiswa, mata_kuliah Tabel kedua: mhs_ambil_mk Relationship: Many-to-many (m:n) Attribute penghubung: nim, kode_mk (FK nim, kode_mk di mhs_ambil_mk)
Tahap 4 : Pembuaatan ERD
EER (Enhanced Entity Relationship) Diagram:
Gambar 2. Contoh ERD One to Many Dari contoh diatas : Terdapat 2 Entity yaitu Dosen & Matakuliah Entity Dosen mempunyai attribute : nip dan nama_dosen Entity Matakuliah mempunyai attribute : kode_mk dan nama_mk Pada entity Dosen, nip digunakan sebagai primary key Pada entity Matakuliah, kode_mk digunakan sebagai primary key Antara entity Dosen & Matakuliah terdapat sebuah relationship yaitu Mengajar Disebut One to Many, karena seorang dosen dapat mengajar mata kuliah lebih dari 1 Gambar 3. Contoh ERD Many to Many Dari contoh diatas : Terdapat 2 Entity yaitu Mahasiswa & Matakuliah Entity Mahasiswa mempunyai attribute : nim dan nama_mhs Entity Matakuliah mempunyai attribute : kode_mk dan nama_mk Pada entity Mahasiswa, nim digunakan sebagai primary key Pada entity Matakuliah, kode_mk digunakan sebagai primary key Antara entity Mahasiswa & Matakuliah terdapat sebuah relationship yaitu mengambil Disebut Many to Many, karena seorang Mahasiswa dapat mengambil mata kuliah lebih dari 1 dan sebaliknya, 1 matakuliah dapat diambil mahasiswa lebih dari 1. Keterangan Supertype : Entity mahasiswa dengan entity program studi : Relasi tabelnya M to 1 : banyak mahasiswa mengambil satu program studi Subtype : Entity mahasiswa dengan entity KHS : Relasi tabelnya M to M : banyak mahasiswa mengambil banyak KRS Entity mahasiswa dengan entity KRS : Relasi tabelnya M to M : banyak mahasiswa mengambil banyak KRS Entity mahasiswa dengan entity mata kuliah : Relasi tabelnya M to M : banyak mahasiswa mendapat banyak KRS Entity mahasiswa dengan entity mata kuliah : Relasi tabelnya M to M : banyak mahasiswa mengambil banyak mata kuliah Entity mata kuliah dengan entity dosen : Relasi tabelnya M to M : banyak mata kuliah diajar banyak dosen Entity mata kuliah dengan entity mata jadwal : Relasi tabelnya M to M : banyak mata kuliah mempunyai banyak jadwal Entity dosen dengan entity jadwal : Relasi tabelnya M to M : banyak dosen mempunyai banyak jadwal PDM
Keterangan Primary key pada tabel mahasiswa yaitu NPM, primary key pada tabel program studi yaituId Progdi. Relasi tabel mahasiswa dengan tabel program studi yaitu many to one, banyak mahasiswa mengambil satu program studi. Dimana Id progdi akan menjadi foreign keydi tabel mahasiswa. Primary key pada tabel mahasiswa yaitu NPM, primary key pada tabel KRS yaitu Id KRS.Relasi tabel mahasiswa dengan tabel KRS yaitu many to many, banyak mahasiswa mengambil banyak KRS. Dimana NPM akan menjadi foreign key di tabel KRS. Sehingga di tabel KRS akan diketahui NPM mahasiswa yang mengambil KRS. Primary key pada tabel mahasiswa yaitu NPM, primary key pada tabel KHS yaitu Id KHS.Relasi tabel mahasiswa dengan tabel KHS yaitu many to many, banyak mahasiswa mengambil banyak KHS. Dimana NPM akan menjadi foreign key di tabel KHS. Sehingga di tabel KHS akan diketahui NPM mahasiswa yang mengambil KHS. Primary key pada tabel mahasiswa yaitu NPM, primary key pada tabel mata kuliah yaituId mata kuliah. Relasi tabel mahasiswa dengan tabel mata kuliah yaitu many to many, banyak mahasiswa mengambil banyak mata kuliah. Dimana NPM akan menjadi foreign key di tabel mata kuliah. Sehingga di tabel mata kuliah akan diketahui mata kuliah mana saja yang diambil oleh mahasiswa. Primary key pada tabel mata kuliah yaitu Id mk, primary key pada tabel dosen yaitu Id dosen. Relasi tabel mata kuliah dengan tabel dosen yaitu many to many, banyak dosen mengajar banyak mata kuliah atau sebaliknya. Dimana relasi many to many antar dua tabel tersebut menghasilkan tabel detail mengajar yang isinya primary key dari kedua tabel yang berelasi yaitu tabel mata kuliah dan tabel dosen. Tabel detail mengajar berisiId mk dan Id_dosen. Primary key pada tabel dosen yaitu Id dosen, primary key pada tabel jadwal yaitu Id jadwal. Relasi tabel dosen dengan jadwal yaitu many to many, banyak dosen mempunyai banyak jadwal ataupun sebaliknya. Dimana relasi many to many antar dua tabel tersebut menghasilkan tabel detail mempunyai yang isinya primary key dari kedua tabel yang berelasi. Tabel detail mempunyai barang berisi Id dosen dan id jadwal. Active Database Store Procedure : Tabel Dosen : insert, update, delete Tabel Mahasiswa : insert, update, delete Tabel Mata Kuliah : insert, update, delete Tabel Jadwal : insert, update, delete Trigger : - Jika pada tabel Mahasiswa dilakukan Insert, Update, Delete pada nama mahasiswa maka juga akan terjadi perubahan data sesuai dengan event yang dilakukan pada saat trigger pada tabel KRS dan KHS nama mahasiswa - Jika pada tabel KHS dilakukan Insert, Update, Delete pada Jumlah SKS diambil maka juga akan terjadi perubahan data sesuai dengan event yang dilakukan pada saat trigger pada tabel KRS Jumlah SKS diambil