0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan25 halaman

Panduan ERD untuk Pengembangan Database

MUDUL ERD

Diunggah oleh

shaqilla5149
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan25 halaman

Panduan ERD untuk Pengembangan Database

MUDUL ERD

Diunggah oleh

shaqilla5149
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

SMK NEGERI 1 Guru Pengampu :

CIANJUR A. Luddie Tri Saputra


Instruksi
Bidang Keahlian : Teknologi Informasi
Program Keahlian : Pengembangan Perangkat
Kerja 1 Waktu : 10 x 45 Menit
Lunak dan GIM
Konsentrasi Keahlian : Rekayasa Perangkat Lunak
Entity
Kelas/Semester : XI PPLG-RPL/Ganjil Relationship Pertemuan 3 dan 4
Tahun Pelajaran : 2024/2025
Diagram

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 :

siswa Mata Pelajaran

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

NIS Nama Tanggal_lahir

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

NIS Nama Tanggal_lahir


Nama_pegawai
NIP
hobby
siswa umur

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.

siswa Mempelajari mata pelajaran

Contoh lainnya misalnya : dosen mengajar mata pelajaran

Dosen mengajar mata pelajaran

Relasi memiliki derajat yaitu : jumlah entitas yang terlibat di dalam


relasi. Dari contoh di atas, maka derajat relasinya adalah binary karena
melibatkan 2 buah entitas di dalamnya. Contoh lainnya misalnya unary
relationship yang hanya melibatkan satu buah entitas dan ternary
relationship yang melibatkan 3 buah entitas di dalam sebuah relasi.

Konselor Ruangan
supervisor

menangani
Pegawai memimpin

bawahan
Client

Unary relationship (roles) Ternary relationship

Setiap relasi memiliki kekangan kardinalitas, yaitu maksimal


keterlibatan suatu entitas di dalam relasi. Terdapat empat jenis kekangan
kardinalitas :
a. One-to-one : relasi yang menggambarkan maksimal keterlibatan
masing-masing entitas adalah maksimal satu. Misalnya : relasi antara
siswa dengan laporan. Setiap siswa maksimal memiliki satu laporan
dan satu buah laporan maksimal dimiliki oleh satu siswa.
1 1
siswa memiliki laporan

b. One-to-many : relasi yang menggambarkan keterlibatan maksimal dari


salah satu entitas hanya satu, sedangkan entitas kawannya bisa lebih
daripada satu. Misalnya siswa mengerjakan banyak project,

5
sedangkan sebuah project hanya dikerjakan oleh maksimal satu
siswa saja.
1 n
siswa memiliki Project

c. Many-to-one : sama dengan relasi one-to-many, hanya dibalik


pembacaannya saja.
1 n
Project memiliki siswa

d. Many-to-many : relasi yang melibatkan lebih dari satu anggota setiap


entitas. Misalnya seorang siswa akna mempelajari lebih daripadasatu
mata pelajaran, sedangkan satu mata pelajaran dipelajari oleh lebih
daripada satu siswa.
m n
siswa memiliki mata pelajaran

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.

NIP Nama_pegawai Nama_keluarga Tanggal_lahir

hubungan
1 n
Pegawai menanggung Keluarga_Pegawai

Dalam contoh di atas, keluarga_pegawai merupakan entitas lemah,


karena keberadaannya bergantung pada entitas pegawai (sebagai
identifying entity) dan keluarga_pegawai tidak memiliki primary key
karena tidak ada satupun field yang unik di dalam entitas tersebut. Namun
dalam satu keluarga (keluarga dari seorang pegawai), tidak mungkin
terdapat nama yang sama, sehingga nama_keluarga bisa menjadi partial key
atau discriminator.
6
6. Penerjemahan/Pemetaan ERD ke Dalam Tabel
Sebuah ERD dapat dipetakan ke dalam tabel-tabel untuk membentuk
database yang utuh dengan aturan sebagai berikut:
1. Sebuah entitas baik lemah maupun kuat akan menjadi sebuah tabel
2. Setiap atribut sederhana akan menjadi kolom pada tabel yang
dibentuk oleh entitasnya
3. Setiap atribut komposit hanya akan diambil bagian daunnya saja
(cabang terakhir) dan batang tidak akan disimpan menjadi kolom.
Contoh : nama dipecah menjadi nama_depan dan nama_belakang,
maka yang akan disimpan menjadi kolom adalah nama_depan dan
nama_belakang, sedangkan nama akan ditinggalkan (tidak
disimpan)
4. Setiap atribut bernilai banyak akan menjadi tabel tersendiri, dengan
kolom berupa kunci primer dari entitas utamanya ditambah dengan
atribut tersebut, dan keduanya akan menjadi kunci primer yang
disebut kunci primer komposit. Contoh atribut hobby akan
membentuk tabel hobby_siswa dengan kolom berupa NIS danhobby,
dimana kunci primernya adalah {NIS, hobby}
5. Setiap atribut turunan tidak akan disimpan di dalam tabel, kecuali
pada kasus tertentu jika kecepatan akses database lebih diutamakan
daripada memory.
6. Setiap relasi akan menghasilkan kunci tamu (foreign key), dimana
kunci ini merupakan kunci yang berasal dari entitas lain. Cara
penerjemahan relasi adalah sebagai berikut:
[Link]-to-one : salah satu kunci primer menjadi kunci tamu pada
tabel lainnya. Misalnya NIS yang merupakan kunci primer siswa
akan menjadi kunci tamu ke tabel laporan
[Link]-to-many : Kunci primer dari entitas yang bernilai one akan
menjadi kunci tamu pada entitas kawannya. Misalnya NIS siswa
akan menjadi kunci tamu pada tabel project
c. Many-to-many : akan membentuk tabel baru, dimana kunci
primer dari kedua tabel akan menjadi kunci tamu pada tabel baru.
Misalnya relasi siswa dengan mata pelajaran akan membantuk
tabel baru dengan kunci tamu NIS dan kode_mata pelajaran
7. Kunci primer dari entitas lemah adalah kunci primer dari identifying
entity-nya ditambah dengan discriminatornya. Misalnya kunci
primer tabel keluarga_pegawai adalah : {NIP, nama_keluarga}

7. Langkah Perancangan ERD


Untuk merancang sebuah ERD, maka perlu dilakukan langkah-langkah
berikut:
a. Menentukan semua entity set yang terlibat

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

8. Pembuatan Database pada MySQL


Untuk menjalankan MySQL, pastikan MySQL sudah terinstal di
komputer Anda. Anda juga bisa menginstal satu paket software XAMPP dan
sebuah browser (bebas). Berikut adalah langkah-langkah untuk memulai
membuat database di dalam MySQL dengan menggunakan phpMyAdmin:
a. Bukalah XAMPP Control Panel dari Start, lalu klik Start untuk Apache
dan MySQL

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

d. Misal kita ketikkan nama database sebagai latihan1

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

e. Sekarang Anda bisa menekan nama database tersebut untuk


mengaktifkannya. Setelah Anda menekan nama database latihan1 pada
sisi kiri, maka Anda akan aktif pada database latihan1, dimana belum
ada tabel sama sekali, karena Anda belum membuat tabel.

Nama database aktif

10
f. Sebelum membuat tabel, pemahaman akan tipe data pada MySQL harus
dipahami terlebih dahulu

Tipe Data String : menyimpan data berupa karakter atau deretan


karakter
Contoh : Nama, alamat, NIS

Tipe Data Date and Time : menyimpan data dalam bentuk waktu
baik tanggal lengkap sampai dengan detik ataupun tahunnya
saja.
Contoh : tanggal lahir

Tipe Data BLOB : menyimpan data binary.


Misalnya jika ingin menyimpan suatu file utuh ke dalam database

Tipe Data Numerik : untuk menyimpan data bilangan, baik


bilangan bulat maupun pecahan
Harap diperhatikan bahwa tidak semua deretan angka bisa
dikategorikan sebagai tipe numerik. Tipe numerik umum untuk
diperlakukan dengan operasi matematis, seperti dijumlahkan,
dikalikan dan lain sebagainya. Akan tetapi beberapa deretan angka
tidak pernah diperlakukan secara matematis, seperti misalnya NIS,
kode pos, kode pegawai.

11
Jadi bijaksanalah dalam memilih tipe data.
Contoh tipe data numerik : umur, harga, nilai. Sedangkan NIS, kode
pos termasuk ke dalam tipe data String

Tipe Data Lainnya : tipe data untuk menyimpan data-data lain.


Misalnya : menyatakan pilihan yang disediakan, 1 : Golongan Darah A,
2 : Golongan Darah O, 3 : Golongan Darah B, 4 : Golongan Darah AB

g. Setelah memahami tipe data, maka lanjutkan dengan membuat tabel.


Misalnya akan membuat tabel kategori_barang dengan kolom sebagai
berikut :
Field Tipe Data Keterangan

12
Kode_kategori INT PRIMARY KEY, NOT NULL,
AUTO_INCREMENT
Nama_kategori VARCHAR (30)

Keterangan : AUTO_INCREMENT (A_I) adalah sebuah data yang akan


berisi nomor urut otomatis yang dimulai dari 1 dan seterusnya.
Sehingga user tidak perlu mengisi data ke dalam kolom tersebut.
Sebuah kolom yang bersifat AUTO_INCREMENT harus berupa INT atau
BIGINT dan harus menjadi primary key serta dalam satu tabel hanya
boleh ada satu field yang bersifat AUTO_INCREMENT.

1 2

h. Kemudian Anda akan dihadapkan pada tampilan untuk mengisi nama-


nama kolom pada tabel, seperti berikut:

Pastikan memilih primary dan men-check


A_I (auto increment)

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

k. Anda harus mengisi kolom-kolom tabel sebagai berikut:

14
1

Pastikan memilih primary untuk


kode_barang dan index untuk 2
kode_kategori (agar bisa jadi FK)
l. Sekarang Anda telah memiliki 2 buah tabel.

m. Untuk menambahkan kunci tamu (foreign key) pada tabel barang, klik
Structure pada tabel barang

n. Klik Relation View

15
o. Isikan data berikut pada relation view:

Jika berhasil maka akan keluar pesan berikut:

p. Untuk melihat relasi yang terbentuk, maka klik nama database :


latihan1

16
q. Klik More dan Pilih Designer

r. Anda akan melihat tampilan relasi antar tabel sebagai berikut:

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.

Langkah penyusunan ERD adalah sebagai berikut:


a) Menentukan semua entity set yang terlibat
Entitas yang terlibat yaitu : siswa, mata pelajaran, laporan dan
project
b) Menentukan atribut dari masing-masing entity set (sesuai
dengan kebutuhan data dari sistem yang hendak dibangun)
i. Entitas siswa : Atribut sederhana (NIS, tanggal_lahir),
atribut komposit (nama menjadi nama_depan,
nama_belakang, alamat menjadi nama_jalan, kecamatan,
kota, provinsi dan kode_pos), atribut bernilai banyak :
hobby, atribut turunan : umur

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

b. Gunakan Microsoft Visio atau software lainnya untuk membuat ERD


berikut:

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

Penerjemahan ke dalam tabel adalah sebagai berikut :


1. Terdapat 4 entitas kuat dan akan menjadi 4 tabel yaitu : tabel
siswa, mata pelajaran, laporan dan tabel project
2. Semua atribut sederhana dalam setiap entitas akan menjadi kolom
3. Dalam entitas siswa terdapat atribut komposit nama, maka atribut
nama_depan dan nama_belakang akan menjadi kolom dalam tabel
siswa. Atribut pecahan dari alamat yaitu nama_jalan, kecamatan,
kota, provinsi dank ode_pos akan menjadi kolom juga di tabel
siswa
4. Atribut hobby tidak akan disimpan di dalam tabel siswa, namun
menjadi tabel tersendiri yaitu hobby_siswa dengan kolom NIS dan
hobby dan keduanya menjadi kunci primer
5. Atribut turunan umur tidak akan disimpan ke dalam tabelsiswa
6. Penerjemahan relasi :
a. Relasi one-to-one memiliki dari siswa ke laporan akan
menghasilkan kunci tamu NIS ke tabel laporan.
b. Relasi one-to-many mengerjakan dari siswa ke project akan
menghasilkan kunci tamu NIS ke tabel project
c. Relasi many-to-many mempelajari dari siswa ke mata
pelajaran akan menghasilkan sebuah tabel baru yang bisa
diberinama siswa_mata pelajaran atau tabel nilai (tergantung
mana yang lebih enak merepresentasikan konten tabel) dengan
kolom berupa kunci tamu NIS dan kode_mata pelajaran,
kemudianditambah dengan atribut nilai_angka, nilai_huruf
7. Tidak ada entitas lemah

c. Dengan demikian tabel yang terbentuk adalah sebagai berikut.


Buatlah database bernama akademik di MySQL menggunakan
phpMyAdmin.

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 mata pelajaran


Nama Kolom Tipe Data Keterangan
Kode_mata CHAR(7) PRIMARY KEY, NOT NULL
pelajaran
Nama_mata VARCHAR (40)
pelajaran
jp TINYINT

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.

Langkah penyusunan ERD adalah sebagai berikut:


a) Menentukan semua entity set yang terlibat
Entitas yang terlibat yaitu : pegawai, keluarga_pegawai sebagai
entitas lemah karena keberadaannya tergantung pada pegawai
dan tidak memiliki atribut yang unik.
b) Menentukan atribut dari masing-masing entity set (sesuai
dengan kebutuhan data dari sistem yang hendak dibangun)
i. Entitas pegawai : Atribut sederhana (NIP,
nama_pegawai)
ii. Entitas keluarga_pegawai : atribut sederhana
(nama_keluarga, hubungan, tanggal_lahir)
c) Menentukan primary key dari tiap-tiap entity set
i. Entitas pegawai: NIP
ii. Entitas keluarga_pegawai : karena entitas lemah maka
tidak memiliki kunci primer, maka tentukan
discriminator yaitu nama_keluarga (karena dalam satu
keluarga tidak mungkin ada nama yang benar-benar
sama)
d) Menentukan relationship set antar entity set
i. Relasi menanggung antara pegawai dengan
keluarga_pegawai
e) Menentukan derajat/kardinalitas relasi untuk setiap relatinship
set
i. Relasi one-to-many pada menanggung karena satu
pegawai dapat menanggung lebih daripada satu anggota
22
keluarga sedangkan satu anggota keluarga hanya
ditanggung oleh satu pegawai

b. Gunakan Microsoft Visio atau software lainnya untuk membuat ERD


berikut:
NIP Nama_pegawai Nama_keluarga Tanggal_lahir

hubungan
1 n
Pegawai menanggung Keluarga_Pegawai

Penerjemahan ke dalam tabel adalah sebagai berikut :


1. Terdapat 1 entitas kuat dan akan menjadi 1 tabel yaitu : tabel
pegawai, dan terdapat 1 entitas lemah yaitu : tabel
keluarga_pegawai
2. Semua atribut sederhana dalam setiap entitas akan menjadi
kolom
3. Tidak ada atribut komposit
4. Tidak ada atribut bernilai banyak
5. Tidak ada atribut turunan
6. Penerjemahan relasi pada entitas lemah :
a. Relasi one-to-many menanggung dari pegawai ke
keluarga_pegawai akan menghasilkan kunci tamu NIP ke tabel
keluarga_pegawai
7. Kunci tabel keluarga_pegawai adalah NIP dan nama_keluarga

c. Dengan demikian tabel yang terbentuk adalah sebagai berikut.


Buatlah database bernama akademik di MySQL menggunakan
phpMyAdmin.

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!

1. Sebuah aplikasi makanan sehat menyediakan berbagai


resep makanan untuk para pelanggannya. Setiap resep
makanan (meal) akan dibuat oleh seorang nutrisionist.
Satu nutrisionist bisa menyusun banyak meal. Setiap
meal akan tersusun dari beberapa jenis bahan dasar
(food). Satu jenis foodjuga bisa menjadi penyusun dari
beberapa meal. Sebagai contoh: meal capcay tersusun
dari food berupa : garam, saus tomat, kol, brokoli, dada
ayam, bawang putih. Untuk detail penyusunan meal
maka harus dicatat jumlah food yang digunakan dan
satuan yang digunakan, misalkan meal capcay disusun
oleh garam dengan jumlah 5, satuannya mg, saus tomat
dengan jumlah 1, satuannya sendok makan. Setiap meal
ini nantinya akan dicoba oleh beberapa pengguna
aplikasi, dan pengguna aplikasi akan memberikan
review berupa nilai bintang (star) dan review berupa
kata- kata. Setiap client bisa mereview banyak meal
sesuka hatinya. Data food yang dicatat yaitu : id_food,
kalori, protein, lemak, karbohidrat, gula, kalsium,
kolesterol. Data meal yang dicatat berupa: id_meal,
nama_meal, tanggal_upload, keterangan_resep. Data
nutrisionist berupa : id_nutrisionist, nama_nutrisionist,
alamat_nutrisionist, bidang. Sedangkan data client
berupa: id_client, nama_client, jenis_kelamin,
tanggal_lahir, tinggi, berat, nomor_hp, email
2. Sebuah perusahaan real estate, mengelola banyak
property untuk disewakan. Setiap property tentu
dimiliki oleh tepat satu orang pemilik, sedangkan
seorang pemilik bisa memasang banyak property
untuk dikelola oleh perusahaan. Sebuah property, akan
ditangani oleh seorang sales dari perusahaan. Satu
orang sales bisa saja menangani banyak property pada
suatu waktu. Setiap property nantinya akan disewa
oleh seorang penyewa dengan kurun waktu tertentu,
dan kemudian mungkin saja pindah tangan kepada
penyewa lainnya pada lain waktu. Satu orang penyewa,
dalam hal ini sah saja menyewa lebih dari satu
property. Saat seorang penyewa menyewa property,
maka harus dicatat nomor kontraknya, tanggal kontrak,
harga kontrak, tanggal mulai dan tanggal berakhir.
Data sales yang dicatat dalam database nantinya
berupa : id_sales, nama_sales, alamat sales, kontak
24
(bisa lebih daripada satu). Datapemilik dapat berupa :
id_pemilik, nama pemilik, alamat pemilik, telepon
pemilik. Data property dapat berupa : kode_properti,
alamat property, luas tanah, luas bangunan, jenis
property, delaporan property, tahun dibangun. Data
penyewa berupa : id_penyewa, nama_penyewa,
alamat_penyewa, nomor_telp_penyewa.

25

Anda mungkin juga menyukai