Panduan ERD untuk Pengembangan Database
Panduan ERD untuk Pengembangan Database
A. Capaian Pembelajaran
Setelah mempelajari materi ini, mampu merancangkan serta memodelkan
basis data dalam bentuk ERD menggunakan aplikasi pendukung
perancangan ERD dan memetakannya ke dalam tabel-tabel basis data.
1. siswa mampu menentukan entitas dan atributnya
2. siswa mampu menentukan jenis atribut
3. siswa mampu menentukan relasi dan kekangan kardinalitas antar
entitas
4. siswa mampu menggambarkan rancangan ERD ke dalamsoftware
penunjang
5. siswa mampu memetakan ERD ke dalam tabel-tabel database
B. Peralatan
1. Seperangkat k omputer yang sudah terinstal aplikasi MySQL, Web
Server Apache dengan browser
2. Instruksi kerja dan modul ajar
3. Koneksi internet
4. Proyektor
C. Teori
1. Entity Set
Sebuah database dimodelkan dengan sekumpulan entitas dan
relasi antar entitasnya. Entitas merupakan objek yang berwujud dan
dapat dibedakan dengan objek lainnya.
Contoh, dalam database akademik ada entitas siswa, dosen dan
mata pelajaran.
Entity set (himpunan entitas) merupakan sekumpulan entitas yang
memiliki tipe sama, misalnya sekumpulan entitas siswa disebut sebagai
entity set siswa, sedangkan sekumpulan entitas mata pelajaran disebut
sebagai entity set mata pelajaran.
1
Di dalam penggambaran ERD, entitas dilambangkan dengan kotak,
dimana di dalam kotak tertulis nama entitasnya.
Contoh :
2. Atribut
Atribut adalah properti yang dimiliki oleh semua anggota dari entity
set. Sebuah entitas akan memiliki atribut, misalnya entitas siswa memiliki
atribut NIS, nama_siswa, alamat_siswa, telp_siswa, tanggal_lahir. Entitas
mata pelajaran misalnya memiliki atribut kode_mata pelajaran, nama_mata
pelajaran dan jp.
Terdapat beberapa jenis atribut, yaitu sebagai berikut:
a. Atribut sederhana : yaitu atribut yang tidak bisa dipecah lagi dan
hanya bernilai tunggal. Contohnya yaitu NIS, agama,
jenis_kelamin. Penggambaran atribut ini adalah dengan symbol
elips
b. Atribut komposit : yaitu atribut yang nilai dapat dipecah-pecah.
Misalnya : nama dapat dipecah menjadi nama depan dan nama
belakang, alamat dapat dipecah menjadi nama_jalan, kecamatan,
kota, provinsi, kode_pos. Atribut ini digambarkan dengan elips yang
bercabang
c. Atribut bernilai banyak : yaitu sebuah atribut yang nilainya bisa
lebih daripada satu. Misalnya : hobby (siswa bisa saja punya lebih
daripada satu hobby), telp (siswa bisa saja punya lebih daripada
satu telp). Atribut ini digambarkan dengan double-lined ellipse
d. Atribut turunan : yaitu atribut yang nilainya dapat
diturunkan/dihitung dari atribut lainnya. Misalnya umur dapat
dihitung dari atribut tanggal_lahir, subtotal dapat dihitung dari
jumlah dikalikan dengan harga. Atribut ini digambarkan dengan
elips bergaris putus-putus.
Contoh penggambaran atribut dari entitas siswa dapat dilihat sebagai berikut:
2
Nama_depan Nama_belakang
hobby
siswa umur
telp
Alamat Kode_pos
Nama_jalan
kecamatan kota provinsi
Pada gambar di atas, tampak bahwa sebuah entitas bernama siswa dengan :
- dua buah atribut sederhana yaitu NIS dan tanggal_lahir
- dua buah atribut komposit yaitu nama (dipecah menjadi nama_depan
dan nama_belakang), alamat (dipecah menjadi nama_jalan, kecamatan,
kota, provinsi dank ode_pos)
- dua buah atribut bernilai banyak yaitu : hobby dan telp
- sebuah atribut turunan yaitu : umur yang diturunkan dari tanggal_lahir
Catatan :
- nama bisa saja menjadi atribut sederhana jika perancang menghendaki
menggabungkan nama_depan dan nama_belakang menjadi satu kolom
saat penyimpanan nantinya
- telp bisa saja menjadi atribut sederhana apabila perancang hanya
menghendaki penyimpnan 1 buah nomor telepon saja untuk satu siswa,
demikian juga dengan hobby
- umur hanya akan menjadi atribut turunan jika ada atribut tanggal_lahir.
Jika tidak ada atribut tanggal_lahir maka umur menjadi tidak bisa dihitung
dan menjadi atribut sederhana.
3. Kunci/Key
Kunci merupakan atribut yang bernilai unik. Misalnya : siswa memiliki
NIS yang tidak akan sama dengan siswa yang lainnya. Kunci juga bisa
tersusun dari dua atau lebih atribut. Terdapat beberapa jenis kunci yaitu:
• Super key : satu atau beberapa atribut yang memiliki nilainya secara
unik menggambarkan setiap entitas.
• Candidate key : super key dengan panjang
• Primary key : kunci utama tabel yang dipilih dari salah satu candidate
key. Dalam sebuah entity set bisa saja terdapat lebih dari satu buah
candidate key, akan tetapi nantinya akan dipilih salah satu saja yang
3
paling kuat tingkat keunikannya dan dirasa paling sederhana. Primary
key sebuah entitas tidak boleh bernilai kosong (NULL)
Contoh :
Nama_pegawai
NIP telp
Pegawai jabatan
Dalam contoh ERD di atas, maka bisa disusun kunci-kunci sebagai berikut:
• Super key : {NIP}, {NIP, Nama_pegawai}, {telp}
• Candidate key : {NIP}, {telp}
• Primary key : {NIP}
Catatan :
- Telp bisa menjadi super key karena nonor telp antara satu pegawai
dan lainnya tidak sama
- Nama_pegawai saja tidak bisa menjadi super key karena bisa jadi ada
pegawai yang memiliki nama sama, demikian juga dengan jabatan.
Namun saat NIP bergabung dengan nama_pegawai, ini akan menjadi
perpaduan yang unik (tidak mungkin ada NIP dan nama pegawai yang
sama)
- Untuk pengambilan candidate key maka akan diambil super key
terpendek yaitu
- Untuk pemilihan primary key harus dipastikan yang paling unik,
sederhana dan tidak akan berubah-ubah. Telp memang unik, tapi bisa
jadi nomor telp seorang pegawai akan berubah, sehingga NIP akan
lebih baik untuk primary key.
Sebuah entitas yang kuat harus memiliki kunci primer. Kunci primer
dilambangkan dengan atribut bergaris bawah, seperti contoh berkut :
Nama_depan Nama_belakang
Pegawai
telp
Alamat Kode_pos
jabatan telp
Nama_jalan
kecamatan kota provinsi
4
4. Relasi Antar Entitas
Relasi/asosiasi merupakan keterhubungan antar entitas. Misalnya
siswa mempelajari mata pelajaran. Terdapat relasi mempelajari antara
entitas siswa dengan entitas mata pelajaran. Relasi digambarkan dengan
bentuk belah ketupat.
Konselor Ruangan
supervisor
menangani
Pegawai memimpin
bawahan
Client
5
sedangkan sebuah project hanya dikerjakan oleh maksimal satu
siswa saja.
1 n
siswa memiliki Project
5. Entitas Lemah
Entitas lemah merupakan entitas yang keberadaannya bergantung
pada entitas lainnya dan tidak memiliki primary key. Keberadaan entitas
lemah bergantung pada entitas kuat lainnya yang disebut identifying entity.
Relasi antara entitas lemah ke identifying entity-nya bersifat many-to-one.
Entitas lemah dilambangkan dengan kotak bergaris ganda. Meskipun tidak
memiliki primary key, namun entitas lemah hendaknya memiliki
discriminator. Discriminator (atau partial key) dari sebuah weak entity set
merupakan sekumpulan atribut yang dapat membedakan seluruh entitas
dari anggota entitas lemah lainnya. Contoh entitas lemah misalnya keluarga
pegawai yang ditanggung oleh perusahaan tempat pegawai berkerja.
hubungan
1 n
Pegawai menanggung Keluarga_Pegawai
7
b. Menentukan atribut dari masing-masing entity set (sesuai dengan
kebutuhan data dari sistem yang hendak dibangun)
c. Menentukan primary key dari tiap-tiap entity set
d. Menentukan relationship set antar entity set
e. Menentukan derajat/kardinalitas relasi untuk setiap relatinship
set
Maka PID dan port akan terisi dan teks pada tombol akan berubah
menjadi “Stop” apabila proses berhasil. Jika tidak terjadi perubahan, maka
berati proses gagal.
8
b. Kemudian bukalah browser dan ketikkan localhost/phpmyadmin pada
bagian url atau klik tombol Admin pada bagian MySQL. Anda akan
melihat tampilan berikut. Sisi sebelah kiri yang merupakan daftar basis
data yang pernah Anda buat mungkin saja masih kosong jika Anda
belum pernah membuat basis data sebelumnya.
c. Untuk membuat sebuah basis data, maka Anda perlu menekan tab
Database, kemudian ketikkan nama database dan klik Create.
9
1
1 2
Jika berhasil maka akan muncul teks “Database has been created” atau
teks dalam Bahasa Indonesia “Database telah dibuat” dan Anda dapat
melihat pada sisi sebelah kiri
10
f. Sebelum membuat tabel, pemahaman akan tipe data pada MySQL harus
dipahami terlebih dahulu
Tipe Data Date and Time : menyimpan data dalam bentuk waktu
baik tanggal lengkap sampai dengan detik ataupun tahunnya
saja.
Contoh : tanggal lahir
11
Jadi bijaksanalah dalam memilih tipe data.
Contoh tipe data numerik : umur, harga, nilai. Sedangkan NIS, kode
pos termasuk ke dalam tipe data String
12
Kode_kategori INT PRIMARY KEY, NOT NULL,
AUTO_INCREMENT
Nama_kategori VARCHAR (30)
1 2
2
i. Setelah menekan Save, maka Anda akan menemui tampilan sebagai
berikut:
13
Keterangan :
- Untuk menghapus tabel Anda bisa menekan drop
- Untuk bisa melihat data Anda bisa menekan Browse
- Untuk bisa mengubah struktur data (tipe data dan nama kolom
tabel) Anda bisa menekan Structure
- Untuk mengisi data, Anda bisa menekan Insert
j. Misalnya ingin membuat tabel dengan kunci tamu (foreign key) seperti
tabel barang di bawah ini:
Field Tipe Data Keterangan
Kode_barang VARCHAR PRIMARY KEY, NOT NULL
(10)
Nama_barang VARCHAR
(30)
Stock SMALLINT
Harga INT
Tgl_kadaluwarsa DATE
Kode_kategori INT FOREIGN KEY REFERENCES
kategori_barang.kode_kategori
1
2
14
1
m. Untuk menambahkan kunci tamu (foreign key) pada tabel barang, klik
Structure pada tabel barang
15
o. Isikan data berikut pada relation view:
16
q. Klik More dan Pilih Designer
D. Keselamatan Kerja
1. Ikuti langkah kerja yang ada pada job sheet
2. Perhatikan keamanan instalasi listrik saat menghidupkan dan
mematikan computer
3. Pastikan lingkungan kerja (meja, kursi dan computer) bersih, baik
sebelum maupun sesudah penggunaan
4. Jika ada hal yang kurang jelas, tanyakan kepada dosen pengampu
17
E. Langkah Kerja
1. Contoh Kasus 1
a. Bacalah study kasus berikut
Bangunlah basis data untuk kasus pencatatan data siswa suatu
kampus, dimana pada kasus ini dipersempit yang dicatat hanyalah
mata pelajaran yang dipelajari oleh siswa selama masa
perkuliahannya, data laporan yang dimiliki oleh siswa dan project-
project yang pernah dikerjakannya. Adapu detail kasus (aturan bisnis)
adalah sebagai berikut:
1) Setiap siswa memiliki data NIS, nama depan, nama belakang,
tanggal lahirnya, umur, alamat berupa : nama jalan, kecamatan,
kota, provinsi dan kode pos, untuk kepentingan identifikasi
minat dan bakat maka hobby siswa juga didatadan boleh lebih
daripada satu hobby. NIS siswa merupakan kode unik dengan
panjang karakter yaitu 10.
2) Setiap siswa akan mempelajari beberapa mata pelajaran
selama masa studinya, dimana data mata pelajaran berupa
nama mata pelajaran, jp dank kode mata pelajaran. Setiap akhir
periode pembelajaran maka siswa akan mendapatkan nilai
berupa nilai angka dan nilai huruf. Nilai angka bisa disimpan
hingga 2 digit di belakang koma, sedangkan nilai huruf berupa
A, AB, B sampai dengan E. Kode mata pelajaran memiliki
panjang karakter yang tepat 7 karakter.
3) Setiap siswa akan mempunyai laporan PKL sebagai syarat
kelulusannya. Satu siswa hanya mempunyai satu laporan PKL
saja, sedangkan satu laporan PKL akan dimiliki oleh satu siswa
saja. Data laporan PKL yang dicatat berupa kode laporan, judul
laporan dan abstraknya
4) Kampus seringkali mengadakan lomba untuk mengerjakan
project-project tertentu, dimana siswa yang mengerjakan
project akan didanai. Setiap projet memiliki judul dank ode
project. Setiap project hanya boleh dikerjakan oleh satu orang
siswa, sedangkan seorang siswa boleh saja mengerjakan
beberapa project.
18
ii. Entitas mata pelajaran : atribut sederhana (nama_mapel,
kode_mapel, jp)
iii. Entitas laporan : atribut sederhana
(kode_laporan,judul_laporan, abstrak)
iv. Entitas project : atribut sederhana (kode_project,
judul_project, dana_project)
c) Menentukan primary key dari tiap-tiap entity set
i. Entitas siswa : NIS
ii. Entitas mata pelajaran : kode_mapel
iii. Entitas laporan : kode_laporan
iv. Entitas project : kode_project
d) Menentukan relationship set antar entity set
i. Relasi mempelajari antara siswa dengan
mata pelajaran
ii. Relasi mengerjakan antara siswa dengan project
iii. Relasi memiliki antara siswa dengan laporan
e) Menentukan derajat/kardinalitas relasi untuk setiap relatinship
set
i. Relasi many-to-many pada mempelajari karena satu
siswa mempelajari banyak mata pelajaran, sedangkan
satu mata pelajaran dipelajari oleh banyak siswa
ii. Relasi one-to-many pada mengerjakan karena satu
siswa mengerjakan banyak project sedangkan satu
project maksimal dikerjakan oleh seorang siswa
iii. Relasi one-to-one memiliki karena seorang siswa boleh
memiliki maksimal satu laporan dan demikian juga
dengan satu laporan dimiliki oleh maksimal seorang
siswa
19
umur Nama_depan Nama_belakang Nilai_angka
Nama_mapel jp
Nilai_huruf
Tanggal_lahir Kode_mata
NIS Nama
mata pelajaran pelajaran
n
mempelajari
hobby m
siswa
1
1 abstrak
Dana_project
Alamat
mengerjakan 1
mempunyai laporan
n Kode_pos
Nama_jalan
Project Judul_lapora
kecamatan kota provinsi Kode_lapora n
n
Judul_project
Kode_project
20
Tabel siswa
Nama Kolom Tipe Data Keterangan
NIS CHAR(10) PRIMARY KEY, NOT NULL
Nama_depan VARCHAR (30)
Nama_belakang VARCHAR (30)
Tanggal_lahir DATE
Nama_jalan VARCHAR(60)
Kecamatan VARCHAR (30)
Kota VARCHAR (30)
Provinsi VARCHAR (30)
Kode_pos CHAR(5)
Tabel laporan
Nama Kolom Tipe Data Keterangan
Kode_laporan INT PRIMARY KEY, NOT NULL,
AUTO_INCREMENT
Judul_laporan VARCHAR (120)
Abstrak VARCHAR (500)
NIS VARCHAR(10) FOREIGN KEY REFERENCES
[Link]
Tabel project
Nama Kolom Tipe Data Keterangan
Kode_project INT PRIMARY KEY, NOT NULL,
AUTO_INCREMENT
Judul_project VARCHAR (120)
Dana_project INT
NIS CHAR(10) FOREIGN KEY REFERENCES
[Link]
Tabel hobby_siswa
Nama Kolom Tipe Data Keterangan
NIS VARCHAR(10) PRIMARY KEY, NOT NULL, FOREIGN
KEY REFERENCES [Link]
Hobby VARCHAR (30) PRIMARY KEY, NOT NULL
21
Tabel nilai_siswa
Nama Kolom Tipe Data Keterangan
NIS CHAR(10) PRIMARY KEY, NOT NULL, FOREIGN
KEY REFERENCES [Link]
Kode_mata CHAR(7) PRIMARY KEY, NOT NULL, FOREIGN
pelajaran KEY REFERENCES
mata pelajaran.kode_mata pelajaran
Nilai_angka FLOAT
Nilai_huruf VARCHAR(2)
2. Contoh Kasus 2
a. Bacalah study kasus berikut
Bangunlah basis data untuk kasus berikut. Sebuah perusahaan ingin
mencatat keluarga yang ditanggung oleh para pegawainya. Adapun
keluarga yang dimaksudkan adalah suami/istri dan anak-anaknya.
Adapu detail kasus (aturan bisnis) adalah sebagai berikut:
1) Setiap pegawai akan didata NIP dan namanya. NIP memiliki
panjang tepat 18 karakter.
2) Data keluarga yang dicatat berupa nama, tanggal lahir dan
hubungannya dengan pegawai. Satu keluarga berhubungan
hanya dengan satu orang pegawai saja.
hubungan
1 n
Pegawai menanggung Keluarga_Pegawai
Tabel pegawai
Nama Kolom Tipe Data Keterangan
NIP CHAR(18) PRIMARY KEY, NOT NULL
Nama_pegawai VARCHAR (60)
Tabel keluarga_pegawai
Nama Kolom Tipe Data Keterangan
Nama_keluarga CHAR(18) PRIMARY KEY, NOT NULL
Tanggal_lahir DATE
Hubungan ENUM (Istri,
Suami, Anak)
NIP CHAR(18) PRIMARY KEY, NOT NULL, FOREIGN
KEY REFERENCES [Link]
23
F. Evaluasi
Susunlah ERD dari kasus berikut dan kemudian bangunlah
database dari hasilpemetaan ERD ke dalam MySQL!
25