• Atribut
*nomesin
noplat
model
merk
harga
warna
thn_pembuatan
Varian Entitas
• Entitas Lemah (Weak Entity)
Berisi entitas yang kemunculannya
tergantung pada eksistensinya dalam
sebuah relasi.misal entitas Mahasiswa -
orang tua & hobby, pegawai - tanggungan.
nama
alamatlengkap Id_pegawai
Tgl_lhr PEGAWAI
idruang kapasitas
nohp
jk RUANG
agama
Gol_drh foto lokasi
Namaruang
Atribut Simple
idbarang
Nama
BARANG
Harga
Kualitas
Atribut Multivalue
agama
Gelar
Tgl_lhr PEGAWAI
Atribut Composite
namatengah
namadepan namabelakang
nama
Tgl_lhr PEGAWAI
Atribut Derivatif
agama
umur
Tgl_lhr PEGAWAI
Simbol-simbol ER diagram
Entity Atribut Multivalue
Relationship
Atribut
Atribut Composite
Weak Entity
Atribut Derivatif
Identifying Relationship
Atribut key
DERAJAT RELATIONSHIP
1. Unary ( Derajat Satu )
Adalah satu buah relationship
menghubungkan satu buah entity.
Contoh : Manusia
Menikah
Keterangan :
Manusia menikah dengan manusia,
relationship menikah hanya menghubungkan
entity manusia.
DERAJAT RELATIONSHIP
2. Binary ( Derajat Dua )
Adalah satu buah relationship
yang menghubungkan dua buah
entity.
Contoh : Pegawai Kendaraan
Memiliki
Keterangan :
Pegawai memiliki kendaraan, sebuah
relationship memiliki mengubungkan entity
Pegawai dan entity Kendaraan.
DERAJAT RELATIONSHIP
3. Ternary ( Derajat Tiga )
Adalah satu buah relationship
menghubungkan tiga buah entity.
Contoh :
Pegawai Bekerja Proyek
Kota
Keterangan :
Pegawai pada kota tertentu mempunyai suatu Proyek.
Entity Bekerja mengubungkan Entity Pegawai, Proyek
dan Kota
Cardinalitas Relasi
• One to One
Hubungan satu ke satu. Contoh seorang
Dosen mengepalai satu jurusan.
1 n
Fakultas Daftar Mahasiswa
1 n
miliki ambil
n m
Jumlah_Penumpang
Kapasitas
Ilustrasi Generalisasi
Ilustrasi Spesialisasi
Ilustrasi Spesialisasi
Agregasi
• Sebuah relasi terbentuk tidak hanya dari
entitas tapi terkadang juga mengandung unsur
dari relasi yang lain.
• Jika terjadi hal demikian dapat diakomodasi
dengan Agregasi yang menggambarkan
sebuah himpunan relasi yang secara
langsung menghubungkan sebuah himpunan
entitas dengan sebuah himpunan
relationship dalam diagram ER
Ilustrasi Agregasi
nama nim Index_nilai
n m
MAHASISWA mempelajari MATA KULIAH
n
Mengikuti
Kd_prak nilai
m
nama PRAKTIKUM Jlh_jam
Batasan Relasi
• Batasan relasi menjelaskan apakah
keberadaan suatu entitas tergantung pada
entitas lain melalui suatu relasi.
• Ada 2 tipe batasan relasi yakni
– Total Participation (partisipasi total)
– Partial Participation (partisipasi sebagian)
Partisipasi Total
• Suatu entitas disebut dengan berpartisipasi total, jika keberadaan
entitas tersebut sangat bergantung pada keberadaan entitas lain.
• Contoh entitas Dosen keberadaan tergantung pada keberadaan
entitas Matakuliah dan sebaliknya artinya, jika ada seorang dosen
maka harus ada matakuliah yang diajarkan, begitu pula sebaliknya
adanya entitas matakuliah harus ada dosen yang mengajar
matakuliah tersebut.
Nm_dos Mt_kuliah
Kd_dos Alamat Kd_mk sks
M N
DOSEN AJAR MATAKULIAH
Kelas SEM
Partisipasi Sebagian
• Suatu entitas dikatakan berpartisipasi
sebagian jika entitas tersebut tidak
bergantung dengan keberadaan entitas lain
tetapi berhubungan satu sama lain.
• Contoh Tidak semua dosen menjadi
koordinator sesama dosen.
Nm_dos Alamat
Kd_dos Kd_pem
M
DOSEN Koordinir
1
LANGKAH – LANGKAH MEMBUAT
ERD
• Mengidentifikasikan dan menetapkan seluruh
himpunan entitas yang akan terlibat.
• Menentukan atribut-atribut key dari masing-
masing himpunan entitas.
• Mengidentifikasikan dan menetapkan seluruh
himpunan relasi diantara himpunan entitas yang
ada beserta foreign key-nya.
• Menentukan derajat dan cardinality rasio relasi
untuk setiap himpunan relasi
• Melengkapi himpunan relasi dengan atribut-
atribut yang bukan kunci (non-key).
• Lihat kembali ERD yang dibuat apakah masih
perlu refinement (penghalusan) dengan
generalisasi-spesialisasi, agregasi, batasan relasi
Konvensi Penamaan
• Pilih nama (untuk entitas, atribut, relasi) yang
menggambarkan maknanya.
• Gunakan nama tunggal untuk entitas.
• Gunakan huruf kapital untuk entitas dan relasi.
• Gunakan huruf kapital di awal kata untuk atribut.
• Nama entitas cenderung menggunakan kata
benda.
• Nama relasi cenderung menggunakan kata kerja.
Alat Bantu Pemodelan Data
• Merupakan sarana membuat dokumentasi
kebutuhan aplikasi.
• Antar mukanya mudah digunakan.
• Contoh:
– Ms. Visio
– ER-Win
– DBDesigner
– S-Designer
– ER-Studio
PENGANTAR ERD
• ERD merupakan notasi grafis dalam
pemodelan data konseptual yang
mendeskripsikan hubungan antara
penyimpanan.
Notasi dan Artinya
• Entiti : adalah suatu objek yang dapat
diidentifikasi dalam lingkungan pemakai, sesuatu
yang penting bagi pemakai dalam konteks sistem
yang akan dibuat.
– Contoh : Seandainya A adalah seorang Mahasisa maka
A adalah isi dari mahasiswa, sedangkan jika B adalah
seorang pelanggan maka B adalah isi dari pelanggan.
– Himpunan entitas : merupakan sekelompok entitas
sejenis dan berada dalam lingkup yang sama. Misalnya
mobil merupakan himpunan entitas sedangkan suzuki,
toyota, honda merupakan entitas
– Entiti digambarkan dalam bentuk persegi panjang
Mahasiswa
• Atribut : Entiti mempunyai elemen yang
disebut atribut, dan berfungsi
mendeskripsikan karakter entiti. Misalnya
atribut nama pekerja dari entiti pekerja.
– Setiap ERD bisa terdapat lebih dari satu atribut
– Atribut digambarkan dalam bentuk elips
No_mhs
nama_mahasiswa
Mahasiswa
alamat_mahasiswa
jenis_kelamin
• Hubungan : menunjukkan adanya hubungan / relasi
diantara sejumlah entitas yang berasal dari himpunan
entitas yang berbeda.
– Sebagaimana halnya entiti maka hubunganpun harus
dibedakan antara hubungan atau bentuk hubungan antar
entiti dengan isi dari hubungan itu sendiri.
– Misalnya dalam kasus hubungan antara entiti mahasiswa dan
entiti mata_kuliah adalah mengikuti, sedangkan isi
hubungannya dapat berupa nilai_ujian.
– Hubungan digambarkan dalam bentuk diamonds / jajaran
genjang
Nama_ Nama_
No_mhs mhs kdMK No_mhs kdMK MK
Notasi simbolik dalam diagram ER
• Persegi panjang → entitas
• Elips → atribut (atribut yang sebagai kunci digaris
bawahi)
• Belah ketupat → relasi
• Garis → penghubung antara himpunan relasi dengan
himpunan entitas dan himpunan entitas dengan
atributnya
• Kardinalitas relasi dinyatakan dengan banyaknya garis
cabang atau dengan pemakaian angka (1 dan 1 untuk
relasi satu-ke-satu, 1 dan M untuk relasi satu-ke-
banyak, M dan M untuk relasi banyak-ke-banyak)
Jenis-jenis hubungan / Derajat Relasi /
Kardinalitas Relasi
• Kardinalitas relasi menunjukkan jumlah
maksimum entitas yang dapat berelasi dengan
entitas pada himpunan entitas lain
• Contoh : entitas-entitas pada himpunan
entitas Mahasiswa dapat berelasi dengan satu
entitas, banyak entitas, atau bahkan tidak
satupun entitas dari himpunan entitas
Mata_Kuliah
Jenis-jenis hubungan
• Satu ke satu (one to one)
– Setiap entitas pada himpunan entitas A
berhubungan dengan paling banyak satu entitas
pada himpunan entitas B, dan begitu sebaliknya
setiap entitas pada himpunan entitas B
berhubungan dengan paling banyak satu entitas
pada himpunan entitas A.
– Contoh :
1 1
sopir menyetir mobil
• Satu ke banyak (one to many)
– Setipa entitas pada himpunan entitas A dapat
berhubungan dengan banyak entitas pada
himpunan entitas B, dan tidak sebaliknya dimana
setiap entitas pada himpunan B berhubungan
dengan paling banyak satu entitas pada himpunan
entitas A.
– Contoh :
1 M
Kelas berisi Siswa
• Banyak ke satu (many to one)
– Setiap entitas pada himpunan entitas A
berhubungan dengan paling banyak satu entitas
pada himpunan entitas B, dan tidak sebaliknya
dimana setiap entitas pada himpunan entitas B
dapat berhubungan dengan banyak entitas pada
himpunan entitas A
– Contoh :
mahasiswa M 1
kuliah jurusan
• Banyak ke banyak (many to many)
– Setiap entitas pada himpunan entitas A dapat
berhubungan dengan banyak entitas pada
himpunan entitas B, dan sebaliknya dimana setiap
entitas pada himpunan entitas B dapat
berhubungan dengan banyak entitas pada
himpunan entitas A.
– Contoh :
M M
mahasiswa mengikuti matakuliah
Contoh kasus pada perkuliahan
• Langkah 1 : mengidentifikasi dan menetapkan
seluruh himpunan entitas yang akan terlibat
mahasiswa kuliah dosen
Kode_dosen
Kode_dosen kdMK
dosen mengajar
• Langkah 4 : Menentukan derajat relasi
(cardinality) untuk setiap himpunan relasi
mahasiswa M M
mempelajari matakuliah
Kode_dosen M
Kode_dosen kdMK
1
dosen mengajar
• Langkah 5 : Melengkapi himpunan entitas dan
himpunan relasi dengan atribut deskriptif
(yang bukan kunci)
nomhs kdMK kdMK Nama_MK
nomhs
SKS
mahasiswa M M
mempelajari matakuliah
nilai
nama alamat M
Kode_dosen Kode_dosen kdMK
1
dosen mengajar
alamat
jam ruang
Nama_dosen
DIAGRAM ER DENGAN KAMUS DATA
• Pada sistem yang ruang lingkupnya lebar dan
kompleks, penggambaran atribut-atribut
dalam ERD seringkali malah mengganggu
tujuan yang ingin dicapai. Oleh karena itu
dapat dinyatakan dalam Kamus Data.
• Kamus data berisi daftar atribut yang diapit
tanda “{“ dan “}”
– Atribut yang merupakan kunci digarisbawahi
• Contoh :
mahasiswa M mempela M
kuliah M mengajar 1
jari dosen
KAMUS DATA
• Mahasiswa = {nomhs, nama, alamat}
• Matakuliah = {kdMK, nama_mk, sks}
• Dosen = {kode_dosen, nama_dosen, alamat}
• Mempelajari = {nomhs, kdMK, nilai}
• Mengajar = {kdMK, kode_dosen, jam, ruang}
IMPLEMENTASI BASIS DATA
• Tahap implementasi basis data merupakan upaya untuk
membangun basis data fisik yang ditempatkan dalam media
penyimpan (disk) dengan bantuan DBMS,
• Tahap ini diawali dengan melakukan transformasi dari model
data yang telah selesai dibuat struktur basis data sesuai dengan
DBMS yang dipilih.
• Secara umum, sebuah ERD akan diwujudkan menjadi sebuah
basis data secara fisik. Sedangkan komponen-komponen ER yang
berupa himpunan entitas dan himpunan relasi akan diwujudkan
menjadi tabel-tabel. Selanjutnya, atribut-atribut yang melekat
pada masing-masing himpunan entitas dan himpunan relasi
akan dinyatakan sebagai field-field dari tabel yang sesuai.
• Performansi basis data ditentukan oleh :
– Kualitas dan bentuk perancangan basis data
– Kualitas mesin / komputer
– Platform yang dipilih
– Sistem operasi
– DBMS yang digunakan
Pengkodean / Abstraksi Data
• Data yang dilihat oleh pemakai awam (end
user) bisa berbeda dengan bagaimana data /
informasi itu disimpan. Apa yang dilihat oleh
end-user bisa jadi merupakan hasil
pengolahan yang tidak disimpan sama sekali
dalam basis data, atau bisa dinyatakan dalam
bentuk lain.
• Alasan untuk membuat suatu pengkodean
adalan untuk efisiensi ruang penyimpanan
Lanjutan pengkodean….
• Dari pemakainya, ada 2 bentuk pengkodean
– Eksternal (user-defined coding)
• Mewakili pengkodean yang telah digunakan secara
terbuka dan dikenal dengan baik oleh pemakai awam
• Contoh : Nomor mahasiswa dan kode mahasiswa →
sudah dikenal baik oleh pemakai awam
– Internal (system coding)
• Menggambarkan bagaimana data disimpan dalam
kondisi sebenarnya, sehingga lebih berorientasi pada
mesin
Lanjutan pengkodean….
• Ada 3 bentuk pengkodean :
– Sekuensial
• Pengkodean dilakukan dengan mengasosiasikan data dengan
kode yang urut
• Contoh : predikat kelulusan “sangat Memuaskan”, “Cukup
Memuaskan”, “Memuaskan → dikodekan dengan huruf “A”,
“B”, “C”
– Mnemonic
• Pengkodean dilakukan dengan bentuk suatu singkatan dari
data yang hendak dikodekan
• Contoh : “Laki-laki” → dikodekan “L”; “Perempuan” → “P”
– Blok
• Pengkodean dinyatakan dalam format tertentu
• Contoh : Nomor Mahasiswa dengan format XX,YY,ZZZZ →
terdiri atas XX=2 digit tahun masuk, YY= 2 digit kode jurusan,
ZZZZ = 4 digit nomor urut.
Transformasi Model Data ke Basis Data Fisik
• Aturan umum dalam pemetaan model data yang
digambarkan dalam ERD (level konseptual) menjadi
Basis Data Fisik (level fisik) adalah :
a. Setiap himpunan entitas akan diimplementasikan sebagai
sebuah tabel (file data)
Lanjut Transformasi Model Data ke Basis Data Fisik….
b. Relasi dengan derajat relasi satu-ke-satu, yang
menghubungkan 2 buah himpunan entitas
akan direpresentasikan dalam bentuk
penambahan / penyertaan atribut-atribut
relasi ke tabel yang mewakili salah satu dari
kedua himpunan entitas.
Lanjut Transformasi Model Data ke Basis Data Fisik….
c. Relasi dengan derajat relasi satu-ke-banyak, yang
menghubungkan 2 buah himpunan entitas, juga akan
direpresentasikan dalam bentuk pemberian /
pencantuman atribut kunci dari himpunan entitas
pertama (yang berderajat 1) ke tabel yang mewakili
himpunan entitas kedua (yang berderajat M)
Lanjut Transformasi Model Data ke Basis Data Fisik….
d. Relasi dengan derajat relasi banyak-ke-banyak, yang
menghubungkan 2 buah himpunan entitas akan
terwujud dalam bentuk tabel khusus, yang memiliki
field (atau foreign key) yang berasal dari kunci-kunci
dari himpunan entitas yang dihubungkannya.
DBMS dan Struktur Tabel
• Dalam menentukan struktur dari tabel, paling
tidak setiap struktur tabel berisikan nama
field, tipe field dan ukurannya.
• Tatacara penamaan field, pilihan tipe field
serta fasilitas tambahan lainnya untuk struktur
tabel sangat tergantung pada DBMS yang
digunakan.
• Tipe data yang bersifat umum adalah :
– Data Alphanumerik, isinya berupa angka tapi tidak
menunjukkan jumlah, sehingga dianggap sebagai teks,
Misalnya : nomhs, NIP
– Data Numerik, isinya berupa angka yang menunjukkan
jumlah, misalnya : SKS, Gaji Pokok
– Data bilangan bulat (integer), Byte (1 byte), Small-
integer (2 byte), Long integer (4 byte)
– Data bilangan nyata, single (4 byte), double (8 byte).
Tipe data single dapat menampung hingga 7 digit
pecahan, sedangkan double hingga 15 digit pecahan.
• Dalam komputasi, data integer akan membutuhkan waktu
lebih cepat dalam pengolahan data dibandingkan real.
Begitu juga, karena ruang penyimpanan yang dibutuhkan
lebih kecil, maka data single akan lebih cepat dalam
pengolahan dibandingkan double.
– Data uang (currency), pemakaian tipe ini sangat
membantu dalam mengatur tampilan data yang
berkaitan dengan nilai uang. Misalnya dengan adanya
pemisahan ribuan/jutaan dan adanya tanda mata
uang.
– Teks, adanya dua jenis yaitu ukuran tetap (fixed
character) dan ukuran dinamis (variable character).
Misalnya field nomhs lebih tepat bertipe fixed
character karena ukurannya pasti dan pendek.
Sedangkan nama mahasiswa sebaiknya bertipe
variable character karena panjang dan bervariasi
• Pertimbangan dalam menentukkan tipe data bagi
setiap field adalah :
– Kecukupan domain
• Harus dapat menjamin bahwa tipe data yang dipilih pada
tiap field akan dapat menampung semua nilai yang akan
diisikan ke dalam field tersebut.
– Efisiensi ruang penyimpanan
• Apabila pemilihan tipe data tidak tepat (berlebihan),
akibatnya akan memperbesar ukuran tabel secara
keseluruhan
– Kecepatan pengolahan data
• Pada akhirnya, pemilihan tipe yang tidak tepat juga
mengakibatkan pengaksesan data menjadi lebih lambat
Indeks dan Struktur Penyimpanan
• Pada tahapan implementasi, atribut-atribut
entitas / relasi yang ditetapkan sebagai kunci
(key) akan diwujudkan sebagai indeks Primer
(primary index). Dan dapat juga ditambahkan
Secondary index.
• Ada 2 indeks :
– Indeks Primer (Primary Index)
• IP pada setiap tabel hanya ada satu dan hampir selalu
berasal (ditentukan) dari kunci primer yang telah
ditetapkan dalam sebuah entitas / relasi
• IP yang baik terdiri atas field-field dengan kriteria sbb :
– Field yang menjadi komponen IP harus bersifat mandatory
(datanya tidak boleh kosong atau berisi nilai null)
– Keseluruhan nilai IP bersifat unik
– Nilai-nilainya lebih permanen (idealnya tidak pernah berubah)
– Berukuran kecil (pendek) dengan jumlah field minimal
(sedikit)
– Indeks Sekunder (Secondary Index)
• Digunakan untuk mendukung keberadaan IP yang dibuat
untuk suatu tabel dengan alasan untuk mempermudah
berbagai cara pengaksesan ke suatu tabel
• Misalnya : field Nama_mahasiswa → untuk memudahkan
pencarian data berdasar nama_mahasiswa; disamping
pencarian berdasarkan nomhs
• Catatan :
– Jumlah IS dalam sebuah tabel boleh lebih dari satu
– Nilai-nilai field yang menjadi pembentuk IS tidak harus bersifat
unik.
Struktur Penyimpanan
• Ada pilihan struktur penyimpanan dasar yang
dapat diterapkan pada suatu tabel
(bergantung pada DBMS yang dipakai) yaitu :
Pile, Heap, Hash, Sekuensial Berindeks, File
berindeks, Multiring
HEAP
• Merupakan struktur penyimpanan yang paling sederhana
dan paling hemat dalam kebutuhan ruang penyimpanan
• Setiap baris data disusun berdasarkan kronologis
penyimpanannya. Record yang pertama disimpan akan
ditempatkan di posisi awal ruang penyimpanan, dan
begitu seterusnya.
• Pengubahan data tidak akan mengubah urutan record
tersebut. Jika terjadi penghapusan, maka record-record
dibawahnya akan dimampatkan untuk mengisi tempat
yang kosong akibat penghapusan.
• Pencarian data berjalan dengan lambat, karena dilakukan
secara sekuensial baris demi baris.
• Struktur ini cocok untuk tabel berukuran kecil dan jarang
berubah
HASH
• Baris-baris data ditempatkan berdasarkan nilai alamat
fisik yang diperoleh dari hasil perhitungan (fungsi
hashing) terhadap nilai key-nya. Karena itu
penempatan record dalam tabel tidak tersusun
berdasarkan kedatangannya. Bisa jadi record yang
terakhir dimasukkan justru menempati urutan
pertama.
• Memiliki performansi yang paling baik dalam hal
pencarian data tunggal berdasarkan kunci indeks.
• Struktur ini cocok untuk tabel-tabel yang sering
menjadi acuan bagi tabel lain.
• Kelemahannya membutuhkan ruang penyimpanan
awal yang besar, untuk menjamin agar record-record
yang disimpan tidak menempati alamat yang sama →
dibutuhkan alokasi ruang penyimpanan
SEKUENSIAL BERINDEKS
• Menempatkan data dengan urutan tertentu
berdasarkan nilai indeks primernya
• Record yang memiliki nilai IP paling kecil dibandingkan
record yang lain akan ditempatkan di awal ruang
penyimpanan tabel meskipun dimasukkan belakangan
• Performansi turun pada saat terjadi penambahan atau
perubahan data yang menyangkut nilai indeks
primernya, karena perlu dilakukan penataan ulang
• Struktur ini cocok untuk tabel yang bersifat statis, dan
untuk pencarian data kelompok dalam suatu tabel
(lebih baik daripada hash).
FILE BERINDEKS
• Dikembangkan dari struktur heap. Record-record
disusun berdasarkan kronologis penyimpanannya
(seperti heap). Namun disediakan pula file indeks yang
disusun berdasarkan nilai key setiap record yang
berguna untuk membantu proses pencarian data ke
suatu tabel.
• Terdapat 2 komponen yaitu komponen data dan
komponen indeks. Komponen data disusun dengan
struktur heap, sedangkan komponen indeks disusun
dengan struktur sekuensial berindeks.
• Struktur ini cocok untuk tabel yang dinamis dan
berukuran besar
Contoh struktur tabel
Primary Key : nomhs
Foreign key : -